[Defy Android Development] crypted:
AGPS PATCH FOR MOTOROLA DEFY USERS

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

IMPORTANT: This device is not officially supported. It has a different chipset than the gps.conf patch is intended for. You MAY experience better results with this aGPS Patch when using custom ROM's. Those ROM's come from other phones and can provide added benefits that this patch enables.

Before continuing, this post is of importance to you: http://xdaforums.com/showthread.php?p=21456377#post21456377. Any attempt to bring a solution has been negated by six pages of attacks by two usernames that failed to proffer useful discussion to resolve this phone's GPS problem.

------

This patch was created to provide quick GPS locking across North America. But, it has been ported into a worldwide solution 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:

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

5. Select the version you want from the list.

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

(Thank you eagleeyetom for helping make this possible!)

Method 2:

1. Download the patch

2. Copy gps.conf and suplrootcert 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.

3. Reboot the device

4. Review the NOTE section in Post #2.

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)

5. Reboot the device

6. Review the NOTE section in Post #2.

*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:

There are many new builds available. The 1.x trunk only flashed a gps.conf file. Starting with 2.x, more comes along with the package. This provides the SUPLROOTCERT that many ROMs seem not to have. I prefer the Google Specific version myself.

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.

3.x trunk (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 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 (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 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(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 (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)

NOTE(S):

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.

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 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 have issues with GPS locking in v2.x or v3.x, your ROM might require more variables. Try the old worldwide v1.3 version in this instance. It has been observed that some ROM's do not have SANE values for missing variables.

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 differenty and 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 theshold. Food for thought.

DO NOT USE any other GPS FIXING SOFTWARE 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.

AGPS Patch Officially Supported Devices:

HTC Inspire 4G

HTC Desire HD

HTC Sensation

HTC Incredible S

Acer Iconia

LG Optimus One

Sony Ericcson XPERIA X8

HTC Salsa

HTC Flyer

HTC Evo 3D

*This works on over 15 other devices, at least with certain ROM configurations. I do not officially support those devices as of yet. You may private message me your success story for official support considerations.

(For v1.0) Thanks to Angeldeath for permitting me to take his work and start tweaking it for Inspire users across the continent. Angeldeath made a great series of AGPS patches designed for his HD2 which essentially updated the gps.conf to speed up the locking process. However, those scripts are based upon regions for USA and no general support for North America after v1.0.