diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index c85e1d8a074f1..d1aed3e3018ab 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -703,8 +703,11 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { for (File addedFile : addedFiles) { final ApkLite apk; try { - apk = PackageParser.parseApkLite( - addedFile, PackageParser.PARSE_COLLECT_CERTIFICATES); + int flags = PackageParser.PARSE_COLLECT_CERTIFICATES; + if ((params.installFlags & PackageManager.INSTALL_EPHEMERAL) != 0) { + flags |= PackageParser.PARSE_IS_EPHEMERAL; + } + apk = PackageParser.parseApkLite(addedFile, flags); } catch (PackageParserException e) { throw PackageManagerException.from(e); }