diff options
author | 2022-06-23 22:38:09 +0100 | |
---|---|---|
committer | 2022-06-28 01:27:10 +0000 | |
commit | d0293ae7cbe0ac53a7ef7da89a98610167c7b71e (patch) | |
tree | dbf77ffdfa1c422c7e133fd48a2449b2e4e97f08 | |
parent | 5f5b9c8f0440680393ed9ebb33a206245fda83ad (diff) |
If the device is managed do not handle hibernation
Bug: 236283038
Test: Manual testing following go/hibernation-local-testing
Change-Id: Ifc431de68a5ea38952bfe21bb01f70082d4ed58f
(cherry picked from commit 0abdd1232c303a95edfdd19f55b92e0397967e74)
Merged-In: Ifc431de68a5ea38952bfe21bb01f70082d4ed58f
-rw-r--r-- | PermissionController/src/com/android/permissioncontroller/hibernation/HibernationPolicy.kt | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/hibernation/HibernationPolicy.kt b/PermissionController/src/com/android/permissioncontroller/hibernation/HibernationPolicy.kt index 26856385d..64481862f 100644 --- a/PermissionController/src/com/android/permissioncontroller/hibernation/HibernationPolicy.kt +++ b/PermissionController/src/com/android/permissioncontroller/hibernation/HibernationPolicy.kt @@ -51,6 +51,7 @@ import android.os.UserManager import android.printservice.PrintService import android.provider.DeviceConfig import android.provider.DeviceConfig.NAMESPACE_APP_HIBERNATION +import android.provider.Settings import android.service.autofill.AutofillService import android.service.dreams.DreamService import android.service.notification.NotificationListenerService @@ -391,6 +392,20 @@ suspend fun isPackageHibernationExemptBySystem( } return true } + + val context = PermissionControllerApplication.get() + if (context.getSystemService(DevicePolicyManager::class.java)!!.isDeviceManaged) { + // TODO(b/237065504): Use proper system API to check if the device is financed in U. + val isFinancedDevice = Settings.Global.getInt( + context.contentResolver, "device_owner_type", 0) == 1 + if (!isFinancedDevice) { + if (DEBUG_HIBERNATION_POLICY) { + DumpableLog.i(LOG_TAG, "Exempted ${pkg.packageName} - device is managed") + } + return true + } + } + val carrierPrivilegedStatus = CarrierPrivilegedStatusLiveData[pkg.packageName] .getInitializedValue() if (carrierPrivilegedStatus != CARRIER_PRIVILEGE_STATUS_HAS_ACCESS && @@ -417,7 +432,6 @@ suspend fun isPackageHibernationExemptBySystem( return true } - val context = PermissionControllerApplication.get() if (SdkLevel.isAtLeastS()) { val hasInstallOrUpdatePermissions = context.checkPermission( |