[Touch CDMA Android Development] polyrhythmic:
Perhaps the problems I was having before were build-related. I got a solid GPS lock just now, and GPS Test works again. "GPS Status" app crashes on startup, I think it can't handle the lack of a compass. I also get errors about once a second like this:

03-02 15:10:57.808 I/ActivityManager( 1455): Starting activity: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.chartcross.gpstest/.GPSTest bnds=[0,153][240,201] }
03-02 15:10:57.988 I/ActivityManager( 1455): Start proc com.chartcross.gpstest for activity com.chartcross.gpstest/.GPSTest: pid=2036 uid=10051 gids={}
03-02 15:10:58.848 W/InputManagerService( 1455): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@443bc6c0
03-02 15:10:59.428 D/ ( 2036): unable to unlink '/data/data/com.chartcross.gpstest/shared_prefs/com.chartcross.gpstest_preferences.xml.bak': No such file or directory (errno=2)
03-02 15:10:59.738 D/dalvikvm( 2036): GC freed 1900 objects / 243520 bytes in 116ms
03-02 15:11:00.028 D/SensorManager( 2036): found sensor: AK8976A 3-axis Accelerometer, handle=0
03-02 15:11:00.048 D/SensorManager( 2036): found sensor: AK8976A 3-axis Magnetic field sensor, handle=1
03-02 15:11:00.068 D/SensorManager( 2036): found sensor: AK8976A Orientation sensor, handle=2
03-02 15:11:00.078 D/SensorManager( 2036): found sensor: AK8976A Temperature sensor, handle=3
03-02 15:11:00.159 D/LocationManager( 2036): Constructor: service = android.location.ILocationManager$Stub$Proxy@43fff750
03-02 15:11:00.218 D/GpsLocationProvider( 1455): setMinTime 0
03-02 15:11:00.228 D/GpsLocationProvider( 1455): startNavigating
03-02 15:11:00.259 D/GpsLocationProvider( 1455): Acquiring wakelock
03-02 15:11:00.278 E/Sensors ( 1455): Couldn't open /dev/akm8976_aot (No such file or directory)
03-02 15:11:00.538 E/Sensors ( 1455): Couldn't find or open 'compass' driver (Not a typewriter)
03-02 15:11:00.548 E/SensorManager( 2036): mDataChannel == NULL, exiting
03-02 15:11:00.778 I/ActivityManager( 1455): Displayed activity com.chartcross.gpstest/.GPSTest: 2816 ms (total 2816 ms)
03-02 15:11:01.359 E/JavaBinder( 2036): *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
03-02 15:11:01.359 E/JavaBinder( 2036): java.lang.ArrayIndexOutOfBoundsException
03-02 15:11:01.359 E/JavaBinder( 2036):	at android.location.GpsStatus.setStatus(GpsStatus.java:153)
03-02 15:11:01.359 E/JavaBinder( 2036):	at android.location.LocationManager$GpsStatusListenerTransport.onSvStatusChanged(LocationManager.java:1181)
03-02 15:11:01.359 E/JavaBinder( 2036):	at android.location.IGpsStatusListener$Stub.onTransact(IGpsStatusListener.java:87)
03-02 15:11:01.359 E/JavaBinder( 2036):	at android.os.Binder.execTransact(Binder.java:287)
03-02 15:11:01.359 E/JavaBinder( 2036):	at dalvik.system.NativeStart.run(Native Method)
03-02 15:11:03.288 E/JavaBinder( 2036): *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
03-02 15:11:03.288 E/JavaBinder( 2036): java.lang.ArrayIndexOutOfBoundsException
03-02 15:11:03.288 E/JavaBinder( 2036):	at android.location.GpsStatus.setStatus(GpsStatus.java:153)
03-02 15:11:03.288 E/JavaBinder( 2036):	at android.location.LocationManager$GpsStatusListenerTransport.onSvStatusChanged(LocationManager.java:1181)
03-02 15:11:03.288 E/JavaBinder( 2036):	at android.location.IGpsStatusListener$Stub.onTransact(IGpsStatusListener.java:87)
03-02 15:11:03.288 E/JavaBinder( 2036):	at android.os.Binder.execTransact(Binder.java:287)
03-02 15:11:03.288 E/JavaBinder( 2036):	at dalvik.system.NativeStart.run(Native Method)
03-02 15:11:04.148 E/JavaBinder( 2036): *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
03-02 15:11:04.148 E/JavaBinder( 2036): java.lang.ArrayIndexOutOfBoundsException
03-02 15:11:04.148 E/JavaBinder( 2036):	at android.location.GpsStatus.setStatus(GpsStatus.java:153)
03-02 15:11:04.148 E/JavaBinder( 2036):	at android.location.LocationManager$GpsStatusListenerTransport.onSvStatusChanged(LocationManager.java:1181)
03-02 15:11:04.148 E/JavaBinder( 2036):	at android.location.IGpsStatusListener$Stub.onTransact(IGpsStatusListener.java:87)
03-02 15:11:04.148 E/JavaBinder( 2036):	at android.os.Binder.execTransact(Binder.java:287)
03-02 15:11:04.148 E/JavaBinder( 2036):	at dalvik.system.NativeStart.run(Native Method)
03-02 15:11:05.158 E/JavaBinder( 2036): *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
03-02 15:11:05.158 E/JavaBinder( 2036): java.lang.ArrayIndexOutOfBoundsException
03-02 15:11:05.158 E/JavaBinder( 2036):	at android.location.GpsStatus.setStatus(GpsStatus.java:153)
03-02 15:11:05.158 E/JavaBinder( 2036):	at android.location.LocationManager$GpsStatusListenerTransport.onSvStatusChanged(LocationManager.java:1181)
03-02 15:11:05.158 E/JavaBinder( 2036):	at android.location.IGpsStatusListener$Stub.onTransact(IGpsStatusListener.java:87)
03-02 15:11:05.158 E/JavaBinder( 2036):	at android.os.Binder.execTransact(Binder.java:287)
03-02 15:11:05.158 E/JavaBinder( 2036):	at dalvik.system.NativeStart.run(Native Method)
03-02 15:11:05.858 D/skia ( 1704): purging 59K from font cache [7 entries]
03-02 15:11:06.028 D/dalvikvm( 1704): GC freed 1575 objects / 90200 bytes in 167ms
03-02 15:11:06.158 E/JavaBinder( 2036): *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
03-02 15:11:06.158 E/JavaBinder( 2036): java.lang.ArrayIndexOutOfBoundsException
03-02 15:11:06.158 E/JavaBinder( 2036):	at android.location.GpsStatus.setStatus(GpsStatus.java:153)
03-02 15:11:06.158 E/JavaBinder( 2036):	at android.location.LocationManager$GpsStatusListenerTransport.onSvStatusChanged(LocationManager.java:1181)
03-02 15:11:06.158 E/JavaBinder( 2036):	at android.location.IGpsStatusListener$Stub.onTransact(IGpsStatusListener.java:87)
03-02 15:11:06.158 E/JavaBinder( 2036):	at android.os.Binder.execTransact(Binder.java:287)
03-02 15:11:06.158 E/JavaBinder( 2036):	at dalvik.system.NativeStart.run(Native Method)

As you can see, starts up fine and runs fine despite the repeating errors -- but GPS Status gives the same errors and it won't load at all. This isn't directly related to the GPS driver, but would there be any use for a dummy compass driver to prevent those errors?

EDIT: Just noticed the screenshot time is off, right now the time is jumping back and forth between 15:29 and 11:04 -- it's 3:29 PST so I suppose the 11:04 is just a bad reading. I checked dmesg and the time it gets from the driver is consistent... now the app has stopped jumping and is fixed at the correct time. No worries.