我的 iOS 裡面的一些資料是從當年拿到 iPhone 3G (iPhone OS 2.0) 的時候開始累積起來的,經過了許多年以來能夠一直保留,其中一個很主要的原因就是我會手動備份那些我需要的資料,然後整個乾淨重刷,再回覆到對應的資料夾當中。但這個方法隨著 iOS 的改版,越來越複雜,越來越麻煩。早期(iOS 8 以前)只要有 Chronus 就可以備份大部分的資料,到現在卻變成要手動一個一個解開。總之這篇文章是寫給自己做紀錄的,會提一下在 iOS 8 裡面需要特別注意的地方。
最先要注意的是 iOS 8 之後 Sandbox 有改變,所有東西都放到了 /var/mobile/Containers 底下,裡面的 Data 跟 Shared 有可能是存放資料的地方。而這就比較難找了,因為這兩個資料夾底下的資料夾都是亂數取名的。Data 存放的是 App 本身的資料,Shared 則是分享的資料。一般來說 Data 裡面一定會有該 App 所存放的資料,而該 App 卻不一定會有 Shared 的資料。
為什麼呢?其實可以很容易觀察出來,Shared 代表這個程式與他的 extension 所共享的資料,所以如果一個 App 有 extension,那他一定會有 Shared 的資料。例如 LINE,LINE 有 Watch Extension,所以他的所有對話都是存在 Shared 那邊,但反過來,LINE 的佈景主題並不能給手錶用,所以佈景主題是存在 Data 這邊的,藉由這樣的方式,大家可以大略知道該 App 是否有 Shared 的資料需要處理。
另外一個問題是,以往我用的 iPhone Backup Extractor 的 Mac 免費版本會無法正確解析這些 Shared 的資料,他會把它們全部丟到 iOS Files 裡面,這不是太大問題,但是就比較麻煩些。我會建議下載 http://www.iphonebackupextractor.com/ 的免費試用版本,然後偷看一下 Shared 的資料檔名( ID 通常會以 group. 開頭,開發者稱之為 app group ID),再用舊的 iPhone Backup Extractor 解開。
最後一個問題是,健康的資料(Health、Fitness)要備份的話,必須加密你的 iTunes 備份,但如此一來你不能用免費版的 iPhone Backup Extractor 解開,而付費版要台幣 2000 多,其實蠻貴的。所以我會建議,用 iFunbox 手動備份。位置在 /var/mobile/Library/Health 底下,備份還原之後,一樣刪除 shm 跟 wal 結尾的檔案,然後 respring 就可以了。
如果有想到其他的會再提出,目前先這樣。
發佈留言