[Epic 4G Android Development] mkasick:
I'm not sure exactly what GPS Status & Toolkit does, but this suggests that the "Download Assistance Data" approach should be the similar. Although it's possible that the API GPS Status uses to do that doesn't work for other reasons.

One difference might be that GPS Status downloads new assistance data after attempting to start a fix, which happens when starting the application. Whereas this workaround (can) download assistance data before attempting a fix. I don't know if this is the case, but I understand how new assistance data might be ignored by the GPS while a fix is attempted, and even shortly thereafter.

I believe the XTRA data is downloaded on boot regardless of that setting, although I've not confirmed that. However, what may be different is that with that setting disabled, location data is never injected.

Are you consistently getting fixes without "Wireless networks" and not with it? Is this when using 3G data, 4G data, wifi, or all of the above?

If it's with wifi, is the location data for your access point accurate? That is, if you pull up Maps with "Wireless networks" enabled, wifi on, and GPS disabled, is your location on the map accurate or far off?

It definitely didn't under DI18/Eclair, although I don't believe Eclair supported the XTRA download interface. I've not tried it since upgrading to Froyo.

Have you tried them under Froyo, or just in Eclair?

This workaround doesn't do "Reset GPS State". It should do somthing similar to "Download Assistance Data". The two differences is that I've confirmed this workarond actually downloads assistance data, I'm not sure that GPS Status does. The second is that the assistance data is, nominally, downloaded and pushed before a GPS fix is attempted (in recent history), wheras the GPS Status approach does it after a recent fix is attempted, which may influence whether the data is actually used.

If you're running EC05 stock, before installing this, make a backup copy of "/system/framework/framework.odex" to "/data/local/tmp". If nothing else, this can be done with an "adb shell":

cat /system/framework/framework.odex > /data/local/tmp/framework.odex
sync

then go ahead and install the appropriate update.zip.

If you wish to backout the modification, make sure "USB debugging" is enabled and reboot into ClockworkMod. Connect the USB cable, pull up an "adb shell", and run:

cat /data/local/tmp/framework.odex > /system/framework/framework.odex
sync

then reboot. Once rebooted, feel free to delete the backup /data/local/tmp/framework.odex.

If you're running a deodexed ROM instead of stock, replace "framework.odex" with "framework.jar" in the above directions. Note that replacing "framework.jar/odex" is best done in recovery since it's not used then. If you replace it while the phone is running under a normal boot, it should still take, but it might cause your phone to panic and reboot.

Alternatively, you can replce "framework.odex" or "framework.jar" in one of the update.zips with the copy from your phone and install that update.zip from ClockworkMod. Or if you prefer, I can prepare an update.zip containing the appropriate file in place--which ROM?