Ubuntu 24.04 AOSP 编译

808 阅读1分钟

系统 Ubuntu 24.04.2 LTS

CPU Intel® Core™ i5-14600K × 20

内存 32.0 GiB

硬盘 1.0 TB

下载源代码

AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

  1. 下载 repo 工具:
mkdir ~/bin
PATH=~/bin:$PATH
cd ~/bin
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
  1. 初始化仓库:
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r43 
  1. 同步源码树(以后只需执行这条命令来同步):
repo sync

下载总计耗时25分钟

安装编译工具

参考官方文档:source.android.google.cn/docs/setup/…

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
# 找不到libncurses5,可以使用本机更高版本替代
sudo ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6.4 /usr/lib/x86_64-linux-gnu/libncurses.so.5
sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6.4 /usr/lib/x86_64-linux-gnu/libtinfo.so.5
  • libncurses.so.5
  • libtinfo.so.5

这俩必须同时替换。。。或者采用更新安装源的方式:

编译Android

chen@chen:~/AOSP$ source build/envsetup.sh
chen@chen:~/AOSP$ lunch

修改 build/make/target/product/AndroidProducts.mk 文件,增加 sdk_phone_x86_64-eng 部分

执行 lunch sdk_phone_x86_64-eng

执行 m 编译 ![[Pasted image 20250304001614.png]]

Build sandboxing disabled due to nsjail error

如标题所示,这个是在编译AOSP的时候可能会遇到的警告。这个错有两种情况:

Ubuntu24.04 上编译
根据链接 https://groups.google.com/g/android-building/c/DbDKuaIik3M 所说,ubuntu24.04上的一些修改,会导致编译时遇到这个错误。

临时解法是执行这个命令sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
如果想持久化生效的话,可以编辑文件/usr/lib/sysctl.d/10-apparmor.conf,将上面的key value添加进去,使用sysctl -p /usr/lib/sysctl.d/10-apparmor.conf 或者重启生效
在Docker里面编译
在Docker里面编译可能会遇到这个错误,解决办法是创建容器时,添加一个 --privileged 参数

‘%error-verbose’, use ‘%define parse.error verbose’

external/mesa3d/src/freedreno/ir3/ir3_parser.y:491.1-14: warning: deprecated dir ective: ‘%error-verbose’, use ‘%define parse.error verbose’ [-Wdeprecated] 491 | %error-verbose | ^~~~~~~~~~~~~~ | %define parse.error verbose groups.google.com/g/android-b…

解决方法:

sudo apt install bison

exit status 137

Android13 编译ninja failed with: exit status 137 解决办法: 1,增加交换内存 2,make -j4 限定一次只能执行4个作业

emulator 无法成功启动模拟器

blog.csdn.net/Q1302182594…

image.png