【问题标题】:Resign apk with different keystore使用不同的密钥库辞职 apk
【发布时间】:2012-06-10 09:49:24
【问题描述】:

目前我正在使用私有密钥库文件签署 apk,但我想使用不同的密钥库文件签署该 apk。我怎样才能辞职那个apk..?

【问题讨论】:

标签: android apk sign


【解决方案1】:

你应该检查下面的 SO 线程

Can I resign an .apk with a different certificate

this 也可以帮助你

【讨论】:

  • 这个命令的路径是什么..Jarsigner -verbose -keystore debug.keystore yourapk.apk aliasname
【解决方案2】:

您可以使用不同的密钥库为您的 apk 签名。

按照以下步骤操作:

签名发布:$1.apk -> $1_release.apk"

第 1 步:删除之前的所有签名

  • .apk 的扩展名更改为.zip
  • 打开并删除 META-INF 文件夹
  • 将扩展名更改为.apk
    或者
    命令:zip [originalapk]
    示例:zip "$1".apk -d

第 2 步: 使用 release.keystore 签名:

命令:

jarsigner –verbose –keystore [keystorefile] –signedjar [unalignedapk] [originalapk] alias_name

例子:

C:\Program Files\Java\jdk1.6.0_43\bin> jarsigner -verbose -keystore release.keystore -signedjar "$1"_unaligned.apk "$1".apk release

第 3 步:对齐

命令:zipalign -f 4 [unalignedapk] [releaseapk]

例子:

C:\Users\Downloads\adt-bundle-windows-x86\adt-bundle-windows-x86\sdk\too ls>zipalign -f 4 "$1"_unaligned.apk "$1"_release.apk

第 4 步:清理

命令:rm 4 [unalignedapk]
示例:rm "$1"_unaligned.apk


其他命令可能会有所帮助:

  1. 使用 keytool 生成新密钥
keytool -genkey -alias -keystore 
  1. 列出键
keytool -list -keystore 

注意:

为了签署我们的 apk,我们已将 JDK 从 1.7 降级到 1.6.0_43 更新。

原因:

从 JDK 7 开始,默认签名算法已更改,要求您在签名 APK 时指定签名和摘要算法(-sigalg 和 -digestalg)。

命令:

jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore [keystorefile] [originalapk] alias_name

【讨论】:

  • 我需要zipalign -p -f 4,特别是(注意额外的-p
【解决方案3】:

也可以使用开源的apk-resigner脚本,非常好用。

APK-resigner:https://github.com/onbiron/apk-resigner

./signapk.sh calculator.apk ~/.android/debug.keystore android androiddebugkey

此外,如果您想使用调试密钥对 APK 进行签名,也可以使用。

./signapk.sh calculator.apk 

【讨论】:

    【解决方案4】:
    1. 删除旧标志

      zip -d xxxx.apk(你的apk文件) META-INF/*

    2. 签名apk

      jarsigner -verbose -keystore xxxx.keystore(你的密钥库) -signedjar out_sign.apk(outfile) unsign.apk(unsign apk) xxxxxalias(你的别名)

    3. 如果签名 apk 不起作用且 jdk >= 1.7

      添加参数-digestalg SHA1 -sigalg MD5withRSA
      jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -keystore xxxx.keystore(你的密钥库) -signedjar out_sign.apk(outfile) unsign.apk(unsign apk) xxxxxalias(你的别名)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多