summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/tests/coretests/Android.bp8
-rw-r--r--core/tests/coretests/apks/install-split-base/Android.bp6
-rw-r--r--core/tests/coretests/apks/install_intent_filters/Android.bp7
-rw-r--r--core/tests/coretests/apks/install_uses_sdk/Android.bp39
-rw-r--r--services/core/java/com/android/server/pm/parsing/library/AndroidHidlUpdater.java2
-rw-r--r--services/core/java/com/android/server/pm/parsing/library/AndroidTestBaseUpdater.java2
-rw-r--r--services/core/java/com/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater.java2
-rw-r--r--services/core/java/com/android/server/pm/parsing/library/PackageBackwardCompatibility.java52
-rw-r--r--services/core/java/com/android/server/pm/parsing/library/PackageSharedLibraryUpdater.java2
-rw-r--r--services/core/java/com/android/server/pm/parsing/library/SharedLibraryNames.java2
-rw-r--r--services/core/java/com/android/server/pm/permission/PermissionManagerService.java2
-rw-r--r--services/core/java/com/android/server/policy/PermissionPolicyService.java38
-rw-r--r--services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java11
-rw-r--r--services/robotests/src/com/android/server/pm/CrossProfileAppsServiceImplRoboTest.java12
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java2
-rw-r--r--services/tests/servicestests/Android.bp26
-rw-r--r--services/tests/servicestests/apks/Android.bp7
-rw-r--r--services/tests/servicestests/apks/install-split-base/Android.bp6
-rw-r--r--services/tests/servicestests/apks/install-split-base/AndroidManifest.xml (renamed from core/tests/coretests/apks/install-split-base/AndroidManifest.xml)2
-rw-r--r--services/tests/servicestests/apks/install-split-base/src/com/google/android/dexapis/splitapp/BaseActivity.java (renamed from core/tests/coretests/apks/install-split-base/src/com/google/android/dexapis/splitapp/BaseActivity.java)0
-rw-r--r--services/tests/servicestests/apks/install-split-feature-a/Android.bp (renamed from core/tests/coretests/apks/install-split-feature-a/Android.bp)4
-rw-r--r--services/tests/servicestests/apks/install-split-feature-a/AndroidManifest.xml (renamed from core/tests/coretests/apks/install-split-feature-a/AndroidManifest.xml)2
-rw-r--r--services/tests/servicestests/apks/install-split-feature-a/src/com/google/android/dexapis/splitapp/feature_a/FeatureAActivity.java (renamed from core/tests/coretests/apks/install-split-feature-a/src/com/google/android/dexapis/splitapp/feature_a/FeatureAActivity.java)0
-rw-r--r--services/tests/servicestests/apks/install_intent_filters/Android.bp7
-rw-r--r--services/tests/servicestests/apks/install_intent_filters/AndroidManifest.xml (renamed from core/tests/coretests/apks/install_intent_filters/AndroidManifest.xml)6
-rw-r--r--services/tests/servicestests/apks/install_intent_filters/src/com/android/frameworks/servicestests/TestActivity.java (renamed from core/tests/coretests/apks/install_intent_filters/src/com/android/frameworks/coretests/TestActivity.java)0
-rw-r--r--services/tests/servicestests/apks/install_uses_sdk/Android.bp39
-rw-r--r--services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-0.xml (renamed from core/tests/coretests/apks/install_uses_sdk/AndroidManifest-0.xml)2
-rw-r--r--services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-q0.xml (renamed from core/tests/coretests/apks/install_uses_sdk/AndroidManifest-q0.xml)2
-rw-r--r--services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-r.xml (renamed from core/tests/coretests/apks/install_uses_sdk/AndroidManifest-r.xml)2
-rw-r--r--services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-r0.xml (renamed from core/tests/coretests/apks/install_uses_sdk/AndroidManifest-r0.xml)2
-rw-r--r--services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-r5.xml (renamed from core/tests/coretests/apks/install_uses_sdk/AndroidManifest-r5.xml)2
-rw-r--r--services/tests/servicestests/apks/install_uses_sdk/res/values/strings.xml (renamed from core/tests/coretests/apks/install_uses_sdk/res/values/strings.xml)0
-rw-r--r--services/tests/servicestests/res/raw/com_android_tzdata.apex (renamed from core/tests/coretests/res/raw/com_android_tzdata.apex)bin967811 -> 967811 bytes
-rw-r--r--services/tests/servicestests/src/com/android/server/om/OverlayReferenceMapperTests.kt2
-rw-r--r--services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java2
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java13
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java108
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/PackageSettingBuilder.java3
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/ParallelPackageParserTest.java2
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTest.java9
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/ScanRequestBuilder.java5
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/ScanTests.java59
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/UserSystemPackageInstallerTest.java21
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/dex/DexMetadataHelperTest.java (renamed from core/tests/coretests/src/android/content/pm/dex/DexMetadataHelperTest.java)39
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java13
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageInfoFlagBehaviorTest.kt4
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingEquivalenceTest.kt2
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingTestBase.kt16
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/PackageParserLegacyCoreTest.java (renamed from core/tests/coretests/src/android/content/pm/PackageParserTest.java)44
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/library/AndroidHidlUpdaterTest.java (renamed from core/tests/coretests/src/android/content/pm/parsing/library/AndroidHidlUpdaterTest.java)83
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/library/AndroidTestBaseUpdaterTest.java (renamed from core/tests/coretests/src/android/content/pm/parsing/library/AndroidTestBaseUpdaterTest.java)64
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/library/AndroidTestRunnerSplitUpdaterTest.java (renamed from core/tests/coretests/src/android/content/pm/parsing/library/AndroidTestRunnerSplitUpdaterTest.java)33
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/library/OptionalClassRunner.java (renamed from core/tests/coretests/src/android/content/pm/OptionalClassRunner.java)4
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdaterTest.java (renamed from core/tests/coretests/src/android/content/pm/parsing/library/OrgApacheHttpLegacyUpdaterTest.java)64
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/library/PackageBackwardCompatibilityTest.java (renamed from core/tests/coretests/src/android/content/pm/parsing/library/PackageBackwardCompatibilityTest.java)53
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/library/PackageSharedLibraryUpdaterTest.java (renamed from core/tests/coretests/src/android/content/pm/parsing/library/PackageSharedLibraryUpdaterTest.java)6
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/library/RemoveUnnecessaryAndroidTestBaseLibraryTest.java (renamed from core/tests/coretests/src/android/content/pm/parsing/library/RemoveUnnecessaryAndroidTestBaseLibraryTest.java)71
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/parsing/library/RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest.java (renamed from core/tests/coretests/src/android/content/pm/parsing/library/RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest.java)73
59 files changed, 588 insertions, 501 deletions
diff --git a/core/tests/coretests/Android.bp b/core/tests/coretests/Android.bp
index 8e4e684bc1c0..33fead6c98c6 100644
--- a/core/tests/coretests/Android.bp
+++ b/core/tests/coretests/Android.bp
@@ -83,21 +83,13 @@ java_genrule {
":FrameworksCoreTests_install_bad_dex",
":FrameworksCoreTests_install_complete_package_info",
":FrameworksCoreTests_install_decl_perm",
- ":FrameworksCoreTests_install_intent_filters",
":FrameworksCoreTests_install_jni_lib_open_from_apk",
":FrameworksCoreTests_install_loc_auto",
":FrameworksCoreTests_install_loc_internal",
":FrameworksCoreTests_install_loc_sdcard",
":FrameworksCoreTests_install_loc_unspecified",
- ":FrameworksCoreTests_install_split_base",
- ":FrameworksCoreTests_install_split_feature_a",
":FrameworksCoreTests_install_use_perm_good",
":FrameworksCoreTests_install_uses_feature",
- ":FrameworksCoreTests_install_uses_sdk_0",
- ":FrameworksCoreTests_install_uses_sdk_q0",
- ":FrameworksCoreTests_install_uses_sdk_r",
- ":FrameworksCoreTests_install_uses_sdk_r0",
- ":FrameworksCoreTests_install_uses_sdk_r5",
":FrameworksCoreTests_install_verifier_bad",
":FrameworksCoreTests_install_verifier_good",
":FrameworksCoreTests_keyset_permdef_sa_unone",
diff --git a/core/tests/coretests/apks/install-split-base/Android.bp b/core/tests/coretests/apks/install-split-base/Android.bp
deleted file mode 100644
index ddf75b224359..000000000000
--- a/core/tests/coretests/apks/install-split-base/Android.bp
+++ /dev/null
@@ -1,6 +0,0 @@
-android_test_helper_app {
- name: "FrameworksCoreTests_install_split_base",
- defaults: ["FrameworksCoreTests_apks_defaults"],
-
- srcs: ["**/*.java"],
-}
diff --git a/core/tests/coretests/apks/install_intent_filters/Android.bp b/core/tests/coretests/apks/install_intent_filters/Android.bp
deleted file mode 100644
index 6cc5ebac9e6a..000000000000
--- a/core/tests/coretests/apks/install_intent_filters/Android.bp
+++ /dev/null
@@ -1,7 +0,0 @@
-android_test_helper_app {
- name: "FrameworksCoreTests_install_intent_filters",
- defaults: ["FrameworksCoreTests_apks_defaults"],
-
- srcs: ["**/*.java"],
-}
-
diff --git a/core/tests/coretests/apks/install_uses_sdk/Android.bp b/core/tests/coretests/apks/install_uses_sdk/Android.bp
deleted file mode 100644
index 92b09ed3818d..000000000000
--- a/core/tests/coretests/apks/install_uses_sdk/Android.bp
+++ /dev/null
@@ -1,39 +0,0 @@
-android_test_helper_app {
- name: "FrameworksCoreTests_install_uses_sdk_r0",
- defaults: ["FrameworksCoreTests_apks_defaults"],
- manifest: "AndroidManifest-r0.xml",
-
- srcs: ["**/*.java"],
-}
-
-android_test_helper_app {
- name: "FrameworksCoreTests_install_uses_sdk_r5",
- defaults: ["FrameworksCoreTests_apks_defaults"],
- manifest: "AndroidManifest-r5.xml",
-
- srcs: ["**/*.java"],
-}
-
-android_test_helper_app {
- name: "FrameworksCoreTests_install_uses_sdk_q0",
- defaults: ["FrameworksCoreTests_apks_defaults"],
- manifest: "AndroidManifest-q0.xml",
-
- srcs: ["**/*.java"],
-}
-
-android_test_helper_app {
- name: "FrameworksCoreTests_install_uses_sdk_r",
- defaults: ["FrameworksCoreTests_apks_defaults"],
- manifest: "AndroidManifest-r.xml",
-
- srcs: ["**/*.java"],
-}
-
-android_test_helper_app {
- name: "FrameworksCoreTests_install_uses_sdk_0",
- defaults: ["FrameworksCoreTests_apks_defaults"],
- manifest: "AndroidManifest-0.xml",
-
- srcs: ["**/*.java"],
-}
diff --git a/services/core/java/com/android/server/pm/parsing/library/AndroidHidlUpdater.java b/services/core/java/com/android/server/pm/parsing/library/AndroidHidlUpdater.java
index 2c2bc8a3c1d9..3f7fa92062de 100644
--- a/services/core/java/com/android/server/pm/parsing/library/AndroidHidlUpdater.java
+++ b/services/core/java/com/android/server/pm/parsing/library/AndroidHidlUpdater.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 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.
diff --git a/services/core/java/com/android/server/pm/parsing/library/AndroidTestBaseUpdater.java b/services/core/java/com/android/server/pm/parsing/library/AndroidTestBaseUpdater.java
index 60a715a562a9..4958ae1d58ab 100644
--- a/services/core/java/com/android/server/pm/parsing/library/AndroidTestBaseUpdater.java
+++ b/services/core/java/com/android/server/pm/parsing/library/AndroidTestBaseUpdater.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 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.
diff --git a/services/core/java/com/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater.java b/services/core/java/com/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater.java
index 2c0b7d6b1279..d153d9e98890 100644
--- a/services/core/java/com/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater.java
+++ b/services/core/java/com/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 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.
diff --git a/services/core/java/com/android/server/pm/parsing/library/PackageBackwardCompatibility.java b/services/core/java/com/android/server/pm/parsing/library/PackageBackwardCompatibility.java
index 9bf6ce690446..64f8c3ad2792 100644
--- a/services/core/java/com/android/server/pm/parsing/library/PackageBackwardCompatibility.java
+++ b/services/core/java/com/android/server/pm/parsing/library/PackageBackwardCompatibility.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 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.
@@ -21,6 +21,7 @@ import static com.android.server.pm.parsing.library.SharedLibraryNames.ANDROID_T
import static com.android.server.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_RUNNER;
import static com.android.server.pm.parsing.library.SharedLibraryNames.ORG_APACHE_HTTP_LEGACY;
+import android.content.pm.PackageParser;
import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
@@ -28,7 +29,6 @@ import com.android.server.pm.parsing.pkg.ParsedPackage;
import java.util.ArrayList;
import java.util.List;
-import java.util.function.Supplier;
/**
* Modifies {@link ParsedPackage} in order to maintain backwards compatibility.
@@ -55,13 +55,7 @@ public class PackageBackwardCompatibility extends PackageSharedLibraryUpdater {
// android.test.mock.
packageUpdaters.add(new AndroidTestRunnerSplitUpdater());
- // Attempt to load and add the optional updater that will only be available when
- // REMOVE_ATB_FROM_BCP=true. If that could not be found then add the default updater that
- // will remove any references to org.apache.http.library from the package so that it does
- // not try and load the library when it is on the bootclasspath.
- boolean bootClassPathContainsATB = !addOptionalUpdater(packageUpdaters,
- "android.content.pm.parsing.library.AndroidTestBaseUpdater",
- RemoveUnnecessaryAndroidTestBaseLibrary::new);
+ boolean bootClassPathContainsATB = !addUpdaterForAndroidTestBase(packageUpdaters);
PackageSharedLibraryUpdater[] updaterArray = packageUpdaters
.toArray(new PackageSharedLibraryUpdater[0]);
@@ -70,41 +64,31 @@ public class PackageBackwardCompatibility extends PackageSharedLibraryUpdater {
}
/**
- * Add an optional {@link PackageSharedLibraryUpdater} instance to the list, if it could not be
- * found then add a default instance instead.
+ * Attempt to load and add the optional updater that will only be available when
+ * REMOVE_ATB_FROM_BCP=true. If that could not be found then add the default updater that
+ * will remove any references to org.apache.http.library from the package so that
+ * it does not try and load the library when it is on the bootclasspath.
*
- * @param packageUpdaters the list to update.
- * @param className the name of the optional class.
- * @param defaultUpdater the supplier of the default instance.
- * @return true if the optional updater was added false otherwise.
+ * TODO:(b/135203078): Find a better way to do this.
*/
- private static boolean addOptionalUpdater(List<PackageSharedLibraryUpdater> packageUpdaters,
- String className, Supplier<PackageSharedLibraryUpdater> defaultUpdater) {
- Class<? extends PackageSharedLibraryUpdater> clazz;
+ private static boolean addUpdaterForAndroidTestBase(
+ List<PackageSharedLibraryUpdater> packageUpdaters) {
+ boolean hasClass = false;
+ String className = "android.content.pm.AndroidTestBaseUpdater";
try {
- clazz = (PackageBackwardCompatibility.class.getClassLoader()
- .loadClass(className)
- .asSubclass(PackageSharedLibraryUpdater.class));
+ Class clazz = (PackageParser.class.getClassLoader().loadClass(className));
+ hasClass = clazz != null;
Log.i(TAG, "Loaded " + className);
} catch (ClassNotFoundException e) {
Log.i(TAG, "Could not find " + className + ", ignoring");
- clazz = null;
}
- boolean usedOptional = false;
- PackageSharedLibraryUpdater updater;
- if (clazz == null) {
- updater = defaultUpdater.get();
+ if (hasClass) {
+ packageUpdaters.add(new AndroidTestBaseUpdater());
} else {
- try {
- updater = clazz.getConstructor().newInstance();
- usedOptional = true;
- } catch (ReflectiveOperationException e) {
- throw new IllegalStateException("Could not create instance of " + className, e);
- }
+ packageUpdaters.add(new RemoveUnnecessaryAndroidTestBaseLibrary());
}
- packageUpdaters.add(updater);
- return usedOptional;
+ return hasClass;
}
@VisibleForTesting
diff --git a/services/core/java/com/android/server/pm/parsing/library/PackageSharedLibraryUpdater.java b/services/core/java/com/android/server/pm/parsing/library/PackageSharedLibraryUpdater.java
index 4e9319fe65ba..d84ee367b9f0 100644
--- a/services/core/java/com/android/server/pm/parsing/library/PackageSharedLibraryUpdater.java
+++ b/services/core/java/com/android/server/pm/parsing/library/PackageSharedLibraryUpdater.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 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.
diff --git a/services/core/java/com/android/server/pm/parsing/library/SharedLibraryNames.java b/services/core/java/com/android/server/pm/parsing/library/SharedLibraryNames.java
index 6bcd216de798..f62f01452725 100644
--- a/services/core/java/com/android/server/pm/parsing/library/SharedLibraryNames.java
+++ b/services/core/java/com/android/server/pm/parsing/library/SharedLibraryNames.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 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.
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
index da79a395ba84..f3aff36ec5cb 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
@@ -1282,7 +1282,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
}
if (bp.isSoftRestricted() && !SoftRestrictedPermissionPolicy.forPermission(mContext,
- pkg.toAppInfoWithoutState(), UserHandle.of(userId), permName)
+ pkg.toAppInfoWithoutState(), pkg, UserHandle.of(userId), permName)
.mayGrantPermission()) {
Log.e(TAG, "Cannot grant soft restricted permission " + permName + " for package "
+ packageName);
diff --git a/services/core/java/com/android/server/policy/PermissionPolicyService.java b/services/core/java/com/android/server/policy/PermissionPolicyService.java
index f950cc371d7a..139c844256fa 100644
--- a/services/core/java/com/android/server/policy/PermissionPolicyService.java
+++ b/services/core/java/com/android/server/policy/PermissionPolicyService.java
@@ -163,7 +163,7 @@ public final class PermissionPolicyService extends SystemService {
if (perm.isSoftRestricted()) {
SoftRestrictedPermissionPolicy policy =
SoftRestrictedPermissionPolicy.forPermission(null, null, null,
- perm.name);
+ null, perm.name);
int extraAppOp = policy.getExtraAppOpCode();
if (extraAppOp != OP_NONE) {
appOpsService.startWatchingMode(extraAppOp, null, mAppOpsCallback);
@@ -506,17 +506,18 @@ public final class PermissionPolicyService extends SystemService {
/**
* Note: Called with the package lock held. Do <u>not</u> call into app-op manager.
*/
- private void addAppOps(@NonNull PackageInfo packageInfo, @NonNull String permissionName) {
+ private void addAppOps(@NonNull PackageInfo packageInfo, @NonNull AndroidPackage pkg,
+ @NonNull String permissionName) {
PermissionInfo permissionInfo = mRuntimePermissionInfos.get(permissionName);
if (permissionInfo == null) {
return;
}
- addPermissionAppOp(packageInfo, permissionInfo);
- addExtraAppOp(packageInfo, permissionInfo);
+ addPermissionAppOp(packageInfo, pkg, permissionInfo);
+ addExtraAppOp(packageInfo, pkg, permissionInfo);
}
private void addPermissionAppOp(@NonNull PackageInfo packageInfo,
- @NonNull PermissionInfo permissionInfo) {
+ @NonNull AndroidPackage pkg, @NonNull PermissionInfo permissionInfo) {
if (!permissionInfo.isRuntime()) {
return;
}
@@ -539,13 +540,13 @@ public final class PermissionPolicyService extends SystemService {
}
int appOpMode;
- boolean shouldGrantAppOp = shouldGrantAppOp(packageInfo, permissionInfo);
+ boolean shouldGrantAppOp = shouldGrantAppOp(packageInfo, pkg, permissionInfo);
if (shouldGrantAppOp) {
if (permissionInfo.backgroundPermission != null) {
PermissionInfo backgroundPermissionInfo = mRuntimePermissionInfos.get(
permissionInfo.backgroundPermission);
boolean shouldGrantBackgroundAppOp = backgroundPermissionInfo != null
- && shouldGrantAppOp(packageInfo, backgroundPermissionInfo);
+ && shouldGrantAppOp(packageInfo, pkg, backgroundPermissionInfo);
appOpMode = shouldGrantBackgroundAppOp ? MODE_ALLOWED : MODE_FOREGROUND;
} else {
appOpMode = MODE_ALLOWED;
@@ -570,7 +571,7 @@ public final class PermissionPolicyService extends SystemService {
}
private boolean shouldGrantAppOp(@NonNull PackageInfo packageInfo,
- @NonNull PermissionInfo permissionInfo) {
+ @NonNull AndroidPackage pkg, @NonNull PermissionInfo permissionInfo) {
String permissionName = permissionInfo.name;
String packageName = packageInfo.packageName;
boolean isGranted = mPackageManager.checkPermission(permissionName, packageName)
@@ -595,14 +596,15 @@ public final class PermissionPolicyService extends SystemService {
} else if (permissionInfo.isSoftRestricted()) {
SoftRestrictedPermissionPolicy policy =
SoftRestrictedPermissionPolicy.forPermission(mContext,
- packageInfo.applicationInfo, mContext.getUser(), permissionName);
+ packageInfo.applicationInfo, pkg, mContext.getUser(),
+ permissionName);
return policy.mayGrantPermission();
} else {
return true;
}
}
- private void addExtraAppOp(@NonNull PackageInfo packageInfo,
+ private void addExtraAppOp(@NonNull PackageInfo packageInfo, @NonNull AndroidPackage pkg,
@NonNull PermissionInfo permissionInfo) {
if (!permissionInfo.isSoftRestricted()) {
return;
@@ -611,7 +613,7 @@ public final class PermissionPolicyService extends SystemService {
String permissionName = permissionInfo.name;
SoftRestrictedPermissionPolicy policy =
SoftRestrictedPermissionPolicy.forPermission(mContext,
- packageInfo.applicationInfo, mContext.getUser(), permissionName);
+ packageInfo.applicationInfo, pkg, mContext.getUser(), permissionName);
int extraOpCode = policy.getExtraAppOpCode();
if (extraOpCode == OP_NONE) {
return;
@@ -639,19 +641,23 @@ public final class PermissionPolicyService extends SystemService {
* @param pkgName The package to add for later processing.
*/
void addPackage(@NonNull String pkgName) {
- final PackageInfo pkg;
+ PackageManagerInternal pmInternal =
+ LocalServices.getService(PackageManagerInternal.class);
+ final PackageInfo pkgInfo;
+ final AndroidPackage pkg;
try {
- pkg = mPackageManager.getPackageInfo(pkgName, GET_PERMISSIONS);
+ pkgInfo = mPackageManager.getPackageInfo(pkgName, GET_PERMISSIONS);
+ pkg = pmInternal.getPackage(pkgName);
} catch (NameNotFoundException e) {
return;
}
- if (pkg.requestedPermissions == null) {
+ if (pkgInfo == null || pkg == null || pkgInfo.requestedPermissions == null) {
return;
}
- for (String permission : pkg.requestedPermissions) {
- addAppOps(pkg, permission);
+ for (String permission : pkgInfo.requestedPermissions) {
+ addAppOps(pkgInfo, pkg, permission);
}
}
diff --git a/services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java b/services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java
index 740472e6b211..90babcd2a100 100644
--- a/services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java
+++ b/services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java
@@ -35,7 +35,6 @@ import android.compat.annotation.EnabledAfter;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
-import android.content.pm.PackageManagerInternal;
import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;
@@ -46,6 +45,7 @@ import android.util.Log;
import com.android.internal.compat.IPlatformCompat;
import com.android.server.LocalServices;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
/**
* The behavior of soft restricted permissions is different for each permission. This class collects
@@ -100,8 +100,8 @@ public abstract class SoftRestrictedPermissionPolicy {
* @return The policy for this permission
*/
public static @NonNull SoftRestrictedPermissionPolicy forPermission(@NonNull Context context,
- @Nullable ApplicationInfo appInfo, @Nullable UserHandle user,
- @NonNull String permission) {
+ @Nullable ApplicationInfo appInfo, @Nullable AndroidPackage pkg,
+ @Nullable UserHandle user, @NonNull String permission) {
switch (permission) {
// Storage uses a special app op to decide the mount state and supports soft restriction
// where the restricted state allows the permission but only for accessing the medial
@@ -116,8 +116,6 @@ public abstract class SoftRestrictedPermissionPolicy {
if (appInfo != null) {
PackageManager pm = context.getPackageManager();
- PackageManagerInternal pmInternal =
- LocalServices.getService(PackageManagerInternal.class);
StorageManagerInternal smInternal =
LocalServices.getService(StorageManagerInternal.class);
int flags = pm.getPermissionFlags(permission, appInfo.packageName, user);
@@ -131,8 +129,7 @@ public abstract class SoftRestrictedPermissionPolicy {
isScopedStorageEnabled =
isChangeEnabledForUid(context, appInfo, user, ENABLE_SCOPED_STORAGE)
|| isScopedStorageRequired;
- shouldPreserveLegacyExternalStorage = pmInternal.getPackage(
- appInfo.packageName).hasPreserveLegacyExternalStorage()
+ shouldPreserveLegacyExternalStorage = pkg.hasPreserveLegacyExternalStorage()
&& smInternal.hasLegacyExternalStorage(appInfo.uid);
shouldApplyRestriction = (flags & FLAG_PERMISSION_APPLY_RESTRICTION) != 0
|| (isScopedStorageRequired && !shouldPreserveLegacyExternalStorage);
diff --git a/services/robotests/src/com/android/server/pm/CrossProfileAppsServiceImplRoboTest.java b/services/robotests/src/com/android/server/pm/CrossProfileAppsServiceImplRoboTest.java
index 6190802d033d..fa0febd7f20f 100644
--- a/services/robotests/src/com/android/server/pm/CrossProfileAppsServiceImplRoboTest.java
+++ b/services/robotests/src/com/android/server/pm/CrossProfileAppsServiceImplRoboTest.java
@@ -46,8 +46,6 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManagerInternal;
import android.content.pm.ResolveInfo;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.PackageImpl;
import android.os.Process;
import android.os.UserHandle;
import android.os.UserManager;
@@ -58,6 +56,9 @@ import androidx.test.core.app.ApplicationProvider;
import com.android.internal.util.FunctionalUtils.ThrowingRunnable;
import com.android.internal.util.FunctionalUtils.ThrowingSupplier;
import com.android.server.LocalServices;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
import com.android.server.testing.shadows.ShadowApplicationPackageManager;
import com.android.server.testing.shadows.ShadowUserManager;
import com.android.server.wm.ActivityTaskManagerInternal;
@@ -135,7 +136,8 @@ public class CrossProfileAppsServiceImplRoboTest {
eq(userId)))
.thenReturn(packageInfo);
when(mPackageManagerInternal.getPackage(uid))
- .thenReturn(PackageImpl.forParsing(CROSS_PROFILE_APP_PACKAGE_NAME));
+ .thenReturn(((ParsedPackage) PackageImpl.forTesting(CROSS_PROFILE_APP_PACKAGE_NAME)
+ .hideAsParsed()).hideAsFinal());
}
private PackageInfo buildTestPackageInfo() {
@@ -497,7 +499,9 @@ public class CrossProfileAppsServiceImplRoboTest {
private void declareCrossProfileAttributeOnCrossProfileApp(boolean value) {
mockCrossProfileAndroidPackage(
- PackageImpl.forParsing(CROSS_PROFILE_APP_PACKAGE_NAME).setCrossProfile(value));
+ ((ParsedPackage) PackageImpl.forTesting(CROSS_PROFILE_APP_PACKAGE_NAME)
+ .setCrossProfile(value)
+ .hideAsParsed()).hideAsFinal());
}
private class TestInjector implements CrossProfileAppsServiceImpl.Injector {
diff --git a/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java
index 2d5fa237f6b7..959dc0525e8f 100644
--- a/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java
@@ -50,7 +50,6 @@ import android.app.AppOpsManager.PackageOps;
import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.PackageManagerInternal;
-import android.content.pm.parsing.AndroidPackage;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Process;
@@ -63,6 +62,7 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.dx.mockito.inline.extended.StaticMockitoSession;
import com.android.server.LocalServices;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
import org.junit.After;
import org.junit.Before;
diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp
index bf2b9bec33c9..d148c21b7d6e 100644
--- a/services/tests/servicestests/Android.bp
+++ b/services/tests/servicestests/Android.bp
@@ -93,6 +93,7 @@ android_test {
},
data: [":JobTestApp"],
+ resource_zips: [":FrameworksServicesTests_apks_as_resources"],
}
java_library {
@@ -115,3 +116,28 @@ filegroup {
"src/com/android/server/pm/SuspendPackagesTest.java",
],
}
+
+// Rules to copy all the test apks to the intermediate raw resource directory
+java_genrule {
+ name: "FrameworksServicesTests_apks_as_resources",
+ srcs: [
+ ":FrameworksCoreTests_install_complete_package_info",
+ ":FrameworksServicesTests_install_intent_filters",
+ ":FrameworksServicesTests_install_split_base",
+ ":FrameworksServicesTests_install_split_feature_a",
+ ":FrameworksServicesTests_install_uses_sdk_0",
+ ":FrameworksServicesTests_install_uses_sdk_q0",
+ ":FrameworksServicesTests_install_uses_sdk_r",
+ ":FrameworksServicesTests_install_uses_sdk_r0",
+ ":FrameworksServicesTests_install_uses_sdk_r5",
+ ],
+ out: ["FrameworkServicesTests_apks_as_resources.res.zip"],
+ tools: ["soong_zip"],
+
+ cmd: "mkdir -p $(genDir)/res/raw && " +
+ "for i in $(in); do " +
+ " x=$${i##*FrameworksCoreTests_}; cp $$i $(genDir)/res/raw/$${x%.apk};" +
+ " x=$${i##*FrameworksServicesTests_}; cp $$i $(genDir)/res/raw/$${x%.apk};" +
+ "done && " +
+ "$(location soong_zip) -o $(out) -C $(genDir)/res -D $(genDir)/res",
+}
diff --git a/services/tests/servicestests/apks/Android.bp b/services/tests/servicestests/apks/Android.bp
new file mode 100644
index 000000000000..3e11604005a0
--- /dev/null
+++ b/services/tests/servicestests/apks/Android.bp
@@ -0,0 +1,7 @@
+java_defaults {
+ name: "FrameworksServicesTests_apks_defaults",
+ sdk_version: "current",
+
+ // Every package should have a native library
+ jni_libs: ["libframeworks_coretests_jni"],
+}
diff --git a/services/tests/servicestests/apks/install-split-base/Android.bp b/services/tests/servicestests/apks/install-split-base/Android.bp
new file mode 100644
index 000000000000..1b62aa2a8e96
--- /dev/null
+++ b/services/tests/servicestests/apks/install-split-base/Android.bp
@@ -0,0 +1,6 @@
+android_test_helper_app {
+ name: "FrameworksServicesTests_install_split_base",
+ defaults: ["FrameworksServicesTests_apks_defaults"],
+
+ srcs: ["**/*.java"],
+}
diff --git a/core/tests/coretests/apks/install-split-base/AndroidManifest.xml b/services/tests/servicestests/apks/install-split-base/AndroidManifest.xml
index c2bfeddf32e3..2979395a8141 100644
--- a/core/tests/coretests/apks/install-split-base/AndroidManifest.xml
+++ b/services/tests/servicestests/apks/install-split-base/AndroidManifest.xml
@@ -15,7 +15,7 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.frameworks.coretests.install_split"
+ package="com.android.frameworks.servicestests.install_split"
android:isolatedSplits="true">
<application android:label="ClassloaderSplitApp">
diff --git a/core/tests/coretests/apks/install-split-base/src/com/google/android/dexapis/splitapp/BaseActivity.java b/services/tests/servicestests/apks/install-split-base/src/com/google/android/dexapis/splitapp/BaseActivity.java
index cb5760ceef8e..cb5760ceef8e 100644
--- a/core/tests/coretests/apks/install-split-base/src/com/google/android/dexapis/splitapp/BaseActivity.java
+++ b/services/tests/servicestests/apks/install-split-base/src/com/google/android/dexapis/splitapp/BaseActivity.java
diff --git a/core/tests/coretests/apks/install-split-feature-a/Android.bp b/services/tests/servicestests/apks/install-split-feature-a/Android.bp
index 9ec9893cc408..45d891720166 100644
--- a/core/tests/coretests/apks/install-split-feature-a/Android.bp
+++ b/services/tests/servicestests/apks/install-split-feature-a/Android.bp
@@ -1,6 +1,6 @@
android_test_helper_app {
- name: "FrameworksCoreTests_install_split_feature_a",
- defaults: ["FrameworksCoreTests_apks_defaults"],
+ name: "FrameworksServicesTests_install_split_feature_a",
+ defaults: ["FrameworksServicesTests_apks_defaults"],
srcs: ["**/*.java"],
diff --git a/core/tests/coretests/apks/install-split-feature-a/AndroidManifest.xml b/services/tests/servicestests/apks/install-split-feature-a/AndroidManifest.xml
index 3221c75ebe0c..a3dd55f712a2 100644
--- a/core/tests/coretests/apks/install-split-feature-a/AndroidManifest.xml
+++ b/services/tests/servicestests/apks/install-split-feature-a/AndroidManifest.xml
@@ -15,7 +15,7 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.frameworks.coretests.install_split"
+ package="com.android.frameworks.servicestests.install_split"
featureSplit="feature_a">
<application>
diff --git a/core/tests/coretests/apks/install-split-feature-a/src/com/google/android/dexapis/splitapp/feature_a/FeatureAActivity.java b/services/tests/servicestests/apks/install-split-feature-a/src/com/google/android/dexapis/splitapp/feature_a/FeatureAActivity.java
index 0af5f893164c..0af5f893164c 100644
--- a/core/tests/coretests/apks/install-split-feature-a/src/com/google/android/dexapis/splitapp/feature_a/FeatureAActivity.java
+++ b/services/tests/servicestests/apks/install-split-feature-a/src/com/google/android/dexapis/splitapp/feature_a/FeatureAActivity.java
diff --git a/services/tests/servicestests/apks/install_intent_filters/Android.bp b/services/tests/servicestests/apks/install_intent_filters/Android.bp
new file mode 100644
index 000000000000..59c8524e01c2
--- /dev/null
+++ b/services/tests/servicestests/apks/install_intent_filters/Android.bp
@@ -0,0 +1,7 @@
+android_test_helper_app {
+ name: "FrameworksServicesTests_install_intent_filters",
+ defaults: ["FrameworksServicesTests_apks_defaults"],
+
+ srcs: ["**/*.java"],
+}
+
diff --git a/core/tests/coretests/apks/install_intent_filters/AndroidManifest.xml b/services/tests/servicestests/apks/install_intent_filters/AndroidManifest.xml
index d7ee76eb381d..fc7134d24dda 100644
--- a/core/tests/coretests/apks/install_intent_filters/AndroidManifest.xml
+++ b/services/tests/servicestests/apks/install_intent_filters/AndroidManifest.xml
@@ -16,7 +16,7 @@
-->
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.frameworks.coretests.install_intent_filters">
+ package="com.android.frameworks.servicestests.install_intent_filters">
<!--
This manifest declares an activity for testing intent filters.
@@ -24,7 +24,7 @@
-->
<uses-feature
- android:name="com.android.frameworks.coretests.nonexistent" />
+ android:name="com.android.frameworks.servicestests.nonexistent" />
<uses-configuration
android:reqFiveWayNav="false" />
@@ -41,7 +41,7 @@
<application
android:hasCode="true">
<activity
- android:name="com.android.frameworks.coretests.TestActivity">
+ android:name="com.android.frameworks.servicestests.TestActivity">
<intent-filter>
<action android:name="action1"/>
<data android:mimeGroup="mime_group_1"/>
diff --git a/core/tests/coretests/apks/install_intent_filters/src/com/android/frameworks/coretests/TestActivity.java b/services/tests/servicestests/apks/install_intent_filters/src/com/android/frameworks/servicestests/TestActivity.java
index 08a19aacc21e..08a19aacc21e 100644
--- a/core/tests/coretests/apks/install_intent_filters/src/com/android/frameworks/coretests/TestActivity.java
+++ b/services/tests/servicestests/apks/install_intent_filters/src/com/android/frameworks/servicestests/TestActivity.java
diff --git a/services/tests/servicestests/apks/install_uses_sdk/Android.bp b/services/tests/servicestests/apks/install_uses_sdk/Android.bp
new file mode 100644
index 000000000000..c24aa2bd8bba
--- /dev/null
+++ b/services/tests/servicestests/apks/install_uses_sdk/Android.bp
@@ -0,0 +1,39 @@
+android_test_helper_app {
+ name: "FrameworksServicesTests_install_uses_sdk_r0",
+ defaults: ["FrameworksServicesTests_apks_defaults"],
+ manifest: "AndroidManifest-r0.xml",
+
+ srcs: ["**/*.java"],
+}
+
+android_test_helper_app {
+ name: "FrameworksServicesTests_install_uses_sdk_r5",
+ defaults: ["FrameworksServicesTests_apks_defaults"],
+ manifest: "AndroidManifest-r5.xml",
+
+ srcs: ["**/*.java"],
+}
+
+android_test_helper_app {
+ name: "FrameworksServicesTests_install_uses_sdk_q0",
+ defaults: ["FrameworksServicesTests_apks_defaults"],
+ manifest: "AndroidManifest-q0.xml",
+
+ srcs: ["**/*.java"],
+}
+
+android_test_helper_app {
+ name: "FrameworksServicesTests_install_uses_sdk_r",
+ defaults: ["FrameworksServicesTests_apks_defaults"],
+ manifest: "AndroidManifest-r.xml",
+
+ srcs: ["**/*.java"],
+}
+
+android_test_helper_app {
+ name: "FrameworksServicesTests_install_uses_sdk_0",
+ defaults: ["FrameworksServicesTests_apks_defaults"],
+ manifest: "AndroidManifest-0.xml",
+
+ srcs: ["**/*.java"],
+}
diff --git a/core/tests/coretests/apks/install_uses_sdk/AndroidManifest-0.xml b/services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-0.xml
index 634228b1ace3..215384b2831c 100644
--- a/core/tests/coretests/apks/install_uses_sdk/AndroidManifest-0.xml
+++ b/services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-0.xml
@@ -14,7 +14,7 @@
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.frameworks.coretests.install_uses_sdk">
+ package="com.android.frameworks.servicestests.install_uses_sdk">
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="29">
<!-- This is invalid, because there is no sdk version specified -->
diff --git a/core/tests/coretests/apks/install_uses_sdk/AndroidManifest-q0.xml b/services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-q0.xml
index 8994966832aa..c0e58674a226 100644
--- a/core/tests/coretests/apks/install_uses_sdk/AndroidManifest-q0.xml
+++ b/services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-q0.xml
@@ -14,7 +14,7 @@
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.frameworks.coretests.install_uses_sdk">
+ package="com.android.frameworks.servicestests.install_uses_sdk">
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="29">
<!-- This fails because 29 doesn't have an extension sdk -->
diff --git a/core/tests/coretests/apks/install_uses_sdk/AndroidManifest-r.xml b/services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-r.xml
index 0d0d8b9e9029..5d22577d118a 100644
--- a/core/tests/coretests/apks/install_uses_sdk/AndroidManifest-r.xml
+++ b/services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-r.xml
@@ -14,7 +14,7 @@
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.frameworks.coretests.install_uses_sdk">
+ package="com.android.frameworks.servicestests.install_uses_sdk">
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="29">
<!-- This is invalid, because there is no minimum extension version specified -->
diff --git a/core/tests/coretests/apks/install_uses_sdk/AndroidManifest-r0.xml b/services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-r0.xml
index a987afa2438e..c1244f246355 100644
--- a/core/tests/coretests/apks/install_uses_sdk/AndroidManifest-r0.xml
+++ b/services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-r0.xml
@@ -14,7 +14,7 @@
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.frameworks.coretests.install_uses_sdk">
+ package="com.android.frameworks.servicestests.install_uses_sdk">
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="29">
<extension-sdk android:sdkVersion="10000" android:minExtensionVersion="0" />
diff --git a/core/tests/coretests/apks/install_uses_sdk/AndroidManifest-r5.xml b/services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-r5.xml
index 9860096386bc..3410938b3c2d 100644
--- a/core/tests/coretests/apks/install_uses_sdk/AndroidManifest-r5.xml
+++ b/services/tests/servicestests/apks/install_uses_sdk/AndroidManifest-r5.xml
@@ -14,7 +14,7 @@
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.frameworks.coretests.install_uses_sdk">
+ package="com.android.frameworks.servicestests.install_uses_sdk">
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="29">
<!-- This will fail to install, because minExtensionVersion is not met -->
diff --git a/core/tests/coretests/apks/install_uses_sdk/res/values/strings.xml b/services/tests/servicestests/apks/install_uses_sdk/res/values/strings.xml
index 3b8b3b1af9b5..3b8b3b1af9b5 100644
--- a/core/tests/coretests/apks/install_uses_sdk/res/values/strings.xml
+++ b/services/tests/servicestests/apks/install_uses_sdk/res/values/strings.xml
diff --git a/core/tests/coretests/res/raw/com_android_tzdata.apex b/services/tests/servicestests/res/raw/com_android_tzdata.apex
index ca89bf66c8ff..ca89bf66c8ff 100644
--- a/core/tests/coretests/res/raw/com_android_tzdata.apex
+++ b/services/tests/servicestests/res/raw/com_android_tzdata.apex
Binary files differ
diff --git a/services/tests/servicestests/src/com/android/server/om/OverlayReferenceMapperTests.kt b/services/tests/servicestests/src/com/android/server/om/OverlayReferenceMapperTests.kt
index ef1294819f34..f97e7d3c9e88 100644
--- a/services/tests/servicestests/src/com/android/server/om/OverlayReferenceMapperTests.kt
+++ b/services/tests/servicestests/src/com/android/server/om/OverlayReferenceMapperTests.kt
@@ -16,8 +16,8 @@
package com.android.server.om
-import android.content.pm.parsing.AndroidPackage
import android.net.Uri
+import com.android.server.pm.parsing.pkg.AndroidPackage
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
diff --git a/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java b/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
index 3ecd3193058a..fa223fbe0340 100644
--- a/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
@@ -57,7 +57,6 @@ import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.content.pm.ShortcutServiceInternal;
import android.content.pm.UserInfo;
-import android.content.pm.parsing.AndroidPackage;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.CancellationSignal;
@@ -74,6 +73,7 @@ import android.util.Range;
import com.android.internal.app.ChooserActivity;
import com.android.internal.content.PackageMonitor;
import com.android.server.LocalServices;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
import org.junit.After;
import org.junit.Before;
diff --git a/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java b/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java
index 9670658d4e45..236b9d6be477 100644
--- a/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java
@@ -29,11 +29,9 @@ import android.content.IntentFilter;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageParser;
import android.content.pm.Signature;
-import android.content.pm.parsing.AndroidPackage;
import android.content.pm.parsing.ComponentParseUtils;
import android.content.pm.parsing.ComponentParseUtils.ParsedActivity;
import android.content.pm.parsing.ComponentParseUtils.ParsedActivityIntentInfo;
-import android.content.pm.parsing.PackageImpl;
import android.content.pm.parsing.ParsingPackage;
import android.os.Build;
import android.os.Process;
@@ -44,6 +42,9 @@ import android.util.ArraySet;
import androidx.annotation.NonNull;
import com.android.server.om.OverlayReferenceMapper;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
import org.junit.Before;
import org.junit.Test;
@@ -74,7 +75,7 @@ public class AppsFilterTest {
private ArrayMap<String, PackageSetting> mExisting = new ArrayMap<>();
private static ParsingPackage pkg(String packageName) {
- return PackageImpl.forParsing(packageName)
+ return PackageImpl.forTesting(packageName)
.setTargetSdkVersion(Build.VERSION_CODES.R);
}
@@ -437,7 +438,7 @@ public class AppsFilterTest {
ParsingPackage target = pkg("com.some.package.target")
.addOverlayable("overlayableName", actorName);
ParsingPackage overlay = pkg("com.some.package.overlay")
- .setIsOverlay(true)
+ .setOverlay(true)
.setOverlayTarget(target.getPackageName())
.setOverlayTargetName("overlayableName");
ParsingPackage actor = pkg("com.some.package.actor");
@@ -499,7 +500,7 @@ public class AppsFilterTest {
ParsingPackage target = pkg("com.some.package.target")
.addOverlayable("overlayableName", actorName);
ParsingPackage overlay = pkg("com.some.package.overlay")
- .setIsOverlay(true)
+ .setOverlay(true)
.setOverlayTarget(target.getPackageName())
.setOverlayTargetName("overlayableName");
ParsingPackage actorOne = pkg("com.some.package.actor.one");
@@ -618,7 +619,7 @@ public class AppsFilterTest {
private PackageSetting simulateAddPackage(AppsFilter filter,
ParsingPackage newPkgBuilder, int appId, @Nullable WithSettingBuilder action) {
- AndroidPackage newPkg = newPkgBuilder.hideAsParsed().hideAsFinal();
+ AndroidPackage newPkg = ((ParsedPackage) newPkgBuilder.hideAsParsed()).hideAsFinal();
final PackageSettingBuilder settingBuilder = new PackageSettingBuilder()
.setPackage(newPkg)
diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java b/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
index 56ac7c55443e..cb50929127a1 100644
--- a/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
@@ -21,6 +21,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
+import android.annotation.NonNull;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.ConfigurationInfo;
@@ -31,9 +32,7 @@ import android.content.pm.PackageParser;
import android.content.pm.PackageUserState;
import android.content.pm.ProviderInfo;
import android.content.pm.ServiceInfo;
-import android.content.pm.SharedLibraryInfo;
import android.content.pm.Signature;
-import android.content.pm.parsing.AndroidPackage;
import android.content.pm.parsing.ComponentParseUtils;
import android.content.pm.parsing.ComponentParseUtils.ParsedActivity;
import android.content.pm.parsing.ComponentParseUtils.ParsedComponent;
@@ -43,20 +42,25 @@ import android.content.pm.parsing.ComponentParseUtils.ParsedPermission;
import android.content.pm.parsing.ComponentParseUtils.ParsedPermissionGroup;
import android.content.pm.parsing.ComponentParseUtils.ParsedProvider;
import android.content.pm.parsing.ComponentParseUtils.ParsedService;
-import android.content.pm.parsing.PackageImpl;
-import android.content.pm.parsing.PackageInfoUtils;
-import android.content.pm.parsing.ParsedPackage;
import android.content.pm.parsing.ParsingPackage;
import android.os.Bundle;
import android.os.Parcel;
import android.platform.test.annotations.Presubmit;
import android.util.ArraySet;
+import android.util.DisplayMetrics;
+import androidx.annotation.Nullable;
import androidx.test.filters.MediumTest;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
import com.android.internal.util.ArrayUtils;
+import com.android.server.pm.parsing.PackageCacher;
+import com.android.server.pm.parsing.PackageInfoUtils;
+import com.android.server.pm.parsing.PackageParser2;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
import org.junit.Before;
import org.junit.Rule;
@@ -70,12 +74,12 @@ import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+@Presubmit
@RunWith(AndroidJUnit4.class)
@MediumTest
public class PackageParserTest {
@@ -96,13 +100,13 @@ public class PackageParserTest {
@Test
public void testParse_noCache() throws Exception {
- PackageParser pp = new CachePackageNameParser();
- ParsedPackage pkg = pp.parseParsedPackage(FRAMEWORK, 0 /* parseFlags */,
+ CachePackageNameParser pp = new CachePackageNameParser(null, false, null, null, null);
+ ParsedPackage pkg = pp.parsePackage(FRAMEWORK, 0 /* parseFlags */,
false /* useCaches */);
assertNotNull(pkg);
pp.setCacheDir(mTmpDir);
- pkg = pp.parseParsedPackage(FRAMEWORK, 0 /* parseFlags */,
+ pkg = pp.parsePackage(FRAMEWORK, 0 /* parseFlags */,
false /* useCaches */);
assertNotNull(pkg);
@@ -113,39 +117,37 @@ public class PackageParserTest {
@Test
public void testParse_withCache() throws Exception {
- PackageParser pp = new CachePackageNameParser();
+ CachePackageNameParser pp = new CachePackageNameParser(null, false, null, null, null);
pp.setCacheDir(mTmpDir);
// The first parse will write this package to the cache.
- pp.parseParsedPackage(FRAMEWORK, 0 /* parseFlags */, true /* useCaches */);
+ pp.parsePackage(FRAMEWORK, 0 /* parseFlags */, true /* useCaches */);
// Now attempt to parse the package again, should return the
// cached result.
- ParsedPackage pkg = pp.parseParsedPackage(FRAMEWORK, 0 /* parseFlags */,
+ ParsedPackage pkg = pp.parsePackage(FRAMEWORK, 0 /* parseFlags */,
true /* useCaches */);
assertEquals("cache_android", pkg.getPackageName());
// Try again, with useCaches == false, shouldn't return the parsed
// result.
- pkg = pp.parseParsedPackage(FRAMEWORK, 0 /* parseFlags */, false /* useCaches */);
+ pkg = pp.parsePackage(FRAMEWORK, 0 /* parseFlags */, false /* useCaches */);
assertEquals("android", pkg.getPackageName());
// We haven't set a cache directory here : the parse should still succeed,
// just not using the cached results.
- pp = new CachePackageNameParser();
- pkg = pp.parseParsedPackage(FRAMEWORK, 0 /* parseFlags */, true /* useCaches */);
+ pp = new CachePackageNameParser(null, false, null, null, null);
+ pkg = pp.parsePackage(FRAMEWORK, 0 /* parseFlags */, true /* useCaches */);
assertEquals("android", pkg.getPackageName());
- pkg = pp.parseParsedPackage(FRAMEWORK, 0 /* parseFlags */, false /* useCaches */);
+ pkg = pp.parsePackage(FRAMEWORK, 0 /* parseFlags */, false /* useCaches */);
assertEquals("android", pkg.getPackageName());
}
@Test
public void test_serializePackage() throws Exception {
- PackageParser pp = new PackageParser();
- pp.setCacheDir(mTmpDir);
-
- ParsedPackage pkg = pp.parseParsedPackage(FRAMEWORK, 0 /* parseFlags */,
+ PackageParser2 pp = new PackageParser2(null, false, null, mTmpDir, null);
+ ParsedPackage pkg = pp.parsePackage(FRAMEWORK, 0 /* parseFlags */,
true /* useCaches */);
Parcel p = Parcel.obtain();
@@ -161,7 +163,7 @@ public class PackageParserTest {
@SmallTest
@Presubmit
public void test_roundTripKnownFields() throws Exception {
- ParsingPackage pkg = PackageImpl.forParsing("foo");
+ ParsingPackage pkg = PackageImpl.forTesting("foo");
setKnownFields(pkg);
Parcel p = Parcel.obtain();
@@ -174,7 +176,7 @@ public class PackageParserTest {
@Test
public void test_stringInterning() throws Exception {
- ParsingPackage pkg = PackageImpl.forParsing("foo");
+ ParsingPackage pkg = PackageImpl.forTesting("foo");
setKnownFields(pkg);
Parcel p = Parcel.obtain();
@@ -212,19 +214,44 @@ public class PackageParserTest {
* A trivial subclass of package parser that only caches the package name, and throws away
* all other information.
*/
- public static class CachePackageNameParser extends PackageParser {
- @Override
- public byte[] toCacheEntry(ParsedPackage pkg) {
- return ("cache_" + pkg.getPackageName()).getBytes(StandardCharsets.UTF_8);
+ public static class CachePackageNameParser extends PackageParser2 {
+
+ CachePackageNameParser(String[] separateProcesses, boolean onlyCoreApps,
+ DisplayMetrics displayMetrics, @Nullable File cacheDir,
+ PackageParser2.Callback callback) {
+ super(separateProcesses, onlyCoreApps, displayMetrics, cacheDir, callback);
+ if (cacheDir != null) {
+ setCacheDir(cacheDir);
+ }
}
- @Override
- public ParsedPackage fromCacheEntry(byte[] cacheEntry) {
- return PackageImpl.forParsing(new String(cacheEntry, StandardCharsets.UTF_8))
- .hideAsParsed();
+ void setCacheDir(@NonNull File cacheDir) {
+ this.mCacher = new PackageCacher(cacheDir) {
+ @Override
+ public byte[] toCacheEntry(ParsedPackage pkg) {
+ return ("cache_" + pkg.getPackageName()).getBytes(StandardCharsets.UTF_8);
+ }
+
+ @Override
+ public ParsedPackage fromCacheEntry(byte[] cacheEntry) {
+ return ((ParsedPackage) PackageImpl.forTesting(
+ new String(cacheEntry, StandardCharsets.UTF_8))
+ .hideAsParsed());
+ }
+ };
}
}
+ private static PackageSetting mockPkgSetting(AndroidPackage pkg) {
+ return new PackageSetting(pkg.getPackageName(), pkg.getRealPackage(),
+ new File(pkg.getCodePath()), new File(pkg.getCodePath()), null,
+ pkg.getPrimaryCpuAbi(), pkg.getSecondaryCpuAbi(),
+ pkg.getCpuAbiOverride(), pkg.getVersionCode(),
+ PackageInfoUtils.appInfoFlags(pkg, null),
+ PackageInfoUtils.appInfoPrivateFlags(pkg, null),
+ pkg.getSharedUserLabel(), null, null, null);
+ }
+
// NOTE: The equality assertions below are based on code autogenerated by IntelliJ.
public static void assertPackagesEqual(AndroidPackage a, AndroidPackage b) {
@@ -232,7 +259,6 @@ public class PackageParserTest {
assertEquals(a.isBaseHardwareAccelerated(), b.isBaseHardwareAccelerated());
assertEquals(a.getVersionCode(), b.getVersionCode());
assertEquals(a.getSharedUserLabel(), b.getSharedUserLabel());
- assertEquals(a.getPreferredOrder(), b.getPreferredOrder());
assertEquals(a.getInstallLocation(), b.getInstallLocation());
assertEquals(a.isCoreApp(), b.isCoreApp());
assertEquals(a.isRequiredForAllUsers(), b.isRequiredForAllUsers());
@@ -298,15 +324,13 @@ public class PackageParserTest {
assertEquals(a.getLibraryNames(), b.getLibraryNames());
assertEquals(a.getUsesLibraries(), b.getUsesLibraries());
assertEquals(a.getUsesOptionalLibraries(), b.getUsesOptionalLibraries());
- assertArrayEquals(a.getUsesLibraryFiles(), b.getUsesLibraryFiles());
assertEquals(a.getOriginalPackages(), b.getOriginalPackages());
assertEquals(a.getRealPackage(), b.getRealPackage());
assertEquals(a.getAdoptPermissions(), b.getAdoptPermissions());
- assertBundleApproximateEquals(a.getAppMetaData(), b.getAppMetaData());
+ assertBundleApproximateEquals(a.getMetaData(), b.getMetaData());
assertEquals(a.getVersionName(), b.getVersionName());
assertEquals(a.getSharedUserId(), b.getSharedUserId());
assertArrayEquals(a.getSigningDetails().signatures, b.getSigningDetails().signatures);
- assertArrayEquals(a.getLastPackageUsageTimeInMills(), b.getLastPackageUsageTimeInMills());
assertEquals(a.getRestrictedAccountType(), b.getRestrictedAccountType());
assertEquals(a.getRequiredAccountType(), b.getRequiredAccountType());
assertEquals(a.getOverlayTarget(), b.getOverlayTarget());
@@ -496,10 +520,9 @@ public class PackageParserTest {
ParsedPermission permission = new ParsedPermission();
permission.parsedPermissionGroup = new ParsedPermissionGroup();
- pkg.setBaseRevisionCode(100)
+ ((ParsedPackage) pkg.setBaseRevisionCode(100)
.setBaseHardwareAccelerated(true)
.setSharedUserLabel(100)
- .setPreferredOrder(100)
.setInstallLocation(100)
.setRequiredForAllUsers(true)
.asSplit(
@@ -510,7 +533,6 @@ public class PackageParserTest {
)
.setUse32BitAbi(true)
.setVolumeUuid("foo3")
- .setCodePath("foo4")
.addPermission(permission)
.addPermissionGroup(new ParsedPermissionGroup())
.addActivity(new ParsedActivity())
@@ -532,7 +554,7 @@ public class PackageParserTest {
.addOriginalPackage("foo14")
.setRealPackage("foo15")
.addAdoptPermission("foo16")
- .setAppMetaData(bundle)
+ .setMetaData(bundle)
.setVersionName("foo17")
.setSharedUserId("foo18")
.setSigningDetails(
@@ -559,19 +581,15 @@ public class PackageParserTest {
.setOverlayTargetName("foo26")
.setVisibleToInstantApps(true)
.setSplitHasCode(0, true)
- .hideAsParsed()
+ .hideAsParsed())
.setBaseCodePath("foo5")
+ .setCodePath("foo4")
.setVersionCode(100)
.setCpuAbiOverride("foo22")
.setRestrictUpdateHash(new byte[16])
.setVersionCodeMajor(100)
.setCoreApp(true)
- .hideAsFinal()
- .mutate()
- .setUsesLibraryInfos(Arrays.asList(
- new SharedLibraryInfo(null, null, null, null, 0L, 0, null, null, null)
- ))
- .setUsesLibraryFiles(new String[]{"foo13"});
+ .hideAsFinal();
}
private static void assertAllFieldsExist(ParsedPackage pkg) throws Exception {
diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageSettingBuilder.java b/services/tests/servicestests/src/com/android/server/pm/PackageSettingBuilder.java
index 841cea2703ec..d12ea89469b7 100644
--- a/services/tests/servicestests/src/com/android/server/pm/PackageSettingBuilder.java
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageSettingBuilder.java
@@ -18,10 +18,11 @@ package com.android.server.pm;
import android.content.pm.PackageParser;
import android.content.pm.PackageUserState;
-import android.content.pm.parsing.AndroidPackage;
import android.util.ArraySet;
import android.util.SparseArray;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+
import java.io.File;
import java.util.Map;
diff --git a/services/tests/servicestests/src/com/android/server/pm/ParallelPackageParserTest.java b/services/tests/servicestests/src/com/android/server/pm/ParallelPackageParserTest.java
index 20f3f3e7f331..9d3ac1720930 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ParallelPackageParserTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ParallelPackageParserTest.java
@@ -17,6 +17,7 @@
package com.android.server.pm;
import android.content.pm.PackageParser;
+import android.platform.test.annotations.Presubmit;
import android.util.Log;
import androidx.test.runner.AndroidJUnit4;
@@ -38,6 +39,7 @@ import java.util.concurrent.ExecutorService;
/**
* Tests for {@link ParallelPackageParser}
*/
+@Presubmit
@RunWith(AndroidJUnit4.class)
public class ParallelPackageParserTest {
private static final String TAG = ParallelPackageParserTest.class.getSimpleName();
diff --git a/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTest.java b/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTest.java
index 30108c67d920..efc1c057d8f4 100644
--- a/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTest.java
@@ -22,12 +22,13 @@ import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.PackageImpl;
import android.os.Build;
import android.platform.test.annotations.Presubmit;
import com.android.server.compat.PlatformCompat;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -79,9 +80,9 @@ public class SELinuxMMACTest {
}
private AndroidPackage makePackage(int targetSdkVersion) {
- return PackageImpl.forParsing(PACKAGE_NAME)
+ return ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(targetSdkVersion)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
}
}
diff --git a/services/tests/servicestests/src/com/android/server/pm/ScanRequestBuilder.java b/services/tests/servicestests/src/com/android/server/pm/ScanRequestBuilder.java
index 11f154be688b..29ce2d0da599 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ScanRequestBuilder.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ScanRequestBuilder.java
@@ -16,10 +16,11 @@
package com.android.server.pm;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.ParsedPackage;
import android.os.UserHandle;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
+
class ScanRequestBuilder {
private final ParsedPackage mPkg;
private AndroidPackage mOldPkg;
diff --git a/services/tests/servicestests/src/com/android/server/pm/ScanTests.java b/services/tests/servicestests/src/com/android/server/pm/ScanTests.java
index 583cf5827367..e48c3f575fb0 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ScanTests.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ScanTests.java
@@ -42,9 +42,6 @@ import android.Manifest;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.SharedLibraryInfo;
-import android.content.pm.parsing.PackageImpl;
-import android.content.pm.parsing.PackageInfoUtils;
-import android.content.pm.parsing.ParsedPackage;
import android.content.pm.parsing.ParsingPackage;
import android.content.res.TypedArray;
import android.os.Environment;
@@ -54,6 +51,10 @@ import android.platform.test.annotations.Presubmit;
import android.util.Pair;
import com.android.server.compat.PlatformCompat;
+import com.android.server.pm.parsing.PackageInfoUtils;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
@@ -101,18 +102,18 @@ public class ScanTests {
@Before
public void setupDefaultAbiBehavior() throws Exception {
when(mMockPackageAbiHelper.derivePackageAbi(
- any(ParsedPackage.class), nullable(String.class), anyBoolean()))
+ any(AndroidPackage.class), nullable(String.class), anyBoolean()))
.thenReturn(new Pair<>(
new PackageAbiHelper.Abis("derivedPrimary", "derivedSecondary"),
new PackageAbiHelper.NativeLibraryPaths(
"derivedRootDir", true, "derivedNativeDir", "derivedNativeDir2")));
when(mMockPackageAbiHelper.getNativeLibraryPaths(
- any(ParsedPackage.class), any(File.class)))
+ any(AndroidPackage.class), any(File.class)))
.thenReturn(new PackageAbiHelper.NativeLibraryPaths(
"getRootDir", true, "getNativeDir", "getNativeDir2"
));
when(mMockPackageAbiHelper.getBundledAppAbis(
- any(ParsedPackage.class)))
+ any(AndroidPackage.class)))
.thenReturn(new PackageAbiHelper.Abis("bundledPrimary", "bundledSecondary"));
}
@@ -223,10 +224,10 @@ public class ScanTests {
@Test
public void installStaticSharedLibrary() throws Exception {
- final ParsedPackage pkg = createBasicPackage("static.lib.pkg")
+ final ParsedPackage pkg = ((ParsedPackage) createBasicPackage("static.lib.pkg")
.setStaticSharedLibName("static.lib")
.setStaticSharedLibVersion(123L)
- .hideAsParsed()
+ .hideAsParsed())
.setPackageName("static.lib.pkg.123")
.setVersionCodeMajor(1)
.setVersionCode(234)
@@ -255,10 +256,11 @@ public class ScanTests {
@Test
public void installDynamicLibraries() throws Exception {
- final ParsedPackage pkg = createBasicPackage("dynamic.lib.pkg")
+ final ParsedPackage pkg = ((ParsedPackage) createBasicPackage(
+ "dynamic.lib.pkg")
.addLibraryName("liba")
.addLibraryName("libb")
- .hideAsParsed()
+ .hideAsParsed())
.setVersionCodeMajor(1)
.setVersionCode(234)
.setBaseCodePath("/some/path.apk")
@@ -304,9 +306,9 @@ public class ScanTests {
.setVolumeUuid("someUuid")
.build();
- final ParsedPackage basicPackage = createBasicPackage(DUMMY_PACKAGE_NAME)
- .hideAsParsed()
- .setApplicationVolumeUuid(UUID_TWO.toString());
+ final ParsedPackage basicPackage = ((ParsedPackage) createBasicPackage(DUMMY_PACKAGE_NAME)
+ .setVolumeUuid(UUID_TWO.toString())
+ .hideAsParsed());
final PackageManagerService.ScanResult scanResult = executeScan(
@@ -321,8 +323,8 @@ public class ScanTests {
createBasicPackageSettingBuilder(DUMMY_PACKAGE_NAME).build();
final ParsedPackage basicPackage =
- createBasicPackage(DUMMY_PACKAGE_NAME)
- .hideAsParsed()
+ ((ParsedPackage) createBasicPackage(DUMMY_PACKAGE_NAME)
+ .hideAsParsed())
.setCpuAbiOverride("testOverride");
@@ -341,7 +343,7 @@ public class ScanTests {
createBasicPackageSettingBuilder("original.package").build();
final ParsedPackage basicPackage =
- createBasicPackage(DUMMY_PACKAGE_NAME)
+ (ParsedPackage) createBasicPackage(DUMMY_PACKAGE_NAME)
.hideAsParsed();
@@ -432,8 +434,8 @@ public class ScanTests {
@Test
public void scanSystemApp_isOrphanedTrue() throws Exception {
- final ParsedPackage pkg = createBasicPackage(DUMMY_PACKAGE_NAME)
- .hideAsParsed()
+ final ParsedPackage pkg = ((ParsedPackage) createBasicPackage(DUMMY_PACKAGE_NAME)
+ .hideAsParsed())
.setSystem(true);
final PackageManagerService.ScanRequest scanRequest =
@@ -474,10 +476,6 @@ public class ScanTests {
System.currentTimeMillis());
}
- private static String createResourcePath(String packageName) {
- return "/data/app/" + packageName + "-randompath/base.apk";
- }
-
private static String createCodePath(String packageName) {
return "/data/app/" + packageName + "-randompath";
}
@@ -486,11 +484,11 @@ public class ScanTests {
return new PackageSettingBuilder()
.setName(packageName)
.setCodePath(createCodePath(packageName))
- .setResourcePath(createResourcePath(packageName));
+ .setResourcePath(createCodePath(packageName));
}
private static ScanRequestBuilder createBasicScanRequestBuilder(ParsingPackage pkg) {
- return new ScanRequestBuilder(pkg.hideAsParsed())
+ return new ScanRequestBuilder((ParsedPackage) pkg.hideAsParsed())
.setUser(UserHandle.of(0));
}
@@ -501,16 +499,15 @@ public class ScanTests {
private static ParsingPackage createBasicPackage(String packageName) {
// TODO(b/135203078): Make this use PackageImpl.forParsing and separate the steps
- return new PackageImpl(packageName, null, mock(TypedArray.class), false)
- .setCodePath("/data/tmp/randompath")
- .setApplicationInfoCodePath(createCodePath(packageName))
- .setApplicationInfoResourcePath(createResourcePath(packageName))
- .setApplicationVolumeUuid(UUID_ONE.toString())
- .setBaseCodePath("/data/tmp/randompath/base.apk")
+ return (ParsingPackage) ((ParsedPackage) new PackageImpl(packageName,
+ "/data/tmp/randompath/base.apk", createCodePath(packageName),
+ mock(TypedArray.class), false)
+ .setVolumeUuid(UUID_ONE.toString())
.addUsesStaticLibrary("some.static.library")
.addUsesStaticLibraryVersion(234L)
.addUsesStaticLibrary("some.other.static.library")
.addUsesStaticLibraryVersion(456L)
+ .hideAsParsed())
.setNativeLibraryRootDir("/data/tmp/randompath/base.apk:/lib")
.setVersionCodeMajor(1)
.setVersionCode(2345);
@@ -537,7 +534,7 @@ public class ScanTests {
assertThat(pkgSetting.usesStaticLibrariesVersions, is(new long[]{234L, 456L}));
assertThat(pkgSetting.pkg, is(scanResult.request.parsedPackage));
assertThat(pkgSetting.codePath, is(new File(createCodePath(packageName))));
- assertThat(pkgSetting.resourcePath, is(new File(createResourcePath(packageName))));
+ assertThat(pkgSetting.resourcePath, is(new File(createCodePath(packageName))));
assertThat(pkgSetting.versionCode, is(PackageInfo.composeLongVersionCode(1, 2345)));
}
diff --git a/services/tests/servicestests/src/com/android/server/pm/UserSystemPackageInstallerTest.java b/services/tests/servicestests/src/com/android/server/pm/UserSystemPackageInstallerTest.java
index 3db832b24236..ce210990ac28 100644
--- a/services/tests/servicestests/src/com/android/server/pm/UserSystemPackageInstallerTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/UserSystemPackageInstallerTest.java
@@ -39,8 +39,6 @@ import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.PackageImpl;
import android.os.Looper;
import android.os.SystemProperties;
import android.os.UserManager;
@@ -56,6 +54,9 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.server.LocalServices;
import com.android.server.SystemConfig;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
import org.junit.After;
import org.junit.Before;
@@ -252,14 +253,14 @@ public class UserSystemPackageInstallerTest {
final Set<String> userWhitelist = new ArraySet<>();
userWhitelist.add(packageName1);
- final AndroidPackage pkg1 = PackageImpl.forParsing(packageName1)
- .hideAsParsed().hideAsFinal();
- final AndroidPackage pkg2 = PackageImpl.forParsing(packageName2)
- .hideAsParsed().hideAsFinal();
- final AndroidPackage pkg3 = PackageImpl.forParsing(packageName3)
- .hideAsParsed().hideAsFinal();
- final AndroidPackage pkg4 = PackageImpl.forParsing(packageName4)
- .hideAsParsed().hideAsFinal();
+ final AndroidPackage pkg1 = ((ParsedPackage) PackageImpl.forTesting(packageName1)
+ .hideAsParsed()).hideAsFinal();
+ final AndroidPackage pkg2 = ((ParsedPackage) PackageImpl.forTesting(packageName2)
+ .hideAsParsed()).hideAsFinal();
+ final AndroidPackage pkg3 = ((ParsedPackage) PackageImpl.forTesting(packageName3)
+ .hideAsParsed()).hideAsFinal();
+ final AndroidPackage pkg4 = ((ParsedPackage) PackageImpl.forTesting(packageName4)
+ .hideAsParsed()).hideAsFinal();
// No implicit whitelist, so only install pkg1.
boolean implicit = false;
diff --git a/core/tests/coretests/src/android/content/pm/dex/DexMetadataHelperTest.java b/services/tests/servicestests/src/com/android/server/pm/dex/DexMetadataHelperTest.java
index 1e0bfb08693f..f87f68d4942f 100644
--- a/core/tests/coretests/src/android/content/pm/dex/DexMetadataHelperTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/dex/DexMetadataHelperTest.java
@@ -1,5 +1,5 @@
-/**
- * Copyright (C) 2018 The Android Open Source Project
+/*
+ * Copyright (C) 2020 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.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.content.pm.dex;
+package com.android.server.pm.dex;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -27,14 +27,17 @@ import android.content.pm.PackageParser;
import android.content.pm.PackageParser.ApkLite;
import android.content.pm.PackageParser.PackageLite;
import android.content.pm.PackageParser.PackageParserException;
-import android.content.pm.parsing.ParsedPackage;
+import android.content.pm.dex.DexMetadataHelper;
import android.os.FileUtils;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
-import com.android.frameworks.coretests.R;
+import com.android.frameworks.servicestests.R;
+import com.android.server.pm.parsing.PackageParser2;
+import com.android.server.pm.parsing.pkg.AndroidPackageUtils;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
import org.junit.Assert;
import org.junit.Before;
@@ -90,13 +93,17 @@ public class DexMetadataHelperTest {
return outFile;
}
+ private PackageParser2 makeParser() {
+ return new PackageParser2(null, false, null, null, null);
+ }
+
@Test
public void testParsePackageWithDmFileValid() throws IOException, PackageParserException {
copyApkToToTmpDir("install_split_base.apk", R.raw.install_split_base);
createDexMetadataFile("install_split_base.apk");
- ParsedPackage pkg = new PackageParser().parseParsedPackage(mTmpDir, 0 /* flags */, false);
+ ParsedPackage pkg = makeParser().parsePackage(mTmpDir, 0 /* flags */, false);
- Map<String, String> packageDexMetadata = DexMetadataHelper.getPackageDexMetadata(pkg);
+ Map<String, String> packageDexMetadata = AndroidPackageUtils.getPackageDexMetadata(pkg);
assertEquals(1, packageDexMetadata.size());
String baseDexMetadata = packageDexMetadata.get(pkg.getBaseCodePath());
assertNotNull(baseDexMetadata);
@@ -110,9 +117,9 @@ public class DexMetadataHelperTest {
copyApkToToTmpDir("install_split_feature_a.apk", R.raw.install_split_feature_a);
createDexMetadataFile("install_split_base.apk");
createDexMetadataFile("install_split_feature_a.apk");
- ParsedPackage pkg = new PackageParser().parseParsedPackage(mTmpDir, 0 /* flags */, false);
+ ParsedPackage pkg = makeParser().parsePackage(mTmpDir, 0 /* flags */, false);
- Map<String, String> packageDexMetadata = DexMetadataHelper.getPackageDexMetadata(pkg);
+ Map<String, String> packageDexMetadata = AndroidPackageUtils.getPackageDexMetadata(pkg);
assertEquals(2, packageDexMetadata.size());
String baseDexMetadata = packageDexMetadata.get(pkg.getBaseCodePath());
assertNotNull(baseDexMetadata);
@@ -129,9 +136,9 @@ public class DexMetadataHelperTest {
copyApkToToTmpDir("install_split_base.apk", R.raw.install_split_base);
copyApkToToTmpDir("install_split_feature_a.apk", R.raw.install_split_feature_a);
createDexMetadataFile("install_split_feature_a.apk");
- ParsedPackage pkg = new PackageParser().parseParsedPackage(mTmpDir, 0 /* flags */, false);
+ ParsedPackage pkg = makeParser().parsePackage(mTmpDir, 0 /* flags */, false);
- Map<String, String> packageDexMetadata = DexMetadataHelper.getPackageDexMetadata(pkg);
+ Map<String, String> packageDexMetadata = AndroidPackageUtils.getPackageDexMetadata(pkg);
assertEquals(1, packageDexMetadata.size());
String splitDexMetadata = packageDexMetadata.get(pkg.getSplitCodePaths()[0]);
@@ -145,9 +152,8 @@ public class DexMetadataHelperTest {
File invalidDmFile = new File(mTmpDir, "install_split_base.dm");
Files.createFile(invalidDmFile.toPath());
try {
- ParsedPackage pkg = new PackageParser()
- .parseParsedPackage(mTmpDir, 0 /* flags */, false);
- DexMetadataHelper.validatePackageDexMetadata(pkg);
+ ParsedPackage pkg = makeParser().parsePackage(mTmpDir, 0 /* flags */, false);
+ AndroidPackageUtils.validatePackageDexMetadata(pkg);
} catch (PackageParserException e) {
assertEquals(e.error, PackageManager.INSTALL_FAILED_BAD_DEX_METADATA);
}
@@ -163,9 +169,8 @@ public class DexMetadataHelperTest {
Files.createFile(invalidDmFile.toPath());
try {
- ParsedPackage pkg = new PackageParser()
- .parseParsedPackage(mTmpDir, 0 /* flags */, false);
- DexMetadataHelper.validatePackageDexMetadata(pkg);
+ ParsedPackage pkg = makeParser().parsePackage(mTmpDir, 0 /* flags */, false);
+ AndroidPackageUtils.validatePackageDexMetadata(pkg);
} catch (PackageParserException e) {
assertEquals(e.error, PackageManager.INSTALL_FAILED_BAD_DEX_METADATA);
}
diff --git a/services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java b/services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java
index 66a4946ecc20..3846be09a6c1 100644
--- a/services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java
@@ -23,15 +23,16 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import android.content.pm.SharedLibraryInfo;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.PackageImpl;
-import android.content.pm.parsing.ParsedPackage;
import android.content.pm.parsing.ParsingPackage;
import android.util.SparseArray;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
+
import dalvik.system.DelegateLastClassLoader;
import dalvik.system.DexClassLoader;
import dalvik.system.PathClassLoader;
@@ -61,7 +62,8 @@ public class DexoptUtilsTest {
private TestData createMockApplicationInfo(String baseClassLoader, boolean addSplits,
boolean addSplitDependencies, boolean isolatedSplitLoading) {
String codeDir = "/data/app/mock.android.com";
- ParsingPackage parsingPackage = PackageImpl.forParsing("mock.android.com")
+ ParsingPackage parsingPackage = PackageImpl.forTesting("mock.android.com",
+ codeDir + "/base.dex")
.setClassLoaderName(baseClassLoader);
parsingPackage.setIsolatedSplitLoading(isolatedSplitLoading);
@@ -122,8 +124,7 @@ public class DexoptUtilsTest {
.setSplitClassLoaderName(7, null);
}
- ParsedPackage parsedPackage = parsingPackage.hideAsParsed()
- .setBaseCodePath(codeDir + "/base.dex");
+ ParsedPackage parsedPackage = (ParsedPackage) parsingPackage.hideAsParsed();
TestData data = new TestData();
data.pkg = parsedPackage.hideAsFinal();
diff --git a/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageInfoFlagBehaviorTest.kt b/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageInfoFlagBehaviorTest.kt
index 27d02e194540..0a32e4a53284 100644
--- a/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageInfoFlagBehaviorTest.kt
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageInfoFlagBehaviorTest.kt
@@ -20,9 +20,10 @@ import android.content.pm.ApplicationInfo
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.content.pm.PackageParser
-import android.content.pm.parsing.AndroidPackage
+import android.platform.test.annotations.Presubmit
import com.android.server.pm.parsing.AndroidPackageInfoFlagBehaviorTest.Companion.Param.Companion.appInfo
import com.android.server.pm.parsing.AndroidPackageInfoFlagBehaviorTest.Companion.Param.Companion.pkgInfo
+import com.android.server.pm.parsing.pkg.AndroidPackage
import com.google.common.truth.Truth.assertThat
import com.google.common.truth.Truth.assertWithMessage
import org.junit.Test
@@ -36,6 +37,7 @@ import org.junit.runners.Parameterized
* This test has to be updated manually whenever the info generation behavior changes, since
* there's no single place where flag -> field is defined besides this test.
*/
+@Presubmit
@RunWith(Parameterized::class)
class AndroidPackageInfoFlagBehaviorTest : AndroidPackageParsingTestBase() {
diff --git a/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingEquivalenceTest.kt b/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingEquivalenceTest.kt
index 925af7fba82a..191c038c3052 100644
--- a/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingEquivalenceTest.kt
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingEquivalenceTest.kt
@@ -17,6 +17,7 @@
package com.android.server.pm.parsing
import android.content.pm.PackageManager
+import android.platform.test.annotations.Presubmit
import com.google.common.truth.Truth.assertWithMessage
import org.junit.Test
@@ -24,6 +25,7 @@ import org.junit.Test
* Collects APKs from the device and verifies that the new parsing behavior outputs
* the same exposed Info object as the old parsing logic.
*/
+@Presubmit
class AndroidPackageParsingEquivalenceTest : AndroidPackageParsingTestBase() {
@Test
diff --git a/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingTestBase.kt b/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingTestBase.kt
index afd6e1851cde..5b9fbd8697ac 100644
--- a/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingTestBase.kt
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingTestBase.kt
@@ -27,14 +27,12 @@ import android.content.pm.PackageParser
import android.content.pm.PackageUserState
import android.content.pm.PermissionInfo
import android.content.pm.ProviderInfo
-import android.content.pm.parsing.AndroidPackage
-import android.content.pm.parsing.PackageImpl
-import android.content.pm.parsing.PackageInfoUtils
import android.os.Debug
import android.os.Environment
import android.util.SparseArray
import androidx.test.platform.app.InstrumentationRegistry
import com.android.server.pm.PackageManagerService
+import com.android.server.pm.parsing.pkg.AndroidPackage
import org.junit.BeforeClass
import org.mockito.Mockito
import java.io.File
@@ -43,10 +41,7 @@ open class AndroidPackageParsingTestBase {
companion object {
- /**
- * By default, don't parse all APKs on device, only the framework one.
- * Toggle this manually if working on package parsing.
- */
+ // TODO(chiuwinson): Enable in separate change to fail all presubmit builds and fix errors
private const val VERIFY_ALL_APKS = false
/** For auditing memory usage differences */
@@ -59,6 +54,11 @@ open class AndroidPackageParsingTestBase {
setCallback { true }
}
+ protected val packageParser2 = PackageParser2(null, false, context.resources.displayMetrics,
+ null, object : PackageParser2.Callback() {
+ override fun hasFeature(feature: String?) = true
+ })
+
/**
* It would be difficult to mock all possibilities, so just use the APKs on device.
* Unfortunately, this means the device must be bootable to verify potentially
@@ -98,7 +98,7 @@ open class AndroidPackageParsingTestBase {
}
this.newPackages = apks.map {
- packageParser.parseParsedPackage(it, PackageParser.PARSE_IS_SYSTEM_DIR, false)
+ packageParser2.parsePackage(it, PackageParser.PARSE_IS_SYSTEM_DIR, false)
}
if (DUMP_HPROF_TO_EXTERNAL) {
diff --git a/core/tests/coretests/src/android/content/pm/PackageParserTest.java b/services/tests/servicestests/src/com/android/server/pm/parsing/PackageParserLegacyCoreTest.java
index 46e992ee9362..ec4776da4914 100644
--- a/core/tests/coretests/src/android/content/pm/PackageParserTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/PackageParserLegacyCoreTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2020 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.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.content.pm;
+package com.android.server.pm.parsing;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -24,21 +24,26 @@ import static org.junit.Assert.fail;
import android.apex.ApexInfo;
import android.content.Context;
-import android.content.pm.parsing.AndroidPackage;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageParser;
+import android.content.pm.PermissionInfo;
import android.content.pm.parsing.ComponentParseUtils.ParsedComponent;
import android.content.pm.parsing.ComponentParseUtils.ParsedPermission;
-import android.content.pm.parsing.ParsedPackage;
import android.os.Build;
import android.os.Bundle;
import android.os.FileUtils;
-import android.util.Log;
+import android.platform.test.annotations.Presubmit;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
-import com.android.frameworks.coretests.R;
+import com.android.frameworks.servicestests.R;
import com.android.internal.util.ArrayUtils;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -47,9 +52,19 @@ import java.io.File;
import java.io.InputStream;
import java.util.function.Function;
+/**
+ * {@link ParsedPackage} was moved to the server, so this test moved along with it.
+ *
+ * This should be eventually refactored to a comprehensive parsing test, combined with its
+ * server variant in the parent package.
+ *
+ * TODO(b/135203078): Remove this test and replicate the cases in the actual com.android.server
+ * variant.
+ */
+@Presubmit
@SmallTest
@RunWith(AndroidJUnit4.class)
-public class PackageParserTest {
+public class PackageParserLegacyCoreTest {
private static final String RELEASED = null;
private static final String OLDER_PRE_RELEASE = "A";
private static final String PRE_RELEASE = "B";
@@ -87,6 +102,10 @@ public class PackageParserTest {
}
}
+ private PackageParser2 makeParser() {
+ return new PackageParser2(null, false, null, null, null);
+ }
+
@Test
public void testComputeMinSdkVersion_preReleasePlatform() {
// Do allow older release minSdkVersion on pre-release platform.
@@ -339,7 +358,7 @@ public class PackageParserTest {
try {
outFile = copyRawResourceToFile(apkFileName, apkResourceId);
return converter.apply(
- new PackageParser().parseParsedPackage(outFile, 0 /* flags */, false));
+ makeParser().parsePackage(outFile, 0 /* flags */, false));
} finally {
if (outFile != null) {
outFile.delete();
@@ -406,7 +425,7 @@ public class PackageParserTest {
@Test
public void testPackageWithComponents_cached() throws Exception {
checkPackageWithComponents(p ->
- PackageParser.fromCacheEntryStatic(PackageParser.toCacheEntryStatic(p)));
+ PackageCacher.fromCacheEntryStatic(PackageCacher.toCacheEntryStatic(p)));
}
private void checkPackageWithComponents(
@@ -426,7 +445,7 @@ public class PackageParserTest {
assertOneComponentOfEachType("com.android.frameworks.coretests.Test%s", p);
- assertMetadata(p.getAppMetaData(),
+ assertMetadata(p.getMetaData(),
"key1", "value1",
"key2", "this_is_app");
assertMetadata(p.getActivities().get(0).getMetaData(),
@@ -466,7 +485,7 @@ public class PackageParserTest {
@Test
public void testPackageWithIntentFilters_cached() throws Exception {
checkPackageWithIntentFilters(p ->
- PackageParser.fromCacheEntryStatic(PackageParser.toCacheEntryStatic(p)));
+ PackageCacher.fromCacheEntryStatic(PackageCacher.toCacheEntryStatic(p)));
}
private void checkPackageWithIntentFilters(
@@ -474,13 +493,12 @@ public class PackageParserTest {
ParsedPackage p = parsePackage(
"install_intent_filters.apk", R.raw.install_intent_filters,
converter);
- String packageName = "com.android.frameworks.coretests.install_intent_filters";
+ String packageName = "com.android.frameworks.servicestests.install_intent_filters";
assertEquals(packageName, p.getPackageName());
findAndRemoveAppDetailsActivity(p);
- Log.e("ParserTest", "" + p.getActivities());
assertEquals("Expected exactly one activity", 1, p.getActivities().size());
assertEquals("Expected exactly one intent filter",
1, p.getActivities().get(0).intents.size());
diff --git a/core/tests/coretests/src/android/content/pm/parsing/library/AndroidHidlUpdaterTest.java b/services/tests/servicestests/src/com/android/server/pm/parsing/library/AndroidHidlUpdaterTest.java
index 21479c096752..6b600421666e 100644
--- a/core/tests/coretests/src/android/content/pm/parsing/library/AndroidHidlUpdaterTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/library/AndroidHidlUpdaterTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 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.
@@ -14,25 +14,28 @@
* limitations under the License.
*/
-package android.content.pm.parsing.library;
+package com.android.server.pm.parsing.library;
-import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_HIDL_BASE;
-import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_HIDL_MANAGER;
+import static com.android.server.pm.parsing.library.SharedLibraryNames.ANDROID_HIDL_BASE;
+import static com.android.server.pm.parsing.library.SharedLibraryNames.ANDROID_HIDL_MANAGER;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.PackageImpl;
-import android.content.pm.parsing.ParsedPackage;
import android.os.Build;
+import android.platform.test.annotations.Presubmit;
import androidx.test.filters.SmallTest;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
/**
- * Test for {@link AndroidHidlUpdater}
+ * Test for {@link com.android.server.pm.parsing.library.AndroidHidlUpdater}
*/
+@Presubmit
@SmallTest
@RunWith(JUnit4.class)
public class AndroidHidlUpdaterTest extends PackageSharedLibraryUpdaterTest {
@@ -41,13 +44,13 @@ public class AndroidHidlUpdaterTest extends PackageSharedLibraryUpdaterTest {
@Test
public void targeted_at_P() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.P)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.P)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// no change, not system
@@ -56,17 +59,17 @@ public class AndroidHidlUpdaterTest extends PackageSharedLibraryUpdaterTest {
@Test
public void targeted_at_P_system() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.P)
- .hideAsParsed()
+ .hideAsParsed())
.setSystem(true);
// Should add both HIDL libraries
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.P)
.addUsesLibrary(ANDROID_HIDL_MANAGER)
.addUsesLibrary(ANDROID_HIDL_BASE)
- .hideAsParsed()
+ .hideAsParsed())
.setSystem(true)
.hideAsFinal();
@@ -75,15 +78,15 @@ public class AndroidHidlUpdaterTest extends PackageSharedLibraryUpdaterTest {
@Test
public void targeted_at_P_not_empty_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.P)
.addUsesLibrary(OTHER_LIBRARY)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.P)
.addUsesLibrary(OTHER_LIBRARY)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// no change, not system
@@ -92,20 +95,20 @@ public class AndroidHidlUpdaterTest extends PackageSharedLibraryUpdaterTest {
@Test
public void targeted_at_P_not_empty_usesLibraries_system() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.P)
.addUsesLibrary(OTHER_LIBRARY)
- .hideAsParsed()
+ .hideAsParsed())
.setSystem(true);
// The hidl jars should be added at the start of the list because it
// is not on the bootclasspath and the package targets pre-P.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.P)
.addUsesLibrary(ANDROID_HIDL_MANAGER)
.addUsesLibrary(ANDROID_HIDL_BASE)
.addUsesLibrary(OTHER_LIBRARY)
- .hideAsParsed()
+ .hideAsParsed())
.setSystem(true)
.hideAsFinal();
@@ -114,15 +117,15 @@ public class AndroidHidlUpdaterTest extends PackageSharedLibraryUpdaterTest {
@Test
public void targeted_at_P_in_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.P)
.addUsesLibrary(ANDROID_HIDL_MANAGER)
.addUsesLibrary(ANDROID_HIDL_BASE)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.P)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// Libraries are removed because they are not available for non-system apps
@@ -131,18 +134,18 @@ public class AndroidHidlUpdaterTest extends PackageSharedLibraryUpdaterTest {
@Test
public void targeted_at_P_in_usesLibraries_system() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.P)
.addUsesLibrary(ANDROID_HIDL_MANAGER)
.addUsesLibrary(ANDROID_HIDL_BASE)
- .hideAsParsed()
+ .hideAsParsed())
.setSystem(true);
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.P)
.addUsesLibrary(ANDROID_HIDL_MANAGER)
.addUsesLibrary(ANDROID_HIDL_BASE)
- .hideAsParsed()
+ .hideAsParsed())
.setSystem(true)
.hideAsFinal();
@@ -153,15 +156,15 @@ public class AndroidHidlUpdaterTest extends PackageSharedLibraryUpdaterTest {
@Test
public void in_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesLibrary(ANDROID_HIDL_BASE)
- .hideAsParsed();
+ .hideAsParsed());
// Dependency is removed, it is not available.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// Libraries are removed because they are not available for apps targeting Q+
@@ -170,15 +173,15 @@ public class AndroidHidlUpdaterTest extends PackageSharedLibraryUpdaterTest {
@Test
public void in_usesOptionalLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesOptionalLibrary(ANDROID_HIDL_BASE)
- .hideAsParsed();
+ .hideAsParsed());
// Dependency is removed, it is not available.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// Libraries are removed because they are not available for apps targeting Q+
diff --git a/core/tests/coretests/src/android/content/pm/parsing/library/AndroidTestBaseUpdaterTest.java b/services/tests/servicestests/src/com/android/server/pm/parsing/library/AndroidTestBaseUpdaterTest.java
index 65ae219058f4..083d4ac32902 100644
--- a/core/tests/coretests/src/android/content/pm/parsing/library/AndroidTestBaseUpdaterTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/library/AndroidTestBaseUpdaterTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 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.
@@ -14,24 +14,26 @@
* limitations under the License.
*/
-package android.content.pm.parsing.library;
+package com.android.server.pm.parsing.library;
-import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_BASE;
+import static com.android.server.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_BASE;
-import android.content.pm.OptionalClassRunner;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.PackageImpl;
-import android.content.pm.parsing.ParsedPackage;
import android.os.Build;
+import android.platform.test.annotations.Presubmit;
import androidx.test.filters.SmallTest;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
+
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* Test for {@link AndroidTestBaseUpdater}
*/
+@Presubmit
@SmallTest
@RunWith(OptionalClassRunner.class)
@OptionalClassRunner.OptionalClass("android.content.pm.parsing.library.AndroidTestBaseUpdater")
@@ -41,15 +43,15 @@ public class AndroidTestBaseUpdaterTest extends PackageSharedLibraryUpdaterTest
@Test
public void targeted_at_Q() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.Q)
- .hideAsParsed();
+ .hideAsParsed());
// Should add org.apache.http.legacy.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.Q)
.addUsesLibrary(ANDROID_TEST_BASE)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -57,18 +59,18 @@ public class AndroidTestBaseUpdaterTest extends PackageSharedLibraryUpdaterTest
@Test
public void targeted_at_Q_not_empty_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.Q)
.addUsesLibrary(OTHER_LIBRARY)
- .hideAsParsed();
+ .hideAsParsed());
// The org.apache.http.legacy jar should be added at the start of the list because it
// is not on the bootclasspath and the package targets pre-Q.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.Q)
.addUsesLibrary(ANDROID_TEST_BASE)
.addUsesLibrary(OTHER_LIBRARY)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -76,15 +78,15 @@ public class AndroidTestBaseUpdaterTest extends PackageSharedLibraryUpdaterTest
@Test
public void targeted_at_Q_in_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.Q)
.addUsesLibrary(ANDROID_TEST_BASE)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.Q)
.addUsesLibrary(ANDROID_TEST_BASE)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// No change is required because although org.apache.http.legacy has been removed from
@@ -94,15 +96,15 @@ public class AndroidTestBaseUpdaterTest extends PackageSharedLibraryUpdaterTest
@Test
public void targeted_at_Q_in_usesOptionalLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.Q)
.addUsesOptionalLibrary(ANDROID_TEST_BASE)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.Q)
.addUsesOptionalLibrary(ANDROID_TEST_BASE)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// No change is required because although org.apache.http.legacy has been removed from
@@ -112,15 +114,15 @@ public class AndroidTestBaseUpdaterTest extends PackageSharedLibraryUpdaterTest
@Test
public void in_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesLibrary(ANDROID_TEST_BASE)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesLibrary(ANDROID_TEST_BASE)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// No change is required because the package explicitly requests org.apache.http.legacy
@@ -130,15 +132,15 @@ public class AndroidTestBaseUpdaterTest extends PackageSharedLibraryUpdaterTest
@Test
public void in_usesOptionalLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesOptionalLibrary(ANDROID_TEST_BASE)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesOptionalLibrary(ANDROID_TEST_BASE)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// No change is required because the package explicitly requests org.apache.http.legacy
diff --git a/core/tests/coretests/src/android/content/pm/parsing/library/AndroidTestRunnerSplitUpdaterTest.java b/services/tests/servicestests/src/com/android/server/pm/parsing/library/AndroidTestRunnerSplitUpdaterTest.java
index 38755b9aa965..77197e3c6bcb 100644
--- a/core/tests/coretests/src/android/content/pm/parsing/library/AndroidTestRunnerSplitUpdaterTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/library/AndroidTestRunnerSplitUpdaterTest.java
@@ -14,19 +14,21 @@
* limitations under the License.
*/
-package android.content.pm.parsing.library;
+package com.android.server.pm.parsing.library;
-import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_MOCK;
-import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_RUNNER;
+import static com.android.server.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_MOCK;
+import static com.android.server.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_RUNNER;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.PackageImpl;
-import android.content.pm.parsing.ParsedPackage;
-import android.content.pm.parsing.library.PackageBackwardCompatibility.AndroidTestRunnerSplitUpdater;
import android.os.Build;
+import android.platform.test.annotations.Presubmit;
import androidx.test.filters.SmallTest;
+import com.android.server.pm.parsing.library.PackageBackwardCompatibility.AndroidTestRunnerSplitUpdater;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -34,22 +36,23 @@ import org.junit.runners.JUnit4;
/**
* Test for {@link AndroidTestRunnerSplitUpdater}
*/
+@Presubmit
@SmallTest
@RunWith(JUnit4.class)
public class AndroidTestRunnerSplitUpdaterTest extends PackageSharedLibraryUpdaterTest {
@Test
public void android_test_runner_in_usesOptionalLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesOptionalLibrary(ANDROID_TEST_RUNNER)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesOptionalLibrary(ANDROID_TEST_MOCK)
.addUsesOptionalLibrary(ANDROID_TEST_RUNNER)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -57,17 +60,17 @@ public class AndroidTestRunnerSplitUpdaterTest extends PackageSharedLibraryUpdat
@Test
public void android_test_runner_in_usesLibraries_android_test_mock_in_usesOptionalLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesLibrary(ANDROID_TEST_RUNNER)
.addUsesOptionalLibrary(ANDROID_TEST_MOCK)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesLibrary(ANDROID_TEST_RUNNER)
.addUsesOptionalLibrary(ANDROID_TEST_MOCK)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
diff --git a/core/tests/coretests/src/android/content/pm/OptionalClassRunner.java b/services/tests/servicestests/src/com/android/server/pm/parsing/library/OptionalClassRunner.java
index 05db8ee29844..0ebfe1a0eecb 100644
--- a/core/tests/coretests/src/android/content/pm/OptionalClassRunner.java
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/library/OptionalClassRunner.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2019 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.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.content.pm;
+package com.android.server.pm.parsing.library;
import org.junit.Assume;
import org.junit.runner.Description;
diff --git a/core/tests/coretests/src/android/content/pm/parsing/library/OrgApacheHttpLegacyUpdaterTest.java b/services/tests/servicestests/src/com/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdaterTest.java
index 4c7899b47164..dd80f2600646 100644
--- a/core/tests/coretests/src/android/content/pm/parsing/library/OrgApacheHttpLegacyUpdaterTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdaterTest.java
@@ -14,24 +14,26 @@
* limitations under the License.
*/
-package android.content.pm.parsing.library;
+package com.android.server.pm.parsing.library;
-import static android.content.pm.parsing.library.SharedLibraryNames.ORG_APACHE_HTTP_LEGACY;
+import static com.android.server.pm.parsing.library.SharedLibraryNames.ORG_APACHE_HTTP_LEGACY;
-import android.content.pm.OptionalClassRunner;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.PackageImpl;
-import android.content.pm.parsing.ParsedPackage;
import android.os.Build;
+import android.platform.test.annotations.Presubmit;
import androidx.test.filters.SmallTest;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
+
import org.junit.Test;
import org.junit.runner.RunWith;
/**
- * Test for {@link OrgApacheHttpLegacyUpdater}
+ * Test for {@link com.android.server.pm.parsing.library.OrgApacheHttpLegacyUpdater}
*/
+@Presubmit
@SmallTest
@RunWith(OptionalClassRunner.class)
@OptionalClassRunner.OptionalClass("android.content.pm.parsing.library.OrgApacheHttpLegacyUpdater")
@@ -41,15 +43,15 @@ public class OrgApacheHttpLegacyUpdaterTest extends PackageSharedLibraryUpdaterT
@Test
public void targeted_at_O() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
- .hideAsParsed();
+ .hideAsParsed());
// Should add org.apache.http.legacy.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -57,18 +59,18 @@ public class OrgApacheHttpLegacyUpdaterTest extends PackageSharedLibraryUpdaterT
@Test
public void targeted_at_O_not_empty_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesLibrary(OTHER_LIBRARY)
- .hideAsParsed();
+ .hideAsParsed());
// The org.apache.http.legacy jar should be added at the start of the list because it
// is not on the bootclasspath and the package targets pre-P.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesLibrary(ORG_APACHE_HTTP_LEGACY)
.addUsesLibrary(OTHER_LIBRARY)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -76,15 +78,15 @@ public class OrgApacheHttpLegacyUpdaterTest extends PackageSharedLibraryUpdaterT
@Test
public void targeted_at_O_in_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// No change is required because although org.apache.http.legacy has been removed from
@@ -94,15 +96,15 @@ public class OrgApacheHttpLegacyUpdaterTest extends PackageSharedLibraryUpdaterT
@Test
public void targeted_at_O_in_usesOptionalLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesOptionalLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesOptionalLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// No change is required because although org.apache.http.legacy has been removed from
@@ -112,15 +114,15 @@ public class OrgApacheHttpLegacyUpdaterTest extends PackageSharedLibraryUpdaterT
@Test
public void in_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// No change is required because the package explicitly requests org.apache.http.legacy
@@ -130,15 +132,15 @@ public class OrgApacheHttpLegacyUpdaterTest extends PackageSharedLibraryUpdaterT
@Test
public void in_usesOptionalLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesOptionalLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesOptionalLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// No change is required because the package explicitly requests org.apache.http.legacy
diff --git a/core/tests/coretests/src/android/content/pm/parsing/library/PackageBackwardCompatibilityTest.java b/services/tests/servicestests/src/com/android/server/pm/parsing/library/PackageBackwardCompatibilityTest.java
index 00d468de4ee4..ca3886092cf1 100644
--- a/core/tests/coretests/src/android/content/pm/parsing/library/PackageBackwardCompatibilityTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/library/PackageBackwardCompatibilityTest.java
@@ -14,40 +14,43 @@
* limitations under the License.
*/
-package android.content.pm.parsing.library;
+package com.android.server.pm.parsing.library;
-import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_BASE;
-import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_MOCK;
-import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_RUNNER;
-import static android.content.pm.parsing.library.SharedLibraryNames.ORG_APACHE_HTTP_LEGACY;
+import static com.android.server.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_BASE;
+import static com.android.server.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_MOCK;
+import static com.android.server.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_RUNNER;
+import static com.android.server.pm.parsing.library.SharedLibraryNames.ORG_APACHE_HTTP_LEGACY;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.PackageImpl;
-import android.content.pm.parsing.ParsedPackage;
import android.content.pm.parsing.ParsingPackage;
-import android.content.pm.parsing.library.PackageBackwardCompatibility.RemoveUnnecessaryAndroidTestBaseLibrary;
import android.os.Build;
+import android.platform.test.annotations.Presubmit;
import androidx.test.filters.SmallTest;
+import com.android.server.pm.parsing.library.PackageBackwardCompatibility.RemoveUnnecessaryAndroidTestBaseLibrary;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
+
import org.junit.Assume;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
+@Presubmit
@SmallTest
@RunWith(JUnit4.class)
public class PackageBackwardCompatibilityTest extends PackageSharedLibraryUpdaterTest {
@Test
public void null_usesLibraries_and_usesOptionalLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -74,12 +77,12 @@ public class PackageBackwardCompatibilityTest extends PackageSharedLibraryUpdate
*/
@Test
public void targeted_at_O() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.setTargetSdkVersion(Build.VERSION_CODES.O)
- .hideAsParsed();
+ .hideAsParsed());
- ParsingPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsingPackage after = PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.setTargetSdkVersion(Build.VERSION_CODES.O);
@@ -88,7 +91,7 @@ public class PackageBackwardCompatibilityTest extends PackageSharedLibraryUpdate
}
after.addUsesLibrary(ORG_APACHE_HTTP_LEGACY);
- checkBackwardsCompatibility(before, after.hideAsParsed().hideAsFinal());
+ checkBackwardsCompatibility(before, ((ParsedPackage) after.hideAsParsed()).hideAsFinal());
}
/**
@@ -105,16 +108,16 @@ public class PackageBackwardCompatibilityTest extends PackageSharedLibraryUpdate
+ ANDROID_TEST_BASE + " is on the bootclasspath",
PackageBackwardCompatibility.bootClassPathContainsATB());
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesLibrary(ANDROID_TEST_BASE)
- .hideAsParsed();
+ .hideAsParsed());
// android.test.base should be removed from the libraries because it is provided
// on the bootclasspath and providing both increases start up cost unnecessarily.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -129,12 +132,12 @@ public class PackageBackwardCompatibilityTest extends PackageSharedLibraryUpdate
*/
@Test
public void android_test_runner_in_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesLibrary(ANDROID_TEST_RUNNER)
- .hideAsParsed();
+ .hideAsParsed());
- ParsingPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsingPackage after = PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT);
if (!PackageBackwardCompatibility.bootClassPathContainsATB()) {
after.addUsesLibrary(ANDROID_TEST_BASE);
@@ -142,7 +145,7 @@ public class PackageBackwardCompatibilityTest extends PackageSharedLibraryUpdate
after.addUsesLibrary(ANDROID_TEST_MOCK);
after.addUsesLibrary(ANDROID_TEST_RUNNER);
- checkBackwardsCompatibility(before, after.hideAsParsed().hideAsFinal());
+ checkBackwardsCompatibility(before, ((ParsedPackage) after.hideAsParsed()).hideAsFinal());
}
private void checkBackwardsCompatibility(ParsedPackage before, AndroidPackage after) {
diff --git a/core/tests/coretests/src/android/content/pm/parsing/library/PackageSharedLibraryUpdaterTest.java b/services/tests/servicestests/src/com/android/server/pm/parsing/library/PackageSharedLibraryUpdaterTest.java
index e7a80e1a7618..1d0a75a86d4b 100644
--- a/core/tests/coretests/src/android/content/pm/parsing/library/PackageSharedLibraryUpdaterTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/library/PackageSharedLibraryUpdaterTest.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package android.content.pm.parsing.library;
+package com.android.server.pm.parsing.library;
import static org.junit.Assert.assertEquals;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.ParsedPackage;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
import java.util.function.Supplier;
diff --git a/core/tests/coretests/src/android/content/pm/parsing/library/RemoveUnnecessaryAndroidTestBaseLibraryTest.java b/services/tests/servicestests/src/com/android/server/pm/parsing/library/RemoveUnnecessaryAndroidTestBaseLibraryTest.java
index fd3ba2bd0c68..1122490d6b1a 100644
--- a/core/tests/coretests/src/android/content/pm/parsing/library/RemoveUnnecessaryAndroidTestBaseLibraryTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/library/RemoveUnnecessaryAndroidTestBaseLibraryTest.java
@@ -14,18 +14,20 @@
* limitations under the License.
*/
-package android.content.pm.parsing.library;
+package com.android.server.pm.parsing.library;
-import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_BASE;
+import static com.android.server.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_BASE;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.PackageImpl;
-import android.content.pm.parsing.ParsedPackage;
-import android.content.pm.parsing.library.PackageBackwardCompatibility.RemoveUnnecessaryAndroidTestBaseLibrary;
import android.os.Build;
+import android.platform.test.annotations.Presubmit;
import androidx.test.filters.SmallTest;
+import com.android.server.pm.parsing.library.PackageBackwardCompatibility.RemoveUnnecessaryAndroidTestBaseLibrary;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -33,6 +35,7 @@ import org.junit.runners.JUnit4;
/**
* Test for {@link RemoveUnnecessaryAndroidTestBaseLibrary}
*/
+@Presubmit
@SmallTest
@RunWith(JUnit4.class)
public class RemoveUnnecessaryAndroidTestBaseLibraryTest
@@ -42,13 +45,13 @@ public class RemoveUnnecessaryAndroidTestBaseLibraryTest
@Test
public void targeted_at_O() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// No change required.
@@ -57,15 +60,15 @@ public class RemoveUnnecessaryAndroidTestBaseLibraryTest
@Test
public void targeted_at_O_not_empty_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesLibrary(OTHER_LIBRARY)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesLibrary(OTHER_LIBRARY)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// No change required.
@@ -74,16 +77,16 @@ public class RemoveUnnecessaryAndroidTestBaseLibraryTest
@Test
public void targeted_at_O_in_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesLibrary(ANDROID_TEST_BASE)
- .hideAsParsed();
+ .hideAsParsed());
// android.test.base should be removed from the libraries because it is provided
// on the bootclasspath and providing both increases start up cost unnecessarily.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -91,16 +94,16 @@ public class RemoveUnnecessaryAndroidTestBaseLibraryTest
@Test
public void targeted_at_O_in_usesOptionalLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesOptionalLibrary(ANDROID_TEST_BASE)
- .hideAsParsed();
+ .hideAsParsed());
// android.test.base should be removed from the libraries because it is provided
// on the bootclasspath and providing both increases start up cost unnecessarily.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -108,14 +111,14 @@ public class RemoveUnnecessaryAndroidTestBaseLibraryTest
@Test
public void in_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.addUsesLibrary(ANDROID_TEST_BASE)
- .hideAsParsed();
+ .hideAsParsed());
// android.test.base should be removed from the libraries because it is provided
// on the bootclasspath and providing both increases start up cost unnecessarily.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
- .hideAsParsed()
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -123,16 +126,16 @@ public class RemoveUnnecessaryAndroidTestBaseLibraryTest
@Test
public void in_usesOptionalLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesOptionalLibrary(ANDROID_TEST_BASE)
- .hideAsParsed();
+ .hideAsParsed());
// android.test.base should be removed from the libraries because it is provided
// on the bootclasspath and providing both increases start up cost unnecessarily.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -140,17 +143,17 @@ public class RemoveUnnecessaryAndroidTestBaseLibraryTest
@Test
public void in_bothLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesLibrary(ANDROID_TEST_BASE)
.addUsesOptionalLibrary(ANDROID_TEST_BASE)
- .hideAsParsed();
+ .hideAsParsed());
// android.test.base should be removed from the libraries because it is provided
// on the bootclasspath and providing both increases start up cost unnecessarily.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
diff --git a/core/tests/coretests/src/android/content/pm/parsing/library/RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest.java b/services/tests/servicestests/src/com/android/server/pm/parsing/library/RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest.java
index d3494d93ae52..3cc84753b810 100644
--- a/core/tests/coretests/src/android/content/pm/parsing/library/RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/library/RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest.java
@@ -14,18 +14,20 @@
* limitations under the License.
*/
-package android.content.pm.parsing.library;
+package com.android.server.pm.parsing.library;
-import static android.content.pm.parsing.library.SharedLibraryNames.ORG_APACHE_HTTP_LEGACY;
+import static com.android.server.pm.parsing.library.SharedLibraryNames.ORG_APACHE_HTTP_LEGACY;
-import android.content.pm.parsing.AndroidPackage;
-import android.content.pm.parsing.PackageImpl;
-import android.content.pm.parsing.ParsedPackage;
-import android.content.pm.parsing.library.PackageBackwardCompatibility.RemoveUnnecessaryOrgApacheHttpLegacyLibrary;
import android.os.Build;
+import android.platform.test.annotations.Presubmit;
import androidx.test.filters.SmallTest;
+import com.android.server.pm.parsing.library.PackageBackwardCompatibility.RemoveUnnecessaryOrgApacheHttpLegacyLibrary;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
+import com.android.server.pm.parsing.pkg.PackageImpl;
+import com.android.server.pm.parsing.pkg.ParsedPackage;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -33,6 +35,7 @@ import org.junit.runners.JUnit4;
/**
* Test for {@link RemoveUnnecessaryOrgApacheHttpLegacyLibrary}
*/
+@Presubmit
@SmallTest
@RunWith(JUnit4.class)
public class RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest
@@ -42,13 +45,13 @@ public class RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest
@Test
public void targeted_at_O() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// No change required.
@@ -57,15 +60,15 @@ public class RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest
@Test
public void targeted_at_O_not_empty_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesLibrary(OTHER_LIBRARY)
- .hideAsParsed();
+ .hideAsParsed());
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesLibrary(OTHER_LIBRARY)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
// No change required.
@@ -74,16 +77,16 @@ public class RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest
@Test
public void targeted_at_O_in_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed();
+ .hideAsParsed());
// org.apache.http.legacy should be removed from the libraries because it is provided
// on the bootclasspath and providing both increases start up cost unnecessarily.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -91,16 +94,16 @@ public class RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest
@Test
public void targeted_at_O_in_usesOptionalLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
.addUsesOptionalLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed();
+ .hideAsParsed());
// org.apache.http.legacy should be removed from the libraries because it is provided
// on the bootclasspath and providing both increases start up cost unnecessarily.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.O)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -108,15 +111,16 @@ public class RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest
@Test
public void in_usesLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed();
+ .hideAsParsed());
// org.apache.http.legacy should be removed from the libraries because it is provided
// on the bootclasspath and providing both increases start up cost unnecessarily.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
- .hideAsParsed()
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
+ .setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -124,15 +128,16 @@ public class RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest
@Test
public void in_usesOptionalLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesOptionalLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed();
+ .hideAsParsed());
// org.apache.http.legacy should be removed from the libraries because it is provided
// on the bootclasspath and providing both increases start up cost unnecessarily.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
- .hideAsParsed()
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
+ .setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);
@@ -140,17 +145,17 @@ public class RemoveUnnecessaryOrgApacheHttpLegacyLibraryTest
@Test
public void in_bothLibraries() {
- ParsedPackage before = PackageImpl.forParsing(PACKAGE_NAME)
+ ParsedPackage before = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
.addUsesLibrary(ORG_APACHE_HTTP_LEGACY)
.addUsesOptionalLibrary(ORG_APACHE_HTTP_LEGACY)
- .hideAsParsed();
+ .hideAsParsed());
// org.apache.http.legacy should be removed from the libraries because it is provided
// on the bootclasspath and providing both increases start up cost unnecessarily.
- AndroidPackage after = PackageImpl.forParsing(PACKAGE_NAME)
+ AndroidPackage after = ((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME)
.setTargetSdkVersion(Build.VERSION_CODES.CUR_DEVELOPMENT)
- .hideAsParsed()
+ .hideAsParsed())
.hideAsFinal();
checkBackwardsCompatibility(before, after);