iOS

提供: ArchWiki
2022年12月17日 (土) 09:04時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎Connecting to a device: 訳出)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

iOS は、Apple Inc.が開発した iPhone シリーズのスマートフォン向け OS です。 iOS デバイスを Linux に接続することは Apple によってサポートされていませんが、libimobiledevice プロジェクトは、iOS デバイスと Linux マシン間で接続してデータを転送するためのライブラリとツールを提供します。

ヒント: KDE#KDE Con​​nect は、iOS と Linux 間のファイル転送にも使用できます。

インストール

libimobiledevice パッケージをインストールします。

デバイスへの接続

Usbmux デーモン

libimobiledevice パッケージは usbmuxd に依存しており、iOS デバイスへの低レベル接続を実行します。usbmuxd パッケージには、デバイスが接続または切断されるたびにデーモンを自動的に開始および停止する udev ルールも含まれています。

iOS デバイスを接続し、usbmuxd.service が自動的に開始されることを確認します。

$ systemctl status usbmuxd.service
...
Active: active (running) since Sun 2020-01-19 19:23:18 UTC; 22s ago
...

ペアリング

iOS デバイスを接続して画面のロックを解除すると、デバイス上のポップアップで「このコンピューターを信頼しますか?」というメッセージが表示されます。 [信頼する] をタップし、デバイスのパスコードを入力してペアリングプロセスを完了します。

ポップアップが表示されない場合は、ペアリングプロセスを手動で開始できます。デバイスを接続し、画面のロックを解除して実行します。

$ idevicepair pair
SUCCESS: Paired with device d8e8fca2dc0f896fd7cb4cb0031ba249

複数の iOS デバイスが接続されている場合、--udid ios_udid パラメータをターゲットの特定のデバイスに渡すことができます。

次のコマンドを実行して、ペアリングが成功したことを確認できます。

$ idevicepair validate
SUCCESS: Validated pairing with device 00008030-001D3562367A402E

データ転送

ペアリング後、iOS は 2 つの異なるファイルシステムをコンピューターに公開します。 1 つは、デバイスの写真、ビデオ、および音楽を含むメディア ファイル システムです。 2 番目のファイルシステムは、ファイルを特定のアプリと直接共有するために使用されます。これは「iTunes ドキュメント共有」と呼ばれることもあります。 [1] [2]

グラフィカルファイルマネージャーの使用

GVFS を使用するファイル マネージャーは、iOS デバイスとやり取りできます。メディアファイルシステムにアクセスするには、gvfs-gphoto2インストールします。アプリ文書ファイルシステムにアクセスするには、gvfs-afc をインストールします。

ノート: メディアファイルシステムにアクセスする場合、GVFS はデバイスの写真とビデオのみを公開し、音楽は公開しません。

Dolphin を使用して iOS ファイルにアクセスするには、solid-gitAURkio-extras-gitAUR をインストールします。これにより、メディアとアプリ ドキュメントの両方のファイル システムが公開されます。 [3]

手動でマウント

ifuse パッケージをインストールします。次に、以下のコマンドを実行して、iPhone のメディアファイルシステムをマウントします。

$ ifuse mountpoint

これを使用して、mountpoint/DCIM 内のデバイスの写真にアクセスできます。

ノート: デバイスの音楽データベースは、mountpoint/iTunes_Control でもアクセスできます。この方法でデバイスに新しい曲を追加することはできませんが、デバイスからコンピュータに曲をコピーすることはできます。
警告: iTunes_Control 内のデータベースを手動で編集すると、データベースが破損し、同期された曲がシステムの復元によってのみ削除できる古いデータになります。

アプリの文書ファイルシステムにアクセスするには、まずアプリを識別する必要があります。

$ ifuse --list-apps
"CFBundleIdentifier","CFBundleVersion","CFBundleDisplayName"
"org.videolan.vlc-ios","432","VLC"
"org.wikimedia.wikipedia","1932","Wikipedia"
"org.kde.kdeconnect","2","KDE Connect"
[...]

その後、以下を使用してアプリケーションのファイルをマウントできます。

$ ifuse --documents APPID mountpoint

APPIDorg.videolan.vlc-ios などの目的のアプリケーションのバンドル ID です。

完了したら、ファイルシステムをアンマウントします。

$ fusermount -u mountpoint

Importing videos and pictures

Both videos and photos can be found in typically in <mountpoint>/DCIM/100APPLE.

HTML5 videos

Typically you want to convert MOV files to a HTML5 video format like OGV using ffmpeg2theora. Note that the creation date metadata is not in the converted video, so you need to use a script like:

#!/usr/bin/sh

find -name "*.MOV" | while read mov
do
    d=$(gst-discoverer-1.0 -v $mov | awk '/datetime:/{print $2}' | tr -d \")
    base=${mov%.*}
    if test -f $base.ogv
    then
        touch -d${d} $base.ogv
        ls -l $base.ogv
    else
        echo $base.ogv missing
    fi
done

And use cp -a or rsync -t in order to preserve the file's date & time.

Troubleshooting

ifuse fails to mount application directories

When using ifuse to mount application directories, you may run into the following error when trying to list the contents of the mountpoint:

".": Input/output error (os error 5)

This is a known issue that has been fixed in the current development version of libimobiledevice, but has not been released in a stable version yet. A workaround is to install libimobiledevice-gitAUR.

Device cannot be redirected to a virtual machine

If you use a Windows virtual machine to sync your device via USB, trying to redirect it may fail with a "device is in use by another application" message. This is due to usbmuxd.service starting automatically when the device is connected. This can be solved by either stopping or masking usbmuxd.service.

See also