Disclaimer: Don’t do this at home just because I’ve done it. Rooting a phone will void your warranty and it may render it useless either if you don’t do things right or even if you’re out of luck.
GPS died on me again after working great the day after my fix experiment (or I thought so because I tested it only in Maps and not in Navigation app, where it was failing miserably).
Short And Sweet Summary:
This is what I’ve done today to finally fix this problem (actually, this is how I should have done it because my way was a bit more complicated):
1. Obtained the MSL code: installed MSL Reader app (requires root access) and had it read the code from my phone (which must be rooted, so I should have done it in CM7 before restoring the initial HTC backup).
2. Backed up the current CM7 and then restored the original HTC firmware (I had the initial ClockworkMod HTC Sense backup done before the initial CM7 installation, upon successful Revolutionary S-OFF step. If you don’t have anything like this, you need to download and install an HTC Sense stock rom)
3. Opened my phone’s dialer and entered: ##4772579# (most places list this as ##GPSCLRX# but entering the number is much easier to me).
4. As soon as I entered the last # I got a password prompt and entered my MSL code obtained in #1.
5. Rebooted,tested GPS, updated PRL, booted in recovery and flashed back to the today’s CM7 backup from #2, tested GPS in both Maps and Navigation.
The Long Story
First I tried to follow instructions which told me to flash back to any HTC Sense image and enter the mumbo jumbo in the dialer to reset the GPS. The problem is that I had to install the MSL Reader app, but that one requires a fully rooted phone. Nobody told me that the code can be read in CM7, and later entered in the HTC Sense dialer. Still, I’ve done it, but didn’t know whether it was valid and I found out it was the same only after I successfully rooted the phone in its Sense “outfit”. My original S-OFF image is not rooted because I never had the phone rooted before flashing it to CM7, so I had to discover how to root it. I’ve done this with a quick download of the file
and then rebooting into ClockworkMod recovery, installing this zip file, then booting up again and I was in the rooted HTC Sense environment. Of course, I took a ClockworkMod backup of that one as well, so now I have three good backups – the original HTC Sense with S-OFF but without root, the rooted Sense, and the most recent backup of my CM7 environment.
That’s it. Disregard the original text below unless you want to read it just for the heck of it (good scientists and engineers never hide a “failed” experiment)
As you may know I recently rooted my EVO and installed CyanogenMod on it. Well, yesterday I encountered my first problem with it, but the mod survived it without me switching back to stock HTC Sense. I had to drive to a place I don’t know, so I dictated the address into my EVO only to find out that my GPS wasn’t working. Reboots didn’t help, so then I had to use the written route directions from Google Maps. Of course this infuriated me and I was almost ready to kill the CyanogenMod and go back to HTC Sense, but when I see a great mod I’m ready to invest some time in ironing out the wrinkles. This one was relatively easy.
When I cooled off at home I experimented more and noticed that nothing related to GPS worked any more regardless whether it was on or off. My maps were showing the location of the mobile cell I’m connected to instead of my own phone location. I went back to “Google University” and found in CyanogenMod forums that some EVO phones sometimes have a problem with GPS on CyanogenMod 22.214.171.124. There was a fix listed but it asked me to wipe and reinstall fresh, which I really wasn’t crazy about because it took me a lot of time to configure the interface the way I wanted it. Still, I shrugged it off, downloaded Titanium backup (free version), backed up the phone and got ready to later mingle with restoring things the way they were, but then I decided to try a simpler procedure first
and I got lucky.
I booted the phone into Revolutionary interface (holding volume down and power button) and after backing up the phone again with ClockworkMod I restored my initial pre-CyanogenMod ClockworkMod backup, booted up into HTC Sense and took the phone out of the airplane mode (where it was left before I took the original backup), enabling all devices and sensors including GPS, then restored the today’s backup and voila, the GPS started working (but not for long). Go figure. Perhaps I made a mistake by leaving the phone in airplane mode before rebooting and flashing it with CyanogenMod. It looked very good with excellent GPS performance (I’m tempted to say better than stock but I won’t 🙂 in maps, and it lasted for about a day, then the whole thing went into a zombie mode with GPS failing in navigation just as badly as the first time. The funny thing is, it still seemed to work sporadically in the Maps app, but the Navigation app fails miserably, mainly stuck in searching for GPS signal. Installing Sprint’s TeleNav GPS Navigation but to no success.
My advice to all who root with CyanogenMod 126.96.36.199 and use their phone as a driving navigation tool is to carefully test the GPS performance in the Navigation app (Google app, comes with Maps) after the installation.