技术的演进都是有原因的,带着好奇的思路,所以今天的问题是:
- Android v1 v2 v3 签名机制是什么样子的,或者说各自是如何保证 apk 的防篡改的?
- v1 -> v2 -> v3 主要是为了解决什么问题,或者带来了什么好处?
- 对于快速的多渠道打包,针对 v1,v2,v3 都可以怎么做,有哪些开源库可以考虑?
更多问答 >>
-
2019-12-15 23:55
-
2019-12-20 00:08
-
每日一问 Activity 都重建了,你 Fragment凭什么活着?
2019-12-23 23:19 -
每日一问 ViewPager 嵌套,“老子”怎么就没拦住你?
2019-12-29 23:52 -
每日一问 很多书籍上写:“事件分发只有一次 ACTION_DOWN,一次 ACTION_UP”严谨吗?
2020-01-07 00:08 -
2019-12-04 00:18
-
每日一问 | Activity启动流程中,大部分都是用Binder通讯,为啥跟Zygote通信的时候要用socket呢?
2019-11-30 20:49 -
2019-11-26 00:12
-
2019-11-22 00:10
-
每日一问 | Kotlin 中不需要写“ ; ”,但是有个场景意外?
2019-11-22 00:12
卧槽,这两天在搞多渠道打包,想这几天忙完学习一下签名,这都出题了!
参考美团的文章
https://tech.meituan.com/2017/01/13/android-apk-v2-signature-scheme.html目前总结如下:v1
以前大部分通过python打多渠道包原理,都是解压apk,在META-INF目录下添加空文件,文件名就是渠道名,而这种方式只能在v1签名的情况下使用,v1签名不校验META-INF,而v2签名将META-INF列入保护区,这种方式打出来的渠道包是过不了安装时候的签名验证的。
v2
v2签名,首先整个APK(ZIP文件格式)会被分为以下四个区块
应用的签名信息会被保存在区块2(APK Signing Block)中,其它3个区块是受保护的,所以可以在区块2做文章:
区块2中APK Signing Block是由这几部分组成:
V2的签名信息是以ID-value格式保存在APK Signing Block这个区块的ID-value 组中,所以美团开源的“瓦力”,原理就是将渠道信息以id-value的格式,写到区块2(APK Signing Block)的 ID-value 组中
最终我选择美团的“瓦力”,搞定多渠道打包,就等发布apk了~
美团瓦力
https://github.com/Meituan-Dianping/wallev3 我还没用过,所以没有考虑,后面学习~
赞~
知识盲区了。。。
Google到一篇关于介绍v3的文章,觉得讲得很棒:
https://xuanxuanblingbling.github.io/ctf/android/2018/12/30/signature/官网上介绍v3的地址(要那个):
https://source.android.com/security/apksigning/v3已经养成习惯了,每次看到有新的问答的时候,点进来先看回答区是否有小缘。。
有点感动
搜出来篇觉得很全面.也很棒
https://mp.weixin.qq.com/s?__biz=MzIyNTY1MDc4NQ==&mid=2247483933&idx=1&sn=91db6685ff16e832897fb31215b1c44b&chksm=e87d3313df0aba0566715f863d12ddead211b1b91f49a82cc43331fee63022e85b5e053ba749&mpshare=1&scene=23&srcid=&sharer_sharetime=1564533545643&sharer_shareid=28c8871dc58734c8e65adbc7b16eda64#rd真的,很棒...我就是想舔舔那位大佬
v1:先有个apk校验功能,把签名信息放一个地方
v2:在此基础上优化一下,把签名信息放好几个地方v3:签名过期了可怎么办,得处理处理看到id先点个赞