QUEST LOG · December 6, 2025· UPDATED October 29, 2026
萬解,遺失 Keystore 密碼但 IDE 還記得?用 Build Log 把密碼「抓」出來
最遙遠的距離,是密碼就在 IDE 裡但我看不見
相信很多 Android 開發者都遇過這個崩潰瞬間:準備打包 Release 版本時,發現很久沒輸入的 Keystore 密碼忘記了!雖然 Android Studio 很貼心地顯示「Remember passwords」並自動填入,但它就是只給你看 ••••••••,死都不肯顯示明文。
難道只能向 Google 申請重置 Upload Key 或是暴力破解嗎?
別急!只要 Android Studio 還記得密碼,我們就能透過 Gradle 把它「攔截」下來。
# 原理說明
當我們執行 Generate Signed Bundle / APK 時,Android Studio 為了讓 Gradle 能夠進行簽署,必須在背後將密碼「注入」給 Gradle。我們只要在 build.gradle 裡埋伏一段程式碼,監聽這個注入動作,就能把密碼印在 Log 裡。
# 實作步驟 (Kotlin DSL 版本)
Step 1:埋伏監聽腳本
打開你的 App 層級 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")
}
}
Step 2:觸發打包
- 點擊 Android Studio 頂部選單 Build > Generate Signed Bundle / APK...。
- 依照正常流程,填選 Keystore 路徑。
- 關鍵一步: 務必確認 "Remember passwords" 是勾選狀態(這樣 IDE 才會把密碼吐出來)。
- 點擊 Next > Create 開始打包。
Step 3:查看 Log
打包開始後,打開底部的 Build 分頁,點擊左側的 "Toggle view" (清單圖示) 切換成純文字模式。
在茫茫 Log 海中搜尋關鍵字:抓到了。
你會看到類似這樣的畫面:
Plaintext
========== [抓到了!密碼在這裡] ==========
Store Password: your_lost_password_123
Key Password: your_lost_password_123
=========================================
Step 4:備份與銷毀 (最重要!)
恭喜你找回密碼!
- 請立刻把密碼記在 1Password 或安全的地方。
- 立刻刪除
build.gradle.kts裡剛剛那段程式碼。 - 如果這段程式碼不小心被 Commit 到 Git,請務必修改 Git History 或視為密碼已洩漏。
# 結語
這個方法利用了 Gradle 的 project.properties 機制,直接讀取 IDE 注入的參數,不需要安裝任何破解工具,安全又快速。希望能幫到同樣金魚腦的開發者們!
