The ModuleMetadata module contains metadata about the list of modules on a given device. The metadata is parsed and cached as soon as the system server starts.
Changes in Android 10
The ModuleMetadata APK contains ModuleInfoProvider, which
implements the getModuleInfo and getInstalledModules
methods from the PackageManager's API. These methods are backed
by XML metadata parsed from a module metadata provider package. The package
name for the module metadata package is stored in the
config_defaultModuleMetadataProvider config value.
The module metadata provider must contain a <metadata>
entry for its <application> tag. The metadata entry must
contain a single key (android.content.pm.MODULE_METADATA) whose
value is a reference to an XML resource that contains metadata about the list
of modules on a given device.
Package format
The ModuleMetadata module (com.android.modulemetadata) is delivered
as an APK file.
Metadata elements
The XML document must consist of a single top level <module-metadata>
element with one or more children. Each child is a <module>
element that contains the following attributes:
nameis a resource reference to a user-visible package name. Maps toModuleInfo#getName.packageNameis the package name of the module. Maps toModuleInfo#getPackageName.isHiddenindicates whether the module is hidden. Maps toModuleInfo#isHidden</code>.
Example:
<module-metadata>
<module name="@string/resource" packageName="package_name" isHidden="false|true">
<module .... >
</module-metadata>