参考链接:
https://source.android.com/docs/automotive
先决条件:
内存:大于16G(最好上到24G)
系统:Ubuntu20.04(最好不要有桌面)
手机:Pixel 5
安装编译环境所需的依赖库
Ubuntu18.04已经更高版本,参考上述链接
sudo apt-get install git-core zip 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
新建目录
mkdir aosp
cd aosp
下载源码
推荐南京大学aosp、清华大学aosp源
下载每月的初始化包
curl -o aosp.tar <https://mirror.nju.edu.cn/aosp-monthly/aosp-latest.tar>
tar -xvf aosp-latest.tar
配置git信息
git config --global user.email "email"
git config --global user.name "name"
安装repo,同步源码
mkdir ~/bin
PATH=~/bin:$PATH
curl <https://mirror.nju.edu.cn/git/git-repo> -o repo > ~/bin/repo
chmod a+x ~/bin/repo
切换到解压后的源码路径中执行同步操作(默认四个线程同步)(—fail-fast,出现同步线程报错则退出)
repo sync
或
repo sync -j1 --fail-fast
初始化仓库,指定需要的版本
repo init -u <https://mirror.nju.edu.cn/git/aosp/platform/manifest> -b android-12.0.0_r3
repo sync
解压驱动文件
curl --output - <https://dl.google.com/dl/android/aosp/google_devices-redfin-sp1a.210812.016.a1-8813b219.tgz> | tar -xzvf -
tail -n +315 extract-google_devices-redfin.sh | tar -zxvf -
curl --output - <https://dl.google.com/dl/android/aosp/qcom-redfin-sp1a.210812.016.a1-8d32b5b1.tgz> | tar -xzvf -
tail -n +315 extract-qcom-redfin.sh | tar -xzvf -
调整swap空间
free -h 查看swap空间大小
sudo swapoff /swapfile # 关闭swap空间
sudo fallocate -l 16G /swapfile # 申请swap空间
sudo chmod 600 /swapfile # 设置权限
sudo mkswap /swapfile # 设置swap空间的文件
sudo swapon /swapfile # 开启swap空间
初始化编译环境,开始编译
初始化编译环境
source build/envsetup.sh
或
. build/envsetup.sh
选择需要编译的版本(或自行指定版本)
lunch
或
lunch product_name-build_variant
例如 lunch aosp_arm64-userdebug
这里指定为 lunch aosp_redfin_car-userdebug
编译
编译系统,可指定线程数
m -j8
编译汽车相关包
m [email protected] [email protected]
刷写镜像(进入fastboot模式),等待重启
fastboot -w flashall
推送汽车所需的特定文件
关闭验证
adb root
adb disable-verity
adb reboot
将所需的汽车特定文件推送到设备(在编译好的镜像目录)
adb root
adb remount
adb sync vendor
adb reboot