手机接收的apk怎么安装,apk文件怎么安装到安卓手机

首页 > 实用技巧 > 作者:YD1662023-11-08 00:40:57

到此我们已经了解另外apk的打包和编译的一个完整流程

这里我们提出两个问题

这两个问题其实答案都是相通的。

在前面一篇文章讲解class文件结构的时候,说到过,class文件有一个常量池的结构,其存储了当前class文件所需的所有常量字符串,外部访问常量的时候,是通过索引的方式进行访问

这里xml文件编译为resources.arsc过程也是这么一个方式。

那为什么要这么使用呢?

字符串复用,资源复用:当前xml文件的标签,属性名称以及属性值都会被编译到resources.arsc资源池中,且去除重复的字段,外部访问的时候,只需要访问使用当前资源索引就可以在资源池中找到对应的资源信息,且不需要每次都去解析对应的字符串,解析资源效率高。第二个问题在第一个问题解中就可以找到了

前面都是讲解源文件编译过程,这里我们再来突出下apk的签名校验过程

APK签名密钥算法:1.消息摘要

如MD5加密后的字符串就是一个消息摘要特点:可以保证数据完整性,但是无法保证数据安全性和不可篡改性

2.数字签名

两部分组成:签名算法和验证算法

知识点:

公钥密码体制 对称加密算法和非对称加密算法

加密:通过公钥使用加密算法对明文进行加密,得到密文

解密:通过私钥使用解密算法对密文进行解密,得到明文

公钥加密的内容一定需要知道私钥才能解出明文由管理员生成一套公钥和私钥。公钥和算法是公开的,私钥是只有管理员才有,保证数据不可以篡改

RSA:

如果单独使用私钥进行加密只可以保证数据的完整性,无法保证数据的保密性且数据大时加密的效率速度很低,所以采用加密摘要算法生成的摘要消息弥补缺点

具体步骤:

发送者:

接收者:

v1签名:

签名过程:

签名三兄弟:1.MANIFEST.MF2.CERT.SF3.CERT.RSA

该内容保存的是逐一遍历 APK 中的所有条目,使用摘要算法如SHA1或者SHA256算出摘要信息,并使用base64编码后,存放到MANIFEST.MF块中每个块包含一个Name属性:存放该文件的路径

手机接收的apk怎么安装,apk文件怎么安装到安卓手机(5)

SHA1-Digest-Manifest:对整个 MANIFEST.MF 文件做 SHA1(或者 SHA256)后再用 Base64 编码

SHA1-Digest:对 MANIFEST.MF 的各个条目做 SHA1(或者 SHA256)后再用 Base64 编码

手机接收的apk怎么安装,apk文件怎么安装到安卓手机(6)

这里会把之前生成的 CERT.SF 文件,用私钥计算出签名, 然后将签名以及包含公钥信息的数字证书一同写入 CERT.RSA 中保存

手机接收的apk怎么安装,apk文件怎么安装到安卓手机(7)

这个数字证书就是我们android签名的时候使用的签名keystore文件:

使用下面命令查看签名证书情况

penssl pkcs7 -inform DER -in /<文件存放路径>/Sample-release_new/original/META-INF/CERT.RSA -text -noout -print_certs

完整签名流程:

手机接收的apk怎么安装,apk文件怎么安装到安卓手机(8)

上一页123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.