android apk签名相关

apksigner签署

  1. cd 进入未签署 APK 所在的目录。

  2. 使用 [zipalign](https://developer.android.com/studio/command-line/zipalign.html) 对齐未签署的 APK:
    zipalign 可以确保所有未压缩的数据首先相对于文件开头部分对齐特定字节,这样可减少应用占用的内存量。
    配置ziplign 的环境变量,(export PATH=$PATH:/Users/m/Library/Android/sdk/build-tools/28.0.3)使用ziplign 命令。
    zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk

  3. 使用 apksigner 通过您的私钥签署您的 APK:

    在本例中,使用单密钥库文件 my-release-key.jks 中存储的私钥和证书签署 APK 后,以 my-app-release.apk形式输出签署的 APK 。V1,V2签名,默认开启。
    apksigner sign --ks debug.keystore --out my-app-release.apk my-app-unsigned-aligned.apk
    apksigner 工具支持其他签署选项,包括使用单独的私钥和证书文件签署 APK 文件,以及通过多个签署人签署 APK。 如需了解详细信息,请参阅 apksigner 参考。

    注:要使用 apksigner 工具,必须安装 Android SDK 构建工具的修订版 24.0.3 或更高版本。 您可以使用 SDK 管理器更新此软件包。

  4. 验证您的 APK 是否已签署:
    apksigner verify my-app-release.apk

jarsigner签署并验证

  • 查看xxxx.keystore 的信息
    keytool -list -v -keystore xxxx.keystore
  • 查看apk 签名信息
    keytool -list -printcert -jarfile OFoodMerchan.apk
  • 给未签名应用签名
    jarsigner -verbose -keystore xxx.jks -signedjar xxx-signed.apk xxx-unsign.apk keystore别名 -digestalg SHA1 -sigalg MD5withRSA -tsa http://timestamp.comodoca.com/authenticode

aapt dump badging xxx.apk

apk 反编译

apktool d -s xxx.apk 得到classes.dex

sudo chmod +x d2j_invoke.sh
sh d2j-dex2jar.sh classes.dex 得到 classes-dex2jar.jar

查看apk 的包名,versionName, versionCode,

cd /Users/m/Library/Android/sdk/build-tools/28.0.3/aapt
aapt dump badging /Users/m/Desktop/xxx/xxxx.apk

https://developer.android.com/studio/publish/app-signing.html#sign-manually
https://docs.oracle.com/javase/8/docs/technotes/tools/windows/jarsigner.html
https://www.jianshu.com/p/3a305f32c4a3

你可能感兴趣的:(android apk签名相关)