Android应用包管理与安装全解析
1. APK签名证书提取
当SignedData结构包含多个证书时,所有证书都会被提取。此时,需要解析SignedInfo结构来找到实际签名证书的标识符。可以使用以下命令提取APK签名证书:
$ unzip -q -c test.apk META-INF/CERT.RSA|openssl pkcs7 -inform DER -print_certs -out cert.pem
2. Android代码签名特点
- 证书要求宽松 :Android代码签名基于Java JAR签名,使用公钥加密和X.509证书,但与其他平台不同,Android不关心签名证书的内容或签名者,几乎所有Android使用的代码签名证书都是自签名的,也无需声明身份。例如,Google Play商店会进行一些检查,但Android操作系统本身并不严格要求。
- 所有APK条目需相同证书签名 :与“标准”JAR签名不同,Android要求所有APK条目必须由同一组证书签名,而JAR文件格式允许每个文件由不同签名者签名,并且允许无签名条目。
- 证书验证差异 :Android不按PKI意义验证证书,即使证书不是自签名的,签名CA的证书也不必存在或受信任,甚至会愉快地安装带有过期签名证书的应用。
3. Android代码签名工具
- s
超级会员免费看
订阅专栏 解锁全文
6173

被折叠的 条评论
为什么被折叠?



