Android SDK on OpenBSD

Things To Remember / Preconceived Notions

I try not to pretend that I actually know what I’m doing. The documentation that I have managed to find, is mostly thanks to Google, newsgroups, or forum posts. I’ve experienced firsthand several instances where I had supposed that I should go about doing some monumental task (e.g. re-porting the custom SDL used in the emulator) only to find out later on (by chance, by browsing commit messages, etc.) that certain things I had been looking for had simply been moved. For that reason I’d like to add a disclaimer that I am basically fumbling around in the dark. I am doing so on purpose, knowingly, and perhaps wasting a lot of time. Otherwise I would have simply bit the bullet and installed Ubuntu on my Acer a long time ago. Part of this is to learn, specifically, how to do the things that I’m trying to do (develop apps for Android on an OpenBSD host). Part of this is to learn how to learn about the ways that open source project are laid out, how they are built, and how to work with them in a vacuum.

Below is a list of items that I’ve decided are important to know up front about working with the Android SDK on OpenBSD.

  • The most readily recognized documentation on installing the SDK (at developer.android.com) is totally useless. You have to use the instructions at source.android.com instead.
  • The default “repo init” action will create a repo mirror of the current branch. Use “-b <pastry>” to specify a particular branch.
  • Android 1.5 is called ‘cupcake’
  • Android 1.6 is called ‘donut’
  • Android 2.0/2.1 is called ‘eclair’, and 2.0 should be considered superseded by 2.1.
  • Android 2.2 is called ‘froyo’
  • There are a set of instructions that match up through “repo sync”, but then reference “make adb”
  • Always use GNU make with the SDK, on OpenBSD, this means pkg_add ‘gmake’ and s/make/gmake/g for all instructions.

Current Status

As I work through the SDK trying to get it to compile, I’ll update the below with notes or specific examples of what I’ve done. Because I’m doing this as I work through the SDK I’m not really putting any effort into formalizing the layout just yet. As such, things may be highly inconsistent in terms of the invormation I provide and the format they are provided. Just a heads up. At some point I hope to formalize this page into a sort of how-to guide to porting the SDK to other operating systems. Perhaps I can save someone else some work.

Currently, I’ve done the following:

# mkdir ~/mydroid; cd ~/mydroid
# repo init -u git://android.git.kernel.org/platform/manifest.git
# repo sync

  • Branch build to OpenBSD-host
  • Begin patching various items in build to account for differences in OpenBSD
  • Branch external/qemu to OpenBSD-host
  • Patch the SDL distribution in external/qemu/distrib/sdl-1.2.12 to build properly on OpenBSD.
  • Begin patching the qemu files so that they will build.