adb connect to android emulator from virtualbox windows os - android

On my Windows 7 host system I have a virtualbox with Windows 7 as guest.
My goal is to work with android emulator (running at host) from virtual machine. I setted the next port forwarding settings (see the picture below).
vm port forwarding settings
Unfortunately the next cmd:
adb connect 127.0.0.1:5554
Gives me the next output:
unable to connect to 127.0.0.1:5554: cannot connect to 127.0.0.1:5554: No connection could be made because the target machine actively refused it. (10061)
Also, if I use real ip of my host Windows system (ethernet interface):
C:\Users\windows>adb connect 106.125.38.92:5554
connected to 106.125.38.92:5554
But adb devices gives me that android emulator device is offline:
C:\Users\windows>adb devices
List of devices attached
106.125.38.92:5554 offline
What steps I missed ?

I found another solution for my problem.
I have installed Android x86 virtual machine in VBox (with image from https://www.osboxes.org/android-x86/).
Attached both of the Windows vm and Android vm to NatNetwork (previously created).
windows eth0 10.0.2.4
android eth0 10.0.2.5
As a result, adb connect from Windows vm to Android vm works fine.
C:\>adb connect 10.0.2.5:5555
connected to 10.0.2.5:5555
C:\>adb devices
List of devices attached
10.0.2.5:5555 device

Related

How to connect from VirtualBox machine to Host windows through ADB?

I'm using Android Studio 2021.1.1 in windows10 and Santoku in VirtualBox 6.13 and i want to connect through ADB tool from Santoku to the Android Emulator that is running in windows.
I have check the ip for the android emulator from adb tool in windows and i got the ip address for the emulator which is
C:\Users\x\AppData\Local\Android\Sdk\platform-tools>adb shell
root#android:/ # ifconfig eth0
eth0: ip 10.0.2.15 mask 255.255.255.0 flags [up broadcast running
multicast]
And when i use adb connect 10.0.2.15:5554 in vm it gives me
unable to connect to device
after checked many solutions like these:
How to connect a socket to Genymotion device that is hosting a server?
Connect Genymotion from Another VirtualBox machine with adb
I have an idea about the problem that is i need to set the network adapter from NAT to bridge in Android Emulator but I don't know how to set it up in SDK .

Connect guest OS (ubuntu) to genymotion on host machine

I have an Ubuntu VM running on VirtualBox and an Android emulator running through Genymotion (which also uses VirtualBox), so I thought I could easily connect one VM to the other, right? Turns out it isn't so simple. I added a bridged adapter to the Ubuntu VM, restarted the ADB server and then ran adb connect -emulatorIP- This allows me to see the device, but the problem is that adb insists that the device is offline, when it quite clearly isn't. So I'd like to ask for help with this issue.
So actually all you have to do is pretend that you're trying to connect to a remote device. On the host machine run
adb tcpip <port>
which will enable that port for remote connection. Then run in the VM
adb connect <deviceip>:<port>
to connect to the genymotion device.
For further reference: https://developer.android.com/studio/command-line/adb.html#wireless

No, minSDk(API 14) > deviceSdk(API 1)

I have been given a device(ZTE Qlux 4g) by a client as a testing device for some app. I work on Ubuntu 14.04. This same phone will be distributed to 500 cab drivers, so I can't avoid testing on this phone.
I'm not getting this error on any other device(Nexus4, Nexus5, Moto E, Xperia Z). I obviously have developers option & USB debugging enabled. I installed the app by downloading the APK via email & it runs.
When I connect this device to my Ubuntu machine, logcat shows just this 1 line:
01-01 00:00:00.000 0-0/? E/Internal: insufficient permissions for device
Any help in any direction will be greatly appreciated.
The ZTE Qlux 4g uses Android 4.4, i.e. API 20. So either the given device is not genuine or have some bug in the device itself or ubuntu is not compatible with the ZTE Qlux 4g.
So what you can do is first, try this on any other OS like windows/ mac (if possible).
If the problem persists then ask the client to give another device of same model.
I was getting this error message:
Solution was on the command prompt, restart the connection with the command “adb kill-server”. Then reconnect the device.
Some background information about the device I'm using. The device I'm using is a test box (not a phone) that connects to my Laptop (Android Studio) via a USB cable or Ethernet cable. In order for me to connect the device, I had to do this:
Android Box Setup. Do these things before proceeding to bottom steps:
1) Connect the Laptop running Android Studio to the Gateway via USB cable or Ethernet (RJ45) cable.
2) Connect the Gateway to the same WiFi network as the laptop.
How to use the USB port to debug:
1) Open Command Prompt
2) Go to wherever you stored adb.exe file
3) Type in “adb connect ”. For example “adb connect 192.168.1.84” or “adb connect 192.168.1.94”.
3a) The IP address of the Android device can be found in Settings -> About tablet -> Status ->IP Address
3b) If the IP address of the Box is something like 10.134.114.51, then make sure that the box is connected to the same WiFi network as the laptop.
If you’re in the adb.exe directory, other adb commands include:
1) adb devices= Finds all devices currently connected to your computer.
2) adb kill-server= Disconnects the devices
Ubuntu 16.04
Virtualbox 5.0.24
Android 4.4-r5
Android Studio 2.1.2
I was getting these errors:
Emulator unknown emulator-5554 disconnected.
But I was able to connect to the android virtual machine in a shell outside of Android Studio.
To resolve this, in Android Studio I had to start the terminal (icon on the bottom left) and run the following:
netstat -ln | grep 5555 ;# As expected adb server was alive.
adb connect <ANDROID_VIRTUAL_MACHINE_IP_ADDR>:5555
Then the Innotek GmbH Virtual (Android 4.4.4 API19) machine item showed up above the emulator-5554 disconnected. I selected it and the debugger was working.

Android adb can't find any android device on Centos 6 Virtualbox

I've prepared a fresh Centos 6.3 x64 virtual machine on Virtualbox with android development environment, also installed the guest additions with the Extension Pack for Virtualbox.
When I connect my android device via usb, Virtualbox does find it and I can attach it easily with no problems by selecting devices usb devices SAMSUNG_Android, then Virtualbox shows the device as connected but the android device does not show the usb connection notification any more : USB connected Select to copy files to/from your computer.
On cent terminal I try adb devices command and it doesn't find anything.
When I try lsusb on terminal before and after attaching the device, it returns the same result.
Please help me find where is the problem.

Debug device connected by USB to VirtualBox's host, from Android-Studio inside VM

I am trying to get mono for android (aka monodroid) working within a windows 7 virtual machine on virtualbox but I am having issues with the adb connection to my phone. When I run "adb devices" to list the devices present it show up no problem, but when I attempt to run an "adb install", logcat, or push it hangs. Currently there is a bug in virtualbox which applies to this but I was hoping someone more knowledgeable than myself would have a workaround.
https://www.virtualbox.org/ticket/6620
Of coarse non of this would be an issue if Xamarin released a linux port of their product or if I got familiar with Java, but I suppose those are slightly different issues.
Brian, one workaround you might consider is to make your VM host an ADB host as well. Then you can just connect your VM client to it over TCP / IP. Here's the general idea for that setup:
Install the Android SDK on the host machine. You should only require the platform-tools package which includes adb.
Don't allow your VM client to take ownership of the Android device, so disable any VirtualBox USB filter rules you have and it also wouldn't hurt to then detach and reattach the device.
From your VM client, run adb kill-server. Make it a tskill adb for certainty. If you have any running instances of Eclipse, you'll want to shut those down first because it'll actually launch adb in the background. Don't skip this step.
From the host, execute adb devices. If all goes well (and it should), you'll see your device listed. It should look something like this (note the port number and sorry for the mangling):
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
015d2994ed200409 device
At this point, your host should have an ADB server running at port 5037. You can check this from the VM client by running telnet 10.0.2.2 5037, where 10.0.2.2 is the default IP for VirtualBox hosts and 5037 is the default ADB port noted above.
Now you must either forward the ports from your host to your VM client, or otherwise connect ADB directly to your host IP:port. If you're like me, you'll find the ADBHOST and ANDROID_ADB_SERVER_PORT variables to be poorly documented and easy to screw up. For this reason, consider simple port fowarding over ssh (maybe via Cygwin) like so from the VM client:
autossh -nNL5037:localhost:5037 -oExitOnForwardFailure=yes 10.0.2.2
Finally, run adb devices from your VM client. If you see "daemon not running," it means your port fowarding is screwed up. Otherwise you should see your device and be able to logcat all day. One noteworthy point is that you won't have an adb daemon running on your VM client, except for when you're actually using the debug bridge, of course.
I've used a similar mechanism for debugging devices over the network that are connected to remote machines and it worked well.
Not sure what has changed in VirtualBox since the question was posted, but selecting the usb device from VirtualBox menu Devices -> USB -> DeviceName worked seamlessly. I am working on VirtualBox 5.1.2 r108956.
I was also having trouble with ADB running over VM. I had a Windows 10 host and an Ubuntu 14.04 client. The autossh method did not work for me. I found an easier solution from another StackOverflow question. It requires that both your PC and your device are on the same WiFi network.
On your VM client run the following: adb tcpip 5555
The device will disconnect from the VM because ADB is now in TCP
mode instead of USB.
For the next part you need the IP address of
your device. To find it, simply run adb shell ip -f inet addr show wlan0
Now you can connect to your device. On your VM client, run:
adb connect <Device IP>:5555
From here all my adb shell, logcat, and monkey sessions ran without interruption!
I'm posting this here for people with a setup similar to mine:
Host OS: OSX (10.15.4 Catalina)
Client OS: Windows 10 Enterprise (v1903 build 18362.752)
VirtualBox v6.1.4
Android Studio v3.6.2
To allow Android Studio in client OS (Windows) to connect to an Android phone (using adb) via USB:
Update to latest version of VirtualBox (currently 6.1.4)
Install VirtualBox Extension Pack from here
With the VM powered down, go to Settings > Ports > USB and make sure the USB 3.0 (xHCI) Controller is enabled, then click "OK"
From the host OS (i.e. OSX) open up a terminal and start adb and confirm that the phone is connected by running adb devices
Start up the VM, and from the VirtualBox menu select Devices > USB > [YOUR PHONE] to connect your host OS USB port to the VM
Open up a terminal on the client OS (Windows) and run adb devices to confirm that the adb server is running and can find your phone. You might need to add the Android platform tools to your PATH (mine was at C:\Users\Username\AppData\Local\Android\Sdk\platform-tools). This step might be optional--I suspect that Android Studio might start up adb on its own.
Start up Android Studio in the client OS (Windows) and go to File > Settings > Appearance and Behavior > System Settings > Android SDK > SDK Tools and make sure that the Google USB Driver is installed (see screenshot here)
After I did these things, Android Studio was able to detect my phone and run/debug apps using that device.
Hope this helps!
I had the same problem and it made me search for about 2 hours.I tried several approaches including all above solutions but none of them worked
My situation
My host was archlinux and the guest was windows 8.1 I was running flash builder in windows but the usb debugging wouldn't work and my connected device was nexus 5 so i followed these steps
Enable USB controller from virtualbox menu Machine-->settings-->usb enable usb controller and enable USB 2.0 (EHCI) controller then add your device(click on + button on right side) then start your virtual machine
Now you should download the latest google usb drivers from here and extract it
Go to control panel device manager right click on your device go to driver tab and click on Update driver there should be two option one search automaticly ... and another browse my computer choose the second one and give the extracted file path(check the Included subfolders option) after this your device should be recognized by windows and there will be a message in your android device for allowing access to your device
In my case i should copy the drivers to flashbuilder android drivers path too but maybe for your situation this isn't necessary
I had same problem with VirtualBox 5.0.14 and solution provided by Stephen Niedzielski didn't work for me. If someone is still interested can try this solution.
My environment is:
Host OS: Mac OS 10.11
Guest OS in VirtualBox: Ubuntu 14.04
Device: Galaxy S5 running Cyanomodgen 12.1
Start a wifi hotspot in host OS and connect there the android device, or connect both in a router. In virtualbox set network mode for guest OS to 'Bridged Adapter' and then select name of Wifi adapter. In that way host OS and android device are in same network.
Then, in android device activate 'Developer mode' and enable 'ADB over network', provided from Cyanomodgen. (For devices with original version of android, google how to use ADV over network if possible)
In host OS run 'adb kill-server' and make sure no instance of ADB is running. Then run command 'adb connect 192.168.2.12', ip of android device.
Congrats :) Now you are are able to use ADB with android device to take logcat or pull and push files.
Install the Android SDK on the host machine. You should only require the platform-tools package which includes adb.
Don't allow your VM client to take ownership of the Android device, so disable any VirtualBox USB filter rules you have and it also
wouldn't hurt to then detach and reattach the device.
From your VM client, run adb kill-server. Make it a tskill adb for certainty. If you have any running instances of Eclipse, you'll
want to shut those down first because it'll actually launch adb in
the background. Don't skip this step.
From the host, execute adb devices. If all goes well (and it should), you'll see your device listed. It should look something like
this (note the port number and sorry for the mangling):
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
015d2994ed200409 device
At this point, your host should have an ADB server running at port
5037. You can check this from the VM client by running telnet 10.0.2.2 5037, where 10.0.2.2 is the default IP for VirtualBox hosts and 5037 is the default ADB port noted above.
(https://stackoverflow.com/a/12557836/16902966)
and in the virtual machine (Windows):
set ADB_SERVER_SOCKET=tcp:10.0.2.2:5037
Connected device(s): ...\platform-tools>adb.exe devices .

Categories

Resources