[Galaxy S III Android Development] css2020:
First of all, thank you so much for your untiring effort on porting the kernel to the S3, amazing!

I installed the 20th September build and have been running it for a couple of days now, what I found so far:

* performance is good - I do see some lags, especially when waking up or switching apps (I think I haven't seen this with the February build)

* battery usage is OK (I switched to CPU governor zzmove with profile 2 "ybat"), though more than in LOS 14.1

* I haven't seen black screens any more (used to happen every once in a while with the February build, especially when waking up), screen does stay black for a bit (with status bar), then is redrawn

* I did experience some reboots, but not very frequent (still have to look at the logs)

* recording video now works (used to crash for me in the February build)

* camera settings still crashes (well, that's no big issue)

* compass calibration only gets to "medium" - right now the calibration stays at "medium" and the compass slowly turns to the correct heading, but the last couple of days the calibration used to reset to "unreliable" and I usually had offsets ranging from 90 to 180 degrees (the same as with the February build)

* GPS fix now is very fast (first fix usually in a couple of seconds, great!)

But my main problem with this LOS 16.0 build, that the GPS signal is lost after a while and won't come back, is still there. So while it's great for getting a quick location while e.g. hiking, but not usable for driving. After a while (I think it happens when a GLONASS satellite comes into view, sending a date in 2020 vs. GPS satellites where the date is determined as 2000), I see the GPS week rollover problem again in the logs (note the PRN 65 of the last satellite, which indicates GLONASS):

10-03 16:04:38.169 3084 3478 D libgps-shim: shim_sv_status_cb: svinfo[0] - size=20 prn=9 snr=21.000000 elevation=85.000000 azimuth=307.0
00000
10-03 16:04:38.169 3084 3478 D libgps-shim: shim_sv_status_cb: svinfo[1] - size=20 prn=6 snr=20.000000 elevation=56.000000 azimuth=248.0
00000
10-03 16:04:38.169 3084 3478 D libgps-shim: shim_sv_status_cb: svinfo[2] - size=20 prn=7 snr=13.000000 elevation=37.000000 azimuth=177.0
00000
10-03 16:04:38.169 3084 3478 D libgps-shim: shim_sv_status_cb: svinfo[3] - size=20 prn=2 snr=34.000000 elevation=32.000000 azimuth=307.0
00000
10-03 16:04:38.169 3084 3478 D libgps-shim: shim_sv_status_cb: svinfo[4] - size=20 prn=26 snr=16.000000 elevation=10.000000 azimuth=42.0
00000
10-03 16:04:38.169 3084 3478 D libgps-shim: shim_sv_status_cb: svinfo[5] - size=20 prn=65 snr=33.000000 elevation=1.000000 azimuth=0.000
000
10-03 16:04:39.193 9716 9716 E gpslogd : ASSERT in /tmp/12075037/customers/Asustek/Tabletandroid/../../../proprietary/deliverables/android/gps_interface/../gpsd/common/GlGpsdInterface.cpp:878: GL_STOP_BAD_TIME

After that, the GPS daemon fails to start again, as the previous request seems to be still active:

10-03 16:04:39.858 11146 11146 E gpslogd : ASSERT in /tmp/12075037/customers/Asustek/Tabletandroid/../../../proprietary/deliverables/android/gps_interface/../gpsd/common/GpsInterfaceStateRunningRequest.cpp:39: ASSERT(0)

This restart attempt happens every 5 s, until I exit or hide the user application (e.g. GPS Test), then the request seems to be canceled and when I open the user application again, the GPS signals are shown and the fix is successful again.

I think there might have been a change in the Android Location Services framework somewhere, as in LOS 14.1, the first assert message is also shown, terminating the GPS daemon (glgps), but after that, I gets restarted successfully (i.e. the request from the location services has been canceled), and works again without exiting the user application. I even have the feeling the GPS daemon removes the problematic satellites somehow, as in the beginning on LOS 14.1, this happens every couple of minutes, but after a while, the GPS is stable without interruptions.

Note: in order to enable logging for glgps, move /vendor/etc/gps.xml to /etc, add a line

Log="LOGCAT"

in the <hal> section and change the log level in the <gll> section to

LogPriMask="LOG_DEBUG"

.