Fix uninstall/disable with multi-user compressed stubs
Updates uninstall logic to ensure that only the user
being acted on is affected.
Previously, uninstalling from any user would disable
the app for user 0. This updates it to only change
the state of the stubbed package for the user that
initiates the uninstall.
This also changes the re-uncompression logic such that
stubs are kept in their system-only state until any
user has marked it installed and enabled.
Also adds tests for all the uninstall scenarios for
a stub system app. Some test cases are migrated from
I6fdd3ed485db0d3f8135266010d6797d9ac37ea0. Only the
corruption test isn't implemented, as this change
doesn't verify the install/scan behavior at boot.
Bug: 159204252
Test: atest com.android.server.pm.test.SystemStubMultiUserDisableUninstallTest
Test: atest PackageManagerServiceHostTests
Change-Id: I4ee2affc058d2bae363c537b3294d5d46a5051a0
15 files changed