最近在用WSL2编译aosp和lineageos ,由于WSL2和WSL使用不同的技术,导致WSL2中Ubuntu识别不了usb,无法使用
adb devices
和fastboot devices
网上查了一番 https://blog.csdn.net/u014175785/article/details/113438143
看起来挺靠谱,实则
方法1 ,在sh脚本文件中不能用别名alias ,方法2 不仅麻烦而且没成功
最后研究发现,还是用ln 才成功
根据上面的方法1得知 wsl2中的shell是支持adb.exe 命令的
所以可以用下面方法
- 先把windows版的platform-tools目录copy到 Ubuntu系统内(ln在ntfs中好像不可用)
sudo cp -r /mnt/d/android/Sdk/platform-tools /home/pei
如果直接通过通过
\\wsl$\Ubuntu\
文件夹拷贝 ,记得拷贝后执行sudo chmod +x adb
和sudo chmod +x fastboot
- 在使用ln 创建连接
sudo ln -s /home/pei/platform-tools/adb.exe /usr/bin/adb
sudo ln -s /home/pei/platform-tools/fastboot.exe /usr/bin/fastboot
结束
如果是用来执行 fastboot flashall -w命令的,需要在windows下配置ANDROID_PRODUCT_OUT环境变量,因为这边的fastboot使用的是windows的
image.png
还有一种方法是微软官方推荐做法,比较麻烦,教程如下
连接 USB 设备 | Microsoft Docs
需要sudo 权限执行adb和fastboot ,非root执行可以参照下面方法添加udev规则
Ubuntu下Adb/Fastboot配置udev规则