一:简介
本文主要介绍一下如何下载aosp源码,打入对应的驱动包并基于工厂包刷一个完全由自己编译的aosp镜像包
基于此文,并不能修改驱动或内核,但可以修改hal层和framework以及aosp包中的应用程序
PS(工厂包是集成的google应用的版本,是商用的。替换工厂包中的image后,才可以刷纯原生的开发包)
目前我使用一台pixed3XL的手机来测试,所以下面的示例都是以pixed3XL为标准,读者使用时需以自己手上的google手机为准,下载对应的资源
二:aosp源码和google驱动包
1:aosp源码
代号、标记和 Build 号 | Android 开源项目 | Android Open Source Project
从上面的链接获取想要的源码Tag,如我下载了android12 r3的版本:
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-12.1.0_r3
2:驱动包获取
Driver Binaries for Nexus and Pixel Devices | Google Play services | Google Developers
从上面的链接可以获取到对应源码的驱动包
在源码下载处,r3有如下信息
SP1A.210812.016.A1 | android-12.0.0_r3 | Android12 | Pixel 3、Pixel 3 XL、Pixel 3a、Pixel 3a XL、Pixel 4、Pixel 4 XL、Pixel 4a、Pixel 4a (5G)、Pixel 5、Pixel 5a (5G) | 2021-10-05 |
对应相同的build id,所以驱动包的下载对应为
Pixel 3 XL binaries for Android 12.0.0 (SP1A.210812.016.A1)
驱动包有两部分,一是google的vendor包,二是高通过基础包,两个都要下载
三:google工厂镜像
Factory Images for Nexus and Pixel Devices | Google Play services | Google Developers
从上面的链接可以获取到对应的工厂包
同样,此处理最好也可以按上面的Tag下载对应该的工厂包版本
12.0.0 (SP1A.210812.016.A1, Oct 2021, Verizon) | 914cd97219b85da79fafc4cd466395aca3501c03e3711d7663791f6ab5b20e88 |
按build id查是这一个版本
下载完成后,当前就已经有了可以自己编译pixed3XL android 12 r3版本所需要的所有代码及镜像资源,接下来就是把驱动包打进源码,编译出aosp镜像,替换工厂包中的镜像并烧录进pixed3XL手机。
四:编译并烧录
1:编译
第二步中下载的两个驱动包最终解压出来是两个sh文件,拷贝到aosp源码的根目录,直接执行即可。这两个会在源码中打入 对应手机的kernel和hal层的patch。
接下来按正常的源码编译即可,对应于pixed3XL,lauch时选择 crosshatch,其他版本按对应手机选择即可。
2:烧录
几小时后,你可以得到对应的image包,解压打开第三步下载的工厂包,使用你编译的image替换这个包中的image。再重新打包为zip包。
手机连接usb线,在命令行输入:reboot bootloader。即可进入fastboot 刷机模式,当然,在这之前需要做一些解锁的操作,具体的方法在下载工厂包的链接中google已经有详细说明,请参考google描述。
接下来:如果你是在window的环境中,请执行flash-all.bat,
如果你是在linux/mac的环境中,请执行flash-all.sh
静等一两分钟,刷机即可完成。
后续就可以自己修改aosp的源码来学习了。