Fix 0x10000 resource not found exception
An application "consumer" needs a static library "provider" that
needs another static library "recursive". The recursive static library
will change its code path to another path although Install Process
uses the same apk to install twice.
The "recursive" library directory change its installation
directories. And, the old installation directory has been removed.
The remove operation reveals an error that resources use the
old recursive static library apk path.
Root cause: "consumer" reference "recursive" indirectly. PackageSetting
of "consumer" doesn't notify the changes when its library files are
updated as a different list.
Solution: It calls PackageSetting.onChanged() when the parameter
usesLibraryFiles is different from
PackageSetting.getUsesLibraryFiles().
Fixes: 201750896
Test: TP="FrameworksServicesTests"; \
atest ${TP}:com.android.server.pm.PackageManagerSettingsTests
Test: atest \
CtsOsHostTestCases:android.os.cts.StaticSharedLibsHostTests
Change-Id: Ia8ab7a67ca2d5729d8b4c0f9e53a7deaa760f914
3 files changed