OMS: introduce the OverlayManagerService
Add a new system service to manage Runtime Resource Overlays. This will offload the PackageManagerService and allow administration of overlay packages while affected packages continue to execute. Overlays can be enabled or disabled during runtime. Running applications will re-create their ResourcesImpl objects and restart their activities via the usual activity life cycle. The order in which a set of overlays is loaded may also be changed during runtime. The underlying mechanics are the same as for when an overlay is enabled or disabled. When an overlay changes state, e.g. becomes enabled, the OverlayManagerService will broadcast one of the new intents android.intent.action.OVERLAY_ADDED, *_CHANGED, *_REMOVED or *.OVERLAYS_REORDERED. Clients that wish to read information about overlays for users other than themselves are required to hold the android.permission.INTERACT_ACROSS_USERS_FULL permission. This mirrors the protection level of PackageManager.getPackageInfo. Clients that wish to change the information are required to hold the permission android.permission.CHANGE_OVERLAY_PACKAGES. Each pair of overlay package and corresponding target package is respresented by a new OverlayInfo class. This class mirrors the existing PackageInfo class. Overlay packages are handled per Android user. The data is persisted in /data/system/overlays.xml. Co-authored-by: Martin Wallgren <martin.wallgren@sonymobile.com> Signed-off-by: Zoran Jovanovic <zoran.jovanovic@sonymobile.com> Bug: 31052947 Test: run tests from 'OMS: tests for OverlayManagerService' Change-Id: I15325e173193df3240b8dc0a58c852fd7a3d5916
Loading
Please register or sign in to comment