Hi, my name is David Wang Better known as planetbeing on the Internet
and this video will be demonstrating Android running on the iPhone. This an iPhone 2G and we demonstrated the Linux kernel running on
this device over a year ago and unfortunately I got distracted with the iPhone 3GS jailbreak
and there’s some months where I had a hiatus and I wasn’t working on the iPhone at all and so things got a little delayed. but now I’m back and going to show you some cool stuff so I wanted to be in the iPhone OS when this video started just to
demonstrate that the iPhone can in fact dual-boot both the iPhone OS and Android so, you know, even if you install Android
on your phone, your iPhone can still be used normally so first we’re going to shut down the iPhone and as you can see from the reflection I’m using a very primitive tripod and and an iPhone 3GS
to record my video. Not exactly made of money, so I apologize for the quality of the video Umm Okay, so this is the openiboot bootloader that you guys were shown in the previous video Since my Photoshopping skills aren’t really up to scratch there’s no Android button on this bootloader. However, I, uh hacked it so that if you hold down the home
button on the openiboot console icon it’ll be a signal to boot Android so right now it’s initializing the NAND and loading the kernel and the init ramdisk
from the NAND which is the Linux kernel, of course. Now we’re inside of the kernel. Little Tux logo there Basically my ramdisk mounts some loopback partitions from
the data partition on the NAND and instructs Android to use that
before passing control over to Android. So now Android has control. And we should see the framebuffer initialize
and the Android logo come up pretty soon. So, sorry for the long video but I wanted to show you guys the whole boot process. So the Android logo, with a nice little animation. I’m sorry this took so long but last time there was a release, people
made fun of iPhone Linux, deservedly for not having any of the drivers and not being
really usable But, you know, so I wanted to make sure that
everything was usable before I show this off. So Android booted. I have a Rogers prepaid SIM in here, so there it is. Android. Of course it’s not really production quality yet. I’d say it’s alpha quality. Umm, that Pretty much everything works Uh. First, we’ll associate to the WiFi. It’s slightly buggy because I didn’t bother to implement all the proprietary driver — not proprietary — but Android specific driver extensions
that sometimes the OS thinks it’s not scanning, but it is.
See, we’ve associated. So, I think one of the things you can show is the how to browse the Web– ah I’m a little clumsy with this operating system. There’s a little bit of a button shortage on the iPhone so I repurpose the volume buttons as the call and home button. Let’s go to uh… Reddit. Maybe I should’ve gone to Digg, there’d be fewer letters. So as you can, see it’s pretty usable. I like this feature of Android. Got a little zoom thing. You can quickly find that portion of the page you’re interested in.
Zooms it out for you. So yeah, there’s the browser. Uh, second thing is probably playing music. I have to manually scan for, uh. Music because it’s designed to work with a
SD card which obviously the iPhone is not fo– equipped with. Not this again. It’s, uh, hard to operate this thing behind a camera. It’s a little sluggish but As I told you before, it’s actually running the debug version of the thing. There’s actually a garbage collector running inside the
Linux kernel right now, just to make sure I don’t have
any memory leaks. There you go. So. Playing music. Uh, last thing I wanted to show you. is making a call with it. There’s this joke on the internet about the
GNU phone where you have to give something like twenty command-line arguments to place a call. And on Slashdot I read that there’d have to be
two kernel versions and one for answer mode and uh for dialing mode. I actually considered doing something like
that as a joke it but uh, it’s more trouble than it’s wor– than it’s worth. So, uh. I’m going to use my desktop here to send a SMS to this uh to this phone and… what should I say… “Hello world” is always a good option. Just make sure I don’t make any typos typing with one hand. So. Skype says it’s sending. Hopefully I will receive a message in a second. And there it is. Okay, so. I think the last thing to test is making a call So, I’ll place a call with Skype here. You’re hearing my computer speakers. [ring] There you go, click the answer button. All right, so. Hey, you can hear me in the speakers. Hello?
[speakers] Hello? There you go so I just put it next to my– Sorry, there’s the GSM noise Uhh So I’m going hang– So I’m going to try to hang up. And. That’s pretty much it So uh Check out our blog at linuxoniphone.blogspot.com Uh, if you can throw in a couple of bucks for donations,
I’d really appreciate it. If you can throw in a couple of lines of code for, to help with this project, I’d appreciate that even more.
There’s plenty of ways people can contribute. Um, that’s pretty much it. Thanks, guys.