编译AOSP
环境准备
手机:Pixel系列(此次实验使用Pixel2,代号walleye),建议使用pixel和nexus系列进行操作,其他厂商手机不方便确认AOSP版本与对应的vendor二进制驱动文件;
确认需要编译的AOSP版本号(vendor驱动程序要和aosp版本匹配才行,所以需要参考官方的镜像是基于哪个版本的AOSP进行编译的)
到Nexus和Pixel设备的出厂映像找到目标系统对应的AOSP build号,注意手机型号。比如,此次实验需要给Pixel2刷入Android11的系统,而该系统对应的AOSP build号为
RP1A.201005.004.A1如下图
根据上面的build号找到对应的AOSP版本号,我这里是
android-11.0.0_r25
根据AOSP版本号,找到对应的驱动二进制文件,有几个就下几个(有些只有一个,有些有两个):Driver Binaries for Nexus and Pixel Devices

Ubuntu18系统的虚拟机(老型号、老系统尽量使用老的Linux发行版进行操作),注意配置:
- 内存:至少至少16GB(如果内存不够,一定不会编译成功),至少22GB,最好30GB往上
- 存储:至少至少500GB(AOSP源码在200GB左右,编译之后也这么大)
- CPU:至少8核,越大越好,不超过物理机的逻辑处理器数量就可以
- 网络:通信良好,不掉线就可以,越快越好(不强制具备境外通信能力)
- 其他:无所谓,看个人喜好
安装一些软件、依赖
1
2
3
4
5
6
7sudo apt update && \
sudo apt install flex bison build-essential zlib1g-dev gcc-multilib g++-multilib \
libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev \
lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc fontconfig make git-core \
gnupg zip unzip curl openjdk-8-jdk -y && \
sudo apt clean && \
sudo apt autoremove -y给python3做软链接:某些脚本里面默认使用python,而不是python3或者python2,而Ubuntu18环境中默认为python3(版本为python3.6)
1
2sudo ln -s /usr/bin/python3.6 /usr/bin/python
python --version
下载源码
借助清华源,初始化仓库,注意下面脚本最后的参数应该是上述对应的AOSP版本号
1
2
3
4
5
6
7
8sudo mkdir -p ~/bin/aosp && \
sudo PATH=/bin:$PATH && \
sudo curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo && \
sudo chmod a+x ~/bin/repo && \
sudo echo `export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'` >> ~/.bashrc && \
sudo source ~/.bashrc && \
sudo cd ~/bin/aosp && \
sudo repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r25开始下载:j8表示使用8个进程下载,不要超过给虚拟机的CPU核心数量。保持网络通畅,不要断开,我这里下载了6个小时(睡一觉刚好)。
1
sudo repo sync -j8
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 少欣安全!