接上文https://blog.csdn.net/dongyi1988/article/details/128617738
直接拆分那么在代码和做包过程中,需要用到分仓,super.img、boot、OTA升级包的拆分与组合,vendor与system相关依赖处理,开机验证链还必须给镜像签名。
代码管理
定制xml文件,可实现从不同仓下载代码
示例见 https://www.bbsmax.com/A/xl56yE1oJr/ 这里可从本地仓库../CyanogenMod/android_build.git、远程仓库https://android.googlesource.com/platform/build/blueprint同步代码。
拆包
https://blog.csdn.net/dongyi1988/article/details/103994321
跟踪这个博客可以找到包括OTA包、boot.img、super.img等的拆解。
相关拆包网址还很多,例如https://blog.51cto.com/u_15243273/5426783
VNDK(The Vendor Native Development Kit)
google官网https://source.android.google.cn/docs/core/architecture/vndk
使用方式参考官网或源代码。
打包
编译日志可以查看所有镜像的生成流程。
boot打包是mkbootimg,参考地址https://blog.csdn.net/kunkliu/article/details/122278029
super 打包是lpmake,参考地址https://cloud.tencent.com/developer/article/2126595
制作OTA包,android原生工具https://source.android.com/docs/core/ota/tools?hl=zh-cn,输入参数tardis-target_files.zip解压就是目标版本的相关文件,修改替换即可。
签名
1.secboot镜像签名依赖平台方案商,高通sectool,联发科sign_flow.py&pl_lk.py,流程自查源代码)
2.avb镜像签名,avbtool工具 https://android.googlesource.com/platform/external/avb/+/master/README.md#Using-avbtool
使用范例https://blog.csdn.net/dongyi1988/article/details/103995737 dm-verity小结
3.对OTA包的签名https://source.android.com/docs/core/ota/sign_builds?hl=zh-cn#sign-ota-packages
拆包、打包以及签名涉及很多镜像,具体操作流程可以查编译日志。
组OTA包服务器思考:
1、服务器不存储完整OTA包,只存储所有域的镜像,
2、设备发送自己的硬件信息与需求到服务器,
3、服务器检索匹配域镜像,组包生成需求的OTA包。