Android签名

一.生成keystore文件

        keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore 

                 #    -genkey : 产生密钥

                 #    -alias : 别名

                 #    -keyalg : 使用RSA算法对签名加密

                 #    -validity : 有效期(天)

                 #    -keystore : 最后生成的keysotre

二.签名

1.使用jarsigner签名,工具位于jdk_xx\bin目录下

        jarsigner -verbose -keystore android.keystore -signedjar des.apk src.apk android.keystore

                #  des.apk : 签名后的apk

                #  src.apk : 签名前的apk

2.使用signapk签名,工具位于 Android源码下./prebuilts/sdk/tools/lib/signapk.jar

a.先把keysotre转换为 pkcs12 格式

          keytool -importkeystore -srckeystore android.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12

生成 tmp.p12

b.将pkcs12 dump 成 pem, 以文本形式查看

          openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem              生成 tmp.ras.pem  以文本形式打开

          复制 “BEGIN CERTIFICATE“  ”END CERTIFICATE“ 到 (新建个文件)   cert.x509.pem

            复制 “BEGIN RAS PRIVATE KEY"  "END RSA PRIVATE KEY" 到 (新建个文件)  private.rsa.pem

c.生成 pk8 格式的私钥

            openssl pkcs8 -topk8 -outform DER -in private.rsa.pem -inform PEM -out private.pk8 -nocrypt     生成private.pk8

     cert.x509.pem  private.pk8 是最终签名所需要的

d.签名

            java -jar signapk.jar cert.x509.pem private.pk8 unsigned.apk signed.apk

            java -Djava.library.path=out/host/linux-x86/lib64 -jar out/host/linux-x86/framework/signapk.jar build/make/target/product/security/platform.x509.pem build/make/target/product/security/platform.px8 unsigned.apk signed.apk

            # signapk.jar 要使用 out/host/linux-x86/framework/ 下的,而不要用 prebuilts/sdk/tools/lib/ 下的

3.优化 apk    Android工程 ./prebuilts/sdk/tools/linux/bin/zipalign

    zipalign -v 4 signed.apk new.apk                  # 优化 APK

    zipalign -c -v 4 app.apk                                    # 查循 APK 是否优化过

 

AndroidStudio生成的 apk 默认都是已经签名的

 

 # 查看签名信息

keytool -list -keystore demo.keystore -alias mykey -v                    # 查看 keystore 的信息

keytool -list -keystore demo.keystore -alias mykey -rfc                  # 查看 keystore 的公钥证书信息

jarsigner -verify -verbose -certs test.apk                                           # 查看 test.apk 的签名信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值