[EVO 4G Android Development] jmin9012:
You need to download TyTung GPS FIX 2.0 from below.

DOWNLOAD:

http://nexus-hd2.googlecode.com/files/GPS_Libraries_v2.0_NMEA_for_HD2_Gingerbread_update.zip

1. Place the ZIP file on to your memory card.

2. After you do that, turn the phone off.

3. Hold the power button for 15 seconds until it boots into RECOVERY

4. Select AD Recovery and press the call button.

5. Go to “Install Zip From SD Card. Then “Choose Zip from SD Card”.

6. Select the GPS FIX ZIP File and Press Yes. After it is done, press the back button and then press Reboot System.

After the phone boots up normally, Go to Settings -> Locations & Security. Select “Use Wireless Networks” as well as “Use GPS Satellites”

Launch your favorite Navigation program and you are good to go!

All gps.conf settings, including default NTP and XTRA, won't be sent to libgps.so in Diem's version, so changing them won't make anything different.

If you feel it makes any difference, I believe it's due to the psychological feeling.

Because Diem's libgps.so lacks a lot of features, I decide to implement a new libgps.so.

I have studied all the related GPS code from Java, JNI to C source code, and know how the GPS works on Android from the top to the bottom in these two weeks.

My implementation is based on GPS Library in HTC-HD2 Android Libraries. (Thanks to dan1j3l.)

New Features:

Show the number of satellites before getting a location fix.

Show or hide the GPS icon in the status bar immediately when you start or stop a GPS app.

Support the leap seconds. (Thanks to arne182 for figuring it out.)

Modify the Accuracy (i.e. Error in meter) to be more reasonable. (See Todo list below.)

Add AGPS interface. (Won't see "no AGPS interface in agps_data_conn_open" in logcat now.)

Add the missing functions to receive the NTP, XTRA, and SUPL settings from gps.conf.

Todo List:

Add AGPS support.

Need to send settings of gps.conf from libgps.so to the GPS chip via RPC to complete the AGPS implementation.

It's harder than adding the AGPS interface.

Fix the Accuracy.

Position Accuracy = Dilution Of Precision (DOP) * Measurement Precision.

We only get the DOP value, and I assume Measurement Precision is 10 in version 1.0 release.

Fix the SNR (Signal to noise ratio) value.

Know issues:

With the new libgps.so, the GPS location lock time still depends on your geographical location and the weather due to lack of AGPS support.

Accuracy value is not correct.

SNR value is not correct.

You tell me.

Downloads:

GB234_GpsLocationProvider_JNI_fix_update.zip (For AOSP only.)

Change GpsLocationProvider JNI code from android-2.3.4_r1 to a new commit: Clean up HAL initialization/cleanup sequence.

If you're using AOSP ROMs, e.g. my NexusHD2-Gingerbread V2.7 (Android 2.3.4), you can flash this file as well.

If you're using CM7 ROMs, ask your ROM devs if this commit is already patched or not. (This zip file should be not compatible with CM7.)

If you're using Sense ROMs, just skip it. (This zip file should be not compatible with Sense.)

If you're using MIUI ROMs, no idea. (This zip file should be not compatible with MIUI.)

Please test and report. Remember to backup your ROM first.

GPS_Libraries_v1.0_for_HD2_Gingerbread_update.zip (It should work for all kinds of ROMs. Please test and report.)

You can install GPS Status & Toolbox or GPS TEST to test the new libs.

Credits: the XDAndroid Project, dan1j3l, rmcc, tytung, arne182, etc.>>

New Features:

* Show the number of satellites before getting a location fix.

* Show or hide the GPS symbol in the status bar instantly when you start or stop a GPS app.

* Support the leap seconds. (Thanks to arne182.)

* Modify the Accuracy (i.e. Error in meter) to be more reasonable.

* Add AGPS interface. (Won't see "no AGPS interface in agps_data_conn_open" in logcat now.)

* Add the missing functions to receive the NTP, XTRA, and SUPL settings from gps.conf.

* Add AGPS implementation including injecting AGPS data (xtra.bin) and NTP time into the gpsOne engine.

* Hide Fix/Sats info and make the GPS symbol in the status bar flashing when you go to basement or tunnel.

* Show DOP/HDOP/VDOP values in GPS Status.

* Show Altitude above Geoid (i.e. mean sea level) and Geoid height. (You will see both of them in GPS Status. The value within parentheses is Geoid height.)

* Show correct SNR (Signal to noise ratio) value.

* Activate the AGPS data injection. (You can get a cold lock very quickly due to the working AGPS.) (Thanks to qwerty_7564.)

Known issues:

* Accuracy value is for reference only.

o Position Accuracy (meter) = HDOP (unitless) * Measurement Precision (meter). (Please confirm whether this formula is correct.)

o We only get the correct HDOP value, and we assume the value of Measurement Precision, and then do a post calculation to get Accuracy. So don't trust it completely.

* Some ROMs are not compatible with NMEA version of libgps.so.

o Those ROMs don't set the correct permission to /dev/smd27, so libgps.so cannot read NMEA sentences from it.

o The solution is to flash GPS_NMEA_permission_update.zip for correcting the permission after booting.

* Some ROMs suffer from the "GPS off-and-on" bug.

o Those ROMs can shutdown the gpsOne engine properly when turning off GPS setting using gps_cleanup(), but they cannot restart the gpsOne engine again because gps_init() is never called when turning GPS setting on after turning it off.

o It's a Gingerbread bug which is fixed by applying this commit from the source code.

o If you cannot modify the source code, the workaround is to set/add GPS1_CLEANUP_ENABLED=0 into gps.conf to avoid doing full cleanup.

Downloads:

They should work for all kinds of ROMs, including Gingerbread and Froyo. Please test and report back.

We can get GPS related data from two sources, including NMEA sentences and RPC callback function.

* NMEA version: Show more info but may have random hot reboot issues.

o Show DOP/HDOP/VDOP values in GPS Status.

o Show Altitude above Geoid (i.e. mean sea level) and Geoid height. (You will see both of them in GPS Status. The value within parentheses is Geoid height.)

o Show correct SNR (Signal to noise ratio) value.