Loading services/api/current.txt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -76,6 +76,7 @@ package com.android.server.pm.pkg { method @Nullable public String getSdkLibraryName(); method @Nullable public String getSdkLibraryName(); method @NonNull public java.util.List<com.android.server.pm.pkg.AndroidPackageSplit> getSplits(); method @NonNull public java.util.List<com.android.server.pm.pkg.AndroidPackageSplit> getSplits(); method @Nullable public String getStaticSharedLibraryName(); method @Nullable public String getStaticSharedLibraryName(); method @NonNull public java.util.UUID getStorageUuid(); method public int getTargetSdkVersion(); method public int getTargetSdkVersion(); method public boolean isDebuggable(); method public boolean isDebuggable(); method public boolean isIsolatedSplitLoading(); method public boolean isIsolatedSplitLoading(); Loading services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -1334,6 +1334,11 @@ public class PackageImpl implements ParsedPackage, AndroidPackageInternal, return staticSharedLibVersion; return staticSharedLibVersion; } } @Override public UUID getStorageUuid() { return mStorageUuid; } @Override @Override public int getTargetSandboxVersion() { public int getTargetSandboxVersion() { return targetSandboxVersion; return targetSandboxVersion; Loading services/core/java/com/android/server/pm/pkg/AndroidPackage.java +9 −0 Original line number Original line Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.content.pm.ProviderInfo; import android.content.pm.ServiceInfo; import android.content.pm.ServiceInfo; import android.content.pm.SigningDetails; import android.content.pm.SigningDetails; import android.os.Bundle; import android.os.Bundle; import android.os.storage.StorageManager; import android.processor.immutability.Immutable; import android.processor.immutability.Immutable; import android.util.ArraySet; import android.util.ArraySet; import android.util.Pair; import android.util.Pair; Loading @@ -58,6 +59,7 @@ import java.security.PublicKey; import java.util.List; import java.util.List; import java.util.Map; import java.util.Map; import java.util.Set; import java.util.Set; import java.util.UUID; /** /** * The representation of an application on disk, as parsed from its split APKs' manifests. * The representation of an application on disk, as parsed from its split APKs' manifests. Loading Loading @@ -110,6 +112,13 @@ public interface AndroidPackage { @Nullable @Nullable String getStaticSharedLibraryName(); String getStaticSharedLibraryName(); /** * @return The {@link UUID} for use with {@link StorageManager} APIs identifying where this * package was installed. */ @NonNull UUID getStorageUuid(); /** /** * @see ApplicationInfo#targetSdkVersion * @see ApplicationInfo#targetSdkVersion * @see R.styleable#AndroidManifestUsesSdk_targetSdkVersion * @see R.styleable#AndroidManifestUsesSdk_targetSdkVersion Loading services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/parsing/parcelling/AndroidPackageTest.kt +9 −3 Original line number Original line Diff line number Diff line Loading @@ -48,11 +48,16 @@ import com.android.server.testutils.mockThrowOnUnmocked import com.android.server.testutils.whenever import com.android.server.testutils.whenever import java.security.KeyPairGenerator import java.security.KeyPairGenerator import java.security.PublicKey import java.security.PublicKey import java.util.UUID import kotlin.contracts.ExperimentalContracts import kotlin.contracts.ExperimentalContracts @ExperimentalContracts @ExperimentalContracts class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, PackageImpl::class) { class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, PackageImpl::class) { companion object { private val TEST_UUID = UUID.fromString("57554103-df3e-4475-ae7a-8feba49353ac") } override val defaultImpl = PackageImpl.forTesting("com.example.test") override val defaultImpl = PackageImpl.forTesting("com.example.test") override val creator = PackageImpl.CREATOR override val creator = PackageImpl.CREATOR Loading Loading @@ -88,8 +93,6 @@ class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, Packag "getLongVersionCode", "getLongVersionCode", // Tested through constructor // Tested through constructor "getManifestPackageName", "getManifestPackageName", // Utility methods "getStorageUuid", // Removal not tested, irrelevant for parcelling concerns // Removal not tested, irrelevant for parcelling concerns "removeUsesOptionalLibrary", "removeUsesOptionalLibrary", "clearAdoptPermissions", "clearAdoptPermissions", Loading @@ -101,6 +104,7 @@ class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, Packag // Tested manually // Tested manually "getMimeGroups", "getMimeGroups", "getRequestedPermissions", "getRequestedPermissions", "getStorageUuid", // Tested through asSplit // Tested through asSplit "asSplit", "asSplit", "getSplits", "getSplits", Loading Loading @@ -256,7 +260,7 @@ class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, Packag ) ) override fun extraParams() = listOf( override fun extraParams() = listOf( getter(AndroidPackage::getVolumeUuid, "57554103-df3e-4475-ae7a-8feba49353ac"), getter(AndroidPackage::getVolumeUuid, TEST_UUID.toString()), getter(AndroidPackage::isProfileable, true), getter(AndroidPackage::isProfileable, true), getter(PackageImpl::getVersionCode, 3), getter(PackageImpl::getVersionCode, 3), getter(PackageImpl::getVersionCodeMajor, 9), getter(PackageImpl::getVersionCodeMajor, 9), Loading Loading @@ -617,6 +621,8 @@ class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, Packag expect.that(after.usesStaticLibrariesCertDigests!!.size).isEqualTo(1) expect.that(after.usesStaticLibrariesCertDigests!!.size).isEqualTo(1) expect.that(after.usesStaticLibrariesCertDigests!![0]).asList() expect.that(after.usesStaticLibrariesCertDigests!![0]).asList() .containsExactly("testCertDigest2") .containsExactly("testCertDigest2") expect.that(after.storageUuid).isEqualTo(TEST_UUID) } } private fun testKey() = KeyPairGenerator.getInstance("RSA") private fun testKey() = KeyPairGenerator.getInstance("RSA") Loading tools/processors/immutability/src/android/processor/immutability/ImmutabilityProcessor.kt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -54,6 +54,7 @@ class ImmutabilityProcessor : AbstractProcessor() { "java.lang.Short", "java.lang.Short", "java.lang.String", "java.lang.String", "java.lang.Void", "java.lang.Void", "java.util.UUID", "android.os.Parcelable.Creator", "android.os.Parcelable.Creator", ) ) Loading Loading
services/api/current.txt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -76,6 +76,7 @@ package com.android.server.pm.pkg { method @Nullable public String getSdkLibraryName(); method @Nullable public String getSdkLibraryName(); method @NonNull public java.util.List<com.android.server.pm.pkg.AndroidPackageSplit> getSplits(); method @NonNull public java.util.List<com.android.server.pm.pkg.AndroidPackageSplit> getSplits(); method @Nullable public String getStaticSharedLibraryName(); method @Nullable public String getStaticSharedLibraryName(); method @NonNull public java.util.UUID getStorageUuid(); method public int getTargetSdkVersion(); method public int getTargetSdkVersion(); method public boolean isDebuggable(); method public boolean isDebuggable(); method public boolean isIsolatedSplitLoading(); method public boolean isIsolatedSplitLoading(); Loading
services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -1334,6 +1334,11 @@ public class PackageImpl implements ParsedPackage, AndroidPackageInternal, return staticSharedLibVersion; return staticSharedLibVersion; } } @Override public UUID getStorageUuid() { return mStorageUuid; } @Override @Override public int getTargetSandboxVersion() { public int getTargetSandboxVersion() { return targetSandboxVersion; return targetSandboxVersion; Loading
services/core/java/com/android/server/pm/pkg/AndroidPackage.java +9 −0 Original line number Original line Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.content.pm.ProviderInfo; import android.content.pm.ServiceInfo; import android.content.pm.ServiceInfo; import android.content.pm.SigningDetails; import android.content.pm.SigningDetails; import android.os.Bundle; import android.os.Bundle; import android.os.storage.StorageManager; import android.processor.immutability.Immutable; import android.processor.immutability.Immutable; import android.util.ArraySet; import android.util.ArraySet; import android.util.Pair; import android.util.Pair; Loading @@ -58,6 +59,7 @@ import java.security.PublicKey; import java.util.List; import java.util.List; import java.util.Map; import java.util.Map; import java.util.Set; import java.util.Set; import java.util.UUID; /** /** * The representation of an application on disk, as parsed from its split APKs' manifests. * The representation of an application on disk, as parsed from its split APKs' manifests. Loading Loading @@ -110,6 +112,13 @@ public interface AndroidPackage { @Nullable @Nullable String getStaticSharedLibraryName(); String getStaticSharedLibraryName(); /** * @return The {@link UUID} for use with {@link StorageManager} APIs identifying where this * package was installed. */ @NonNull UUID getStorageUuid(); /** /** * @see ApplicationInfo#targetSdkVersion * @see ApplicationInfo#targetSdkVersion * @see R.styleable#AndroidManifestUsesSdk_targetSdkVersion * @see R.styleable#AndroidManifestUsesSdk_targetSdkVersion Loading
services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/parsing/parcelling/AndroidPackageTest.kt +9 −3 Original line number Original line Diff line number Diff line Loading @@ -48,11 +48,16 @@ import com.android.server.testutils.mockThrowOnUnmocked import com.android.server.testutils.whenever import com.android.server.testutils.whenever import java.security.KeyPairGenerator import java.security.KeyPairGenerator import java.security.PublicKey import java.security.PublicKey import java.util.UUID import kotlin.contracts.ExperimentalContracts import kotlin.contracts.ExperimentalContracts @ExperimentalContracts @ExperimentalContracts class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, PackageImpl::class) { class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, PackageImpl::class) { companion object { private val TEST_UUID = UUID.fromString("57554103-df3e-4475-ae7a-8feba49353ac") } override val defaultImpl = PackageImpl.forTesting("com.example.test") override val defaultImpl = PackageImpl.forTesting("com.example.test") override val creator = PackageImpl.CREATOR override val creator = PackageImpl.CREATOR Loading Loading @@ -88,8 +93,6 @@ class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, Packag "getLongVersionCode", "getLongVersionCode", // Tested through constructor // Tested through constructor "getManifestPackageName", "getManifestPackageName", // Utility methods "getStorageUuid", // Removal not tested, irrelevant for parcelling concerns // Removal not tested, irrelevant for parcelling concerns "removeUsesOptionalLibrary", "removeUsesOptionalLibrary", "clearAdoptPermissions", "clearAdoptPermissions", Loading @@ -101,6 +104,7 @@ class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, Packag // Tested manually // Tested manually "getMimeGroups", "getMimeGroups", "getRequestedPermissions", "getRequestedPermissions", "getStorageUuid", // Tested through asSplit // Tested through asSplit "asSplit", "asSplit", "getSplits", "getSplits", Loading Loading @@ -256,7 +260,7 @@ class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, Packag ) ) override fun extraParams() = listOf( override fun extraParams() = listOf( getter(AndroidPackage::getVolumeUuid, "57554103-df3e-4475-ae7a-8feba49353ac"), getter(AndroidPackage::getVolumeUuid, TEST_UUID.toString()), getter(AndroidPackage::isProfileable, true), getter(AndroidPackage::isProfileable, true), getter(PackageImpl::getVersionCode, 3), getter(PackageImpl::getVersionCode, 3), getter(PackageImpl::getVersionCodeMajor, 9), getter(PackageImpl::getVersionCodeMajor, 9), Loading Loading @@ -617,6 +621,8 @@ class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, Packag expect.that(after.usesStaticLibrariesCertDigests!!.size).isEqualTo(1) expect.that(after.usesStaticLibrariesCertDigests!!.size).isEqualTo(1) expect.that(after.usesStaticLibrariesCertDigests!![0]).asList() expect.that(after.usesStaticLibrariesCertDigests!![0]).asList() .containsExactly("testCertDigest2") .containsExactly("testCertDigest2") expect.that(after.storageUuid).isEqualTo(TEST_UUID) } } private fun testKey() = KeyPairGenerator.getInstance("RSA") private fun testKey() = KeyPairGenerator.getInstance("RSA") Loading
tools/processors/immutability/src/android/processor/immutability/ImmutabilityProcessor.kt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -54,6 +54,7 @@ class ImmutabilityProcessor : AbstractProcessor() { "java.lang.Short", "java.lang.Short", "java.lang.String", "java.lang.String", "java.lang.Void", "java.lang.Void", "java.util.UUID", "android.os.Parcelable.Creator", "android.os.Parcelable.Creator", ) ) Loading