本指南将会以Moto Defy为例告诉你关于Android刷机的一切相关知识,我会尽全力来向你解释这款手机如何工作,怎么去Root,怎么安装SBF。最重要的是:这些固件如何起作用,这样你就不会因为安装一个不正确的Rom而让你的手机变砖了。
(注意:对你手机造成的任何破坏,我可概不负责 )
一、为什么你的Android手机不会“变砖”? 被锁的Bootloader,这又是什么意思?
对一些人来讲,被锁的Bootloader这个设置比较操蛋,而对大多数人来讲(一般不是高级玩家),这确实是一个相当酷的功能,这相当于给你的手机加了一道保险。这个锁定的Bootloader, 就意味着你没有办法重写官方的Bootloader, 或者官方版的Recovery。
当手机打开Bootloader的时候,也就意味着基本上手机的全部硬件都打开了,手机处于可用的状态。我们就能使用官方恢复功能,手机的这一个功能也被锁定,它既不能被删除,也不能被修改,但它具有恢复出厂功能,以及安装升级包的功能。
起初的时候,这个设置造成了一定的麻烦,因为有了这个被锁的Bootloader,你就没有办法安装一个像CM一样自定义的Rom。这时,2nd Init登场了,这个不起眼的应用可以在Bootloader运行之后取得权限,允许Defy去加载一个不同的,非官方版的Android版本。
你甚至可以安装一个自定义的恢复软件,这个恢复软件可以在手机内存中运行,而不是从手机恢复分区中运行,这意味着什么呢?这就是说,即使你的手机变成砖了,或者不慎删除了你的资料,又或者手机系统分区出现问题,你都可以利用它来进行恢复,手机仍能够被RSD(Linux下的一个刷机脚本,Windows下叫RSD Lite,很老的刷机软件了。)以引导模式状态来识别,手机还能够用官方或者修改的Rom重新刷机。这样,手机又能正常使用了。
幸亏有了这个被锁的Bootloader, 这样即使你想把Android变砖也相当困难。
国内论坛中出现的众多问题实际上并不是真的变砖了,而是没有正确的刷SBFs。手机要是真的变砖了就意味着手机不能加载引导程序,也不能初始化手机硬件,这时你就需要用JTAG来直接重新给你的手机写程序(这个软件我也不是很确定能不能在Defy上使用。)
二、root你的Android!
什么是root,为什么人人都在讨论它?
Android手机本质是Linux系统,生来文件系统就是被锁定的,这就是说用户只能对手机进行一些简单的操作,安装/卸载 应用程序,更换手机铃声或者其他的一些基本的东西。你可以看到系统文件,但是不能对其进行操作,也不能更改Android系统的实际操作。
ROOT也就是说你可以像Linux系统管理员一样来访问手机系统。也就说你可以访问和改变系统文件,删除/创建 文件或文件夹等等。想要安装像2ndInit一样需要访问Android系统文件的权限的应用的话,你就得取得读写系统文件的权限。
庆幸的是,给Defy Root是一件相对简单的事情,而且一般不会有什么问题。
友情提示:如果你买的是国行手机,取得root权限会使设备无法保修。
获取root权限:
1.安装ADB。
1.)下载ADB for Linux的工具包,解压到你便于找到的地方。下载地址
2.)新建并编辑一个文件:
1 sudo vi /etc/udev/rules.d/51-android.rules在里面写入:
1 SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666"其中ATTR{idVendor}的值不同厂商的标识不一样,请按照自己的手机更改。参照表如下:
Manufacturer USB Vendor ID Acer 0502 Dell 413c Foxconn 0489 Garmin-Asus 091E HTC (Older Phones) 0bb4 HTC (Newer phones) 18d1 Huawei 12d1 Kyocera 0482 LG 1004 Motorola 22b8 Nexus One/S 18d1 Nvidia 0955 Pantech 10A9 Samsung 04e8 Sharp 04dd Sony Ericsson 0fce ZTE 19D2 3.)保存退出,设置权限:
1 sudo chmod a+rx /etc/udev/rules.d/51-android.rules4.)编辑 ~/.bashrc 文件加入ADB tool的路径:
1 vi ~/.bashrc在末尾加入刚下载的工具包解压的路径:
1 export PATH=${PATH}:/home/rabbit/Documents/platform-tools5.)重启你的Ubuntu,然后USB连接手机,确保usb调试已打开,在终端下输入
1 2 adb start-server adb devices如果一切正常,就能显示出当前连接到电脑的android设备。
2. 下载 rageinthecage-arm5和 Superuser package:
rageagainstthecage-arm5:下载地址
md5: bfa28d457b54508326ab55d11399c586
Superuser package:下载地址
md5: 43d9a40b63e916635d5ad7ca32433fab
3.解压 rageinthecage-arm5 和 Superuser package 到 adb 所在目录(Android SDK 安装目录的 /platform-tools 下)。
4.用 USB 数据线将 Motorola Defy 连上电脑。
5.在电脑上打开终端并运行下列命令:
1 2 3 4 adb push rageagainstthecage-arm5.bin /data/local/tmp/ adb shell chmod 755 /data/local/tmp/rageagainstthecage-arm5.bin /data/local/tmp/rageagainstthecage-arm5.bin运行完毕后继续执行下列命令:
1 2 3 4 exit adb kill-server adb start-server adb shell注意:这时命令行的提示符应该是“#”。如果你看到的是“$”说明命令没有正确执行,请重试第4和第5步。
1 2 3 4 5 mount -o rw,remount /system exit adb push su /system/xbin/ adb shell chmod 4755 /system/xbin/su adb push Superuser.apk /system/app/
6.现在,你的 Motorola Defy 现在就拥有 ROOT 权限了。
三、刷机!
1.Linux下刷入SBF文件
什么是SBF?
SBF文件是Android打包的刷到你手机上全部信息的一个刷机包。在这个刷机包中,有众多的文件,每个文件都以CG XX命名,XX是数字,表示一个序号。
所以,当你给手机刷一个完整版的SBF文件时,它会先取得手机内存权限、格式化内存、创建新的分区,然后把刷机包中的文件拷贝到新的分区中。每个分区都对应着一个CG XX的文件。
刷机包中包含着众多的CG文件,这些CG文件中含有Android系统的版本号。假设你在用Android 2.0,第一版,没有任何升级包,没有任何其他乱七八糟的应用。这个版本的版本号就是第一版。
当手机升级之后,其版本号变成第二版,以此类推。每个Android版本都有独有的一个ID, 一旦你升级了,你就不能回滚到上个版本,在这个版本信息中保存在刷机包的CG31和CG39的文件中。
SBF修改版
这个版本就是说移除CG31和CG39的SBF版本,这样就能在不同Android版本中自由迁移。但是,因为修改版的SBF不能创建 /System (CG39) 和nd CDT (CG31)2个分区,我们需要自己用软件Nandroid Backup来复制系统文件,否则的话,手机可能在缺失/System的分区下不能正常使用。
这个软件就是一款能读写的可自定义恢复的zip文件,它能删除/拷贝 /system分区内的所有文件以及其他分区的文件,并且在操作的同时不会格式化分区也不会重新划分分区,这样就既不会修改系统配置。这也就意味着你不可能在操作的时候把你的手机变成砖,但你可能会使Android系统不能启动,新的SBF包或者Nandroid就需要安装。
CG 版本
有了以上的解释,顺便来说说CG版本。
如果你刷机的版本低于手机本来的版本,那么在手机启动之后会看到黑屏,或者是提示你刷一个官方的Rom版本。只要记住这一点,你就可以在不同Android版本之间来回刷机了,这样也不会让你的手机变砖。如果你有一块Android 2.0版的defy,而且希望它一直保持降级的能力,你只需要安装一个你想要的Android版本的修改版SBF,然后用相应的Nandroid来进行恢复系统文件。
官方SBF
这里是所有官方的SBF清单(目前这个清单下载链接已经失效,但可以作为参考,下载请看这个清单),就是说它们都包含全部的CG文件,刷这些SBF后你的手机就像刚从Moto卖给你一样,你要记着刷了这种完整的SBF包进行升级,你就不能降级到一个低版本了。了解了这些,你就应该能尝试不同的Android版本咯,也能毫无压力的去商店咯。只要弄清楚CG文件的原理,大胆刷机吧。
Do it!
0.)保持你的手机电量超过50%。(至少!)
1.)下载你想刷的SBF文件。
2.)下载sbf_flash文件到你的ADB目录下:下载。sbf_flash作者blog
3.)
1 2 chmod +x sbf_flash sudo ./sbf_flash xxxxxx.sbf现在,命令行应该会提示你重启手机到bootloader模式。
2.通过fastboot刷入img文件
1.)下载fastboot:点击下载
2.)
1 2 sudo chmod a+x fastboot sudo ./fastboot devices成功识别到设备会出现一行字,如果没有成功则什么都没有。
3.)写一个文件到闪存分区,如写入一个文件到boot分区:
1 sudo ./fastboot boot XXX.img
友情提示:想要从任何一个ROM版降级,你只需要刷装一个完整版的官方版的SBF(切记检查CG版本)。
四、常见问题及解决办法:
1.启动的时候黑屏:尝试安装一个比目前手机系统中CG版本更低的系统。
2.安装修改版SBF后出现灵异问题:安装一个与手机SBF相匹配的Nandroid备份,记着先在Recovery模式中清除系统缓存。
3.如何进入恢复模式?同时按下手机电源键和音量减,直到屏幕上出现一个黄色的三角形,一旦看到这个,就意味着进入了recovery模式。现在同时按住音量加、音量减,屏幕上就会出现一个菜单,如果你的是 Éclair 版,不用按任何键就会出现这个菜单。
4.如何进入Bootloader模式?按住电源键和音量+键直到手机屏幕上出现一些白色的字,这就进入了Bootloader模式。
五、参考文章:
Motorola Defy: Full Update Guide
All-in-One Defy Beginner’s guide
How to root Defy via Linux!
Fastboot
写的有点乱,若在刷机中遇到其他问题,欢迎留言探讨!
最后,新年快乐!
转载地址:http://blog.seanchang.me/the-guide-of-falsh-the-android-system-on-the-linux.html