美文网首页
[转]android studio如何直接给apk包空包签名

[转]android studio如何直接给apk包空包签名

作者: 我是无穷 | 来源:发表于2017-07-21 09:17 被阅读367次

    原文:http://www.youyong.top/article/1158d20f481b

    有一次应用认领,需要对一个空包进行签名,可在android studio中并没有找到直接apk签名的功能,怎么办那?
    其实一条命令就可以。

    android studio签名相关的功能其实都是调用jdk提供的工具实现的,而这些工具我们通过命令行也能够调用(mac和win一样)

    直接对apk进行签名
    使用工具 jarsigner

    该工具位于jdk_xxx\bin目录下(可以cmd+;->sdk location查看jdk的路径) ,命令如下:

    jarsigner -verbose -keystore your_keystore_file -signedjar test_signed.apk test.apk your_keystore_alias

    注: test_signed.apk是签名之后的文件,test.apk是需要签名的文件

    另外需要注意的是,如果你的jdk版本在1.7以上,你在对apk签名时,需要加上这个参数:

    -digestalg SHA1 -sigalg MD5withRSA
    否则同样会出现:Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]的错误。

    可能会有如下警告:

    未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (2042-07-06) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。

    这个警告也不影响签名,只是看着不顺心,命令后加上:

    -tsa https://timestamp.geotrust.com/tsa
    即可

    所以执行的全部命令是:

    jarsigner -verbose -keystore ./Downloads/安卓应用/Keystore/daxueyzd -signedjar ./Downloads/Baidu_Claim.apk ./Downloads/Baidu_Claim_unsigned.apk your_keystore_alias -digestalg SHA1 -sigalg MD5withRSA -tsa https://timestamp.geotrust.com/tsa

    查看keystore
    从eclipse转到android studio,签名的时候让输入alias(别名),可能有人忘记了,我们可以从keystore文件中找到:

    用到的工具是keytool ,该工具位于 jre/bin目录下:

    命令如下:

    keytool -list -v -keystore your_keystore_file
    另外生成keystore的命令也是keytool

    查看apk签名
    既然应用认领要核对签名,那么就得能查看签名,可校验应用是否被篡改过。

    命令如下:

    jarsigner -verify -verbose -certs your_apk_file

    相关文章

      网友评论

          本文标题:[转]android studio如何直接给apk包空包签名

          本文链接:https://www.haomeiwen.com/subject/dbuskxtx.html