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

This commit is contained in:
Martijn Coenen
2023-05-03 07:23:10 +00:00
committed by Android (Google) Code Review
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;
} }
} }