From 728fc34299881cf9d0cffd84131f87043d66178f Mon Sep 17 00:00:00 2001 From: Evan Severson Date: Thu, 26 Jan 2023 15:22:33 -0800 Subject: Split appops.xml into two files Currently AppOpsService persists appop state into a single "appops.xml" file. Instead, split this file into two: 1. "appops.xml": stores appop state 2. "appops_accesses.xml": stores recent appop accesses This allows us to split the responsibility of maintaining different types of state across different services: - app-op state: maintained by AppOpsServiceInterface (where the implementation can vary) - app-op accesses: maintained by AppOpsService For transition purposes, the app-op history will be read from the original "appops.xml" file before the new file exists. (Also, bring back the unrelated AppOpsCheckingServiceTracingDecorator which was accidentally nuked in a recent change.) Test: atest AppOpsUpgradeTest CtsAppOpsTestCases Bug: 266163878 Change-Id: I1ffc6375abaf8c62f91e7aefe0b76923f437ee0e --- .../server/permission/access/appop/AppOpService.kt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'services/permission/java') diff --git a/services/permission/java/com/android/server/permission/access/appop/AppOpService.kt b/services/permission/java/com/android/server/permission/access/appop/AppOpService.kt index a26b2ac6ec20..af85ebada076 100644 --- a/services/permission/java/com/android/server/permission/access/appop/AppOpService.kt +++ b/services/permission/java/com/android/server/permission/access/appop/AppOpService.kt @@ -27,6 +27,7 @@ import android.os.RemoteException import android.os.UserHandle import android.util.SparseBooleanArray import android.util.SparseIntArray +import com.android.internal.annotations.VisibleForTesting import com.android.internal.util.ArrayUtils import com.android.internal.util.function.pooled.PooledLambda import com.android.server.appop.AppOpsCheckingServiceInterface @@ -67,6 +68,24 @@ class AppOpService( } } + @VisibleForTesting + override fun writeState() { + // TODO Not yet implemented + } + + override fun readState() { + // TODO Not yet implemented + } + + @VisibleForTesting + override fun shutdown() { + // TODO Not yet implemented + } + + override fun systemReady() { + // TODO Not yet implemented + } + override fun getNonDefaultUidModes(uid: Int): SparseIntArray { return opNameMapToOpIntMap(getUidModes(uid)) } -- cgit v1.2.3-59-g8ed1b