summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authoratrost <atrost@google.com>2019-10-17 13:58:26 +0100
committeratrost <atrost@google.com>2019-10-17 15:42:45 +0100
commit685cbc125a3d03aa91c68dc763d9247cae886700 (patch)
tree5b47dc7517779e00a3c02a09484521c6f35da7db /core/java
parentf6fb7063a4578be4407408ee791b7b63de4caf62 (diff)
Don't call platformCompat on system apps.
To avoid boot time regression in tests, as compat doesn't care about system apps. Also fix the fallback condition to be correct. Bug: 30188076 Bug: 142558883 Test: atest google/perf/boottime/boottime-test -v - no binder calls, no time regression. Change-Id: I15fd39ad7e0ed70fcd880a13cffa40d70c5bba55
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/content/pm/AndroidTestBaseUpdater.java19
1 files changed, 12 insertions, 7 deletions
diff --git a/core/java/android/content/pm/AndroidTestBaseUpdater.java b/core/java/android/content/pm/AndroidTestBaseUpdater.java
index 8fcfe711a882..18d3ba33552e 100644
--- a/core/java/android/content/pm/AndroidTestBaseUpdater.java
+++ b/core/java/android/content/pm/AndroidTestBaseUpdater.java
@@ -55,15 +55,20 @@ public class AndroidTestBaseUpdater extends PackageSharedLibraryUpdater {
private static final long REMOVE_ANDROID_TEST_BASE = 133396946L;
private static boolean isChangeEnabled(Package pkg) {
- IPlatformCompat platformCompat = IPlatformCompat.Stub.asInterface(
- ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE));
- try {
- return platformCompat.isChangeEnabled(REMOVE_ANDROID_TEST_BASE, pkg.applicationInfo);
- } catch (RemoteException | NullPointerException e) {
- Log.e(TAG, "Failed to get a response from PLATFORM_COMPAT_SERVICE", e);
+ // Do not ask platform compat for system apps to prevent a boot time regression in tests.
+ // b/142558883.
+ if (!pkg.applicationInfo.isSystemApp()) {
+ IPlatformCompat platformCompat = IPlatformCompat.Stub.asInterface(
+ ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE));
+ try {
+ return platformCompat.isChangeEnabled(REMOVE_ANDROID_TEST_BASE,
+ pkg.applicationInfo);
+ } catch (RemoteException | NullPointerException e) {
+ Log.e(TAG, "Failed to get a response from PLATFORM_COMPAT_SERVICE", e);
+ }
}
// Fall back to previous behaviour.
- return pkg.applicationInfo.targetSdkVersion <= Build.VERSION_CODES.Q;
+ return pkg.applicationInfo.targetSdkVersion > Build.VERSION_CODES.Q;
}
@Override