一:简介

        本文主要介绍一下如何下载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)

Flash

Link

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的源码来学习了。