Capture system UIDs by value under a maximum
This allows for capturing all effective system UIDs rather than the
platform itself
Bug: 147368725
Test: manual
Change-Id: I8422a7d659ef19d4ff9fc44fafdf96b49eb165b1
Signed-off-by: Tom Bell <bellthomas@google.com>
diff --git a/common/device-side/device-info/src/com/android/compatibility/common/deviceinfo/PackageDeviceInfo.java b/common/device-side/device-info/src/com/android/compatibility/common/deviceinfo/PackageDeviceInfo.java
index 9eb97c5..8b1e28c 100644
--- a/common/device-side/device-info/src/com/android/compatibility/common/deviceinfo/PackageDeviceInfo.java
+++ b/common/device-side/device-info/src/com/android/compatibility/common/deviceinfo/PackageDeviceInfo.java
@@ -45,6 +45,7 @@
private static final String PERMISSION_PROTECTION = "protection_level";
private static final String PERMISSION_PROTECTION_FLAGS = "protection_level_flags";
+ private static final int SYS_UID_MAX = 10000;
private static final String HAS_SYSTEM_UID = "has_system_uid";
private static final String SHARES_INSTALL_PERMISSION = "shares_install_packages_permission";
@@ -53,7 +54,6 @@
@Override
protected void collectDeviceInfo(DeviceInfoStore store) throws Exception {
final PackageManager pm = getContext().getPackageManager();
- final ApplicationInfo system = pm.getApplicationInfo("android", 0);
final List<PackageInfo> allPackages = pm.getInstalledPackages(PackageManager.GET_PERMISSIONS);
@@ -92,7 +92,7 @@
store.addResult(MIN_SDK, appInfo.minSdkVersion);
store.addResult(TARGET_SDK, appInfo.targetSdkVersion);
- store.addResult(HAS_SYSTEM_UID, appInfo.uid == system.uid);
+ store.addResult(HAS_SYSTEM_UID, appInfo.uid < SYS_UID_MAX);
final boolean canInstall = sharesUidWithPackageHolding(pm, appInfo.uid, INSTALL_PACKAGES_PERMISSION);
store.addResult(SHARES_INSTALL_PERMISSION, canInstall);