I've been following emerging dual-frequency GNSS capabilities in Android devices over the last few months (for the current state of the industry see https://medium.com/@sjbarbeau/dual-frequency-gnss-on-android-devices-152b8826e1c).
The Xiaomi Mi 8 (launched May 31st) appears to be the first Android phone to supports dual frequency GNSS, supporting L1/L5 for GPS and E1/E5 for Galileo, as well as QZSS.
However, based on user screenshots of GPSTest and GnssLogger (see https://forum.xda-developers.com/galaxy-s9/help/gps-receiver-exynos-model-t3748641/page18, and also attached) it appears that the Xiaomi Mi 8 is populating carrier frequency information for the GnssMeasurement.getCarrierFrequencyHz() method:
Gets the carrier frequency of the signal tracked. For example it can be the GPS central frequency for L1 = 1575.45 MHz, or L2 = 1227.60 MHz, L5 = 1176.45 MHz, varying GLO channels, etc. If the field is not set, it is the primary common use central frequency, e.g. L1 = 1575.45 MHz for GPS. For an L1, L5 receiver tracking a satellite on L1 and L5 at the same time, two measurements will be reported for this same satellite, in one all the values related to L1 will be filled, and in the other all of the values related to L5 will be filled.
It seems to me, then, that if Xiaomi is returning multiple satellites in GnssStatus that have the same constellation and svid, getCarrierFrequencyHz() MUST be set - otherwise, it implies that multiple signals on the L1 (primary) frequency are being tracked from the same satellite, which should never happen.
I went digging into the Android CTS to see if there were any test cases for this, and from GnssStatusTest it looks like there aren't: