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:
name
is a resource reference to a user-visible package name. Maps toModuleInfo#getName
.packageName
is the package name of the module. Maps toModuleInfo#getPackageName
.isHidden
indicates 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>