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

Commit c311df28 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert "Revert "SDK libraries."""

parents ad3751af a1613705
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -13240,6 +13240,7 @@ package android.content.pm {
    field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.SharedLibraryInfo> CREATOR;
    field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.SharedLibraryInfo> CREATOR;
    field public static final int TYPE_BUILTIN = 0; // 0x0
    field public static final int TYPE_BUILTIN = 0; // 0x0
    field public static final int TYPE_DYNAMIC = 1; // 0x1
    field public static final int TYPE_DYNAMIC = 1; // 0x1
    field public static final int TYPE_SDK = 3; // 0x3
    field public static final int TYPE_STATIC = 2; // 0x2
    field public static final int TYPE_STATIC = 2; // 0x2
    field public static final int VERSION_UNDEFINED = -1; // 0xffffffff
    field public static final int VERSION_UNDEFINED = -1; // 0xffffffff
  }
  }
+5 −5
Original line number Original line Diff line number Diff line
@@ -697,7 +697,7 @@ public abstract class PackageManager {
            MATCH_DISABLED_COMPONENTS,
            MATCH_DISABLED_COMPONENTS,
            MATCH_DISABLED_UNTIL_USED_COMPONENTS,
            MATCH_DISABLED_UNTIL_USED_COMPONENTS,
            MATCH_INSTANT,
            MATCH_INSTANT,
            MATCH_STATIC_SHARED_LIBRARIES,
            MATCH_STATIC_SHARED_AND_SDK_LIBRARIES,
            GET_DISABLED_UNTIL_USED_COMPONENTS,
            GET_DISABLED_UNTIL_USED_COMPONENTS,
            GET_UNINSTALLED_PACKAGES,
            GET_UNINSTALLED_PACKAGES,
            MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
            MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
@@ -721,7 +721,7 @@ public abstract class PackageManager {
            MATCH_SYSTEM_ONLY,
            MATCH_SYSTEM_ONLY,
            MATCH_UNINSTALLED_PACKAGES,
            MATCH_UNINSTALLED_PACKAGES,
            MATCH_INSTANT,
            MATCH_INSTANT,
            MATCH_STATIC_SHARED_LIBRARIES,
            MATCH_STATIC_SHARED_AND_SDK_LIBRARIES,
            GET_DISABLED_COMPONENTS,
            GET_DISABLED_COMPONENTS,
            GET_DISABLED_UNTIL_USED_COMPONENTS,
            GET_DISABLED_UNTIL_USED_COMPONENTS,
            GET_UNINSTALLED_PACKAGES,
            GET_UNINSTALLED_PACKAGES,
@@ -1038,14 +1038,14 @@ public abstract class PackageManager {
    public static final int MATCH_EXPLICITLY_VISIBLE_ONLY = 0x02000000;
    public static final int MATCH_EXPLICITLY_VISIBLE_ONLY = 0x02000000;


    /**
    /**
     * Internal {@link PackageInfo} flag: include static shared libraries.
     * Internal {@link PackageInfo} flag: include static shared and SDK libraries.
     * Apps that depend on static shared libs can always access the version
     * Apps that depend on static shared/SDK libs can always access the version
     * of the lib they depend on. System/shell/root can access all shared
     * of the lib they depend on. System/shell/root can access all shared
     * libs regardless of dependency but need to explicitly ask for them
     * libs regardless of dependency but need to explicitly ask for them
     * via this flag.
     * via this flag.
     * @hide
     * @hide
     */
     */
    public static final int MATCH_STATIC_SHARED_LIBRARIES = 0x04000000;
    public static final int MATCH_STATIC_SHARED_AND_SDK_LIBRARIES = 0x04000000;


    /**
    /**
     * {@link PackageInfo} flag: return the signing certificates associated with
     * {@link PackageInfo} flag: return the signing certificates associated with
+17 −0
Original line number Original line Diff line number Diff line
@@ -69,6 +69,13 @@ public final class SharedLibraryInfo implements Parcelable {
     */
     */
    public static final int TYPE_STATIC = 2;
    public static final int TYPE_STATIC = 2;


    /**
     * SDK library type: this library is <strong>not</strong> backwards
     * -compatible, can be updated and updates can be uninstalled. Clients
     * depend on a specific version of the library.
     */
    public static final int TYPE_SDK = 3;

    /**
    /**
     * Constant for referring to an undefined version.
     * Constant for referring to an undefined version.
     */
     */
@@ -288,6 +295,13 @@ public final class SharedLibraryInfo implements Parcelable {
        return mType == TYPE_STATIC;
        return mType == TYPE_STATIC;
    }
    }


    /**
     * @hide
     */
    public boolean isSdk() {
        return mType == TYPE_SDK;
    }

    /**
    /**
     * Gets the package that declares the library.
     * Gets the package that declares the library.
     *
     *
@@ -351,6 +365,9 @@ public final class SharedLibraryInfo implements Parcelable {
            case TYPE_STATIC: {
            case TYPE_STATIC: {
                return "static";
                return "static";
            }
            }
            case TYPE_SDK: {
                return "sdk";
            }
            default: {
            default: {
                return "unknown";
                return "unknown";
            }
            }
+10 −4
Original line number Original line Diff line number Diff line
@@ -103,11 +103,11 @@ public interface ParsingPackage extends ParsingPackageRead {


    ParsingPackage addUsesOptionalNativeLibrary(String libraryName);
    ParsingPackage addUsesOptionalNativeLibrary(String libraryName);


    ParsingPackage addUsesStaticLibrary(String libraryName);
    ParsingPackage addUsesSdkLibrary(String libraryName, long versionMajor,
            String[] certSha256Digests);


    ParsingPackage addUsesStaticLibraryCertDigests(String[] certSha256Digests);
    ParsingPackage addUsesStaticLibrary(String libraryName, long version,

            String[] certSha256Digests);
    ParsingPackage addUsesStaticLibraryVersion(long version);


    ParsingPackage addQueriesIntent(Intent intent);
    ParsingPackage addQueriesIntent(Intent intent);


@@ -212,6 +212,12 @@ public interface ParsingPackage extends ParsingPackageRead {


    ParsingPackage setRestoreAnyVersion(boolean restoreAnyVersion);
    ParsingPackage setRestoreAnyVersion(boolean restoreAnyVersion);


    ParsingPackage setSdkLibName(String sdkLibName);

    ParsingPackage setSdkLibVersionMajor(int sdkLibVersionMajor);

    ParsingPackage setSdkLibrary(boolean sdkLibrary);

    ParsingPackage setSplitHasCode(int splitIndex, boolean splitHasCode);
    ParsingPackage setSplitHasCode(int splitIndex, boolean splitHasCode);


    ParsingPackage setStaticSharedLibrary(boolean staticSharedLibrary);
    ParsingPackage setStaticSharedLibrary(boolean staticSharedLibrary);
+105 −15
Original line number Original line Diff line number Diff line
@@ -177,6 +177,10 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
    @DataClass.ParcelWith(ForInternedStringValueMap.class)
    @DataClass.ParcelWith(ForInternedStringValueMap.class)
    private Map<String, String> overlayables = emptyMap();
    private Map<String, String> overlayables = emptyMap();


    @Nullable
    @DataClass.ParcelWith(ForInternedString.class)
    private String sdkLibName;
    private int sdkLibVersionMajor;
    @Nullable
    @Nullable
    @DataClass.ParcelWith(ForInternedString.class)
    @DataClass.ParcelWith(ForInternedString.class)
    private String staticSharedLibName;
    private String staticSharedLibName;
@@ -203,10 +207,17 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
    private List<String> usesStaticLibraries = emptyList();
    private List<String> usesStaticLibraries = emptyList();
    @Nullable
    @Nullable
    private long[] usesStaticLibrariesVersions;
    private long[] usesStaticLibrariesVersions;

    @Nullable
    @Nullable
    private String[][] usesStaticLibrariesCertDigests;
    private String[][] usesStaticLibrariesCertDigests;


    @NonNull
    @DataClass.ParcelWith(ForInternedStringList.class)
    private List<String> usesSdkLibraries = emptyList();
    @Nullable
    private long[] usesSdkLibrariesVersionsMajor;
    @Nullable
    private String[][] usesSdkLibrariesCertDigests;

    @Nullable
    @Nullable
    @DataClass.ParcelWith(ForInternedString.class)
    @DataClass.ParcelWith(ForInternedString.class)
    private String sharedUserId;
    private String sharedUserId;
@@ -518,6 +529,7 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
        private static final long REQUEST_FOREGROUND_SERVICE_EXEMPTION = 1L << 46;
        private static final long REQUEST_FOREGROUND_SERVICE_EXEMPTION = 1L << 46;
        private static final long ATTRIBUTIONS_ARE_USER_VISIBLE = 1L << 47;
        private static final long ATTRIBUTIONS_ARE_USER_VISIBLE = 1L << 47;
        private static final long RESET_ENABLED_SETTINGS_ON_APP_DATA_CLEARED = 1L << 48;
        private static final long RESET_ENABLED_SETTINGS_ON_APP_DATA_CLEARED = 1L << 48;
        private static final long SDK_LIBRARY = 1L << 49;
    }
    }


    private ParsingPackageImpl setBoolean(@Booleans.Values long flag, boolean value) {
    private ParsingPackageImpl setBoolean(@Booleans.Values long flag, boolean value) {
@@ -828,21 +840,24 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
    }
    }


    @Override
    @Override
    public ParsingPackageImpl addUsesStaticLibrary(String libraryName) {
    public ParsingPackageImpl addUsesSdkLibrary(String libraryName, long versionMajor,
        this.usesStaticLibraries = CollectionUtils.add(this.usesStaticLibraries,
            String[] certSha256Digests) {
        this.usesSdkLibraries = CollectionUtils.add(this.usesSdkLibraries,
                TextUtils.safeIntern(libraryName));
                TextUtils.safeIntern(libraryName));
        this.usesSdkLibrariesVersionsMajor = ArrayUtils.appendLong(
                this.usesSdkLibrariesVersionsMajor, versionMajor, true);
        this.usesSdkLibrariesCertDigests = ArrayUtils.appendElement(String[].class,
                this.usesSdkLibrariesCertDigests, certSha256Digests, true);
        return this;
        return this;
    }
    }


    @Override
    @Override
    public ParsingPackageImpl addUsesStaticLibraryVersion(long version) {
    public ParsingPackageImpl addUsesStaticLibrary(String libraryName, long version,
            String[] certSha256Digests) {
        this.usesStaticLibraries = CollectionUtils.add(this.usesStaticLibraries,
                TextUtils.safeIntern(libraryName));
        this.usesStaticLibrariesVersions = ArrayUtils.appendLong(this.usesStaticLibrariesVersions,
        this.usesStaticLibrariesVersions = ArrayUtils.appendLong(this.usesStaticLibrariesVersions,
                version, true);
                version, true);
        return this;
    }

    @Override
    public ParsingPackageImpl addUsesStaticLibraryCertDigests(String[] certSha256Digests) {
        this.usesStaticLibrariesCertDigests = ArrayUtils.appendElement(String[].class,
        this.usesStaticLibrariesCertDigests = ArrayUtils.appendElement(String[].class,
                this.usesStaticLibrariesCertDigests, certSha256Digests, true);
                this.usesStaticLibrariesCertDigests, certSha256Digests, true);
        return this;
        return this;
@@ -1136,6 +1151,8 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
        dest.writeString(this.overlayCategory);
        dest.writeString(this.overlayCategory);
        dest.writeInt(this.overlayPriority);
        dest.writeInt(this.overlayPriority);
        sForInternedStringValueMap.parcel(this.overlayables, dest, flags);
        sForInternedStringValueMap.parcel(this.overlayables, dest, flags);
        sForInternedString.parcel(this.sdkLibName, dest, flags);
        dest.writeInt(this.sdkLibVersionMajor);
        sForInternedString.parcel(this.staticSharedLibName, dest, flags);
        sForInternedString.parcel(this.staticSharedLibName, dest, flags);
        dest.writeLong(this.staticSharedLibVersion);
        dest.writeLong(this.staticSharedLibVersion);
        sForInternedStringList.parcel(this.libraryNames, dest, flags);
        sForInternedStringList.parcel(this.libraryNames, dest, flags);
@@ -1143,9 +1160,9 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
        sForInternedStringList.parcel(this.usesOptionalLibraries, dest, flags);
        sForInternedStringList.parcel(this.usesOptionalLibraries, dest, flags);
        sForInternedStringList.parcel(this.usesNativeLibraries, dest, flags);
        sForInternedStringList.parcel(this.usesNativeLibraries, dest, flags);
        sForInternedStringList.parcel(this.usesOptionalNativeLibraries, dest, flags);
        sForInternedStringList.parcel(this.usesOptionalNativeLibraries, dest, flags);

        sForInternedStringList.parcel(this.usesStaticLibraries, dest, flags);
        sForInternedStringList.parcel(this.usesStaticLibraries, dest, flags);
        dest.writeLongArray(this.usesStaticLibrariesVersions);
        dest.writeLongArray(this.usesStaticLibrariesVersions);

        if (this.usesStaticLibrariesCertDigests == null) {
        if (this.usesStaticLibrariesCertDigests == null) {
            dest.writeInt(-1);
            dest.writeInt(-1);
        } else {
        } else {
@@ -1155,6 +1172,17 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
            }
            }
        }
        }


        sForInternedStringList.parcel(this.usesSdkLibraries, dest, flags);
        dest.writeLongArray(this.usesSdkLibrariesVersionsMajor);
        if (this.usesSdkLibrariesCertDigests == null) {
            dest.writeInt(-1);
        } else {
            dest.writeInt(this.usesSdkLibrariesCertDigests.length);
            for (int index = 0; index < this.usesSdkLibrariesCertDigests.length; index++) {
                dest.writeStringArray(this.usesSdkLibrariesCertDigests[index]);
            }
        }

        sForInternedString.parcel(this.sharedUserId, dest, flags);
        sForInternedString.parcel(this.sharedUserId, dest, flags);
        dest.writeInt(this.sharedUserLabel);
        dest.writeInt(this.sharedUserLabel);
        dest.writeTypedList(this.configPreferences);
        dest.writeTypedList(this.configPreferences);
@@ -1259,6 +1287,8 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
        this.overlayCategory = in.readString();
        this.overlayCategory = in.readString();
        this.overlayPriority = in.readInt();
        this.overlayPriority = in.readInt();
        this.overlayables = sForInternedStringValueMap.unparcel(in);
        this.overlayables = sForInternedStringValueMap.unparcel(in);
        this.sdkLibName = sForInternedString.unparcel(in);
        this.sdkLibVersionMajor = in.readInt();
        this.staticSharedLibName = sForInternedString.unparcel(in);
        this.staticSharedLibName = sForInternedString.unparcel(in);
        this.staticSharedLibVersion = in.readLong();
        this.staticSharedLibVersion = in.readLong();
        this.libraryNames = sForInternedStringList.unparcel(in);
        this.libraryNames = sForInternedStringList.unparcel(in);
@@ -1266,14 +1296,29 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
        this.usesOptionalLibraries = sForInternedStringList.unparcel(in);
        this.usesOptionalLibraries = sForInternedStringList.unparcel(in);
        this.usesNativeLibraries = sForInternedStringList.unparcel(in);
        this.usesNativeLibraries = sForInternedStringList.unparcel(in);
        this.usesOptionalNativeLibraries = sForInternedStringList.unparcel(in);
        this.usesOptionalNativeLibraries = sForInternedStringList.unparcel(in);

        this.usesStaticLibraries = sForInternedStringList.unparcel(in);
        this.usesStaticLibraries = sForInternedStringList.unparcel(in);
        this.usesStaticLibrariesVersions = in.createLongArray();
        this.usesStaticLibrariesVersions = in.createLongArray();

        {
            int digestsSize = in.readInt();
            int digestsSize = in.readInt();
            if (digestsSize >= 0) {
            if (digestsSize >= 0) {
                this.usesStaticLibrariesCertDigests = new String[digestsSize][];
                this.usesStaticLibrariesCertDigests = new String[digestsSize][];
                for (int index = 0; index < digestsSize; index++) {
                for (int index = 0; index < digestsSize; index++) {
                this.usesStaticLibrariesCertDigests[index] = sForInternedStringArray.unparcel(in);
                    this.usesStaticLibrariesCertDigests[index] = sForInternedStringArray.unparcel(
                            in);
                }
            }
        }

        this.usesSdkLibraries = sForInternedStringList.unparcel(in);
        this.usesSdkLibrariesVersionsMajor = in.createLongArray();
        {
            int digestsSize = in.readInt();
            if (digestsSize >= 0) {
                this.usesSdkLibrariesCertDigests = new String[digestsSize][];
                for (int index = 0; index < digestsSize; index++) {
                    this.usesSdkLibrariesCertDigests[index] = sForInternedStringArray.unparcel(in);
                }
            }
            }
        }
        }


@@ -1477,6 +1522,17 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
        return overlayables;
        return overlayables;
    }
    }


    @Nullable
    @Override
    public String getSdkLibName() {
        return sdkLibName;
    }

    @Override
    public int getSdkLibVersionMajor() {
        return sdkLibVersionMajor;
    }

    @Nullable
    @Nullable
    @Override
    @Override
    public String getStaticSharedLibName() {
    public String getStaticSharedLibName() {
@@ -1536,6 +1592,18 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
        return usesStaticLibrariesCertDigests;
        return usesStaticLibrariesCertDigests;
    }
    }


    @NonNull
    @Override
    public List<String> getUsesSdkLibraries() { return usesSdkLibraries; }

    @Nullable
    @Override
    public long[] getUsesSdkLibrariesVersionsMajor() { return usesSdkLibrariesVersionsMajor; }

    @Nullable
    @Override
    public String[][] getUsesSdkLibrariesCertDigests() { return usesSdkLibrariesCertDigests; }

    @Nullable
    @Nullable
    @Override
    @Override
    public String getSharedUserId() {
    public String getSharedUserId() {
@@ -2082,6 +2150,11 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
        return getBoolean(Booleans.STATIC_SHARED_LIBRARY);
        return getBoolean(Booleans.STATIC_SHARED_LIBRARY);
    }
    }


    @Override
    public boolean isSdkLibrary() {
        return getBoolean(Booleans.SDK_LIBRARY);
    }

    @Override
    @Override
    public boolean isOverlay() {
    public boolean isOverlay() {
        return getBoolean(Booleans.OVERLAY);
        return getBoolean(Booleans.OVERLAY);
@@ -2557,6 +2630,23 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden,
        return this;
        return this;
    }
    }


    @Override
    public ParsingPackageImpl setSdkLibName(String sdkLibName) {
        this.sdkLibName = TextUtils.safeIntern(sdkLibName);
        return this;
    }

    @Override
    public ParsingPackageImpl setSdkLibVersionMajor(int sdkLibVersionMajor) {
        this.sdkLibVersionMajor = sdkLibVersionMajor;
        return this;
    }

    @Override
    public ParsingPackageImpl setSdkLibrary(boolean value) {
        return setBoolean(Booleans.SDK_LIBRARY, value);
    }

    @Override
    @Override
    public ParsingPackageImpl setStaticSharedLibrary(boolean value) {
    public ParsingPackageImpl setStaticSharedLibrary(boolean value) {
        return setBoolean(Booleans.STATIC_SHARED_LIBRARY, value);
        return setBoolean(Booleans.STATIC_SHARED_LIBRARY, value);
Loading