searches
For Android:
https://source.android.com/docs/core/connect/time
From Android 12, device manufacturers can change the core/res/res/values/config.xml configuration file to specify which time origins to include in automatic time detection, and the priority in which time_detector considers these origins.
For devices running Android 11 or lower, origin priority is hardcoded to ["telephony", "network"], meaning that telephony suggestions are prioritized above network suggestions.
The default AOSP configuration is as follows:
<!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list
take precedence over lower ones.
See com.android.server.timedetector.TimeDetectorStrategy for available sources. -->
<string-array name="config_autoTimeSourcesPriority">
<item>network</item>
<item>telephony</item>
</string-array>
In Android 12, network and telephony suggestions are configured as origins to use by default. Network time suggestions are prioritized above telephony time suggestions. Device manufacturers can change the order of the origins to revert to the behavior in Android 11 or lower, where telephony is given a higher priority.
By default, if the highest priority valid suggestion matches the device's current system clock time to within a couple of seconds, the device time won't be changed. This is to avoid creating work for installed apps that listen to the ACTION_TIME_CHANGED intent.
The allowed origin values are:
- Network
- Telephony
- GNSS
- External
"Network" will presumably be NTP, "Telephony" the cell tower time, "GNSS" GPS, and I dunno what "External" is
maybe there's some way to have a USB-connected time device or something.