WebOS 2 Upgrade
Overview
With the release of the webOS 2.1.0 doctor by HP for O2 and Vodafone Pre+ devices, there is now a legal way to get webOS 2.1 onto the legacy devices of carriers that are not onboard with the 2.x upgrade. Compatible devices include all Pre and Pre Plus devices. This is not compatible with Pixi devices.
Disclaimer
This is a process that uses official HP software in unofficial ways. You should always be prepared for the unlikely possibility that your device may be completely wiped and your Palm profile may be permanently destroyed. Do not proceed unless you have made appropriate backups and are OK with that. Working knowledge of MetaDoctor and Linux systems in general is needed.
If you feel the need to ask whether you should do this on your primary phone, then you should not, as that indicates that you have not yet taken the required precautions and backups in case something goes wrong.
Other Tutorials
Note that this wiki page is always the authoritative source of information about this process, so you should refer to this page first for any and all instructions. Here are some other pages which you may find useful in addition to this page. They do not replace the information on this page, which you should read from top to bottom first.
PreCentral forum user @malpha recorded a two-part video overview of the process as she followed this step-by-step. The videos can be found here.
PreCentral forum user @innocentbystander has written a start-to-finish guide to installing and building the Meta Doctor under Mac OS 10.6 for those with little or no experience with the command line. It can be found here.
Using MetaDoctor Scripts
Note: Scripts currently exist for the following devices:
- Sprint Pre/FrankenPre+
- Verizon Pre+
- AT&T Pre+
- "WR" devices
- Telcel Pre
- Bell Mobility Pre
- O2 German Pre (or similar)
- O2 German Pre+ (or similar)
Step 0: Backup your device
Make sure you have copies of all the data that you want to preserve from your palm profile. There is a possibility that you will need to clear your palm profile to be successful in this upgrade, so you should act as if that is going to happen from the start.
Also, make sure you run the Save/Restore application from Preware to back up your application data - you don't want to lose your Angry Birds progress, do you?
Then copy all the files from the USB drive onto your PC to keep them safe, including music, downloads, and pictures. The webOS Doctor has been known to wipe your USB drive without warning, so you should act as if that is going to happen from the start.
If your phone is set to use the Palm Profile as the default location for contacts you may want to manually export these. To check how many palm profile contacts you have: Contacts App -> Preferences & Accounts -> tap "Palm Profile" under the "accounts" subsection. To manually export contacts see this post: PreCentral Forums - How To Transfer contacts
A guide for backing up using Save/Restore can be found here.
Step 1: Install Prerequisites
- MetaDoctor - see Application:MetaDoctor for information on how to install MetaDoctor
- Palm SDK - see Palm Developer Website
Step 2: Prepare your Palm Profile
With unsupported carrier/device/OS combinations, it may be necessary to clear some Palm Profile data to allow you to sign in on webOS 2.x devices. The process is as follows: Warning: this will delete data from your Palm Profile, including but not limited to: calendars, contacts, account information, email signatures, bookmarks, memos, tasks, SSM/MMS messages, and icon/launcher arrangement.
- Open the Backup app.
- Turn off backups, confirming that you wish to erase your palm profile information.
Step 3: Run device-specific MetaDoctor script
The MetaDoctor scripts will automatically download the latest necessary webOS doctors, extract and replace CDMA radio firmware as necessary, and will build and launch the modified webOS Doctor.
From the meta-doctor directory, run the meta-script that corresponds to your advice. For example, a Sprint user would run:
./scripts/meta-sprint-pre-2.1.0
A list of all the scripts can be found by typing
ls ./scripts/
For those who for what ever reason can't activate their phones and need to skip first use and get wifi started to sign into their profiles, just add "--wifi-only" as an extra argument to the meta-script:
For example, a user with a Sprint device who was never going to connect to the Sprint cellular network would run:
./scripts/meta-sprint-pre-2.1.0 --wifi-only
Then, when your device boots after step 4, all you need to do is configure and start wifi and then run the Gesture Tutorial and you should be good to go. Note that in this case the end of the palm profile login procedure will appear to cycle forever, so just manually reboot the device using Opt-Sym-R when that happens.
Step 4: Run the modified webOS Doctor
The meta-script will automatically launch the modified webOS Doctor for you. However, if you need to move it to a different location and run it manually, the modified doctor will be a .jar file located in the build output directory:
meta-doctor/build/preplus-p101ueude-wr-2.1.0/webosdoctorp101ueude-wr-2.1.0.jar
(note for the latest alpha testing scripts, the location has changed to:
meta-doctor/build/meta-sprint-pre-2.1.0/webosdoctorp101ueude-wr-2.1.0.jar
)
Step 5: Restore /etc/palm-build-info
If the meta-script left a palm-build-info-unmasqed file in your working directory, then after you log into your profile you need to copy this file back onto your device. There are several ways to accomplish this task.
Via a Terminal, with Novacom
Open up a terminal (Linux, OS X, Cygwin) on your host computer (not your phone) and change back to the meta-doctor directory. then type in the following:
novacom run file://usr/sbin/rootfs_open -t novacom put file://etc/palm-build-info < palm-build-info-unmasqed novacom run file://sbin/reboot
Copy the File to the USB Partition
First copy the ./meta-doctor/palm-build-info-unmasqed file over to your Phone's USB Drive.
Next, use a terminal (any mentioned in the step above, PuTTy or something similar on Windows) to run novacom and access your phone.
cd / /usr/sbin/rootfs_open -t cp -f /media/internal/palm-build-info-unmasqed /etc/palm-build-info /sbin/reboot
Using WebOS Quick Install
Make sure you have the latest version of WebOS Quick Install.
Select Tools->Send File from the menu, and enter the following values:
File: (Select your palm-build-info-masq file) Destination: /etc/palm-build-info
Then click on Send to Destination and reboot after that succeeds.
Step 6: Donate to WebOS Internals and purchase the Preware Homebrew Documentation app
If this worked for you, we would appreciate a donation at http://donate.webos-internals.org - and if you want to thank Rod Whitby personally for the many hours that he put into creating the Meta-Doctor and this upgrade procedure, you should purchase the Preware Homebrew Documentation app from the official app catalog, and leave a nice 5 star review containing your message of thanks.
Caveats
Available Software
App Catalog
- Apps that are marked as only compatible with webOS versions 2.x and above do not currently work with some of these doctored installations of webOS 2.1.0. On some of the devices/carriers, masquerading is used which leads to the Palm profile still reporting version 1.40.50.
Masquerading
- Palm's servers only accept certain device/OS combinations as valid. While ROW Pre and Pre Plus devices running 2.1 are accepted, Pre and Pre Plus devices running on Sprint, Verizon and AT&T have to masquerade as still running webOS 1.4.5. To achieve this, /etc/palm-build-info is replaced with the version from the 1.4.5 doctor to trick Palm's servers into believing it is a valid device/OS combination and allowing app catalog access. Once app catalog access is achieved, /etc/palm-build-info can be replaced with the 2.1 version which is found in meta-doctor/palm-build-info-unmasqed on the computer you built the doctor with.
- Note that if you ever need to log into your palm profile a subsequent time on your device (e.g. after a full erase), you will need to put back the webOS 1.4.5 palm-build-info file and reset your device before logging back into your profile. It may be easier simply to run the procedure on this page from the top again.
Carrier-Specific Applications
- Carrier specific apps such as Sprint Navigation and the Verizon hotspot app are not included at this time. Apps that have been tested and are known to install cleanly and work will be added to the custom webOS Doctor for the appropriate device/carrier.
Patches
- Not all patches have been ported over yet. If you want to check for a certain patch, please see webOS Internals' webOS-Patches page.
Flash
- Adobe Flash is not included in this webOS 2.1 doctor, but can be added with files from a VZW Pre2 2.01 doctor.
Adding Flash Support (Easy Method)
The easiest way to get flash on your webOS 2.1.0 legacy device is via creating a modular package and installing that, along with a patch to make the Adobe Flash preferences visible in the browser.
It sounds complex, but it much easier overall and a How-To has been detailed here.
Adding Flash Support Manually
1. Extract WebOS.tar from the Resources folder in the VZW doctor to a location on your hard drive
2. Copy the following files from the extracted WebOS.tar to their equivalent locations in your MetaDoctor (alternatively, you can copy them manually to a live device using Novaterm)
/etc/adobe/mms.cfg
/etc/adobe/oem.cfg
/usr/lib/BrowserServerPlugins/libflashplayer.so
/usr/lib/BrowserServerPlugins/resource/plugin-icon-noplay.png
/usr/lib/BrowserServerPlugins/resource/plugin-icon-play-down.png
/usr/lib/BrowserServerPlugins/resource/plugin-icon-play.png
/usr/lib/BrowserServerPlugins/resource/plugin-icon-unknown.png
/usr/lib/BrowserServerPlugins/resource/plugin-scrim.png
/usr/lib/libFlashGraphics.so
/usr/lib/BrowserServerPlugins/FlashMiniAdapterData/plugin-icon-noplay.png
/usr/lib/BrowserServerPlugins/FlashMiniAdapterData/plugin-icon-play.png
/usr/lib/BrowserServerPlugins/FlashMiniAdapterData/plugin-icon-unknown.png
/usr/lib/BrowserServerPlugins/FlashMiniAdapterData/plugin-scrim.png
/usr/lib/BrowserServerPlugins/FlashMiniPlugin.so
3. Open /usr/palm/applications/com.palm.app.browser/app/controllers/preferences-assistant.js (either in your MetaDoctor or on your live device -if on a live device, remember to make a backup!)
Find the following two lines (should be lines 46 & 47) and comment them out by adding // to the beginning of each line:
this.controller.get("flashPref").hide();
this.controller.get("autoLoadPref").hide();
4. Reboot your Pre if the editing was done on a live device
Flash preferences should now be visible under browser preferences.
Performance
- OVERCLOCKING IS NOT YET SUPPORTED. Palm has yet to release the source code for the kernel used in webOS 2.1.0. As such, releasing customized kernels is currently impossible. The custom kernels will arrive within a few days of the source code becoming available. It is possible to increase the clockspeed to 600 MHz using Govnah: Edit the Userspace govnah profile to use 600 MHz.
- The Pre Plus has 512 MB of memory and thus runs 2.1 quite well, but this is not the case with the original Pre since it has only 256 MB. Luckily, Palm adopted webOS Internals's compcache technology that was ported to the custom kernels, and it comes active, but with only 10 MB. One potential way to enhance performance in original Pre devices is to make the compcache bigger.
Increase compcache size, Temporary Method
You can use the Govnah application to increase the size of the compcache. Disable compcache, change the size, and then reenable.
Increase compcache size, Permanent Method
You have to edit the file /etc/event.d/compcache and substitute the 10240 value for 32768, reboot your Pre and verify it's working by using Govnah.
Palm Profile
- Some people have had problems signing in to existing Palm Profiles on 2.1 due to backup data. To make sure that you can sign in to your profile on 2.1, you should disable backups before doctoring to 2.1 and delete server side backups. Of course, this deletes most of the data in your Palm Profile (memos, tasks, calender entries, accounts, ...). Your apps will be restored on 2.1, but that is about it. Note that not all people have issues with backups. If you would rather not delete your Palm Profile data, you can try doctoring to 2.1 without turning backups off and see if restoring everything works. If it doesn't, you'll have to doctor back to 1.4.5 to turn off backups or use a new Palm Profile, though.
- You may get lucky if your Profile has information and you managed to pass the "Logging to Profile" screen but are stuck with a message stating that the phone cannot restore your data. If you have developer mode enabled, enter your Pre and overwrite the /etc/palm-build-info file with the palm-build-info-masq file the Doctor generated. Reboot your Pre and see if it manages to boot succesfully.
- If you get 9.9.9 in palm.com/palmprofile, then you need to doctor back to 1.4.5 for your carrier and log in, then delete backup info in backup app and then 2.1.0 metadoctor it.
- If you get the dr. skipped firstuse as a palm profile in the new accounts app in 2.1.0 and/or if the gesture application creates a blank screen, you have the false profile problem. You need to doctor back to 1.4.5 for your carrier and login in, then delete backup info in backup app and then 2.1.0 metadoctor it. To avoid this problem, redownload the metadoctor latest version and run the appropiate script with the --wifi-only switch
- If you are unable to install the Palm SDK to use the novacom program to transfer files to your device, step 5 can alternatively be performed by putting the device in USB mode, transferring file to the main folder of the USB drive, ejecting the USB drive, and then use WebOSQI 3.x's linux commandline feature to perform the alternate commands in Step 5 (not the novacom ones).
GPS
- To enable GPS functionality it may be necessary to go to the "Location Services" application, make sure that "GPS", and "GPS Location Services" are enabled. Test the GPS using ##477# (##GPS#) from the phone application, and press the "Get Fix" button.
- If neither ##477# utility nor Google Maps is able to successfully fix your position, return to the "Location Services" application, open the Preferences menu, expand Locate Me Using... and ensure that both GPS and Google Services are selected. After selecting Google Services, you will be prompted to accept the Terms of Service. Once both options are selected, test GPS functionality again. The ##477# utility may still fail the first several times, but should complete successfully after repeated attempts, and should continue to function normally thereafter.