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

Commit 06182b07 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

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

parents 03c76607 ae888259
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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);
        }
    }
}
+16 −10
Original line number Diff line number Diff line
@@ -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) {