Disclaimer and acknowledgements

All your actions with your phone are at your own risk; the author of this ROM is not liable.

This ROM is compiled from CyanogenMod 12.1 sources with own modifications (which are open-sourced on GitHub). I’d like to acknowledge the following people for their respective efforts:

  • kirill8000 and kkk4 for unlocking bootloader of ordinary MX4’s
  • @axet and @fire855 for the general MTK porting efforts
  • @DerTeufel for the information regarding to the MTK GPS implementation
  • cofface’s CWM recovery
  • Daxiaamu’s one-key bootloader unlocking app (in Chinese)
  • Bugfixes and various contributions from @ccfxny (Weibo, GitHub)

Announcement changelog

NOTE: All times in this announcement are UTC+8.

  • 2016/04/12 00:20 First (translated) release

Changes since last release

As CM13.0 is out and the port is slowly going, the CM12.1 branch is now in maintenance mode. Note that due to camera blob compatibility problems and having to write my papers, CM13.0 porting is paused until June or maybe July.

  • Add Synced with upstream sources as of 2016/04/11
  • Add Blobs and prebuilt kernel synced to Flyme

Known bugs and limitations

  • Some people may find the minimum volume to be too high. This is due to bad defaults pre-set by MTK; you can fix it yourself by entering MTK’s engineer mode (dialing *#*#ENGMODE#*#*) in Flyme (the engineer mode is too invasive to be ported), swiping to the Hardware tab then Audio item, after that select the Media mode and manually toggle each level’s hardware output level. Pretty terrible UI but at least things can be fixed.)
  • Some users may have to toggle flight mode to restore cellular connectivity on reboot
  • Some users are unable to auto-configure their SMSC numbers
  • Some large apps can’t be installed causing crash
  • etc.



# MD5
# MX4
5a48edf754f88edd20dd22abd66f518b  mx4/ApkIDE_MX4_Unlock_BL.apk
9c5bfe935295561dd17c849d2e64ebaa  mx4/cm-12.1-20160411-UNOFFICIAL-mx4.zip
7ff821c9c916622206862170a4c0c197  mx4/XposedInstaller_3.0_alpha4.apk
465dfd8c9b41b57d10053c35931cf5ce  mx4/xposed-v81-sdk22-arm.zip

# arale
6ba6b4d397ef737d20f5bb03c29e2dd7  arale/recovery-arale-20160112-fixedroot.img
ea63dcc47baaac6633f8d8cb5a205aca  arale/cm-12.1-20160411-UNOFFICIAL-arale.zip
7ff821c9c916622206862170a4c0c197  arale/XposedInstaller_3.0_alpha4.apk
465dfd8c9b41b57d10053c35931cf5ce  arale/xposed-v81-sdk22-arm.zip

# SHA-1
# MX4
399167bb7fcdf61de397b85b96ec95934e0ab1c8  mx4/ApkIDE_MX4_Unlock_BL.apk
28b39a9c5435c3ba1732a19ba55ea9af721df9e6  mx4/cm-12.1-20160411-UNOFFICIAL-mx4.zip
3e84a3895a8c0e812bad85b98e5f176266215fb4  mx4/XposedInstaller_3.0_alpha4.apk
98df083db2b987d52ba395afa25969287a47a7de  mx4/xposed-v81-sdk22-arm.zip

# arale
f316d397e84cf3dea6f13fcd96c170b14a5244b6  arale/recovery-arale-20160112-fixedroot.img
8206ef213f8538f8bc64fdc6b3f0f3cb048914c8  arale/cm-12.1-20160411-UNOFFICIAL-arale.zip
3e84a3895a8c0e812bad85b98e5f176266215fb4  arale/XposedInstaller_3.0_alpha4.apk
98df083db2b987d52ba395afa25969287a47a7de  arale/xposed-v81-sdk22-arm.zip

# SHA-256
# MX4
efaf514f8a5429198d2c394ac24becbef959f06933bdb82b00a16812752f8a47  mx4/ApkIDE_MX4_Unlock_BL.apk
c2609d940a7d16c42a53822583d66704f6467cfd5e155efba1b567abd70a869b  mx4/cm-12.1-20160411-UNOFFICIAL-mx4.zip
835fdfd6244e4981818d2e44ad525575fe24772c5574c639c60cc3c48ba085fe  mx4/XposedInstaller_3.0_alpha4.apk
2f8695d78685ebb9536098d9f80a4a83c465ad7409a40f938ee9932e98ebd5af  mx4/xposed-v81-sdk22-arm.zip

# arale
8ccbdf4f0a511b3e1ccac95b17a8070c60976e86f65d288dc208e09a96ff8fd1  arale/recovery-arale-20160112-fixedroot.img
33424c3abf64c997c5a437ac2d4429c1adbc15d6c3dd34d054e40962a731fd9f  arale/cm-12.1-20160411-UNOFFICIAL-arale.zip
835fdfd6244e4981818d2e44ad525575fe24772c5574c639c60cc3c48ba085fe  arale/XposedInstaller_3.0_alpha4.apk
2f8695d78685ebb9536098d9f80a4a83c465ad7409a40f938ee9932e98ebd5af  arale/xposed-v81-sdk22-arm.zip

# SHA-512
# MX4
2b1af3ee839190092c75a08a0091ab4b79b7e069534c7004fb8a7dfea1bdc4e25cd3d0da50541f8853387f18a0aeae106c808c91f3bd3e187be9b6033b1d73b5  mx4/ApkIDE_MX4_Unlock_BL.apk
c94d7f1872a9f40c58b273e8c02b2efe0fb3005b8edc338091482d7fe717d3f7611e3dc9ba12acc90351133f531b0f57f12232896a9d6453affb7d66a096396a  mx4/cm-12.1-20160411-UNOFFICIAL-mx4.zip
1d5fa5c37005ec0fa48cd41358bf60515a6ac44d04136f07f9ba8dda322c46b24abc608e78ba8180486978eb731e2d612a22be6a01f6bf765e9b1eb3f065b391  mx4/XposedInstaller_3.0_alpha4.apk
eebb988b0c5f7b1d39e297efb950c472e2c65e2dda6cfe07f7312e8e1792e5dac54764eb71fd9bf32dc12410ba51fda5455531b8ffd8d537b2d135ff3a263703  mx4/xposed-v81-sdk22-arm.zip

# arale
c17e7b750c3b0f9a66fdcf7f621ca660ed4b1e6e0890706423e2b4e7acf5e69f1d9ab161f08f143822bf988635623e7727ca495b3a74d8421863c29786efb11e  arale/recovery-arale-20160112-fixedroot.img
6e6b7541c66cb5fca61c3cfdace8b46dd28f0468d6cf3a10225ee33d67d11123470e6b84c4a04fb49048b09bb1f1873af5631cb4743e97406730660d7357f04b  arale/cm-12.1-20160411-UNOFFICIAL-arale.zip
1d5fa5c37005ec0fa48cd41358bf60515a6ac44d04136f07f9ba8dda322c46b24abc608e78ba8180486978eb731e2d612a22be6a01f6bf765e9b1eb3f065b391  arale/XposedInstaller_3.0_alpha4.apk
eebb988b0c5f7b1d39e297efb950c472e2c65e2dda6cfe07f7312e8e1792e5dac54764eb71fd9bf32dc12410ba51fda5455531b8ffd8d537b2d135ff3a263703  arale/xposed-v81-sdk22-arm.zip


For MX4 Ubuntu Edition users, your bootloaders are already unlocked, so just flash the stock recovery provided and proceed. (3rd-party recoveries may be provided by some other people; I myself have no time for that. Graphics was broken at my last attempt to do this.)

For users of ordinary version of Meizu MX4, you need to have your bootloader unlocked, the tutorial can be found [here][unlocking-tutorial]. After unlocking just flash as usual; remember to wipe your /data partition if you’re coming from Flyme or Ubuntu Touch or generally any incompatible system.

[unlocking-tutorial]: http://forum.xda-developers.com/meizu-mx/general/tutorial-bootloader-unlocking-mx4-m1-t3201715)


  • Cellular network
    • There may be no signal at first boot, if the problem doesn’t resolve in 40 seconds then please toggle on and off flight mode for the telephony component to re-initialize itself.
    • SIM card may also go unrecognized after reboot, just do the same and the problem should hopefully disappear.
  • more to come later


I do Android porting mainly for personal use and fun, but as a matter of fact I sometimes find myself struggling to achieve the standards I strive for, as a graduate student still learning his way into the industry and having things to take care of besides coding. If you appreciate my work, please kindly consider donating something equivalent to a beer or two. I will use the donations to support my porting work and studies. PayPal and Alipay payments are accepted:

  • PayPal/Alipay: idontknw.wang@gmail.com