蘋果使用者福利:iOS裝置備份到私有IPFS節點

買賣虛擬貨幣

可能有多種原因想要將 iOS 裝置備份到 iCloud 以外的其他位置。

這篇文章介紹瞭如何透過命令列透過 USB 或 WiFi 將 iOS 裝置手動備份到本地 IPFS 節點。

可用指令碼:Github 上有一個指令碼可以自動完成此過程。

如想備份,你需要以下

  • 基本的 IPFS 概念知識
  • 基本命令列知識
  • iOS 裝置
  • 本地執行的 IPFS 節點
  • Mac,Linux 或 Windows 計算機*

*此功能僅在 Mac 上經過測試,但是依賴項應可在所有平臺上使用

設定專用IPFS節點

重要說明:強烈建議使用私有 IPFS 節點。遵循本教程將對備份進行加密,但不會對備份的後設資料進行加密。此後設資料包含潛在的敏感資訊,包括電話號碼和裝置上安裝的應用程式列表。有關更多資訊,請參見此問題。

確保 IPFS 節點僅連線到您信任的對等節點,將防止未加密的後設資料可供公共 IPFS 網路上的其他使用者使用。有關專用網路的更多資訊,請參閱此。

  • 簡單地生成群金鑰
  1. go get http://github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen
  2. ipfs-swarm-key-gen > ~/.ipfs/swarm.key
  • 並從引導列表中刪除所有對等
  1. ipfs bootstrap rm --all

這將建立一個私有網路,其中您的本地節點是唯一成員。

安裝依賴項

唯一需要的依賴項是 libimobiledevice,這是一個跨平臺的庫,支援與 iOS 裝置的通訊。

  • 安裝

macOS 最簡單的安裝方法是使用 Homebrew。該軟體包已經有一段時間沒有正式釋出了。建議從最新版本 HEAD 開始安裝,以避免已解決的問題。

  1. brew install libimobiledevice --HEAD
  • 從源編譯

如果 Homebrew 解決方案在 macOS 上不起作用,或者在 Linux 或 Windows 上安裝,則需要從原始碼編譯軟體包。可以在此處找到構建說明。

  • 啟用 WiFi 備份

在撰寫本文時,HEAD不支援透過WiFi執行備份。所以需要透過一個簡單的更改開啟了PR,以啟用此功能。如果仍然沒有合併,並且您想使用WiFi,請嘗試從此fork構建。

配對您的裝置

安裝 libimobiledevice 之後,第一步是檢視是否可以發現您的裝置。

  1. idevice_id -l -n

這將搜尋並列出透過USB或WiFi連線的所有裝置的裝置識別符號。

如果您從未將此裝置連線到計算機,則可能需要先將其配對。透過執行檢視裝置是否已配對

  1. idevicepair -u $DEVICE_UDID validate

如果未配對,則啟動配對過程

  1. idevicepair -u $DEVICE_UDID pair

您應該在裝置上看到一個對話方塊,要求“信任此計算機”。選擇“信任”,並在出現提示時輸入密碼。

如果需要區分多個連線的裝置,請嘗試使用獲取有關裝置的更多資訊ideviceinfo。例如,

  1. ideviceinfo -u $DEVICE_UDID -k DeviceName
    將列印出裝置名稱。

啟用加密

強烈建議在執行備份之前啟用加密。

  1. idevicebackup2 -u $DEVICE_UDID encryption on -i

應該提示您輸入備份密碼。此加密使用 Apple 提供的標準 iTunes 備份加密。有關更多詳細資訊,請參閱《Apple平臺安全性指南》。

執行備份

現在,我們將備份到本地檔案系統。您需要指定一個 BACKUP_PATH。這裡有兩種不同的方法可供選擇:

  1. BACKUP_PATH 臨時備份並作為塊複製到 IPFS(速度較慢)
  2. BACKUP_PATH 永久備份並透過檔案儲存新增到 IPFS(更快)
  • 選項 1 是一個簡單的解決方案

它使用您可能熟悉的普通 IPFS 使用模式。但是,這將導致整個備份儲存到本地檔案系統,然後複製到IPFS。我發現如果您改用檔案儲存,效能會大大提高。

  • 選項 2 使用檔案儲存

這是一項實驗性功能,它允許 IPFS 引用要新增的檔案而不是複製它們。因為我們正在處理如此大的檔案,所以這將大大提高效能。但是,請注意,備份必須永久存在於本地檔案系統上的某個位置。如果以任何方式修改這些檔案,事情將會中斷。

您可以透過更改 IPFS 配置來啟用檔案儲存:

  1. ipfs config --json Experimental.FilestoreEnabled true

現在,執行備份

  1. idevicebackup2 -u $DEVICE_UDID backup $BACKUP_PATH

這可能要花點時間。

將備份儲存到IPFS

備份完成後,我們現在可以將其新增到 IPFS。如前所述,有兩種選擇。

  • 選項1

將備份複製到 IPFS

ipfs add -r "${BACKUP_PATH}/${DEVICE_UDID}"

清理臨時備份

rm -r $BACKUP_PATH

  • 選項2

使用以下方法將備份新增到IPFS檔案儲存中 --nocopy

ipfs add --nocopy -r "${BACKUP_PATH}/${DEVICE_UDID}"

跟蹤備份

將備份新增到 IPFS 後,我發現使用 MFS(可變檔案系統)跟蹤不同的備份很有用。我 ios-backups 在 MFS 的根目錄下保留了一個目錄。

ipfs files mkdir /ios-backups

該目錄包含一個以命名的檔案列表,DEVICE_UDID 其內容是該裝置最新備份的 CID。

echo "${CID}" | ipfs files write --create /ios-backups/${DEVICE_UDID}

非常感謝您對 IPFS&Filecoin 專案的持續支援。我們很高興繼續與您一起,為人類資訊建立一個強大的,去中心化和高效的基礎。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;