Merge "Enable default stopped state for system apps" into udc-dev am: b1c7e14560

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22139676

Change-Id: Ic1a1fa552653fd69843519c24959732f83b17670
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Martijn Coenen
2023-05-03 08:12:46 +00:00
committed by Automerger Merge Worker
2 changed files with 15 additions and 5 deletions

View File

@@ -6415,7 +6415,7 @@
Packages can be added by OEMs in an allowlist, to prevent them from being scanned as Packages can be added by OEMs in an allowlist, to prevent them from being scanned as
"stopped" during initial boot of a device, or after an OTA update. Stopped state of "stopped" during initial boot of a device, or after an OTA update. Stopped state of
an app is not changed during subsequent reboots. --> an app is not changed during subsequent reboots. -->
<bool name="config_stopSystemPackagesByDefault">false</bool> <bool name="config_stopSystemPackagesByDefault">true</bool>
<!-- Whether to show weather on the lock screen by default. --> <!-- Whether to show weather on the lock screen by default. -->
<bool name="config_lockscreenWeatherEnabledByDefault">false</bool> <bool name="config_lockscreenWeatherEnabledByDefault">false</bool>

View File

@@ -4360,12 +4360,22 @@ final class InstallPackageHelper {
// A new application appeared on /system, and we are seeing it for the first time. // A new application appeared on /system, and we are seeing it for the first time.
// Its also not updated as we don't have a copy of it on /data. So, scan it in a // Its also not updated as we don't have a copy of it on /data. So, scan it in a
// STOPPED state. Ignore if it's an APEX package since stopped state does not affect them. // STOPPED state.
// We'll skip this step under the following conditions:
// - It's "android"
// - It's an APEX or overlay package since stopped state does not affect them.
// - It is enumerated with a <initial-package-state> tag having the stopped attribute
// set to false
final boolean isApexPkg = (scanFlags & SCAN_AS_APEX) != 0; final boolean isApexPkg = (scanFlags & SCAN_AS_APEX) != 0;
if (mPm.mShouldStopSystemPackagesByDefault && scanSystemPartition if (mPm.mShouldStopSystemPackagesByDefault
&& !pkgAlreadyExists && !isApexPkg) { && scanSystemPartition
&& !pkgAlreadyExists
&& !isApexPkg
&& !parsedPackage.isOverlayIsStatic()
) {
String packageName = parsedPackage.getPackageName(); String packageName = parsedPackage.getPackageName();
if (!mPm.mInitialNonStoppedSystemPackages.contains(packageName)) { if (!mPm.mInitialNonStoppedSystemPackages.contains(packageName)
&& !"android".contentEquals(packageName)) {
scanFlags |= SCAN_AS_STOPPED_SYSTEM_APP; scanFlags |= SCAN_AS_STOPPED_SYSTEM_APP;
} }
} }