Aggressively clear cached data when forgetting.

Otherwise the system server risks keeping open FDs to an adopted
storage device that could later be ejected.

Test: builds
Bug: 31596654
Change-Id: I6285042b4f0714dbf601c7dfa53efb704ea29d0b
This commit is contained in:
Jeff Sharkey
2016-11-15 14:39:17 -07:00
parent 5ddd7172b1
commit b501ef1e21

View File

@@ -1877,6 +1877,11 @@ public class PackageManagerService extends IPackageManager.Stub {
Slog.d(TAG, "Destroying " + ps.name + " because volume was forgotten");
deletePackage(ps.name, new LegacyPackageDeleteObserver(null).getBinder(),
UserHandle.USER_SYSTEM, PackageManager.DELETE_ALL_USERS);
// Try very hard to release any references to this package
// so we don't risk the system server being killed due to
// open FDs
AttributeCache.instance().removePackage(ps.name);
}
mSettings.onVolumeForgotten(fsUuid);