[[|200px|alt=Meizu 5 Pro]]|
Meizu 5 Pro
|Original software||Android 5, Ubuntu Touch|
|Chipset||Samsung Exynos 7420 Octa|
|CPU||Octa-core (4x2.1 GHz Cortex-A57 & 4x1.5 GHz Cortex-A53)|
|Display||AMOLED, 16M colors|
How to enter flash mode
The device has to be with unlocked bootloader. Android phone version has bootloader locked by default. Locked bootloader may be unlocked with a Beta FlymeOS image for the international phone version. International firmware can be flashed to Chinese phone if one changes phone's id (possible with a 5.1.x Chinese firmware, root and a hex editor).
Press volume down and power while turning on to get into fastboot mode.
Current pmbootstrap utility assumes that boot partition is always named 'boot' on fastboot devices. This device's boot partition has 'bootimg' label. Because of that boot partition must be either flashed directly with fastboot utility, or pmbootstrap config source code has to be fixed.
Currently when turned on, the device enters reboot loop. The reboot is triggered by the line:
udevadm trigger --type=devices --action=add
The device is accessible with telnet hook and via SSH (after additional procedure)
Procedure to get the device booting till the SSH
Install PostmarketOS's telnet debug hook, log on with telnet, then execute:
. init_functions.sh mount_boot_partition extract_initramfs_extra /boot/initramfs-*-extra start_charging_mode wait_root_partition resize_root_partition unlock_root_partition resize_root_filesystem mount_root_partition mount -o remount,rw /dev/mapper/sda41p2 /sysroot
mount -t proc proc /sysroot/proc mount -t sysfs sys /sysroot/sys chroot /sysroot
In chroot, comment out the offendig string, e.g. with sed replace.
Getting the display to render frames
Using MartinBraam's trick it is possible to make the display render frames like this:
while [ ! ]; do cat /sys/class/graphics/fb0/modes > /sys/class/graphics/fb0/mode; done
There are several candidate kernels for the port:
- Official kernel sources
- Android branch. This branch seem to contain the very first kernel used for the earliest FlymeOS 4.x ROM. It is reported to be uncomplete, in particular, it misses Meizu proprietary sources for power management.
- Ubuntu branch. This branch seem to contain kernell for Android release updated to 3.10.100 in commit f866ad068f11fb5e68ff87901346483945972ae9. After that Ubuntu-specific patches as well as generic bugfixes come.
- Android 7 kernel, not released. Kernels from previous two links were only used in very early official ROMs. Later kernel sources were not realeased. There is a Github issue requesting the release. Meizu is known to respond positively to such issues.
- Unofficial sources
- UBPorts kernel. Based on Meizu Pro 5 branch. Contains Ubuntu Touch fixes and ports, mainly Android binder and anbox-specific patches.
- faust93's kernel. Kernel used in at least two unofficial Android roms. This kernel, probably based on CM14.1, seems to be most up to date candidate, but contains a lot of patches from assorted sources and may be not very stable