PS> denotes an administrative powershell prompt
$ denotes Ubuntu prompt in WSL
I used latest stable WSL2:
PS> wsl --version
WSL version: 2.4.13.0
Kernel version: 5.15.167.4-1
WSLg version: 1.0.65
MSRDC version: 1.2.5716
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.26100.1-240331-1435.ge-release
Windows version: 10.0.26120.3653
With Ubuntu 24.04:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.2 LTS
Release: 24.04
Codename: noble
PS> winget install --interactive --exact dorssel.usbipd-win
$ sudo apt install linux-tools-generic hwdata adb usbutils
PS> usbipd list
Connected:
BUSID VID:PID DEVICE STATE
2-1 0bda:5852 Realtek Bluetooth Adapter Not shared
2-2 048d:c103 USB Input Device Not shared
2-3 048d:c985 USB Input Device Not shared
4-1 05c6:f601 MDM9207-MTP _SN:115642E9, Android Composite ADB Interface Shared
6-1 046d:c52b Logitech USB Input Device, USB Input Device Not shared
6-4 04f2:b7b6 Integrated Camera, Camera DFU Device, Tobii Experience Not shared
MDM9207-MTP _SN:115642E9, Android Composite ADB Interface device. It may also register as Remote NDIS based Internet Sharing Device (the second one I used looked like this)PS> usbipd bind --busid <bus id from above>
PS> usbipd attach --wsl --busid <bus id from above>
usbipd: info: Using WSL distribution 'Ubuntu-24.04' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Detected networking mode 'nat'.
usbipd: info: Using IP address 172.28.96.1 to reach the host.
~/rayhunter$ ./install.sh
Using adb at /usr/bin/adb
Force a switch into the debug mode to enable ADB
adb enabled, waiting for reboot... it's alive!
waiting for atfwd_daemon to startup... done!
./rootshell: 1 file pushed, 0 skipped. 1059.3 MB/s (688868 bytes in 0.001s)
uid=0(root) gid=0(root)
we have root!
./config.toml.example: 1 file pushed, 0 skipped. 6.6 MB/s (389 bytes in 0.000s)
./rayhunter-daemon: 1 file pushed, 0 skipped. 3.4 MB/s (4613352 bytes in 1.310s)
./scripts/rayhunter_daemon: 1 file pushed, 0 skipped. 4.0 MB/s (580 bytes in 0.000s)
./scripts/misc-daemon: 1 file pushed, 0 skipped. 25.1 MB/s (2302 bytes in 0.000s)
waiting for reboot...
PS> usbipd attach --wsl --busid 4-1
~/rayhunter$ ./install.sh
Using adb at /usr/bin/adb
Force a switch into the debug mode to enable ADB
adb enabled, waiting for reboot... it's alive!
waiting for atfwd_daemon to startup... done!
./rootshell: 1 file pushed, 0 skipped. 1059.3 MB/s (688868 bytes in 0.001s)
uid=0(root) gid=0(root)
we have root!
./config.toml.example: 1 file pushed, 0 skipped. 6.6 MB/s (389 bytes in 0.000s)
./rayhunter-daemon: 1 file pushed, 0 skipped. 3.4 MB/s (4613352 bytes in 1.310s)
./scripts/rayhunter_daemon: 1 file pushed, 0 skipped. 4.0 MB/s (580 bytes in 0.000s)
./scripts/misc-daemon: 1 file pushed, 0 skipped. 25.1 MB/s (2302 bytes in 0.000s)
waiting for reboot... done!
checking for rayhunter server...success!
you can access rayhunter at http://localhost:8080
Happy hunting!
I noticed trying to get this working this weekend (ultimately successfully), that it appearing as the “ADB Interface” rather than the stock device name assumes you’ve already forced adb. Also working in an AlmaLinux9 WSL2 terminal I had to unmask and start udev with appropriate rules to get it to show up.