命令列工具
unixzii/ibackupextractor avatar
unixzii/ibackupextractor

iBackupExtractor: 從 iOS 備份中提取檔案

一個用於從 iOS 備份存檔中提取檔案的簡單工具。本機建置 若要在本機建置項目,請使用 Cargo: 用法 首先,找到要擷取的備份檔案。

1,332 個 Star58 個 ForkRustMIT
GitHub

秒懂

它是什麼?
一個 Rust 工具,讀取 iOS 備份封存,恢復原始沙盒目錄結構,用於檢視、提取或遷移。
適合誰用?
iBackupExtractor 是一個針對未加密 iOS 備份封存的命令列小工具。它提供檢查、提取和遷移子命令,預設複製檔案並可建立符號連結,僅在遷移時寫入封存。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
活躍度在下降。儲存庫最近一次提交在 6 個月前。
用什麼語言寫的?
主要是 Rust(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

備份格式問題

iOS 備份檔案並不會按照 App 沙盒的原始目錄結構儲存。檔案在備份封存中的位置,並不能說明它在裝置上原本屬於哪裡,所以要從沙盒中取出某個檔案,不是複製對應路徑就能解決。iBackupExtractor 會讀取整個封存,並按原始結構寫出檔案,讓你能像在 iPhone 或 iPad 上那樣瀏覽沙盒檔案系統。README 沒有描述封存的內部格式,只說封存是一個包含 `Manifest.db` 檔案的目錄。

針對「備份格式問題」的第 1 個核對面向,iBackupExtractor 的實際邊界在未加密封存。測試時可先用 `info` 確認 Manifest.db、裝置資訊與檔案數,再以 `list-domains` 找出真正需要的網域,避免一開始把整份備份寫到新磁碟。

在「備份格式問題」這個範圍內,ibackupextractor 的核對點是第 1 節所列的輸入與輸出。README 沒有說明更細的相容性或效能保證,因此本文只把已記錄的命令、檔案與設定鍵當作可核對的範圍。

安裝路徑

專案在 GitHub releases 頁面上為 Mac 使用者提供了預編譯二進位檔;README 沒有列出其他平台的二進位檔。若要在本機建置,該專案使用 Rust 和 Cargo。文件給出的建置命令是 `cargo build --release`。README 沒有說明所需 Rust 版本,也沒有描述除 Cargo 之外的建置環境。

針對「安裝路徑」的第 2 個核對面向,對需要保留原始副本的取證或檔案整理工作,`extract` 的唯讀性質較容易控管;`migrate` 則只會寫入目的封存,仍應把來源與目的路徑分開並先做副本。README 未說明加密備份、iOS 版本相容矩陣與錯誤復原行為,這些不能從命令名稱推定。

在「安裝路徑」這個範圍內,ibackupextractor 的核對點是第 2 節所列的輸入與輸出。README 沒有說明更細的相容性或效能保證,因此本文只把已記錄的命令、檔案與設定鍵當作可核對的範圍。

定位封存並以唯讀開啟

備份封存通常位於 `/Users/<username>/Library/Application Support/MobileSync/Backup`。README 將封存定義為包含 `Manifest.db` 檔案的目錄。除了執行遷移外,工具會以唯讀模式開啟 `Manifest.db`,因此即使封存位於唯讀檔案系統(例如 Linux 上的 HFS+)上也能運作。README 警告不要處理資料的唯一副本。它沒有說明如何在多個備份目錄之間選擇,也沒有說明如何驗證某個目錄是否為有效封存。

針對「定位封存並以唯讀開啟」的第 3 個核對面向,iBackupExtractor 的實際邊界在未加密封存。測試時可先用 `info` 確認 Manifest.db、裝置資訊與檔案數,再以 `list-domains` 找出真正需要的網域,避免一開始把整份備份寫到新磁碟。

在「定位封存並以唯讀開啟」這個範圍內,ibackupextractor 的核對點是第 3 節所列的輸入與輸出。README 沒有說明更細的相容性或效能保證,因此本文只把已記錄的命令、檔案與設定鍵當作可核對的範圍。

檢查封存:info 與 list-domains

在提取之前,有兩個子命令可以檢查封存。`info` 輸出封存層級中繼資料:清單位置、時間戳、裝置與 iTunes 中繼資料、檔案/網域總數,以及磁碟上的總大小。`list-domains` 列出封存中的網域,並依每個網域可匯出的資料量排序。README 區分這兩種檢視:`info` 是封存層級,`list-domains` 是網域層級。確切輸出格式以及排序是遞增還是遞減,README 沒有說明。

針對「檢查封存:info 與 list-domains」的第 4 個核對面向,對需要保留原始副本的取證或檔案整理工作,`extract` 的唯讀性質較容易控管;`migrate` 則只會寫入目的封存,仍應把來源與目的路徑分開並先做副本。README 未說明加密備份、iOS 版本相容矩陣與錯誤復原行為,這些不能從命令名稱推定。

在「檢查封存:info 與 list-domains」這個範圍內,ibackupextractor 的核對點是第 4 節所列的輸入與輸出。README 沒有說明更細的相容性或效能保證,因此本文只把已記錄的命令、檔案與設定鍵當作可核對的範圍。

提取檔案:複製或連

`extract` 子命令接受 `-d` 選擇單一網域,或 `--all` 提取所有包含資料的網域,後跟封存路徑和目標目錄。例如:`ibackupextractor extract --all /path/to/your_backup_archive /path/to/dest_dir`,或 `ibackupextractor extract -d SomeDomain /path/to/your_backup_archive /path/to/dest_dir`。README 建議使用空的目標目錄,並說明如果工具試圖覆寫既有檔案會報錯。預設情況下,提取會複製檔案;`-L`(或 `--link`)選項改為建立符號連結,以節省磁碟空間。README 沒有說明符號連結提取在 Windows 或不支援符號連結的檔案系統上是否有效。

針對「提取檔案:複製或連結」的第 5 個核對面向,iBackupExtractor 的實際邊界在未加密封存。測試時可先用 `info` 確認 Manifest.db、裝置資訊與檔案數,再以 `list-domains` 找出真正需要的網域,避免一開始把整份備份寫到新磁碟。

在「提取檔案:複製或連結」這個範圍內,ibackupextractor 的核對點是第 5 節所列的輸入與輸出。README 沒有說明更細的相容性或效能保證,因此本文只把已記錄的命令、檔案與設定鍵當作可核對的範圍。

在備份之間遷移網域

`migrate` 子命令依網域將檔案從一個備份封存傳輸到另一個備份封存,同時保留原始目錄結構。命令使用 `-d` 指定網域,後跟來源封存和目標封存:`ibackupextractor migrate -d SomeDomain /path/to/source_backup_archive /path/to/dest_backup_archive`。與 `extract` 一樣,`migrate` 預設複製檔案,並接受 `-L` 在目標封存中建立符號連結。遷移需要對目標封存的讀寫存取權限;README 沒有說明來源封存是否必須可寫,也沒有說明遷移是否會檢查目標封存中已存在的資料。

針對「在備份之間遷移網域」的第 6 個核對面向,對需要保留原始副本的取證或檔案整理工作,`extract` 的唯讀性質較容易控管;`migrate` 則只會寫入目的封存,仍應把來源與目的路徑分開並先做副本。README 未說明加密備份、iOS 版本相容矩陣與錯誤復原行為,這些不能從命令名稱推定。

在「在備份之間遷移網域」這個範圍內,ibackupextractor 的核對點是第 6 節所列的輸入與輸出。README 沒有說明更細的相容性或效能保證,因此本文只把已記錄的命令、檔案與設定鍵當作可核對的範圍。

限制與授權

該工具只能處理未加密的備份封存;README 要求在開始備份前取消勾選加密選項。`info`、`list-domains` 和 `extract` 命令不會寫入封存,而 `migrate` 只寫入目標封存。該專案使用 MIT 授權,版權歸 Cyandev 2023。該授權授予使用、複製、修改、合併、發布、分發、再授權和銷售副本的權利,並聲明軟體按原樣提供,不附帶任何保證。README 沒有提及效能特性、安全性質或受支援的 iOS 版本。

針對「限制與授權」的第 7 個核對面向,iBackupExtractor 的實際邊界在未加密封存。測試時可先用 `info` 確認 Manifest.db、裝置資訊與檔案數,再以 `list-domains` 找出真正需要的網域,避免一開始把整份備份寫到新磁碟。

在「限制與授權」這個範圍內,ibackupextractor 的核對點是第 7 節所列的輸入與輸出。README 沒有說明更細的相容性或效能保證,因此本文只把已記錄的命令、檔案與設定鍵當作可核對的範圍。

編輯結論

iBackupExtractor 是一個針對未加密 iOS 備份封存的命令列小工具。它提供檢查、提取和遷移子命令,預設複製檔案並可建立符號連結,僅在遷移時寫入封存。README 沒有說明一些操作細節,包括受支援的 iOS 版本以及符號連結在非 UNIX 檔案系統上的行為,這些在使用前仍需要驗證。 對 ibackupextractor 而言,先按 README 的專屬命令與檔案完成最小流程,再核對輸出、權限與失敗行為;不適合把未記載的平台支援或效能承諾當成既定事實。

官方來源

  1. Official README
  2. Project repository
  3. Release notes
社群筆記

社群筆記