Ubuntu 22.04编译AOSP Android 13

欢迎加入我的知识星球Android系统开发指南

欢迎关注微信公众号 无限无羡
欢迎关注知乎账号 无限无羡

代码下载

配置

安装下载代码所需工具
sudo apt install curl repo git
下载配置repo
mkdir ~/bin/
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo
chmod +x ~/bin/repo

vim ~/.bashrc
最后一行加入下面内容
export REPO_URL=‘https://mirrors.tuna.tsinghua.edu.cn/git/git-repo’
source ~/.bashrc

配置git环境,email和name配置成自己的名称
git config --global user.email “[email protected]
git config --global user.name “Your Name”

下载

创建保存代码的目录,我下载分支为android-13.0.0_r35,如果想下载其他分支,请查看
source-code-tags-and-builds

mkdir -p ~/work/android/aosp/android-13.0.0_r35
cd ~/work/android/aosp/android-13.0.0_r35
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r35
repo sync -j16
-j后面的数字为使用cpu的线程数,我的电脑是20线程,我选择16防止电脑卡顿,后面编译也是如此。

如果下载时出现提示找不到Python的错误,请执行如下步骤:
sudo apt install python2.7
sudo ln -s /usr/bin/python2.7 /usr/bin/python

代码编译

编译工具安装

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g+±multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip libncurses5 openjdk-8-jdk

编译代码

cd ~/work/android/aosp/android-13.0.0_r35
source build/envsetup.sh
下面选择自己想要的版本,如果想要启动模拟器的话,要选择sdk开头的,比如aosp_car_x86_64-userdebug是无法启动模拟器的,sdk_car_x86_64-userdebug 可以启动模拟器
lunch sdk_car_x86_64-userdebug
make -j8
等待编译完成,我编译了一个半小时,如果选择-j16的话应该会更快。

启动模拟器

编译完成后在同一窗口执行:
emulator
如果切换了终端窗口,则执行
source build/envsetup.sh
lunch sdk_car_x86_64-userdebug
emulator -writable-system // -writable-system表示系统可写,不加的话无法adb push文件到系统
下面是启动后的页面截图:

在这里插入图片描述

代码调试

调试工具安装

安装adb调试工具
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb
安装完成后执行
adb devices
可以看到模拟器正在运行
在这里插入图片描述

修改代码验证

我们把首页的文字改掉,先找到路径:
packages/services/Car/car-maps-placeholder/res/values/strings.xml
在这里插入图片描述

修改一下

在这里插入图片描述
通过查看Android.bp文件,我们知道要编译CarMapsPlaceholder
source build/envsetup.sh
lunch sdk_car_x86_64-userdebug
make CarMapsPlaceholder -j16

编译完成后把编译产物apk push到系统进行验证,先执行
adb root
adb remount
提示要reboot系统
在这里插入图片描述
adb reboot
再次执行
adb root
adb remount
adb push out/target/product/emulator_car_x86_64/system/app/CarMapsPlaceholder/CarMapsPlaceholder.apk /system/app/CarMapsPlaceholder/
退出首页重新进入一下,看到我们的修改已经生效

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41678668/article/details/129758687