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

Commit 727e0e78 authored by Stanislav Zholnin's avatar Stanislav Zholnin
Browse files

Fix HistoricalAppOps collection.

Pullers were moved to frameworks/base because of migration, thus they
call AppOpsService.getHistoricalOps() with SYSTEM_UID and PID.
In addition, for stack trace reporting we need to call
getHistoricalOps() from system process.

Test: atest UidAtomTests#testAppOps
Change-Id: I8ed66c0eb912f6af108e53287f030c871423948d
parent d9e45183
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -56,7 +56,6 @@ import static android.app.AppOpsManager.resolveFirstUnrestrictedUidState;
import static android.content.Intent.ACTION_PACKAGE_REMOVED;
import static android.content.Intent.EXTRA_REPLACING;
import static android.content.pm.PermissionInfo.PROTECTION_DANGEROUS;
import static android.os.Process.STATSD_UID;

import static com.android.server.appop.AppOpsService.ModeCallback.ALL_OPS;

@@ -1890,9 +1889,9 @@ public class AppOpsService extends IAppOpsService.Stub {

        ActivityManagerInternal ami = LocalServices.getService(ActivityManagerInternal.class);
        boolean isCallerInstrumented = ami.isUidCurrentlyInstrumented(Binder.getCallingUid());
        boolean isCallerStatsCollector = Binder.getCallingUid() == STATSD_UID;
        boolean isCallerSystem = Binder.getCallingPid() == Process.myPid();

        if (!isCallerStatsCollector && !isCallerInstrumented) {
        if (!isCallerSystem && !isCallerInstrumented) {
            mHandler.post(() -> callback.sendResult(new Bundle()));
            return;
        }