Results 1 to 5 of 5
Like Tree22Likes
  • 18 Post By gargravarr2112
  • 1 Post By S1990
  • 3 Post By gosterros
  1.    #1  
    Hey folks!
    As evidenced by my post count, I'm a complete newbie with this device. Backstory: 2 years ago, our company moved into an office previously occupied by a games company, and in the process discovered they'd left an impressive amount of electronics behind. Amongst a bunch of old phones, I found a Palm Pre 2 in its original soft case. I knew these phones were a reasonably big deal in their day, so I put it on my junk pile to figure out. I of course ran into many well-known issues, including the SSL limitations and HP making the software hard to get, so I left it to gather dust. Earlier today, I rediscovered it, and set myself a challenge - either get it working, or throw it out. And I actually managed it! I had to piece together a LOT of threads and wiki pages to figure it out. So, for all who might discover their own and want to make it work with Google as of this year, here's a compiled list of links and steps for how I managed it, excluding a lot of dead ends and steps that are no longer applicable. I really hope this guide will help someone out. If I've done something the hard way, then please correct me.

    Assumptions:
    • The Pre 2 is blank. You have never used it before, no backups, no personal data on it, no Palm Profile, nada
    • You're familiar with the Linux command line
    • You have access to an x86_64 Ubuntu machine with Java installed (tested with OpenJDK 1.8). This is equally doable on MacOS or Windows; adapt as necessary
    • You have a GSM SIM card suitable for the phone (either right network if it's SIM-locked, or any working SIM if it's unlocked)


    The Software
    One thing that confused me far more than it should have is the various bits of software floating around. Here's a quick list of the ones I'm aware of and what you need them for:
    • SDK - Software Development Kit. Only really needed if you're planning to write your own apps for the device
    • Novacom - USB communication driver. Generally used with the SDK but absolutely essential for everything here
    • webOS Doctor - factory-reset and recovery, includes the webOS image
    • WebOS Quick Install - a.k.a. WOQI. Friendly, open-source GUI for installing packages (and dependencies) to a Pre over USB from a connected computer
    • Preware - Quick Install equivalent that runs directly on the device
    • devicetool - Small utility written by a forum member that bypasses activation requirements now the Palm/HP servers are gone


    Overview of what I did:
    1. update webOS
    2. bypass activation
    3. fix SSL
    4. add OAuth2 support


    Step 1: Update webOS

    There's a good chance the Pre 2 you're holding is on an older version of webOS - as best I can tell, there are 3 major versions, 2.0.1, 2.1.0 and 2.2.4. To find out, after starting the phone up, go to Device Info.

    Best to go with latest & greatest. As automatic updates are no longer available, either web or OTA, the best way to get the phone updated is via Palm's WebOS Doctor software.

    Step 1.1: Obtain the Palm Software

    As is extensively documented, HP have broken DNS records needed to access the Palm software CDN. The actual files are still there, as of the time of this post; you need to add some entries to your system's /etc/hosts file to bypass the broken DNS - you can't just access directly by IP address, because the Host header is required. There is a way to do this with curl, but the /etc/hosts approach is easy enough.

    Step 1.1.1: Modify your Hosts file

    Use the following two links:
    https://webos-internals.org/wiki/Web...t_webOS_Doctor
    https://webos-internals.org/wiki/Web...get_webOS_SDKs
    Might as well do them both at the same time!

    Step 1.1.2: Download Novacom and webOS Doctor
    Novacom was one of the harder things to find a working link for, and what caused me to give up 2 years ago. Eventually I found it here: https://cdn.downloads.palm.com/sdkdo...0.80_amd64.deb

    webOS Doctor is specific to your phone. The first 5 characters of the serial number determine the market and factory SIM lock state. Search for those characters on this page and download the relevant webOS Doctor version: https://webos-internals.org/wiki/WebOS_Doctor_Versions I recommend downloading all versions you can get your hands on; if something goes badly wrong, it gives you a better chance of rolling back to a working point, and we don't know how long these links are going to continue to work.

    Step 1.1.3: Install Novacom
    The Novacom .deb package can be installed in the standard Ubuntu/Debian manner through DPKG:
    Code:
    sudo dpkg -i path/to/palm-novacom_1.0.80_amd64.deb
    sudo apt install -f #This resolves the dependency on libusb
    NB: Novacom was developed when Ubuntu still used upstart as a service manager. Modern Ubuntu, from 16.04 onwards, uses systemd instead. As such, out of the box, there is no convenient init script or service definition to run Novacom in the background (it uses a client-server architecture with an always-running daemon, not unlike ADB). I just ran the daemon from a terminal as needed.

    Step 1.2: Update to 2.2.4
    I have no idea if it was necessary, but I updated in a linear manner - 2.0.1 -> 2.1.0 -> 2.2.4. This ensures low-level firmware gets updated in a predictable manner.

    Step 1.2.1: Install a SIM card
    The phone's default setup wizard assumes the presence of a SIM card. I'm not sure if devicetool can get around this; I discovered it after this point. Note that the phone takes a mini-SIM, where most devices in 2020 take a micro-SIM or smaller. It's possible to wedge a micro-SIM in the slot temporarily if you don't possess an adapter. With the SIM in place, power on the phone.

    Step 1.2.2: Start Novacom
    In a separate terminal, simply run
    Code:
    sudo /opt/Palm/novacom/novacomd
    It needs to be run as root to access the USB device at a low level; a warning message will be output if run as a standard user. Fortunately, everything else can be run as a standard user as it all communicates with Novacom.

    Step 1.2.3: Connect the phone
    Connect the phone with a micro-USB cable to your computer. When prompted by the phone, select Just Charge. This should expose a USB device to the computer, which can be seen with lsusb.

    Step 1.2.4: Run webOS Doctor
    webOS Doctor does exactly what its introductory screen says - it completely wipes the phone, with minimal confirmation from the user. Don't click Next thinking 'let's see what it does' because it will! An update cycle takes about 10 minutes. A lot of verbose messages can be seen from the command line and are more helpful than the progress bar in the application.
    Code:
    java -jar path/to//webosdoctorp102ueuna-wr.jar
    Follow the prompts and click Next. After the 'Connect Your Device' screen, clicking Next will immediately reboot the phone into its recovery mode and start a reflash of the firmware. Don't disconnect it. Watch the messages on the terminal for progress. Be patient; it seems to stall around the Modem stage. After a few minutes, it should continue. After about 10 minutes, the program should finish and the phone will boot into its new OS.

    Step 1.2.5: Enable Developer Mode
    NB: This may not be necessary if devicetool can get around this step.
    When the phone boots, you'll be presented with two unskippable options to create or login to a Palm Profile. Well, all the Palm Profile stuff is now gone, so it's impossible to go further officially. However, there's a debug option hidden away. At the bottom of the screen, tap the Phone icon to get the dialler up, delete the '911' that's there by default, then dial in '#*3386633#' ('#*DEVMODE#') then Dial. A new screen will appear offering to turn on Developer Mode. Toggle it, then allow the phone to reboot. You'll be able to access the home screen on the next boot.
    If necessary, repeat Step 1.2.4 until the phone is installed with webOS 2.2.4.

    Step 1.2.6: Set the clock
    At least on my phone, it didn't pick up NTP or GSM time. This is particularly noticeable because webOS Doctor resets the clock back to the time of the image. Since certificate validity is dependent on system time being correct, make sure you set the clock correctly at this point.

    Step 2: Bypass Activation
    The phone expects a Palm Profile account to be present for anything useful to happen. Ergo, we need a Profile in place in some form or another. Fortunately, Grabber5.0 has us covered: https://pivotce.com/2015/12/13/the-u...tivation-tool/.

    Step 2.1: Boot the phone into recovery mode
    Sort of like an Android device, some system-level modifications can only be made from Recovery mode. The devicetool helpfully detects whether the phone is ready and provides instructions if it isn't. Simply:
    1. Remove the battery and disconnect the USB cable from the device.
    2. While holding the 'volume up' button, attach the USB cable to the device.
    3. Continue to hold the 'volume up' button and insert the battery.
    4. You should see a USB symbol on the screen. If not, repeat steps 1-3.


    Step 2.2: Run devicetool
    Code:
    java -jar path/to/devicetool.jar
    It's non-interactive and just does the whole thing automatically. When finished, the phone will reboot, and under Accounts, you'll find an HP webOS Account, under a 'Dr Skipped Firstuse'. You'll need to just ignore this, as the phone essentially won't work without it

    At this point, all the phone's features (that still work with the modern web) become available. Next is getting it working with modern Google services.

    Step 3: Fix SSL
    A lot of problems (and forum threads!) revolve around SSL problems. When HP pulled support for the Pre and webOS in general, SSL root certificates eventually expired. This, as you might imagine, causes all manner of problems. In addition, webOOS only supports SSL using SHA1-hashed certificates by default, which Google has pushed hard to eliminate, so upgrading to support SHA256 is also needed.

    Step 3.1: Get WOQI
    Get the latest .jar from here: https://github.com/NotAlexNoyle/webo...stall/releases
    WOQI, together with Novacom, will allow you to manage homebrew software on the Pre. Run it just like any other .jar:
    Code:
    java path/to/WebOS-Quick-Install.jar
    It should detect the Pre immediately. If it prompts to install Novacom, then novacomd isn't running (see 1.2.2). Once it's running and the phone is connected, click the Device: dropdown and it should refresh with 'Palm Pre 2'

    Step 3.2: Update root certs
    Click the third button on the right side of the application (under the + and - buttons) to download the available package list from Preware. Under the Applications tab, search for 'cert'. Install frantid's Root Certs Update package.

    Step 3.3: Update the system SSL
    https://github.com/tgaillar/OpenSSL-Updater/wiki
    Whilst this requires subscribing to the Alpha feed on Preware, I found what I view to be a simpler approach that works just as well, and also has the advantage that you're not subscribed to the Alpha channel which has lots of disclaimers around it that it may break things without warning.
    1. Download the .ipkg from here: http://preware.net/alpha/apps/armv7/....8-6_armv7.ipk
    2. In WOQI, click +
    3. Find the .ipkg you just downloaded
    4. Click Install


    This is exactly the same package that Preware would download from the Alpha channel, with the notable difference that it's being explicitly installed. I see no problem with doing it this way, as it seems like other Alpha channel software won't accidentally mess up your phone without you realising it. If there's a specific reason for not allowing this approach, I apologise, but please let me know why.

    Once the phone reboots, you should have support for SHA256 certificates. We're nearly there.

    Step 4: Add OAuth2 Support
    All modern web services, especially Google, use OAuth2 instead of usernames and passwords these days. On the one hand, it allows quite granular access to specific groups of APIs, so rogue applications can't trash your entire account. On the other, it requires an entirely different auth system that the Pre was never designed for. Massive thank you to frantid for writing the patch to handle this!
    Step 4.1: Patch the Accounts system
    1. Obtain the patch from here: https://forums.webosnation.com/webos...ml#post3005312 - I used google_oauth2_224_1-14.zip, matching the OS version on my Pre.
    2. Extract the .zip
    3. Install the .patch with WOQI


    Step 4.2: Add your account
    1. Open Accounts
    2. Click Add Account
    3. Choose Google
    4. Enter your username and password

    At this point, you'll be notified that extra setup is needed for OAuth2 before Contacts and Calendar will work. However, email works differently.

    Step 4.3: Get OAuth2 Token
    1. Click Change log-in settings
    2. Click OAuth2. A new window will open.
    3. Click Request Token
    4. The browser will open. Log into your Google account, using 2FA where applicable (side note, if you're not using 2FA, please enable it!)
    5. You will now be taken back to the OAuth2 settings. If it's worked, underneath your email address, there will be the token details showing an expiry date of 1 hour from now.

    The token will automatically refresh in the background, or you can force it manually by clicking the Refresh Token button.

    Step 4.4: Email
    As best I can tell, the built-in Email client cannot use the OAuth2 token and must instead be set up for standard IMAPS access using an application-specific password.
    1. Go to https://myaccount.google.com
    2. Click Security
    3. Click Application-Specific Passwords
    4. Give it a name and click Generate
    5. Open Email on the phone. You'll see a notfication to check your login. Click this.
    6. Click Change login details
    7. For the password, enter the ASP you just generated


    If I've not missed any details, then finally you should have a Palm Pre 2 with working Google services!

    Thanks to:
    • frantid
    • Grabber5.0
    • Preemptive
    • Thibaud
    • Jason Robitaille
    • Everyone else who wrote or contributed to threads or wiki pages


    Again, I hope this step by step hopes someone else avoid the dead ends that I ran into, and is valid as of the time of posting. Many of the guides I was reading are years old by now, and sometimes it was difficult to know what was still relevant.

    Thanks to everyone who's keeping the Pre alive!
  2. #2  
    Quote Originally Posted by gargravarr2112 View Post
    The token will automatically refresh in the background, or you can force it manually by clicking the Refresh Token button.
    I have the problem that the token expires after 1 hour and does not refresh automatically.So, I have to do the step 4.3 again. What produces this error?
    MudShark22 likes this.
  3. #3  
    Thanks a lot for the nice post.
    Is it still working for everyone?

    In my case, I have recently bought a Pre2 and I'm facing issues in the last steps:

    1 - Getting the OAuth token:
    The Google signing screen works in 2 steps, first asks for user, then after pressing a button, for password. Everything works until pressing that button, the password screen is never shown and the page in the web view is blank.

    2 - As for the email password, after introducing the generated one the response in the screen, between the password field and the Sign In button is: "Unknown Error"

    I wonder if some changes are needed on the patches or if the issue is specific to my terminal because I might need to set up something else as well.

    Thank you for checking, and thanks a lot for the effort
  4. #4  
    Hi everyone!

    As an update, finally I got Gmail working.
    My steps were the following:

    1. Replaced the curl binary on the Pre with a recent build
    2. Wrapped the curl into a script, so when someone calls 'curl' it really calls 'curl -k'. This will skip the cert check, and it is necessary to install with Preware, as many origins use certs that are not valid for the Pre.
    3. With the modern curl -k, the Javascript Framework package can be installed with Preware. This enables the Certificate Grabber on Preware. Still, the step of the certificate Grabber relating Yahoo is outdated, so I have edited the script (the path is in the error message) to remove that step, and it could complete successfully.

    Extra. I also added manually the certificates from the Root Cert updater to the certificate folder of the Pre. I don't think this is necessary (I did it before anything else) (and maybe not even complete, since I have only moved the files in), but I just state it in case someone needs an extra hint.

    After this, you shall be able to log in GMail as stated up there!

    I haven't tried yet with the contacts and calendar, but for now I'm very happy with the mail itself.

    Thanks for the main tutorial!
  5. #5  
    Thanks for posting your fix. I'm still using the web interface for Gmail, but who knows how long Gmail will continue supporting the super stripped down web interface, so it may be good to be prepared for this, too.

    Where are you getting the new build of curl for the Pre? Are you compiling it yourself, or is there somewhere to download it?

Similar Threads

  1. Potential sources for Pre 3 batteries (2020)
    By LewisR in forum HP Pre 3
    Replies: 19
    Last Post: 06/10/2020, 12:38 PM
  2. Update LG WebOS 2.2.3-2149 to WebOS3.0 or higher
    By quidditchfan in forum LG webOS TV
    Replies: 1
    Last Post: 02/10/2020, 02:59 PM
  3. Replies: 0
    Last Post: 02/05/2020, 08:18 PM
  4. LG looking to extend webOS into the Automotive industry
    By hellonnnewman in forum webOS Discussion Lounge
    Replies: 2
    Last Post: 02/05/2020, 01:45 PM

Posting Permissions