昨天想给Pixel3刷一个安卓原生的image,记录一下踩的那些坑。
工厂Image(Factory Images)
工厂image是厂家的刷机包,包含各种厂家预装,GMS等。可以下载来备份。如果以后需要刷回去的话。可以直接Google搜索Factory Images,可以找到以下链接:
https://developers.google.com/android/images#blueline
同时,这个包里面包含一键刷机的脚本等,可以作为参考。
原生的Google Images
Google有一个持续集成原生AOSP的网站,可以从上面下载到最新的自动build的代码。
https://ci.android.com/builds/branches/aosp-master-with-phones/grid?
从之前工厂image的地址,我们知道Pixel3的产品代号是Blueline. 点开一个build结果。
image.png
下载这个后缀为sh的脚本,不要下载那个5G多的,那个是所有的Targe文件。执行完sh后,会要求你接受License,敲入“I ACCEPT”,然后它会解压出一个ZIP文件。里面就是所有需要的包。
踩坑开始
按照我以往刷机的经验(3年前了),我们只要用 adb reboot bootloader重启到bootloader模式,然后用fastboot flash <PartitionName> <PartitionName.img> 一个个把相应分区刷了就行了。
但是刷到System这里却遇到了错误:'Partition should be flashed in fastbootd'
然后我就查询了什么是fastbootd, 引导我指向了这个网页:https://source.android.google.cn/devices/bootloader/fastbootd?hl=zh-cn
所以看起来,他们新加了一个fastbootd的模式,这个模式可以用adb reboot fastboot或者从recovery进入(从recovery模式的菜单里面选择可以进入fastbootd模式)。我手动尝试切换到fastbootd模式,再刷system,可以刷上。但是最后到vendor又会失败。
解决办法
最后发现了解决办法。更新到最新的fastboot。然后我用的是fastboot flashall的方式(会提示需要设置一个环境变量到img所在的路径),刷写成功。它从bootloader模式开始,然后会自动重启到fastbootd刷剩余的img。
我没有查看是否使用一个个刷的方式也能成功。
手动刷的话,注意如果提示需求未满足。一般是应该先要刷bootloader, 然后重启到bootloader模式,再刷radio,再重启到bootloader模式。让它运行在更新以后的bootloader和radio下。才可以做后续的操作。
网友评论