Share this:

With a patch to both the Android kernel and browser, Luke Hutchison was able to add usable multitouch support to the T-Mobile G1. If you aren’t concerned about updating your firmware, this is a hack that you can use on your device today, despite this not being an official component of the device’s design.

I moved my original multi-touch code back into the kernel, because it turns out that currently it’s a lot easier to patch the kernel and get a working Android system than it is to patch the Android java stack and get a working system. (The Android java stack that made it into the G1 was branched and polished long before the source code was released publicly, and the source code in git usually doesn’t run without problems due to being in a state of flux.) You can find the kernel patch to the synaptics touchpad driver here. Many thanks to zinx for helping to polish the kernel patch and figure out the best way to get mutitouch info into userspace.

I also patched the Android browser to support multi-touch scaling, source/diffs are linked below. The patched version also includes support implemented by JesusFreke for autorotating web pages based on phone orientation (you turn the phone on its side without even sliding out the keyboard, and the web page you’re viewing rotates) — you have to manually enable this in the Preferences to get it working though.

As you might have noticed in the video above, Luke also created a demo Google Maps browser that uses the multitouch zoom gesture. The map only zooms in and out at the normal tile steps, which is a bit awkward compared to the fractional zoom on the iPhone, but I much prefer the gesture input to clicking plusses and minuses.