WWDC+Palm Pre = Rollercoaster Week


Haven't blogged in quite a while thanks to exams and whatnot, but this week I've been in San Francisco for Apple's World Wide Developers Conference with a sizable group of other Irish developers. And wow what a week it's been.

Asides the obvious Apple awesomeness, there's been even more cool stuff happening: at Monday lunch time Symbian held an event in Jillians just across from Moscone West, where the first 100 attendees got a free Nokia 5800 Xpress Music and t-shirt (as well as food and drink!):



Very nice move by Symbian I think; I would never have even bothered looking at Symbian even for making sure my websites run on it, but now with a free 'high-end' phone I have an excuse to do so. I'd also be really interested in writing S60 apps… except there's no Mac-native SDK. If Symbian actually wants to attract iPhone developers, as they seemed to at the event, then they better MAKE A MAC SDK!

On Tuesday, I decided to be adventurous. I was able to buy a Palm Pre from a local Sprint Wireless store without activation or a contract (apparently I hear it's very hard to do? $602 including tax), so I instantly ran off back to my hotel room to see if I could A) hack the activation out of the OS, and B) get it working so I can develop apps for it and run them on device.

Well, success :-) I gave up Tuesday eve because I couldn't get the device into restore mode no matter what I did, but on Wednesday morning I figured it out: you have to hold the volume-up button while the device is off before plugging it into USB, and from there you can use Palm's firmware flashers to do whatever you like with it. As the device can run unsigned firmware (!!!) I was easily able to hack out the activation check, and get up and running and enable the root shell. In that respect, I may just have the first jailbroken Pre in existence.







I gotta say; this week at WWDC I've used my Pre more than my iPhone. It's not better than the iPhone in any respect, BUT it's as-good-as for most people. Everything 'just works', whether it be syncing with iTunes or even using the iPhone headset with the Pre. It's a fantastic device and OS, and I really wish Palm well with it.

But man, for a hacker, the Pre is incredible. As mentioned, it runs unsigned firmware and has a root shell over USB when in developer mode (you can use the Konami cheat code to enable dev mode, too); you can do whatever the hell you like to the OS! The entire UI and all the apps are written in javascript, which in essence means the source code is available for you to modify at will, without recompiling anything. Even better, you can write C/C++ native Linux apps for it that draw directly to the framebuffer, as the recent Doom port shows. The specs are impressive, it's a ~600MHz ARM Cortex A8 with 256MB RAM with accelerometer, GPS, WiFi & Bluetooth, or, put another way, almost the exact same specs as the iPhone 3G S (bar the compass, afaik).

After revealing my exploit of the device, I was invited to a small Palm meetup nearby where I got to chat with the actual WebOS engineers, thoroughly validating my efforts :-D

Staying in San Francisco 'til Tuesday next, so hopefully I'll get some more free stuff somewhere (I'm *such* a student). This has seriously been the best week ever.

34 comments:

  1. Congrats on your findings and having a blast. Sounds like so much fun!

    ReplyDelete
  2. Epic dude, wish I had a Palm Pre! Ha ha student you are! Enjoy the rest of WWDC youve earned it :D

    ReplyDelete
  3. "It's not better than the iPhone in any respect...."

    Any? Really?

    ReplyDelete
  4. The Pre has 2 things I wish the iPhone had:
    1) A good notification system
    2) Background Apps

    ReplyDelete
  5. I've developed for S60 - it is painful.

    ReplyDelete
  6. Awesome work... I REALLY want a Pre. Anyway, given that the pre is hackable, have you (or anyone else) found a way to unlock it? That would be amazing.

    ReplyDelete
  7. Steven Troughton-Smith wrote:
    "I was easily able to hack out the activation check, and get up and running and enable the root shell. In that respect, I may just have the first jailbroken Pre in existence."

    Did you even read the post, Sam B.?

    ReplyDelete
  8. Nice! Thus begins the jailbreak-vs-firmware update cycle.

    Thanks for publishing.

    ReplyDelete
  9. Jailbreak and unlock are not the same. JB is the ability to run your apps. Unlock is the ability to use any carrier's SIM.

    ReplyDelete
  10. "It's not better than the iPhone in any respect...."

    LOL. Try tapping that little app called "Navigation" on the Pre, then get back to us.

    My g/f and I did a test today - her with an iphone and me with the Pre: bring up the realtime traffic for the freeways we were about to take. We both hit go, My Pre took 2 seconds, her Iphone took about 30 seconds and still had the spinning "busy" indicator until finally it came up.

    The navi app is silly fast to use as well, but its a small example. Let's review again in a year or even 6 months and see if the creative minds aren't doing creative things - impossible things for an iPhone - now that the Pre is "open". Palm aren't going to be the dictators apple are about locking it down further with every update, either, guaranteed.

    ReplyDelete
  11. ..And since the Pre doesn't have a SIM....

    ReplyDelete
  12. How did you bypass the activation? Just by setting isActivated = true or something else (setUpFirstUse, activateDevice or disabling com.palm.app.firstuse...)?

    ReplyDelete
  13. @moneytoo

    Something like that; you shouldn't disable the app because you need to setup and log into a Palm Profile before you can use the App Catalog / store.

    I have the setUpFirstUse() call setupSimulator() instead and set isDevice to true.

    Much easier that way :-)

    ReplyDelete
  14. @truth you're talking about a Sprint app; go try out the TomTom iPhone app and tell me the Sprint Navigation app is better ;-)

    Apple's Maps app isn't a realtime navigation app; it's a maps app that happens to pinpoint location and do directions. You should be comparing that to the Pre's maps app.

    And yes, it's really great that Sprint include the navigation app on the Pre when you buy it, don't get me wrong.

    ReplyDelete
  15. Whaaaaat???? You're so ... you haven't been online in a while. You're an effing genius. I wish I had a Pre. Or an iPhone. Or half of your brain.

    Nice find.

    ReplyDelete
  16. Do you have any idea on how to get SPC ?

    ReplyDelete
  17. So, I've been trying to replicate what you did. I edited the function call and removed the manifest file's SHA1-Digests. This lets the flasher run and start flashing. However, at around 14% it errors out. Checking the command line output I find that it is complaining about not having permissions to something or another (I can't remember off the top of my head, if you want to know, ask me and I'll post it). Do you have any ideas?

    ReplyDelete
  18. My name is Brian, and I just got my Pre on Saturday by a stroke of sheer luck... They "Found" 10 extra units in the back room when everywhere else was sold out.

    I LOVE this phone, but I'm getting a little tired of hearing about how much better the iPhone is by Apple fans who haven't even touched the Pre.

    Yes, the iPhone is nice and all that, but come on.. let us enjoy our phones in peace. There's no need to tell us that our phone sucks when we just laid 3-400 bucks down on the counter for it.

    I hang out at http://www.PalmPreForum.org a site made for all Palm Pre owners.

    ReplyDelete
  19. Not to steal your thunder but, we rooted the Pre and had a wiki and IRC channel set up on Tuesday, so if you got it on Wednesday then you were definitely not the first. Did not know about the volume switch trick though. Does this do the same thing as enabling developer mode using the Konami code?

    ReplyDelete
  20. @emk is right, Pre Dev Wiki got it first but I don't think it matters. Stroughton used a different method to root his Pre.

    If anyone here wants to talk Palm Pre please join the Palm Pre Forums at PalmPre.org!

    ReplyDelete
  21. @emk @Shan actually my method mods the firmware flasher so that any firmware it flashes is in root & developer mode by default, and checksums aren't checked so you can modify anything. No need to modify the firmware itself.

    Also the activation hack was the main feat :-)

    ReplyDelete
  22. Hi Steven,

    Thanks for your good work on hacking Palm Pre.

    Now I'm trying to hack it to since I can't pass the Palm Profile Creation page because I don't have Sprint data plan.

    I tried to edit the file "/usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js" to make it run as Simulator instead of real device and also edit the "/md5sums" file but it failed to flash my modded firmware in the firmware updating process at 84% around that.

    Do you have any suggestion? Which file I should mod for more?

    Thanks in advance for your help. :)

    BR,
    Sittiphol

    ReplyDelete
  23. There is a complete and working guide to bypassing the activation on the predev wiki.

    http://predev.wikidot.com/bypassing-activation

    ReplyDelete
  24. I have the same problem like NuuNeol. At 84% the process stopps with error message, saying that the Pré can't be reset.

    ReplyDelete
  25. for the 84% issue : just remove the battery and that's running :)

    I have a question for steven and johnathan (maybe yves, if it's working): I flashed my palm, switched on the wifi and tried to create a palm profile : it not working (sign in failed !)

    It is possible to bypass that sign in by modiying the os (is know setUpFirstUse ... ) ?

    thanks !

    ReplyDelete
  26. @Anonymous Yes, however if you disable the Palm Profile creation then you will not be able to use certain features (like the App Catalog).

    You need to change the firstuse app to push location- something in a pushScene call early on. Can't remember the name of the file

    ReplyDelete
  27. thanks,

    it is now working and I don't know why. The WebOS was modified by adding wifi call and I had an authentication issue at login time. This morning, i just open the device to flash it again and it was there : "data backup done, press OK".

    what I would like to have is a clear understanding about :

    - which application is called at start of the device (i don't speak about the linux part)?
    - which application call setUpFirstUse from com.palm.app.firstuse.app.controller.app-assistant.js
    - etc.

    ReplyDelete
  28. I also was able to modify the OS using the Wiki to pass Sprint activation. I installed UBUNTU in VirtualBox, and there i did the file editing. Flashing went fine, also i was able to enable WiFi.

    At 'Create Palm Profile' i received an error: 'unable to create profile', however, checking online at www.palm.com/profile i noticed the profile was in fact there, with my phone-id, thus created by the PRE. I am not able to sign-in the profile however. I am not sure what the problem is. Double checked everything. My Pre does send the info to Palm, but palm is not able to connect my Pre? Perhaps an network issue? Anyone else form outside USA have some experience with this? Thanks,

    Richard from the Netherlands.

    ReplyDelete
  29. Anonymous: I had the same. The Palm Profile failed, and i could not login. A day later, i was fiddling around with the Pre, and at some point i got a message: "No data to restore, press OK to continue". The Pre works just fine now.

    It seems it takes some time, or attemps to get through Palm's activation. My advice for future jailbared Pre's: leave the Pre on your desk, switched to on for at least 24 hours. Try to login to Palm several times, and ignore the failures.

    Good luck! Richard

    ReplyDelete
  30. Sweet. I love my Pre, but I am not a fan of the Sprint network. I am hoping that I can get a Pre on another network "can you hear me now?" Once, I have the new Pre on an improved network. I would love to use my Pre as a "Pre Touch" So that I can use the Wifi capabilities without Sprint activation. Do you have any specific tips on how to accomplish this?

    ReplyDelete
  31. I got the Pre to work on Verizon, however I was unable to get 3G data working. I believe it is possible, but difficult.

    Your best bet, if you can wait, is to wait until a recovery image is posted onto Sprint's website for the Verizon Pre, and then just flash that onto your Sprint Pre.

    ReplyDelete
  32. This comment has been removed by the author.

    ReplyDelete
  33. I am quite interested in jail-breaking my Palm Pre but do not know how... Is there a guide on how to do so online?

    ReplyDelete