res/raw 中的文件将映射到R.java 文件。访问时直接使用资源ID,即R.id.filename; asset文件夹中的文件不会映射到R.java。访问时,需要AssetManager类
Jarsigner阶段
对apk进行签名,可以进行Debug和Release签名
通过zipalign工具,将签名后的apk进行对齐处理
二、签名过程
签名是什么
作用:保证消息来源的真实性保证消息不会被第三方篡改
在APK 中写入“指纹”。指纹写入后,APK中的任何修改都会导致指纹失效。 Android系统在安装APK时不会进行签名验证,从而保证安全。
如何实现签名
留言摘要
对消息数据执行单向Hash函数,生成固定长度的Hash值。这个哈希值就是消息摘要。
消息摘要只能保证消息的完整性,而不能保证消息的不变性。
数字签名
一个完整的数字签名方案应该由两部分组成:签名算法和验证算法
RSA密码系统是一种公钥密码系统。公钥是公开的,私钥是保密的。其加密和解密算法是公开的。
数字证书
Android中的签名方案
V1: 基于Jar签名
MANIFEST.MF : 逐一查看APK 中的所有条目。如果是目录则跳过。如果是文件,则使用SHA1(或SHA256)消息摘要算法提取文件的摘要,然后将其编码为BASE64。
CERT.SF : 进一步摘要MANIFEST.MF
CERT.RSA :会使用私钥计算之前生成的CERT.SF文件的签名,然后将签名和包含公钥信息的数字证书写入CERT.RSA中存储。
签约流程
image-20191227114115764.png 验证流程
image-20191227114146264.png 签名验证速度慢
在验证过程中,需要对apk中的所有文件进行摘要计算。在APK资源较多、性能较差的机器上,签名验证会花费较长时间,导致安装速度慢、完整性保护不足。
META-INF目录用于存储签名。当然,这个目录本身并不包含在签名验证过程中。您可以随意在该目录中添加文件。例如,一些快速批量打包解决方案选择在此目录中添加通道文件V2:Android7.0。介绍
全文件签名方案,可发现对Apk 受保护部分所做的所有更改,有助于加快验证速度并增强完整性保证
v2签名模式在原来的APK块上添加了一个新的块(签名块)。新的区块存储签名、摘要、签名算法、证书链、附加属性等信息。
即把APK分成1M大小,分别计算这些段的summary,最后计算这些segment的summary得到最终的summary,这就是APK的summary。然后将APK摘要+数字证书+其他属性写入生成签名数据到APK Signing Block中
签约流程:
image-20191227113659513.png验证流程:
image-20191227113629363.pngV3:Android9.0中引入
其格式大体上与v2类似。在v2插入的签名块(Apk Signature Block v2)中,添加了一个新块(Attr块)
验证流程
【探索2019:那年那些精彩瞬间回顾】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
难道你说的是2019年的事情吗?
有8位网友表示赞同!
好久了!想念2019年的感觉。
有12位网友表示赞同!
回想起2019年发生过的事情真是让人感慨万千。
有9位网友表示赞同!
什么是你在说? 2019 年啊,时间过得真快。
有16位网友表示赞同!
我那时候还在读书,现在都毕业这么久了。
有16位网友表示赞同!
当年流行什么呀?2019年有什么新的潮流趋势?
有20位网友表示赞同!
那时候科技发展真迅速!
有16位网友表示赞同!
2019年发生了哪些重大事件呢?
有20位网友表示赞同!
我希望那个时候的自己可以再年轻一点。
有17位网友表示赞同!
那时候的感觉真好,充满了朝气蓬勃。
有8位网友表示赞同!
是不是有人在2019年做过哪些有趣的事情?
有20位网友表示赞同!
2019年有什么受欢迎的电影、歌曲吗?
有7位网友表示赞同!
记得当年买了一件喜欢的衣服在那年春天,现在好像都找不到了啊。
有19位网友表示赞同!
还有谁也在那年经历了人生阶段性的改变?
有19位网友表示赞同!
2019年是不是对你们来说是一个特别重要的年份?
有8位网友表示赞同!
希望大家回忆起来2019年的美好时光!
有8位网友表示赞同!
我们现在都在做什么呢,有没有人还在坚持当初的梦想?
有16位网友表示赞同!
你记得2019年的天气吗?
有16位网友表示赞同!