Yes, apparently some devices do indeed disable some GNSS and/or frequencies under certain conditions. You can override this behavior manually via enabling the "Force full GNSS measurements" setting in the Android system Developer Options on Android 9 and higher. If you're running Android 12 or higher, GPSTest now forces this behavior by default using a new Android system API that was added in Android 12.
>If true, GNSS chipset switches off duty cycling. In such a mode, no clock discontinuities are expected, and when supported, carrier phase should be continuous in good signal conditions. All non-blocklisted, healthy constellations, satellites and frequency bands that the chipset supports must be reported in this mode. The GNSS chipset will consume more power in full tracking mode than in duty cycling mode. If false, GNSS chipset optimizes power via duty cycling, constellations and frequency limits, etc.
>
>Full GNSS tracking mode affects GnssMeasurement and other GNSS functionalities including GNSS location.
>
>Full tracking requests always override non-full tracking requests. If any full tracking request occurs, all listeners on the device will receive full tracking GNSS measurements.
Meaning that if you don't enable this setting, duty-cycling is used and clock
discontinuities occur, healthy constellations and frequency bands may not be used, etc.
You can read more about this setting and it's effects in my post here:
I'd still report any "abnormal" looking behavior to OEMs - there have been a number of bugs in devices where the "U" flag in the data from the Android APIs for satellites used in the fix isn't being set correctly. In those cases, the underlying location engine is indeed using more satellites than the "U" flag in the data indicates. But only the OEM could answer this for sure.
Also, are the OnePlus 5 and 6 here running official OS builds from the OEM? If not that can cause compatibility issues between the OS and underlying GNSS drivers and data shown in GPSTest may be unreliable.
Sean