关于apk二次打包

  1. 参考连接
  2. 工具用到的是Android-Crack-Tool

1. 重新签名apk, apksigner,默认同时使用V1和V2签名

进入Android SDK/build-tools/SDK版本, 输入命令apksigner sign --ks 密钥库名 --ks-key-alias 密钥别名 xxx.apk

若密钥库中有多个密钥对,则必须指定密钥别名apksigner sign --ks 密钥库名 --ks-key-alias 密钥别名 xxx.apk

禁用V2签名:
apksigner sign --v2-signing-enabled false --ks 密钥库名 xxx.apk

参数:

    --ks-key-alias       密钥别名,若密钥库有一个密钥对,则可省略,反之必选
    --v1-signing-enabled 是否开启V1签名,默认开启
    --v2-signing-enabled 是否开启V2签名,默认开启

例如:

在debug.keystore密钥库只有一个密钥对:

    apksigner sign --ks debug.keystore MyApp.apk

在debug.keystore密钥库中有多个密钥对,所以必须指定密钥别名

    apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey MyApp.apk

1. 签名验证

1.方法一(keytool,只支持V1签名校验)

进入JDK/bin, 输入命令

    keytool -printcert -jarfile MyApp.apk (显示签名证书信息)

参数:

-printcert 打印证书内容
-jarfile 已签名的jar文件 或apk文件

2.方法二(apksigner,支持V1和V2签名校验)

进入Android SDK/build-tools/SDK版本(如果配置了Android SDK环境变量可以直接根目录用), 输入命令

apksigner verify -v --print-certs xxx.apk

参数:

-v, --verbose 显示详情(显示是否使用V1和V2签名)
--print-certs 显示签名证书信息

签名方式

  1. 查看apk签名信息
    切换到你安装的Android sdk目录下的build-tools中,输入 apksigner verify -v [apk的路径], 下面这种是只有v1签名,没有v2签名
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): false
  1. 利用apksigner 对apk进行签名

java -jar apksigner.jar sign //执行签名操作
--ks 你的jks路径 //jks签名证书路径
--ks-key-alias 你的alias //生成jks时指定的alias
--ks-pass pass:你的密码 //KeyStore密码
--key-pass pass:你的密码 //签署者的密码,即生成jks时指定alias对应的密码
--out output.apk //输出路径
input.apk //被签名的apk

java -jar apksigner.jar sign  --ks /Users/***/Documents/work/keystore/test.keystore  --ks-key-alias testkey  --ks-pass pass:test123321  --key-pass pass:test123321  --out a_dangame_release_sign.apk  input.apk  

apksigner sign  --ks /Users/***/Documents/work/keystore/test.keystore  --ks-key-alias testkey  --ks-pass pass:test123321  --key-pass pass:test123321  --out a_dangame_release_sign.apk  input.apk      

你可能感兴趣的:(关于apk二次打包)