Android簽名相關知識整理
不止一次有用到Android簽名相關的知識,每次都幾乎從零開始在Google上搜尋找,不想在繼續這樣了,找了個時間好好整理了一下自己用到的一些碎片知識,於是乎放到這裡,一是備忘,二是幫助別人。
從APK檔案中獲取簽名資訊
使用方法
keytool -list -printcert -jarfile your_apk_file
輸出資訊
- 簽名Owner,Issuer等資訊
- 簽名的fingerprints,如md5及sha1等值
- 簽名有效期等資訊
示例效果
16:29 $ keytool -list -printcert -jarfile akoi_1.2.apk Signer #1: Signature: Owner: CN=Andrew Wallace, OU=droidyue.com, O=droidyue.com, L=Beijing, ST=Beijing, C=86 Issuer: CN=Andrew Wallace, OU=droidyue.com, O=droidyue.com, L=Beijing, ST=Beijing, C=86 Serial number: 11a8a4a3 Valid from: Tue Feb 10 18:07:43 CST 2015 until: Sun Jun 13 18:07:43 CST 3013 Certificate fingerprints: MD5: 46:C5:BE:EF:B5:C9:00:E1:FA:42:50:50:57:54:CA:15 SHA1: C1:14:5D:0A:C2:BF:F6:06:43:20:AE:2C:07:12:97:58:C2:1B:39:D1 SHA256: 0E:88:7D:C2:4C:D6:84:A7:58:D4:24:1E:9D:38:F9:05:98:1E:B2:A2:D7:CB:0F:81:74:60:5B:38:89:FF:21:1C Signature algorithm name: SHA256withRSA Version: 3
從簽名檔案中獲取簽名資訊
使用方法
keytool -list -v -keystore your_kestore_file
注意,上述命令執行後,會提示輸入密碼,其實輸入錯誤也沒有關係,不影響結果。
輸出資訊
- 簽名Owner,Issuer等資訊
- 簽名的fingerprints,如md5及sha1等值
- 簽名有效期等資訊
示例效果
Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry Alias name: droidyue.com Creation date: Feb 10, 2015 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Andrew Wallace, OU=droidyue.com, O=droidyue.com, L=Beijing, ST=Beijing, C=86 Issuer: CN=Andrew Wallace, OU=droidyue.com, O=droidyue.com, L=Beijing, ST=Beijing, C=86 Serial number: 11a8a4a3 Valid from: Tue Feb 10 18:07:43 CST 2015 until: Sun Jun 13 18:07:43 CST 3013 Certificate fingerprints: MD5: 46:C5:BE:EF:B5:C9:00:E1:FA:42:50:50:57:54:CA:15 SHA1: C1:14:5D:0A:C2:BF:F6:06:43:20:AE:2C:07:12:97:58:C2:1B:39:D1 SHA256: 0E:88:7D:C2:4C:D6:84:A7:58:D4:24:1E:9D:38:F9:05:98:1E:B2:A2:D7:CB:0F:81:74:60:5B:38:89:FF:21:1C Signature algorithm name: SHA256withRSA Version: 3
重新簽名APK
在沒有原始碼情況下,我們就能對apk進行更換籤名。
指令碼
使用方法
bash signapk.sh your_apk_file your_keystore_file keystore_pass keystore_alias
示例效果
16:57 $ bash signapk.sh weixin6313android740.apk ~/Documents/baidu_disk/百度雲同步盤/droidapp/mykiki 123456 droidyue.com param1 weixin6313android740.apk param2 /Users/androidyue/Documents/droidapp/mykiki param3 123456 param4 droidyue.com deleting: META-INF/MANIFEST.MF deleting: META-INF/DROIDYUE.SF deleting: META-INF/DROIDYUE.RSA adding: META-INF/MANIFEST.MF adding: META-INF/DROIDYUE.SF adding: META-INF/DROIDYUE.RSA ...... Verification succesful
生成的檔案會放在當前目錄,其檔名相對輸入檔案,增加了signed_
字首,比如對weixin6313android740.apk
進行上述操作得到的輸出檔案是signed_weixin6313android740.apk
Gradle build生成簽名APK
想要在執行gradle build時生成指定簽名的apk,需要在build.gradle中如下修改
android { signingConfigs { release { storeFile file("myrelease.keystore") storePassword "********" keyAlias "******" keyPassword "******" } } buildTypes { release { signingConfig signingConfigs.release } } }
相關文章
- 【Android】Android 簽名相關問題Android
- apk簽名相關文章APK
- 數字簽名相關概念介紹
- CT校正相關知識整理
- Java容器相關知識點整理Java
- 【雜談】FilterChain相關知識整理FilterAI
- 【詳解】WebSocket相關知識整理Web
- JVM相關知識整理和學習JVM
- Java知識整理Java
- Maven知識整理Maven
- 高階 Java 面試通關知識點整理Java面試
- Linux 動態庫相關知識整理Linux
- Android關於鍵盤相關知識Android
- 複習做UWP時涉及到的幾種加密簽名相關加密
- 前端筆記(關於css盒模型知識整理)前端筆記CSS模型
- 前端面試資料整理【相關知識篇】前端面試
- 資料庫相關知識點(秋招整理)資料庫
- JavaScript知識點整理JavaScript
- CSS知識點整理CSS
- [心得]UNP知識整理
- JVM 面試知識整理JVM面試
- 知識目錄整理
- CANFD知識點整理
- 課堂知識整理
- kafka知識整理——部署Kafka
- MQTT知識點整理MQQT
- Android 名企面試題及涉及知識點整理Android面試題
- Android進階知識:Handler相關Android
- Spring和Springboot相關知識點整理Spring Boot
- 【linux】Linux程式相關知識學習整理Linux
- Flow 常用知識點整理
- 原生JS知識點整理JS
- Handler知識收集整理
- Babel基礎知識整理Babel
- Runtime知識點整理
- JAVA核心面試知識整理Java面試
- Blender入門知識整理
- JS基礎知識整理JS