"The path to exercising this freedom is long and poorly
documented, though. Eventually somebody will certainly pull
together a definitive resource for developers wanting to hack on
their Android phones; until then, one is left digging through a
long series of web sites and forums (a few of which are listed
below). This article will not be that resource, but, hopefully, it
can help to point interested people in the right direction. Please
note that this article assumes that you have an ADP1 phone; if you
have a locked-down G1 you can still participate in all of the fun
and games that follow, but you will need to root the phone
first.
"The first stop, unfortunately, is the decidedly non-free
Android SDK. Actually, this package is only truly mandatory for
those wanting to build Android applications of their own. But it
contains a pre-built version of the Android Debug Bridge (adb)
tool, which is essential for working with the phone over a USB
connection. With adb, one can connect to a shell running on the
phone, move files back and forth, forward network ports to and from
the phone, and more. Yes, one can run a shell directly on the
device using the terminal emulator application, but life is
certainly much easier when one can use a real keyboard."