Sprint Pre Plus

This page is derived from the thread at http://forums.precentral.net/palm-pre-tips-information-resources/259077-pre-plus-sprint-step-step-conversion-guide.html

This guide will allow you to get a Palm Pre Plus working on Sprint, assuming you already have an activated Sprint Pre. Using this guide, you will end up with a Palm Pre Plus activated on Sprint, with an entirely stock software installation. The included stock Sprint applications will work (SprintNav, Sprint TV). Your purchased applications from the app store will be re-downloaded automatically OTA.

Requirements

 * 1) Activated Sprint Pre
 * 2) Your Palm profile login information.  That's the email and password you activated your Pre with in the first place.  You can test if you remember them correctly at Palm's profile login page.
 * 3) Palm Pre Plus- It can be Verizon or AT&T, it doesn't matter. It also doesn't really matter if the ESN is clean or not, I used a brand new Pre Plus I got off Craigslist with a clean ESN, however the ones with bad ESN's tend to be cheaper on Craigslist or Ebay. Buy whatever you can get the best deal on.
 * 4) T5 screwdriver (required to disassemble phones)
 * 5) Meta-Doctor (get it here Application:MetaDoctor - WebOS Internals)
 * 6) The most important requirement: the understanding that if done incorrectly, you can end up with TWO broken phones or malfunctioning phones. The Pre is *NOT* an easy device to disassemble and especially to re-assemble. A moderately high level of confidence and competence with electronics is required to attempt this.

Step 1: Extract working Sprint Pre Tokens
The tokens on your Sprint Pre are located at /tmp/tokens on your device. The values we want to extract are ProdSN, ModemSN, BATToRSP, BATToCH, DMSVRoNONCE, DMSVRoAUTHPW, DMCLoNONCE, DMCLoAUTHPW, DMCLoAUTHNAME, DMCARRIER, DMMODEL, WIFIoADDR, BToADDR, PalmSN, PRODoID, PN. Each token is represented by a file with that exact name, and the value is contained in the file.


 * The only supported way to get these tokens is to install "Show Properties" using Preware and have the system email you a castle.xml file directly.

It is also a good idea to extract the tokens from the Pre Plus as well. They will not be used at all in this process. However, if you ever wish to return the Pre Plus to it's stock condition, you will need those tokens.

Notes: The tokens can still be extracted even after you do the hardware swap. The tokens are stored in the devices memory and not the communications board. To recover them, you will need to use the Activation-Bypass tool (found here: https://developer.palm.com/content/resources/develop/developing_on_an_unactivated_device.html ) to activate the device as a wifi only device. Then you install Preware and then install "Show Properties". Make SURE you open "Show Properties" and have it email ALL and not just the com tokens.

Step 2: Setup meta-doctor
(Note: If you would like to upgrade your device straight to 2.1.0 and not install 1.4.5, please follow the directions for creating your meta-doctor in the section.)

This is actually sort of tricky and the setup process is a little different for each operating system you are running on. I recommend following the directions located here: Application:MetaDoctor. However, there are a few little things that need to be done to do what we are trying to do. I will summarize the steps that we are taking with meta-doctor. Read these steps first, BEFORE setting up meta-doctor. All the initial icky steps on the meta-doctor setup involve getting the proper UNIX architecture setup to run the shell scripts that comprise meta-doctor (installing git, etc). I will not summarize those steps here (they are well-documented elsewhere and OS-dependent). However, once you have the basic packages installed and in place, do the following things:

 Modify your makefile. The makefile is located in the "meta-doctor" directory and is called "Makefile". Open it in your favorite text editor. We are going to remove the carrier check (since VZ and AT&T carriers will NOT work with the regular Sprint webOS Doctor) and we are going to remove the model check (since there is no such thing as a Pre Plus on Sprint). To do this, remove the "#" symbol next to "REMOVE_MODEL_CHECK = 1" and "REMOVE_CARRIER_CHECK = 1". You will also need to set "DEVICE" to "pre" (no quotes) and "CARRIER" to "sprint" (no quotes)- exactly as below. Your makefile should now look like this (changes noted in bold for legibility):
 * 1) END OF DOCUMENTATION ##
 * 1) END OF DOCUMENTATION ##


 * 1) START OF AREA FOR END USER CHANGES ##
 * 1) START OF AREA FOR END USER CHANGES ##

REMOVE_CARRIER_CHECK = 1 REMOVE_MODEL_CHECK = 1
 * 1) Uncomment the features that you wish to enable below:
 * 2) BYPASS_ACTIVATION = 1
 * 3) BYPASS_FIRST_USE_APP = 1
 * 4) ENABLE_DEVELOPER_MODE = 1
 * 5) DISABLE_UPLOAD_DAEMON = 1
 * 6) INCREASE_VAR_SPACE = 1
 * 7) ENABLE_USB_NETWORKING = 1
 * 8) INSTALL_SSH_AUTH_KEYS = 1
 * 1) DISABLE_MODEM_UPDATE = 1
 * 2) CHANGE_KEYBOARD_TYPE = z

DEVICE = pre
 * 1) Select "pre", or "pixi".

CARRIER = sprint
 * 1) Select "sprint", "bellmo", "telcel", "verizonwireless" or "wr".

Save your modified makefile and close your text editor.
 * 1) END OF AREA FOR END USER CHANGES ##
 * 1) END OF AREA FOR END USER CHANGES ##

 Unpack and Patch meta-doctor. Since we are going to import our Sprint tokens into meta-doctor, we need to build meta-doctor in a stepwise process, and insert the tokens at the proper time. Do NOT simply run 'make DEVICE=pre all-sprint'. This will NOT work. From the command line, and within the meta-doctor folder, run 'make unpack': make unpack After this command has finished, run 'make patch': make patch  Import tokens into castle.xml and package meta-doctor. We are now going to add your Sprint Pre tokens into meta-doctor and build the customized version of webOS Doctor that will write your Sprint tokens to your Pre Plus and remove the Carrier and Model checks. To do this, open the castle.xml file, which will be located in meta-doctor/build/pre-p100eww-sprint-1.4.5/webOS/castle.xml. (Or you can just use the search function on your computer, haha). Open castle.xml in your favorite text editor. Locate the tokens section, which will look like this:    The new section will look like this (thanks jhoff80!):        <Val name="DMSVRoAUTHPW" action="overwrite" value="x"/> <Val name="DMCLoNONCE" action="overwrite" value="x"/> <Val name="DMCLoAUTHPW" action="overwrite" value="x"/> <Val name="DMCLoAUTHNAME" action="overwrite" value="x"/> <Val name="DMCARRIER" action="overwrite" value="x"/> <Val name="DMMODEL" action="overwrite" value="x"/> <Val name="WIFIoADDR" action="overwrite" value="x"/> <Val name="BToADDR" action="overwrite" value="x"/> <Val name="PalmSN" action="overwrite" value="x"/> <Val name="PRODoID" action="overwrite" value="x"/> <Val name="PN" action="overwrite" value="x"/> </Section> Where the X's are located, insert the corresponding token values that you extracted at the beginning of this guide. Leave the quotes in place. Once you have completed this step, save the XML file and close your text editor. Go back to the command line and run 'make pack' make pack Your new webOS doctor is now all packaged up and ready to go, and will be located in meta-doctor/build/pre-p100eww-sprint-1.4.5/webosdoctorp100ewwsprint-1.4.5.jar. Now that the software is all setup, we are ready to begin the hardware surgery! </li></ol>

Step 3. Remove your Sprint Pre com board
So this is the part where you can actually damage your device. So, as one last form of warning, I will say, DANGER WILL ROBINSON! If you are not comfortable with the possibility of destroying a perfectly nice Sprint Pre or are not comfortable disassembling tiny electronics, STOP NOW, go out and see Inception or something (great movie!). Otherwise, let's proceed. (Images are being served from Ifixit.net's palm pre teardown page.) NOTE: You may find it useful to also look at the dis/reassembly instructions and pictures provided for the Sprint Pre 2.

http://guide-images.ifixit.net/igi/bFeIXAZtnVqjBILK.medium http://guide-images.ifixit.net/igi/B2J3e3Tv6oKLJe3Y.medium http://guide-images.ifixit.net/igi/qBW1xicfUSWhZ5VB.medium http://guide-images.ifixit.net/igi/2YgNcQN3dAf6idkE.medium
 * 1) Remove the 6 back screws. Remove the back cover of your Sprint Pre and remove the battery. Using a T5 screwdriver, remove the 6 screws. The screw in the upper right corner has a small "Palm" sticker on it, probably to void your warranty if broken
 * 1) Gently separate the backplate. There are interlocking plastic tabs securing the backplate. you need to pry out a tiny bit and push DOWN towards the keyboard on the four locking tabs.  As you do, the keyboard bezel and the keyboard ill seperate from the backplate. The keyboard bezel is VERY THIN.  Once you have it started to seperate on both sides, run your plastic wedge or a fingernail around the seperation.  To swap JUST the comm board, it is NOT nessessary to pull the volume buttons out, you can leave them in.  Now, with the keyboard down a bit, push up on the comm board and it will hinge up towards the top of the phone on its connector cable.  The cable unplugs from the flat of the comm board. It does not pull out "parallel" with the cable, it pulls out "perpendicular" to the cable.
 * 1) Remove the coms board.
 * 2) * If you are doing a Sprint to Verizon pre- to Pre+ since both are cdma phones, you do not need to fully separate the backplate from the rest of the phone (which involves disassembling the volume rocker). If you are able to release the bottom section of the Pre's backplate and the 4 side plastic interlockers, you should be able to elevate the backplate enough to get access to the coms board. To remove the coms board, first gently reflect back the small plate covering the GPS connectors, as shown here and disconnect the two gps connectors.
 * Now, simply apply gentle pressure, and the coms board will pop right out:
 * 1) * If you are doing a Sprint to ATT pre- to pre+, you will need to swap the entire back, which requires removing the volume buttons and replacing them. The cdma back and the gsm back have different antenna systems and need to be swapped as a unit.

Coms board removed. Note the cable plug where the comm board was attached on the orange ribbon cable. http://guide-images.ifixit.net/igi/eklF6cnfCxUNTTwl.medium

Congratulations! You have now removed the Sprint Pre coms board! You are now ready to install it in your Pre Plus. PLEASE NOTE: The Pre is *NOT* an easy device to re-assemble, and although the coms board will be missing, I *highly* recommend practicing the re-assembly of the Sprint Pre a couple times to make sure you are able to get it to fit together nicely and the slider action is good, to ensure when you re-assemble the Pre Plus, it is of the highest quality.

Step 4: Swap Sprint Pre coms board into Pre Plus
So you've made it this far have you, Dr. Frankenstein! Excellent! Now, disassemble your Pre Plus by following the disassembly instructions detailed above. Remove the Pre Plus coms board. Insert your Sprint Pre coms board by pressing it into place, ensuring that the two connectors on the board push into place. Re-connect the two GPS wires on the inside of the case to the coms board. Re-assemble your Pre Plus.

Step 5: Re-program your Pre Plus using meta-doctor
Remember all that time we spent getting meta-doctor setup? Well, now the time has come to make use of it. Put your Pre Plus in recovery mode by holding the volume rocker in the 'up' position and while holding it, press and hold the power button. A USB icon should appear on the Pre Plus' screen. Navigate to your custom meta-doctor located at meta-doctor/build/pre-p100eww-sprint-1.4.5/webosdoctorp100ewwsprint-1.4.5.jar. Run the JAR file and doctor your device.

java -jar webosdoctorp100ewwsprint-1.4.5.jar

When that has completed, your phone will reboot and the "first use app" will run. Go ahead and go through the setup process.
 * Select your language.
 * Accept the license.
 * Log in to your Palm profile.
 * Step through the silly tutorial.

Once you have done this, the phone will reboot and you will be at your webOS home screen.

Confirm everything worked

 * Note that the carrier should say "Sprint."
 * Confirm that our tokens were properly over-written by going to "Device Info" from the launcher. Scroll down and click on "More Info".
 * The Carrier should say "Sprint"
 * The Model should be "P100EWW".

If either of these values are wrong (most like Carrier: Verizon or Model: P101EWW), then the tokens did not write correctly, and most likely, you made an error properly rolling castle.xml into meta-doctor. If the values are correct, you are now ready get yourself a standard Sprint install.

Step 6: Run regular Sprint webOS Doctor 1.4.5.
It's going to seem really odd, but now, you get to run the doctor again. This has two purposes:


 * To get all the stock Sprint apps back, like Sprint Nav and Sprint TV
 * To get the Sprint PRL (preffered roaming list).

So, you need to run the regular old, run of the mill Sprint webOS Doctor. You have one in the meta-doctor/download directory that you renamed a while ago. CD to that folder and run

java -jar webosdoctorp100ewwsprint-1.4.5.jar

Put your phone in recovery mode (Up volume + power) and run the regular Sprint webOS Doctor. If your tokens are wrong, you will get an error saying that your device is not compatible with this version of webOS Doctor. If the info you verified in Step 5 is correct, the webOS Doctor will run without difficulty and you will end up with a stock Sprint install on your Pre Plus. You will be able to note this immediately on the first use app, as there will only be TWO language options (English and Spanish), rather than many. Go through the regular activation AGAIN and it will download your palm profile information and re-install any app store apps you have.

NOTE: Some people have experienced a problem after they've run the stock 1.4.5 webOS doctor, they discover that many of the applications that they had before were not installed, and no longer appear in the App Catalog. This problem stems from Palm getting confused about what version of OS that's running on the phone. This can be confirmed by logging into your palm profile at http://palm.com/profile. If it says the OS version is 9.9.9, then any apps in the app catalog tied to a version of webOS will not be available to you.

The solution is to do a "downgrade activation", by first running the 1.4.1.1 version of webOS doctor on the phone. And when that's complete, upgrade to 1.4.5 via an Over The Air upgrade.

Step 7: Have a beer! You've earned it.
Also, be sure to install Preware and all the other goodies you want!

Special Thanks: rwhitby (for meta-doctor, Preware); jhoff80 (for castle.xml configuration), ifixit (for teardown images).

= Baking tokens into the meta-sprint-pre-2.1.0 script =

(NOTE: the below commands are incorrect and do not work. Advise to doctor to 1.4.5 then use the Webos 2.X upgrade found here: http://www.webos-internals.org/wiki/WebOS_2_Upgrade#Sprint_Pre )

The following steps will need to be done in order for you to upgrade your Sprint FrankenPre+ to webOS 2.1.0 in the event that your Palm Profile is version 9.9.9 or the normal Sprint script creates a doctor incompatible with your device. Please note that if you have disabled carrier check or model check as part of this procedure it will result in an invalid dmSets token being generated by the doctor, and you won't be able to activate a webOS Profile on the device.

First, download the 2.1.0 doctor the meta-sprint-pre-2.1.0 will be using to make the script if you have not already done so. You can find the name of this doctor by opening the meta-sprint-pre-2.1.0 file and checking for this line:


 * W210_FILE="nameofdoctor.jar-2.1.0.jar"

You'll have to leave off the version suffix (-2.1.0) in the wget command below. So nameofdoctor.jar should be something similar to: webosdoctorp101ueu-wr.jar (notice, no version info and it ends with .jar). To download the doctor, follow these commands (the first one creates the download directory if you do not already have one), substituting nameofdoctor.jar with the actual name of the doctor in the meta-sprint-pre-2.1.0 script:


 * mkdir -p downloads
 * cd downloads
 * wget http://palm.cdnetworks.net/rom/preplus/p210r0d03142011/eudep210rod/nameofdoctor.jar
 * mv nameofdoctor.jar nameofdoctor.jar-2.1.0.jar
 * 1. Let's unpack the 2.1.0 jar
 * make VERSION=2.1.0 DEVICE=preplus CARRIER=wr unpack
 * 2. Copy its castle.xml to your ~/meta-doctor directory
 * cp build/preplus-nameofdoctor-wr-2.1.0/webOS/castle.xml.
 * 3. Modify the "tokens" Section of ~/meta-doctor/castle.xml to use your personal "tokens" Section [from the castle.xml you emailed yourself using the Show Properties app] using the same process as in subsection 3 of above.
 * nano castle.xml
 * Note, you may perform all file editing steps with another editor of your choice (such as gedit).
 * Add your personal tokens after the "env" Section" (note: no value below should be left as 'x'):

<pre style="margin-left:50px;">  <Val name="installer" value="trenchcoat"/> <Val name="DMCARRIER" action="overwrite" value="x"/> <Val name="DMCLoAUTHNAME" action="overwrite" value="x"/> <Val name="DMCLoAUTHPW" action="overwrite" value="x"/> <Val name="DMCLoNONCE" action="overwrite" value="x"/> <Val name="DMMODEL" action="overwrite" value="x"/> <Val name="DMSVRoAUTHPW" action="overwrite" value="x"/> <Val name="DMSVRoNONCE" action="overwrite" value="x"/> <Val name="ModemSN" action="overwrite" value="X"/> </Section>
 * 4. CTRL+X and save your changes.
 * 5. Modify the last make statement in meta-sprint-pre-2.1.0 (line 156 as of this writing)
 * nano ./scripts/meta-sprint-pre-2.1.0
 * 6. Insert "CUSTOM_XML=castle.xml" after "${ARGS} ". It should read:

<pre style="margin-left:50px;"> $make ${ARGS} \ CUSTOM_XML=castle.xml \ EXTRA_ROOTFS_IPKGS="flash flash-mini-adapter flame" \ EXTRA_ROOTFS_TARBALL=${FLASH_TARBALL} clobber-build all || exit
 * 7. CTRL-X and save
 * 8. Cleanup the stuff you just unpacked
 * make clobber
 * 9. Execute the meta-sprint script to create your doctor
 * ./scripts/meta-sprint-pre-2.1.0
 * 10. Repeat above.