[Desire HD Android Development] crypted:
AGPS Patch DesireHD 3.1 & 2.2 | GET BACK TO RAPID GPS LOCK, CAN LOCK ONTO MORE SATS

AGPS PATCH

REVIEW THE WHOLE THREAD BEFORE POSTING QUESTIONS.

List of officially supported devices is at the bottom of this post.

Use this if you're having GPS issues (unreliability, no functionality, etc.)

This patch provides a worldwide solution to GPS issue for multiple devices. Using a general ROM without this has resulted in 10+ minutes of GPS delay. Also, GPS lock kept being lost. By using this patch, most people experience a GPS lock within 10 seconds (2 - 20 seconds range can be expected). Typically, a device using this patch will lock onto 7 - 9 satellites. Users have reported up to 11 satellites being locked at once. Without this patch, the average satellite count is 4.

HOWTO INSTALL: (Remember to make a backup. See Notes section for what this patch does.)

Method 1:

1. Download the "ADB Push Installer". This contains all versions for the latest build and old v1.3 versions.

2. Extract the files into a specific folder.

3. Plug your device into the computer and get it ready for adb pushing. Nothing out of the ordinary required.

4. Open the batch file called "ADB Installation Script - RUN THIS" if you use Windows. Otherwise, run the Linux SH script if you use Linux.

5. Select the version you want from the list.

6. Follow the prompts to reboot. You're done.

4. Review the NOTES section.

Method 2:

1. Download the patch

2. Copy all file(s)* into /etc/ of the system (not sd-card) using ES File Explorer, Root Explorer, or some other form. You must have SYSTEM set to Mounted and Root enabled. Check your explorer app's SETTINGS to do this.

**Files will be: gps.conf & SUPLROOTCERT -OR- only gps.conf for NO-SSL builds.**

3. Reboot the device

4. Review the NOTES section.

*Files are located in the /system/ folder of the ZIP. Do not copy the other directories or folders.

Method 3 (easiest if you use a compatible version of CWR or CWM)*:

1. Download the patch

2. Boot into CWR (Clockwork Recovery)

3. Mount /system/ partition (on the main menu, select the "Mounts and storage" option, then "mount /system")

4. Flash the patch (on the main menu, select "Install zip from sdcard," then "choose zip from sdcard," and find the zip and select it)

If you receive "(Status 0) Installation aborted" this Method will not work for you. Use one of the other methods.

5. Reboot the device

6. Review the NOTES section.

*This was built for and works on Inspire 4G and DesireHD versions of Clockwork Recovery. The Google CWM Flashable Build has binaries known to work with CWM on the X8. It may work on other devices. Please message me your success if you try and flash with recovery version and phone model as part of the message.

Downloads:

SEE THE NOTES SECTION (PARTICULARLY NOTES 1,2, & 3) FOR ALL SORTS OF INFORMATION AND FACTS ABOUT THIS PATCH, WHAT EACH BUILD IS FOR, VERSION DIFFERENCES, AND KNOWN ISSUES WITH SOLUTIONS.

Recommended Builds (pick either):

Download the Google Specific No-SSL v3.1 build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the Google Specific v3.1 build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Confused with all the options below? As the Notes section dictates: I recommend the GOOGLE BUILD of all devices. Other builds have changes in their SUPL server information and/or other variables pertinent to that manufacturer. These builds do not appear to operate as fast as Google build's but are available for your enjoyment.

3.x trunk Alternative Options (currently v3.1)

Download the ADB Push Installer here. (contains all current builds and v1.3 builds) (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the Google Specific NO-SSL TWRP build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the Google Specific build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the Google Specific NO-SSL build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the Google Specific Alternate* build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the Google Specific CWM Flashable build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the AT&T Specific build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the T-Mobile Specific build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the LG Phone Specific build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the LG Phone Specific Alternate* build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the Sony Ericsson Specific build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the GPS.CONF only build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the GPS.CONF only Alternate* build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

*The alternate patch removes a variable that some GPS hardware on older models cannot handle. Try this if you have problems with the standard patch.

2.x trunk Alternative Options (currently v2.2)

Download the ADB Push Installer here. (contains all current builds and v1.3 builds) (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the Google Specific build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the Google Specific NO-SSL build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the Google Specific Alternate* build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the Google Specific CWM Flashable build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the AT&T Specific build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the T-Mobile Specific build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the LG Phone Specific build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the LG Phone Specific Alternate* build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the Sony Ericsson Specific build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the GPS.CONF only build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

Download the GPS.CONF only Alternate* build here. (

Like it? Don't forget to click on "Thanks" and to rate the thread

)

*The alternate patch removes a variable that some GPS hardware on older models cannot handle. Try this if you have problems with the standard patch.

Changelog: (I'll try to keep this correct and current)

v3.1 update - New Version
introduced the NO SSL version for Google build. Shows faster performance times.

v3.1(HELP WITH THE MAINTANENCE COSTS - DONATE A FEW BUCKS)
introduced my own NTP pools
repaired the LG Alternate build (was same as standard build, compilation error)

v3.0 (HELP WITH THE MAINTANENCE COSTS - DONATE A FEW BUCKS)
based on v2.2 configuration
has my own XTRA/AGPS server instead of Qualcomm
re-added two AGPS variables from v1.3 (two beta-testers saw instant results with these re-added)
re-added on USE SUPL variable from v1.3 (two beta-testers saw instant results with these re-added)
variables are now divided into sections and sections have descriptions

v2.2 update - New Version
introduced the NO SSL version for Google build. Shows faster performance times.

v2.2 (additional builds added)
added a new SUPL version using data from Sony Ericsson
added an alternate release using LG SUPL servers
added an alternate release using Google SUPL servers
updated the ADB PUSH to include new versions
fixed broken download links for the patch

v2.2
removed local AGPS variable
removed local XTRA_SERVER variable
created LG Build with LG SUPL servers (some LG ROMs fail to work with non-LG SUPL servers)
reduced redundancy in NTP and XTRA (unnecessary entries)
added newly located SUPL server to T-Mobile build

v2.1 (encompassing changes between 1.3 to 2.1)
removed two NTP server pools
removed xtra1 server
removed multiple SUPL_HOST entries
aligned SUPL_HOST with SUPLROOTCERT in each package
increased QOS timeout from 89 to 100
removed QOS standalone timeout variable
removed extra AGPS variables

Old Versions:

3.x Trunk:

v3.0 ADB Push Installer

v3.0 Google Build

v3.0 Google Alternate Build

v3.0 Google CWM Build

v3.0 AT&T Build

v3.0 T-Mobile Build

v3.0 LG Build

v3.0 LG Alternate Build

v3.0 Sony Ericsson Build

v3.0 GPS Only Build

v3.0 GPS Only Alternate Build

2.x Trunk:

v2.1 Google Generic Build

v2.1 AT&T Specific Build

v2.1 T-Mobile Specific Build

v2.1 GPS.Conf Only Build

v2.1 GPS.Conf Only Build (alternate)

v2.0 Google Generic Build

v2.0 AT&T Specific Build

v2.0 T-Mobile Specific Build

v2.0 GPS.Conf Only Build

v2.0 GPS.Conf Only Build (alternate)

1.x Trunk:

Worldwide 1.3

Worldwide 1.3n (alternate)

North America 1.2

Worldwide 1.2

Worldwide 1.2n (alternate)

North America 1.1

Worldwide 1.1

Worldwide 1.0 (not recommended)

North America 1.0 (not recommended)

Rules For Posting Questions:

Read the Notes Section first. I will refuse to answer questions that can be answered by some reading. If it is based upon something in the Notes Section, REFER TO THE NOTE when asking.

Answer the following questions: What ROM you are using?, What kernel are you using?, What GPS apps you have installed?, Where is your general location?, Are you using a case?, Has your GPS worked fine before?, Does it work fine with some apps and not others?, What else happened around the time your GPS stopped working? -AND- Have you reviewed the Notes Section?

DO NOT criticize the user of custom third-party NTP pools and xtra.bin data as dangerous. You obviously HAVE NOT read the Notes section OR reviewed the concurrent branch 2.x to discover it offers the standard NTP pool and Qualcomm-based xtra.bin server.

Don't indulge yourself in ignornat posts. Provide information that may be relevant to helping. Simply stating "this stopped working" or "I can't get it to work" helps nothing and only annoys other readers AND those who may be willing to help you just will not do it.

NOTES Section:

This patch will work with virtually all Qualcomm, Android phones and has been reported to work with other chipsets as well. That means hundreds of devices could see a benefit to GPS performance from this patch.

This patch has various objectives to ensure stability and efficacy with GPS. Locally, the patch will replace your /system/etc/gps.conf and your /system/etc/suplrootcert if you have this file. You can compare the difference in what you have to this one to get an idea of all the changes. V3.1, onward, contains section descriptions for variables in use. Most notably, starting with v3.1 the aGPS Patch uses my own central NTP DNS pool and my own central xtra.bin server by default. The xtra.bin does have fallback servers should mine fail. But, that is very, VERY much an unlikely scenario. These two imperatives allow for better stability and speed by providing top-rated NTP servers and prime-routed network access to transmit the xtra.bin to your phone.

I recommend the GOOGLE BUILD of all trunks. However, you can use any build with any phone. You may have good luck with specific builds that do not fit your phone or carrier criteria. If you're curious, test it and see.

This works with ANY ROM unless the ROM has aGPS and/or GPS disabled in the code. This happens with CMx nightlies and some betas! I cannot fix this, neither can you.

Remember, this has to be

reflashed

when you

update or change

ROMs.

Short patch history: The 1.x trunk only flashed a modified gps.conf file which relied solely on Qualcomm and NTP.ORG. Starting with 2.x, a gps.conf and a matching SUPLROOTCERT file for SUPL server authentication is included. The 3.x trunk offers the same as v2.x but adds better sourcing for NTP data and for the xtra.bin file; it utilizes my own server to do so.

Why toss out SSL?Whether or not you have a current SUPL certificate is questionable. Some have expired. Some will expire soon. Either way, the servers may provide SSL access without proper certificates depending upon configuration. That aside, I have found that SSL and secure communications over data networks slows the response times. I see no reason to use SSL for location information. If someone has a logger to obtain your location, SSL will not assist in stopping it. The bad app will continue to obtain your information by "stealing" it and you have more problems than a simple SSL-SUPL communications leak.

NO-SSL Builds will not have a SUPLROOTCERT because these builds do not use SSL. The SUPLROOTCERT is a certificate used for authentication of SSL connections. There is no need for this file for the GPS at this point.

IF you have issues with v2.x or v3.x, your ROM might require more variables. Try the old worldwide v1.3 version in this instance.

IF you still are facing issues, it might be that your GPS hardware is very much outdated. Try any "Alternate" build to see if this helps.

CMx ROM users may not experience benefits from this patch. However, we have had good reports from CM users with one negative one. Remember to do all of the steps when flashing and the following notes are important too!

Reports indicate that this patch DOES WORK with the next iteration of Android, Jelly Bean. This patch has worked from Android 2.2 (Froyo) up through Android 4.1 (Jelly Bean). Therefore, it works with all iterations on the market. I will remove support as soon as it is confirmed to NOT work with a new version of Android.

Reports show that certain ROM's including some CM builds require a modification in the build.prop. You need to change "ro.ril.def.agps.mode = 2" or "ro.ril.def.agps.mode = 0" to be "ro.ril.def.agps.mode = 1" in order for aGPS to properly function. Only do this IF YOU ARE HAVING PROBLEMS after attempting the standard patch.

Your phone "learns" about the individual GPS satellites. This is part of the aGPS design. Don't be surprised if the first time you use GPS Status that it takes 20+ seconds to "lock".

I have read a lot that indicates that it is best to let your GPS run using any application for a while to "learn" aGPS information. I let GPS Status run for about 10 minutes (it has an option to disable the screen timeout, which I do) each "first time" to learn. I say each because I test a lot of tweaks and fully reset/delete GPS cached information to start retesting.

Remember, this has to be reflashed when you update or change ROMs. Each ROM will have its own gps.conf, normally not suited to all devices.

I use GPS Status to test my signal strength. It isn't 100% accurate, but it gives a very good sense of how the GPS is performing.

If you're wondering why GPS is slow on certain apps? Or, you show up as on a street when you're 6 meters away from it? Well, those apps process GPS data differently which is out of anyone's control except the app developer. Certain apps will force your location to a street until you pass the app error threshold. Food for thought.

DO NOT USE ANY OTHER GPS FIXING APPS with this patch. If you do, and you still have problems, I cannot help you. A number of these Apps will overwrite what my patch does dynamically.

Variables are described starting in v3.0. Open up gps.conf in a text editor to read about what variable sections are for. It isn't in-depth, but should be enough to help you get a general understanding.

Still having weak GPS reception? Take your case off. Cases have been known to affect signal, though some argue against it. Personally, I get 3 more sat's when I remove my case.

There is a reported variable that can cause some GPS units not to work as well as it should with this patch. This is very odd as it's hit-and-miss and only seems to cause problems on less than 10% of handsets. This doesn't mean it screws up anything! It's possibly an older piece of GPS hardware incompatible with this variable. Have no fear, v1.2 will remove this variable for the worldwide version. This issue is more prone to occur in DHD.

Tried taking the battery out for 30 seconds? Some have reported that their phone required the battery to be removed. First, power off the device. Second, remove the battery for 30 seconds. Third, put it back in and give it a try. I cannot explain this except for possible cache clearing.

Some Inspire 4G and DHD devices have hardware problems. There is a known problem that the spring connectors to the GPS antenna sometimes are out of place or quit touching. http://xdaforums.com/showthread.php?t=1101066 provides a video on self-repair.

An error in flashing this patch means that this method will not work for you. Use one of the other methods for flashing this patch. Don't ask why or for a fix. There are hundreds of variations of recovery systems and update binaries. I do not have the time or desire to support them all. This is why I describe other install methods. Reference error: E:Error in /sdcard/android apps/agps.patch.google.build.nossl.v3.1.zip (Status 0) Installation aborted.

Location is way off? Like, not near you at all? This means your GPS is not actually being used. Try the following to resolve it: Goto Settings -> Locations and disable ALL options. Reboot into recovery. Clear Cache and Dalvik Cache. Reboot normally. Go back to Settings -> Locations and only enable GPS. Reboot once more and try your GPS again. If this didn't work, did you read all of the Notes such as the one about the battery or RIL?

Donations: If you wonder why I asked for donations, it's simple. Users of v3.x are gaining extra, noticeable benefit over v2.x. This comes at a cost to someone. I pay the bills to provide a reliable data setup to transmit the xtra.bin data file and to provide the top NTP SERVERS in one DNS pool. To help keep this going, I just ask for the user to consider a donation. Nothing more, nothing less. Thank you for your consideration.

AGPS Patch Officially Supported Devices:

Acer Iconia

Asus Transformer Prime

Asus Transformer (TF101)

Asus Transformer TF300T

HTC Inspire 4G

HTC Desire HD

HTC Sensation

HTC Incredible S

HTC Salsa

HTC Flyer

HTC Evo 3D

HTC Desire S

HTC Wildfire

HTC Wildfire S

HTC Droid Incredible 2

HTC Thunderbolt

HTC Desire

HTC Desire Z

HTC One X

LG GT-540 OPTIMUS

LG Optimus One

Motorola Triumph

Motorola Droid X2

Samsung Galaxy S II Skyrocket (SGH-I727)

Samsung Galaxy S II (I9100)

Samsung Galaxy S II (SGH-T989)

Samsung Galaxy S Plus I9000

Samsung Galaxy Nexus

Samssung Galaxy S III (AT&T, Rogers, Bell, Telus)

Samsung Galaxy S III I9300, I9305

Samsung Galaxy S 4G

Sony Ericcson XPERIA X8

* I do not officially support all devices that this patch is known to work on at this time. You may private message me your success story for official support considerations.

Thanks Section

While this has gone a long distance since its inception, I want to still send thanks to Angeldeath for permitting me to take his early work and start tweaking it for HTC Inspire 4G users. This inevitably led to what we have here today.

Thank you to all those who joined and participate in the testing community. Without their help, I couldn't get enough data to know how well this works on different devices and in various regions of this planet we call Earth.

Thank you eagleeyetom, husky69, and tamagotono for their work in building an ADB pushing environment for Windows and for Linux respectively.

If you are happy with the patch and find this thread useful, please consider pressing the "Thanks" button on any of my posts on this thread. You may also consider rating this thread with five stars if you're satisfied. You may do so just below "Search This Thread" on the right-side at the top of this post. Donations are appreciated (See last NOTE)

REVIEW THE WHOLE THREAD BEFORE POSTING QUESTIONS.