Sprint Pre Plus

From WebOS Internals
Revision as of 23:41, 2 March 2011 by Djwhitey (talk | contribs)
Jump to navigation Jump to search

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.

Process

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.

Step 2: Setup meta-doctor

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:

  1. 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):
    ##########################
    ## END OF DOCUMENTATION ##
    ##########################
    
    ########################################
    ## START OF AREA FOR END USER CHANGES ##
    ########################################
    
    # Uncomment the features that you wish to enable below:
    # BYPASS_ACTIVATION = 1
    # BYPASS_FIRST_USE_APP = 1
    # ENABLE_DEVELOPER_MODE = 1
    # DISABLE_UPLOAD_DAEMON = 1
    # INCREASE_VAR_SPACE = 1
    # ENABLE_USB_NETWORKING = 1
    # INSTALL_SSH_AUTH_KEYS = 1
    REMOVE_CARRIER_CHECK = 1
    REMOVE_MODEL_CHECK = 1
    # DISABLE_MODEM_UPDATE = 1
    # CHANGE_KEYBOARD_TYPE = z
    
    # Select "pre", or "pixi".
    DEVICE = pre
    
    # Select "sprint", "bellmo", "telcel", "verizonwireless" or "wr".
    CARRIER = sprint
    
    ######################################
    ## END OF AREA FOR END USER CHANGES ##
    ######################################
    

    Save your modified makefile and close your text editor.

  2. 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
  3. 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:
    <Section name="tokens" type="token" size="4KB">
    				<Val name="installer" value="trenchcoat"/>
         </Section>
    

    The new section will look like this (thanks jhoff80!):

    <Section name="tokens" type="token" size="4KB">
    				<Val name="installer" value="trenchcoat"/>
    				<Val name="ProdSN" action="overwrite" value="x"/>
    				<Val name="ModemSN" action="overwrite" value="X"/>
    				<Val name="BATToRSP" action="overwrite" value="x"/>
    				<Val name="BATToCH" action="overwrite" value="x"/>
    				<Val name="DMSVRoNONCE" action="overwrite" value="x"/>
    				<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!

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.)

  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
    <img width=350>http://guide-images.ifixit.net/igi/bFeIXAZtnVqjBILK.medium</img>
  2. 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.
    <img width=350>http://guide-images.ifixit.net/igi/B2J3e3Tv6oKLJe3Y.medium</img>
  3. Remove the coms board.
    • 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.
      <img width=350>http://guide-images.ifixit.net/igi/qBW1xicfUSWhZ5VB.medium</img>
    Now, simply apply gentle pressure, and the coms board will pop right out:
    <img width=350>http://guide-images.ifixit.net/igi/2YgNcQN3dAf6idkE.medium</img>
    • 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. <img>http://guide-images.ifixit.net/igi/eklF6cnfCxUNTTwl.medium</img>


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.

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 2.1 script