Google Nexus设备刷机

来源:互联网 发布:基于单片机设计作品 编辑:程序博客网 时间:2024/05/02 05:00

测试环境
刷机机    :FUJITSU LH532
刷机系统:Windows 7 64bit
手机       :Nexus 7 Wifi 16G nakasi
手机系统:Android 4.1.2 (原生)
目标系统:Android 4.4.2(因为我们的测试需求为4.4.2)
网络       :能够翻墙的网络

1. 下载手机驱动并安装
谷歌官方手机驱动网址:
http://developer.android.com/tools/extras/oem-usb.html
里面包含了大部分手机厂家的驱动下载地址,不过经过我测试不少是无效的,估计是因为这个网站很久没有更新了,各大手机厂家的网址在更新。
谷歌最新USB驱动下载地址:https://dl-ssl.google.com//android/repository/latest_usb_driver_windows.zip
安装方式:
下载 -> 解压 -> 计算机 -> 管理 -> 设备管理 -> 其他设备 -> Nexus 7 -> 更新驱动程序软件 -> 浏览计算机查找驱动程序软件 -> 找到刚刚解压出来的文件夹 -> 一直同意到底 -> 完成。
以上流程就一句话,下载谷歌驱动程序并手动安装。

2. 下载ROM并刷机
谷歌官方ROM下载网址:
https://developers.google.com/android/nexus/images
里面包含谷歌所有设备的镜像,找到我们的测试机nakasi的镜像,https://developers.google.com/android/nexus/images#nakasi


刷机方式:
下载 -> 解压 -> 连接手机 -> 设置 -> 开发者模式打开 -> USB调试(打勾) -> 进入解压后的文件夹 -> 双击flash-all.bat -> 等待刷机结束 -> 连接WiFi -> 设置代理 -> 进入手机 -> 完成刷机
以上流程就一句话,下载官方刷机包自动刷机。为了确保能够正常刷机进入系统需要注意一下几点。
1. 确保能够翻墙。
2. 确保手机驱动已经正确安装。
3. 如果没有开发者模式,打开设置 -> 关于 -> 狂按版本号(8次)。
4. 压缩包未能正确解压,个人推荐Z7
5. 如果刷机后连接WiFi后一直不能进入系统,请设置代理。长按WiFi名字 -> 修改网络 -> 显示高级选项 -> 设置代理。

3. 能进入bootloader模式就能刷机
可能因为某种原因我们的手机不能进入系统了,只能进入bootloader模式,这个时候我们可以试着恢复到之前的版本,如果我们没有备份系统,也没有办法恢复到之前的版本那么我们只剩下刷机了,是的只要进入bootloader模式我们就可以刷机,这个模式一般是不会被损坏的,所以正确情况下手机就不会变砖。
刷机方式还是直接运行flash-all.bat,然后等待刷机结束。
我之前因为把data分区直接干掉了,所以导致了一直不能进入系统,后来进入这个模式直接刷机就好了。下面我们就来分析为什么在这个模式下可以刷机。
flash-all.bat文件
@ECHO OFF
PATH=%PATH%;"%SYSTEMROOT%\System32"
fastboot oem unlock
fastboot erase boot
fastboot erase cache
fastboot erase recovery
fastboot erase system
fastboot erase userdata
fastboot flash bootloader bootloader-grouper-4.23.img
fastboot reboot-bootloader
ping -n 10 127.0.0.1 >nul
fastboot -w update image-nakasi-kot49h.zip
 
echo Press any key to exit...
pause >nul
exit
以上的脚本程序就是这个刷机的所有过程,从这个脚本中我们可以看到和刷机有关的只用到了fastboot这个命令,这个命令可以在bootloader模式下和手机进行通信,我们来解析下这个脚本。
解锁bootloader -> 擦除boot分区 -> 擦除cache分区 -> 擦除recovery分区 -> 擦除system分区 -> 擦除userdata分区 -> 刷入4.23版本的bootloader -> 进入新版本的bootloader -> 测试本地网卡能否正常工作(猜测是updata这个命令用到网络) -> 擦除userdata和cache分区,并格式分区,并刷入新系统 -> 结束。
根据这个脚本我们就很容易知道为什么说现在的手机刷不死了,因为Android对bootloader的保护很到位,所以正常情况下手机是刷不死的。这个是Windows的脚本,Linux的脚本也是一样的,代码如下:
flash-all.sh
fastboot oem unlock
fastboot erase boot
fastboot erase cache
fastboot erase recovery
fastboot erase system
fastboot erase userdata
fastboot flash bootloader bootloader-grouper-4.23.img
fastboot reboot-bootloader
sleep 10
fastboot -w update image-nakasi-kot49h.zip

4. 仅仅更新bootloader
上面我们介绍了如何更新系统,也就是我们说的刷机。但是有时候我们并不需要更新系统,我们仅仅是想要更新基带等驱动,设备驱动会存放在bootloader中,里面包含了我们设备需要的所有驱动,我们可以仅仅更新bootloader,这里仅仅有Linux的脚本。
进入bootloader模式
$ adb reboot bootloader
刷入bootloader
flash-base.sh
#!/bin/sh
fastboot flash bootloader bootloader-grouper-4.23.img
fastboot reboot-bootloader
sleep 10
对比了Linux和Windows版本的刷机脚本,我猜测Windows上也是可以的,直接把sleep 10去掉就好了。
fastboot flash bootloader bootloader-grouper-4.23.img
fastboot reboot-bootloader
0 0