I wrote a script and created a CWM update-flashable to perform a one-line install of the CM7 GPS Fix, documented here by jwleonhart. There were some complaints about jwleonhart's install instructions; it's a bit cumbersome and not trouble-free, especially for noobs. Please read the original thread for detailed instructions on what my script does; the script exactly does jwleonhart's instructions.
NOTE: EVERY VERSION OF THIS FIX MAKES SUBTLE BUT IMPORTANT CHANGES THAT MAY IMPROVE OR DEPRESS YOUR GPS FUNCTIONALITY. UNTIL A TRUE GPS DRIVER DROPS FOR THE VIBRANT (which at this point seems very unlikely) ALL WE CAN DO IS HACK AND TWEAK. NEWER VERSIONS MAY WORK BETTER OR WORSE THAN OLDER ONES! PLEASE POST WITH YOUR EXPERIENCE USING THE VARIOUS VERSIONS OF THE FIX, AND PLEASE BE CONSTRUCTIVE/HELPFUL WITH YOUR FINDINGS!
There are three separate ways to install: CWM, CWM with no gpsd, and via shell script.
The easiest way to install the GPSFix files is to download and flash Vibrant_CM7_GPSFix_V1.4-CWM-signed.zip. All files will be copied over and read/execute permissions will be properly set.
NOTE: Flashable does NOT contain AngryGPS. There are some people who have better results without it, so I'll let you install that one on your own. You can find the APK at jwleonhart's CM7 Install Guide.
OPTIONAL: There's a no-gpsd version of the CWM flashable as well - if you want to use the gpsd from your current nightly, or mix and match. The GPS driver might get better in time, and who knows if down the line the gpsd bundled with the latest nightly is better than this one, pulled from Trigger Redux#13 (CM7 Nightly#54).
The script is available for users who want to customize their own GPS fix. It requires an extra reboot (since you can't just run the script after installing a new nightly), but you can easily add/remove files to the script to suit your own needs. Personally, I use the script to test new versions before they go into the CWM flashable.
Attached is the zip file with all the files and the shell script you need. Just extract the folder to your SD card; then in a terminal (ADB or terminal emulator with root), run these commands:
su # if you're not already dropped into superuser status cd /sdcard/GPSFix bash GPSFix.sh
For those interested, here's the contents of the script..
#!/system/xbin/bash FIXFILES="/system/etc/gps.conf /etc/init.d/90getgps_lto /system/vendor/bin/gpsd" REMOVEONLY="/data/gps/lto.dat /data/gps/lto2.dat /data/gps/svstatus.txt /data/gps/ltoStatus.txt /data/gps/secgps.conf /system/bin/agpsd" mount -o rw,remount /system echo "===================================================" echo "======Vibrant CM7 GPS Fix One-Command Install======" echo "=================by strictlyrude27=================" echo "" # Delete previous fix files echo "Deleting previous fix files..." for file in $FIXFILES $REMOVEONLY do if [ -f $file ]; then rm $file fi done # Copy new files and set permissions echo "Copying new files over..." for file in $FIXFILES do fname=$(basename $file) cp $fname $file chmod 0755 $file if [ $file == "/system/vendor/bin/gpsd" ]; then chgrp shell $file fi done echo "Rebooting device.. Enjoy GPS!" echo "Install AngryGPSmod.apk manually if you want to." echo "" reboot
jwleonhart - writing up the CM7 install guide
roffee - finding the original GPS Fix for CM7
jad3675 - providing original Long Term Orbital download script
PLEASE go to their threads and hit their Thanks button. They did all the heavy lifting, I just packaged up their findings and work into a simple-to-use flashable.
"If I have seen far, it is because I have stood on the shoulders of giants."
V1.5.1 -- renamed init-script to overwrite CM7's implementation of V3 of this fix -- now offering "newgpsd" variant - contains gpsd from latest CM7 nightly -- standard zip: faster locks, but more prone to randomly quitting working -- newgpsd variant: slower locks, but more resilient GPS indicator still needs testing V1.5 -- cleaned up script -- now keeping LTO data named lto2.dat (used to rename to lto.dat) -- lowering threshold for lto2 refresh to 3 days V1.4 (all variants) -- replaced lto.dat with lto2.dat - preliminary testing indicates survival after reboot and better TTFF -- now using us.pool.ntp.org for the time server - if you're not in the US, please adjust your gps.conf accordingly -- gps.conf tweaks - trading accuracy for TTFF for now.. V1.3.1 (all variants) --set permissions on downloaded lto.dat to 755 (was 644) - i couldn't get any birds in view before, now i can lock. give this a try if 1.3 doesn't work. V1.3 (all variants) --removed agpsd --added 90getgps_lto - will fetch latest long term orbit data on boot --hopefully these changes help get REPEAT locks faster - please let us know! V1.2CWM-nogpsd --same as V1.2CWM, but with no gpsd. This way you can use gpsd from the latest CM7 nightlies, or whatever nightly gpsd worked best for you. I will start collecting gpsd files and posting them for your convenience soon! V1.2CWM --created CWM flashable for your convenience! performs the EXACT SAME as the script, so if you've already run V1.2, no need to flash V1.2CWM. But, it could be useful if you tend to flash nightlies all the time. V1.2 --changed all file permissions to 0755 - not sure how reading .conf files worked if there wasn't any read permission. gets me a faster lock after applying the script. V1.1 --fixed typo - "chmod shell" should have been "chgrp" --removed \t, \n - was not being interpreted by shell correctly V1 --initial release