summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Xin Li <delphij@google.com> 2022-07-11 21:47:43 -0700
committer Xin Li <delphij@google.com> 2022-07-11 21:47:43 -0700
commit7a98cdd35e9ebac79511c624af2a249b5a6fd3c2 (patch)
tree4d10965508b409e2d28c0aa7588891d5e295ed4b
parent49d4f47866388da026cd28a5b459563580cb8479 (diff)
parenta7efb0cdb8fe70f6b135b861925a720c28405da4 (diff)
DO NOT MERGE - Merge TP1A.220624.013
Merged-In: Ifc431de68a5ea38952bfe21bb01f70082d4ed58f Change-Id: I7a7673dd652e9fb33638b3cd7a42c8455cb7160e
-rw-r--r--PermissionController/src/com/android/permissioncontroller/hibernation/HibernationPolicy.kt16
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(