今天感觉自己爽爽哒,完成了我Motorola Moto g的“救砖”之行,还升了级,刷了CyanogenMod,以及现在还在编译CM的android源码,准备自己定制一番。
一切还得从昨天说起。
在那个无比蛋疼的昨天,我为了做一个实验,想把我的moto g手机里面系统自带的openssl库给换掉,没想到刚换完一重启,整个手机就灰屏了,怎么都起不来,变成了传说中的“砖头”手机。那把我给郁闷的啊,因为刚开机就挂,adb也连不上,ssl库也恢复不了,只能想办法重新刷机了。
其实刷机并不难,但是我走了很多弯路,一开始想在sbf.droid-developers.org/phone.php?device=14下载一个官方底包,但是打开一看有好多版本,毫无头绪地乱点下载了一个,发现验证失败。于是又开始了万能但是漫长的google之行,然后发现一个:
fastboot getvar all
就能得到你手机的固件信息,然后我发现其实我应该下载Blur_Version.14.85.4.falcon_umtsds.AsiaRetail.en.03,然后就等了好久好久下下来了(这里说一下,falcon其实就是Moto g XT1033的代号)。
然后我按照这里的步骤(传说中的“MOTO G 官方救砖升级教程”哦),但是发现还是他妈的验证不过。。。
我想死的心都有了,但是哥的日子还长着呢,哥当然不能现在死啊,于是继续google,我发现如果要手动一步一步刷机的话,第一步就是:
fastboot flash partition gpt.bin
然后我发现这个包解压出来的这一步就不通过。。。突然我想起来我之前在胡乱下包的时候从这里下了一个Android 4.4.2 KitKat的固件包Blur_Version.14.85.4.falcon_umtsds.AsiaRetail.en.03
,记得当时执行这条命令好像是可以通过的。
于是抱着活马当作死马医的念头,我就把这里的gpt.bin换到了之前的官方底包里面,运行:
./flashall.sh
竟然成功了,而且成功启动起来了!!!!
但是,总有一个但是,系统起来后发现wifi连接的时候不懂为什么,密码框一直没法激活,我也不管那么多了,现在的这个官方底包好像是4.3的系统,而那个Blur_Version.14.85.4.falcon_umtsds.AsiaRetail.en.03
是4.4.2 KitKat系统,于是我就直接再按照这里的做法把系统升级了,然后,就一切都迎刃而解了!
之后我还是希望能自己编译源码安装(现在有一种控制欲,总是希望自己能控制源码!),于是就选择了CyanogenMod,至于什么是CyanogenMod,可以看我之前写的一篇博客。
说句题外话,我发现CM的官方文档写得真是认真,很多地方都试图把概念解释的很清楚,希望没有太多背景的人也能看懂,太佩服他们了!
在编译源码之前,我先尝试了下直接安装Nightly包,方法特别简单,可以参照这里,如果熟悉的人可以直接操作下面的步骤:
解锁Unlock(这个就不说了,直接参照这里的步骤吧)
刷Recovery包:先在这里下载CWM-swipe-6.0.4.7-falcon.img
,然后将手机重启到bootloader模式,把recovery包刷进去:
adb reboot bootloader fastboot flash recovery CWM-swipe-6.0.4.7-falcon.img
再进入Recovery选项(怎么进这里就不说了,直接看文档吧)
在这里下CM的包,我下的是cm-11-20140719-NIGHTLY-falcon.zip
.
继续进入ClockworkMod Recovery模式,先wipe data/factory reset,然后install zip > install zip from sideload,在电脑上运行:
adb sideload cm-11-20140719-NIGHTLY-falcon.zip
然后就搞定了。
具体可以看这个文档,讲的特别详细。不过中间有一个地方需要提一下,我在按照这里讲的方法操作的时候会遇到一个问题,就是它一直找不到vendor/motorola/falcon/falcon-vendor.mk
这个文件,于是我在这个github上下了个falcon文件夹,然后复制到vendor/motorola
目录下,就可以了,简单来说,流程是这样的:
安装环境(这个不讲了,直接安装文档上装sdk,adb,fastboot,以及一系列apt-get
就可以了。
下载CyanogenMod-android源码:
mkdir -p ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir -p ~/android/system
cd ~/android/system/
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
repo sync
等了好几个小时才下好,下了10多G吧。
继续前期准备:
cd ~/android/system/vendor/cm
./get-prebuilts
cd ~/android/system/
source build/envsetup.sh
breakfast falcon
在这里就会遇到我之前说的找不到falcon-vendor.mk
的错误,按照之前的做法把这个文件夹补上去就好了。
然后插上手机:
cd ~/android/system/device/motorola/falcon
./extract-files.sh
最后开始编译:
cd ~/android/system
brunch falcon
然后就坐等编译结束啦!
编译结束之后,会在out/target/product/falcon
目录下生成一个recovery.img
和一个cm-11-20140719-UNOFFICIAL-falcon.zip
文件,只需要和之前安装步骤一样进行安装就好了:先关机,进入bootloader模式,然后刷入recovery.img
cd ~/android/system/out/target/product/falcon
fastboot flash recovery recovery.img
然后进入ClockworkMod Recovery,选择install zip > install zip from sideload,在电脑上运行:
adb sideload cm-11-20140719-UNOFFICIAL-falcon.zip
重启,搞定!