程式筆記
Android

万策尽きた時の Keystore パスワード復旧術:IDE のビルドログをハックする

LANG:
K

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

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:ビルドの実行

  1. Android Studio 上部メニューの Build > Generate Signed Bundle / APK... をクリックします。
  2. 通常の手順に従い、Keystore のパスを選択します。
  3. 重要なステップ: 必ず 「Remember passwords」 にチェックが入っていることを確認してください(これにより IDE がパスワードを出力します)。
  4. Next > Create をクリックしてビルドを開始します。

ステップ 3:ログの確認

ビルドが開始されたら、下部の Build タブを開き、左側の「Toggle view」(リストアイコン)をクリックしてテキストモードに切り替えます。

膨大なログの中からキーワード 見つけました を検索します。

以下のような画面が表示されるはずです:

Plaintext

code
========== [見つけました!パスワードはこちらです] ==========
Store Password: your_lost_password_123
Key Password:   your_lost_password_123
=========================================

ステップ 4:バックアップと削除(最重要!)

パスワードの回収、おめでとうございます!

  1. すぐにパスワードを 1Password や安全な場所に記録してください。
  2. build.gradle.kts に追加した先ほどのコードを直ちに削除してください。
  3. 万が一このコードが Git にコミットされてしまった場合は、Git の履歴を修正するか、パスワードが漏洩したものとして対処してください。

# おわりに

この方法は Gradle の project.properties の仕組みを利用して、IDE から注入されたパラメータを直接読み取ります。特別な解析ツールをインストールする必要もなく、安全で迅速です。同じようにパスワードを忘れてしまった開発者の皆さんの助けになれば幸いです!