免責聲明
使用本工具可能讓你的手機變磚, 責任自負.
最新
更新到 v3 了, 首先是 bugfix, 由於我不太了解 SELinux, 所以 v2 版本未正確還原 SELinux security contexts, v3 修正了這個部分. 曾使用 v2 進行還原動作者 (單是備份並無問題), 請用 v3 版本, 執行 ea-menu 內 Tools=>"Restore SELinux security contexts" 項目修正之. 另外 v3 版還新增了備份 kernel (boot.img) 及內建 sdcard 內的 Android/data 目錄資料. 並增加修復常見 boot-loop 問題的功能, 包含 安裝 Xposed 當機, 切換 ART 當機等等問題的修復.
v2 更新內容
版本 v2 不再只是修復工具, 支援在 D838 上進行 "備份" 與 "還原" 三個主要分區 "system", "data" 及 "cache". 新增在 adb shell 下執行 "ea-menu", 這是一個 menu-driven script, 會引導你進行備份還原工作. 目前備份資料只能放在 internal sdcard 中, 請在重開機的正常環境下, 複製到 external sdcard 或其他地方, 因為 internal sdcard 只是 data partition 下的虛擬裝置, 一旦手機進行重置, 內容就消失了.
背景
自從完成 D838 拼圖第一塊 -- root, 就將重點放在拼圖第二塊 -- 如何安裝 custom recovery. 雖然思考有機會藉由安裝 LG G2 JellyBean 舊版 aboot.img 搭配 lokified 自行編譯官方 D838 kernel 而達成, 但囿於手上 D838 是每日工作所需, 在沒有備用手機且無法確定能解磚的情況下, 遲遲不敢放手一試. 經過多方思考, 終於製作出這只能算是第 1.3 片拼圖的 Early-ADB 系統修復工具, 稍可替代 custom recovery 的一點功用, 以便可以放心修改 ROM 內的東西.
別期望太高, 這個工具仍不能讓我們安裝 custom recovery, custom kernel 以及第三方 ROM. 但也只要我們不去動到 bootloader 及 kernel, 通常都可以利用重燒官方韌體來解磚, 只是重燒以及回復自己資料的過程冗長. 而 Android 手機內建的 adb 雖可以解決不少問題, 但若系統死當或是進入 boot loop, 即使 adb 可以活一段時間, 可能也不夠我們修復. 這就是 Early-ADB 存在的價值. 顧名思義, 它讓 adb 提早運作, 且暫停 Linux 開機 init 流程, 讓我們可以從容不迫的修復系統. 所以這個工具只是給開發者或玩家一個便利的修復環境. 如果你喜歡東試西試, 修改系統 apk, 試驗各種 Xposed 模組, 那麼你可以研究看看這個工具是否有幫助.
安裝
1. 備份你的資料, 確認你的 D838 已經 root, 且打開 USB 偵錯選項.
2. 在 Windows 中, 準備好 adb 工具以及 driver.
3. 下載附件, 將解開的檔案放在 Windows adb 工具的目錄中. 請不要解開裡面的 packs.zip 檔案, 保持該檔案不變, 一起放進 adb 目錄中.
4. 將 D838 以 USB cable 連上該 Windows PC.
5. 在 Windows 中, 開啟 Command Prompt, 以 "cd" 命令移到 adb 目錄所在, 輸入 "install" 命令以執行 Early-ADB 安裝 script.
解除安裝
1. 先進行安裝步驟 1 到 4.
2. 在 Windows 中, 開啟 Command Prompt, 以 "cd" 命令移到 adb 目錄所在, 輸入 "unins" 命令以執行 Early-ADB 解除安裝 script.
如何使用
1. 開機或重啟 D838.
2. 當你看到 LG logo, 請按住音量增加鍵不放, 一直到你看到螢幕明顯變暗, 即可放開按鍵. 此時 Early-ADB 已在運作, Linux init 程序已暫停.
3. 將 D838 以 USB cable 連上任何具有 adb 工具的 PC.
4. 進行你想要的修復工作, 或以 adb shell 連上後, 以 ea-menu 進行備份還原.
5. Early-ADB 無法結束, 只能按電源鍵 8 秒以上重新開機.
已知限制或問題
1. 只掛載了 system, data 及 cache 分區, 若想動其它分區, 請手動掛載.
2. 可以使用 adb push/pull 等命令交換檔案, 但 Early-ADB 攔截在 Linux init 的早期階段, 許多服務尚未運作, 別期望進行複雜運作, 如安裝 apk 或 adb backup/restore 我認為皆不可能.
3. 這不是防磚工具, 利用任何工具去動 bootloader 皆可能變磚.
4. 別做 OTA 升級. 動過 system 的手機, 做 OTA 是否變磚, 視 OTA 內容及 script而定, 非三言兩語能說明.
同步發文於 xda 的 LG G Pro 2 > G Pro 2 Android Development 子論壇.
v1 版附加壓縮檔: 201405/mobile01-5e2ca5ee99c88dc277d0dfa49d459a6f.zip
v3 版附加壓縮檔: 201405/mobile01-7c641083f5ce93fa0eb2b7f8b44d1b48.zip
有了 v2 版的備份還原功能, 實用性已經大幅提高. 只要隨時保存一份備份在內建 sdcard 內, 就可以盡情的修改 apk, jar 或精簡ROM, 試驗 Xposed 等等. 出問題很容易還原, 而不必由重燒 stock firmware 開始.
而且這樣的還原功能, 也可能應用在未來的官方韌體升級上. 假定未來某一次的官方升級已無法 root, 仍有機會透過 Early-ADB 來升級並保留 root.
很可惜目前沒辦法 mount 外接 sdcard, 否則便利性會更高. 期待有熟悉 Android 系統開發的玩家能提供建議, 否則可能要從一堆 Android source code 裡面找線索.
首先是 bugfix 部分, 由於我不太了解 SELinux, 所以 v2 版本未正確還原 SELinux security contexts, v3 修正了這個部分. 曾使用 v2 進行還原動作者 (單備份則無問題), 請用 v3 版本, 執行 ea-menu 內 Tools=>"Restore SELinux security contexts" 項目修正之.
新增功能部分:
1. 新增備份 kernel (boot.img)
2. 新增備份 內建 sdcard 內的 Android/data 目錄資料
3. ea-menu 內增加 Tools 選單
4. Tools 選單內增加 "Wipe Dalvik Cache" 功能.
5. Tools 選單內增加 "Switch runtime to Dalvik from Art".
6. Tools 選單內增加 "Disable Xposed"
7. Tools 選單內增加 "Fix build.prop permission"
以上 5, 6 和 7 項是為了協助修復常見的 boot-loop 問題.
由於 v2 的還原功能有 SELinux 瑕疵, 建議儘快更新 v3.
內文搜尋

X