Taking Android "cupcake" out for a spin

G1-vs-cupcake.png

The upcoming revision of the Android operating system, code named cupcake, has generated a lot of excitement among users of the first Android-based phone, the T-Mobile G1. Because Google's Android operating system is Open Source, it's possible, but a little difficult, to test cupcake out on a real phone.

Among the many improvements in cupcake is a much faster web browser, due in no small part to the adoption of the SquirrelFish JavaScript engine. The picture above shows the results of running the V8 JavaScript Benchmark Suite on a G1 running the most recent shipping version of Android (top) and an Android Dev Phone 1 (bottom) running the latest build from the Android source code repository. The top one didn't even complete all the benchmarks, and only scored 1.08 and 1.54 on the ones it did complete (vs. 9.36 and 3.09) for the phone running the latest release.

To try this yourself, you'll need an Android Dev Phone 1, a Mac OS X or Linux computer, and a few hours of time. This wouldn't be possible if it weren't for the folks (links below) who documented what you need to do. Here are the steps I took along with some notes you may find helpful:

Set up your computer for Android development
Google has posted instructions for obtaining the Android source code, which also includes information on setting up your computer so that you can compile this source code into an image that you can load on your phone. Don't follow the instructions all the way; stop before you type "make".

Install the Android SDK
There are two development toolchains for Android: the one from the previous step is what you need to compile the Android operating system; the second (the Android SDK) is what you need to create applications that run on Android. You don't need the SDK to compile Android, but you do need one of the utilities included with it, adb, in order to manipulate the files on the phone.

Prepare the Android source code for building on a real device
Back in the first step, you did everything you needed to run Android on an emulator, but that's not as much fun as doing it on the real thing. In this step, you'll modify the Android source code so it's (almost) ready to compile on the HTC Dream, which is the same device that's been rebranded as the T-Mobile G1 and Android Dev Phone 1.

Tweak the Android source code some more
Jean-Baptiste Queru, a Google Engineer, has posted detailed instructions on what you need to do to before you type "gmake" (Mac OS X) or "make" (Linux). These directions are subject to change, so keep an eye on the discussions at the Android-Platform Google Group.

If you're not sure what to do about changes 7699 and 7345, go to their code review pages: Change 7345/Change 7699 and run the "repo" command listed in the "Download" section. This will pull each change into your Android source tree click the "Side-by-Side" or "Unified" link for each file in the patch set. This will show you the changes that you need to manually apply to each file. As an alternative to Change 7345, you can run the following command from inside your mydroid directory to copy over the list of cellular data access points: adb pull /system/etc/apns-conf.xml development/data/etc/apns-conf_sdk.xml

Backing up and Flashing your Dev Phone
Anton Melser has written up a great guide (which covers most of the above points as well) that explains how you can back up the Android software that shipped with your Dev Phone, and also how you can install the new images that you compiled. There is a shortcut you can use to replace all the fastboot commands: to install all the freshly compiled images at once, and to reboot afterwards, run this from your mydroid directory:
export ANDROID_PRODUCT_OUT=./out/target/product/dream
./out/host/darwin-x86/bin/fastboot -w flashall

(Note that I'm using "darwin-x86" instead of the "linux-x86" shown in Anton's instructions. Like me, Mac OS X users will use "darwin-x86")

And that's it. When your phone finishes rebooting, it will be automatically provisioned on the network; you won't need to go through the out-of-box initial setup. You'll find that most of the interesting applications aren't there (no Maps, no Market, no Gmail), but the Browser and many other core apps are working fine.

It's a complicated procedure to go through, but if you read everything twice before doing it, you should have no problems. And if something doesn't work as you expected, check out (or jump into) the discussion over at the Android-Platform Google Group.

Update: There is a Terminal Emulator application that is installed by default, however it does not appear in the launcher. To make it appear in the launcher, edit the file development/apps/Term/AndroidManifest.xml and add this line in the <intent-filter> section, then (re)compile your images:
<category android:name="android.intent.category.LAUNCHER" />

Update 2: Joel Evans (of Geek.com) and I met up and shot some video of Cupcake in action. Check it out at First look: Android's cupcake | Geek.com


Recent Entries

Leave a comment


Subscribe to MAKE!Subscribe to MAKE Magazine!

Subscribe today, save 42% and get web access to MAKE free. MAKE Digital Edition is available only to subscribers.

$34.95 / 1 year
(4 Quarterly Issues)

Subscribe now


Void your warranty, violate a user agreement, fry a circuit, blow a fuse, poke an eye out. Make: The risk-takers, the doers, the makers of things... Welcome to Make: Online!


CRAFT Maker Shed Maker Faire MAKE television




Check out more videos from MAKE.

Maker SHED

Connect with MAKE

Be a MAKE fan on Facebook MAKE on Facebook
Visit our Facebook page and become a fan of MAKE!
MAKE on Twitter MAKE on Twitter
Follow our MAKE tweets!
MAKE Flickr Pool MAKE on Flickr
Join our MAKE Flickr Pool!
    make_tips on Twitter



    MAKE Archives

    Make: Money

    Make: Science Room
    Subscribe to MAKE Magazine!

    Make: Online editors and authors!

    Gareth BranwynGareth Branwyn
    Editor-in-Chief


    Phillip TorronePhillip Torrone
    Senior Editor
    | Web | Twitter


    Becky SternBecky Stern
    Associate Editor
    | AIM | Twitter


    Marc de VinckMarc de Vinck
    Contributing Writer
    | AIM | Twitter


    John ParkJohn Park
    Contributing Writer
    | Twitter


    Sean RaganSean Ragan
    Contributing Writer
    | Twitter


    Matt MetsMatt Mets
    Contributing Writer
    | AIM | Twitter


    Dale DoughertyDale Dougherty
    Editor & Publisher
    | Twitter


    Shawn ConnallyShawn Connally
    Managing Editor
    | Twitter


    Goli MohammadiGoli Mohammadi
    Associate Managing Editor

    Kip KayKip Kay
    Weekend Projects
    | AIM | Twitter


    Collin CunninghamCollin Cunningham
    Contributing Writer
    | AIM | Twitter

    Adam FlahertyAdam Flaherty
    Contributing Writer
    | AIM | Twitter


    John BaichtalJohn Baichtal
    Contributing Writer
    | AIM | Twitter



    More contributors: Mark Frauenfelder (Editor-in-Chief, MAKE magazine), Kipp Bradford (Technical Consultant/Writer), Chris Connors (Education), Diana Eng (Guest Author), Peter Horvath (Intern), Brian Jepson (O'Reilly Media), Robert Bruce Thompson (Science Room)

    Suggest a Site!

    Advertise here with FM.

    Why advertise on MAKE?
    Read what folks are saying about us!

    Click here to advertise on MAKE!



    Current Podcast

    itunesdl.gif Behind the Scenes at MAKE and CRAFT In January, many of the remote MAKE/CRAFT team members (myself included) convened at the Maker Media headquarters at O'Reilly Media in Sebastopol, California. Take a look behind the scenes of your favorite DIY publications as Goli Mohammadi gives us... More...

    Get the Make: Online sent via email
    Enter your email to receive Make: Online each day:



    Sign up for the Make: Newsletter

    Our Make: Newsletter covers news from maker Media, has original columns, Shed deals, and more! You can also read the archives of past issues.


     



    MAKE Fascination video series brought to you by Dow

    Make: Education
    MAKE: en EspaƱol MAKE: Japan
    Important please read


    Subscribe to MAKE Magazine!

    Recent Posts from the Craft: Blog