Merge "Revert "SDK libraries.""
diff --git a/core/api/current.txt b/core/api/current.txt
index 2501c02..56b6800 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -13223,7 +13223,6 @@
     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_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 VERSION_UNDEFINED = -1; // 0xffffffff
   }
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index a7f3801..c777bf5 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -697,7 +697,7 @@
             MATCH_DISABLED_COMPONENTS,
             MATCH_DISABLED_UNTIL_USED_COMPONENTS,
             MATCH_INSTANT,
-            MATCH_STATIC_SHARED_AND_SDK_LIBRARIES,
+            MATCH_STATIC_SHARED_LIBRARIES,
             GET_DISABLED_UNTIL_USED_COMPONENTS,
             GET_UNINSTALLED_PACKAGES,
             MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
@@ -721,7 +721,7 @@
             MATCH_SYSTEM_ONLY,
             MATCH_UNINSTALLED_PACKAGES,
             MATCH_INSTANT,
-            MATCH_STATIC_SHARED_AND_SDK_LIBRARIES,
+            MATCH_STATIC_SHARED_LIBRARIES,
             GET_DISABLED_COMPONENTS,
             GET_DISABLED_UNTIL_USED_COMPONENTS,
             GET_UNINSTALLED_PACKAGES,
@@ -1038,14 +1038,14 @@
     public static final int MATCH_EXPLICITLY_VISIBLE_ONLY = 0x02000000;
 
     /**
-     * Internal {@link PackageInfo} flag: include static shared and SDK libraries.
-     * Apps that depend on static shared/SDK libs can always access the version
+     * Internal {@link PackageInfo} flag: include static shared libraries.
+     * Apps that depend on static shared libs can always access the version
      * of the lib they depend on. System/shell/root can access all shared
      * libs regardless of dependency but need to explicitly ask for them
      * via this flag.
      * @hide
      */
-    public static final int MATCH_STATIC_SHARED_AND_SDK_LIBRARIES = 0x04000000;
+    public static final int MATCH_STATIC_SHARED_LIBRARIES = 0x04000000;
 
     /**
      * {@link PackageInfo} flag: return the signing certificates associated with
diff --git a/core/java/android/content/pm/SharedLibraryInfo.java b/core/java/android/content/pm/SharedLibraryInfo.java
index 4ba2ee6..7abb694 100644
--- a/core/java/android/content/pm/SharedLibraryInfo.java
+++ b/core/java/android/content/pm/SharedLibraryInfo.java
@@ -70,13 +70,6 @@
     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.
      */
     public static final int VERSION_UNDEFINED = -1;
@@ -296,13 +289,6 @@
     }
 
     /**
-     * @hide
-     */
-    public boolean isSdk() {
-        return mType == TYPE_SDK;
-    }
-
-    /**
      * Gets the package that declares the library.
      *
      * @return The package declaring the library.
@@ -365,9 +351,6 @@
             case TYPE_STATIC: {
                 return "static";
             }
-            case TYPE_SDK: {
-                return "sdk";
-            }
             default: {
                 return "unknown";
             }
diff --git a/core/java/android/content/pm/parsing/ParsingPackage.java b/core/java/android/content/pm/parsing/ParsingPackage.java
index 63332e7..056f99f 100644
--- a/core/java/android/content/pm/parsing/ParsingPackage.java
+++ b/core/java/android/content/pm/parsing/ParsingPackage.java
@@ -103,11 +103,11 @@
 
     ParsingPackage addUsesOptionalNativeLibrary(String libraryName);
 
-    ParsingPackage addUsesSdkLibrary(String libraryName, long versionMajor,
-            String[] certSha256Digests);
+    ParsingPackage addUsesStaticLibrary(String libraryName);
 
-    ParsingPackage addUsesStaticLibrary(String libraryName, long version,
-            String[] certSha256Digests);
+    ParsingPackage addUsesStaticLibraryCertDigests(String[] certSha256Digests);
+
+    ParsingPackage addUsesStaticLibraryVersion(long version);
 
     ParsingPackage addQueriesIntent(Intent intent);
 
@@ -212,12 +212,6 @@
 
     ParsingPackage setRestoreAnyVersion(boolean restoreAnyVersion);
 
-    ParsingPackage setSdkLibName(String sdkLibName);
-
-    ParsingPackage setSdkLibVersionMajor(int sdkLibVersionMajor);
-
-    ParsingPackage setSdkLibrary(boolean sdkLibrary);
-
     ParsingPackage setSplitHasCode(int splitIndex, boolean splitHasCode);
 
     ParsingPackage setStaticSharedLibrary(boolean staticSharedLibrary);
diff --git a/core/java/android/content/pm/parsing/ParsingPackageImpl.java b/core/java/android/content/pm/parsing/ParsingPackageImpl.java
index 19a8ce9..d5957a2 100644
--- a/core/java/android/content/pm/parsing/ParsingPackageImpl.java
+++ b/core/java/android/content/pm/parsing/ParsingPackageImpl.java
@@ -179,10 +179,6 @@
 
     @Nullable
     @DataClass.ParcelWith(ForInternedString.class)
-    private String sdkLibName;
-    private int sdkLibVersionMajor;
-    @Nullable
-    @DataClass.ParcelWith(ForInternedString.class)
     private String staticSharedLibName;
     private long staticSharedLibVersion;
     @NonNull
@@ -207,17 +203,10 @@
     private List<String> usesStaticLibraries = emptyList();
     @Nullable
     private long[] usesStaticLibrariesVersions;
+
     @Nullable
     private String[][] usesStaticLibrariesCertDigests;
 
-    @NonNull
-    @DataClass.ParcelWith(ForInternedStringList.class)
-    private List<String> usesSdkLibraries = emptyList();
-    @Nullable
-    private long[] usesSdkLibrariesVersionsMajor;
-    @Nullable
-    private String[][] usesSdkLibrariesCertDigests;
-
     @Nullable
     @DataClass.ParcelWith(ForInternedString.class)
     private String sharedUserId;
@@ -529,7 +518,6 @@
         private static final long REQUEST_FOREGROUND_SERVICE_EXEMPTION = 1L << 46;
         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 SDK_LIBRARY = 1L << 49;
     }
 
     private ParsingPackageImpl setBoolean(@Booleans.Values long flag, boolean value) {
@@ -840,24 +828,21 @@
     }
 
     @Override
-    public ParsingPackageImpl addUsesSdkLibrary(String libraryName, long versionMajor,
-            String[] certSha256Digests) {
-        this.usesSdkLibraries = CollectionUtils.add(this.usesSdkLibraries,
+    public ParsingPackageImpl addUsesStaticLibrary(String libraryName) {
+        this.usesStaticLibraries = CollectionUtils.add(this.usesStaticLibraries,
                 TextUtils.safeIntern(libraryName));
-        this.usesSdkLibrariesVersionsMajor = ArrayUtils.appendLong(
-                this.usesSdkLibrariesVersionsMajor, versionMajor, true);
-        this.usesSdkLibrariesCertDigests = ArrayUtils.appendElement(String[].class,
-                this.usesSdkLibrariesCertDigests, certSha256Digests, true);
         return this;
     }
 
     @Override
-    public ParsingPackageImpl addUsesStaticLibrary(String libraryName, long version,
-            String[] certSha256Digests) {
-        this.usesStaticLibraries = CollectionUtils.add(this.usesStaticLibraries,
-                TextUtils.safeIntern(libraryName));
+    public ParsingPackageImpl addUsesStaticLibraryVersion(long version) {
         this.usesStaticLibrariesVersions = ArrayUtils.appendLong(this.usesStaticLibrariesVersions,
                 version, true);
+        return this;
+    }
+
+    @Override
+    public ParsingPackageImpl addUsesStaticLibraryCertDigests(String[] certSha256Digests) {
         this.usesStaticLibrariesCertDigests = ArrayUtils.appendElement(String[].class,
                 this.usesStaticLibrariesCertDigests, certSha256Digests, true);
         return this;
@@ -1151,8 +1136,6 @@
         dest.writeString(this.overlayCategory);
         dest.writeInt(this.overlayPriority);
         sForInternedStringValueMap.parcel(this.overlayables, dest, flags);
-        sForInternedString.parcel(this.sdkLibName, dest, flags);
-        dest.writeInt(this.sdkLibVersionMajor);
         sForInternedString.parcel(this.staticSharedLibName, dest, flags);
         dest.writeLong(this.staticSharedLibVersion);
         sForInternedStringList.parcel(this.libraryNames, dest, flags);
@@ -1160,9 +1143,9 @@
         sForInternedStringList.parcel(this.usesOptionalLibraries, dest, flags);
         sForInternedStringList.parcel(this.usesNativeLibraries, dest, flags);
         sForInternedStringList.parcel(this.usesOptionalNativeLibraries, dest, flags);
-
         sForInternedStringList.parcel(this.usesStaticLibraries, dest, flags);
         dest.writeLongArray(this.usesStaticLibrariesVersions);
+
         if (this.usesStaticLibrariesCertDigests == null) {
             dest.writeInt(-1);
         } else {
@@ -1172,17 +1155,6 @@
             }
         }
 
-        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);
         dest.writeInt(this.sharedUserLabel);
         dest.writeTypedList(this.configPreferences);
@@ -1287,8 +1259,6 @@
         this.overlayCategory = in.readString();
         this.overlayPriority = in.readInt();
         this.overlayables = sForInternedStringValueMap.unparcel(in);
-        this.sdkLibName = sForInternedString.unparcel(in);
-        this.sdkLibVersionMajor = in.readInt();
         this.staticSharedLibName = sForInternedString.unparcel(in);
         this.staticSharedLibVersion = in.readLong();
         this.libraryNames = sForInternedStringList.unparcel(in);
@@ -1296,29 +1266,14 @@
         this.usesOptionalLibraries = sForInternedStringList.unparcel(in);
         this.usesNativeLibraries = sForInternedStringList.unparcel(in);
         this.usesOptionalNativeLibraries = sForInternedStringList.unparcel(in);
-
         this.usesStaticLibraries = sForInternedStringList.unparcel(in);
         this.usesStaticLibrariesVersions = in.createLongArray();
-        {
-            int digestsSize = in.readInt();
-            if (digestsSize >= 0) {
-                this.usesStaticLibrariesCertDigests = new String[digestsSize][];
-                for (int index = 0; index < digestsSize; index++) {
-                    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);
-                }
+        int digestsSize = in.readInt();
+        if (digestsSize >= 0) {
+            this.usesStaticLibrariesCertDigests = new String[digestsSize][];
+            for (int index = 0; index < digestsSize; index++) {
+                this.usesStaticLibrariesCertDigests[index] = sForInternedStringArray.unparcel(in);
             }
         }
 
@@ -1524,17 +1479,6 @@
 
     @Nullable
     @Override
-    public String getSdkLibName() {
-        return sdkLibName;
-    }
-
-    @Override
-    public int getSdkLibVersionMajor() {
-        return sdkLibVersionMajor;
-    }
-
-    @Nullable
-    @Override
     public String getStaticSharedLibName() {
         return staticSharedLibName;
     }
@@ -1592,18 +1536,6 @@
         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
     @Override
     public String getSharedUserId() {
@@ -2151,11 +2083,6 @@
     }
 
     @Override
-    public boolean isSdkLibrary() {
-        return getBoolean(Booleans.SDK_LIBRARY);
-    }
-
-    @Override
     public boolean isOverlay() {
         return getBoolean(Booleans.OVERLAY);
     }
@@ -2631,23 +2558,6 @@
     }
 
     @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
     public ParsingPackageImpl setStaticSharedLibrary(boolean value) {
         return setBoolean(Booleans.STATIC_SHARED_LIBRARY, value);
     }
diff --git a/core/java/android/content/pm/parsing/ParsingPackageRead.java b/core/java/android/content/pm/parsing/ParsingPackageRead.java
index 49b3b08..2933f95 100644
--- a/core/java/android/content/pm/parsing/ParsingPackageRead.java
+++ b/core/java/android/content/pm/parsing/ParsingPackageRead.java
@@ -196,17 +196,6 @@
     int[] getSplitFlags();
 
     /**
-     * @see R.styleable#AndroidManifestSdkLibrary_name
-     */
-    @Nullable
-    String getSdkLibName();
-
-    /**
-     * @see R.styleable#AndroidManifestSdkLibrary_versionMajor
-     */
-    int getSdkLibVersionMajor();
-
-    /**
      * @see R.styleable#AndroidManifestStaticLibrary_name
      */
     @Nullable
@@ -278,26 +267,6 @@
     @Nullable
     long[] getUsesStaticLibrariesVersions();
 
-    /**
-     * TODO(b/135203078): Move SDK library stuff to an inner data class
-     *
-     * @see R.styleable#AndroidManifestUsesSdkLibrary
-     */
-    @NonNull
-    List<String> getUsesSdkLibraries();
-
-    /**
-     * @see R.styleable#AndroidManifestUsesSdkLibrary_certDigest
-     */
-    @Nullable
-    String[][] getUsesSdkLibrariesCertDigests();
-
-    /**
-     * @see R.styleable#AndroidManifestUsesSdkLibrary_versionMajor
-     */
-    @Nullable
-    long[] getUsesSdkLibrariesVersionsMajor();
-
     boolean hasPreserveLegacyExternalStorage();
 
     /**
diff --git a/core/java/android/content/pm/parsing/ParsingPackageUtils.java b/core/java/android/content/pm/parsing/ParsingPackageUtils.java
index 3e537c8..d2ac8739 100644
--- a/core/java/android/content/pm/parsing/ParsingPackageUtils.java
+++ b/core/java/android/content/pm/parsing/ParsingPackageUtils.java
@@ -117,7 +117,6 @@
 
 import libcore.io.IoUtils;
 import libcore.util.EmptyArray;
-import libcore.util.HexEncoding;
 
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
@@ -849,8 +848,6 @@
                     pkg.addProperty(propertyResult.getResult());
                 }
                 return propertyResult;
-            case "uses-sdk-library":
-                return parseUsesSdkLibrary(input, pkg, res, parser);
             case "uses-static-library":
                 return parseUsesStaticLibrary(input, pkg, res, parser);
             case "uses-library":
@@ -2215,8 +2212,7 @@
             }
         }
 
-        if (TextUtils.isEmpty(pkg.getStaticSharedLibName()) && TextUtils.isEmpty(
-                pkg.getSdkLibName())) {
+        if (TextUtils.isEmpty(pkg.getStaticSharedLibName())) {
             // Add a hidden app detail activity to normal apps which forwards user to App Details
             // page.
             ParseResult<ParsedActivity> a = generateAppDetailsHiddenActivity(input, pkg);
@@ -2355,14 +2351,10 @@
                     pkg.addProperty(propertyResult.getResult());
                 }
                 return propertyResult;
-            case "sdk-library":
-                return parseSdkLibrary(pkg, res, parser, input);
             case "static-library":
                 return parseStaticLibrary(pkg, res, parser, input);
             case "library":
                 return parseLibrary(pkg, res, parser, input);
-            case "uses-sdk-library":
-                return parseUsesSdkLibrary(input, pkg, res, parser);
             case "uses-static-library":
                 return parseUsesStaticLibrary(input, pkg, res, parser);
             case "uses-library":
@@ -2383,41 +2375,6 @@
     }
 
     @NonNull
-    private static ParseResult<ParsingPackage> parseSdkLibrary(
-            ParsingPackage pkg, Resources res,
-            XmlResourceParser parser, ParseInput input) {
-        TypedArray sa = res.obtainAttributes(parser, R.styleable.AndroidManifestSdkLibrary);
-        try {
-            // Note: don't allow this value to be a reference to a resource that may change.
-            String lname = sa.getNonResourceString(
-                    R.styleable.AndroidManifestSdkLibrary_name);
-            final int versionMajor = sa.getInt(
-                    R.styleable.AndroidManifestSdkLibrary_versionMajor,
-                    -1);
-
-            // Fail if malformed.
-            if (lname == null || versionMajor < 0) {
-                return input.error("Bad sdk-library declaration name: " + lname
-                        + " version: " + versionMajor);
-            } else if (pkg.getSharedUserId() != null) {
-                return input.error(
-                        PackageManager.INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID,
-                        "sharedUserId not allowed in SDK library"
-                );
-            } else if (pkg.getSdkLibName() != null) {
-                return input.error("Multiple SDKs for package "
-                        + pkg.getPackageName());
-            }
-
-            return input.success(pkg.setSdkLibName(lname.intern())
-                    .setSdkLibVersionMajor(versionMajor)
-                    .setSdkLibrary(true));
-        } finally {
-            sa.recycle();
-        }
-    }
-
-    @NonNull
     private static ParseResult<ParsingPackage> parseStaticLibrary(
             ParsingPackage pkg, Resources res,
             XmlResourceParser parser, ParseInput input) {
@@ -2479,68 +2436,6 @@
     }
 
     @NonNull
-    private static ParseResult<ParsingPackage> parseUsesSdkLibrary(ParseInput input,
-            ParsingPackage pkg, Resources res, XmlResourceParser parser)
-            throws XmlPullParserException, IOException {
-        TypedArray sa = res.obtainAttributes(parser, R.styleable.AndroidManifestUsesSdkLibrary);
-        try {
-            // Note: don't allow this value to be a reference to a resource that may change.
-            String lname = sa.getNonResourceString(
-                    R.styleable.AndroidManifestUsesSdkLibrary_name);
-            final int versionMajor = sa.getInt(
-                    R.styleable.AndroidManifestUsesSdkLibrary_versionMajor, -1);
-            String certSha256Digest = sa.getNonResourceString(R.styleable
-                    .AndroidManifestUsesSdkLibrary_certDigest);
-
-            // Since an APK providing a static shared lib can only provide the lib - fail if
-            // malformed
-            if (lname == null || versionMajor < 0 || certSha256Digest == null) {
-                return input.error("Bad uses-sdk-library declaration name: " + lname
-                        + " version: " + versionMajor + " certDigest" + certSha256Digest);
-            }
-
-            // Can depend only on one version of the same library
-            List<String> usesSdkLibraries = pkg.getUsesSdkLibraries();
-            if (usesSdkLibraries.contains(lname)) {
-                return input.error(
-                        "Depending on multiple versions of SDK library " + lname);
-            }
-
-            lname = lname.intern();
-            // We allow ":" delimiters in the SHA declaration as this is the format
-            // emitted by the certtool making it easy for developers to copy/paste.
-            certSha256Digest = certSha256Digest.replace(":", "").toLowerCase();
-
-            if ("".equals(certSha256Digest)) {
-                // Test-only uses-sdk-library empty certificate digest override.
-                certSha256Digest = SystemProperties.get(
-                        "debug.pm.uses_sdk_library_default_cert_digest", "");
-                // Validate the overridden digest.
-                try {
-                    HexEncoding.decode(certSha256Digest, false);
-                } catch (IllegalArgumentException e) {
-                    certSha256Digest = "";
-                }
-            }
-
-            ParseResult<String[]> certResult = parseAdditionalCertificates(input, res, parser);
-            if (certResult.isError()) {
-                return input.error(certResult);
-            }
-            String[] additionalCertSha256Digests = certResult.getResult();
-
-            final String[] certSha256Digests = new String[additionalCertSha256Digests.length + 1];
-            certSha256Digests[0] = certSha256Digest;
-            System.arraycopy(additionalCertSha256Digests, 0, certSha256Digests,
-                    1, additionalCertSha256Digests.length);
-
-            return input.success(pkg.addUsesSdkLibrary(lname, versionMajor, certSha256Digests));
-        } finally {
-            sa.recycle();
-        }
-    }
-
-    @NonNull
     private static ParseResult<ParsingPackage> parseUsesStaticLibrary(ParseInput input,
             ParsingPackage pkg, Resources res, XmlResourceParser parser)
             throws XmlPullParserException, IOException {
@@ -2588,7 +2483,9 @@
             System.arraycopy(additionalCertSha256Digests, 0, certSha256Digests,
                     1, additionalCertSha256Digests.length);
 
-            return input.success(pkg.addUsesStaticLibrary(lname, version, certSha256Digests));
+            return input.success(pkg.addUsesStaticLibrary(lname)
+                    .addUsesStaticLibraryVersion(version)
+                    .addUsesStaticLibraryCertDigests(certSha256Digests));
         } finally {
             sa.recycle();
         }
diff --git a/core/java/android/content/pm/parsing/PkgWithoutStateAppInfo.java b/core/java/android/content/pm/parsing/PkgWithoutStateAppInfo.java
index 625b9d1..fcad10c 100644
--- a/core/java/android/content/pm/parsing/PkgWithoutStateAppInfo.java
+++ b/core/java/android/content/pm/parsing/PkgWithoutStateAppInfo.java
@@ -21,6 +21,8 @@
 import android.content.pm.ApplicationInfo;
 import android.util.SparseArray;
 
+import com.android.internal.R;
+
 /**
  * Container for fields that are eventually exposed through {@link ApplicationInfo}.
  * <p>
@@ -574,11 +576,6 @@
     boolean isStaticSharedLibrary();
 
     /**
-     * True means that this package/app contains an SDK library.
-     */
-    boolean isSdkLibrary();
-
-    /**
      * If omitted from manifest, returns true if {@link #getTargetSdkVersion()} >= {@link
      * android.os.Build.VERSION_CODES#GINGERBREAD}.
      *
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index fe58114..94717b1 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -2303,36 +2303,6 @@
         <attr name="authorities" />
     </declare-styleable>
 
-    <!-- The <code>sdk-library</code> tag declares that this apk is providing itself
-    as an SDK library for other applications to use. Any app can declare an SDK library and there
-    can be only one SDK library per package. These SDK libraries are updatable, multiple major
-    versions can be installed at the same time, and an app depends on a specific version.
-    Other apks can link to it with the {@link #AndroidManifestUsesSdkLibrary uses-sdk-library} tag.
-
-    <p>This appears as a child tag of the {@link #AndroidManifestApplication application} tag. -->
-    <declare-styleable name="AndroidManifestSdkLibrary" parent="AndroidManifestApplication">
-        <!-- Required public name of the SDK library, which other components and packages will use
-        when referring to this SDK library. This is a string using Java-style scoping to ensure
-        it is unique.
-        Both name and version should typically form the apk's package name: name_versionMajor. -->
-        <attr name="name" />
-        <!-- Required major version of the SDK library. -->
-        <attr name="versionMajor" format="integer" />
-    </declare-styleable>
-
-
-    <!-- The <code>uses-sdk-library</code> specifies a shared <strong>SDK</strong> library that this
-    package requires to be present on the device.
-
-    <p>This appears as a child tag of the {@link #AndroidManifestApplication application} tag. -->
-    <declare-styleable name="AndroidManifestUsesSdkLibrary" parent="AndroidManifestApplication">
-        <!-- Required name of the SDK library you use. -->
-        <attr name="name" />
-        <!-- Specify which major version of the SDK library you use. -->
-        <attr name="versionMajor" format="integer" />
-        <!-- The SHA-256 digest of the SDK library signing certificate. -->
-        <attr name="certDigest" format="string" />
-    </declare-styleable>
 
     <!-- The <code>static-library</code> tag declares that this apk is providing itself
        as a static shared library for other applications to use. Any app can declare such
diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java
index b605c93..2d61773 100644
--- a/services/core/java/com/android/server/pm/ComputerEngine.java
+++ b/services/core/java/com/android/server/pm/ComputerEngine.java
@@ -2232,12 +2232,11 @@
         return false;
     }
 
-    private boolean filterStaticSharedLibPackage(@Nullable PackageStateInternal ps, int uid,
+    public final boolean filterSharedLibPackage(@Nullable PackageStateInternal ps, int uid,
             int userId, @PackageManager.ComponentInfoFlags long flags) {
-        // Callers can access only the static shared libs they depend on, otherwise they need to
-        // explicitly ask for the static shared libraries given the caller is allowed to access
-        // all static libs.
-        if ((flags & PackageManager.MATCH_STATIC_SHARED_AND_SDK_LIBRARIES) != 0) {
+        // Callers can access only the libs they depend on, otherwise they need to explicitly
+        // ask for the shared libraries given the caller is allowed to access all static libs.
+        if ((flags & PackageManager.MATCH_STATIC_SHARED_LIBRARIES) != 0) {
             // System/shell/root get to see all static libs
             final int appId = UserHandle.getAppId(uid);
             if (appId == Process.SYSTEM_UID || appId == Process.SHELL_UID
@@ -2288,69 +2287,6 @@
         return true;
     }
 
-    private boolean filterSdkLibPackage(@Nullable PackageStateInternal ps, int uid,
-            int userId, @PackageManager.ComponentInfoFlags long flags) {
-        // Callers can access only the SDK libs they depend on, otherwise they need to
-        // explicitly ask for the SDKs given the caller is allowed to access
-        // all shared libs.
-        if ((flags & PackageManager.MATCH_STATIC_SHARED_AND_SDK_LIBRARIES) != 0) {
-            // System/shell/root get to see all SDK libs.
-            final int appId = UserHandle.getAppId(uid);
-            if (appId == Process.SYSTEM_UID || appId == Process.SHELL_UID
-                    || appId == Process.ROOT_UID) {
-                return false;
-            }
-            // Installer gets to see all SDK libs.
-            if (PackageManager.PERMISSION_GRANTED
-                    == checkUidPermission(Manifest.permission.INSTALL_PACKAGES, uid)) {
-                return false;
-            }
-        }
-
-        // No package means no static lib as it is always on internal storage
-        if (ps == null || ps.getPkg() == null || !ps.getPkg().isSdkLibrary()) {
-            return false;
-        }
-
-        final SharedLibraryInfo libraryInfo = getSharedLibraryInfo(
-                ps.getPkg().getSdkLibName(), ps.getPkg().getSdkLibVersionMajor());
-        if (libraryInfo == null) {
-            return false;
-        }
-
-        final int resolvedUid = UserHandle.getUid(userId, UserHandle.getAppId(uid));
-        final String[] uidPackageNames = getPackagesForUid(resolvedUid);
-        if (uidPackageNames == null) {
-            return true;
-        }
-
-        for (String uidPackageName : uidPackageNames) {
-            if (ps.getPackageName().equals(uidPackageName)) {
-                return false;
-            }
-            PackageStateInternal uidPs = mSettings.getPackage(uidPackageName);
-            if (uidPs != null) {
-                final int index = ArrayUtils.indexOf(uidPs.getUsesSdkLibraries(),
-                        libraryInfo.getName());
-                if (index < 0) {
-                    continue;
-                }
-                if (uidPs.getPkg().getUsesSdkLibrariesVersionsMajor()[index]
-                        == libraryInfo.getLongVersion()) {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
-    @Override
-    public final boolean filterSharedLibPackage(@Nullable PackageStateInternal ps, int uid,
-            int userId, @PackageManager.ComponentInfoFlags long flags) {
-        return filterStaticSharedLibPackage(ps, uid, userId, flags) && filterSdkLibPackage(ps, uid,
-                userId, flags);
-    }
-
     private boolean hasCrossUserPermission(
             int callingUid, int callingUserId, int userId, boolean requireFullPermission,
             boolean requirePermissionWhenSameUser) {
@@ -3783,7 +3719,7 @@
 
         flags = updateFlagsForPackage(flags, userId);
 
-        final boolean canSeeStaticAndSdkLibraries =
+        final boolean canSeeStaticLibraries =
                 mContext.checkCallingOrSelfPermission(INSTALL_PACKAGES)
                         == PERMISSION_GRANTED
                         || mContext.checkCallingOrSelfPermission(DELETE_PACKAGES)
@@ -3808,7 +3744,7 @@
             final int versionCount = versionedLib.size();
             for (int j = 0; j < versionCount; j++) {
                 SharedLibraryInfo libInfo = versionedLib.valueAt(j);
-                if (!canSeeStaticAndSdkLibraries && (libInfo.isStatic() || libInfo.isSdk())) {
+                if (!canSeeStaticLibraries && libInfo.isStatic()) {
                     break;
                 }
                 final long identity = Binder.clearCallingIdentity();
@@ -3817,7 +3753,7 @@
                     PackageInfo packageInfo = getPackageInfoInternal(
                             declaringPackage.getPackageName(),
                             declaringPackage.getLongVersionCode(),
-                            flags | PackageManager.MATCH_STATIC_SHARED_AND_SDK_LIBRARIES,
+                            flags | PackageManager.MATCH_STATIC_SHARED_LIBRARIES,
                             Binder.getCallingUid(), userId);
                     if (packageInfo == null) {
                         continue;
@@ -3917,17 +3853,12 @@
             }
 
             final String libName = libInfo.getName();
-            if (libInfo.isStatic() || libInfo.isSdk()) {
-                final String[] libs =
-                        libInfo.isStatic() ? ps.getUsesStaticLibraries() : ps.getUsesSdkLibraries();
-                final long[] libsVersions = libInfo.isStatic() ? ps.getUsesStaticLibrariesVersions()
-                        : ps.getUsesSdkLibrariesVersionsMajor();
-
-                final int libIdx = ArrayUtils.indexOf(libs, libName);
+            if (libInfo.isStatic()) {
+                final int libIdx = ArrayUtils.indexOf(ps.getUsesStaticLibraries(), libName);
                 if (libIdx < 0) {
                     continue;
                 }
-                if (libsVersions[libIdx] != libInfo.getLongVersion()) {
+                if (ps.getUsesStaticLibrariesVersions()[libIdx] != libInfo.getLongVersion()) {
                     continue;
                 }
                 if (shouldFilterApplication(ps, callingUid, userId)) {
@@ -4008,7 +3939,7 @@
                     PackageInfo packageInfo = getPackageInfoInternal(
                             declaringPackage.getPackageName(),
                             declaringPackage.getLongVersionCode(),
-                            flags | PackageManager.MATCH_STATIC_SHARED_AND_SDK_LIBRARIES,
+                            flags | PackageManager.MATCH_STATIC_SHARED_LIBRARIES,
                             Binder.getCallingUid(), userId);
                     if (packageInfo == null) {
                         continue;
@@ -4103,7 +4034,7 @@
                         getPackageStateInternal(libraryInfo.getPackageName());
                 if (ps != null && !filterSharedLibPackage(ps, Binder.getCallingUid(),
                         UserHandle.getUserId(Binder.getCallingUid()),
-                        PackageManager.MATCH_STATIC_SHARED_AND_SDK_LIBRARIES)) {
+                        PackageManager.MATCH_STATIC_SHARED_LIBRARIES)) {
                     if (libs == null) {
                         libs = new ArraySet<>();
                     }
diff --git a/services/core/java/com/android/server/pm/DeletePackageHelper.java b/services/core/java/com/android/server/pm/DeletePackageHelper.java
index 641f24f..43d60cc 100644
--- a/services/core/java/com/android/server/pm/DeletePackageHelper.java
+++ b/services/core/java/com/android/server/pm/DeletePackageHelper.java
@@ -164,16 +164,9 @@
 
             allUsers = mUserManagerInternal.getUserIds();
 
-            if (pkg != null) {
-                SharedLibraryInfo libraryInfo = null;
-                if (pkg.getStaticSharedLibName() != null) {
-                    libraryInfo = mPm.getSharedLibraryInfo(pkg.getStaticSharedLibName(),
-                            pkg.getStaticSharedLibVersion());
-                } else if (pkg.getSdkLibName() != null) {
-                    libraryInfo = mPm.getSharedLibraryInfo(pkg.getSdkLibName(),
-                            pkg.getSdkLibVersionMajor());
-                }
-
+            if (pkg != null && pkg.getStaticSharedLibName() != null) {
+                SharedLibraryInfo libraryInfo = mPm.getSharedLibraryInfo(
+                        pkg.getStaticSharedLibName(), pkg.getStaticSharedLibVersion());
                 if (libraryInfo != null) {
                     for (int currUserId : allUsers) {
                         if (removeUser != UserHandle.USER_ALL && removeUser != currUserId) {
@@ -835,10 +828,9 @@
                 continue;
             }
             final String packageName = ps.getPkg().getPackageName();
-            // Skip over if system app, static shared library or and SDK library.
+            // Skip over if system app or static shared library
             if ((ps.getFlags() & ApplicationInfo.FLAG_SYSTEM) != 0
-                    || !TextUtils.isEmpty(ps.getPkg().getStaticSharedLibName())
-                    || !TextUtils.isEmpty(ps.getPkg().getSdkLibName())) {
+                    || !TextUtils.isEmpty(ps.getPkg().getStaticSharedLibName())) {
                 continue;
             }
             if (DEBUG_CLEAN_APKS) {
diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java
index d2087ee..5ca0618 100644
--- a/services/core/java/com/android/server/pm/InstallPackageHelper.java
+++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java
@@ -254,11 +254,12 @@
             final List<SharedLibraryInfo> allowedSharedLibInfos =
                     SharedLibraryHelper.getAllowedSharedLibInfos(scanResult,
                             request.mSharedLibrarySource);
+            final SharedLibraryInfo staticLib = scanResult.mStaticSharedLibraryInfo;
             if (allowedSharedLibInfos != null) {
                 for (SharedLibraryInfo info : allowedSharedLibInfos) {
                     if (!SharedLibraryHelper.addSharedLibraryToPackageVersionMap(
                             incomingSharedLibraries, info)) {
-                        throw new ReconcileFailure("Shared Library " + info.getName()
+                        throw new ReconcileFailure("Static Shared Library " + staticLib.getName()
                                 + " is being installed twice in this set!");
                     }
                 }
@@ -1187,8 +1188,7 @@
                     createdAppId.put(packageName, optimisticallyRegisterAppId(result));
                     versionInfos.put(result.mPkgSetting.getPkg().getPackageName(),
                             mPm.getSettingsVersionForPackage(result.mPkgSetting.getPkg()));
-                    if (result.mStaticSharedLibraryInfo != null
-                            || result.mSdkSharedLibraryInfo != null) {
+                    if (result.mStaticSharedLibraryInfo != null) {
                         final PackageSetting sharedLibLatestVersionSetting =
                                 mPm.getSharedLibLatestVersionSetting(result);
                         if (sharedLibLatestVersionSetting != null) {
@@ -2695,7 +2695,7 @@
                 }
             }
 
-            if (dataOwnerPkg != null && !dataOwnerPkg.isSdkLibrary()) {
+            if (dataOwnerPkg != null) {
                 if (!PackageManagerServiceUtils.isDowngradePermitted(installFlags,
                         dataOwnerPkg.isDebuggable())) {
                     try {
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index 26a5bbb..4767d3a 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -1328,7 +1328,7 @@
         PackageInfo packageInfo = null;
         try {
             packageInfo = AppGlobals.getPackageManager().getPackageInfo(
-                    basePackageName, PackageManager.MATCH_STATIC_SHARED_AND_SDK_LIBRARIES, userId);
+                    basePackageName, PackageManager.MATCH_STATIC_SHARED_LIBRARIES, userId);
         } catch (RemoteException ignored) {
         }
         if (packageInfo == null || packageInfo.applicationInfo == null) {
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java
index 28204ea..f299e1e 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerSession.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java
@@ -2903,7 +2903,7 @@
 
         final PackageInfo pkgInfo = mPm.getPackageInfo(
                 params.appPackageName, PackageManager.GET_SIGNATURES
-                        | PackageManager.MATCH_STATIC_SHARED_AND_SDK_LIBRARIES /*flags*/, userId);
+                        | PackageManager.MATCH_STATIC_SHARED_LIBRARIES /*flags*/, userId);
 
         // Partial installs must be consistent with existing install
         if (params.mode == SessionParams.MODE_INHERIT_EXISTING
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index fe5bce13..9f5adcb 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -4034,13 +4034,7 @@
         // - Package manager is in a state where package isn't scanned yet. This will
         //   get called again after scanning to fix the dependencies.
         if (AndroidPackageUtils.isLibrary(pkg)) {
-            if (pkg.getSdkLibName() != null) {
-                SharedLibraryInfo definedLibrary = getSharedLibraryInfo(
-                        pkg.getSdkLibName(), pkg.getSdkLibVersionMajor());
-                if (definedLibrary != null) {
-                    action.accept(definedLibrary, libInfo);
-                }
-            } else if (pkg.getStaticSharedLibName() != null) {
+            if (pkg.getStaticSharedLibName() != null) {
                 SharedLibraryInfo definedLibrary = getSharedLibraryInfo(
                         pkg.getStaticSharedLibName(), pkg.getStaticSharedLibVersion());
                 if (definedLibrary != null) {
@@ -4192,9 +4186,7 @@
                         && !hasString(pkg.getUsesLibraries(), changingPkg.getLibraryNames())
                         && !hasString(pkg.getUsesOptionalLibraries(), changingPkg.getLibraryNames())
                         && !ArrayUtils.contains(pkg.getUsesStaticLibraries(),
-                        changingPkg.getStaticSharedLibName())
-                        && !ArrayUtils.contains(pkg.getUsesSdkLibraries(),
-                        changingPkg.getSdkLibName())) {
+                        changingPkg.getStaticSharedLibName())) {
                     continue;
                 }
                 if (resultList == null) {
@@ -4485,24 +4477,15 @@
                     Slog.w(TAG, "Cannot hide package: android");
                     return false;
                 }
+                // Cannot hide static shared libs as they are considered
+                // a part of the using app (emulating static linking). Also
+                // static libs are installed always on internal storage.
                 AndroidPackage pkg = mPackages.get(packageName);
-                if (pkg != null) {
-                    // Cannot hide SDK libs as they are controlled by SDK manager.
-                    if (pkg.getSdkLibName() != null) {
-                        Slog.w(TAG, "Cannot hide package: " + packageName
-                                + " providing SDK library: "
-                                + pkg.getSdkLibName());
-                        return false;
-                    }
-                    // Cannot hide static shared libs as they are considered
-                    // a part of the using app (emulating static linking). Also
-                    // static libs are installed always on internal storage.
-                    if (pkg.getStaticSharedLibName() != null) {
-                        Slog.w(TAG, "Cannot hide package: " + packageName
-                                + " providing static shared library: "
-                                + pkg.getStaticSharedLibName());
-                        return false;
-                    }
+                if (pkg != null && pkg.getStaticSharedLibName() != null) {
+                    Slog.w(TAG, "Cannot hide package: " + packageName
+                            + " providing static shared library: "
+                            + pkg.getStaticSharedLibName());
+                    return false;
                 }
                 // Only allow protected packages to hide themselves.
                 if (hidden && !UserHandle.isSameApp(callingUid, pkgSetting.getAppId())
@@ -5171,24 +5154,15 @@
                         continue;
                     }
 
+                    // Cannot suspend static shared libs as they are considered
+                    // a part of the using app (emulating static linking). Also
+                    // static libs are installed always on internal storage.
                     AndroidPackage pkg = mPackages.get(packageName);
-                    if (pkg != null) {
-                        // Cannot suspend SDK libs as they are controlled by SDK manager.
-                        if (pkg.isSdkLibrary()) {
-                            Slog.w(TAG, "Cannot suspend package: " + packageName
-                                    + " providing SDK library: "
-                                    + pkg.getSdkLibName());
-                            continue;
-                        }
-                        // Cannot suspend static shared libs as they are considered
-                        // a part of the using app (emulating static linking). Also
-                        // static libs are installed always on internal storage.
-                        if (pkg.isStaticSharedLibrary()) {
-                            Slog.w(TAG, "Cannot suspend package: " + packageName
-                                    + " providing static shared library: "
-                                    + pkg.getStaticSharedLibName());
-                            continue;
-                        }
+                    if (pkg != null && pkg.isStaticSharedLibrary()) {
+                        Slog.w(TAG, "Cannot suspend package: " + packageName
+                                + " providing static shared library: "
+                                + pkg.getStaticSharedLibName());
+                        continue;
                     }
                 }
                 if (PLATFORM_PACKAGE_NAME.equals(packageName)) {
@@ -5638,22 +5612,14 @@
                 android.Manifest.permission.DELETE_PACKAGES, null);
         // TODO (b/157774108): This should fail on non-existent packages.
         synchronized (mLock) {
+            // Cannot block uninstall of static shared libs as they are
+            // considered a part of the using app (emulating static linking).
+            // Also static libs are installed always on internal storage.
             AndroidPackage pkg = mPackages.get(packageName);
-            if (pkg != null) {
-                // Cannot block uninstall SDK libs as they are controlled by SDK manager.
-                if (pkg.getSdkLibName() != null) {
-                    Slog.w(TAG, "Cannot block uninstall of package: " + packageName
-                            + " providing SDK library: " + pkg.getSdkLibName());
-                    return false;
-                }
-                // Cannot block uninstall of static shared libs as they are
-                // considered a part of the using app (emulating static linking).
-                // Also static libs are installed always on internal storage.
-                if (pkg.getStaticSharedLibName() != null) {
-                    Slog.w(TAG, "Cannot block uninstall of package: " + packageName
-                            + " providing static shared library: " + pkg.getStaticSharedLibName());
-                    return false;
-                }
+            if (pkg != null && pkg.getStaticSharedLibName() != null) {
+                Slog.w(TAG, "Cannot block uninstall of package: " + packageName
+                        + " providing static shared library: " + pkg.getStaticSharedLibName());
+                return false;
             }
             mSettings.setBlockUninstallLPw(userId, packageName, blockUninstall);
             mSettings.writePackageRestrictionsLPr(userId);
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index b89017ed..fb70470 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -49,7 +49,6 @@
 import android.content.pm.PermissionGroupInfo;
 import android.content.pm.PermissionInfo;
 import android.content.pm.ResolveInfo;
-import android.content.pm.SharedLibraryInfo;
 import android.content.pm.SuspendDialogInfo;
 import android.content.pm.UserInfo;
 import android.content.pm.VersionedPackage;
@@ -668,8 +667,6 @@
                 return runListPermissions();
             case "staged-sessions":
                 return runListStagedSessions();
-            case "sdks":
-                return runListSdks();
             case "users":
                 ServiceManager.getService("user").shellCommand(
                         getInFileDescriptor(), getOutFileDescriptor(), getErrFileDescriptor(),
@@ -795,15 +792,6 @@
     }
 
     private int runListPackages(boolean showSourceDir) throws RemoteException {
-        return runListPackages(showSourceDir, false);
-    }
-
-    private int runListSdks() throws RemoteException {
-        return runListPackages(false, true);
-    }
-
-    private int runListPackages(boolean showSourceDir, boolean showSdks) throws RemoteException {
-        final String prefix = showSdks ? "sdk:" : "package:";
         final PrintWriter pw = getOutPrintWriter();
         int getFlags = 0;
         boolean listDisabled = false, listEnabled = false;
@@ -897,61 +885,37 @@
             }
 
             final boolean isSystem = !isApex &&
-                    (info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
+                    (info.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM) != 0;
             final boolean isEnabled = !isApex && info.applicationInfo.enabled;
-            if ((listDisabled && isEnabled) ||
-                    (listEnabled && !isEnabled) ||
-                    (listSystem && !isSystem) ||
-                    (listThirdParty && isSystem) ||
-                    (listApexOnly && !isApex)) {
-                continue;
-            }
-
-            String name = null;
-            if (showSdks) {
-                final ParceledListSlice<SharedLibraryInfo> libsSlice =
-                        mInterface.getDeclaredSharedLibraries(info.packageName, getFlags, userId);
-                if (libsSlice == null) {
-                    continue;
+            if ((!listDisabled || !isEnabled) &&
+                    (!listEnabled || isEnabled) &&
+                    (!listSystem || isSystem) &&
+                    (!listThirdParty || !isSystem) &&
+                    (!listApexOnly || isApex)) {
+                pw.print("package:");
+                if (showSourceDir) {
+                    pw.print(info.applicationInfo.sourceDir);
+                    pw.print("=");
                 }
-                final List<SharedLibraryInfo> libs = libsSlice.getList();
-                for (int l = 0, lsize = libs.size(); l < lsize; ++l) {
-                    SharedLibraryInfo lib = libs.get(l);
-                    if (lib.getType() == SharedLibraryInfo.TYPE_SDK) {
-                        name = lib.getName() + ":" + lib.getLongVersion();
-                        break;
+                pw.print(info.packageName);
+                if (showVersionCode) {
+                    pw.print(" versionCode:");
+                    if (info.applicationInfo != null) {
+                        pw.print(info.applicationInfo.longVersionCode);
+                    } else {
+                        pw.print(info.getLongVersionCode());
                     }
                 }
-                if (name == null) {
-                    continue;
+                if (listInstaller) {
+                    pw.print("  installer=");
+                    pw.print(mInterface.getInstallerPackageName(info.packageName));
                 }
-            } else {
-                name = info.packageName;
-            }
-
-            pw.print(prefix);
-            if (showSourceDir) {
-                pw.print(info.applicationInfo.sourceDir);
-                pw.print("=");
-            }
-            pw.print(name);
-            if (showVersionCode) {
-                pw.print(" versionCode:");
-                if (info.applicationInfo != null) {
-                    pw.print(info.applicationInfo.longVersionCode);
-                } else {
-                    pw.print(info.getLongVersionCode());
+                if (showUid && !isApex) {
+                    pw.print(" uid:");
+                    pw.print(info.applicationInfo.uid);
                 }
+                pw.println();
             }
-            if (listInstaller) {
-                pw.print("  installer=");
-                pw.print(mInterface.getInstallerPackageName(info.packageName));
-            }
-            if (showUid && !isApex) {
-                pw.print(" uid:");
-                pw.print(info.applicationInfo.uid);
-            }
-            pw.println();
         }
         return 0;
     }
@@ -2096,7 +2060,7 @@
         } else {
             if ((flags & PackageManager.DELETE_ALL_USERS) == 0) {
                 final PackageInfo info = mInterface.getPackageInfo(packageName,
-                        PackageManager.MATCH_STATIC_SHARED_AND_SDK_LIBRARIES, translatedUserId);
+                        PackageManager.MATCH_STATIC_SHARED_LIBRARIES, translatedUserId);
                 if (info == null) {
                     pw.println("Failure [not installed for " + translatedUserId + "]");
                     return 1;
diff --git a/services/core/java/com/android/server/pm/PackageSetting.java b/services/core/java/com/android/server/pm/PackageSetting.java
index 923a133..dc514c1 100644
--- a/services/core/java/com/android/server/pm/PackageSetting.java
+++ b/services/core/java/com/android/server/pm/PackageSetting.java
@@ -32,6 +32,12 @@
 import android.content.pm.SuspendDialogInfo;
 import android.content.pm.UserInfo;
 import android.content.pm.overlay.OverlayPaths;
+
+import com.android.server.pm.pkg.PackageStateInternal;
+import com.android.server.pm.pkg.PackageUserState;
+import com.android.server.pm.pkg.PackageUserStateImpl;
+import com.android.server.pm.pkg.PackageUserStateInternal;
+import com.android.server.pm.pkg.SuspendParams;
 import android.os.PersistableBundle;
 import android.service.pm.PackageProto;
 import android.util.ArrayMap;
@@ -47,12 +53,7 @@
 import com.android.server.pm.permission.LegacyPermissionState;
 import com.android.server.pm.pkg.AndroidPackageApi;
 import com.android.server.pm.pkg.PackageState;
-import com.android.server.pm.pkg.PackageStateInternal;
 import com.android.server.pm.pkg.PackageStateUnserialized;
-import com.android.server.pm.pkg.PackageUserState;
-import com.android.server.pm.pkg.PackageUserStateImpl;
-import com.android.server.pm.pkg.PackageUserStateInternal;
-import com.android.server.pm.pkg.SuspendParams;
 import com.android.server.utils.SnapshotCache;
 
 import libcore.util.EmptyArray;
@@ -93,12 +94,6 @@
     private Set<String> mOldCodePaths;
 
     @Nullable
-    private String[] usesSdkLibraries;
-
-    @Nullable
-    private long[] usesSdkLibrariesVersionsMajor;
-
-    @Nullable
     private String[] usesStaticLibraries;
 
     @Nullable
@@ -213,16 +208,12 @@
             String legacyNativeLibraryPath, String primaryCpuAbi,
             String secondaryCpuAbi, String cpuAbiOverride,
             long longVersionCode, int pkgFlags, int pkgPrivateFlags,
-            int sharedUserId,
-            String[] usesSdkLibraries, long[] usesSdkLibrariesVersionsMajor,
-            String[] usesStaticLibraries, long[] usesStaticLibrariesVersions,
-            Map<String, Set<String>> mimeGroups,
+            int sharedUserId, String[] usesStaticLibraries,
+            long[] usesStaticLibrariesVersions, Map<String, Set<String>> mimeGroups,
             @NonNull UUID domainSetId) {
         super(pkgFlags, pkgPrivateFlags);
         this.mName = name;
         this.mRealName = realName;
-        this.usesSdkLibraries = usesSdkLibraries;
-        this.usesSdkLibrariesVersionsMajor = usesSdkLibrariesVersionsMajor;
         this.usesStaticLibraries = usesStaticLibraries;
         this.usesStaticLibrariesVersions = usesStaticLibrariesVersions;
         this.mPath = path;
@@ -626,13 +617,6 @@
         forceQueryableOverride = other.forceQueryableOverride;
         mDomainSetId = other.mDomainSetId;
 
-        usesSdkLibraries = other.usesSdkLibraries != null
-                ? Arrays.copyOf(other.usesSdkLibraries,
-                other.usesSdkLibraries.length) : null;
-        usesSdkLibrariesVersionsMajor = other.usesSdkLibrariesVersionsMajor != null
-                ? Arrays.copyOf(other.usesSdkLibrariesVersionsMajor,
-                other.usesSdkLibrariesVersionsMajor.length) : null;
-
         usesStaticLibraries = other.usesStaticLibraries != null
                 ? Arrays.copyOf(other.usesStaticLibraries,
                 other.usesStaticLibraries.length) : null;
@@ -1241,19 +1225,6 @@
 
     @NonNull
     @Override
-    public String[] getUsesSdkLibraries() {
-        return usesSdkLibraries == null ? EmptyArray.STRING : usesSdkLibraries;
-    }
-
-    @NonNull
-    @Override
-    public long[] getUsesSdkLibrariesVersionsMajor() {
-        return usesSdkLibrariesVersionsMajor == null ? EmptyArray.LONG
-                : usesSdkLibrariesVersionsMajor;
-    }
-
-    @NonNull
-    @Override
     public String[] getUsesStaticLibraries() {
         return usesStaticLibraries == null ? EmptyArray.STRING : usesStaticLibraries;
     }
@@ -1329,18 +1300,6 @@
         return this;
     }
 
-    public PackageSetting setUsesSdkLibraries(String[] usesSdkLibraries) {
-        this.usesSdkLibraries = usesSdkLibraries;
-        onChanged();
-        return this;
-    }
-
-    public PackageSetting setUsesSdkLibrariesVersionsMajor(long[] usesSdkLibrariesVersions) {
-        this.usesSdkLibrariesVersionsMajor = usesSdkLibrariesVersions;
-        onChanged();
-        return this;
-    }
-
     public PackageSetting setUsesStaticLibraries(String[] usesStaticLibraries) {
         this.usesStaticLibraries = usesStaticLibraries;
         onChanged();
diff --git a/services/core/java/com/android/server/pm/RemovePackageHelper.java b/services/core/java/com/android/server/pm/RemovePackageHelper.java
index 749495c..48b893b 100644
--- a/services/core/java/com/android/server/pm/RemovePackageHelper.java
+++ b/services/core/java/com/android/server/pm/RemovePackageHelper.java
@@ -189,19 +189,7 @@
 
         r = null;
 
-        // Any package can hold SDK or static shared libraries.
-        if (pkg.getSdkLibName() != null) {
-            if (removeSharedLibraryLPw(pkg.getSdkLibName(), pkg.getSdkLibVersionMajor())) {
-                if (DEBUG_REMOVE && chatty) {
-                    if (r == null) {
-                        r = new StringBuilder(256);
-                    } else {
-                        r.append(' ');
-                    }
-                    r.append(pkg.getSdkLibName());
-                }
-            }
-        }
+        // Any package can hold static shared libraries.
         if (pkg.getStaticSharedLibName() != null) {
             if (removeSharedLibraryLPw(pkg.getStaticSharedLibName(),
                     pkg.getStaticSharedLibVersion())) {
diff --git a/services/core/java/com/android/server/pm/ScanPackageHelper.java b/services/core/java/com/android/server/pm/ScanPackageHelper.java
index eafe0d98..9b08ef9 100644
--- a/services/core/java/com/android/server/pm/ScanPackageHelper.java
+++ b/services/core/java/com/android/server/pm/ScanPackageHelper.java
@@ -294,12 +294,6 @@
             }
         }
 
-        String[] usesSdkLibraries = null;
-        if (!parsedPackage.getUsesSdkLibraries().isEmpty()) {
-            usesSdkLibraries = new String[parsedPackage.getUsesSdkLibraries().size()];
-            parsedPackage.getUsesSdkLibraries().toArray(usesSdkLibraries);
-        }
-
         String[] usesStaticLibraries = null;
         if (!parsedPackage.getUsesStaticLibraries().isEmpty()) {
             usesStaticLibraries = new String[parsedPackage.getUsesStaticLibraries().size()];
@@ -330,8 +324,7 @@
                     AndroidPackageUtils.getRawSecondaryCpuAbi(parsedPackage),
                     parsedPackage.getLongVersionCode(), pkgFlags, pkgPrivateFlags, user,
                     true /*allowInstall*/, instantApp, virtualPreload,
-                    UserManagerService.getInstance(), usesSdkLibraries,
-                    parsedPackage.getUsesSdkLibrariesVersionsMajor(), usesStaticLibraries,
+                    UserManagerService.getInstance(), usesStaticLibraries,
                     parsedPackage.getUsesStaticLibrariesVersions(), parsedPackage.getMimeGroups(),
                     newDomainSetId);
         } else {
@@ -351,7 +344,6 @@
                     PackageInfoUtils.appInfoFlags(parsedPackage, pkgSetting),
                     PackageInfoUtils.appInfoPrivateFlags(parsedPackage, pkgSetting),
                     UserManagerService.getInstance(),
-                    usesSdkLibraries, parsedPackage.getUsesSdkLibrariesVersionsMajor(),
                     usesStaticLibraries, parsedPackage.getUsesStaticLibrariesVersions(),
                     parsedPackage.getMimeGroups(), newDomainSetId);
         }
@@ -560,10 +552,6 @@
             pkgSetting.setVolumeUuid(volumeUuid);
         }
 
-        SharedLibraryInfo sdkLibraryInfo = null;
-        if (!TextUtils.isEmpty(parsedPackage.getSdkLibName())) {
-            sdkLibraryInfo = AndroidPackageUtils.createSharedLibraryForSdk(parsedPackage);
-        }
         SharedLibraryInfo staticSharedLibraryInfo = null;
         if (!TextUtils.isEmpty(parsedPackage.getStaticSharedLibName())) {
             staticSharedLibraryInfo =
@@ -580,7 +568,7 @@
 
         return new ScanResult(request, true, pkgSetting, changedAbiCodePath,
                 !createNewPackage /* existingSettingCopied */,
-                previousAppId, sdkLibraryInfo, staticSharedLibraryInfo,
+                previousAppId, staticSharedLibraryInfo,
                 dynamicSharedLibraryInfos);
     }
 
diff --git a/services/core/java/com/android/server/pm/ScanResult.java b/services/core/java/com/android/server/pm/ScanResult.java
index f77be1f..eb44a82 100644
--- a/services/core/java/com/android/server/pm/ScanResult.java
+++ b/services/core/java/com/android/server/pm/ScanResult.java
@@ -51,8 +51,6 @@
     /** ABI code paths that have changed in the package scan */
     @Nullable public final List<String> mChangedAbiCodePath;
 
-    public final SharedLibraryInfo mSdkSharedLibraryInfo;
-
     public final SharedLibraryInfo mStaticSharedLibraryInfo;
 
     public final List<SharedLibraryInfo> mDynamicSharedLibraryInfos;
@@ -62,7 +60,6 @@
             @Nullable PackageSetting pkgSetting,
             @Nullable List<String> changedAbiCodePath, boolean existingSettingCopied,
             int previousAppId,
-            SharedLibraryInfo sdkSharedLibraryInfo,
             SharedLibraryInfo staticSharedLibraryInfo,
             List<SharedLibraryInfo> dynamicSharedLibraryInfos) {
         mRequest = request;
@@ -71,7 +68,6 @@
         mChangedAbiCodePath = changedAbiCodePath;
         mExistingSettingCopied = existingSettingCopied;
         mPreviousAppId = previousAppId;
-        mSdkSharedLibraryInfo = sdkSharedLibraryInfo;
         mStaticSharedLibraryInfo = staticSharedLibraryInfo;
         mDynamicSharedLibraryInfos = dynamicSharedLibraryInfos;
     }
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 45994f6..6a163b2 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -276,7 +276,6 @@
     private static final String TAG_RUNTIME_PERMISSIONS = "runtime-permissions";
     private static final String TAG_PERMISSIONS = "perms";
     private static final String TAG_CHILD_PACKAGE = "child-package";
-    private static final String TAG_USES_SDK_LIB = "uses-sdk-lib";
     private static final String TAG_USES_STATIC_LIB = "uses-static-lib";
     private static final String TAG_BLOCK_UNINSTALL_PACKAGES = "block-uninstall-packages";
     private static final String TAG_BLOCK_UNINSTALL = "block-uninstall";
@@ -827,7 +826,6 @@
                 p.getLegacyNativeLibraryPath(), p.getPrimaryCpuAbi(),
                 p.getSecondaryCpuAbi(), p.getCpuAbiOverride(),
                 p.getAppId(), p.getVersionCode(), p.getFlags(), p.getPrivateFlags(),
-                p.getUsesSdkLibraries(), p.getUsesSdkLibrariesVersionsMajor(),
                 p.getUsesStaticLibraries(), p.getUsesStaticLibrariesVersions(), p.getMimeGroups(),
                 mDomainVerificationManager.generateNewId());
         if (ret != null) {
@@ -851,10 +849,9 @@
 
     PackageSetting addPackageLPw(String name, String realName, File codePath,
             String legacyNativeLibraryPathString, String primaryCpuAbiString,
-            String secondaryCpuAbiString, String cpuAbiOverrideString, int uid, long vc,
-            int pkgFlags, int pkgPrivateFlags, String[] usesSdkLibraries,
-            long[] usesSdkLibrariesVersions, String[] usesStaticLibraries,
-            long[] usesStaticLibrariesVersions, Map<String, Set<String>> mimeGroups,
+            String secondaryCpuAbiString, String cpuAbiOverrideString, int uid, long vc, int
+            pkgFlags, int pkgPrivateFlags, String[] usesStaticLibraries,
+            long[] usesStaticLibraryNames, Map<String, Set<String>> mimeGroups,
             @NonNull UUID domainSetId) {
         PackageSetting p = mPackages.get(name);
         if (p != null) {
@@ -867,8 +864,8 @@
         }
         p = new PackageSetting(name, realName, codePath, legacyNativeLibraryPathString,
                 primaryCpuAbiString, secondaryCpuAbiString, cpuAbiOverrideString, vc, pkgFlags,
-                pkgPrivateFlags, 0 /*userId*/, usesSdkLibraries, usesSdkLibrariesVersions,
-                usesStaticLibraries, usesStaticLibrariesVersions, mimeGroups, domainSetId);
+                pkgPrivateFlags, 0 /*userId*/, usesStaticLibraries, usesStaticLibraryNames,
+                mimeGroups, domainSetId);
         p.setAppId(uid);
         if (registerExistingAppIdLPw(uid, p, name)) {
             mPackages.put(name, p);
@@ -928,7 +925,6 @@
             String secondaryCpuAbi, long versionCode, int pkgFlags, int pkgPrivateFlags,
             UserHandle installUser, boolean allowInstall, boolean instantApp,
             boolean virtualPreload, UserManagerService userManager,
-            String[] usesSdkLibraries, long[] usesSdkLibrariesVersions,
             String[] usesStaticLibraries, long[] usesStaticLibrariesVersions,
             Set<String> mimeGroupNames, @NonNull UUID domainSetId) {
         final PackageSetting pkgSetting;
@@ -944,8 +940,6 @@
                     // overwrite the signatures in the original package setting.
                     .setSignatures(new PackageSignatures())
                     .setLongVersionCode(versionCode)
-                    .setUsesSdkLibraries(usesSdkLibraries)
-                    .setUsesSdkLibrariesVersionsMajor(usesSdkLibrariesVersions)
                     .setUsesStaticLibraries(usesStaticLibraries)
                     .setUsesStaticLibrariesVersions(usesStaticLibrariesVersions)
                     // Update new package state.
@@ -957,9 +951,8 @@
             pkgSetting = new PackageSetting(pkgName, realPkgName, codePath,
                     legacyNativeLibraryPath, primaryCpuAbi, secondaryCpuAbi,
                     null /*cpuAbiOverrideString*/, versionCode, pkgFlags, pkgPrivateFlags,
-                    0 /*sharedUserId*/, usesSdkLibraries, usesSdkLibrariesVersions,
-                    usesStaticLibraries, usesStaticLibrariesVersions,
-                    createMimeGroups(mimeGroupNames), domainSetId);
+                    0 /*sharedUserId*/, usesStaticLibraries,
+                    usesStaticLibrariesVersions, createMimeGroups(mimeGroupNames), domainSetId);
             pkgSetting.setLastModifiedTime(codePath.lastModified());
             pkgSetting.setSharedUser(sharedUser);
             // If this is not a system app, it starts out stopped.
@@ -1053,7 +1046,6 @@
             @NonNull File codePath, @Nullable String legacyNativeLibraryPath,
             @Nullable String primaryCpuAbi, @Nullable String secondaryCpuAbi, int pkgFlags,
             int pkgPrivateFlags, @NonNull UserManagerService userManager,
-            @Nullable String[] usesSdkLibraries, @Nullable long[] usesSdkLibrariesVersions,
             @Nullable String[] usesStaticLibraries, @Nullable long[] usesStaticLibrariesVersions,
             @Nullable Set<String> mimeGroupNames, @NonNull UUID domainSetId)
                     throws PackageManagerException {
@@ -1103,17 +1095,7 @@
                 .setSecondaryCpuAbi(secondaryCpuAbi)
                 .updateMimeGroups(mimeGroupNames)
                 .setDomainSetId(domainSetId);
-        // Update SDK library dependencies if needed.
-        if (usesSdkLibraries != null && usesSdkLibrariesVersions != null
-                && usesSdkLibraries.length == usesSdkLibrariesVersions.length) {
-            pkgSetting.setUsesSdkLibraries(usesSdkLibraries)
-                    .setUsesSdkLibrariesVersionsMajor(usesSdkLibrariesVersions);
-        } else {
-            pkgSetting.setUsesSdkLibraries(null)
-                    .setUsesSdkLibrariesVersionsMajor(null);
-        }
-
-        // Update static shared library dependencies if needed.
+        // Update static shared library dependencies if needed
         if (usesStaticLibraries != null && usesStaticLibrariesVersions != null
                 && usesStaticLibraries.length == usesStaticLibrariesVersions.length) {
             pkgSetting.setUsesStaticLibraries(usesStaticLibraries)
@@ -2185,21 +2167,6 @@
         }
     }
 
-    void readUsesSdkLibLPw(TypedXmlPullParser parser, PackageSetting outPs)
-            throws IOException, XmlPullParserException {
-        String libName = parser.getAttributeValue(null, ATTR_NAME);
-        long libVersion = parser.getAttributeLong(null, ATTR_VERSION, -1);
-
-        if (libName != null && libVersion >= 0) {
-            outPs.setUsesSdkLibraries(ArrayUtils.appendElement(String.class,
-                    outPs.getUsesSdkLibraries(), libName));
-            outPs.setUsesSdkLibrariesVersionsMajor(ArrayUtils.appendLong(
-                    outPs.getUsesSdkLibrariesVersionsMajor(), libVersion));
-        }
-
-        XmlUtils.skipCurrentTag(parser);
-    }
-
     void readUsesStaticLibLPw(TypedXmlPullParser parser, PackageSetting outPs)
             throws IOException, XmlPullParserException {
         String libName = parser.getAttributeValue(null, ATTR_NAME);
@@ -2215,23 +2182,6 @@
         XmlUtils.skipCurrentTag(parser);
     }
 
-    void writeUsesSdkLibLPw(TypedXmlSerializer serializer, String[] usesSdkLibraries,
-            long[] usesSdkLibraryVersions) throws IOException {
-        if (ArrayUtils.isEmpty(usesSdkLibraries) || ArrayUtils.isEmpty(usesSdkLibraryVersions)
-                || usesSdkLibraries.length != usesSdkLibraryVersions.length) {
-            return;
-        }
-        final int libCount = usesSdkLibraries.length;
-        for (int i = 0; i < libCount; i++) {
-            final String libName = usesSdkLibraries[i];
-            final long libVersion = usesSdkLibraryVersions[i];
-            serializer.startTag(null, TAG_USES_SDK_LIB);
-            serializer.attribute(null, ATTR_NAME, libName);
-            serializer.attributeLong(null, ATTR_VERSION, libVersion);
-            serializer.endTag(null, TAG_USES_SDK_LIB);
-        }
-    }
-
     void writeUsesStaticLibLPw(TypedXmlSerializer serializer, String[] usesStaticLibraries,
             long[] usesStaticLibraryVersions) throws IOException {
         if (ArrayUtils.isEmpty(usesStaticLibraries) || ArrayUtils.isEmpty(usesStaticLibraryVersions)
@@ -2757,9 +2707,6 @@
         }
         serializer.attributeFloat(null, "loadingProgress", pkg.getLoadingProgress());
 
-        writeUsesSdkLibLPw(serializer, pkg.getUsesSdkLibraries(),
-                pkg.getUsesSdkLibrariesVersionsMajor());
-
         writeUsesStaticLibLPw(serializer, pkg.getUsesStaticLibraries(),
                 pkg.getUsesStaticLibrariesVersions());
 
@@ -2838,9 +2785,6 @@
 
         serializer.attribute(null, "domainSetId", pkg.getDomainSetId().toString());
 
-        writeUsesSdkLibLPw(serializer, pkg.getUsesSdkLibraries(),
-                pkg.getUsesSdkLibrariesVersionsMajor());
-
         writeUsesStaticLibLPw(serializer, pkg.getUsesStaticLibraries(),
                 pkg.getUsesStaticLibrariesVersions());
 
@@ -3511,8 +3455,8 @@
         UUID domainSetId = DomainVerificationManagerInternal.DISABLED_ID;
         PackageSetting ps = new PackageSetting(name, realName, new File(codePathStr),
                 legacyNativeLibraryPathStr, primaryCpuAbiStr, secondaryCpuAbiStr, cpuAbiOverrideStr,
-                versionCode, pkgFlags, pkgPrivateFlags, 0 /*sharedUserId*/, null, null, null, null,
-                null, domainSetId);
+                versionCode, pkgFlags, pkgPrivateFlags, 0 /*sharedUserId*/, null, null, null,
+                domainSetId);
         long timeStamp = parser.getAttributeLongHex(null, "ft", 0);
         if (timeStamp == 0) {
             timeStamp = parser.getAttributeLong(null, "ts", 0);
@@ -3540,8 +3484,6 @@
                 readInstallPermissionsLPr(parser, ps.getLegacyPermissionState(), users);
             } else if (parser.getName().equals(TAG_USES_STATIC_LIB)) {
                 readUsesStaticLibLPw(parser, ps);
-            } else if (parser.getName().equals(TAG_USES_SDK_LIB)) {
-                readUsesSdkLibLPw(parser, ps);
             } else {
                 PackageManagerService.reportSettingsProblem(Log.WARN,
                         "Unknown element under <updated-package>: " + parser.getName());
@@ -3700,9 +3642,8 @@
                 packageSetting = addPackageLPw(name.intern(), realName, new File(codePathStr),
                         legacyNativeLibraryPathStr, primaryCpuAbiString, secondaryCpuAbiString,
                         cpuAbiOverrideString, userId, versionCode, pkgFlags, pkgPrivateFlags,
-                        null /* usesSdkLibraries */, null /* usesSdkLibraryVersions */,
-                        null /* usesStaticLibraries */, null /* usesStaticLibraryVersions */,
-                        null /* mimeGroups */, domainSetId);
+                        null /*usesStaticLibraries*/, null /*usesStaticLibraryVersions*/,
+                        null /*mimeGroups*/, domainSetId);
                 if (PackageManagerService.DEBUG_SETTINGS)
                     Log.i(PackageManagerService.TAG, "Reading package " + name + ": userId="
                             + userId + " pkg=" + packageSetting);
@@ -3721,11 +3662,9 @@
                             new File(codePathStr), legacyNativeLibraryPathStr,
                             primaryCpuAbiString, secondaryCpuAbiString, cpuAbiOverrideString,
                             versionCode, pkgFlags, pkgPrivateFlags, sharedUserId,
-                            null /* usesSdkLibraries */,
-                            null /* usesSdkLibrariesVersions */,
-                            null /* usesStaticLibraries */,
-                            null /* usesStaticLibraryVersions */,
-                            null /* mimeGroups */, domainSetId);
+                            null /*usesStaticLibraries*/,
+                            null /*usesStaticLibraryVersions*/,
+                            null /*mimeGroups*/, domainSetId);
                     packageSetting.setLastModifiedTime(timeStamp);
                     packageSetting.setFirstInstallTime(firstInstallTime);
                     packageSetting.setLastUpdateTime(lastUpdateTime);
@@ -3854,8 +3793,6 @@
                     }
                 } else if (tagName.equals(TAG_USES_STATIC_LIB)) {
                     readUsesStaticLibLPw(parser, packageSetting);
-                } else if (tagName.equals(TAG_USES_SDK_LIB)) {
-                    readUsesSdkLibLPw(parser, packageSetting);
                 } else {
                     PackageManagerService.reportSettingsProblem(Log.WARN,
                             "Unknown element under <package>: " + parser.getName());
@@ -4644,13 +4581,6 @@
                 pw.print(" version:"); pw.println(pkg.getStaticSharedLibVersion());
             }
 
-            if (pkg.getSdkLibName() != null) {
-                pw.print(prefix); pw.println("  SDK library:");
-                pw.print(prefix); pw.print("    ");
-                pw.print("name:"); pw.print(pkg.getSdkLibName());
-                pw.print(" versionMajor:"); pw.println(pkg.getSdkLibVersionMajor());
-            }
-
             List<String> usesLibraries = pkg.getUsesLibraries();
             if (usesLibraries.size() > 0) {
                 pw.print(prefix); pw.println("  usesLibraries:");
@@ -4670,17 +4600,6 @@
                 }
             }
 
-            List<String> usesSdkLibraries = pkg.getUsesSdkLibraries();
-            long[] usesSdkLibrariesVersionsMajor = pkg.getUsesSdkLibrariesVersionsMajor();
-            if (usesSdkLibraries.size() > 0) {
-                pw.print(prefix); pw.println("  usesSdkLibraries:");
-                for (int i = 0, size = usesSdkLibraries.size(); i < size; ++i) {
-                    pw.print(prefix); pw.print("    ");
-                    pw.print(usesSdkLibraries.get(i)); pw.print(" version:");
-                    pw.println(usesSdkLibrariesVersionsMajor[i]);
-                }
-            }
-
             List<String> usesOptionalLibraries = pkg.getUsesOptionalLibraries();
             if (usesOptionalLibraries.size() > 0) {
                 pw.print(prefix); pw.println("  usesOptionalLibraries:");
diff --git a/services/core/java/com/android/server/pm/SharedLibraryHelper.java b/services/core/java/com/android/server/pm/SharedLibraryHelper.java
index dd8fad0..461fca1 100644
--- a/services/core/java/com/android/server/pm/SharedLibraryHelper.java
+++ b/services/core/java/com/android/server/pm/SharedLibraryHelper.java
@@ -76,15 +76,12 @@
             Map<String, WatchedLongSparseArray<SharedLibraryInfo>> existingSharedLibraries) {
         // Let's used the parsed package as scanResult.pkgSetting may be null
         final ParsedPackage parsedPackage = scanResult.mRequest.mParsedPackage;
-        if (scanResult.mSdkSharedLibraryInfo == null && scanResult.mStaticSharedLibraryInfo == null
+        if (scanResult.mStaticSharedLibraryInfo == null
                 && scanResult.mDynamicSharedLibraryInfos == null) {
             return null;
         }
 
-        // Any app can add new SDKs and static shared libraries.
-        if (scanResult.mSdkSharedLibraryInfo != null) {
-            return Collections.singletonList(scanResult.mSdkSharedLibraryInfo);
-        }
+        // Any app can add new static shared libraries
         if (scanResult.mStaticSharedLibraryInfo != null) {
             return Collections.singletonList(scanResult.mStaticSharedLibraryInfo);
         }
@@ -184,49 +181,41 @@
         ArrayList<SharedLibraryInfo> usesLibraryInfos = null;
         if (!pkg.getUsesLibraries().isEmpty()) {
             usesLibraryInfos = collectSharedLibraryInfos(pkg.getUsesLibraries(), null, null,
-                    pkg.getPackageName(), "shared", true, pkg.getTargetSdkVersion(), null,
+                    pkg.getPackageName(), true, pkg.getTargetSdkVersion(), null,
                     availablePackages, existingLibraries, newLibraries);
         }
         if (!pkg.getUsesStaticLibraries().isEmpty()) {
             usesLibraryInfos = collectSharedLibraryInfos(pkg.getUsesStaticLibraries(),
                     pkg.getUsesStaticLibrariesVersions(), pkg.getUsesStaticLibrariesCertDigests(),
-                    pkg.getPackageName(), "static shared", true, pkg.getTargetSdkVersion(),
-                    usesLibraryInfos, availablePackages, existingLibraries, newLibraries);
+                    pkg.getPackageName(), true, pkg.getTargetSdkVersion(), usesLibraryInfos,
+                    availablePackages, existingLibraries, newLibraries);
         }
         if (!pkg.getUsesOptionalLibraries().isEmpty()) {
-            usesLibraryInfos = collectSharedLibraryInfos(pkg.getUsesOptionalLibraries(), null, null,
-                    pkg.getPackageName(), "shared", false, pkg.getTargetSdkVersion(),
+            usesLibraryInfos = collectSharedLibraryInfos(pkg.getUsesOptionalLibraries(),
+                    null, null, pkg.getPackageName(), false, pkg.getTargetSdkVersion(),
                     usesLibraryInfos, availablePackages, existingLibraries, newLibraries);
         }
         if (platformCompat.isChangeEnabledInternal(ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES,
                 pkg.getPackageName(), pkg.getTargetSdkVersion())) {
             if (!pkg.getUsesNativeLibraries().isEmpty()) {
                 usesLibraryInfos = collectSharedLibraryInfos(pkg.getUsesNativeLibraries(), null,
-                        null, pkg.getPackageName(), "native shared", true,
-                        pkg.getTargetSdkVersion(), usesLibraryInfos, availablePackages,
-                        existingLibraries, newLibraries);
+                        null, pkg.getPackageName(), true, pkg.getTargetSdkVersion(),
+                        usesLibraryInfos, availablePackages, existingLibraries, newLibraries);
             }
             if (!pkg.getUsesOptionalNativeLibraries().isEmpty()) {
                 usesLibraryInfos = collectSharedLibraryInfos(pkg.getUsesOptionalNativeLibraries(),
-                        null, null, pkg.getPackageName(), "native shared", false,
-                        pkg.getTargetSdkVersion(), usesLibraryInfos, availablePackages,
-                        existingLibraries, newLibraries);
+                        null, null, pkg.getPackageName(), false, pkg.getTargetSdkVersion(),
+                        usesLibraryInfos, availablePackages, existingLibraries, newLibraries);
             }
         }
-        if (!pkg.getUsesSdkLibraries().isEmpty()) {
-            usesLibraryInfos = collectSharedLibraryInfos(pkg.getUsesSdkLibraries(),
-                    pkg.getUsesSdkLibrariesVersionsMajor(), pkg.getUsesSdkLibrariesCertDigests(),
-                    pkg.getPackageName(), "sdk", true, pkg.getTargetSdkVersion(), usesLibraryInfos,
-                    availablePackages, existingLibraries, newLibraries);
-        }
         return usesLibraryInfos;
     }
 
     public static ArrayList<SharedLibraryInfo> collectSharedLibraryInfos(
             @NonNull List<String> requestedLibraries,
             @Nullable long[] requiredVersions, @Nullable String[][] requiredCertDigests,
-            @NonNull String packageName, @NonNull String libraryType, boolean required,
-            int targetSdk, @Nullable ArrayList<SharedLibraryInfo> outUsedLibraries,
+            @NonNull String packageName, boolean required, int targetSdk,
+            @Nullable ArrayList<SharedLibraryInfo> outUsedLibraries,
             @NonNull final Map<String, AndroidPackage> availablePackages,
             @NonNull final Map<String, WatchedLongSparseArray<SharedLibraryInfo>> existingLibraries,
             @Nullable final Map<String, WatchedLongSparseArray<SharedLibraryInfo>> newLibraries)
@@ -241,17 +230,18 @@
             if (libraryInfo == null) {
                 if (required) {
                     throw new PackageManagerException(INSTALL_FAILED_MISSING_SHARED_LIBRARY,
-                            "Package " + packageName + " requires unavailable " + libraryType
-                                    + " library " + libName + "; failing!");
+                            "Package " + packageName + " requires unavailable shared library "
+                                    + libName + "; failing!");
                 } else if (DEBUG_SHARED_LIBRARIES) {
-                    Slog.i(TAG, "Package " + packageName + " desires unavailable " + libraryType
-                            + " library " + libName + "; ignoring!");
+                    Slog.i(TAG, "Package " + packageName
+                            + " desires unavailable shared library "
+                            + libName + "; ignoring!");
                 }
             } else {
                 if (requiredVersions != null && requiredCertDigests != null) {
                     if (libraryInfo.getLongVersion() != requiredVersions[i]) {
                         throw new PackageManagerException(INSTALL_FAILED_MISSING_SHARED_LIBRARY,
-                                "Package " + packageName + " requires unavailable " + libraryType
+                                "Package " + packageName + " requires unavailable static shared"
                                         + " library " + libName + " version "
                                         + libraryInfo.getLongVersion() + "; failing!");
                     }
@@ -259,7 +249,7 @@
                     SigningDetails libPkg = pkg == null ? null : pkg.getSigningDetails();
                     if (libPkg == null) {
                         throw new PackageManagerException(INSTALL_FAILED_MISSING_SHARED_LIBRARY,
-                                "Package " + packageName + " requires unavailable " + libraryType
+                                "Package " + packageName + " requires unavailable static shared"
                                         + " library; failing!");
                     }
                     final String[] expectedCertDigests = requiredCertDigests[i];
@@ -277,8 +267,8 @@
                         // Therefore, the size check is safe to make.
                         if (expectedCertDigests.length != libCertDigests.length) {
                             throw new PackageManagerException(INSTALL_FAILED_MISSING_SHARED_LIBRARY,
-                                    "Package " + packageName + " requires differently signed "
-                                            + libraryType + " library; failing!");
+                                    "Package " + packageName + " requires differently signed"
+                                            + " static shared library; failing!");
                         }
 
                         // Use a predictable order as signature order may vary
@@ -290,8 +280,8 @@
                             if (!libCertDigests[j].equalsIgnoreCase(expectedCertDigests[j])) {
                                 throw new PackageManagerException(
                                         INSTALL_FAILED_MISSING_SHARED_LIBRARY,
-                                        "Package " + packageName + " requires differently signed "
-                                                + libraryType + " library; failing!");
+                                        "Package " + packageName + " requires differently signed"
+                                                + " static shared library; failing!");
                             }
                         }
                     } else {
@@ -300,9 +290,10 @@
                         byte[] digestBytes = HexEncoding.decode(
                                 expectedCertDigests[0], false /* allowSingleChar */);
                         if (!libPkg.hasSha256Certificate(digestBytes)) {
-                            throw new PackageManagerException(INSTALL_FAILED_MISSING_SHARED_LIBRARY,
-                                    "Package " + packageName + " requires differently signed "
-                                            + libraryType + " library; failing!");
+                            throw new PackageManagerException(
+                                    INSTALL_FAILED_MISSING_SHARED_LIBRARY,
+                                    "Package " + packageName + " requires differently signed"
+                                            + " static shared library; failing!");
                         }
                     }
                 }
diff --git a/services/core/java/com/android/server/pm/parsing/pkg/AndroidPackageUtils.java b/services/core/java/com/android/server/pm/parsing/pkg/AndroidPackageUtils.java
index 8b2c3a12..32b1e5d 100644
--- a/services/core/java/com/android/server/pm/parsing/pkg/AndroidPackageUtils.java
+++ b/services/core/java/com/android/server/pm/parsing/pkg/AndroidPackageUtils.java
@@ -87,17 +87,6 @@
         return paths;
     }
 
-    public static SharedLibraryInfo createSharedLibraryForSdk(AndroidPackage pkg) {
-        return new SharedLibraryInfo(null, pkg.getPackageName(),
-                AndroidPackageUtils.getAllCodePaths(pkg),
-                pkg.getSdkLibName(),
-                pkg.getSdkLibVersionMajor(),
-                SharedLibraryInfo.TYPE_SDK,
-                new VersionedPackage(pkg.getManifestPackageName(),
-                        pkg.getLongVersionCode()),
-                null, null, false /* isNative */);
-    }
-
     public static SharedLibraryInfo createSharedLibraryForStatic(AndroidPackage pkg) {
         return new SharedLibraryInfo(null, pkg.getPackageName(),
                 AndroidPackageUtils.getAllCodePaths(pkg),
@@ -229,8 +218,7 @@
 
     public static boolean isLibrary(AndroidPackage pkg) {
         // TODO(b/135203078): Can parsing just enforce these always match?
-        return pkg.getSdkLibName() != null || pkg.getStaticSharedLibName() != null
-                || !pkg.getLibraryNames().isEmpty();
+        return pkg.getStaticSharedLibName() != null || !pkg.getLibraryNames().isEmpty();
     }
 
     public static int getHiddenApiEnforcementPolicy(AndroidPackage pkg,
diff --git a/services/core/java/com/android/server/pm/pkg/PackageState.java b/services/core/java/com/android/server/pm/pkg/PackageState.java
index 34575e0..82edce6 100644
--- a/services/core/java/com/android/server/pm/pkg/PackageState.java
+++ b/services/core/java/com/android/server/pm/pkg/PackageState.java
@@ -27,6 +27,7 @@
 import android.content.pm.SigningInfo;
 import android.util.SparseArray;
 
+import com.android.internal.R;
 import com.android.server.pm.PackageSetting;
 import com.android.server.pm.Settings;
 
@@ -205,18 +206,6 @@
     List<SharedLibraryInfo> getUsesLibraryInfos();
 
     /**
-     * @see R.styleable#AndroidManifestUsesSdkLibrary
-     */
-    @NonNull
-    String[] getUsesSdkLibraries();
-
-    /**
-     * @see R.styleable#AndroidManifestUsesSdkLibrary_versionMajor
-     */
-    @NonNull
-    long[] getUsesSdkLibrariesVersionsMajor();
-
-    /**
      * @see R.styleable#AndroidManifestUsesStaticLibrary
      */
     @NonNull
diff --git a/services/core/java/com/android/server/pm/pkg/PackageStateImpl.java b/services/core/java/com/android/server/pm/pkg/PackageStateImpl.java
index f5e498d..46d32b9 100644
--- a/services/core/java/com/android/server/pm/pkg/PackageStateImpl.java
+++ b/services/core/java/com/android/server/pm/pkg/PackageStateImpl.java
@@ -130,10 +130,6 @@
     @Nullable
     private final Integer mSharedUserId;
     @NonNull
-    private final String[] mUsesSdkLibraries;
-    @NonNull
-    private final long[] mUsesSdkLibrariesVersionsMajor;
-    @NonNull
     private final String[] mUsesStaticLibraries;
     @NonNull
     private final long[] mUsesStaticLibrariesVersions;
@@ -175,8 +171,6 @@
         mPrimaryCpuAbi = pkgState.getPrimaryCpuAbi();
         mSecondaryCpuAbi = pkgState.getSecondaryCpuAbi();
         mSharedUserId = pkgState.getSharedUserId();
-        mUsesSdkLibraries = pkgState.getUsesSdkLibraries();
-        mUsesSdkLibrariesVersionsMajor = pkgState.getUsesSdkLibrariesVersionsMajor();
         mUsesStaticLibraries = pkgState.getUsesStaticLibraries();
         mUsesStaticLibrariesVersions = pkgState.getUsesStaticLibrariesVersions();
         mUsesLibraryInfos = pkgState.getUsesLibraryInfos();
@@ -268,11 +262,6 @@
         return getBoolean(Booleans.VENDOR);
     }
 
-    @Override
-    public long getVersionCode() {
-        return mLongVersionCode;
-    }
-
     /**
      * @hide
      */
@@ -511,10 +500,10 @@
         }
 
         @DataClass.Generated(
-                time = 1637977288540L,
+                time = 1633375703010L,
                 codegenVersion = "1.0.23",
                 sourceFile = "frameworks/base/services/core/java/com/android/server/pm/pkg/PackageStateImpl.java",
-                inputSignatures = "private  int mBooleans\nprivate final  long mCeDataInode\nprivate final @android.annotation.NonNull java.util.Set<java.lang.String> mDisabledComponents\nprivate final @android.content.pm.PackageManager.DistractionRestriction int mDistractionFlags\nprivate final @android.annotation.NonNull java.util.Set<java.lang.String> mEnabledComponents\nprivate final  int mEnabledState\nprivate final @android.annotation.Nullable java.lang.String mHarmfulAppWarning\nprivate final @android.content.pm.PackageManager.InstallReason int mInstallReason\nprivate final @android.annotation.Nullable java.lang.String mLastDisableAppCaller\nprivate final @android.annotation.NonNull android.content.pm.overlay.OverlayPaths mOverlayPaths\nprivate final @android.annotation.NonNull java.util.Map<java.lang.String,android.content.pm.overlay.OverlayPaths> mSharedLibraryOverlayPaths\nprivate final @android.content.pm.PackageManager.UninstallReason int mUninstallReason\nprivate final @android.annotation.Nullable java.lang.String mSplashScreenTheme\npublic static  com.android.server.pm.pkg.PackageUserState copy(com.android.server.pm.pkg.PackageUserState)\nprivate  void setBoolean(int,boolean)\nprivate  boolean getBoolean(int)\npublic @java.lang.Override boolean isHidden()\npublic @java.lang.Override boolean isInstalled()\npublic @java.lang.Override boolean isInstantApp()\npublic @java.lang.Override boolean isNotLaunched()\npublic @java.lang.Override boolean isStopped()\npublic @java.lang.Override boolean isSuspended()\npublic @java.lang.Override boolean isVirtualPreload()\npublic @java.lang.Override boolean isComponentEnabled(java.lang.String)\npublic @java.lang.Override boolean isComponentDisabled(java.lang.String)\npublic @java.lang.Override android.content.pm.overlay.OverlayPaths getAllOverlayPaths()\nclass UserStateImpl extends java.lang.Object implements [com.android.server.pm.pkg.PackageUserState]\nprivate static final  int HIDDEN\nprivate static final  int INSTALLED\nprivate static final  int INSTANT_APP\nprivate static final  int NOT_LAUNCHED\nprivate static final  int STOPPED\nprivate static final  int SUSPENDED\nprivate static final  int VIRTUAL_PRELOAD\nclass Booleans extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false)")
+                inputSignatures = "private  int mBooleans\nprivate final  long mCeDataInode\nprivate final @android.annotation.NonNull java.util.Set<java.lang.String> mDisabledComponents\nprivate final @android.content.pm.PackageManager.DistractionRestriction int mDistractionFlags\nprivate final @android.annotation.NonNull java.util.Set<java.lang.String> mEnabledComponents\nprivate final  int mEnabledState\nprivate final @android.annotation.Nullable java.lang.String mHarmfulAppWarning\nprivate final @android.content.pm.PackageManager.InstallReason int mInstallReason\nprivate final @android.annotation.Nullable java.lang.String mLastDisableAppCaller\nprivate final @android.annotation.NonNull android.content.pm.overlay.OverlayPaths mOverlayPaths\nprivate final @android.annotation.NonNull java.util.Map<java.lang.String,android.content.pm.overlay.OverlayPaths> mSharedLibraryOverlayPaths\nprivate final @android.content.pm.PackageManager.UninstallReason int mUninstallReason\nprivate final @android.annotation.Nullable java.lang.String mSplashScreenTheme\npublic static  android.content.pm.pkg.PackageUserState copy(android.content.pm.pkg.PackageUserState)\nprivate  void setBoolean(int,boolean)\nprivate  boolean getBoolean(int)\npublic @java.lang.Override boolean isHidden()\npublic @java.lang.Override boolean isInstalled()\npublic @java.lang.Override boolean isInstantApp()\npublic @java.lang.Override boolean isNotLaunched()\npublic @java.lang.Override boolean isStopped()\npublic @java.lang.Override boolean isSuspended()\npublic @java.lang.Override boolean isVirtualPreload()\npublic @java.lang.Override boolean isComponentEnabled(java.lang.String)\npublic @java.lang.Override boolean isComponentDisabled(java.lang.String)\npublic @java.lang.Override android.content.pm.overlay.OverlayPaths getAllOverlayPaths()\nclass UserStateImpl extends java.lang.Object implements [android.content.pm.pkg.PackageUserState]\nprivate static final  int HIDDEN\nprivate static final  int INSTALLED\nprivate static final  int INSTANT_APP\nprivate static final  int NOT_LAUNCHED\nprivate static final  int STOPPED\nprivate static final  int SUSPENDED\nprivate static final  int VIRTUAL_PRELOAD\nclass Booleans extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false)")
         @Deprecated
         private void __metadata() {}
 
@@ -590,7 +579,7 @@
     }
 
     @DataClass.Generated.Member
-    public long getLongVersionCode() {
+    public long getVersionCode() {
         return mLongVersionCode;
     }
 
@@ -620,16 +609,6 @@
     }
 
     @DataClass.Generated.Member
-    public @NonNull String[] getUsesSdkLibraries() {
-        return mUsesSdkLibraries;
-    }
-
-    @DataClass.Generated.Member
-    public @NonNull long[] getUsesSdkLibrariesVersionsMajor() {
-        return mUsesSdkLibrariesVersionsMajor;
-    }
-
-    @DataClass.Generated.Member
     public @NonNull String[] getUsesStaticLibraries() {
         return mUsesStaticLibraries;
     }
@@ -671,10 +650,10 @@
     }
 
     @DataClass.Generated(
-            time = 1637977288579L,
+            time = 1633375703038L,
             codegenVersion = "1.0.23",
             sourceFile = "frameworks/base/services/core/java/com/android/server/pm/pkg/PackageStateImpl.java",
-            inputSignatures = "private  int mBooleans\nprivate final @android.annotation.Nullable com.android.server.pm.pkg.AndroidPackageApi mAndroidPackage\nprivate final @android.annotation.NonNull java.lang.String mPackageName\nprivate final @android.annotation.Nullable java.lang.String mVolumeUuid\nprivate final  int mAppId\nprivate final  int mCategoryOverride\nprivate final @android.annotation.Nullable java.lang.String mCpuAbiOverride\nprivate final  long mFirstInstallTime\nprivate final  long mLastModifiedTime\nprivate final  long mLastUpdateTime\nprivate final  long mLongVersionCode\nprivate final @android.annotation.NonNull java.util.Map<java.lang.String,java.util.Set<java.lang.String>> mMimeGroups\nprivate final @android.annotation.NonNull java.io.File mPath\nprivate final @android.annotation.Nullable java.lang.String mPrimaryCpuAbi\nprivate final @android.annotation.Nullable java.lang.String mSecondaryCpuAbi\nprivate final @android.annotation.Nullable java.lang.Integer mSharedUserId\nprivate final @android.annotation.NonNull java.lang.String[] mUsesSdkLibraries\nprivate final @android.annotation.NonNull long[] mUsesSdkLibrariesVersionsMajor\nprivate final @android.annotation.NonNull java.lang.String[] mUsesStaticLibraries\nprivate final @android.annotation.NonNull long[] mUsesStaticLibrariesVersions\nprivate final @android.annotation.NonNull java.util.List<android.content.pm.SharedLibraryInfo> mUsesLibraryInfos\nprivate final @android.annotation.NonNull java.util.List<java.lang.String> mUsesLibraryFiles\nprivate final @android.annotation.NonNull long[] mLastPackageUsageTime\nprivate final @android.annotation.NonNull android.content.pm.SigningInfo mSigningInfo\nprivate final @android.annotation.NonNull android.util.SparseArray<com.android.server.pm.pkg.PackageUserState> mUserStates\npublic static  com.android.server.pm.pkg.PackageState copy(com.android.server.pm.pkg.PackageStateInternal)\nprivate  void setBoolean(int,boolean)\nprivate  boolean getBoolean(int)\npublic @java.lang.Override boolean isExternalStorage()\npublic @java.lang.Override boolean isForceQueryableOverride()\npublic @java.lang.Override boolean isHiddenUntilInstalled()\npublic @java.lang.Override boolean isInstallPermissionsFixed()\npublic @java.lang.Override boolean isOdm()\npublic @java.lang.Override boolean isOem()\npublic @java.lang.Override boolean isPrivileged()\npublic @java.lang.Override boolean isProduct()\npublic @java.lang.Override boolean isRequiredForSystemUser()\npublic @java.lang.Override boolean isSystem()\npublic @java.lang.Override boolean isSystemExt()\npublic @java.lang.Override boolean isUpdateAvailable()\npublic @java.lang.Override boolean isUpdatedSystemApp()\npublic @java.lang.Override boolean isVendor()\npublic @java.lang.Override long getVersionCode()\nclass PackageStateImpl extends java.lang.Object implements [com.android.server.pm.pkg.PackageState]\nprivate static final  int SYSTEM\nprivate static final  int EXTERNAL_STORAGE\nprivate static final  int PRIVILEGED\nprivate static final  int OEM\nprivate static final  int VENDOR\nprivate static final  int PRODUCT\nprivate static final  int SYSTEM_EXT\nprivate static final  int REQUIRED_FOR_SYSTEM_USER\nprivate static final  int ODM\nprivate static final  int FORCE_QUERYABLE_OVERRIDE\nprivate static final  int HIDDEN_UNTIL_INSTALLED\nprivate static final  int INSTALL_PERMISSIONS_FIXED\nprivate static final  int UPDATE_AVAILABLE\nprivate static final  int UPDATED_SYSTEM_APP\nclass Booleans extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false)")
+            inputSignatures = "private  int mBooleans\nprivate final @android.annotation.Nullable com.android.server.pm.pkg.AndroidPackageApi mAndroidPackage\nprivate final @android.annotation.NonNull java.lang.String mPackageName\nprivate final @android.annotation.Nullable java.lang.String mVolumeUuid\nprivate final  int mAppId\nprivate final  int mCategoryOverride\nprivate final @android.annotation.Nullable java.lang.String mCpuAbiOverride\nprivate final  long mFirstInstallTime\nprivate final  long mLastModifiedTime\nprivate final  long mLastUpdateTime\nprivate final  long mLongVersionCode\nprivate final @android.annotation.NonNull java.util.Map<java.lang.String,java.util.Set<java.lang.String>> mMimeGroups\nprivate final @android.annotation.NonNull java.io.File mPath\nprivate final @android.annotation.Nullable java.lang.String mPrimaryCpuAbi\nprivate final @android.annotation.Nullable java.lang.String mSecondaryCpuAbi\nprivate final @android.annotation.Nullable java.lang.Integer mSharedUserId\nprivate final @android.annotation.NonNull java.lang.String[] mUsesStaticLibraries\nprivate final @android.annotation.NonNull long[] mUsesStaticLibrariesVersions\nprivate final @android.annotation.NonNull java.util.List<android.content.pm.SharedLibraryInfo> mUsesLibraryInfos\nprivate final @android.annotation.NonNull java.util.List<java.lang.String> mUsesLibraryFiles\nprivate final @android.annotation.NonNull long[] mLastPackageUsageTime\nprivate final @android.annotation.NonNull android.content.pm.SigningInfo mSigningInfo\nprivate final @android.annotation.NonNull android.util.SparseArray<android.content.pm.pkg.PackageUserState> mUserStates\npublic static  com.android.server.pm.pkg.PackageState copy(com.android.server.pm.PackageSetting)\nprivate  void setBoolean(int,boolean)\nprivate  boolean getBoolean(int)\npublic @java.lang.Override boolean isExternalStorage()\npublic @java.lang.Override boolean isForceQueryableOverride()\npublic @java.lang.Override boolean isHiddenUntilInstalled()\npublic @java.lang.Override boolean isInstallPermissionsFixed()\npublic @java.lang.Override boolean isOdm()\npublic @java.lang.Override boolean isOem()\npublic @java.lang.Override boolean isPrivileged()\npublic @java.lang.Override boolean isProduct()\npublic @java.lang.Override boolean isRequiredForSystemUser()\npublic @java.lang.Override boolean isSystem()\npublic @java.lang.Override boolean isSystemExt()\npublic @java.lang.Override boolean isUpdateAvailable()\npublic @java.lang.Override boolean isUpdatedSystemApp()\npublic @java.lang.Override boolean isVendor()\nclass PackageStateImpl extends java.lang.Object implements [com.android.server.pm.pkg.PackageState]\nprivate static final  int SYSTEM\nprivate static final  int EXTERNAL_STORAGE\nprivate static final  int PRIVILEGED\nprivate static final  int OEM\nprivate static final  int VENDOR\nprivate static final  int PRODUCT\nprivate static final  int SYSTEM_EXT\nprivate static final  int REQUIRED_FOR_SYSTEM_USER\nprivate static final  int ODM\nprivate static final  int FORCE_QUERYABLE_OVERRIDE\nprivate static final  int HIDDEN_UNTIL_INSTALLED\nprivate static final  int INSTALL_PERMISSIONS_FIXED\nprivate static final  int UPDATE_AVAILABLE\nprivate static final  int UPDATED_SYSTEM_APP\nclass Booleans extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false)")
     @Deprecated
     private void __metadata() {}
 
diff --git a/services/tests/PackageManagerComponentOverrideTests/src/com/android/server/pm/test/override/PackageManagerComponentLabelIconOverrideTest.kt b/services/tests/PackageManagerComponentOverrideTests/src/com/android/server/pm/test/override/PackageManagerComponentLabelIconOverrideTest.kt
index 4b12fd4..9d86081 100644
--- a/services/tests/PackageManagerComponentOverrideTests/src/com/android/server/pm/test/override/PackageManagerComponentLabelIconOverrideTest.kt
+++ b/services/tests/PackageManagerComponentOverrideTests/src/com/android/server/pm/test/override/PackageManagerComponentLabelIconOverrideTest.kt
@@ -274,7 +274,7 @@
     private fun makePkgSetting(pkgName: String) = spy(
         PackageSetting(
             pkgName, null, File("/test"),
-            null, null, null, null, 0, 0, 0, 0, null, null, null, null, null,
+            null, null, null, null, 0, 0, 0, 0, null, null, null,
             UUID.fromString("3f9d52b7-d7b4-406a-a1da-d9f19984c72c")
         )
     ) {
diff --git a/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/parsing/parcelling/AndroidPackageTest.kt b/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/parsing/parcelling/AndroidPackageTest.kt
index 4a35fdf..dc93e53 100644
--- a/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/parsing/parcelling/AndroidPackageTest.kt
+++ b/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/parsing/parcelling/AndroidPackageTest.kt
@@ -106,16 +106,6 @@
         "setSplitCodePaths",
         "setSplitClassLoaderName",
         "setSplitHasCode",
-        // Tested through addUsesSdkLibrary
-        "addUsesSdkLibrary",
-        "getUsesSdkLibraries",
-        "getUsesSdkLibrariesVersionsMajor",
-        "getUsesSdkLibrariesCertDigests",
-        // Tested through addUsesStaticLibrary
-        "addUsesStaticLibrary",
-        "getUsesStaticLibraries",
-        "getUsesStaticLibrariesVersions",
-        "getUsesStaticLibrariesCertDigests"
     )
 
     override val baseParams = listOf(
@@ -167,8 +157,6 @@
         AndroidPackage::getSecondaryNativeLibraryDir,
         AndroidPackage::getSharedUserId,
         AndroidPackage::getSharedUserLabel,
-        AndroidPackage::getSdkLibName,
-        AndroidPackage::getSdkLibVersionMajor,
         AndroidPackage::getStaticSharedLibName,
         AndroidPackage::getStaticSharedLibVersion,
         AndroidPackage::getTargetSandboxVersion,
@@ -222,7 +210,6 @@
         AndroidPackage::isResizeableActivityViaSdkVersion,
         AndroidPackage::isRestoreAnyVersion,
         AndroidPackage::isSignedWithPlatformKey,
-        AndroidPackage::isSdkLibrary,
         AndroidPackage::isStaticSharedLibrary,
         AndroidPackage::isStub,
         AndroidPackage::isSupportsRtl,
@@ -241,7 +228,7 @@
         AndroidPackage::getMinAspectRatio,
         AndroidPackage::hasPreserveLegacyExternalStorage,
         AndroidPackage::hasRequestForegroundServiceExemption,
-        AndroidPackage::hasRequestRawExternalStorageAccess
+        AndroidPackage::hasRequestRawExternalStorageAccess,
     )
 
     override fun extraParams() = listOf(
@@ -267,6 +254,13 @@
         adder(AndroidPackage::getUsesNativeLibraries, "testUsesNativeLibrary"),
         adder(AndroidPackage::getUsesOptionalLibraries, "testUsesOptionalLibrary"),
         adder(AndroidPackage::getUsesOptionalNativeLibraries, "testUsesOptionalNativeLibrary"),
+        adder(AndroidPackage::getUsesStaticLibraries, "testUsesStaticLibrary"),
+        getSetByValue(
+            AndroidPackage::getUsesStaticLibrariesVersions,
+            PackageImpl::addUsesStaticLibraryVersion,
+            (testCounter++).toLong(),
+            transformGet = { it?.singleOrNull() }
+        ),
         getSetByValue(
             AndroidPackage::areAttributionsUserVisible,
             ParsingPackage::setAttributionsAreUserVisible,
@@ -296,7 +290,7 @@
             AndroidPackage::getKeySetMapping,
             PackageImpl::addKeySet,
             "testKeySetName" to testKey(),
-            transformGet = { "testKeySetName" to it["testKeySetName"]?.singleOrNull() }
+            transformGet = { "testKeySetName" to it["testKeySetName"]?.singleOrNull() },
         ),
         getSetByValue(
             AndroidPackage::getPermissionGroups,
@@ -321,7 +315,7 @@
                     { it.first },
                     { it.second.intentFilter.schemesIterator().asSequence().singleOrNull() },
                     { it.second.intentFilter.authoritiesIterator().asSequence()
-                        .singleOrNull()?.host }
+                        .singleOrNull()?.host },
                 )
             }
         ),
@@ -330,7 +324,7 @@
             PackageImpl::addQueriesIntent,
             Intent(Intent.ACTION_VIEW, Uri.parse("https://test.pm.server.android.com")),
             transformGet = { it.singleOrNull() },
-            compare = { first, second -> first?.filterEquals(second) }
+            compare = { first, second -> first?.filterEquals(second) },
         ),
         getSetByValue(
             AndroidPackage::getRestrictUpdateHash,
@@ -353,6 +347,13 @@
             }
         ),
         getSetByValue(
+            AndroidPackage::getUsesStaticLibrariesCertDigests,
+            PackageImpl::addUsesStaticLibraryCertDigests,
+            arrayOf("testCertDigest"),
+            transformGet = { it?.singleOrNull() },
+            compare = Array<String?>?::contentEquals
+        ),
+        getSetByValue(
             AndroidPackage::getActivities,
             PackageImpl::addActivity,
             "TestActivityName",
@@ -439,7 +440,7 @@
                     first, second,
                     { it.size() },
                     { it.keyAt(0) },
-                    { it.valueAt(0) }
+                    { it.valueAt(0) },
                 )
             }
         ),
@@ -450,7 +451,7 @@
             compare = { first, second ->
                 equalBy(
                     first, second,
-                    { it["testProcess"]?.name }
+                    { it["testProcess"]?.name },
                 )
             }
         ),
@@ -470,10 +471,10 @@
                     PackageManager.Property::getName,
                     PackageManager.Property::getClassName,
                     PackageManager.Property::getPackageName,
-                    PackageManager.Property::getString
+                    PackageManager.Property::getString,
                 )
             }
-        )
+        ),
     )
 
     override fun initialObject() = PackageImpl.forParsing(
@@ -517,9 +518,6 @@
         .setSplitClassLoaderName(0, "testSplitClassLoaderNameZero")
         .setSplitClassLoaderName(1, "testSplitClassLoaderNameOne")
 
-        .addUsesSdkLibrary("testSdk", 2L, arrayOf("testCertDigest1"))
-        .addUsesStaticLibrary("testStatic", 3L, arrayOf("testCertDigest2"))
-
     override fun extraAssertions(before: Parcelable, after: Parcelable) {
         super.extraAssertions(before, after)
         after as PackageImpl
@@ -560,18 +558,6 @@
             expect.that(it.get(0)).asList().containsExactly(-1)
             expect.that(it.get(1)).asList().containsExactly(0)
         }
-
-        expect.that(after.usesSdkLibraries).containsExactly("testSdk")
-        expect.that(after.usesSdkLibrariesVersionsMajor).asList().containsExactly(2L)
-        expect.that(after.usesSdkLibrariesCertDigests!!.size).isEqualTo(1)
-        expect.that(after.usesSdkLibrariesCertDigests!![0]).asList()
-                .containsExactly("testCertDigest1")
-
-        expect.that(after.usesStaticLibraries).containsExactly("testStatic")
-        expect.that(after.usesStaticLibrariesVersions).asList().containsExactly(3L)
-        expect.that(after.usesStaticLibrariesCertDigests!!.size).isEqualTo(1)
-        expect.that(after.usesStaticLibrariesCertDigests!![0]).asList()
-                .containsExactly("testCertDigest2")
     }
 
     private fun testKey() = KeyPairGenerator.getInstance("RSA")
diff --git a/services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt b/services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt
index ae5984a41..0e5640a 100644
--- a/services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt
+++ b/services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt
@@ -150,7 +150,7 @@
         }
         whenever(mocks.settings.addPackageLPw(nullable(), nullable(), nullable(), nullable(),
                 nullable(), nullable(), nullable(), nullable(), nullable(), nullable(), nullable(),
-                nullable(), nullable(), nullable(), nullable(), nullable(), nullable())) {
+                nullable(), nullable(), nullable(), nullable())) {
             val name: String = getArgument(0)
             val pendingAdd = mPendingPackageAdds.firstOrNull { it.first == name }
                     ?: return@whenever null
diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageManagerSettingsTests.java b/services/tests/servicestests/src/com/android/server/pm/PackageManagerSettingsTests.java
index 6c9f8fe..a9a3469 100644
--- a/services/tests/servicestests/src/com/android/server/pm/PackageManagerSettingsTests.java
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageManagerSettingsTests.java
@@ -498,71 +498,6 @@
     }
 
     @Test
-    public void testWriteReadUsesSdkLibraries() {
-        final Settings settingsUnderTest = makeSettings();
-        final PackageSetting ps1 = createPackageSetting(PACKAGE_NAME_1);
-        ps1.setAppId(Process.FIRST_APPLICATION_UID);
-        ps1.setPkg(((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME_1).hideAsParsed())
-                .setUid(ps1.getAppId())
-                .setSystem(true)
-                .hideAsFinal());
-        final PackageSetting ps2 = createPackageSetting(PACKAGE_NAME_2);
-        ps2.setAppId(Process.FIRST_APPLICATION_UID + 1);
-        ps2.setPkg(((ParsedPackage) PackageImpl.forTesting(PACKAGE_NAME_2).hideAsParsed())
-                .setUid(ps2.getAppId())
-                .hideAsFinal());
-
-        ps1.setUsesSdkLibraries(new String[] { "com.example.sdk.one" });
-        ps1.setUsesSdkLibrariesVersionsMajor(new long[] { 12 });
-        ps1.setFlags(ps1.getFlags() | ApplicationInfo.FLAG_SYSTEM);
-        settingsUnderTest.mPackages.put(PACKAGE_NAME_1, ps1);
-        assertThat(settingsUnderTest.disableSystemPackageLPw(PACKAGE_NAME_1, false), is(true));
-
-        ps2.setUsesSdkLibraries(new String[] { "com.example.sdk.two" });
-        ps2.setUsesSdkLibrariesVersionsMajor(new long[] { 34 });
-        settingsUnderTest.mPackages.put(PACKAGE_NAME_2, ps2);
-
-        settingsUnderTest.writeLPr();
-
-        settingsUnderTest.mPackages.clear();
-        settingsUnderTest.mDisabledSysPackages.clear();
-
-        assertThat(settingsUnderTest.readLPw(createFakeUsers()), is(true));
-
-        PackageSetting readPs1 = settingsUnderTest.getPackageLPr(PACKAGE_NAME_1);
-        PackageSetting readPs2 = settingsUnderTest.getPackageLPr(PACKAGE_NAME_2);
-
-        Truth.assertThat(readPs1).isNotNull();
-        Truth.assertThat(readPs1.getUsesSdkLibraries()).isNotNull();
-        Truth.assertThat(readPs1.getUsesSdkLibrariesVersionsMajor()).isNotNull();
-        Truth.assertThat(readPs2).isNotNull();
-        Truth.assertThat(readPs2.getUsesSdkLibraries()).isNotNull();
-        Truth.assertThat(readPs2.getUsesSdkLibrariesVersionsMajor()).isNotNull();
-
-        List<Long> ps1VersionsAsList = new ArrayList<>();
-        for (long version : ps1.getUsesSdkLibrariesVersionsMajor()) {
-            ps1VersionsAsList.add(version);
-        }
-
-        List<Long> ps2VersionsAsList = new ArrayList<>();
-        for (long version : ps2.getUsesSdkLibrariesVersionsMajor()) {
-            ps2VersionsAsList.add(version);
-        }
-
-        Truth.assertThat(readPs1.getUsesSdkLibraries()).asList()
-                .containsExactlyElementsIn(ps1.getUsesSdkLibraries()).inOrder();
-
-        Truth.assertThat(readPs1.getUsesSdkLibrariesVersionsMajor()).asList()
-                .containsExactlyElementsIn(ps1VersionsAsList).inOrder();
-
-        Truth.assertThat(readPs2.getUsesSdkLibraries()).asList()
-                .containsExactlyElementsIn(ps2.getUsesSdkLibraries()).inOrder();
-
-        Truth.assertThat(readPs2.getUsesSdkLibrariesVersionsMajor()).asList()
-                .containsExactlyElementsIn(ps2VersionsAsList).inOrder();
-    }
-
-    @Test
     public void testPackageRestrictionsDistractionFlagsDefault() {
         final PackageSetting defaultSetting = createPackageSetting(PACKAGE_NAME_1);
         assertThat(defaultSetting.getDistractionFlags(0), is(PackageManager.RESTRICTION_NONE));
@@ -636,8 +571,6 @@
                 ApplicationInfo.FLAG_SYSTEM|ApplicationInfo.FLAG_HAS_CODE,
                 ApplicationInfo.PRIVATE_FLAG_PRIVILEGED|ApplicationInfo.PRIVATE_FLAG_HIDDEN,
                 0,
-                null /*usesSdkLibraries*/,
-                null /*usesSdkLibrariesVersions*/,
                 null /*usesStaticLibraries*/,
                 null /*usesStaticLibrariesVersions*/,
                 null /*mimeGroups*/,
@@ -660,8 +593,6 @@
                 ApplicationInfo.FLAG_SYSTEM|ApplicationInfo.FLAG_HAS_CODE,
                 ApplicationInfo.PRIVATE_FLAG_PRIVILEGED|ApplicationInfo.PRIVATE_FLAG_HIDDEN,
                 0,
-                null /*usesSdkLibraries*/,
-                null /*usesSdkLibrariesVersions*/,
                 null /*usesStaticLibraries*/,
                 null /*usesStaticLibrariesVersions*/,
                 null /*mimeGroups*/,
@@ -678,8 +609,6 @@
                 0 /*pkgFlags*/,
                 0 /*pkgPrivateFlags*/,
                 0,
-                null /*usesSdkLibraries*/,
-                null /*usesSdkLibrariesVersions*/,
                 null /*usesStaticLibraries*/,
                 null /*usesStaticLibrariesVersions*/,
                 null /*mimeGroups*/,
@@ -708,8 +637,6 @@
                 0 /*pkgFlags*/,
                 0 /*pkgPrivateFlags*/,
                 UserManagerService.getInstance(),
-                null /*usesSdkLibraries*/,
-                null /*usesSdkLibrariesVersions*/,
                 null /*usesStaticLibraries*/,
                 null /*usesStaticLibrariesVersions*/,
                 null /*mimeGroups*/,
@@ -744,8 +671,6 @@
                 ApplicationInfo.FLAG_SYSTEM /*pkgFlags*/,
                 ApplicationInfo.PRIVATE_FLAG_PRIVILEGED /*pkgPrivateFlags*/,
                 UserManagerService.getInstance(),
-                null /*usesSdkLibraries*/,
-                null /*usesSdkLibrariesVersions*/,
                 null /*usesStaticLibraries*/,
                 null /*usesStaticLibrariesVersions*/,
                 null /*mimeGroups*/,
@@ -783,8 +708,6 @@
                     0 /*pkgFlags*/,
                     0 /*pkgPrivateFlags*/,
                     UserManagerService.getInstance(),
-                    null /*usesSdkLibraries*/,
-                    null /*usesSdkLibrariesVersions*/,
                     null /*usesStaticLibraries*/,
                     null /*usesStaticLibrariesVersions*/,
                     null /*mimeGroups*/,
@@ -818,8 +741,6 @@
                 false /*instantApp*/,
                 false /*virtualPreload*/,
                 UserManagerService.getInstance(),
-                null /*usesSdkLibraries*/,
-                null /*usesSdkLibrariesVersions*/,
                 null /*usesStaticLibraries*/,
                 null /*usesStaticLibrariesVersions*/,
                 null /*mimeGroups*/,
@@ -859,8 +780,6 @@
                 false /*instantApp*/,
                 false /*virtualPreload*/,
                 UserManagerService.getInstance(),
-                null /*usesSdkLibraries*/,
-                null /*usesSdkLibrariesVersions*/,
                 null /*usesStaticLibraries*/,
                 null /*usesStaticLibrariesVersions*/,
                 null /*mimeGroups*/,
@@ -903,8 +822,6 @@
                 false /*instantApp*/,
                 false /*virtualPreload*/,
                 UserManagerService.getInstance(),
-                null /*usesSdkLibraries*/,
-                null /*usesSdkLibrariesVersions*/,
                 null /*usesStaticLibraries*/,
                 null /*usesStaticLibrariesVersions*/,
                 null /*mimeGroups*/,
@@ -947,8 +864,6 @@
                 false /*instantApp*/,
                 false /*virtualPreload*/,
                 UserManagerService.getInstance(),
-                null /*usesSdkLibraries*/,
-                null /*usesSdkLibrariesVersions*/,
                 null /*usesStaticLibraries*/,
                 null /*usesStaticLibrariesVersions*/,
                 null /*mimeGroups*/,
@@ -1056,25 +971,6 @@
         assertThat(countDownLatch.getCount(), is(1L));
     }
 
-    @Test
-    public void testSetPkgStateLibraryFiles_addNewSdks() {
-        final PackageSetting packageSetting = createPackageSetting("com.foo");
-        final CountDownLatch countDownLatch = new CountDownLatch(1);
-        packageSetting.registerObserver(new Watcher() {
-            @Override
-            public void onChange(Watchable what) {
-                countDownLatch.countDown();
-            }
-        });
-
-        final List<String> files = new ArrayList<>();
-        files.add("com.sdk1_123");
-        files.add("com.sdk9_876");
-        packageSetting.setUsesSdkLibraries(files.toArray(new String[files.size()]));
-
-        assertThat(countDownLatch.getCount(), is(0L));
-    }
-
     private <T> void assertArrayEquals(T[] a, T[] b) {
         assertTrue("Expected: " + Arrays.toString(a) + ", actual: " + Arrays.toString(b),
                 Arrays.equals(a, b));
@@ -1194,8 +1090,6 @@
                 pkgFlags,
                 0 /*privateFlags*/,
                 sharedUserId,
-                null /*usesSdkLibraries*/,
-                null /*usesSdkLibrariesVersions*/,
                 null /*usesStaticLibraries*/,
                 null /*usesStaticLibrariesVersions*/,
                 null /*mimeGroups*/,
@@ -1215,8 +1109,6 @@
                 0,
                 0 /*privateFlags*/,
                 0,
-                null /*usesSdkLibraries*/,
-                null /*usesSdkLibrariesVersions*/,
                 null /*usesStaticLibraries*/,
                 null /*usesStaticLibrariesVersions*/,
                 null /*mimeGroups*/,
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 11bac45..fb092d2 100644
--- a/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
@@ -932,12 +932,11 @@
                 .addUsesPermission(new ParsedUsesPermissionImpl("foo7", 0))
                 .addImplicitPermission("foo25")
                 .addProtectedBroadcast("foo8")
-                .setSdkLibName("sdk12")
-                .setSdkLibVersionMajor(42)
-                .addUsesSdkLibrary("sdk23", 200, new String[]{"digest2"})
                 .setStaticSharedLibName("foo23")
                 .setStaticSharedLibVersion(100)
-                .addUsesStaticLibrary("foo23", 100, new String[]{"digest"})
+                .addUsesStaticLibrary("foo23")
+                .addUsesStaticLibraryCertDigests(new String[]{"digest"})
+                .addUsesStaticLibraryVersion(100)
                 .addLibraryName("foo10")
                 .addUsesLibrary("foo11")
                 .addUsesOptionalLibrary("foo12")
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 94d8358..2146070 100644
--- a/services/tests/servicestests/src/com/android/server/pm/PackageSettingBuilder.java
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageSettingBuilder.java
@@ -44,6 +44,8 @@
     private SparseArray<PackageUserStateImpl> mUserStates = new SparseArray<>();
     private AndroidPackage mPkg;
     private InstallSource mInstallSource;
+    private String[] mUsesStaticLibraries;
+    private long[] mUsesStaticLibrariesVersions;
     private Map<String, Set<String>> mMimeGroups;
     private SigningDetails mSigningDetails;
     private UUID mDomainSetId = UUID.randomUUID();
@@ -114,6 +116,17 @@
         return this;
     }
 
+    public PackageSettingBuilder setUsesStaticLibraries(String[] usesStaticLibraries) {
+        this.mUsesStaticLibraries = usesStaticLibraries;
+        return this;
+    }
+
+    public PackageSettingBuilder setUsesStaticLibrariesVersions(
+            long[] usesStaticLibrariesVersions) {
+        this.mUsesStaticLibrariesVersions = usesStaticLibrariesVersions;
+        return this;
+    }
+
     public PackageSettingBuilder setMimeGroups(Map<String, Set<String>> mimeGroups) {
         this.mMimeGroups = mimeGroups;
         return this;
@@ -160,9 +173,8 @@
         final PackageSetting packageSetting = new PackageSetting(mName, mRealName,
                 new File(mCodePath), mLegacyNativeLibraryPathString, mPrimaryCpuAbiString,
                 mSecondaryCpuAbiString, mCpuAbiOverrideString, mPVersionCode, mPkgFlags,
-                mPrivateFlags, mSharedUserId, null /* usesSdkLibraries */,
-                null /* usesSdkLibrariesVersions */, null /* usesStaticLibraries */,
-                null  /* usesStaticLibrariesVersions */, mMimeGroups, mDomainSetId);
+                mPrivateFlags, mSharedUserId, mUsesStaticLibraries, mUsesStaticLibrariesVersions,
+                mMimeGroups, mDomainSetId);
         packageSetting.setSignatures(mSigningDetails != null
                 ? new PackageSignatures(mSigningDetails)
                 : new PackageSignatures());
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 71d5b77..cfdbb5b7 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ScanTests.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ScanTests.java
@@ -17,7 +17,6 @@
 package com.android.server.pm;
 
 import static android.content.pm.SharedLibraryInfo.TYPE_DYNAMIC;
-import static android.content.pm.SharedLibraryInfo.TYPE_SDK;
 import static android.content.pm.SharedLibraryInfo.TYPE_STATIC;
 import static android.content.pm.SharedLibraryInfo.VERSION_UNDEFINED;
 
@@ -239,37 +238,6 @@
     }
 
     @Test
-    public void installSdkLibrary() throws Exception {
-        final ParsedPackage pkg = ((ParsedPackage) createBasicPackage("ogl.sdk_123")
-                .setSdkLibName("ogl.sdk")
-                .setSdkLibVersionMajor(123)
-                .hideAsParsed())
-                .setPackageName("ogl.sdk_123")
-                .setVersionCodeMajor(5)
-                .setVersionCode(678)
-                .setBaseApkPath("/some/path.apk")
-                .setSplitCodePaths(new String[] {"/some/other/path.apk"});
-
-        final ScanRequest scanRequest = new ScanRequestBuilder(pkg)
-                .setUser(UserHandle.of(0)).build();
-
-        final ScanResult scanResult = executeScan(scanRequest);
-
-        assertThat(scanResult.mSdkSharedLibraryInfo.getPackageName(), is("ogl.sdk_123"));
-        assertThat(scanResult.mSdkSharedLibraryInfo.getName(), is("ogl.sdk"));
-        assertThat(scanResult.mSdkSharedLibraryInfo.getLongVersion(), is(123L));
-        assertThat(scanResult.mSdkSharedLibraryInfo.getType(), is(TYPE_SDK));
-        assertThat(scanResult.mSdkSharedLibraryInfo.getDeclaringPackage().getPackageName(),
-                is("ogl.sdk_123"));
-        assertThat(scanResult.mSdkSharedLibraryInfo.getDeclaringPackage().getLongVersionCode(),
-                is(pkg.getLongVersionCode()));
-        assertThat(scanResult.mSdkSharedLibraryInfo.getAllCodePaths(),
-                hasItems("/some/path.apk", "/some/other/path.apk"));
-        assertThat(scanResult.mSdkSharedLibraryInfo.getDependencies(), nullValue());
-        assertThat(scanResult.mSdkSharedLibraryInfo.getDependentPackages(), empty());
-    }
-
-    @Test
     public void installStaticSharedLibrary() throws Exception {
         final ParsedPackage pkg = ((ParsedPackage) createBasicPackage("static.lib.pkg")
                 .setStaticSharedLibName("static.lib")
@@ -560,10 +528,10 @@
                 "/data/tmp/randompath/base.apk", createCodePath(packageName),
                 mock(TypedArray.class), false)
                 .setVolumeUuid(UUID_ONE.toString())
-                .addUsesStaticLibrary("some.static.library", 234L, new String[]{"testCert1"})
-                .addUsesStaticLibrary("some.other.static.library", 456L, new String[]{"testCert2"})
-                .addUsesSdkLibrary("some.sdk.library", 123L, new String[]{"testCert3"})
-                .addUsesSdkLibrary("some.other.sdk.library", 789L, new String[]{"testCert4"})
+                .addUsesStaticLibrary("some.static.library")
+                .addUsesStaticLibraryVersion(234L)
+                .addUsesStaticLibrary("some.other.static.library")
+                .addUsesStaticLibraryVersion(456L)
                 .hideAsParsed())
                 .setNativeLibraryRootDir("/data/tmp/randompath/base.apk:/lib")
                 .setVersionCodeMajor(1)
@@ -589,9 +557,6 @@
         assertThat(pkgSetting.getUsesStaticLibraries(),
                 arrayContaining("some.static.library", "some.other.static.library"));
         assertThat(pkgSetting.getUsesStaticLibrariesVersions(), is(new long[]{234L, 456L}));
-        assertThat(pkgSetting.getUsesSdkLibraries(),
-                arrayContaining("some.sdk.library", "some.other.sdk.library"));
-        assertThat(pkgSetting.getUsesSdkLibrariesVersionsMajor(), is(new long[]{123L, 789L}));
         assertThat(pkgSetting.getPkg(), is(scanResult.mRequest.mParsedPackage));
         assertThat(pkgSetting.getPath(), is(new File(createCodePath(packageName))));
         assertThat(pkgSetting.getVersionCode(),
diff --git a/tools/aapt2/dump/DumpManifest.cpp b/tools/aapt2/dump/DumpManifest.cpp
index 9828b97..40bbb36 100644
--- a/tools/aapt2/dump/DumpManifest.cpp
+++ b/tools/aapt2/dump/DumpManifest.cpp
@@ -1461,64 +1461,6 @@
   }
 };
 
-/** Represents <sdk-library> elements. **/
-class SdkLibrary : public ManifestExtractor::Element {
- public:
-  SdkLibrary() = default;
-  std::string name;
-  int versionMajor;
-
-  void Extract(xml::Element* element) override {
-    auto parent_stack = extractor()->parent_stack();
-    if (parent_stack.size() > 0 && ElementCast<Application>(parent_stack[0])) {
-      name = GetAttributeStringDefault(FindAttribute(element, NAME_ATTR), "");
-      versionMajor = GetAttributeIntegerDefault(FindAttribute(element, VERSION_MAJOR_ATTR), 0);
-    }
-  }
-
-  void Print(text::Printer* printer) override {
-    printer->Print(
-        StringPrintf("sdk-library: name='%s' versionMajor='%d'\n", name.data(), versionMajor));
-  }
-};
-
-/** Represents <uses-sdk-library> elements. **/
-class UsesSdkLibrary : public ManifestExtractor::Element {
- public:
-  UsesSdkLibrary() = default;
-  std::string name;
-  int versionMajor;
-  std::vector<std::string> certDigests;
-
-  void Extract(xml::Element* element) override {
-    auto parent_stack = extractor()->parent_stack();
-    if (parent_stack.size() > 0 && ElementCast<Application>(parent_stack[0])) {
-      name = GetAttributeStringDefault(FindAttribute(element, NAME_ATTR), "");
-      versionMajor = GetAttributeIntegerDefault(FindAttribute(element, VERSION_MAJOR_ATTR), 0);
-      AddCertDigest(element);
-    }
-  }
-
-  void AddCertDigest(xml::Element* element) {
-    std::string digest = GetAttributeStringDefault(FindAttribute(element, CERT_DIGEST_ATTR), "");
-    // We allow ":" delimiters in the SHA declaration as this is the format
-    // emitted by the certtool making it easy for developers to copy/paste.
-    digest.erase(std::remove(digest.begin(), digest.end(), ':'), digest.end());
-    if (!digest.empty()) {
-      certDigests.push_back(digest);
-    }
-  }
-
-  void Print(text::Printer* printer) override {
-    printer->Print(
-        StringPrintf("uses-sdk-library: name='%s' versionMajor='%d'", name.data(), versionMajor));
-    for (size_t i = 0; i < certDigests.size(); i++) {
-      printer->Print(StringPrintf(" certDigest='%s'", certDigests[i].data()));
-    }
-    printer->Print("\n");
-  }
-};
-
 /** Represents <uses-native-library> elements. **/
 class UsesNativeLibrary : public ManifestExtractor::Element {
  public:
@@ -2425,7 +2367,6 @@
       {"required-not-feature", std::is_base_of<RequiredNotFeature, T>::value},
       {"screen", std::is_base_of<Screen, T>::value},
       {"service", std::is_base_of<Service, T>::value},
-      {"sdk-library", std::is_base_of<SdkLibrary, T>::value},
       {"static-library", std::is_base_of<StaticLibrary, T>::value},
       {"supports-gl-texture", std::is_base_of<SupportsGlTexture, T>::value},
       {"supports-input", std::is_base_of<SupportsInput, T>::value},
@@ -2438,7 +2379,6 @@
       {"uses-permission", std::is_base_of<UsesPermission, T>::value},
       {"uses-permission-sdk-23", std::is_base_of<UsesPermissionSdk23, T>::value},
       {"uses-sdk", std::is_base_of<UsesSdkBadging, T>::value},
-      {"uses-sdk-library", std::is_base_of<UsesSdkLibrary, T>::value},
       {"uses-static-library", std::is_base_of<UsesStaticLibrary, T>::value},
   };
 
@@ -2481,7 +2421,6 @@
           {"required-not-feature", &CreateType<RequiredNotFeature>},
           {"screen", &CreateType<Screen>},
           {"service", &CreateType<Service>},
-          {"sdk-library", &CreateType<SdkLibrary>},
           {"static-library", &CreateType<StaticLibrary>},
           {"supports-gl-texture", &CreateType<SupportsGlTexture>},
           {"supports-input", &CreateType<SupportsInput>},
@@ -2494,7 +2433,6 @@
           {"uses-permission", &CreateType<UsesPermission>},
           {"uses-permission-sdk-23", &CreateType<UsesPermissionSdk23>},
           {"uses-sdk", &CreateType<UsesSdkBadging>},
-          {"uses-sdk-library", &CreateType<UsesSdkLibrary>},
           {"uses-static-library", &CreateType<UsesStaticLibrary>},
       };
 
diff --git a/tools/aapt2/link/ManifestFixer.cpp b/tools/aapt2/link/ManifestFixer.cpp
index b46a125..63b2fcd 100644
--- a/tools/aapt2/link/ManifestFixer.cpp
+++ b/tools/aapt2/link/ManifestFixer.cpp
@@ -508,16 +508,6 @@
   uses_static_library_action.Action(RequiredAndroidAttribute("certDigest"));
   uses_static_library_action["additional-certificate"];
 
-  xml::XmlNodeAction& sdk_library_action = application_action["sdk-library"];
-  sdk_library_action.Action(RequiredNameIsJavaPackage);
-  sdk_library_action.Action(RequiredAndroidAttribute("versionMajor"));
-
-  xml::XmlNodeAction& uses_sdk_library_action = application_action["uses-sdk-library"];
-  uses_sdk_library_action.Action(RequiredNameIsJavaPackage);
-  uses_sdk_library_action.Action(RequiredAndroidAttribute("versionMajor"));
-  uses_sdk_library_action.Action(RequiredAndroidAttribute("certDigest"));
-  uses_sdk_library_action["additional-certificate"];
-
   xml::XmlNodeAction& uses_package_action = application_action["uses-package"];
   uses_package_action.Action(RequiredNameIsJavaPackage);
   uses_package_action["additional-certificate"];