新的Android Studio允许我们保存密钥库密码以供以后使用。这些密码存储在我的计算机(OSX)上的什么地方,有没有办法检索保存的值?
EDIT我正在查找别名密码,而不是密钥库密码
gg58donl1#
您可以在Android Studio生成的idea.log文件中找到这一点:搜索“Pandroid.injected.signing.key.password”,就可以看到密钥密码。日志示例:2015-11-13 10:22:48,844 [ 709463] INFO - a.gradle.invoker.GradleInvoker - Build命令行选项:[--configure-on-demand,-Pandroid.注射援引。从。ide=true,-Pandroid。注射签名存储矿石file=/Users/varun/Projects/myapp/mykey。jks,-Pandroid.注射签名商店。password=mykeystorepassword,-Pandroid.注射签名key.alias=myalias,-Pandroid.注射签名key.password=mykeypassword,-Pandroid.注射apk.location=/Users/varun/code/android/workspace/myapp,--init-script,/private/var/folders/vk/z504 nlhd 6v 30 p7 zvtgjp 5sjm 0000 gn/T/asLocalRepo0.gradle]注1:在OSX上,idea.log文件可以在~/Library/Logs/AndroidStudio2.0中找到注2:如果您在idea.log中没有找到密码,请查看名为idea.log.1、idea.log.2等的文件。Source
6ojccjat2#
在macOS上,最新版本的Android Studio(在3.2上测试)将密钥库/密钥密码存储在密钥链中的以下项目下:
org.jetbrains.android.exportSignedPackage.KeystoreStep$KeyStorePasswordRequestor
org.jetbrains.android.exportSignedPackage.KeystoreStep$KeyPasswordRequestor
前者存储密钥库本身的密码,后者存储密钥的密码。您可以使用系统Keychain Access应用程序访问它们。找到相应的条目并双击它。Account字段应包含密钥存储库的路径或密钥存储库中密钥别名的路径,格式如下:KEY_STORE_PASSWORD__/Users/username/keystorename或KEY_STORE_PASSWORD__/Users/username/keystorename__alias单击Show password并在需要时输入macOS密码。就是这样!
KEY_STORE_PASSWORD__/Users/username/keystorename
KEY_STORE_PASSWORD__/Users/username/keystorename__alias
Show password
qq24tv8q3#
afterEvaluate { if (project.hasProperty("android.injected.signing.store.file")) { println "key store path: ${project.property("android.injected.signing.store.file")}" } if (project.hasProperty("android.injected.signing.store.password")) { println "key store password: ${project.property("android.injected.signing.store.password")}" } if (project.hasProperty("android.injected.signing.key.alias")) { println "key alias: ${project.property("android.injected.signing.key.alias")}" } if (project.hasProperty("android.injected.signing.key.password")) { println "key password: ${project.property("android.injected.signing.key.password")}" } }
我写了一个Idea插件,名为RestoreKeystorePlugin
然后重新启动Android Studio(如果需要)
pcrecxhr4#
对于任何尝试在较新版本的Android Studio和Ubuntu上恢复密钥库密码的人来说,似乎大多数记录的从日志,gradle等恢复密码的建议不再起作用。Corneliu优秀的暴力破解脚本非常棒-除非你选择了一个16个字符的密码,其中没有字典单词,并且希望在本月的某个时候得到结果:)据我所知,使用Intellij security.xml解决方案也不再可用于从Android Studio中检索保存的密码。然而,经过一番研究,Android Studio 3.1似乎使用了Ubuntu 18.04中的操作系统密钥链,因此检索已保存的密钥库密码就像下面这样简单:1.打开“密码和密钥”(使用超级密钥并搜索“密码”)1.按'android'筛选结果1.查看每个条目,它们将类似于org.jetbrains.android... KeyPasswordRequestor,然后依次打开每个条目1.展开密码下拉菜单并选择“显示密码”,它将看起来像这样:KEY_STORE_PASSWORD__/home/pathto/keystore/keystore-name.jks@mycoolpassword找到您要查找的密钥库,@之后的位是您丢失的密码。希望这对外面的人有帮助!
pzfprimi5#
Gradle将它们存储在项目目录中的二进制文件中。你可以像这样(从项目目录中)获取它们:strings .gradle/GRADLE_VERSION/taskArtifacts/taskArtifacts.bin | grep storePassword -A1(感谢https://stackoverflow.com/a/33624636/1982087提供的taskArtifacts.bin指针)
strings .gradle/GRADLE_VERSION/taskArtifacts/taskArtifacts.bin | grep storePassword -A1
mrfwxfqh6#
寻找日志文件从你签署了你的apk的日期,你可以找到你的关键信息有如下.
-Pandroid.injected.signing.store.password=[store_password], -Pandroid.injected.signing.key.alias=[alias], -Pandroid.injected.signing.key.password=[key_password]
您可以在下面找到日志文件C:\Users\username.AndroidStudio[versionNum]\system\log\
klsxnrf17#
我也有同样的问题!它让我疯狂,但我发现了一个小脚本,它救了我:https://github.com/corneliudascalu/intellij-decrypt我觉得这能帮到你。好看
disho6za8#
如果你有很容易提取的源代码,一个简单的方法是修改应用程序build.gradle.kts,添加如下内容:
build.gradle.kts
task("helpMeOutHere") { doLast { println("Executing helpMeOutHere") if (project.hasProperty("android.injected.signing.store.password")) { println("helpMeOutHere - StorePas: ${project.property("android.injected.signing.store.password")}") } if (project.hasProperty("android.injected.signing.key.password")) { println("helpMeOutHere - Password: ${project.property("android.injected.signing.key.password")}") } } } tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>() { dependsOn.add("helpMeOutHere") }
而不是执行Android Studio生成签名的APK并在构建日志中查找“helpMeOutHere”一定要删除上述剪下一旦你恢复你的密码
8条答案
按热度按时间gg58donl1#
您可以在Android Studio生成的idea.log文件中找到这一点:
搜索“Pandroid.injected.signing.key.password”,就可以看到密钥密码。
日志示例:
2015-11-13 10:22:48,844 [ 709463] INFO - a.gradle.invoker.GradleInvoker - Build命令行选项:[--configure-on-demand,-Pandroid.注射援引。从。ide=true,-Pandroid。注射签名存储矿石file=/Users/varun/Projects/myapp/mykey。jks,-Pandroid.注射签名商店。password=mykeystorepassword,-Pandroid.注射签名key.alias=myalias,-Pandroid.注射签名key.password=mykeypassword,-Pandroid.注射apk.location=/Users/varun/code/android/workspace/myapp,--init-script,/private/var/folders/vk/z504 nlhd 6v 30 p7 zvtgjp 5sjm 0000 gn/T/asLocalRepo0.gradle]
注1:在OSX上,idea.log文件可以在~/Library/Logs/AndroidStudio2.0中找到
注2:如果您在idea.log中没有找到密码,请查看名为idea.log.1、idea.log.2等的文件。
Source
6ojccjat2#
在macOS上,最新版本的Android Studio(在3.2上测试)将密钥库/密钥密码存储在密钥链中的以下项目下:
org.jetbrains.android.exportSignedPackage.KeystoreStep$KeyStorePasswordRequestor
org.jetbrains.android.exportSignedPackage.KeystoreStep$KeyPasswordRequestor
前者存储密钥库本身的密码,后者存储密钥的密码。
您可以使用系统Keychain Access应用程序访问它们。找到相应的条目并双击它。Account字段应包含密钥存储库的路径或密钥存储库中密钥别名的路径,格式如下:
KEY_STORE_PASSWORD__/Users/username/keystorename
或KEY_STORE_PASSWORD__/Users/username/keystorename__alias
单击
Show password
并在需要时输入macOS密码。就是这样!qq24tv8q3#
方法一:从Gradle构建运行时读取
第一步:将下面的代码添加到app/build.gradle
第二步:从菜单Build -> Generate Signed apk/bundle开始构建。
第三步:打开位于Android Studio底部的Build窗口,查找密钥存储信息
方法二:从Idea持久存储读取
我写了一个Idea插件,名为RestoreKeystorePlugin
第一步:从download link下载jar文件
第二步:将插件安装到Android Studio
然后重新启动Android Studio(如果需要)
第三步:选择工具->恢复密钥库信息菜单,它将在对话框中显示密钥库信息
pcrecxhr4#
对于任何尝试在较新版本的Android Studio和Ubuntu上恢复密钥库密码的人来说,似乎大多数记录的从日志,gradle等恢复密码的建议不再起作用。Corneliu优秀的暴力破解脚本非常棒-除非你选择了一个16个字符的密码,其中没有字典单词,并且希望在本月的某个时候得到结果:)据我所知,使用Intellij security.xml解决方案也不再可用于从Android Studio中检索保存的密码。
然而,经过一番研究,Android Studio 3.1似乎使用了Ubuntu 18.04中的操作系统密钥链,因此检索已保存的密钥库密码就像下面这样简单:
1.打开“密码和密钥”(使用超级密钥并搜索“密码”)
1.按'android'筛选结果
1.查看每个条目,它们将类似于org.jetbrains.android... KeyPasswordRequestor,然后依次打开每个条目
1.展开密码下拉菜单并选择“显示密码”,它将看起来像这样:KEY_STORE_PASSWORD__/home/pathto/keystore/keystore-name.jks@mycoolpassword
找到您要查找的密钥库,@之后的位是您丢失的密码。希望这对外面的人有帮助!
pzfprimi5#
Gradle将它们存储在项目目录中的二进制文件中。你可以像这样(从项目目录中)获取它们:
strings .gradle/GRADLE_VERSION/taskArtifacts/taskArtifacts.bin | grep storePassword -A1
(感谢https://stackoverflow.com/a/33624636/1982087提供的taskArtifacts.bin指针)
mrfwxfqh6#
寻找日志文件从你签署了你的apk的日期,你可以找到你的关键信息有如下.
您可以在下面找到日志文件
C:\Users\username.AndroidStudio[versionNum]\system\log\
klsxnrf17#
我也有同样的问题!
它让我疯狂,但我发现了一个小脚本,它救了我:https://github.com/corneliudascalu/intellij-decrypt
我觉得这能帮到你。好看
disho6za8#
如果你有很容易提取的源代码,一个简单的方法是修改应用程序
build.gradle.kts
,添加如下内容:而不是执行Android Studio生成签名的APK并在构建日志中查找“helpMeOutHere”
一定要删除上述剪下一旦你恢复你的密码