Ubuntu20编译Aosp10源码

Ubuntu20编译Aosp10源码


前言

手机环境:Pixel 3XL

AOSP版本:android-10.0.0_r2

编译环境:Ubuntu20.04.5,CPU:8C,内存:8G,交换区:8G

参考链接:

一、源码及驱动下载

二、编译环境

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值