万策尽きた時の Keystore パスワード復旧術:IDE のビルドログをハックする
kidneyweakx
December 6, 2025 (Updated: December 19, 2025)
最も遠い距離、それはパスワードが IDE の中にあるのに見ることができないことだ
多くの Android 開発者が、この絶望的な瞬間に直面したことがあるはずです。リリース版のビルドを準備しているとき、長い間入力していなかった Keystore のパスワードを忘れていることに気づくのです!Android Studio は親切にも「Remember passwords」を表示して自動入力してくれますが、表示されるのは •••••••• だけで、頑なにプレーンテキストを見せてくれません。
Google に Upload Key のリセットを申請するか、あるいは総当たり攻撃(ブルートフォース)を仕掛けるしかないのでしょうか?
焦らないでください!Android Studio がパスワードを覚えている限り、Gradle を通じてそれを「インターセプト(傍受)」することができます。
# 仕組みの解説
Generate Signed Bundle / APK を実行するとき、Android Studio は Gradle が署名を行えるように、バックグラウンドでパスワードを Gradle に「注入(インジェクト)」する必要があります。私たちは build.gradle にコードを仕込んでこの動作を監視することで、ログにパスワードを出力させることができます。
# 実装手順 (Kotlin DSL 版)
ステップ 1:監視スクリプトの仕込み
アプリ層の build.gradle.kts ファイルを開き、以下のコードをファイルの最後尾に貼り付けます。
Kotlin
// ==========================================
// パスワード取得スクリプト(使用後は必ず削除してください!!!)
// ==========================================
project.afterEvaluate {
val storePass = project.properties["android.injected.signing.store.password"]
val keyPass = project.properties["android.injected.signing.key.password"]
if (storePass != null || keyPass != null) {
println("\n========== [見つけました!パスワードはこちらです] ==========")
println("Store Password: $storePass")
println("Key Password: $keyPass")
println("=========================================\n")
}
}
ステップ 2:ビルドの実行
- Android Studio 上部メニューの Build > Generate Signed Bundle / APK... をクリックします。
- 通常の手順に従い、Keystore のパスを選択します。
- 重要なステップ: 必ず 「Remember passwords」 にチェックが入っていることを確認してください(これにより IDE がパスワードを出力します)。
- Next > Create をクリックしてビルドを開始します。
ステップ 3:ログの確認
ビルドが開始されたら、下部の Build タブを開き、左側の「Toggle view」(リストアイコン)をクリックしてテキストモードに切り替えます。
膨大なログの中からキーワード 見つけました を検索します。
以下のような画面が表示されるはずです:
Plaintext
========== [見つけました!パスワードはこちらです] ==========
Store Password: your_lost_password_123
Key Password: your_lost_password_123
=========================================
ステップ 4:バックアップと削除(最重要!)
パスワードの回収、おめでとうございます!
- すぐにパスワードを 1Password や安全な場所に記録してください。
build.gradle.ktsに追加した先ほどのコードを直ちに削除してください。- 万が一このコードが Git にコミットされてしまった場合は、Git の履歴を修正するか、パスワードが漏洩したものとして対処してください。
# おわりに
この方法は Gradle の project.properties の仕組みを利用して、IDE から注入されたパラメータを直接読み取ります。特別な解析ツールをインストールする必要もなく、安全で迅速です。同じようにパスワードを忘れてしまった開発者の皆さんの助けになれば幸いです!
Related Articles
No File is an Island: Unraveling Swift Dependencies and Architecture
在 Swift 的世界中,我們習慣了強大的 Xcode 和簡潔的語法,但隨著專案規模的成長,一個隱形的怪獸會開始在程式碼中徘徊:那就是失控的依賴關係
Hexo 升級 V5 排除疑難雜症
因為剛好把電腦重灌,然後這個 blog 就躺在D槽等著我幫他換新的環境,然後他就被我快樂的升級了。 hexo 更新 v5.0 hexo 更新到 V5 的步驟相當容易 就可以自動更新了,但是版本大更新,往往都會附帶一些小問題,像他就給我了幾個warning 更新後 Error 解決方法 修改\ config.yml的部分成新版的,原始external\ link只有true的選項,更新後可決定是否開...
C# 用 VID 和 PID 自動連線 serialport
原本 C 的 serial port function官方範例,是類似這樣的 這種方法每次開啟都還要再去跟改port相當的麻煩,所以就找了別人針對windows寫的function,再返回靜態的 port string 給 ,效果相當好。 完整內容可參照下方連結😁 code來源
