android架构拆分方案-编译相关方案与技术

news2024/11/27 4:25:17

接上文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包。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153585.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VisualODX——ODX数据自动转换工具

在创建ODX数据库的过程中,我们需要录入大量的数据以及应对多种数据格式。这不仅费时费力,而且还需要很高的人力成本,并且其错误率也高,从而导致了效率低下、开发速度缓慢。基于多年的汽车行业诊断经验,Softing开发了Vi…

基于微信小程序的课程分享平台小程序

文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…

xv6-lab3: page table

文章目录1.speed up system call2. print page3. Detecting which pages have been accessedwhere is page table?function of page table?how to get arguments from user to kernel? – reference:https://stackoverflow.com/questions/46870509/how-to-pass-a-value-into…

风速记录仪大屏幕液晶显示全中文操作菜单操作简单

风速记录仪功能特点◆本机体积小巧美观,大屏幕液晶显示,全中文操作菜单,操作简单,性能可靠,记录间隔可根据要求从1分至24小时任意设置。(但由于存储器空间有限,设置后也可随时查看存储信息&…

【阶段三】Python机器学习09篇:机器学习项目实战:决策树回归模型

本篇的思维导图: 项目背景 决策树除了能进行分类分析,还能进行回归分析,即预测连续变量,此时的决策树称为回归决策树。回归问题是一类预测连续值的问题,而能满足这样要求的数学模型称作回归模型,本项目应用决策树回归模型进行探索新冠疫情、原材料、人工、物流等因素对…

generalized focal loss之quality focal loss(附代码)

参见paper 其中包含有Quality Focal Loss 和 Distribution Focal Loss。 先来说一下Quality Focal Loss, 在这之前,先要了解一下Focal Loss, 在这篇文章里有写过。 它主要是解决class imbalance,同时降低容易分类的weight,使训练更集中到难…

集成开发工具IDEA导入新项目,update index时间过程

集成开发工具IDEA导入新项目,update index时间过程,一般这种场景出现在: 1.继承开发工具比较新(使用了优化的索引算法,这种算法一般是前期编译比较慢,一旦编译完,存入缓存,后期搜索就…

C语言经典100例(008,009,010)

题目&#xff1a;输出9*9口诀。 程序分析&#xff1a;分行与列考虑&#xff0c;共 9 行 9 列&#xff0c;i 控制行&#xff0c;j 控制列。 程序源代码&#xff1a; #include<stdio.h> int main() {int i,j,result;printf("\n");for (i1;i<10;i){for(j1;j…

fork()||fork(),循环fork()与\n

fork()||fork()输出几个A&#xff1f;父进程左边的fork()产生一个子进程&#xff08;1&#xff09;&#xff0c;父进程fork返回值>0,||不执行右边。子进程&#xff08;1&#xff09;中fork()返回0&#xff0c;执行||右边的fork()产生第二个子进程&#xff08;2&#xff09;到…

电脑蓝屏怎么解决?一键快速解决蓝屏问题

电脑蓝屏也是一个经常出现的情况&#xff0c;让人十分头疼。蓝屏的原因有很多&#xff0c;但大多数是由内存条、硬盘或散热系统造成的。电脑蓝屏怎么解决&#xff1f;遇到这个问题&#xff0c;可以从下面四个方法来入手&#xff0c;一键快速解决电脑蓝屏问题&#xff01; 操作环…

Android 深入系统完全讲解(9)

3 JNI 调试 开发 android 应用&#xff0c;主要围绕着 java 语言&#xff0c;可是&#xff0c;如果我们需要追求性能&#xff0c;或者需要调用之前我们已经写好的 c c so 库的时候&#xff0c;或者和硬件打交道的时候&#xff0c;那么我们就会接触到 JNI&#xff08;java nati…

Cadence:层次化电路+信号线束

之前用Altium Designer做工程&#xff0c;偏向于使用层次化电路信号线束的方式画图&#xff0c;类似下图&#xff1a; 现在工作需求使用Cadence&#xff0c;继续采用层次化电路设计信号线束的方式&#xff0c;总结如下&#xff1a; 打开OrCAD Capture&#xff0c;创建一个工程…

libtorch在windows使用(c++项目中部署.pt)

狗头pytorch官网教程&#xff1a;Loading a TorchScript Model in C — PyTorch Tutorials 1.13.1cu117 documentation首先我已经有了个model.pt&#xff0c;就不需要做前面序列化为文件之类的操作&#xff0c;直接从在C中加载开始最后成功的版本&#xff1a;example-app.cpp 内…

计算机CCF-C的SCI期刊,值得投稿吗? - 易智编译EaseEditing

ccf应该说是比较权威的&#xff0c;哪怕是C类。 目前不少SCI期刊开始在投稿时&#xff0c;就建议非英语母语作者进行SCI润色后再投稿。 甚至有的杂志还将润色后的English editing certificate作为硬性上传文件指标&#xff0c;列在投稿系统中。 英语润色也是为了避免学术上的…

超优化文章记录之NeurIPS2022_Gradient Descent: The Ultimate Optimizer

作者&#xff1a;Kartik Chandra 单位&#xff1a;MIT 官网链接&#xff1a;Github 下面将首先以简单翻译文章重要内容&#xff0c;穿插一些讲解&#xff0c;并进行简单的复现实验。之后总结各种资料&#xff0c;如review意见等。最后讲解代码&#xff0c;研究具体实现。 文章…

VUE_关于Vue.use()详解

问题 相信很多人在用Vue使用别人的组件时&#xff0c;会用到 Vue.use() 。例如&#xff1a;Vue.use(VueRouter)、Vue.use(MintUI)。但是用 axios时&#xff0c;就不需要用 Vue.use(axios)&#xff0c;就能直接使用。那这是为什么呐&#xff1f; 答案 因为 axios 没有 instal…

Arduino工程的创建和实例使用

下载安装 网址&#xff1a;https://www.arduino.cc/en/software&#xff0c;如下图&#xff0c;选择合适的版本下载使用 下载后直接安装就行 因为这是一个完全开源免费的软件不需要破解&#xff0c;只需要注意安装目录就行 可以参考https://blog.csdn.net/impossible_Jesse…

Kubernetes(k8s) 笔记总结(三)

提示&#xff1a;针对kubernetes的服务网络学习。 文章目录一、Kubernetes的 Service服务发现 ClusterIP方式1. Service 介绍2. Service 暴露ClusterIP的方式(集群内部访问)3. Service 暴露NodePort方式(集群外也可以访问)二、Kubernets 之 Ingress1. Ingress 介绍2. Ingress 安…

十一、51单片机之串口通信

1、通信的关键 (1)事先约定。通信之前规定好的&#xff0c;如通信速率&#xff0c;起始信号&#xff0c;结束信号等。 (2)通信传输的基本信息单元。 (3)信息的编码、传输、解码。 2、通信相关的概念 2.1、同步和异步 (1)同步通信要求接收端时钟频率与发送端时钟频率一致&a…

【Python爬虫项目实战】Python爬虫采集弹幕数据

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、开发工具二、环境搭建三、数据来源查询分析四、代码实现1. 发送请求2.设置编码格式3.解析数据4.保存数据总结前言 今天给大家介绍的是Python爬虫采集弹幕数…