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

Commit 29f3a0b6 authored by Winson Chiu's avatar Winson Chiu Committed by Android (Google) Code Review
Browse files

Merge "Revert "Deprecate PackageParser#Package""

parents 4c23a598 8e18a0ab
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -314,7 +314,7 @@ java_defaults {

    exclude_srcs: [
        // See comment on framework-atb-backward-compatibility module below
        "core/java/android/content/pm/parsing/library/AndroidTestBaseUpdater.java",
        "core/java/android/content/pm/AndroidTestBaseUpdater.java",
    ],

    sdk_version: "core_platform",
@@ -447,7 +447,7 @@ java_library {
    name: "framework-atb-backward-compatibility",
    installable: true,
    srcs: [
        "core/java/android/content/pm/parsing/library/AndroidTestBaseUpdater.java",
        "core/java/android/content/pm/AndroidTestBaseUpdater.java",
    ],
}

+6 −6
Original line number Diff line number Diff line
@@ -877,7 +877,7 @@ android.content.pm.-$$Lambda$jpya2qgMDDEok2GAoKRDqPM5lIE
android.content.pm.ActivityInfo$1
android.content.pm.ActivityInfo$WindowLayout
android.content.pm.ActivityInfo
android.content.pm.parsing.library.AndroidHidlUpdater
android.content.pm.AndroidHidlUpdater
android.content.pm.ApplicationInfo$1
android.content.pm.ApplicationInfo
android.content.pm.BaseParceledListSlice
@@ -921,10 +921,10 @@ android.content.pm.LauncherApps$1
android.content.pm.LauncherApps
android.content.pm.ModuleInfo$1
android.content.pm.ModuleInfo
android.content.pm.parsing.library.OrgApacheHttpLegacyUpdater
android.content.pm.parsing.library.PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater
android.content.pm.parsing.library.PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary
android.content.pm.parsing.library.PackageBackwardCompatibility
android.content.pm.OrgApacheHttpLegacyUpdater
android.content.pm.PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater
android.content.pm.PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary
android.content.pm.PackageBackwardCompatibility
android.content.pm.PackageInfo$1
android.content.pm.PackageInfo
android.content.pm.PackageInstaller$Session
@@ -959,7 +959,7 @@ android.content.pm.PackageParser$SigningDetails$1
android.content.pm.PackageParser$SigningDetails
android.content.pm.PackageParser$SplitNameComparator
android.content.pm.PackageParser
android.content.pm.parsing.library.PackageSharedLibraryUpdater
android.content.pm.PackageSharedLibraryUpdater
android.content.pm.PackageStats$1
android.content.pm.PackageStats
android.content.pm.PackageUserState
+1 −2
Original line number Diff line number Diff line
@@ -1379,8 +1379,7 @@ public class ActivityInfo extends ComponentInfo implements Parcelable {
            this.minHeight = minHeight;
        }

        /** @hide */
        public WindowLayout(Parcel source) {
        WindowLayout(Parcel source) {
            width = source.readInt();
            widthFraction = source.readFloat();
            height = source.readInt();
+14 −12
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 * Copyright (C) 2018 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.
@@ -13,12 +13,12 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package android.content.pm.parsing.library;
package android.content.pm;

import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_HIDL_BASE;
import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_HIDL_MANAGER;
import static android.content.pm.SharedLibraryNames.ANDROID_HIDL_BASE;
import static android.content.pm.SharedLibraryNames.ANDROID_HIDL_MANAGER;

import android.content.pm.parsing.ParsedPackage;
import android.content.pm.PackageParser.Package;
import android.os.Build;

import com.android.internal.annotations.VisibleForTesting;
@@ -33,18 +33,20 @@ import com.android.internal.annotations.VisibleForTesting;
public class AndroidHidlUpdater extends PackageSharedLibraryUpdater {

    @Override
    public void updatePackage(ParsedPackage parsedPackage) {
    public void updatePackage(Package pkg) {
        ApplicationInfo info = pkg.applicationInfo;

        // This was the default <= P and is maintained for backwards compatibility.
        boolean isLegacy = parsedPackage.getTargetSdkVersion() <= Build.VERSION_CODES.P;
        boolean isLegacy = info.targetSdkVersion <= Build.VERSION_CODES.P;
        // Only system apps use these libraries
        boolean isSystem = parsedPackage.isSystemApp() || parsedPackage.isUpdatedSystemApp();
        boolean isSystem = info.isSystemApp() || info.isUpdatedSystemApp();

        if (isLegacy && isSystem) {
            prefixRequiredLibrary(parsedPackage, ANDROID_HIDL_BASE);
            prefixRequiredLibrary(parsedPackage, ANDROID_HIDL_MANAGER);
            prefixRequiredLibrary(pkg, ANDROID_HIDL_BASE);
            prefixRequiredLibrary(pkg, ANDROID_HIDL_MANAGER);
        } else {
            removeLibrary(parsedPackage, ANDROID_HIDL_BASE);
            removeLibrary(parsedPackage, ANDROID_HIDL_MANAGER);
            removeLibrary(pkg, ANDROID_HIDL_BASE);
            removeLibrary(pkg, ANDROID_HIDL_MANAGER);
        }
    }
}
+12 −12
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 * Copyright (C) 2018 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.
@@ -13,13 +13,12 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package android.content.pm.parsing.library;
package android.content.pm;

import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_BASE;
import static android.content.pm.parsing.library.SharedLibraryNames.ANDROID_TEST_RUNNER;
import static android.content.pm.SharedLibraryNames.ANDROID_TEST_BASE;
import static android.content.pm.SharedLibraryNames.ANDROID_TEST_RUNNER;

import android.content.pm.parsing.AndroidPackage;
import android.content.pm.parsing.ParsedPackage;
import android.content.pm.PackageParser.Package;
import android.os.Build;

import com.android.internal.annotations.VisibleForTesting;
@@ -39,22 +38,23 @@ import com.android.internal.annotations.VisibleForTesting;
@VisibleForTesting
public class AndroidTestBaseUpdater extends PackageSharedLibraryUpdater {

    private static boolean apkTargetsApiLevelLessThanOrEqualToQ(AndroidPackage pkg) {
        return pkg.getTargetSdkVersion() <= Build.VERSION_CODES.Q;
    private static boolean apkTargetsApiLevelLessThanOrEqualToQ(Package pkg) {
        int targetSdkVersion = pkg.applicationInfo.targetSdkVersion;
        return targetSdkVersion <= Build.VERSION_CODES.Q;
    }

    @Override
    public void updatePackage(ParsedPackage parsedPackage) {
    public void updatePackage(Package pkg) {
        // Packages targeted at <= Q expect the classes in the android.test.base library
        // to be accessible so this maintains backward compatibility by adding the
        // android.test.base library to those packages.
        if (apkTargetsApiLevelLessThanOrEqualToQ(parsedPackage)) {
            prefixRequiredLibrary(parsedPackage, ANDROID_TEST_BASE);
        if (apkTargetsApiLevelLessThanOrEqualToQ(pkg)) {
            prefixRequiredLibrary(pkg, ANDROID_TEST_BASE);
        } else {
            // If a package already depends on android.test.runner then add a dependency on
            // android.test.base because android.test.runner depends on classes from the
            // android.test.base library.
            prefixImplicitDependency(parsedPackage, ANDROID_TEST_RUNNER, ANDROID_TEST_BASE);
            prefixImplicitDependency(pkg, ANDROID_TEST_RUNNER, ANDROID_TEST_BASE);
        }
    }
}
Loading