概要
ワイヤレスデバッグ設定のない古いAndroid端末を使って、WSLのFlutter環境で実機デバッグするためにやったことです
(Windows環境へのADBツールインストールなし)
経緯
- WSLのFlutter環境でAndroid端末の実機デバッグをしたい
- 古い端末 (Android 10) を使いたい
- Windows環境にADBツールは入れていないし、入れたくない
- WSL環境にADBツールを入れているのでこれだけ使ってなんとかしたい、やってみる
前提
- WSL カーネル ver. 5.15.153.1-2
- usbipd-win ver. 4.2.0
- WSL Flutter環境は構築済み
- Android端末のUSBデバッグは有効化済み
手順
基本的には以下を参考に進めていくだけです
1. WSLでのUSB接続認識
2. ADB接続
1. WSLでのUSB接続認識
windows環境にusbipd-winをインストール
powershell
winget install --interactive --exact dorssel.usbipd-win
USBデバイスの確認
管理者権限でpowershellを起動して usbipd list
実行
powershell 管理者権限
usbipd list
BUSID VID:PID DEVICE STATE
2-5 046d:c52f USB 入力デバイス Not shared
2-8 30c9:0014 Integrated Camera Not shared
2-9 06cb:00da Synaptics UWP WBDI Not shared
2-10 8087:0026 インテル(R) ワイヤレス Bluetooth(R) Not shared
3-2 2dc8:5201 USB 入力デバイス Not shared
3-3 22b8:2e76 moto g(7) plus, ADB Interface Not shared
Android端末のBUSIDを確認
今回の場合は moto g7
を使うため 3-3
となる
WSLへのデバイス共有
usbipd bind --busid <busid>
実行
powershell 管理者権限
usbipd bind --busid 3-3
再度 usbipd list
実行
ここからはpowershellの管理者権限不要
powershell
usbipd list
BUSID VID:PID DEVICE STATE
2-5 046d:c52f USB 入力デバイス Not shared
2-8 30c9:0014 Integrated Camera Not shared
2-9 06cb:00da Synaptics UWP WBDI Not shared
2-10 8087:0026 インテル(R) ワイヤレス Bluetooth(R) Not shared
3-2 2dc8:5201 USB 入力デバイス Not shared
3-3 22b8:2e76 moto g(7) plus, ADB Interface Shared
指定したbsuidのデバイスが Shared
に変わっていることを確認
usbipd attach --wsl --busid <busid>
実行
powershell
usbipd attach --wsl --busid 3-3
WSL側で lsusb
実行
WSL
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 22b8:2e81 Motorola PCS moto g(7) plus
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
一覧に指定のデバイスが表示されていたら成功
WSL側で表示されない場合
一覧に表示されていない場合は、WSLでのUSB接続ができていない
今回の場合は --auto-attach
オプションを付けてコマンド実行すると接続に成功した
powershell
usbipd attach --wsl --busid 3-3 --auto-attach
2. ADB接続
WSL環境 ADBで Android端末認識
adb devices
実行
WSL
adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
ZY226QDTNL unauthorized
Android端末側の接続確認画面で許可すると、WSL環境でのUSBデバッグが可能となる
リモートデバッグの場合
adb tcpip
実行
WSL
adb tcpip 5555
restarting in TCP mode port: 5555
AndroidのIPアドレスを確認し adb connect
実行
WSL
adb connect 192.XXX.XXX.XXX:5555
connected to 192.XXX.XXX.XXX:5555
後かたづけ
デバイス共有解除
接続解除
powershell
usbipd detach --busid 3-3
共有解除
powershell 管理者権限必要
powershell 管理者権限
usbipd unbind --busid 3-3
参考サイト