1#ifndef ANDROID_DVR_TRUSTED_UIDS_H_
2#define ANDROID_DVR_TRUSTED_UIDS_H_
3
4#include <sys/types.h>
5
6namespace android {
7namespace dvr {
8
9/**
10 * Tells if a provided UID can be trusted to access restricted VR APIs.
11 *
12 * UID trust is based on the android.permission.RESTRICTED_VR_ACCESS permission.
13 * AID_SYSTEM and AID_ROOT are automatically trusted by Android.
14 *
15 * UIDs are guaranteed not to be reused until the next reboot even in case
16 * of package reinstall. For performance reasons this method caches results by
17 * default, as otherwise every check would trigger a Java call.
18 *
19 * This function is thread-safe.
20 *
21 * @param uid The uid to check.
22 * @param use_cache If true any cached result for the provided uid will be
23 *     reused. If false this call will reach the Application Manager Service
24 *     in Java to get updated values. Any updates will be stored in the cache.
25 * @return true if the uid is trusted, false if not or if the VR Manager Service
26 *         could not be reached to verify the uid.
27 */
28bool IsTrustedUid(uid_t uid, bool use_cache = true);
29
30}  // namespace dvr
31}  // namespace android
32
33#endif  // ANDROID_DVR_TRUSTED_UIDS_H_
34