windows11 wsl kali子系统 adb调试

news/2024/11/17 6:53:13/

环境准备

在Windows中

  1. 安装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 下载安装包并安装
  2. 测试
    在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检查设备是否连接成功

  1. 使用管理员模式打开powershell
    如果安装了Windows Terminal,可以在打开Windows Terminal之后,按住ctrl点击新建标签页的加号,快速打开管理员模式的Powershell或CMD
  2. 运行以下命令,如果出现自己的设备名称则说明连接成功,注意设备名称有可能不是手机名称,可以在任务栏中点击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设备

  1. 执行以下命令共享usb设备(即手机)
# 这里的6-3替换成自己的
usbipd bind --busid 6-3
  1. 查看是否共享成功
usbipd list 

如果看到结果中的STATE变成Shared说明usb接口正在共享

4. wsl(kali子系统)连接usb

  1. 执行以下命令让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
  • 也有可能是其他环境问题,参考具体报错信息
  1. windows中检查是否成功
    执行usbipd list 查看STATE是否变为Attached
    或者执行usbipd wsl list查看STATE是否变为Attached - kali-linux
  2. 在kali子系统中
    执行lsusb查看是否存在自己的设备(可能名称会不一样)

使用adb连接手机

  1. 首先停止adb
# 找到adb的进程id并杀死
ps -ef|grep adb
  1. 使用root权限启动adb server
sudo adb start-server
  1. 查看是否连接成功
# 执行命令后应该能在下方看到自己的设备
adb devices 

5. wsl(kali子系统)取消连接usb

当我们在wsl使用完usb接口后,需要解绑,不然下次usb还会连接到子系统中

usbipd unbind -b 6-3

http://www.ppmy.cn/news/8437.html

相关文章

从umati 看德国人如何玩OPCUA的

到目前为止,机器的联网标准缺乏统一的协议和语义标准。比较知名的要数每个的MTConnect。fanuc机床的focas协议。未来的发展方向是OPCUA协议。但是实现这个目标并非一日之功。德国的umati 社区也许给我们一些启发。 为了推进机床行业的数字化进程,VDW&…

Good Bye 2022: 2023 is NEAR

A.B略 C.鸽巢原理中国剩余定理 首先,显然所有数必须两两相同,不然加上任何整数必定会产生gcd > 2的组合 然后我们手玩可以发现奇偶性,我们至少不能使得有两个数同时是偶数,如果出现两个偶数,两个奇数,例如2 4 5 7,那么无论x选择什么,都至少会出现两个偶数,进一步地,我们发…

Linux多进程编程之exec函数族使用

Linux多进程编程之exec函数族使用1.exec函数族是什么2.execl函数具体使用3.execlp4.exec后面不同字母所代表的含义1.exec函数族是什么 顾名思义,它并不只是一个函数,而是以exec开头的六个函数,并且是没有exec这个函数的(就像TCP/…

C++中STL的vector扩容机制

目录前言发生扩容扩容机制size()和capacity()reserve()和resize()前言 前阵子面试的时候,被问到往vector中插入一个数据可能会发生什么? 我答:可能会扩容; 为啥vector支持变长? 我答:它实在堆上动态申请内存,因此有自己的一套扩容…

保护性暂停设计模式

目录 保护性暂停设计模式 获取结果 产生结果 总代码实现 测试 增加超时效果的Guarded suspension get(long timeout) 测试 保护性暂停设计模式 Guarded Suspension 即 保护性暂停; 是一种等待唤醒机制的一种规范 ,也可以理解为使用中设计模式,Java的API很多都按照保护性…

android中service实现原理分析

前言: 一开始的目标是解决各种各样的ANR问题的,我们知道,ANR总体上分有四种类型,这四种类型有三种是和四大组件相对应的,所以,如果想了解ANR发生的根因,对安卓四大组件的实现流程是必须要了解的…

第一个完整的CMake工程

第一个完整的CMake工程一、概述二、准备工作2.1 创建工程2.2 创建源码目录三、换个地方保存目标二进制文件3.1 add_subdirectory 指令说明3.2 重设目标二进制生成目录四、如何安装4.1 目标文件的安装4.2 普通文件的安装4.3 非目标文件的可执行程序安装(比如脚本之类)&#xff1…

【自学Java】Java选择结构if

Java选择结构if Java语言if条件判断 在 Java 中,关键字 if 是用于测试某个条件(布尔型或逻辑型)的语句是否满足一定的条件,如果满足特定的条件,则会执行 if 后面的大括号 {} 括起来的代码块,如果没有代码…