Jump to content

Google Nexus 6P (huawei-angler)

From postmarketOS Wiki
Google (Huawei) Nexus 6P
Huawei Nexus 6P
Huawei Nexus 6P
Manufacturer Google (Huawei)
Name Nexus 6P
Codename huawei-angler
Released 2015
Type handset
Hardware
Chipset Qualcomm Snapdragon 810 (MSM8994)
CPU Octa-core (4x1.55 GHz Cortex-A53
4x2.0 GHz Cortex-A57)
GPU Adreno 430
Display 1440x2560 AMOLED
Storage 32/64/128 GB
Memory 3 GB
Architecture aarch64
Software
Original software
The software and version the device was shipped with.
Android 6.0.0 (Linux 3.10)
Extended version
The most recent supported version from the manufacturer.
Android 8.0.0 (Linux 3.10)
postmarketOS
Category testing
Mainline
Instead of a Linux kernel fork, it is possible to run (Close to) Mainline.
yes
Device package device-huawei-angler
Kernel package linux-huawei-angler
Features
Flashing
It is possible to flash the device with pmbootstrap flasher.
Partial
USB Networking
After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).
Works
Battery
Charging and battery level reporting works
Works
Screen
Display works. Ideally with sleep mode and brightness control.
Works
Touchscreen
Works
Multimedia
3D Acceleration
Untested
Audio
Audio playback, microphone, headset and buttons.
Partial
Camera
Untested
Connectivity
WiFi
Works
Bluetooth
Untested
GPS
Untested
Modem
Calls
Broken
SMS
Broken
Mobile data
Untested
Miscellaneous
FDE
Full disk encryption and unlocking with unl0kr.
Untested
Sensors
Accelerometer
Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile
Untested

Contributors

  • zhuowei, khimaros, Learn Chung Chen

Users owning this device


How to enter flash mode

  • Connect a USB cable
  • Make sure, the device is powered off
  • Hold power + volume down
  • Continue holding until you se the bootloader menu

pmbootstrap install

Install pmbootstrap and then run:

$ pmbootstrap init
$ pmbootstrap install
$ pmbootstrap flasher flash_rootfs
$ pmbootstrap flasher flash_kernel

Kernel configs applied

Configs changed from stock Lineage kernel:

  • CONFIG_DEVTMPFS=y
  • CONFIG_VT=y
  • CONFIG_FRAMEBUFFER_CONSOLE=y
  • Various NFS client configs: CONFIG_NFS_V4_1=y
  • CONFIG_BCMDHD_FW_PATH, CONFIG_BCMDHD_NVRAM_PATH

How to enter flash mode

The Nexus 6P, like all Google Nexus devices, uses Fastboot as the flashing protocol.

To enter Fastboot mode, hold Volume Down while powering on the device. Let go of Volume Down when a picture of a green Android mascot shows up on the screen.

Limitations

The Nexus 6P running on downstream kernel does not have DRM support, which means most accelerated interfaces (such as phosh and sway) are unsupported. There are two known workarounds:

Research

Mainline

There was an initial project to port the mainline kernel to Nexus 6P. As a result there's now some support for Nexus 6P in mainline. Later more functionality was added to msm8994, but just some of that is used in Angler. For more info see mainline section of the chipset.

Modem

Android boots the modem by mounting the modem partition to /firmware, then opening /dev/subsys_modem. Doing the same on postmarketOS (after linking all the firmware in /firmware/images to /lib/firmware/postmarketos) causes any `dmesg` call to freeze (?!), and the device would kernel panic with a "modem crashed" error in a few seconds.

Audio

The audio requires the blobs from Android's /vendor/adsp.* to be present in /lib/firmware/postmarketos. Then, opening /dev/subsys_adsp will boot the sound card. Currently ALSA recognizes the sound card but fails with an error when playing audio: the Android audio configuration files would need to be converted to Linux format by xml2ucm. See https://arunraghavan.net/2016/01/audio-devices-and-configuration/ for an explanation of the difference between Android and Linux audio, and see https://github.com/kholk/sony-alsa-ucm/tree/master/kitakami for a different SD810 device's ALSA config.

Bluetooth

It seems Bluetooth is connected via H4 UART at /dev/ttyHS0. Tizen uses the hciattach_bcm43xx tool from BlueZ to load firmware to the Bluetooth dongle, but I can't find this utility in Alpine's bluez or bluez-deprecated package. btattach -B /dev/ttyHS0 doesn't seem to work.

Links

OSZAR »