You are on page 1of 3

Android-x86 - Porting Android

to x86
Search

Documentation
>

News

Debug Howto

Download
Donate
Get Source
Installation

This page explains how to use adb and gdbserver with VirtualBox

Screenshots
Documentation
App HowTo
CustomizeKernel
VirtualBoxHowTo
QemuHowTo
Sdcard HowTo
UvesafbHowTo
HowToConfigureB
HowToMakeCame
HowToUsePrebuil
NFS How To
Touch only device
howto
NDK HowTo
Debug Howto
Add new target
How to wake up the
machine
How to make
virtualbox ICH AC97
audio to work with
android eclair-x86
How to boot the
Android-x86 Live-CD
when you have
problems with your
graphiccard
Supported List
Releases
ReleaseNote 5.1-rc1
ReleaseNote 4.4-r5
ReleaseNote 4.4-r4
ReleaseNote 4.4-r3
ReleaseNote 4.4-r2
ReleaseNote 4.4-r1
ReleaseNote 4.4RC2
ReleaseNote 4.4RC1
ReleaseNote 4.0-r1
ReleaseNote 4.0RC2
ReleaseNote 4.0RC1
ReleaseNote 3.2

1. use adb:
In the VirtualBox network configuration, it is simplest to configure
it for Host-Only or Bridged.
boot up Android iso image on the VirtualBox.
setup ethernet (normally, it will do DHCP by default)
find the IP address of the android VM, by going to the console <AltF1> and then typing: netcfg
you can go back to the UI by pressing <Alt-F7>
on you host machine, cd <android source code root
directory>/out/host/linux-x86/bin/
./adb kill-server
./adb connect <VirtualBox IP address>:5555, after this command,
you should see something like below
* daemon not running. starting it now *
* daemon started successfully *
connected to <VirtualBox IP address>:5555
./adb logcat to dump the debug log
2. using adb with a NAT'ed VM
The steps above work nicely if you have a VM which is set up to
use Bridged or Host-Only adapters
However, if you have a NAT'ed VM you cannot connect to the VM

RC2
ReleaseNote 2.2-r2
ReleaseNote 2.2
ReleaseNote 1.6-r2
ReleaseNote 1.6
Build 20130725
Build 20130228
Build 20120101
Build 20110828
Build 20110101

IP from the host


You will need to set up port forwarding for a host port to be
forwarded to the VM port 5555 (which is adb)
VBoxManage modifyvm <VMName> --natpf1 adb,tcp,*,
<localport>,*,5555
Example from one machine:
VBoxManage modifyvm froyo --natpf1 adb,tcp,*,5555,*,5555
Once this is done, you should see the local port (i.e. 5555 in this
case) bound on the host via netstat -a
You can now connect to the VM byadb localhost:5555

Build 20100812
Build 20100115
Build 20091113
Build 20091024
Build 20090916
Build 20090820
ReleaseNote v0.9
Contact Us
Resources
Sitemap
Recent site activity

Links
SourceForge project
Browse the source
Discussion group
Google code project
Issues tracker
Blog cwhuang
Blog sceners
Blog beyounn
Blog android-x86
Twitter android_x86
RSS for main page

Developers
Google apps
Google sites
Google mails
Google docs
Google calendar
Google analytics

2a. using adb with KVM (qemu)


If you are using KVM instead of Virtualbox you may find the following
useful.
Example of running a iso using kvm:
kvm -soundhw es1370 -net nic -net
user,hostfwd=tcp::4444-:5555 -cdrom buildname.iso
note the networking arguments: this allows "user networking" which
doesn't need root access, while still allowing adb connections, by
forwarding them on port 4444 of localhost, so to connect you would use:
adb connect localhost:4444
to disconnect simply (you'll need to do this after stopping/restarting a
VM session):
adb disconnect
Its also possible to pass-through usb devices from the host to android
guest running in kvm by adding the parameters:
-usb -usbdevice host:2.*
where in the above example that would pass through all devices on the
number 2 usb host bus.

3. how to use gdb with gdbserver:


Android-x86 comes with a preinstalled gdbserver. And you can find it in
/sbin/gdbserver. To use gdb to debug your process, you need to:
set up host-only network as mentioned earlier
in the terminal emulator, run su
in the terminal emulator, run gdbserver <VirtualBox ip
address>:1234 [application binary name with the path] or [--attach
pid]
on your host machine, run gdb [path of your application binary]
gdb > target remote <VirtualBox ip address>:1234
gdb > set solib-search-path <the path to all the shared library
binaries>

gdb > c
4. Stop zygote to run automatically:
in the vendor/asus/eeepc/init.rc, change following lines
service zygote /system/bin/app_process -Xzygote
/system/bin --zygote --start-system-server
socket zygote stream 666
onrestart write /sys/android_power/request_state
wake
onrestart write /sys/power/state on
to:
service zygote /system/bin/app_process -Xzygote
/system/bin --zygote --start-system-server
socket zygote stream 666
onrestart write /sys/android_power/request_state
wake
onrestart write /sys/power/state on
disabled
oneshot
To start zygote manually just do "start zygote" from
the command line.

Comments
You do not have permission to add comments.

Sign in | Recent Site Activity | Report Abuse | Print Page | Powered By Google Sites

You might also like