环境准备
在Windows中
- 安装usbipd
参考资料:https://learn.microsoft.com/zh-cn/windows/wsl/connect-usb
方法一:
在powershell中执行winget install --interactive --exact dorssel.usbipd-win
方法二:去https://github.com/dorssel/usbipd-win/releases 下载安装包并安装 - 测试
在powershel 中输入以下命令即可查看usb设备
PS C:\Users\zhangsan> usbipd list
Connected:
BUSID VID:PID DEVICE STATE
2-1 260d:1029 USB 输入设备 Not shared
2-5 04ca:707f HP Wide Vision HD Camera Not shared
2-14 8087:0aaa 英特尔(R) 无线 Bluetooth(R) Not shared
4-1 1058:264f USB Attached SCSI (UAS) 大容量存储设备 Not shared
5-1 0b95:1790 ASIX AX88179A USB 3.2 Gen1 to Gigabit Ethernet Adapter Not shared
6-2 1a2c:92f7 USB 输入设备 Not shared
6-3 22d9:2774 OPPO A59s, USB 大容量存储设备, MTP Shared (forced)
6-4 0d8c:0012 USB Audio Device, USB 输入设备
如果命令不成功重启电脑试试
在kali子系统中
运行以下命令
sudo apt install usbip hwdata adb
然后重启子系统,在Windows命令行中运行以下命令重启kali子系统
wsl -t kali-linux
kali-linux
使用kali子系统进行adb调试
1. 手机连接电脑
确保手机开启usb调试模式
2. windows检查设备是否连接成功
- 使用管理员模式打开powershell
如果安装了Windows Terminal,可以在打开Windows Terminal之后,按住ctrl点击新建标签页的加号,快速打开管理员模式的Powershell或CMD - 运行以下命令,如果出现自己的设备名称则说明连接成功,注意设备名称有可能不是手机名称,可以在任务栏中点击U盘图标(就是以前用来弹出U盘那个)查看名称
PS C:\Users\zhangsan> usbipd list
Connected:
BUSID VID:PID DEVICE STATE
2-1 260d:1029 USB 输入设备 Not shared
2-5 04ca:707f HP Wide Vision HD Camera Not shared
2-14 8087:0aaa 英特尔(R) 无线 Bluetooth(R) Not shared
4-1 1058:264f USB Attached SCSI (UAS) 大容量存储设备 Not shared
5-1 0b95:1790 ASIX AX88179A USB 3.2 Gen1 to Gigabit Ethernet Adapter Not shared
6-2 1a2c:92f7 USB 输入设备 Not shared
6-3 18d1:4ee7 SDM845-MTP _SN:3EE4384B Not shared
6-4 0d8c:0012 USB Audio Device, USB 输入设备 Not shared
记录以下我这里手机的BUSID 是6-3 下面要用到的
3. 共享usb设备
- 执行以下命令共享usb设备(即手机)
# 这里的6-3替换成自己的
usbipd bind --busid 6-3
- 查看是否共享成功
usbipd list
如果看到结果中的STATE变成Shared说明usb接口正在共享
4. wsl(kali子系统)连接usb
- 执行以下命令让wsl连接usb接口
usbipd wsl attach --busid 6-3
如果报错
- 检查kali子系统是否开启
- 检查kali子系统是否为wsl默认发行版,可以直接运行wsl命令看是否进入kali子系统,若不是运行
wsl --set-default kali-linux
- 有可能有设备正在占用usb接口,在共享usb时使用
--force
选项进行强制共享,即usbipd bind --busid 6-3 --force
- 也有可能是其他环境问题,参考具体报错信息
- windows中检查是否成功
执行usbipd list
查看STATE是否变为Attached
或者执行usbipd wsl list
查看STATE是否变为Attached - kali-linux
- 在kali子系统中
执行lsusb
查看是否存在自己的设备(可能名称会不一样)
使用adb连接手机
- 首先停止adb
# 找到adb的进程id并杀死
ps -ef|grep adb
- 使用root权限启动adb server
sudo adb start-server
- 查看是否连接成功
# 执行命令后应该能在下方看到自己的设备
adb devices
5. wsl(kali子系统)取消连接usb
当我们在wsl使用完usb接口后,需要解绑,不然下次usb还会连接到子系统中
usbipd unbind -b 6-3