UserSystemPackageInstaller only (un)installs when appropriate
The UserSystemPackageInstaller (USPI) uninstalls system packages that are not needed, depending on the user type. When that determination changes (or the feature is disabled) it can also re-install those packages. This cl specifies when it is appropriate for USPI to actually perform the (un)installation. 1. Introduces uninstallReason: records the reason why a package was uninstalled from a given user. Right now, the only values are UNKNOWN and USER_TYPE. The latter indicates that the USPI system uninstalled the package. If the USPI whitelist changes (or the USPI feature is disabled), uninstalled packages will only be installed by USPI if the uninstallReason was USER_TYPE. Any further uninstalls (e.g. by ManagedProvisioning) will reset the uninstallReason to UNKNOWN, so USPI will no longer install such packages in the future. This prevents USPI from reinstalling system packages that other mechanisms (such as ManagedProvisioning) uninstalled. 2. USPI will uninstall a system package if it is blacklisted, but only if that system package is new, i.e in two circumstances: a. on first boot b. on an OTA where the package was not present prior to the OTA Bug: 143200798 Test: atest UserSystemPackageInstallerTest Test: Confirmed (un)installations during manually simulated OTAs Change-Id: Ia0714d1faa8f7c79082f2cc93a92ae36b9a4c918 Merged-In: Ia0714d1faa8f7c79082f2cc93a92ae36b9a4c918
Loading
Please register or sign in to comment