Meizu Pro 5 (meizu-turbo)
[[|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. USB networking workds, telnet debugging hook lets log in at early stage before the reboot. All steps from init.sh until switch_root when entered manually in telnet debug shell seem to work without problem. The display is not working - blank black screen. If provoked to display an early splash (e.g. no rootfs), a black image is displayed with white lines on the left and top borders, as if it is a part of zoomed in image. Turning on OpenRC logging does not produce any log files in /var/log on sysroot partition, which suggests that either switch_root and call to /sbin/init fails, or OpenRC fails on very early stage. The same result has been observed on a modified UBPorts kernel (currently in APKBUILD) and on faust98 kernel (see below), both compiled on GCC8 and GCC6.
If one tries to mount the system manually it reboots after populating /dev message:
# mount /dev/block/sda41p2 /sysroot # mount -t proc proc /sysroot/proc # mount -t sysfs sys /sysroot/sys # chroot /system # touch .....runlevel # /etc/init.d/devfs start # ls /dev adnc0 cluster1_freq_min hwrng ion-test mapper ram0 sda1 sdc tty12 tty31 tty50 ttyGS3 v4l- subdev6 video141 adnc1 cluster1_num_max i2c-0 january media0 ram1 sda2 seiren tty13 tty32 tty51 ttySAC1 v4l-subdev7 video142 adnc2 cluster1_num_min i2c-1 kmem mem ram10 sda21 sg0 tty14 tty33 tty52 ttySAC4 v4l-subdev8 video150 adnc3 console i2c-10 kmsg memory_throughput ram11 sda22 sg1 tty15 tty34 tty53 uhid v4l-subdev9 video152 adnc4 cpu_dma_latency i2c-11 log_events mobicore ram12 sda23 sg2 tty16 tty35 tty54 uinput vcs video50 adnc5 device_throughput i2c-12 log_main mobicore-user ram13 sda24 sg3 tty17 tty36 tty55 umts_boot0 vcs1 video51 alarm display_throughput i2c-13 log_radio modem_br ram14 sda25 sg4 tty18 tty37 tty56 umts_dm0 vcsa video6 android_adb dm-0 i2c-14 log_system mtp_usb ram15 sda26 sg5 tty19 tty38 tty57 umts_ipc0 vcsa1 video7 android_ssusbcon dm-1 i2c-15 loop-control muic_device ram2 sda27 shm tty2 tty39 tty58 umts_ipc1 vga_arbiter video8 ashmem erandom i2c-2 loop0 multipdp ram3 sda28 snd tty20 tty4 tty59 umts_loopback video101 video9 battery_device fb0 i2c-3 loop1 net ram4 sda29 spi_boot_link tty21 tty40 tty6 umts_rfs0 video102 watchdog binder fb1 i2c-4 loop2 network_latency ram5 sda3 stderr tty22 tty41 tty60 umts_router video110 watchdog0 bus_throughput fd i2c-5 loop3 network_throughput ram6 sda30 stdin tty23 tty42 tty61 urandom video111 xt_qtaguid bus_throughput_max fimg2d i2c-6 loop4 null ram7 sda31 stdout tty24 tty43 tty62 usb_accessory video112 zero cam_throughput frandom i2c-7 loop5 p61 ram8 sda32 stmvl6180_ranging tty25 tty44 tty63 v4l-subdev0 video120 charger_device full i2c-8 loop6 panic_msg ram9 sda33 tspdrv tty26 tty45 tty7 v4l-subdev1 video121 cluster0_freq_max fuse i2c-9 loop7 pn544 random sda41 tty tty27 tty46 tty8 v4l-subdev10 video122 cluster0_freq_min gps iio:device0 m2m1shot_jpeg port rfkill sda42 tty0 tty28 tty47 tty9 v4l-subdev2 video130 cluster0_num_max gpu_freq_max iio:device1 m2m1shot_scaler0 ppp rtc0 sda43 tty1 tty29 tty48 ttyGS0 v4l-subdev3 video131 cluster0_num_min gpu_freq_min input m2m1shot_scaler1 psaux s5p-smem sda44 tty10 tty3 tty49 ttyGS1 v4l-subdev4 video132 cluster1_freq_max haptic_device ion mali0 ptmx sda sdb tty11 tty30 tty5 ttyGS2 v4l-subdev5 video140 # openrc * Mounting security filesystem ... [ ok ] * Mounting debug filesystem ... [ ok ] * Mounting config filesystem ... [ ok ] * Mounting fuse control filesystem ... [ ok ] * Mounting SELinux filesystem ... [ ok ] * Starting udev ... [ ok ] * Generating a rule to create a /dev/root symlink ... [ ok ] * Populating /dev with existing devices through uevents ... [ ok ]
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 kernel actually used in more recent official Android releases (3.10.100) at least till 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