Android and VNC =============== Josh's Solution ~~~~~~~~~~~~~~~ Resources --------- http://code.google.com/p/android-vnc/ http://dotnetvnc.sourceforge.net/ http://www.life-gone-hazy.com/src/simple-tcp-proxy/simple-tcp-proxy.c http://code.google.com/p/android/downloads/list Guide ----- Download the Android kernel source. Download the kbde (keyboard device emulator) kernel patch (from fbvncserver project page). Patch and build the Android kernel: - Get the configuration file: $ cd kernel $ adb pull /proc/config.gz (Unzip and rename to .config) or $ make goldfish_defconfig (TODO: TEST THIS!!!) - Add to the Makefile: CROSS_COMPILE=arm-none-linux-gnueabi- - Comment out in the Makefile: #LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\ #$(call ld-option, -Wl$(comma)--build-id,)) - Apply the patch: $ patch -p1 < linux-2.6.23-android-...-kbde.patch - Build the kernel: $ make (zImage will be generated in kernel/arch/arm/boot) - Start the emulator with the new kernel: $ emulator -noskin -kernel zImage - Build the fbvncserver (or just grab the binary): Make sure you have autoconf, automake and libtool installed on your system. Build the LibVNCServer project: $ cd LibVNCServer $ ./configure --host=arm-none-linux-gnueabi --without-pthread $ make $ make install Build the fbvncserver project: $ cd fbvncserver_src $ autoreconf -i -s $ ./configure --host=arm-none-linux-gnueabi --with-libvncserver=/opt/android-dir - Install fbvncserver on the emulator: $ adb push fbvncserver /data $ adb shell /data/fbvncserver - Redirect the port so the local machine can access the server: $ telnet localhost 5554 $ redir add tcp:5900:5901 - Test locally: $ xvnc4viewer -noauto localhost - Redirect the network port to the local machine port (for remote access): $ simple-tcp-proxy 5900 127.0.0.1 5900 Native Solution ~~~~~~~~~~~~~~~ Resources --------- http://www.codesourcery.com/gnu_toolchains/arm/download.html http://www.life-gone-hazy.com/src/simple-tcp-proxy/simple-tcp-proxy.c Guide ----- $ arm-none-linux-gnueabi-gcc -static -o tcp-proxy simple-tcp-proxy.c $ adb push proxy /data/tcp-proxy $ adb shell /data/tcp-proxy 0.0.0.0 5901 127.0.0.1 5900 $ telnet localhost 5554 $ redir add tcp:5900:5901 - Redirect the network port to the local machine port (for remote access): $ simple-tcp-proxy 5900 127.0.0.1 5900