Update: 2018.07.29
目前Cyanogenmod已经改名为LineageOS,Moto X 2014同样还是被支持的。随着时间的推移,以下的指南可能已经过时。同时在2018年XT1085的性能已经不能满足日常需要,本文恕不再更新。
入手Moto X 2014 国行版已经一年多了。国行的系统除了阉割谷歌服务,加上一些国产定制软件外(这两个问题都能得到解决),日常使用体验和Android原生系统还是差不多的。在Android 7.0已经正式发布的情况下,国行XT 1085依然无法得到官方Android 6.0更新。因此决定刷Cyanogenmod(简称CM)来获得更新的系统体验。
很幸运的是,Moto X 2014是被Cyanogenmod官方支持的(CM改名LineageOS后,同样依然支持,链接为https://download.lineageos.org/victara),但是XT 1085直接刷入CM的刷机包是会失败的。因为国行版本分配的system分区的大小与其他版本(如欧版XT 1092)的不一样。由网上得知国行版本的预装ROM Android 5.0.2对应的分区表的版本号为 02,只有这所谓版本相同的两个型号的ROM之间才可以通刷,应该是因为bootloader内写死的起始分区位置导致的。不过很幸运,欧洲的行货XT1092的5.0版本ROM的分区表版本同样是02(引用来源:Typeblog.net)。也就是说,只要事先刷入欧版系统的分区表文件,就可以通刷CM等第三方ROM了。
事先的准备工作
包括但不限于:
1. 退出当前已经登录的Google账号等。
2. 做好关键信息的备份,如Google Authenticator等2FA App。
3. 如果当前手机内安装有Bitcoin Wallet,也不要忘了事先转移Bitcoin。
具体步骤
(刷机需事先解锁Bootloader,本文略。本文中涉及的所有文件在文末附有下载地址。)
0. 如何进入fastboot模式
关机,同时按住 音量减 和 电源;然后,松开 电源,但仍然按住 音量减 约20秒;最后,松开 音量减。此时你的手机就成功进入 fastboot 模式了。
1. 刷写非国行GPT分区文件
fastboot flash partition gpt.bin
2. 刷写Boot分区
fastboot flash boot boot.img
3. 刷写System分区 此处刷入的是欧版XT 1092的Android 6.0 ROM。
fastboot flash system system.img_sparsechunk.0
fastboot flash system system.img_sparsechunk.1
fastboot flash system system.img_sparsechunk.2
fastboot flash system system.img_sparsechunk.3
fastboot flash system system.img_sparsechunk.4
fastboot flash system system.img_sparsechunk.5
fastboot flash system system.img_sparsechunk.6
fastboot flash system system.img_sparsechunk.7
fastboot flash system system.img_sparsechunk.8
fastboot flash system system.img_sparsechunk.9
4. 恢复出厂设置
fastboot -w
5. 重启
fastboot reboot
不出意外的话,此时重启进入系统便是欧版XT 1092的Android 6.0系统了。理论上来说这个系统也能够满足日常使用的需要。但是不能安全地进行OTA升级。因为官方OTA一般都带有bootloader和基带之类的固件,常规OTA升级后可能导致手机无限重启或是变砖。因此最终目标还是刷入CM系统。而CM系统的OTA是由CM放出的,可以放心地OTA,一般不会导致上面所述的问题。
6. 刷入Recovery
使用管理员权限执行一键刷入Recovery.bat即可。刷入的是TWRP Recovery。
7. 通过Recovery刷入CM
先进入fastboot模式,然后选择Recovery按 音量加 确认。事先将CM的刷机包放置在手机的内部存储中。按提示刷入即可。记得事先在Recovery内清空用户数据。
8. 刷入GAPPS
Google全系列的服务是必不可少的。GAPPS的刷机包可通过http://opengapps.org/下载。刷入方法和刷CM类似。刷入前也请事先清除用户数据。
可选
9. 如何移除开机第一屏的警告
解锁以后,每次开机的第一屏都会变成一个告诉你手机已解锁的警告,这十分烦人。在 xda-developers 上面,有破解过的 logo.bin, 在 fastboot 下刷入以后即可移除警告,并且有的 logo.bin 还带有自定义的开机 logo。
fastboot flash logo logo.bin
10. 如何刷Xposed
http://forum.xda-developers.com/showthread.php?t=3034811
11. 开机设置时的谷歌服务
刷入谷歌服务后开机,需要设置谷歌账号。由于众所周知的原因,直接连接是不可能的。而由于这个时候又不能设置手机上的VPN,所以如何想办法正常进入系统呢?
方法一:
设置路由器级别翻墙,如OpenWRT,极路由等。
方法二:
在选择WIFI的界面,点击“跳过”,这个时候会出现一个确认框,问你是否确认跳过。在这个时候拔出手机SIM卡,然后再点击确认跳过,即可跳过谷歌服务的开机设置,正常进入系统后即可添加VPN或Shadowsocks然后正常添加谷歌账号。
12. 如何消除网络连接的感叹号
https://www.v2ex.com/t/303889#reply33
adb shell “settings put global captive_portal_server captive.v2ex.co”
如果最近升级到了Android 7.1.1,那么该设置的语法稍有改变,使用一下命令重新设置
adb shell "settings put global captive_portal_http_url http://captive.v2ex.co/generate_204";
adb shell "settings put global captive_portal_https_url https://captive.v2ex.co/generate_204";
13. 修复基带
如果因为错误刷机导致基带等通讯模块损坏,可能的症状如LTE正常,一打电话回落2G就重启,可尝试重新刷基带固件。
解压NewMotoModerm.zip,手机进入Fastboot模式连接电脑,管理员权限执行一键FlashModem.cmd,选择XT 1085即可。
14. 杂项
CM 13中,Moto的各项传感器功能都是正常工作的,比如甩动两下开启相机等,在“设置”->“快捷手势”中开启即可。
CM 自带Root,在开发者选项中开启即可。
移动网络4G LTE正常,电信联通未测试。
下载内容
1. LineageOS 14 Nightly https://download.lineageos.org/victara
2. OpenGAPPS http://opengapps.org/
3. 欧版XT 1092 Android 6.0 ROM以及fastboot等工具合集(Windows版本)(不再提供)