如何使用 apktool 在 Mac 上签署修改后的 apk

Posted

技术标签:

【中文标题】如何使用 apktool 在 Mac 上签署修改后的 apk【英文标题】:How to sign a modded apk on mac with apktool 【发布时间】:2015-01-05 20:18:25 【问题描述】:

我使用 apktool 创建了一个修改过的 apk,但是当我尝试安装它时,它没有安装。当我重新检查并将其与较旧的 apk 进行比较时,我发现我的 apk 文件没有签名。我搜索了很多,但找不到在 mac OS X 上签署 apk 的方法。请帮助

【问题讨论】:

This documentation 应该为您提供有关在 android Studio 和 ADT for Eclipse 中签署 APK 的信息。 感谢您的链接帮助。我已经在下面发布了解决方案 【参考方案1】:

得到我的解决方案-我通过在终端中使用以下命令来使用 JDK 中的 keytool、Jarsigner 和 zipalign

生成密钥库

keytool -genkey -v -keystore my-keystore.keystore -alias name_alias -keyalg RSA -validity 10000

签署一个apk

jarsigner -verbose -keystore <path of my-keystore.keystore> <path of apk>  name_alias

压缩对齐 apk

zipalign -f -v 4 <your.apk >  <your_aligned.apk>

【讨论】:

你能澄清一下 your.apk 和 your_aligned.apk 是什么吗?在前两个步骤之后我有一个 app-debug.apk 和一个 app-release-unsigned.apk,但是第 3 步中的哪个是哪个? 如果您有未签名的 apk,如果您已经生成了密钥库,则可以从第 2 步开始。在我的例子中,your.apk 是一个签名的 apk,而 your_aligned.apk 是一个 zip 对齐格式。 好吧,我误会了。我将在这里添加对我有帮助的注释,以防其他人有同样的困惑。 是 zipalign 工具输出的文件,您可以随意命名。【参考方案2】:

MacBook 用户。

1.您需要在终端中创建.keystore 文件。将 .Keystore 和您的 .Apk 放在文件夹中

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -validity 10000

-可以更改 alias_name 和 my-release-key 但不能更改 .keystore

2.把它放在终端上。

jarsigner -verbose -keystore <your .keystore> space <your app file> space <your alias name on creating keystore>

然后要求您输入密码,将您的密码放入创建的密钥库。现在你已经签署了 apk。

注意:您的 MacBook 上已安装 JDK。

【讨论】:

感谢它的工作并节省了我的时间。祝你有美好的一天【参考方案3】:

如果apk文件已经签名,用下面的代码去掉原来的签名

Zip -d <path of apk> META-INF/*

签署一个apk

jarsigner -verbose -keystore <path of my-keystore.keystore> <path of apk>  alias_name

签署 apk 无效且 idk >=1.7

jarsigner -verbose  -digestalg SHA1 -sigalg MD5withRSA -keystore <path of my-keystore.keystore> <path of apk>  alias_name

压缩对齐 apk

 ~/Library/Android/sdk/build-tools/xxxxx/zipalign -f -v 4 <your.apk >  <your_aligned.apk>

【讨论】:

以上是关于如何使用 apktool 在 Mac 上签署修改后的 apk的主要内容,如果未能解决你的问题,请参考以下文章

mac使用apktool打包回apk

我不是团队代理,如何使用 Developer ID 签署 mac 应用程序?

Mac 上的 Apktools

apktool 反编译 apk 修改后打包

如何使用适用于 macOS 的 Visual Studio 代码为外部 Mac 应用商店签署和公证电子应用程序构建?

Apktool mac