Linux系統透過一些開源軟體的幫助就能存取iPhone/iPad的照片,甚至可以免iTunes整機備份、重置系統、給iPhone越獄。
為何不用iTunes呢?iTunes只有Windows與macOS版,Linux系統得用Wine裝,但是用Wine裝iTunes很痛苦的,最新版本就算依賴套件全裝開啟還是黑螢幕。若不想為存取iPhone/iPad檔案開Windows虛擬機,那就使用開源軟體來達成目標吧!不需要用Windows上閉源的iMazing、iTools軟體。
本文提及的軟體,Ivon使用iPhone SE 2016和iPod touch 6測試過,確認可以使用。
另請參見:
1. 安裝iOS相關的套件#
在Linux電腦安裝以下套件,這些工具都是開源社群針對Apple公司技術的重新實作,他們還有提供macOS和Windows的版本。
- usbmuxd:用於處理蘋果的USB通訊,並允許iOS裝置以USB分享網路給電腦。另有遠端連線用的 usbfluxd
- libimobiledevice:用於處理蘋果的USB通訊,還可以用來截圖、取得裝置資訊。
- ifuse:用於掛載iOS裝置的檔案系統,也可以掛載iOS APP的目錄。
- idevicerestore:升級重置iOS裝置
- ideviceinstaller:管理iOS裝置上的APP,也能安裝自己編譯的IPA。
Arch Linux安裝以下套件:
sudo pacman -S usbmuxd libimobiledevice ifuse
yay -S ideviceinstaller idevicerestore
sudo systemctl enable --now usbmuxd
Ubuntu 22.04安裝以下套件:
sudo apt install usbmuxd libimobiledevice-utils ifuse ideviceinstaller idevicerestore
sudo systemctl enable --now usbmuxd
2. idevicepair 與iPhone配對#
每次iPhone重新連接後皆須執行此步驟。無法連線的話先執行systemctl enable --now usbmuxd
和systemctl enable --now avahi-daemon
。
如果執行指令的時候認不到裝置,請嘗試加上sudo
。
- 將iPhone插上電腦,輸入指令配對,在iPhone上點選「信任此電腦」。
idevicepair pair
- 驗證連接是否成功
idevicepair validate
3. ifuse 傳輸iPhone的照片影片#
此步驟存取的是iPhone內建「照片」APP目錄下的檔案。不建議從電腦移動照片到iPhone相機膠卷。
KDE和GNOME桌面環境應會自動掛載iOS裝置的照片目錄,從檔案管理員點選查看。
- 或者可手動建立掛載點:
sudo mkdir/run/media/$USER/iphone
- 用ifuse掛載iPhone的目錄(加上
-o allow_other
引數讓其他使用者存取該目錄)
sudo ifuse -o allow_other /run/media/$USER/iphone
開啟掛載點下的
DCIM/100APPLE
目錄,這樣就能將iPhone上的照片與影片傳輸到電腦了。建議用cp -a
指令複製過來才能保留照片拍攝時間。傳輸完成後,取消掛載:
sudo fusermount -u /run/media/$USER/iphone
不建議從電腦移動照片到iPhone,且iCloud和照片時間會錯亂。但如果移了就得強迫iPhone重新整理相機膠卷。
首先取消掛載,再將iPhone重開機,照片才會出現。
# 移動完照片後刪除快取,之後iPhone的照片APP會閃退
cd /run/media/$USER/iphone/PhotoData
rm Photos*
cd
# 取消掛載,iPhone重開機
sudo fusermount -u /run/media/$USER/iphone
4. ifuse 傳輸iPhone APP的檔案#
有些APP的目錄可透過電腦iTunes的「檔案共享」界面存取,而Linux要手動依照APP ID掛載。這些iOS APP的目錄可以讓我們放檔案進去,例如將影片放到VLC影片播放器的目錄,而非放到iOS的相簿。
下面以VLC影片播放器APP為例子。
- 列出iPhone上安裝的APP列表,例如VLC的APP ID為
org.videolan.vlc-ios
ifuse --list-apps
- 建立掛載點
sudo mkdir /run/media/$USER/iphone-org.videolan.vlc
- 用ifuse掛載VLC的目錄
sudo ifuse -o allow_other --documents org.videolan.vlc-ios /run/media/$USER/iphone-org.videolan.vlc
這樣就可以將電腦檔案移動到VLC的目錄了。
移動完成後同樣要取消掛載:
sudo fusermount -u /run/media/$USER/iphone-org.videolan.vlc
附記:如果你有越獄(jailbreak)且裝置版本在iOS 7以下,可以在用Cydia安裝afc2add,用--root
參數掛載iPhone的整個目錄:
ifuse --root /run/media/$USER/iphone
如果掛載iPhone遇到There was an error accessing the mount point: Input/output error
,那就換個掛載點試試看。
5. idevicebackup2 整機iPhone備份與還原#
idevicebackup2
指令能直接建立iPhone備份,甚至可以加密,不用透過iTunes。例如整機備份iPhone到Downloads
目錄:
idevicebackup2 backup --full ~/Downloads
- 要還原則使用此指令:
idevicebackup2 --source "裝置ID" restore --system --settings --reboot "備份檔路徑"
6. idevicerestore DFU模式升級重置iPhone系統#
idevicerestore工具可以用來重置iPhone系統(也就是DFU模式),也可以降級系統(需提供.shsh
檔案)
重置前務必 登出Apple ID與關閉尋找我的iPhone。
- 用以下指令清除iPhone資料,並重置系統。
idevicerestore --erase --latest
按照指示選取有Apple簽名的IPSW,它會自動下載IPSW,將系統升級到該機型支援的最新版iOS。
輸入YES同意刪除資料
另外,如果你的iOS裝置卡在恢復模式(Recovery Mode),那麼可以用另一款工具 irecovery指令退出:
irecovery -n
7. ideviceinstaller 安裝IPA#
ideviceinstaller主要是給macOS除錯用的,得自行用Xcode編譯IPA後,透過此指令安裝到iOS裝置上:
ideviceinstaller -i CercubePlus.ipa
不過若單純想安裝第三方APP,還是使用 AltStore安裝較簡單。