Merge "Add skeleton AppOpsCheckingServiceCompatImpl"
This commit is contained in:
@@ -218,7 +218,7 @@ public class AppOpsCheckingServiceImpl implements AppOpsCheckingServiceInterface
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean arePackageModesDefault(String packageMode, @UserIdInt int userId) {
|
||||
public boolean arePackageModesDefault(@NonNull String packageMode, @UserIdInt int userId) {
|
||||
synchronized (mLock) {
|
||||
ArrayMap<String, SparseIntArray> packageModes = mUserPackageModes.get(userId, null);
|
||||
if (packageModes == null) {
|
||||
@@ -490,15 +490,16 @@ public class AppOpsCheckingServiceImpl implements AppOpsCheckingServiceInterface
|
||||
}
|
||||
|
||||
@Override
|
||||
public SparseBooleanArray evalForegroundUidOps(int uid, SparseBooleanArray foregroundOps) {
|
||||
public SparseBooleanArray evalForegroundUidOps(int uid,
|
||||
@Nullable SparseBooleanArray foregroundOps) {
|
||||
synchronized (mLock) {
|
||||
return evalForegroundOps(mUidModes.get(uid), foregroundOps);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SparseBooleanArray evalForegroundPackageOps(String packageName,
|
||||
SparseBooleanArray foregroundOps, @UserIdInt int userId) {
|
||||
public SparseBooleanArray evalForegroundPackageOps(@NonNull String packageName,
|
||||
@Nullable SparseBooleanArray foregroundOps, @UserIdInt int userId) {
|
||||
synchronized (mLock) {
|
||||
ArrayMap<String, SparseIntArray> packageModes = mUserPackageModes.get(userId, null);
|
||||
return evalForegroundOps(packageModes == null ? null : packageModes.get(packageName),
|
||||
@@ -537,8 +538,8 @@ public class AppOpsCheckingServiceImpl implements AppOpsCheckingServiceInterface
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean dumpListeners(int dumpOp, int dumpUid, String dumpPackage,
|
||||
PrintWriter printWriter) {
|
||||
public boolean dumpListeners(int dumpOp, int dumpUid, @Nullable String dumpPackage,
|
||||
@NonNull PrintWriter printWriter) {
|
||||
boolean needSep = false;
|
||||
if (mOpModeWatchers.size() > 0) {
|
||||
boolean printedHeader = false;
|
||||
|
||||
@@ -103,7 +103,7 @@ public interface AppOpsCheckingServiceInterface {
|
||||
* @param packageName package name.
|
||||
* @param userId user id associated with the package.
|
||||
*/
|
||||
boolean arePackageModesDefault(String packageName, @UserIdInt int userId);
|
||||
boolean arePackageModesDefault(@NonNull String packageName, @UserIdInt int userId);
|
||||
|
||||
/**
|
||||
* Stop tracking app-op modes for all uid and packages.
|
||||
@@ -184,7 +184,7 @@ public interface AppOpsCheckingServiceInterface {
|
||||
* @param foregroundOps boolean array where app-ops that have MODE_FOREGROUND are marked true.
|
||||
* @return foregroundOps.
|
||||
*/
|
||||
SparseBooleanArray evalForegroundUidOps(int uid, SparseBooleanArray foregroundOps);
|
||||
SparseBooleanArray evalForegroundUidOps(int uid, @Nullable SparseBooleanArray foregroundOps);
|
||||
|
||||
/**
|
||||
* Go over the list of app-ops for the package name and mark app-ops with MODE_FOREGROUND in
|
||||
@@ -194,8 +194,8 @@ public interface AppOpsCheckingServiceInterface {
|
||||
* @param userId user id associated with the package.
|
||||
* @return foregroundOps.
|
||||
*/
|
||||
SparseBooleanArray evalForegroundPackageOps(String packageName,
|
||||
SparseBooleanArray foregroundOps, @UserIdInt int userId);
|
||||
SparseBooleanArray evalForegroundPackageOps(@NonNull String packageName,
|
||||
@Nullable SparseBooleanArray foregroundOps, @UserIdInt int userId);
|
||||
|
||||
/**
|
||||
* Dump op mode and package mode listeners and their details.
|
||||
@@ -205,5 +205,6 @@ public interface AppOpsCheckingServiceInterface {
|
||||
* @param dumpPackage if not null and if dumpOp is -1, dumps watchers for the package name.
|
||||
* @param printWriter writer to dump to.
|
||||
*/
|
||||
boolean dumpListeners(int dumpOp, int dumpUid, String dumpPackage, PrintWriter printWriter);
|
||||
boolean dumpListeners(int dumpOp, int dumpUid, @Nullable String dumpPackage,
|
||||
@NonNull PrintWriter printWriter);
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import android.os.RemoteException;
|
||||
* Listener for mode changes, encapsulates methods that should be triggered in the event of a mode
|
||||
* change.
|
||||
*/
|
||||
abstract class OnOpModeChangedListener {
|
||||
public abstract class OnOpModeChangedListener {
|
||||
|
||||
// Constant meaning that any UID should be matched when dispatching callbacks
|
||||
private static final int UID_ANY = -2;
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
/*
|
||||
* Copyright (C) 2022 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.server.permission.access.appop
|
||||
|
||||
import android.util.ArraySet
|
||||
import android.util.SparseBooleanArray
|
||||
import android.util.SparseIntArray
|
||||
import com.android.server.appop.AppOpsCheckingServiceInterface
|
||||
import com.android.server.appop.OnOpModeChangedListener
|
||||
import com.android.server.permission.access.AccessCheckingService
|
||||
import java.io.PrintWriter
|
||||
|
||||
class AppOpsCheckingServiceCompatImpl(
|
||||
private val accessCheckingService: AccessCheckingService
|
||||
) : AppOpsCheckingServiceInterface {
|
||||
override fun getNonDefaultUidModes(uid: Int): SparseIntArray {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun getUidMode(uid: Int, op: Int): Int {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun setUidMode(uid: Int, op: Int, mode: Int): Boolean {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun getPackageMode(packageName: String, op: Int, userId: Int): Int {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun setPackageMode(packageName: String, op: Int, mode: Int, userId: Int) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun removePackage(packageName: String, userId: Int): Boolean {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun removeUid(uid: Int) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun areUidModesDefault(uid: Int): Boolean {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun arePackageModesDefault(packageName: String, userId: Int): Boolean {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun clearAllModes() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun startWatchingOpModeChanged(changedListener: OnOpModeChangedListener, op: Int) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun startWatchingPackageModeChanged(
|
||||
changedListener: OnOpModeChangedListener,
|
||||
packageName: String
|
||||
) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun removeListener(changedListener: OnOpModeChangedListener) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun getOpModeChangedListeners(op: Int): ArraySet<OnOpModeChangedListener> {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun getPackageModeChangedListeners(
|
||||
packageName: String
|
||||
): ArraySet<OnOpModeChangedListener> {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun notifyWatchersOfChange(op: Int, uid: Int) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun notifyOpChanged(
|
||||
changedListener: OnOpModeChangedListener,
|
||||
op: Int,
|
||||
uid: Int,
|
||||
packageName: String?
|
||||
) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun notifyOpChangedForAllPkgsInUid(
|
||||
op: Int,
|
||||
uid: Int,
|
||||
onlyForeground: Boolean,
|
||||
callbackToIgnore: OnOpModeChangedListener?
|
||||
) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun evalForegroundUidOps(
|
||||
uid: Int,
|
||||
foregroundOps: SparseBooleanArray?
|
||||
): SparseBooleanArray {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun evalForegroundPackageOps(
|
||||
packageName: String,
|
||||
foregroundOps: SparseBooleanArray?,
|
||||
userId: Int
|
||||
): SparseBooleanArray {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun dumpListeners(
|
||||
dumpOp: Int,
|
||||
dumpUid: Int,
|
||||
dumpPackage: String?,
|
||||
printWriter: PrintWriter
|
||||
): Boolean {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val LOG_TAG = AppOpsCheckingServiceCompatImpl::class.java.simpleName
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user