我有一个目前在Google Play上发布的Android应用,我会定期更新。我按照以下流程在新推送之前签署应用程序:
在项目上按鼠标右键,“Android工具” - >导出已签名的应用程序包提供密钥库密码签署您的应用程序将apk文件上传到Google Play开发者控制台
最近我将项目从Eclipse导入到Android Studio并继续在Android Studio上工作。现在我打算在应用程序中推送一个修复程序。我想我有这个选项在android studio中签名apk
构建 - >生成签名的apk - >
根据我的理解,对于我的Android应用程序,我必须使用我之前用于将更新推送到Google Play的相同密钥库和密钥库密码。此外,它还要求密钥别名和密钥密码。在Eclipse中签名apk时,我不记得密钥别名和密钥密码(图像中的数字4输入)。有什么建议我现在能做什么?如果我已经知道我的密钥库和密钥库密码,有没有办法检索密钥别名和别名密钥密码?
更新:现在我可以通过keytool -list -v -keystore name.keystore命令检索我的密钥别名
如果查看日志没有帮助,您也可以尝试强制密码 - 检查此帖子上的方法3 - Android KeyStore Password Recover。
这个SO post也有更多的答案。
只需用记事本++打开密钥文件(.jks文件)。您将在第一行获得别名...
是的,您可以在Android Studio的任务工件中找到丢失的密钥。
Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin
对于android studio的更新版本,路径是:
Project\.gradle\5.1.1\executionHistory\executionHistory.bin
打开文件并使用您记住的密码部分进行搜索。
示例(这将在该bin文件中):signingConfig.keyAlias�"key name"�signingConfig.keyPassword�"key password"�signingConfig.storePassword�"Store Password"�
您可以使用此字符串“signingConfig.storePassword”或示例字符串中给出的任何字符串进行搜索
注意:我经历过同样的事情,我能够在上面的路径中找到它。如果您没有找到可能是您清除了所有缓存和临时文件。
您可以按照以下方式查找密钥库详细信息,而无需使用密码。
在命令提示符下执行命令(keytool -list -keystore <path>
)
您可以在我的机器中的java文件夹中找到Keytool,我可以找到以下路径
C:\Program Files (x86)\Java\jdk1.7.0_71\bin> keytool -list -keystore C:\<YourKeystore>.Keystore
然后它会要求您输入密码,在这里您无需输入密码而不是按下向上箭头按钮并输入密码。然后将显示相同的详细信息,并显示警告消息,如下所示。
*************警告警告警告*****************
- 存储在密钥库中的信息的完整性*
- 尚未经过验证!为了验证其完整性,*
- 您必须提供密钥库密码。 *
*************警告警告警告*****************
密钥库类型:JKS密钥库提供商:SUN
您的密钥库包含1个条目
samplekey,2017年4月26日,PrivateKeyEntry,证书指纹(SHA1):XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX :XX:XX
只需用记事本打开yourApp.jks文件就可以找到Keystore和别名!
如果您碰巧在MacOS上并选中了Android Studio中的“保存密码”框,则可以从Keychain Access恢复密码。
您可能想尝试使用此密码破解程序。
http://maxcamillo.github.io/android-keystore-password-recover/index.html
我正在使用字典攻击方法。它对我有用,因为我能想到的密码只有几个组合。
Android Studio 3.0下面的工作方法: 找到旧的压缩项目。 如果你已经构建了apk,你会在文件中找到密码:
Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin
Pandroid.injected.signing.store.password =密码
如果您没有压缩项目,请检查您的git存储库是否已推送.gradle文件夹。 否则,您必须按内容“Pandroid.injected.signing.store.password”恢复文件和搜索文件。
在任何情况下,您都会对您的密码感到困惑。您可以使用点击和试用。它会询问您的密码。如果正确,它会显示清单。
$ keytool -list -v -keystore filename
要恢复KEY ALIAS。在终端上键入以下命令。
$ keytool -list -v -keystore <storekey>
它将提供信息开始,
您的密钥库包含2个条目...
您可以在那里查找别名。
我在下面的路径中找到了我的密钥密码
Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin
打开文件并使用您记住的部分密码进行搜索。你肯定会发现它。
另外,你可以参考这个答案stackoverflow.com/a/43007357/7089151