Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b74e744 authored by Jay Sullivan's avatar Jay Sullivan Committed by Android (Google) Code Review
Browse files

Merge "Add skeleton AppOpsCheckingServiceCompatImpl"

parents a1160c96 ce8d99fb
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -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;
+6 −5
Original line number Diff line number Diff line
@@ -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);
}
+1 −1
Original line number Diff line number Diff line
@@ -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;
+144 −0
Original line number Diff line number Diff line
/*
 * 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
    }
}