Allow overriding the label and icon of a MainComponent

Normally these attributes are immutable once parsed from the
AndroidManifest.xml of the corresponding app, but there exists
a requirement for a special privileged app to change this
at runtime.

This change allows overriding label/icon of any component
(Activity, Receiver, Provider, Service) that belongs to the
app declared as R.string.config_overrideComponentUiPackage.

This role can only be taken by 1 package, which must be a system
app, and state is stored per-user. Different users with potentially
different requirements can show a different label/icon.

Co-authored-by: Yoshiaki Naka <yoshiaki.naka@sony.com>

Bug: 113638339

Test: manual verify behavior using test app
Test: atest PackageManagerComponentOverrideTests

Change-Id: Id48eda55650ffc88854423498675b001c2500259
24 files changed