参考资料:
https://zhuanlan.zhihu.com/p/24565934
https://jingyan.baidu.com/article/922554465eba1a851648f498.html
应用签名完后在应用的META-INF目录下会有三个文件:
CERT.RSA、CERT.SF和MANIFEST.MF。
- MANIFEST.MF
保存了所有其他文件的SHA1摘要并base64编码后的值。
Manifest-Version: 1.0
Built-By: Generated-by-ADT
Created-By: Android Gradle 3.0.0
Name: AndroidManifest.xml
SHA1-Digest: JgS8hi/u5txxP+uSsBVNwj7wgE4=
Name: META-INF/services/javax.annotation.processing.Processor
SHA1-Digest: RZGkYwteeBoN4bOBqm9V5k2NK7c=
Name: META-INF/services/javax.ws.rs.ext.MessageBodyReader
SHA1-Digest: nE4joHf340zTEN5s1Ka8p0GtOWs=
- CERT.SF文件
是对MANIFEST.MF文件中的每项中的每行加上“\r\n”后,再次SHA1摘要并base64编码后的值(这是为了防止通过篡改文件和其在MANIFEST.MF中对应的SHA1摘要值来篡改APK,要对-MANIFEST的内容再进行一次数字摘要)。
Signature-Version: 1.0
Created-By: 1.0 (Android)
SHA1-Digest-Manifest: hJEM2JomfAsIVZfwFMsOprP/HAQ=
X-Android-APK-Signed: 2
Name: AndroidManifest.xml
SHA1-Digest: 6LtYyRAILFOZ7BjmPcO85jHNBrA=
Name: META-INF/services/javax.annotation.processing.Processor
SHA1-Digest: dsQliVANyC5lalTcFO36rbshNd0=
Name: META-INF/services/javax.ws.rs.ext.MessageBodyReader
SHA1-Digest: 79duRfQdw1qiTZxOujGG4BFCaGE=
- CERT.RSA文件:
包含了签名证书的公钥信息和发布机构信息。
3082 029a 0609 2a86 4886 f70d 0107 02a0
8202 8b30 8202 8702 0101 310b 3009 0605
2b0e 0302 1a05 0030 0b06 092a 8648 86f7
0d01 0701 a082 01a3 3082 019f 3082 0108
a003 0201 0202 0451 4c41 4b30 0d06 092a
8648 86f7 0d01 0105 0500 3013 3111 300f
0603 5504 0313 0862 616f 7369 6768 7430
2017 0d31 3330 3332 3231 3133 3232 375a
180f 3230 3633 3033 3130 3131 3332 3237
5a30 1331 1130 0f06 0355 0403 1308 6261
6f73 6967 6874 3081 9f30 0d06 092a 8648
86f7 0d01 0101 0500 0381 8d00 3081 8902
8181 00af abb6 17df 1ad2 8fc1 37cd 3ea5
b832 aea0 b786 b565 3b36 9c72 425a 9bb6
b3aa b25c 7766 cef7 d668 9f37 6d16 2fcc
7408 67cf 5ee1 11c7 0842 261a 352c 690c
ba00 6724 d463 01d9 60ac d1e9 5915 b5f6
7413 e503 8e50 b2da 4882 f457 4155 22a4
f28f 2cb7 702c 2b42 a4a6 8973 ba09 b7e3
4fc7 e7bb 8969 b36a 833d 7c78 a372 c3cb
06b4 0d02 0301 0001 300d 0609 2a86 4886
f70d 0101 0505 0003 8181 0063 5479 6b37
332a 3532 cda9 26cb 76cc a499 644e a954
0215 7ca7 5959 3764 6034 bc22 2e83 91e4
9860 c7af ad25 d117 d8cd 2b69 c7a3 37aa
876c b58f df03 ba9b 5b15 2214 2e8f 3d76
219b 7128 94f2 2b86 a4f1 e035 8948 9d90
ba93 0230 e63a f7e3 edef 93c6 80a2 d96e
02a6 6bb0 f023 bd38 149f dc40 f25d bb4a
9e27 ecac 1a54 69ea e396 4531 81c0 3081
bd02 0101 301b 3013 3111 300f 0603 5504
0313 0862 616f 7369 6768 7402 0451 4c41
4b30 0906 052b 0e03 021a 0500 300d 0609
2a86 4886 f70d 0101 0105 0004 8180 0b06
c45f 597d 759d edb5 41e4 0114 b55a 1fb2
6ce6 2373 16ad 7624 4159 7071 603b 2df6
d48a 9ba0 00c5 3572 a545 ef00 6ae4 a530
bb53 d8fd 4878 fd93 a263 6247 4fcf f16d
fdde 6170 e471 6712 eed0 aba6 c1cd da2e
deec ebf3 a19d ea43 25b6 bcef 3d43 3637
851f c6f1 dc27 e49f 0742 79f1 342b fbc9
799c d494 e1c4 5017 d2ed 2ab3 eb0c