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
"stopped" during initial boot of a device, or after an OTA update. Stopped state of
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. -->
<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.
// 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;
if (mPm.mShouldStopSystemPackagesByDefault && scanSystemPartition
&& !pkgAlreadyExists && !isApexPkg) {
if (mPm.mShouldStopSystemPackagesByDefault
&& scanSystemPartition
&& !pkgAlreadyExists
&& !isApexPkg
&& !parsedPackage.isOverlayIsStatic()
) {
String packageName = parsedPackage.getPackageName();
if (!mPm.mInitialNonStoppedSystemPackages.contains(packageName)) {
if (!mPm.mInitialNonStoppedSystemPackages.contains(packageName)
&& !"android".contentEquals(packageName)) {
scanFlags |= SCAN_AS_STOPPED_SYSTEM_APP;
}
}