前两天在淘宝上买了个nexus 6,下载了官方Rom,想刷机,但是遇到一些问题,纪录一下。

准备工具

首先Mac上面是不需要安装android驱动的。但是需要fastbootadb(可选)。这个可以通过下载:

https://dl-ssl.google.com/android/repository/platform-tools_r22-macosx.zip
#其中r22是API版本号,查版本号:
http://source.android.com/source/build-numbers.html

同样的,其他平台,也可以这样下载,具体可以通过下面的地址查询。

https://dl.google.com/android/repository/repository-10.xml

所以刷机是不需要下载android sdk的。

解锁bootloader

如果已经可以用adb连接手机,那么直接运行:

adb reboot bootloader

如果运行adb devices看不到自己的设备,可能是没有开启「开发者选项」。如果在「设置」里面看不到,可以到「关于手机」,点击7下「版本号」,就出来了。

如果不想用adb重启,可以直接关机,按住电源键+声音下,就进入bootloader了。

这时候看看手机上的显示,device是否unlock,如果是locked,就运行:

fastboot oem unlock
#终于用上这货了。

刷系统

Google官方Factory Images for Nexus Devices下载最新的系统,然后解压。按照传统方法,直接运

./flash-all.sh

但是奇怪的是刷5.1的时候会报错:

target reported max download size of 536870912 bytes
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
fastboot(1742,0xa03021a8) malloc: *** mach_vm_map(size=1779851264) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
failed to allocate 1778070480 bytes
error: update package missing system.img

看样子,难道是因为image-shamu-lmy47i.zip太大了?既然这样就只能手动一个个的刷了。首先解压image-shamu-lmy47i.zip,然后依次运行

fastboot flash bootloader bootloader-shamu-moto-apq8084-71.08.img
fastboot reboot-bootloader
fastboot flash radio radio-shamu-d4.0-9625-02.95.img
fastboot reboot-bootloader
fastboot flash system system.img
fastboot flash userdata userdata.img 
fastboot flash boot boot.img

或者直接运行

fastboot -w flashall

然后用音量键,选择”Recoery”,点击电源键,重启。此时会进入一个android小图标,没有其他显示,不要怕,短按 音量键上+电源键。如果没反应,就松手,继续按几下,不出意外应该就会进入recovery模式了。选择 Wipe data/factory data reset",然后重启。这次重启可能持续的时候会比较长(我的手机用了大概2分钟)。