参考链接:

https://source.android.com/docs/automotive

编译

先决条件:

内存:大于16G(最好上到24G)

系统:Ubuntu20.04(最好不要有桌面)

手机:Pixel 5

  1. 安装编译环境所需的依赖库

    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
    
  2. 新建目录

    mkdir aosp
    cd aosp
    
  3. 下载源码

    推荐南京大学aosp、清华大学aosp源

    下载每月的初始化包

    curl -o aosp.tar <https://mirror.nju.edu.cn/aosp-monthly/aosp-latest.tar>
    tar -xvf aosp-latest.tar
    
  4. 配置git信息

    git config --global user.email "email"
    git config --global user.name "name"
    
  5. 安装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
    
  6. 初始化仓库,指定需要的版本

    repo init -u <https://mirror.nju.edu.cn/git/aosp/platform/manifest> -b android-12.0.0_r3
    repo sync
    
  7. 解压驱动文件

    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 -
    
  8. 调整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空间
    
  9. 初始化编译环境,开始编译

    初始化编译环境

    source build/envsetup.sh
    或
    . build/envsetup.sh
    

    选择需要编译的版本(或自行指定版本)

    lunch
    或
    lunch product_name-build_variant
    例如 lunch aosp_arm64-userdebug
    这里指定为 lunch aosp_redfin_car-userdebug
    
  10. 编译

    编译系统,可指定线程数
    m -j8
    
    编译汽车相关包
    m [email protected] [email protected]
    
  11. 刷写镜像(进入fastboot模式),等待重启

    fastboot -w flashall
    
  12. 推送汽车所需的特定文件

    关闭验证
    adb root
    adb disable-verity
    adb reboot
    
    将所需的汽车特定文件推送到设备(在编译好的镜像目录)
    adb root
    adb remount
    adb sync vendor
    adb reboot
    

screencap.jpg