1
1

WSL2環境でAndroid10以前の実機デバッグ

Posted at

概要

ワイヤレスデバッグ設定のない古い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

参考サイト

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1