2010年5月19日 星期三

Remote debug Android by adb tool

The default Android adbd is only listened on 127.0.0.1:5037, so if the USB is not working on developing board, you can't use adb to do something.

The default setting on device, only listen 127.0.0.1:5037


# netstat      
Proto Recv-Q Send-Q Local Address          Foreign Address        State
tcp        0      0 127.0.0.1:5037         0.0.0.0:*              LISTEN
tcp        0      0 192.168.1.128:56559    74.125.47.109:993      ESTABLISHED


Following is the step to enable the remote adbd

# mv /dev/android_adb /dev/android_adb.bk
# setprop persist.service.adb.enable 1
# setprop service.adb.root 1
# setprop ctl.stop adbd
# setprop ctl.start adbd
# netstat

Proto Recv-Q Send-Q Local Address          Foreign Address        State
tcp        0      0 127.0.0.1:5037         0.0.0.0:*              LISTEN
tcp        0      0 0.0.0.0:5555           0.0.0.0:*              LISTEN
tcp        0      0 192.168.1.128:56559    74.125.47.109:993      ESTABLISHED


The Host machine which want to connect to remote Android device, you can use following command:
Ubuntu$export ADBHOST=192.168.1.128
Ubuntu$./adb kill-server
Ubuntu$./adb devices
Ubuntu$./adb shell

2010年5月14日 星期五

Android source build problem on Virtual machine

You may install Ubuntu on Virtualbox, and use it to build Android source. When you build whole source code based on Android 1.6, you will not meet "too many open file" error when trying to build it. But when you run "repo sync" to update Android 1.6 to 2.1, you may meet this error.
This is caused by the small open file limitation on Ubuntu Linux system.
You can add following value into configuration file in /etc/security/limits.conf


jacky soft nofile 2048
jacky hard nofile 4096

This changing will let the user(jacky) can open files up to 4096.
Then the "too many open file" error will go out.