1. Copy webosdoctorp100ewwsprint.jar to /Volumes/pre

              cp *****/webosdoctorp100ewwsprint.jar /Volumes/pre/

 

2. Create working folder

2-1. /Volumes/pre/0-contents-dump

              mkdir /Volumes/pre/0-contents-dump

2-2. /Volumes/pre/1-jar-org

              mkdir /Volumes/pre/1-jar-org

2-3. /Volumes/pre/2-jar-contents

              mkdir /Volumes/pre/2-jar-contents

2-4. /Volumes/pre/3-tar-contents-webOS

              mkdir /Volumes/pre/3-tar-contents-webOS

2-5. /Volumes/pre/4-tar-gz-contents-nova

              mkdir /Volumes/pre/4-tar-gz-contents-nova

2-6. /Volumes/pre/5-tmp

              mkdir /Volumes/pre/5-tmp

2-7. /Volumes/pre/6-out

              mkdir /Volumes/pre/6-out

 

3. Copy webosdoctorp100ewwsprint.jar to /1-jar-org

              cp /Volumes/pre/webosdoctorp100ewwsprint.jar /Volumes/pre/1-jar-org

 

4. Write down file contents of webosdoctorp100ewwsprint.jar

              jar tf /Volumes/pre/1-jar-org/webosdoctorp100ewwsprint.jar > /Volumes/pre/0-contents-dump/files-of-jar.txt

 

5. Expand webosdoctorp100ewwsprint.jar

              cd /Volumes/pre/2-jar-contents

              jar xf /Volumes/pre/1-jar-org/webosdoctorp100ewwsprint.jar

 

6. Write down file contents of resources/webOS.tar

              tar tf /Volumes/pre/2-jar-contents/resources/webOS.tar > /Volumes/pre/0-contents-dump/files-of-tar-webOS.txt

 

7. Expand webOS.tar

              tar xvf /Volumes/pre/2-jar-contents/resources/webOS.tar -C /Volumes/pre/3-tar-contents-webOS/

 

8. Write down file contents of nova-cust-image-castle.rootfs.tar.gz

              tar tf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar.gz > /Volumes/pre/0-contents-dump/files-of-tar-gz-nova-.txt

 

9. Expand nova-cust-image-castle.rootfs.tar.gz

              gunzip /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar.gz

 

10. Extract below 5 files from nova-cust-image-castle.rootfs.tar.gz and remove from tar

                            ./usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js

                            ./usr/palm/applications/com.palm.app.firstuse/app/controllers/firstuse-util.js

                            ./usr/palm/applications/com.palm.app.firstuse/app/models/account-service.js

                            ./usr/lib/ipkg/info/com.palm.app.firstuse.md5sums

                            ./md5sums

              tar xvf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar -C /Volumes/pre/5-tmp ./usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js

              tar xvf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar -C /Volumes/pre/5-tmp ./usr/palm/applications/com.palm.app.firstuse/app/controllers/firstuse-util.js

              tar xvf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar -C /Volumes/pre/5-tmp ./usr/palm/applications/com.palm.app.firstuse/app/models/account-service.js

              tar xvf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar -C /Volumes/pre/5-tmp ./usr/lib/ipkg/info/com.palm.app.firstuse.md5sums

              tar xvf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar -C /Volumes/pre/5-tmp ./md5sums

 

              tar vf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar --delete ./usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js

              tar vf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar --delete ./usr/palm/applications/com.palm.app.firstuse/app/controllers/firstuse-util.js

              tar vf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar --delete ./usr/palm/applications/com.palm.app.firstuse/app/models/account-service.js

              tar vf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar --delete ./usr/lib/ipkg/info/com.palm.app.firstuse.md5sums

              tar vf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar --delete ./md5sums

 

11. Edit 5 files

11-1. ./usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js

11-1-1. Edit file

              from

function setUpFirstUse() {

Mojo.Log.info("---------------- setupFirstUse() --------------------");

              this.firstUseDepot = new Mojo.Depot(stateEngine, dbSetUpSuccess, dbSetupFailure);             

              isInitialized = true;

              attemptCount = 0;

              dbVersion = -1;

              sessionStatus = 'none';

             

              FirstUseUtil.loadValues();

             

              isConnected = false;

              // Subscribe to connection manager

              conStatusRequest = AppAssistant.accountService.isConManUp(readConManStatus, errorConManStatus);

}

              to

function setUpFirstUse () {

Mojo.Log.info("---------------- setupFirstUse() --------------------");

              setupSimulator ();

              isDevice = true;

}

 

11-1-2. Calc md5

              md5 /Volumes/pre/5-tmp/usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js

                            old value = d7c963d7c9633a65b5894bf33ca8b590

                            new value = 127409d440379f702b419460f068a2c2

 

11-2. ./usr/palm/applications/com.palm.app.firstuse/app/controllers/firstuse-util.js

11-2-1. Edit file

              from (LineNo.=93-)

                                          items:

                                          [{label: $L('Emergency call'), command: 'emergency-call'},

                                          {label: $L('Call customer service'), command: 'customer-care'},

                                          {label: $L('Cancel'), command: 'cancel'}

                                          ]});             

              to

                                          items:

                                          [{label: $L('Emergency call'), command: 'emergency-call'},

                                          {label: $L('Call customer service'), command: 'customer-care'},

                                          {label: $L('Enable WiFi'), command: 'peef-hack-mode'},

                                          {label: $L('Cancel'), command: 'cancel'}

                                          ]});             

 

              from (lineNo. =100-

                popupChoose: function(value) {

                            if(value == "emergency-call") {

                                          AppAssistant.accountService.makeEmergencyCall(FirstUseUtil.emergencyNumber);

                            } else if (value == "customer-care") {

                                          Mojo.Log.info("----------------- FirstUseUtil.carrierName ----------------", FirstUseUtil.carrierName);

                                          AppAssistant.accountService.callCustomerCare(FirstUseUtil.customerCareNumber, FirstUseUtil.carrierName);

                            }

              },

              to

                popupChoose: function(value) {

                            if(value == "emergency-call") {

                                          AppAssistant.accountService.makeEmergencyCall(FirstUseUtil.emergencyNumber);

                            } else if (value == "customer-care") {

                                          Mojo.Log.info("----------------- FirstUseUtil.carrierName ----------------", FirstUseUtil.carrierName);

                                          AppAssistant.accountService.callCustomerCare(FirstUseUtil.customerCareNumber, FirstUseUtil.carrierName);

                            } else if (value == "peef-hack-mode") {

                                          AppAssistant.accountService.peefMode();

                            }

              },

11-2-2. Calc md5

              md5 /Volumes/pre/5-tmp/usr/palm/applications/com.palm.app.firstuse/app/controllers/firstuse-util.js

                            old value = 74c3295681ed25292b1dd2064f8ccb5c

                            new value = b132367618839cb9d34457a86aa8b898

 

11-3. ./usr/palm/applications/com.palm.app.firstuse/app/models/account-service.js

11-3-1. Edit file

              from (lineNo. =388-

              },

             

              launchTutorial : function(languageCode, countryCode) {       

              to

              },

 

              peefMode: function() {

                            return new Mojo.Service.Request("palm://com.palm.applicationManager/open", {

                                          parameters: {

                                                        id: 'com.palm.app.wifi',

                                                        params: {

                                                        }

                                          }

                            });

              },

 

              launchTutorial : function(languageCode, countryCode) {       

 

11-3-2. Calc md5

              md5 /Volumes/pre/5-tmp/usr/palm/applications/com.palm.app.firstuse/app/models/account-service.js

                            old value = efb28a085c4610967a6835b9480c40ed

                            new value = 1a48b6814c081e532c71c84ec11e431d

 

11-4. ./usr/lib/ipkg/info/com.palm.app.firstuse.md5sums

11-4-1. Edit file

              from

                            d7c963d7c9633a65b5894bf33ca8b590 *./usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js

              to

                            127409d440379f702b419460f068a2c2 *./usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js

              from

                            74c3295681ed25292b1dd2064f8ccb5c *./usr/palm/applications/com.palm.app.firstuse/app/controllers/firstuse-util.js

              to

                            b132367618839cb9d34457a86aa8b898 *./usr/palm/applications/com.palm.app.firstuse/app/controllers/firstuse-util.js

              from

                            efb28a085c4610967a6835b9480c40ed *./usr/palm/applications/com.palm.app.firstuse/app/models/account-service.js

              to

                            1a48b6814c081e532c71c84ec11e431d *./usr/palm/applications/com.palm.app.firstuse/app/models/account-service.js

11-4-2. Calc md5

              md5 /Volumes/pre/5-tmp/usr/lib/ipkg/info/com.palm.app.firstuse.md5sums

                            old value = f31082d113f3e950a760bd0e1f864333

                            new value = 807e885c44d14af0448ad5e4ee064ed2

 

11-5. ./md5sums Edit file

              from

                            d7c963d7c9633a65b5894bf33ca8b590 *./usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js

              to

                            127409d440379f702b419460f068a2c2 *./usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js

              from

                            74c3295681ed25292b1dd2064f8ccb5c *./usr/palm/applications/com.palm.app.firstuse/app/controllers/firstuse-util.js

              to

                            b132367618839cb9d34457a86aa8b898 *./usr/palm/applications/com.palm.app.firstuse/app/controllers/firstuse-util.js

              from

                            efb28a085c4610967a6835b9480c40ed *./usr/palm/applications/com.palm.app.firstuse/app/models/account-service.js

              to

                            1a48b6814c081e532c71c84ec11e431d *./usr/palm/applications/com.palm.app.firstuse/app/models/account-service.js

              from

                            f31082d113f3e950a760bd0e1f864333 *./usr/lib/ipkg/info/com.palm.app.firstuse.md5sums

              to

                            807e885c44d14af0448ad5e4ee064ed2 *./usr/lib/ipkg/info/com.palm.app.firstuse.md5sums

 

12. Marge modified 5 files to nova-cust-image-castle.rootfs.tar

              tar rf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar -C /Volumes/pre/5-tmp ./usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js

              tar rf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar -C /Volumes/pre/5-tmp ./usr/palm/applications/com.palm.app.firstuse/app/controllers/firstuse-util.js

              tar rf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar -C /Volumes/pre/5-tmp ./usr/palm/applications/com.palm.app.firstuse/app/models/account-service.js

              tar rf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar -C /Volumes/pre/5-tmp ./usr/lib/ipkg/info/com.palm.app.firstuse.md5sums

              tar rf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar -C /Volumes/pre/5-tmp ./md5sums

 

              tar tf /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar > /Volumes/pre/packing.log.txt

 

13. Compress nova-cust-image-castle.rootfs.tar

              gzip /Volumes/pre/3-tar-contents-webOS/nova-cust-image-castle.rootfs.tar

 

14. Rebuiled webOS.tar

              find /Volumes/pre -name '.DS_Store' -delete

              rm /Volumes/pre/2-jar-contents/resources/webOS.tar

              tar cvf /Volumes/pre/2-jar-contents/resources/webOS.tar -C /Volumes/pre/3-tar-contents-webOS/ ./

 

15. Rebuild flashtool (pre-flasher-no-act-sprint.jar)

15-1. Remove /META-INF/JARKEY.RSA and /META-INF/JARKEY.SF

              rm /Volumes/work/pre/2-jar-contents/META-INF/JARKEY.RSA

              rm /Volumes/work/pre/2-jar-contents/META-INF/JARKEY.SF


15-2. Edit /META-INF/MANIFEST.MF (Remove all lines except first 3-lines)

Manifest-Version: 1.0

Created-By: 1.6.0_04 (Sun Microsystems Inc.)

Main-Class: com.palm.nova.installer.recoverytool.RecoveryTool

15-3. Pack files (pre-flasher-allow-WiFi-connection-sprint.jar)

              find /Volumes/pre -name '.DS_Store' -delete

              jar cfM /Volumes/pre/6-out/pre-flasher-allow-WiFi-connection-sprint.jar -C /Volumes/pre/2-jar-contents/ ./

 

16. Flash pre

16-1. Power on with flashmode (Pre)

16-2-1. Remove back cover and battery

16-2-2. Set battery and plug usb cable to pre

16-2-3. Hold "volume-up" button and plug usb cable to pc

16-2. Launch pre-flasher-no-act-sprint.jar

16-3. Waite until progress bar from 0% -> 3%-> ... -> 84% -> "Error Couldn't reset ..."

 

17. Remove and set battery, then power on

 

18. Enable WiFi

 

19. Remove and set battery, then power on

 

20. Create palm profile