在Windows VirtualBox虚拟的Ubuntu中使用adb
背景
Android手机有些脚本需要在Linux环境中用,有些场景下还是需要在Windows中用VirtualBox虚拟一个Linux/Ubuntu来使用。
主机虚拟机互访
在VirutalBox安装好Ubuntu后,adb命令包是没有的,虚拟机也是不能上网的,不可能用apt-get了,一个简单的方法就是先在主机上下好deb包,把deb包传输到Ubuntu下用dpkg命令安装。
主机虚拟机文件互访可以通过设置VB的共享文件夹,不过需要安装增强功能,安装过程好像需要依赖包,不可行,只能先把主机虚拟机ping通了,通过Ubuntu的网上邻居就可以访问。
ok,下来需要做的事情:
- 在全局设定/网络路径下,Host-only中添加一个网络,ip/netmask配下,一般用192.168.1.111/255.255.255.0,不启用DHCP服务器。
- 网络界面默认是Nat方式,连接方式改成Host-only,界面名称就是刚才添加的网卡了。
- 网络界面有个选项是插入网络,必须要勾选表示启用网络。
- 在虚拟ubuntu下配置静态ip,重启,互ping应该都通了。
Ubuntu eth0 ip:
auto eth0 |
Windows下网卡信息:
以太网适配器 VirtualBox Host-Only Network: |
ping通后,可以在Windows上共享某个文件夹(not everyone),然后到Ubuntu下用网上邻居登录Windows就可以看到啦 or 直接在Files浏览里点击connect a server输入:
smb://192.168.1.122 |
adb包离线安装
offline install is always what we want. http://packages.ubuntu.com中找到对应adb deb文件,dpkg安装不需要依赖,ubuntu是desktop。
lsusb找不到设备
为了在vb中使用usb,需要安装扩展包Oracle_VM_VirtualBox_Extension_Pack…到VB网站下载到本地后在全局设定/扩展中安装。
安装完成后启用USB2.0,lsusb依然找不到设备,Win7/cmd下adb使用正常。
偶然发现最下面状态栏的USB设备状态没有活动设备,右击可以看到设备,不过就是选不中,多选几次会出现弹出如下错误:
不能分配 USB设备
查了下网上有解决方法要改下Windows7的注册表,先备份:
打开注册表工具regedit,依次进入HKEY_LOCAL_MACHINE\SYSTEM\Curr-entControlSet\Control,会看到下面有Class{36-FC9E60-C465-11CF-8056-44455354-0000},点击它,在右侧出现窗口会看到有个UpperFilter,选中它,鼠标右键-删除,重启电脑。
删掉后连接手机会发现Windows在找驱动:VirtualBox USB驱动,安装完成后,lsusb就可以看到了。
Bus 001 Deivce 002: ID 1eee:3333 |
adb devices no permissions
adb devices运行后仍然找不到设备,会有如下提示,这个已经和VirtualBox么关系了,linux问题。
List of devices attached |
- 进入/etc/udev/ 创建70-Android.rules文件,加入如下内容:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1eee", ATTRS{idProduct}=="3333", MODE="0666"
- 进入~/.android/目录,创建adb_usb.ini文件,把lsusb的idVendor填入,注意0x。
0x1eee
- vb下直接重启ubuntu,adb devices就可以找到设备了。
btw: VB下USB设备在活动时Win7下的adb devices已经失效,虚拟机退出后恢复。
版权声明:本站所有文章均采用 CC BY-NC-SA 4.0 CN 许可协议。转载请注明原文链接!