From f17a1afc27fcd9a005d7c9457b54d96c7ee2ac82 Mon Sep 17 00:00:00 2001 From: Mohammad Samiul Islam Date: Wed, 23 Dec 2020 12:08:14 +0000 Subject: [PATCH] Set FLAG_UPDATED_SYSTEM_APP properly for APEX packages An APEX package is either located in a built-in directory, in which case it is a factory package and should be considered a system app, or it has been updated and no longer a factory package and should be considered as an updated-system-app. Bug: 175872729 Test: atest StagedInstallTest#testApexSetsUpdatedSystemAppFlag Change-Id: I9f7d7faa3a7ed6402512dc83faa112dbe2438976 --- .../content/pm/parsing/PackageInfoWithoutStateUtils.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java b/core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java index ddf3d901c29a1..2b22da80d94fe 100644 --- a/core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java +++ b/core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java @@ -284,8 +284,10 @@ public class PackageInfoWithoutStateUtils { pi.applicationInfo.publicSourceDir = apexFile.getPath(); if (apexInfo.isFactory) { pi.applicationInfo.flags |= ApplicationInfo.FLAG_SYSTEM; + pi.applicationInfo.flags &= ~ApplicationInfo.FLAG_UPDATED_SYSTEM_APP; } else { pi.applicationInfo.flags &= ~ApplicationInfo.FLAG_SYSTEM; + pi.applicationInfo.flags |= ApplicationInfo.FLAG_UPDATED_SYSTEM_APP; } if (apexInfo.isActive) { pi.applicationInfo.flags |= ApplicationInfo.FLAG_INSTALLED;