XDAOSP Project Progress (and teaser photos)

Riding the thunder of Cyanogen’s 5.0.7 announcement, I’ve made some great progress with XDANDROID for our devices. Much of this progress comes from cyanogen’s great work, enabling the Nexus-targetted applications to run on other hardware. Note that for all of this work, I’ve cherry picked cyanogen’s changes in hopes of keeping XDANDROID as close to upstream AOSP as possible. We can worry about feature releases later.

First of all, Gallery3D is now fully functional. In fact, I had gotten it to run before, but it would crash on rotation, sucking the GPU’s memory dry. A simple fix from cyanogen has alleviated that problem. Our XDANDROID fork brings his work to our releases. Here’s a look:

Gallery3D running on XDANDROID

Next up, we have some work with Live Wallpapers, also as seen on Nexus. These are a little more difficult to deal with. Most of them use complex RenderScripts, resulting in a lot of GPU memory hogging. This, in turn, leads to out-of-memory errors and Android system crashes. Unfortunately, I have not yet managed to get these working reliably with hardware 3D rendering. I’ve gotten the Grass wallpaper to run for a short time (2 seconds) before crashing. However, they do run as expected (but slowly) with software rendering, which is good progress. Here’s a look at the Nexus live wallpaper…

Nexus Live Wallpaper on XDANDROID

To get that working at all, I needed to change the base Android framework. The Live Wallpapers use a library called RenderScript, which does the heavy graphical lifting. In upstream AOSP, RenderScript expects an OpenGLES-2.0 capable GPU to be available. Our devices don’t have that luxury, so we have to make it happy with what we’ve got. That means not only letting it render with OpenGLES-1 hardware, but conforming to the GPU’s additional requirements because of that. Luckily, cyanogen made it as easy as flipping a couple of switches in the product config (vendor/xdandroid/msm/BoardConfig.mk).

All of this work is going to be committed (or already has) to gitorious. I still have some more work to do, primarily concerning the Live Wallpapers, then adding a buildspec.mk switch to enable those apps over the default ones. I’m also going to try my hand at getting Launcher2 working, but that could be quite tedious as it’s currently hard-coded to WVGA devices.

If you’re following XDAOSP Eclair development, see the project wiki for updates on how to enable those apps. Thanks for reading!

Quickie: XDANDROID Repository Documentation, Plus…

Just a quick post today… The XDANDROID Eclair repositories on gitorious are working pretty well for me. In hopes of getting other people into the build process, I’ve taken the time to do some documentation on how to build XDANDROID from source. Updated information is available on the XDANDROID gitorious wiki. This information will continually be updated as development commences and options or procedures change.

And now for a free preview teaser. At phhusson’s request(s), I’ve started initial development of a user-oriented XDANDROID kitchen (for Linux only at the moment). In the future, this may allow us to build an online kitchen similar to MoDaCo’s. Stay tuned for development of that kitchen. Current prerelease version (with no documentation) is available at my files repository.

XDANDROID Kitchen Screenshot

The Beginnings of an XDANDROID Build Environment

One of the ongoing goals of the XDANDROID project has been to build an entire system from the Android open-source project. This is a relatively simple task on its own: you check out the tree, configure it quickly (or just let the build system choose the generic defaults), and `make` it. Of course, with a generic build, there will be many pieces of hardware (and some software) left unsupported by the resulting images. For XDANDROID, we’d like to have a fully (or at least mostly) functional set of images as a result of a simple `make` command, after the obligatory configuration. With some recent work that I’ve pushed into a few new source repositories on gitorious, we hope to be on our way to achieving this goal. Read on to see what we’ve got and how to use it.

Continue reading “The Beginnings of an XDANDROID Build Environment”