init: Modify time_daemon to allow settimeofday() fallback
init: Modify time_daemon to allow settimeofday() fallback

The legacy time_daemon binary relied on the old Android alarm dri-
ver for setting RTC at bootup. Once /dev/alarm support was removed
we found that time cannot be restored properly, unless a data con-
nection was available for NTP sync.

However, the blob already has a fallback mechanism that relies on
settimeofday(), except that it could never work properly. While
time_daemon is started under UID/GID of root, it immediately drops
to system/net_raw, which is required for subsequent socket commu-
ications (e.g., QMI, modem, etc).

The issue was that any UID transition from root triggers the remo-
val of all thread capabilities, including CAP_SYS_TIME, required
for settimeofday() or other RTC adjustments. Thus, time_daemon was
edited to skip the internal set[gu]id() calls altoghether, in order
to use the new capabilities mechanism introduced with Oreo init.

Change-Id: I8a0e220b724234c26b99a09b7f54af7996129d67
Signed-off-by: D. Andrei Măceș <8dc7c09356db0b1762fb140617d7375c0a5a4131@unlegacy-android.org>

maruos/android_device_lge_hammerhead,maruos/android_device_lge_hammerhead,maruos/android_device_lge_hammerhead,maruos/android_device_lge_hammerhead