Ubuntu20编译Aosp10源码
文章目录
前言
手机环境:Pixel 3XL
AOSP版本:android-10.0.0_r2
编译环境:Ubuntu20.04.5,CPU:8C,内存:8G,交换区:8G
参考链接:
一、源码及驱动下载
-
源码下载:根据 https://source.android.com/docs/setup/about/build-numbers (需科学上网)选择Pixel 3XL支持的源码版本“android-10.0.0_r2”,参照, 保存至“aosp1000r2"路径。参考博客:
- 选择Pixel3XL支持的AOSP版本:https://blog.csdn.net/g241893312/article/details/128224109
- AOSP源码下载:https://blog.csdn.net/h5630/article/details/127715207
-
驱动下载链接:https://developers.google.cn/android/drivers,点击下载两个文件保存至“aosp1000r2"路径,解压缩文件,并执行。
二、编译环境
1.添加更新源
# 添加更新源,解决libesd0-dev安装报错
cp /etc/apt/sources.list /etc/apt/sources.list.bak
echo "deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe" >>/etc/apt/sources.list
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe" >>/etc/apt/sources.list
apt update
2.安装java和python
apt -y install openjdk-8-jdk
apt -y install python
# 检查java版本,需要为1.8版本
java -version
# 检查Python版本,需要为Python2版本
python --version
3.依赖下载
apt -y install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
apt -y install -y git flex bison gperf build-essential libncurses5-dev:i386
apt -y install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
apt -y install dpkg-dev libsdl1.2-dev libesd0-dev
apt -y install git-core gnupg flex bison gperf build-essential
apt -y install zip curl zlib1g-dev gcc-multilib g++-multilib
apt -y install libc6-dev-i386
apt -y install x11proto-core-dev libx11-dev
apt -y install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
apt -y install lib32z-dev ccache
apt -y install libssl-dev
# 安装 lib32ncurses5-dev
apt -y install aptitude
aptitude install lib32ncurses5-dev
三、环境设置
1.设置环境变量LC_ALL=C
# 设置环境变量LC_ALL=C
echo "设置 LC_ALL" >> /etc/profile
echo "export LC_ALL=C" >> /etc/profile
source /etc/profile
2.修改交换区空间为8G
参考:https://www.ypojie.com/11463.html
fallocate -l 8G /swap
chmod 600 /swap
mkswap /swap
swapon /swap
swapon --show
# 写入配置文件,永久保存
echo "/swap swap swap defaults 0 0" >>/etc/fstab
四、编译
source build/envsetup.sh
lunch [选择crosshatch]
make -j8
五、刷机
# 手机进入fastboot模式
adb reboot bootloader
# 进入编译完成后的镜像目录
cd out/target/product/crosshatch/
# 刷入
fastboot flashall -w
六、编译问题
-
问题1:FAILED: out/soong/.bootstrap/blueprint-pathtools/test/test.passed
解决:删除源码文件build/blueprint/Blueprints:下的"pathtools/glob_test.go"和fs_test.go内容
-
问题2:NoClassDefFoundError 2. package_whitelist.txt which is not in the whitelist .
解决:将自定义的包名添加到 build/make/core/tasks/check_boot_jars/package_whitelist.txt 文件中
-
问题3://frameworks/base:system-api-stubs-docs Metalava [common]
解决:执行
make update-api
-
问题4:出现stubs-docs-non-updatable metalava 编译失败
解决:减少编译编译线程再执行,由
make -j8
变为make -j6