免iTunes,Linux系統連接iPhone存取照片和APP檔案

Linux系統透過一些開源軟體的幫助就能存取iPhone/iPad的照片,甚至可以免iTunes整機備份。有些iOS APP的目錄可以讓我們放檔案進去,例如將影片放到VLC影片播放器的目錄,而非放到iOS的相簿。此外還能透過Linux 版AltStore安裝第三方APP。

1. 安裝iOS相關的套件

在Linux電腦安裝以下套件,這些工具也有提供MacOS和Windows的版本。

  • usbmuxd:用於處理蘋果的USB通訊,並允許iOS裝置以USB分享網路給電腦。
  • libimobiledevice:用於處理蘋果的USB通訊,還可以用來截圖、取得裝置資訊。
  • ifuse:用於掛載iOS裝置的檔案系統,也可以掛載iOS APP的目錄。
  • ideviceinstaller:管理iOS裝置上的APP,也能安裝自己編譯的IPA。

  1. 安裝好後將自己加入plugdev群組($USER是目前使用者名字的變數)
1
sudo gpasswd -a $USER plugdev
  1. 再執行usbmuxd (systemd免此步驟):
1
sudo usbmuxd -f -v &
  1. iPhone插到電腦,在iPhone上點選「信任此電腦」。

2. 與iPhone配對

每次iPhone重新連接後皆須執行此步驟。

  1. 將iPhone插上電腦,輸入指令配對,在iPhone上點選「信任此電腦」。
1
idevicepair pair
  1. 驗證連接是否成功
1
idevicepair validate

3. 傳輸iPhone的照片影片

此步驟存取的是iPhone內建「照片」APP目錄下的檔案。不建議從電腦移動照片到iPhone。

  1. 有些桌面環境會自動掛載iPhone的照片目錄。若無則手動建立掛載點:
1
sudo mkdir/run/media/$USER/iphone
  1. 用ifuse掛載iPhone的目錄(雖然用sudo,不過-o allow_other參數能讓其他使用者存取該目錄)
1
sudo ifuse -o allow_other /run/media/$USER/iphone
  1. 開啟掛載點下的DCIM/100APPLE目錄,這樣就能將iPhone上的照片與影片傳輸到電腦了,建議用cp -a指令複製才能保留照片拍攝時間。

  2. 傳輸完成後,取消掛載:

1
sudo fusermount -u /run/media/$USER/iphone

不建議移動照片到iPhone,且iCloud和照片時間會錯亂。但如果移了就得強迫iPhone重新整理相機膠卷。

首先取消掛載,再將iPhone重開機,照片才會出現。

1
2
3
4
5
6
# 移動完照片後刪除快取,之後iPhone的照片APP會閃退
cd /run/media/$USER/iphone/PhotoData
rm Photos*
cd
# 取消掛載,iPhone重開機
sudo fusermount -u /run/media/$USER/iphone

4. 傳輸iPhone APP的檔案

有些APP的目錄可透過電腦iTunes的「檔案共享」界面存取,而Linux要手動依照APP ID掛載。

下面以VLC影片播放器為例子。

  1. 列出裝置上安裝的APP列表,例如VLC的APP ID為" org.videolan.vlc-ios"
1
ifuse --list-apps
  1. 建立掛載點
1
sudo mkdir /run/media/$USER/iphone-org.videolan.vlc
  1. 用ifuse掛載VLC的目錄:
1
sudo ifuse  -o allow_other  --documents  org.videolan.vlc-ios   /run/media/$USER/iphone-org.videolan.vlc
  1. 這樣就可以將電腦檔案移動到VLC的目錄了。

  2. 移動完成後同樣要取消掛載:

1
sudo fusermount -u /run/media/$USER/iphone-org.videolan.vlc

附記:如果你有越獄(jailbreak),可以用--root參數掛載iPhone的整個目錄:

1
ifuse --root /run/media/$USER/iphone

5. iPhone整機備份與還原

  1. idevicebackup2指令能直接建立iPhone備份,甚至可以加密,不用透過iTunes。例如整機備份iPhone到Downloads目錄:
1
idevicebackup2 backup --full ~/Downloads
  1. 要還原則使用此指令:
1
idevicebackup2 --source "裝置ID" restore --system --settings --reboot "備份檔路徑"

6. 安裝IPA

ideviceinstaller主要是給MacOS除錯用的,用Xcode編譯IPA後,可以透過此指令安裝到iOS裝置上:

1
ideviceinstaller -i CercubePlus.ipa

不過若單純想安裝第三方APP,還是使用AltStore安裝較簡單。

7. 一些小問題

如果掛載iPhone遇到There was an error accessing the mount point: Input/output error,那就換個掛載點試試看。

目前這些套件還沒有重刷iOS系統的能力,因此此類操作還是得透過Wine跑iTunes達成。

參考資料

如果本網站文章對您有幫助,歡迎贊助我。