Android APK手动签名

v1与v2区别

  • Android7.0开始,google添加新签名方案v2 Scheme(APK Signatur), 而Android7.0以下,则使用旧方案v1 Scheme(JAR Signing)

  • v1签名: jarsigner, 对zip压缩包的每个文件进行验证, 签名后还能对压缩包修改(移动/重新压缩文件)对V1签名的apk/jar解压,在META-INF存放签名文件(MANIFEST.MF, CERT.SF, CERT.RSA), 其中MANIFEST.MF文件保存所有文件的SHA1指纹(除了META-INF文件), V1签名是对压缩包中单个文件签名验证。

  • v2签名:apksigner, 对zip压缩包的整个文件验证, 签名后不能修改压缩包(包括zipalign), 对V2签名的apk解压,没有发现签名文件,重新压缩后V2签名就失效, V2签名是对整个APK签名验证。

  • apksigner工具默认同时使用v1和v2签名,兼容android7.0以前版本。

签名工具

  • jarsigner:JAR 签名和校验工具,位于位于jdk/bin/jarsigner.exe
  • apksigne : 对Android apk签名及验证的专用工具, 位于Android\sdk\build-tools\28.0.3\apksigner.bat

ZipAlign优化

zipalign是一个归档对齐工具,确保所有未压缩的数据都以相对于文件开始的特定对齐方式开始, 减少了运行应用程序时消耗的RAM数量

  • 如果使用apksigner对APK文件签名,则在签名前使用zipalign进行归档对齐优化,否则签名无效。
  • 如果使用jarsigner对APK文件签名,则只能在APK签名之后进行归档优化。

zipalign用法:

  • 归档对齐优化:zipalign [-f] [-v] 4 infile.apk outfile.apk
  • 确认对齐:zipalign -c -v 4 existing.apk
  • 参数:
    • -f : overwrite existing outfile.zip
    • -v : verbose output
    • -p : outfile.zip should use the same page alignment for all shared object files within infile.zip
    • -c : confirm the alignment of the given file

对APK进行手动签名

  • 创建密钥:

    $ keytool -genkeypair -v -keystore <filename>.keystore -alias <key-name> -keyalg RSA -keysize 2048 -validity 30000
    
  • 若要列出密钥存储中存储的密钥:

    $ keytool -list -keystore <filename>.keystore
    
  • 使用Zipalign优化APK

    $ zipalign -f -v 4 sample_unsigned.apk sample_zipalign.apk
    
  • 对APK进行签名(apksigner

    $ apksigner sgin -ks <filename>.keystore --ks-key-alias <key-name> --ks-pass pass:<password> --key-pass pass:<password> --out sample_signed.apk sample_zipalign.apk
    
  • 查看签名信息

    $ apksigner verify -v --print-certs sample_signed.apk
    
  • 使用美团Walle多渠道打包

    $ java -jar walle-cli-all.jar batch -c yingyongbao,baidu,qh360 sample_signed.apk
    
  • 查看apk信息

    $ aapt dump badging sample_signed.apk
    

脚本打包(undo)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容