玩機的時候常常會把檔案填進 /system 的 xbin, app 等等, 不想用 sbf 把 /system 幹掉, 又不想 OTA 的更新把 root 和 recovery partition 幹掉, 又想更新到 2.36.0, 於是便自製了 "Off"-The-Air 更新.
剛把 South East Asia(香港) 的 2.34.3 版本, 以保留 root 和不會更新 recovery partition 的原則, "Off"-The-Air 升級到最新的更新 2.36.0.
OTA 2.36.0 推出時已經想弄, 剛剛測試成功.
這個確實是不太實用, 反正 OTA 到的, 刷回 recovery 就可. OTA 不到的, 又要花費功夫把檔案還原. 無論如何, 把經驗公開, 做個記錄吧.
先決條件:
1. 已 root.
2. Firmware 為 south east asia(香港) 2.34.3.
3. 裝有 adb 或 (Android Terminal Emulator app, Quickboot app).
4. 所有此次更新檢查到的檔案均沒有修改. 更新會檢查到的檔案和 md5sum: http://pastebin.com/XY2uDpjy . 比較好的做法是預先寫一個 shell script 比對一下 md5sum 才下載 ota236.zip ......
5. OTA 更新失敗的, 大多數是因為條件 4 不被滿足.
6. Recovery 為 2.0.1 有漏洞版本.
若不能滿足條件 4, 所需花的功夫也頗大的, 要解開 2.34.3 的 sbf 把已修改的檔案還原篕到 /system 上. 要不要做就隨便你了.
簡略步驟:
1. 下載 ota236.zip http://www.multiupload.com/116TZCMNR0 .
2. 解壓到 ota236, 複製到 Milestone 的 /sdcard/ota236 .
3. 使用 adb 或 Android Terminal Emulator app:
su
cp /sdcard/ota236/command /cache/recovery
4. 使用 adb reboot recovery 或 quickboot 重啟到 recovery 模式.
***此步應該手動進入 recovery 也可(我未試過, 不能証實), 不過一定要重啟後立即進入, 因為 /cache/recovery/command 每次開機會被系統刪除. ***
5. 等待更新後自動重啟.
6. 檢查 build number 是否為 2.36.0, 完成.
7. 若失敗, 可以選擇放棄.
若失敗了不想放棄, 便要再次複製 ota236/ota236_retain_root.zip 到 /sdcard/ota236/ota236_retain_root.zip, 因為每次失敗都會被刪除.
然後檢查 /cache/fota/rblog 最後失敗在哪一個檔案, 把它還原然後跳到第 3 步重覆. 通常失敗是因為未能滿足先決條件第 4 項. 當然你可以預先檢查好先決條件 4....
編輯 1: 加先決條件 6

X