杭州Android培训
达内杭州Android培训中心

18357109557

热门课程

达内:Android签名知识整理

  • 时间:2016-03-07
  • 发布:杭州android中心
  • 来源:码农网


    杭州达内Android培训专家整理了一下Android签名知识,帮助达内Android培训班学员提升能力。

1、从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


2、从签名文件中获取签名信息

    使用方法

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


3、重新签名APK

    在没有源码情况下,我们就能对apk进行更换签名。

    脚本

signapk.sh
备用地址

    使用方法

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

4、Gradle build生成签名APK

    想要在执行gradle build时生成指定签名的apk,需要在build.gradle中如下修改


android {

    signingConfigs {
        release {
            storeFile file("myrelease.keystore")
            storePassword "********"
            keyAlias "******"
            keyPassword "******"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}






原文链接:http://www.codeceo.com/article/android-signature.html
上一篇:达内简析Android高性能ORM数据库DBFlow
下一篇:达内Android获取常用辅助方法

恭喜达内获得《产学合作协同育人项目合作伙伴奖》

迷茫小伙参加达内网络营销培训,获8w年薪入职哈道盟

中传学子参加达内Java培训,转身成为Java工程师月薪12.5K

职场求突破参加达内网络营销培训,获10万年薪成为营销达人

选择城市和中心
贵州省

广西省

海南省