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"];