當點擊 "設定\關於\軟體更新" 時出現 ..."發生未預期的錯誤,檔案系統可能已損毀" 而無法接收OTA.這是因為由 HTC A9 開始 kernel 會 verify(校驗) system partition.
凡 mount system partition(掛載system分區)該分區的字首碼便會改變.kernel 的 verify 程序便是驗證這部分. 而裝置系統並將修改 devinfo分區之 某代碼(code) 為 00 留下記錄.
所以當出現 "發生未預期的錯誤,檔案系統可能已損毀" 便是OTA升級程序去驗證 devinfo 的代碼而顯示出來的錯誤訊息.
機友可透過指令方式查詢裝置可否接收 OTA
1.手機連接usb傳輸線
2.開啟 CMD 輸入
代碼:
adb shell getprop ro.boot.veritymode
enforcing -- 可以接收OTA
logging -- 不行
devinfo分區受保護--無法直接進入修改代碼.提供的 boot_fix.img 是繞過驗證以便接收OTA.
如想恢復 devinfo分區的OTA驗證代碼有兩種方式
s-off(目前ultra尚無s-off方式) 可用指令恢復該 代碼
代碼:
adb reboot bootloader
fastboot erase devinfo
s-on 編輯線刷包可恢復該 代碼
線刷包裡的 android-info.txt 具有 erase 的作用.編輯成 線刷包 搭配 還原純淨備份檔 或 刷images檔 即可再次獲得OTA通知.這裡將 android-info.txt 的內容更簡化.因為重點在 -- erasepartition: devinfo 這行
android-info.txt 內容為
代碼:
modelid: 2PZF20000
cidnum: HTC__621
mainver: 1.15.709.5
aareport:1
btype:1
erasepartition: devinfo
而 線刷包 內容僅需
android-info.txt
recovery.img
註:android-info.txt\mainver: 1.15.709.5 是哪個版本號就放入對應該版本號之 stock recovery.img
執行方式!
1.手機先執行 還原備份檔 或刷過 images檔
2.連接usb傳輸線
3.開啟 CMD 輸入
adb reboot oem-78
fastboot flash zip 線刷包名稱.zip
fastboot reboot
代碼:
C:\>fastboot flash zip HTC_Ultra_erase_devinfo.zip
target reported max download size of 1579200000 bytes
sending 'zip' (24755 KB)...
OKAY [ 2.126s]
writing 'zip'...
(bootloader) HOSD CL#881737
(bootloader) get 1 images from zip(zip_type=3)
(bootloader) ERR ZIP signature checking failed...
(bootloader) start@1
(bootloader) recovery.img@100%
(bootloader) Update zip file OK
(bootloader) end@Done
OKAY [ 3.189s]
finished. total time: 5.315s
htc_fastboot finished. total time: 5.489s
顯示中的錯誤訊息可以忽略不影響結果.
4.刷後再次確認 . 開啟 CMD 輸入
adb shell getprop ro.boot.veritymode
enforcing -- 如果得此訊息即可接收OTA
有興趣者可自行試試編輯刷包.
亦因用這方式需有些基礎常識.所以後來才再編輯boot_fix採用繞過方式.