编译AOSP,目标设备:pixel,设备代号:sailfish

原创
2021/03/04 20:47
阅读数 230

记录编译AOSP途中遇到的一些坑,以及经验总结

下载源码

  1. 官方文档链接:https://source.android.google.cn/setup/build/downloading
  2. 推荐使用中科大源:http://mirrors.ustc.edu.cn/help/aosp.html

下载预编译的二进制文件,主要是一些驱动之类的不开源的

https://developers.google.cn/android/drivers#sailfishqp1a.191005.007.a3 注意选择的build代号需要与源码分支的build代号一致,下载下来的tgz文件,解压出来的是一个sh文件,放在源码根目录执行sh文件,会将二进制文件自动放到vendor/文件夹下面

开始编译

  1. 官方编译教程链接:https://source.android.google.cn/setup/build

下面是对编译步骤的总结

  1. 假设源码目录为aosp:cd aosp
  2. 初始化编译环境:. build/envsetup.sh
  3. 选择编译目标和类型:lunch aosp_sailfish-user
  4. 编译出各种img的镜像文件:m

上面编译出来的是img文件,如果需要编译出可用的刷机zip包,则需要以下步骤:

  1. 上面的1、2、3步执行完毕后

  2. 创建编译的zip文件的存放目录:mkdir dist_out

  3. 不使用m编译img文件,使用这个命令编译出完整的zip:make dist DIST_DIR=dist_out,此命令编译完成后,会在dist_out目录下面生成很多文件,主要使用*-target_files*.zip

  4. 对上面的zip文件进行签名

    1. 首先生成签名文件,签名文件只需要生成一次:
      subject='/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com' 这条命令里面的信息可以修改成自己的
      mkdir android-certs android-certs目录用来存放生成的签名文件
      	for x in releasekey platform shared media; do \
      		./development/tools/make_key .android-certs/$x "$subject"; \
      	done
      
    2. 使用上面签名文件对zip文件进行签名
    sign_target_files_apks \
    -o \    # explained in the next section
    --default_key_mappings .android-certs out/dist/*-target_files-*.zip \
    signed-target_files.zip
    
  5. 从上面签名的zip文件里面生成可刷机的zip包:./build/tools/releasetools/img_from_target_files signed-target_files.zip signed-img.zip

  6. 然后就可以在bootloader模式下面来进行刷机:fastboot update signed-img.zip

以上都是对Android的官方编译文档进行的总结,地址:https://source.android.google.cn/devices/tech/ota/sign_builds#creating-image-files ,详细信息可以在官方网站进行查看

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部