源码下载
Ubuntu18.0
(1)更改下载源
源码下载过程比较慢,可以更改apt源为国内源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vi /etc/apt/sources.list
修改内容如下:
#添加阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
(2)安装源码下载工具
sudo apt install curl python git
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
sudo mv ./repo /usr/local/bin
echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc
(3)下载源码
mkdir aosp10
cd aosp10
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-10.0.0_r1
repo sync -j4
下载过程很顺利,没出现问题。
(4)安装环境依赖
sudo apt-get install git-core gnupg flex bison build-essential zip curl 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 unzip fontconfig
源码编译
本来想编译arm64版本的,奈何电脑是x86架构的,也能跑起来,但是效果很差,所以选择了x86_64-eng版本的
cd aosp10
source build/envsetup.sh
lunch
aosp_x86_64-eng
make -j16
可以根据电脑配置选择-j之后的参数
第一次编译出现两个问题
(1)SWAP空间分配过少
可以参考这个链接 https://blog.csdn.net/weixin_42171170/article/details/105784057 解决办法
(2)API问题
按照报错提示,执行指令即可
make test-api-stubs-docs-update-current-api
最终成功编译
启动模拟器
如果是刚刚编译好的,直接输入emulator指令即可,否则,执行这一系列操作
cd aosp10
source build/envsetup.sh
lunch
aosp_x86_64-eng
emulator
第一次没能成功跑起来,出了几个小问题,不过都很好解决。
(1)emulator: ERROR: x86_64 emulation currently requires hardware acceleration!
Please ensure KVM is properly installed and usable.
CPU acceleration status: This user doesn’t have permissions to use KVM (/dev/kvm)
解决:sudo chown 用户名 -R /dev/kvm
(2)statvfs(‘/aosp10/out/target/product/generic_x86_64/snapshots/default_boot/ram.img’) failed: No such file or directory
解决:sudo chgrp 用户名ram.img chmod 766 ram.img
(3)qemu_ram_alloc_user_backed: call 段错误 (核心已转储)
解决:更改显卡驱动为图片中的那个,位置在软件更新里
更新完重启时,我还遇到了一个小问题,进不去Ubuntu桌面,卡在了命令行界面,且出现了报错信息,鼠标键盘都卡死了,强制重启了,进入了Ubuntu高级选项进行了恢复,成功解决。