summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-06-28 01:29:35 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-06-28 01:29:35 +0000
commita7efb0cdb8fe70f6b135b861925a720c28405da4 (patch)
treedbf77ffdfa1c422c7e133fd48a2449b2e4e97f08
parent5f5b9c8f0440680393ed9ebb33a206245fda83ad (diff)
parentd0293ae7cbe0ac53a7ef7da89a98610167c7b71e (diff)
downloadPermission-android13-s3-release.tar.gz
Change-Id: Ie4ceee309cb7dc06180cd6e4e8d285d1a8f04568
-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(