apk打包流程

 我来答
科创17
2022-06-09 · TA获得超过5878个赞
知道小有建树答主
回答量:2846
采纳率:100%
帮助的人:171万
展开全部

aapt给每一个非assets目录的资源定义一个资源ID,它是一个4字节(byte = 32bit)的数字,格式是PPTTNNNN,PP代表资源所属的包(package),TT代表资源的类型(Type),NNNN代表这个类型下面的资源名称(Entry ID)。

对签名后的apk进行解压缩,在META-INF目录下一般会有三个文件: MANIFEST.MF、CERT.SF和CERT.RSA 三个文件,这里用不同的证书和签名方式得到的名字可能不同。

APK包在安装的时候,是按照RSA->SF->MF的顺序依次校验的:**先用公钥信息还原签名信息,然后和.SF文件中的信息进行比对,然后用同样的摘要算法对.MF文件里的每一个条目计算对应的摘要信息,然后比对.MF是否一致。

缺点

简单来说,v2签名模式在原先apk块中添加了一个新的块(签名块),新的块存储了签名、摘要、签名算法、证书链和一些额外的属性等。这个块有特定的格式。

apk的格式签名后变成了下面4个部分

其中第三部分有一个偏移值直接指向了第二部分的开始位置,而每个第二部分如Central directory header1 .... Central directory header n 的有一个便宜字段指向了其中对应的第一部分。

签名块包括对apk第一部分、第二部分和第三部分的二进制内容做加密保护,摘要算法以及签名算法。签名块本身不做加密,这里需要特殊注意的是由于第三部分包含了对第二部分的引用偏移,因此如果签名块做了改变,比如在签名过程中增加了一种签名算法,或者增加签名者等信息就会导致这个偏移发生改变,因此在算摘要信息的时候需要剔除这个音粗要以第三部分对签名块的偏移来做计算。

接下来我们看看具体的apk签名块格式,改格式分为4个部分:

怎样找到v2分块的位置:ZIP中央结尾记录->中央目录其实偏移量->固定magic值,然后就可以定位v2分块的位置。

v2签名块负责保护第1、3、4部分的完整性,以及第二部分包含的APK签名方案 v2分块中的 signed data 分块的完整性。第1、3、4部分的完整性是通过内容摘要来保护的,这些摘要保存在 signed data 分块中,而 signed data 分块的完整性是通过签名保证的。下面开计算摘要的过程

第1、3和4部分的摘要要采用以下的计算方法

从上面我们可以知道v2模式块有点类似于

深圳云诺科技
2024-11-11 广告
敏捷项目管理平台是源自于企鹅厂的敏捷研发协作平台,提供贯穿敏捷研发生命周期的一站式服务。覆盖从产品概念形成、产品规划、需求分析、项目规划和跟踪、质量测试到构建发布、用户反馈跟踪的产品研发全生命周期,提供了灵活的可定制化应用和强大的集成能力,... 点击进入详情页
本回答由深圳云诺科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式