硬件配置
CPU:i7-6700k 四核八线程,内存:32G,硬盘2T
Window10 + Virtual Box Ubuntu20.04
VirtualBox配置
设置-系统-处理器,勾选启用嵌套vt-x
CPU和内存配置尽量调大
配置window和Ubuntu共享文件夹
window中的共享文件夹名字为vbUbuntuShare,命令改成
sudo mount -t vboxsf vbUbuntuShare /home/liam/shareToWindow/
下载Android系统代码
安装git,配置用户名和邮箱
sudo apt install git
git --version
git config --global user.name "xxx"
git config --global user.email "xxx"
配置repo
下载repo,依赖python,git
mkdir ~/bin
//当前窗口有效
PATH=~/bin:$PATH
curl -sSL 'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
chmod a+x ~/bin/repo
修改~/bin/repo文件中的内容
REPO_URL = ‘gerrit.googlesource.com/git-repo
改成,REPO_URL=”gerrit-googlesource.proxy.ustclug.org/git-repo“
创建存放系统代码目录
mkdir asop_13
sudo chmod a+w .asop_13/
下载系统代码
repo init -u https://android.googlesource.com/platform/manifest
//改成国内镜像
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
cd asop_13
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-13.0.0_r43
repo sync -j4
同步成功提示
repo sync has finished successfully
编译系统代码
安装配套工具
sudo apt install flex bison build-essential zlib1g-dev gcc-multilib g++-multilib libncurses5
sudo apt install lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
增加swap分区到20g左右(单次窗口设置有用,重启重置为原来的值)
sudo dd if=/dev/zero of=/var/swap bs=1M count=20000
sudo mkswap /var/swap
sudo swapon /var/swap
sudo chmod -R 0600 /var/swap
sudo vim /etc/fstab(系统重启有效),添加
free -m
查看swap分区大小
开始编译
cd aosp_13
source build/envsetup.sh
lunch sdk_pc_x86_64-userdebug
m -j8
lunch,命令可以查看编译的版本,这里选择可以使用在avd虚拟机上的sdk_pc_x86_64-userdebug
userdebug,编译出的系统拥有root权限,可以用于调试
编译成功提示信息
Create system-qemu.img now
在/home/liam/aosp_13/out/target/product/emulator64_x86_64目录生成
system-qemu.img、vendor-qemu.img、ramdisk-qemu.img等系统镜像文件
打包编译好的系统镜像
cd aosp_13
source build/envsetup.sh
lunch sdk_pc_x86_64-userdebug
m -j8 emu_img_zip
在/home/liam/aosp_13/out/target/product/emulator64_x86_64目录生成文件
sdk-repo-linux-system-images-eng.liam.zip
模拟器启动系统
Window通过模拟器打开编译好的系统文件(尝试在Virtual Box Ubuntu上无法运行)
通过共享文件夹把文件分享到Window
emulator命令在sdk\tools目录下,可以配置到环境变量上
.\emulator.exe -list-avds
//打印
Pixel_2_API_33
Pixel_5_API_30
启动
把sdk-repo-linux-system-images-eng.liam.zip解压到selfSystemImages目录
.\emulator.exe -avd Pixel_2_API_33 -sysdir G:\Android\sdk\system-images\selfSystemImages\x86_64
在关于设备可以看到构建版本
【Android】Ubuntu20.04编译Android 13并用模拟器运行
Android 系统开发系列(1):Android 12 源代码下载、编译和刷机