Huawei Honor 6X (huawei-berlin)
Appearance
| This device runs a Downstream kernel. Some UIs will not work, and most features (3D acceleration, audio, etc.) may be broken. |
|
Honor 6X with XFCE4 | |
| Manufacturer | Huawei |
|---|---|
| Name | Honor 6X |
| Codename | huawei-berlin |
| Released | 2016 |
| Type | handset |
| Hardware | |
| Chipset | HiSilicon Kirin 655 |
| CPU |
Octa-core (4x2.1 GHz Cortex-A53 4x1.7 GHz Cortex-A53) |
| GPU | Mali-T830MP2 |
| Display | 1080x1920 IPS LCD |
| Storage | 32 GB, microSD |
| Memory | 3 GB |
| Architecture | aarch64 |
| Software | |
Original software The software and version the device was shipped with. |
Android 6.0 Marshmallow (EMUI 5.x) |
Extended version The most recent supported version from the manufacturer. |
Android 8.0 Oreo (EMUI 8.x) |
| postmarketOS | |
| Category | downstream |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
no |
pmOS kernel The kernel version that runs on the device's port. |
4.4.174 |
| Device package |
|
| Kernel package |
|
Flashing Whether 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 Whether charging and battery level reporting work. |
Untested
|
Screen Whether the display works; ideally with sleep mode and brightness control. |
Works
|
Touchscreen |
Works
|
| Multimedia | |
3D Acceleration |
Untested
|
Audio Audio playback, microphone, headset and buttons. |
Untested
|
Camera |
Untested
|
| Connectivity | |
WiFi |
Works
|
Bluetooth |
Untested
|
GPS |
Untested
|
| Modem | |
Calls |
Untested
|
SMS |
Untested
|
Mobile data |
Untested
|
| Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Untested
|
| Sensors | |
Accelerometer Handles automatic screen rotation in many interfaces. |
Untested
|
Users owning this device
- Markochk (Notes: Port in progress)
How to enter flash mode
Recovery - hold +
Fastboot - hold + , with the USB cable plugged in
How to flash
If you're coming from a phone running Android 8 (EMUI 8), there is no boot partition, so you'll have to flash image files individually.
- Make sure
pmbootstrap buildandpmbootstrap installpass without errors. - Get mkbootimg and unpackbootimg (link)
$ git clone https://github.com/anestisb/android-unpackbootimg $ make -C android-unpackbootimg
- Extract the images from the pmbootstrap-created boot.img with unpackbootimg.
$ # copy created boot image to current directory $ cp ~/.local/var/pmbootstrap/chroot_rootfs_huawei-berlin/boot/boot.img . $ # extract the created boot.img $ mkdir pmos-boot-huawei-berlin $ ./android-unpackbootimg/unpackbootimg -i boot.img -o pmos-boot-huawei-berlin/
- Use the extracted files in the following steps.
- Create ramdisk image:
$ # create new ramdisk image with empty kernel (/dev/null) $ ./android-unpackbootimg/mkbootimg.py --kernel /dev/null --ramdisk pmos-boot-huawei-berlin/boot.img-ramdisk.gz --cmdline 'buildvariant=user' --os_version 8.0.0 --os_patch_level 2018-06-05 -o ramdisk.img
- Create kernel image:
$ # kernel (with empty ramdisk via /dev/null): $ # make sure boot.img-huawei-berlin-zImage is gzipped or do it manually before mkbootimg.py $ gzip -c pmos-boot-huawei-berlin/boot.img-zImage > pmos-boot-huawei-berlin/boot.img-zImage.gz $ ./tools/android-unpackbootimg/mkbootimg.py --kernel pmos-boot-huawei-berlin/boot.img-zImage.gz --ramdisk /dev/null --cmdline 'loglevel=4 coherent_pool=512K page_tracker=on slub_min_objects=12 unmovable_isolate1=2:192M,3:224M,4:256M printktimer=0xfff0a000,0x534,0x538 androidboot.selinux=enforcing buildvariant=user' --base 0x00478000 --kernel_offset 0x00008000 --ramdisk_offset 0x07b88000 --second_offset 0x00e88000 --tags_offset 0x07988000 --os_version 8.0.0 --os_patch_level 2018-12 --pagesize 2048 -o kernel.img
- Flash with fastboot:
$ fastboot flash kernel kernel.img $ fastboot flash ramdisk ramdisk.img $ pmbootstrap flasher flash_rootfs # or flash to sd-card
- Reboot
$ fastboot reboot
Additional Info
On first boot, the display will get stuck on postmarketOS boot screen. Connect to the phone via SSH, open /etc/lightdm/lightdm.conf and replace #logind-check-graphical=true with logind-check-graphical=false. Reboot the phone. More info: Display manager#CanGraphical_issue.
Now, after boot screen, the screen will turn off. You'll have to SSH again and set the brightness level (range is 0 - 255):
$ sudo -i
# echo 255 > /sys/class/leds/lcd_backlight0/brightness