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

Commit f1d5754c authored by satayev's avatar satayev Committed by Gerrit Code Review
Browse files

Merge "Enable @TestApi access for instrumentation."

parents 8c03d3c0 244fa92f
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -174,10 +174,6 @@ public class Am extends BaseCommand {
                instrument.noWindowAnimation = true;
            } else if (opt.equals("--no-hidden-api-checks")) {
                instrument.disableHiddenApiChecks = true;
            } else if (opt.equals("--no-test-api-checks")) {
                // TODO(satayev): remove this option, only kept for backwards compatibility with
                // cached tradefed instance
                instrument.disableTestApiChecks = false;
            } else if (opt.equals("--no-test-api-access")) {
                instrument.disableTestApiChecks = false;
            } else if (opt.equals("--no-isolated-storage")) {
@@ -198,7 +194,6 @@ public class Am extends BaseCommand {
        }

        instrument.componentNameArg = nextArgRequired();

        instrument.run();
    }
}
+23 −0
Original line number Diff line number Diff line
@@ -190,6 +190,7 @@ import android.app.usage.UsageEvents.Event;
import android.app.usage.UsageStatsManager;
import android.app.usage.UsageStatsManagerInternal;
import android.appwidget.AppWidgetManager;
import android.compat.Compatibility;
import android.content.AutofillOptions;
import android.content.BroadcastReceiver;
import android.content.ComponentCallbacks2;
@@ -318,6 +319,7 @@ import com.android.internal.app.IAppOpsService;
import com.android.internal.app.ProcessMap;
import com.android.internal.app.SystemUserHomeActivity;
import com.android.internal.app.procstats.ProcessStats;
import com.android.internal.compat.CompatibilityChangeConfig;
import com.android.internal.content.PackageHelper;
import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
import com.android.internal.notification.SystemNotificationChannels;
@@ -16944,6 +16946,8 @@ public class ActivityManagerService extends IActivityManager.Stub
            if (disableHiddenApiChecks || disableTestApiChecks) {
                enforceCallingPermission(android.Manifest.permission.DISABLE_HIDDEN_API_CHECKS,
                        "disable hidden API checks");
                enableTestApiAccess(ii.packageName);
            }
            // TODO(b/158750470): remove
@@ -17083,6 +17087,25 @@ public class ActivityManagerService extends IActivityManager.Stub
        forceStopPackageLocked(app.info.packageName, -1, false, false, true, true, false, app.userId,
                "finished inst");
        disableTestApiAccess(app.info.packageName);
    }
    private void enableTestApiAccess(String packageName) {
        if (mPlatformCompat != null) {
            Compatibility.ChangeConfig config = new Compatibility.ChangeConfig(
                    Collections.singleton(166236554L /* VMRuntime.ALLOW_TEST_API_ACCESS */),
                    Collections.emptySet());
            CompatibilityChangeConfig override = new CompatibilityChangeConfig(config);
            mPlatformCompat.setOverridesForTest(override, packageName);
        }
    }
    private void disableTestApiAccess(String packageName) {
        if (mPlatformCompat != null) {
            mPlatformCompat.clearOverrideForTest(166236554L /* VMRuntime.ALLOW_TEST_API_ACCESS */,
                    packageName);
        }
    }
    public void finishInstrumentation(IApplicationThread target,