[筆記] 解壓縮 TWRP Recovery 透過 adb backup 產生的備份檔


想必找到這篇的人應該心裡很急,先用半調子解決方案作為開頭(假設想解壓的空白目錄是output,輸入為backup.ab):
cd  output
dd if='backup.ab' bs=512 skip=1 | tar fxiv -
先在此掃興,輸出不太好用,這結果只適合用來拯救帳號等重要資訊。所有資料都還是完整的,但輸出時所有分割區會混成一片;如果讀取檔案的 header 或者利用輸出檔案的時間做切割,應該就可以完整的還原分割區的樣貌。

接下來敘述一下這兩行指令背後的故事。
在期末考前這幾天,手機體感越來越慢,突然腦袋一抽就去 xda 上找了 Android 8.0 AOSP 的 ROM 刷進我年事已高的 2S 中,作者表示 GPU 的嚴重問題已經解決了,於是就放心的刷入。
當然在刷機之前要做 nandroid 備份,基於 2S 沒有記憶卡,且 TWRP 新增了 adb backup 的功能,備份勢必無後顧之憂。於是:
adb backup backup.ab  --twrp system cache data boot
災難由此開始。

備份過程一切順利,產生檔案大小符合預期,TWRP表示備份成功,/sdcard需要手動備份在預料之中,完美。刷入新 ROM,感覺手機像新的一樣,用起來只有爽能形容,遊戲也不會 lag 了,只可惜考試離100分越來越遠。
雖然帳號等等大多做了獨立的備份,繼承碼和綁定也確認完成,但不曉得為什麼腦子抽了---有個不常玩的遊戲(但有著難得的卡,CC日板惠惠突滿!EXPLOSION!!)沒有設定到繼承碼。好險,有備份!先還原舊版系統拿到繼承碼就好。
然而,俗話有云,備份直到還原之前都不知道是不是有效的備份。這個 nandroid 備份就是近乎無效的備份。

執行adb restore,TWRP 只會還原 /system,就很開心的停下表示 succeed。跟文件說的 all or nothing 完全不同,屢試不爽。新系統的備份沒用,原本系統的備份也不能用,資料大爆裂。
情急之下搜尋到了這篇:
https://android.stackexchange.com/questions/171638/extract-twrp-backups-made-with-adb
指令都不能用,加上對 tar 指令不熟(被圖形界面寵壞了),看不出其中滋味,最後與男人(man)談心許久終於成功撈出檔案,成功的指令如開頭所述;一定有更好的解決方法,前提是有充足的時間,期末考前悲劇的我只好把備份當垃圾,直接重刷然後讓 Google Play 自動重裝 apps,然後只從備份檔救出帳號。

凌晨四點,徹夜未眠;用悲劇的還原嘗試螢幕截圖作為紀念,然後繼續等待數十分鐘的應用程式還原。



留言

這個網誌中的熱門文章

卡巴拉島ViX_nriviewer簡易教學

[無用筆記] 單硬碟安裝 VMWare ESXi + Ubuntu 雙系統

[筆記] ASUS X570-PRO lm-sensors 設定