如何使用 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 对齐格式。 好吧,我误会了。我将在这里添加对我有帮助的注释,以防其他人有同样的困惑。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的主要内容,如果未能解决你的问题,请参考以下文章
我不是团队代理,如何使用 Developer ID 签署 mac 应用程序?