Merge "pm: Disallow HIDL libs from boot jars >= Q."

am: 06182b0764

Change-Id: I8fe7d54fbbaeaca9e46d0ec2448af85776412316
This commit is contained in:
Steven Moreland
2018-10-22 00:24:22 -07:00
committed by android-build-merger
2 changed files with 19 additions and 10 deletions

View File

@@ -38,6 +38,9 @@ public class AndroidHidlUpdater extends PackageSharedLibraryUpdater {
if (pkg.applicationInfo.targetSdkVersion <= Build.VERSION_CODES.P) {
prefixRequiredLibrary(pkg, ANDROID_HIDL_BASE);
prefixRequiredLibrary(pkg, ANDROID_HIDL_MANAGER);
} else {
removeLibrary(pkg, ANDROID_HIDL_BASE);
removeLibrary(pkg, ANDROID_HIDL_MANAGER);
}
}
}

View File

@@ -36,37 +36,37 @@ public class AndroidHidlUpdaterTest extends PackageSharedLibraryUpdaterTest {
private static final String OTHER_LIBRARY = "other.library";
@Test
public void targeted_at_O() {
public void targeted_at_P() {
PackageBuilder before = builder()
.targetSdkVersion(Build.VERSION_CODES.O);
.targetSdkVersion(Build.VERSION_CODES.P);
// Should add both HIDL libraries
PackageBuilder after = builder()
.targetSdkVersion(Build.VERSION_CODES.O)
.targetSdkVersion(Build.VERSION_CODES.P)
.requiredLibraries(ANDROID_HIDL_MANAGER, ANDROID_HIDL_BASE);
checkBackwardsCompatibility(before, after);
}
@Test
public void targeted_at_O_not_empty_usesLibraries() {
public void targeted_at_P_not_empty_usesLibraries() {
PackageBuilder before = builder()
.targetSdkVersion(Build.VERSION_CODES.O)
.targetSdkVersion(Build.VERSION_CODES.P)
.requiredLibraries(OTHER_LIBRARY);
// 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.
PackageBuilder after = builder()
.targetSdkVersion(Build.VERSION_CODES.O)
.targetSdkVersion(Build.VERSION_CODES.P)
.requiredLibraries(ANDROID_HIDL_MANAGER, ANDROID_HIDL_BASE, OTHER_LIBRARY);
checkBackwardsCompatibility(before, after);
}
@Test
public void targeted_at_O_in_usesLibraries() {
public void targeted_at_P_in_usesLibraries() {
PackageBuilder before = builder()
.targetSdkVersion(Build.VERSION_CODES.O)
.targetSdkVersion(Build.VERSION_CODES.P)
.requiredLibraries(ANDROID_HIDL_MANAGER, ANDROID_HIDL_BASE);
// No change is required because although the HIDL libraries has been removed from
@@ -78,18 +78,24 @@ public class AndroidHidlUpdaterTest extends PackageSharedLibraryUpdaterTest {
public void in_usesLibraries() {
PackageBuilder before = builder().requiredLibraries(ANDROID_HIDL_BASE);
// Dependency is removed, it is not available.
PackageBuilder after = builder();
// No change is required because the package explicitly requests the HIDL libraries
// and is targeted at the current version so does not need backwards compatibility.
checkBackwardsCompatibility(before, before);
checkBackwardsCompatibility(before, after);
}
@Test
public void in_usesOptionalLibraries() {
PackageBuilder before = builder().optionalLibraries(ANDROID_HIDL_BASE);
// Dependency is removed, it is not available.
PackageBuilder after = builder();
// No change is required because the package explicitly requests the HIDL libraries
// and is targeted at the current version so does not need backwards compatibility.
checkBackwardsCompatibility(before, before);
checkBackwardsCompatibility(before, after);
}
private void checkBackwardsCompatibility(PackageBuilder before, PackageBuilder after) {