diff options
6 files changed, 22 insertions, 12 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 70053fd35d25..11e0a6bfb151 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -12225,7 +12225,7 @@ package android.content.pm { 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_SDK_PACKAGE = 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/app/LoadedApk.java b/core/java/android/app/LoadedApk.java index 4e32e9a41869..56c725eb81f9 100644 --- a/core/java/android/app/LoadedApk.java +++ b/core/java/android/app/LoadedApk.java @@ -746,6 +746,10 @@ public final class LoadedApk { // default linker namespace. continue; } + if (info.isSdk()) { + // SDKs are not loaded automatically. + continue; + } if (libsToLoadAfter.contains(info.getName())) { if (DEBUG) { Slog.v(ActivityThread.TAG, diff --git a/core/java/android/content/pm/SharedLibraryInfo.java b/core/java/android/content/pm/SharedLibraryInfo.java index 43a4b17e5172..4c0e2e6b36ca 100644 --- a/core/java/android/content/pm/SharedLibraryInfo.java +++ b/core/java/android/content/pm/SharedLibraryInfo.java @@ -46,7 +46,7 @@ public final class SharedLibraryInfo implements Parcelable { TYPE_BUILTIN, TYPE_DYNAMIC, TYPE_STATIC, - TYPE_SDK, + TYPE_SDK_PACKAGE, }) @Retention(RetentionPolicy.SOURCE) @interface Type{} @@ -68,15 +68,21 @@ public final class SharedLibraryInfo implements Parcelable { * Shared library type: this library is <strong>not</strong> backwards * -compatible, can be updated and updates can be uninstalled. Clients * link against a specific version of the library. + * + * Static shared libraries simulate static linking while allowing for + * multiple clients to reuse the same instance of the library. */ 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. + * SDK package shared library type: this library is <strong>not</strong> + * compatible between versions, can be updated and updates can be + * uninstalled. Clients depend on a specific version of the library. + * + * SDK packages are not loaded automatically by the OS and rely + * e.g. on 3P libraries to make them available for the clients. */ - public static final int TYPE_SDK = 3; + public static final int TYPE_SDK_PACKAGE = 3; /** * Constant for referring to an undefined version. @@ -301,7 +307,7 @@ public final class SharedLibraryInfo implements Parcelable { * @hide */ public boolean isSdk() { - return mType == TYPE_SDK; + return mType == TYPE_SDK_PACKAGE; } /** @@ -367,7 +373,7 @@ public final class SharedLibraryInfo implements Parcelable { case TYPE_STATIC: { return "static"; } - case TYPE_SDK: { + case TYPE_SDK_PACKAGE: { return "sdk"; } default: { diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java index 99f70b206b65..4b592062c888 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java @@ -922,7 +922,7 @@ class PackageManagerShellCommand extends ShellCommand { 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) { + if (lib.getType() == SharedLibraryInfo.TYPE_SDK_PACKAGE) { name = lib.getName() + ":" + lib.getLongVersion(); break; } 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 7e59bd669824..f2b1a7119b84 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 @@ -92,7 +92,7 @@ public class AndroidPackageUtils { AndroidPackageUtils.getAllCodePaths(pkg), pkg.getSdkLibName(), pkg.getSdkLibVersionMajor(), - SharedLibraryInfo.TYPE_SDK, + SharedLibraryInfo.TYPE_SDK_PACKAGE, new VersionedPackage(pkg.getManifestPackageName(), pkg.getLongVersionCode()), null, null, false /* isNative */); 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 4a24bbdb09ac..8e53ca1d599d 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,7 @@ 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_SDK_PACKAGE; import static android.content.pm.SharedLibraryInfo.TYPE_STATIC; import static android.content.pm.SharedLibraryInfo.VERSION_UNDEFINED; @@ -258,7 +258,7 @@ public class ScanTests { 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.getType(), is(TYPE_SDK_PACKAGE)); assertThat(scanResult.mSdkSharedLibraryInfo.getDeclaringPackage().getPackageName(), is("ogl.sdk_123")); assertThat(scanResult.mSdkSharedLibraryInfo.getDeclaringPackage().getLongVersionCode(), |