rdp-cli

AI エージェントで USB・Wi-Fi 接続の Android を操作する

Android 12 以降の画面取得、文字入力、ファイル転送と、rdp-cli の同じセッションでの操作引き継ぎを解説します。

対応基準は Android 12 以降です。実機確認済みなのは Android 12 の Google Pixel 3 です。すべてのメーカーや後続バージョンでの検証を意味しません。

ダウンロード · はじめ方

スマートフォンの準備

  1. 開発者向けオプションと USB デバッグを有効にし、データケーブルで接続して、ロック解除した端末でデバッグを許可します。
  2. Wi-Fi ではワイヤレスデバッグを有効にし、端末に表示されたペア設定コードとポートを使用します。接続ポートは別です。USB 接続は不要です。
  3. Windows の USB 接続には、スマートフォンとホストの CPU アーキテクチャに適した WinUSB ドライバーが必要です。ARM64 も同様です。rdp-cli はドライバーの自動インストールや他のデバッグツールの終了を行いません。 Linux (x86_64 / ARM64) では、適切な udev ルールまたはデバイスグループで通常のユーザーに端末の USB アクセス権を付与し、以下のコマンドを Bash で実行します。rdp-cli の実行に sudo は使わないでください。macOS はシステムの USB インターフェースを使用します。

DEVICE_SERIAL、SESSION、OBSERVATION、PHONE_IP と2つのポートを実際の値に置き換えてください。connect の data.session と各スクリーンショットの data.observation を使用します。wifi:PHONE_GUID は返された wifi: デバイス ID に置き換えます。PHONE_REF には、このコンピューターにペア設定を保存するための名前を指定します。入力を求められたら、その時点の6桁のコードを入力してください。コマンドが標準入力で送信します。

Windows PowerShell: rdp-cli → .\rdp-cli.exe.

検出して接続

検出結果のデバイス ID を明示的に指定します。接続だけではウィンドウや音声は開始しません。

rdp-cli android devices
rdp-cli connect --protocol adb --device usb:DEVICE_SERIAL --transport usb
rdp-cli screenshot --session SESSION --out before.png

小さなタスクを完了する

許可されたスマートフォンでメモアプリを開き、空のメモを作成します。before.png を確認し、X と Y を入力欄の実際の座標に置き換えてタップします。focused.png を確認し、応答の data.observation を NEW_OBSERVATION として使って貼り付けます。result.png で結果を確認してください。パソコン側の表示ウィンドウは不要です。

rdp-cli android touch --session SESSION --kind tap --x X --y Y --observation OBSERVATION
rdp-cli screenshot --session SESSION --out focused.png

日本語などの Unicode や複数行の文字は明示的なクリップボード方式で入力します。スマートフォンのクリップボードを置き換えますが、パソコンとは同期しません。例文は自分のメモに置き換えてください。画面回転や観測値の期限切れ後は、画面を再取得して確認します。

rdp-cli android text --session SESSION --method clipboard --text "リモート作業が完了しました。" --observation NEW_OBSERVATION
rdp-cli screenshot --session SESSION --out result.png

ファイルとフォルダー

ファイル往復では、ローカルに任意のテスト文を含む note.txt を作成します。アップロードの data.transfer_id を UPLOAD_TRANSFER として保存し、completed を待ちます。別名のローカルファイルへダウンロードし、新しい ID を DOWNLOAD_TRANSFER として同様に待ってから内容を比較します。パスはスマートフォンのセッションフォルダー内で、アプリの非公開領域ではありません。同名ファイルは既定で上書きしません。

rdp-cli files upload --session SESSION --local ./note.txt --path note.txt
rdp-cli files status --session SESSION --transfer-id UPLOAD_TRANSFER
rdp-cli files download --session SESSION --path note.txt --local ./note-returned.txt
rdp-cli files status --session SESSION --transfer-id DOWNLOAD_TRANSFER

ワイヤレス接続

Wi-Fi は USB に代わる接続方法です。同じ端末に USB セッションがある場合は、先に disconnect --session SESSION を実行します。ペア設定後、返された端末 ID と現在の接続ポートで接続します。新しい data.session を保存し、入力前に再びスクリーンショットを取得します。

Wi-Fi ではワイヤレスデバッグを有効にし、端末に表示されたペア設定コードとポートを使用します。接続ポートは別です。USB 接続は不要です。

Android スマートフォンを接続

macOS / Linux · Bash

printf '%s' 'ペア設定コード: '
IFS= read -r -s rdp_pair_code
printf '\n'
printf '%s' "$rdp_pair_code" | rdp-cli android pair --host PHONE_IP --port PAIR_PORT --code-stdin --save-device-auth PHONE_REF
unset rdp_pair_code
rdp-cli connect --protocol adb --device wifi:PHONE_GUID --transport wifi --host PHONE_IP --port CONNECT_PORT --device-auth-ref PHONE_REF

Windows · PowerShell

$pairingCode = Read-Host 'ペア設定コード' -AsSecureString
try {
  [System.Net.NetworkCredential]::new('', $pairingCode).Password |
    .\rdp-cli.exe android pair --host PHONE_IP --port PAIR_PORT --code-stdin --save-device-auth PHONE_REF
} finally {
  $pairingCode.Dispose()
}
.\rdp-cli.exe connect --protocol adb --device wifi:PHONE_GUID --transport wifi --host PHONE_IP --port CONNECT_PORT --device-auth-ref PHONE_REF

人とエージェントが共有

コマンド、ネイティブウィンドウ、承認済みブラウザーが同じ持続セッションを共有。必要に応じて一時停止や操作の引き継ぎができます。

rdp-cli watch --session SESSION --viewer window
rdp-cli watch --session SESSION --viewer web

閲覧と操作の引き継ぎ

動作範囲

USB 一覧が空ならデータケーブルとアクセス権を確認します。ADB_DEVICE_BUSY は別のデバッグツールが使用中という意味なので、その接続を明示的に閉じます。Wi-Fi では現在の接続ポートと保存した端末識別情報を確認し、ペア設定ポートと混同しないでください。入力成功は送信確認にすぎず、次の画面や完成ファイルで結果を検証します。

  • 操作対象は端末の既存の画面です。実際のタッチや他のデバッグツールも画面に影響します。
  • Unicode の貼り付けは端末のクリップボードを明示的に変更します。コンピューターのクリップボードは読み取り・同期しません。
  • 端末の再生音にはシステムの共有確認が必要で、アプリの音声キャプチャ制限に従います。端末マイクは別の音源です。コンピューターのマイクをアプリに注入する機能はありません。
  • 音声は初期状態でオフです。再接続しても録音は再開しません。一時コンポーネントは承認済み端末だけに配置され、Root やキーボードの変更は不要です。

終了

端末音声をオフにして切断します。転送済みファイルや利用者がインストールしたアプリは残ります。

rdp-cli audio android --session SESSION --source off
rdp-cli disconnect --session SESSION

機能 · コマンドリファレンス