Mctrain's Blog

What I learned in IT, as well as thought about life

Moto G 救砖升级刷CM小记

| Comments

今天感觉自己爽爽哒,完成了我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

然后就搞定了。

my cm

编译源码:

具体可以看这个文档,讲的特别详细。不过中间有一个地方需要提一下,我在按照这里讲的方法操作的时候会遇到一个问题,就是它一直找不到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

重启,搞定!

my cm 2

Comments