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

Commit 519e3d42 authored by Manjeet Rulhania's avatar Manjeet Rulhania Committed by Android (Google) Code Review
Browse files

Merge changes from topic "ups-cleanup" into main

* changes:
  clean up app ops legacy storage file
  Remove pre-ups permissions infrastructre code
parents 1f4b81ad 4ca6d6ba
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -86,7 +86,6 @@ import android.util.Slog;
import com.android.internal.R;
import com.android.internal.annotations.Immutable;
import com.android.internal.util.CollectionUtils;
import com.android.modules.utils.build.SdkLevel;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -189,13 +188,6 @@ public final class PermissionManager {
    @EnabledAfter(targetSdkVersion = S)
    public static final long CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS = 146211400;

    /**
     * Whether to use the new {@link com.android.server.permission.access.AccessCheckingService}.
     *
     * @hide
     */
    public static final boolean USE_ACCESS_CHECKING_SERVICE = SdkLevel.isAtLeastV();

    /**
     * The time to wait in between refreshing the exempted indicator role packages
     */
+4 −7
Original line number Diff line number Diff line
@@ -2411,8 +2411,7 @@ public class ActivityManagerService extends IActivityManager.Stub
        mAppErrors = injector.getAppErrors();
        mPackageWatchdog = null;
        mCrashRecoveryHelper = null;
        mAppOpsService = mInjector.getAppOpsService(null /* recentAccessesFile */,
            null /* storageFile */, null /* handler */);
        mAppOpsService = mInjector.getAppOpsService(null /* handler */);
        mBatteryStatsService = mInjector.getBatteryStatsService();
        mHandler = new MainHandler(handlerThread.getLooper());
        mHandlerThread = handlerThread;
@@ -2515,8 +2514,7 @@ public class ActivityManagerService extends IActivityManager.Stub
        mProcessStats = new ProcessStatsService(this, new File(systemDir, "procstats"));
        mAppOpsService = mInjector.getAppOpsService(new File(systemDir, "appops_accesses.xml"),
                new File(systemDir, "appops.xml"), mHandler);
        mAppOpsService = mInjector.getAppOpsService(mHandler);
        mUgmInternal = LocalServices.getService(UriGrantsManagerInternal.class);
@@ -18835,9 +18833,8 @@ public class ActivityManagerService extends IActivityManager.Stub
            return mContext;
        }
        public AppOpsService getAppOpsService(File recentAccessesFile, File storageFile,
                Handler handler) {
            return new AppOpsService(recentAccessesFile, storageFile, handler, getContext());
        public AppOpsService getAppOpsService(Handler handler) {
            return new AppOpsService(handler, getContext());
        }
        public Handler getUiHandler(ActivityManagerService service) {
+0 −710

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −143
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.appop;

import android.annotation.NonNull;
import android.util.Log;
import android.util.SparseBooleanArray;
import android.util.SparseIntArray;

/**
 * Logging decorator for {@link AppOpsCheckingServiceInterface}.
 */
public class AppOpsCheckingServiceLoggingDecorator implements AppOpsCheckingServiceInterface {
    private static final String LOG_TAG =
            AppOpsCheckingServiceLoggingDecorator.class.getSimpleName();

    @NonNull
    private final AppOpsCheckingServiceInterface mService;

    public AppOpsCheckingServiceLoggingDecorator(@NonNull AppOpsCheckingServiceInterface service) {
        mService = service;
    }

    @Override
    public void writeState() {
        Log.i(LOG_TAG, "writeState()");
        mService.writeState();
    }

    @Override
    public void readState() {
        Log.i(LOG_TAG, "readState()");
        mService.readState();
    }

    @Override
    public void shutdown() {
        Log.i(LOG_TAG, "shutdown()");
        mService.shutdown();
    }

    @Override
    public void systemReady() {
        Log.i(LOG_TAG, "systemReady()");
        mService.systemReady();
    }

    @Override
    public SparseIntArray getNonDefaultUidModes(int uid, String persistentDeviceId) {
        Log.i(LOG_TAG, "getNonDefaultUidModes(uid = " + uid + ")");
        return mService.getNonDefaultUidModes(uid, persistentDeviceId);
    }

    @Override
    public SparseIntArray getNonDefaultPackageModes(String packageName, int userId) {
        Log.i(LOG_TAG, "getNonDefaultPackageModes("
                + "packageName = " + packageName + ", userId = " + userId + ") ");
        return mService.getNonDefaultPackageModes(packageName, userId);
    }

    @Override
    public int getUidMode(int uid, String persistentDeviceId, int op) {
        Log.i(LOG_TAG, "getUidMode(uid = " + uid + ", op = " + op + ")");
        return mService.getUidMode(uid, persistentDeviceId, op);
    }

    @Override
    public boolean setUidMode(int uid, String persistentDeviceId, int op, int mode) {
        Log.i(LOG_TAG, "setUidMode(uid = " + uid + ", op = " + op + ", mode = " + mode + ")");
        return mService.setUidMode(uid, persistentDeviceId, op, mode);
    }

    @Override
    public int getPackageMode(@NonNull String packageName, int op, int userId) {
        Log.i(LOG_TAG, "getPackageMode(packageName = " + packageName + ", op = " + op
                + ", userId = " + userId + ")");
        return mService.getPackageMode(packageName, op, userId);
    }

    @Override
    public void setPackageMode(@NonNull String packageName, int op, int mode, int userId) {
        Log.i(LOG_TAG, "setPackageMode(packageName = " + packageName + ", op = " + op + ", mode = "
                + mode + ", userId = " + userId + ")");
        mService.setPackageMode(packageName, op, mode, userId);
    }

    @Override
    public boolean removePackage(@NonNull String packageName, int userId) {
        Log.i(LOG_TAG, "removePackage(packageName = " + packageName + ", userId = " + userId + ")");
        return mService.removePackage(packageName, userId);
    }

    @Override
    public void removeUid(int uid) {
        Log.i(LOG_TAG, "removeUid(uid = " + uid + ")");
        mService.removeUid(uid);
    }

    @Override
    public void clearAllModes() {
        Log.i(LOG_TAG, "clearAllModes()");
        mService.clearAllModes();
    }

    @Override
    public SparseBooleanArray getForegroundOps(int uid, String persistentDeviceId) {
        Log.i(LOG_TAG, "getForegroundOps(uid = " + uid + ")");
        return mService.getForegroundOps(uid, persistentDeviceId);
    }

    @Override
    public SparseBooleanArray getForegroundOps(String packageName, int userId) {
        Log.i(LOG_TAG, "getForegroundOps(packageName = " + packageName + ", userId = " + userId
                + ")");
        return mService.getForegroundOps(packageName, userId);
    }

    @Override
    public boolean addAppOpsModeChangedListener(AppOpsModeChangedListener listener) {
        Log.i(LOG_TAG, "addAppOpsModeChangedListener(listener = " + listener + ")");
        return mService.addAppOpsModeChangedListener(listener);
    }

    @Override
    public boolean removeAppOpsModeChangedListener(AppOpsModeChangedListener listener) {
        Log.i(LOG_TAG, "removeAppOpsModeChangedListener(listener = " + listener + ")");
        return mService.removeAppOpsModeChangedListener(listener);
    }
}
+0 −225
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.appop;

import android.annotation.NonNull;
import android.annotation.UserIdInt;
import android.app.AppOpsManager;
import android.os.Trace;
import android.util.SparseBooleanArray;
import android.util.SparseIntArray;

/**
 * Surrounds all AppOpsCheckingServiceInterface method calls with Trace.traceBegin and
 * Trace.traceEnd. These traces are used for performance testing.
 */
public class AppOpsCheckingServiceTracingDecorator implements AppOpsCheckingServiceInterface {
    private static final long TRACE_TAG = Trace.TRACE_TAG_ACTIVITY_MANAGER;
    private final AppOpsCheckingServiceInterface mService;

    AppOpsCheckingServiceTracingDecorator(
            @NonNull AppOpsCheckingServiceInterface appOpsCheckingServiceInterface) {
        mService = appOpsCheckingServiceInterface;
    }

    @Override
    public void writeState() {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#writeState");
        try {
            mService.writeState();
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public void readState() {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#readState");
        try {
            mService.readState();
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public void shutdown() {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#shutdown");
        try {
            mService.shutdown();
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public void systemReady() {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#systemReady");
        try {
            mService.systemReady();
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public SparseIntArray getNonDefaultUidModes(int uid, String persistentDeviceId) {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#getNonDefaultUidModes");
        try {
            return mService.getNonDefaultUidModes(uid, persistentDeviceId);
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public SparseIntArray getNonDefaultPackageModes(String packageName, int userId) {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#getNonDefaultPackageModes");
        try {
            return mService.getNonDefaultPackageModes(packageName, userId);
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public int getUidMode(int uid, String persistentDeviceId, int op) {
        Trace.traceBegin(TRACE_TAG, "TaggedTracingAppOpsCheckingServiceInterfaceImpl#getUidMode");
        try {
            return mService.getUidMode(uid, persistentDeviceId, op);
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public boolean setUidMode(
            int uid, String persistentDeviceId, int op, @AppOpsManager.Mode int mode) {
        Trace.traceBegin(TRACE_TAG, "TaggedTracingAppOpsCheckingServiceInterfaceImpl#setUidMode");
        try {
            return mService.setUidMode(uid, persistentDeviceId, op, mode);
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public int getPackageMode(@NonNull String packageName, int op, @UserIdInt int userId) {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#getPackageMode");
        try {
            return mService.getPackageMode(packageName, op, userId);
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public void setPackageMode(@NonNull String packageName, int op, @AppOpsManager.Mode int mode,
            @UserIdInt int userId) {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#setPackageMode");
        try {
            mService.setPackageMode(packageName, op, mode, userId);
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public boolean removePackage(@NonNull String packageName, @UserIdInt int userId) {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#removePackage");
        try {
            return mService.removePackage(packageName, userId);
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public void removeUid(int uid) {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#removeUid");
        try {
            mService.removeUid(uid);
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public void clearAllModes() {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#clearAllModes");
        try {
            mService.clearAllModes();
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public SparseBooleanArray getForegroundOps(int uid, String persistentDeviceId) {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#getForegroundOps");
        try {
            return mService.getForegroundOps(uid, persistentDeviceId);
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public SparseBooleanArray getForegroundOps(String packageName, int userId) {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#getForegroundOps");
        try {
            return mService.getForegroundOps(packageName, userId);
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public boolean addAppOpsModeChangedListener(AppOpsModeChangedListener listener) {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#addAppOpsModeChangedListener");
        try {
            return mService.addAppOpsModeChangedListener(listener);
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }

    @Override
    public boolean removeAppOpsModeChangedListener(AppOpsModeChangedListener listener) {
        Trace.traceBegin(TRACE_TAG,
                "TaggedTracingAppOpsCheckingServiceInterfaceImpl#removeAppOpsModeChangedListener");
        try {
            return mService.removeAppOpsModeChangedListener(listener);
        } finally {
            Trace.traceEnd(TRACE_TAG);
        }
    }
}
Loading