android_filesystem
android_filesystem packages a set of modules and their transitive dependencies into a filesystem
image. The filesystem images are expected to be mounted in the target device, which means the
modules in the filesystem image are built for the target device (i.e. Android, not Linux host).
The modules are placed in the filesystem image just like they are installed to the ordinary
partitions like system.img. For example, cc_library modules are placed under ./lib[64] directory.
name
,
defaults
,
android_filesystem_deps
,
arch
,
arch.arm
,
arch.arm64
,
arch.riscv64
,
arch.x86
,
arch.x86_64
,
avb_algorithm
,
avb_hash_algorithm
,
avb_private_key
,
base_dir
,
build_logtags
,
check_vintf
,
compile_multilib
,
debug_ramdisk
,
deps
,
device_specific
,
dirs
,
dist
,
dists
,
enable_compression
,
enabled
,
erofs
,
f2fs
,
fake_timestamp
,
file_contexts
,
fsverity
,
gen_aconfig_flags_pb
,
high_priority_deps
,
host_required
,
include_files_of
,
init_rc
,
is_auto_generated
,
licenses
,
linker_config
,
mount_point
,
multilib
,
multilib.both
,
multilib.common
,
multilib.first
,
multilib.lib32
,
multilib.lib64
,
multilib.native_bridge
,
multilib.prefer32
,
native_bridge_supported
,
no_flashall
,
no_full_install
,
odm_dlkm_specific
,
overrides
,
owner
,
partition_name
,
partition_size
,
partition_type
,
precompiled_file_contexts
,
product_specific
,
product_variables.debuggable
,
product_variables.platform_version_name
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
ramdisk
,
recovery
,
required
,
rollback_index
,
rollback_index_location
,
security_patch
,
soc_specific
,
stem
,
support_casefolding
,
support_project_quota
,
symlinks
,
system_dlkm_specific
,
system_ext_specific
,
target
,
target.android
,
target.host
,
target_required
,
team
,
type
,
use_avb
,
use_fec
,
use_generic_config
,
uuid
,
vendor
,
vendor_dlkm_specific
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
defaults
list of string
⊕android_filesystem_deps
AndroidFilesystemDeps
Additional dependencies used for building android products
system
string
system_ext
string
product
string
arch
interface
⊕arch.arm
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕arch.arm64
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕arch.riscv64
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕arch.x86
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕arch.x86_64
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
avb_algorithm
string, Signing algorithm for avbtool. Default is SHA256_RSA4096.
avb_hash_algorithm
string, Hash algorithm used for avbtool (for descriptors). This is passed as hash_algorithm to
avbtool. Default is sha256.
avb_private_key
string, Path to the private key that avbtool will use to sign this filesystem image.
TODO(jiyong): allow apex_key to be specified here
base_dir
string, Base directory relative to root, to which deps are installed, e.g. "system". Default is "."
(root).
build_logtags
bool, When set, builds etc/event-log-tags file by merging logtags from all dependencies.
Default is false
check_vintf
bool, Run checkvintf on the vintf manifests of the filesystem
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform).
debug_ramdisk
bool, Whether this module is installed to debug ramdisk
deps
configurable list of string, Modules to include in this package
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
dirs
configurable list of string, Directories to be created under root. e.g. /dev, /proc, etc.
⊕dist
Dist
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
targets
list of string, Copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
append_artifact_with_product
bool, If true, then the artifact file will be appended with _<product name>. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be foo_coral.apk. If false, there is
no change to the artifact file name.
prepend_artifact_with_product
bool, If true, then the artifact file will be prepended with <product name>-. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be coral-foo.apk. If false, there is
no change to the artifact file name.
tag
string, A string tag to select the OutputFiles associated with the tag.
If no tag is specified then it will select the default dist paths provided
by the module type. If a tag of "" is specified then it will return the
default output files provided by the modules, i.e. the result of calling
OutputFiles("").
dists
list of Dist, a list of configurations to distribute output files from this module to the
distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
enable_compression
bool, Whether to enable per-file compression in f2fs
enabled
configurable bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
⊕erofs
ErofsProperties
compressor
string, Compressor and Compression level passed to mkfs.erofs. e.g. (lz4hc,9)
Please see external/erofs-utils/README for complete documentation.
compress_hints
string, Used as --compress-hints for mkfs.erofs
sparse
bool
⊕f2fs
F2fsProperties
fake_timestamp
string, Seconds since unix epoch to override timestamps of file entries
file_contexts
string, file_contexts file to make image. Currently, only ext4 is supported. These file contexts
will be compiled with sefcontext_compile
⊕fsverity
fsverityProperties
inputs
configurable list of string, Patterns of files for fsverity metadata generation. For each matched file, a .fsv_meta file
will be generated and included to the filesystem image.
etc/security/fsverity/BuildManifest.apk will also be generated which contains information
about generated .fsv_meta files.
libs
configurable list of string, APK libraries to link against, for etc/security/fsverity/BuildManifest.apk
gen_aconfig_flags_pb
bool, Install aconfig_flags.pb file for the modules installed in this partition.
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
host_required
list of string, names of other modules to install on host if this module is installed
include_files_of
list of string, List of filesystem modules to include in creating the partition. The root directory of
the provided filesystem modules are included in creating the partition.
This is only supported for cpio and compressed cpio filesystem types.
init_rc
configurable list of string, init.rc files to be installed if this module is installed
is_auto_generated
bool, Determines if the module is auto-generated from Soong or not. If the module is
auto-generated, its deps are exempted from visibility enforcement.
licenses
list of string, Describes the licenses applicable to this module. Must reference license modules.
⊕linker_config
LinkerConfigProperties
gen_linker_config
bool, Build a linker.config.pb file
linker_config_srcs
list of string, List of files (in .json format) that will be converted to a linker config file (in .pb format).
The linker config file be installed in the filesystem at /etc/linker.config.pb
mount_point
string, Mount point for this image. Default is "/"
multilib
interface
⊕multilib.both
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.common
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.first
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.lib32
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.lib64
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.native_bridge
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.prefer32
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
native_bridge_supported
bool, Whether this module is built for non-native architectures (also known as native bridge binary)
no_flashall
bool, Whether this partition is not supported by flashall.
If true, this partition will not be included in the `updatedpackage` dist artifact.
no_full_install
bool, When set to true, this module is not installed to the full install path (ex: under
out/target/product/<name>/<partition>). It can be installed only to the packaging
modules like android_filesystem.
odm_dlkm_specific
bool, Install to partition odm_dlkm when set to true.
overrides
list of string, List of module names that are prevented from being installed when this module gets
installed.
owner
string, vendor who owns this module
partition_name
string, Name of the partition stored in vbmeta desc. Defaults to the name of this module.
partition_size
int64, The size of the partition on the device. It will be a build error if this built partition
image exceeds this size.
partition_type
string, Identifies which partition this is for //visibility:any_system_image (and others) visibility
checks, and will be used in the future for API surface checks.
precompiled_file_contexts
string, The selinux file contexts, after having already run them through sefcontext_compile
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
⊕product_variables.debuggable
⊕init_rc
⊕required
⊕host_required
⊕target_required
⊕deps
⊕product_variables.platform_version_name
⊕product_variables.release_aidl_use_unfrozen
⊕required
⊕vintf_fragment_modules
⊕product_variables.selinuxignoreneverallows
⊕product_variables.unbundled_build
⊕enabled
Configurable[bool]
Configurable[bool]
proptools.Configurable[bool]
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
configurable list of string, names of other modules to install if this module is installed
rollback_index
int64, The index used to prevent rollback of the image. Only used if use_avb is true.
rollback_index_location
int64, Rollback index location of this image. Must be 1, 2, 3, etc.
security_patch
string, The security patch passed to as the com.android.build.<type>.security_patch avb property.
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
stem
string, Name of the output. Default is $(module_name).img
support_casefolding
bool, Whether to format f2fs and ext4 in a way that supports casefolding
support_project_quota
bool, Whether to format f2fs and ext4 in a way that supports project quotas
symlinks
list of SymlinkDefinition, Symbolic links to be created under root with "ln -sf <target> <name>".
system_dlkm_specific
bool, Install to partition system_dlkm when set to true.
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.android
compile_multilib
string
enabled
bool
⊕target.host
target_required
list of string, names of other modules to install on target if this module is installed
team
string, The team (defined by the owner/vendor) who owns the property.
type
string, Type of the filesystem. Currently, ext4, erofs, cpio, and compressed_cpio are supported. Default
is ext4.
use_avb
bool, When set to true, sign the image with avbtool. Default is false.
use_fec
bool, Whether or not to use forward-error-correction codes when signing with AVB. Defaults to true.
use_generic_config
bool, Set to true if this module must be generic and does not require product-specific information.
To be included in the system image, this property must be set to true.
uuid
string, When set, passed to mkuserimg_mke2fs --mke2fs_uuid & --mke2fs_hash_seed.
Otherwise, they'll be set as random which might cause indeterministic build output.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vendor_dlkm_specific
bool, Install to partition vendor_dlkm when set to true.
vendor_ramdisk
bool, Whether this module is installed to vendor ramdisk
vintf_fragment_modules
configurable list of string, vintf_fragment Modules required from this module.
vintf_fragments
configurable list of string, VINTF manifest fragments to be installed if this module is installed
visibility
list of string, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/main/README.md#visibility for
more details.
android_filesystem_defaults
android_filesystem_defaults is a default module for android_filesystem and android_system_image
name
,
defaults
,
host_supported
,
device_supported
,
android_filesystem_deps
,
apex_available
,
arch
,
arch.arm
,
arch.arm64
,
arch.riscv64
,
arch.x86
,
arch.x86_64
,
avb_algorithm
,
avb_hash_algorithm
,
avb_private_key
,
base_dir
,
build_logtags
,
check_vintf
,
compile_multilib
,
debug_ramdisk
,
defaults_visibility
,
deps
,
device_specific
,
dirs
,
dist
,
dists
,
enable_compression
,
enabled
,
erofs
,
f2fs
,
fake_timestamp
,
file_contexts
,
fsverity
,
gen_aconfig_flags_pb
,
high_priority_deps
,
host_required
,
include_files_of
,
init_rc
,
is_auto_generated
,
licenses
,
linker_config
,
mount_point
,
multilib
,
multilib.both
,
multilib.common
,
multilib.first
,
multilib.lib32
,
multilib.lib64
,
multilib.native_bridge
,
multilib.prefer32
,
native_bridge_supported
,
no_flashall
,
no_full_install
,
odm_dlkm_specific
,
overrides
,
owner
,
partition_name
,
partition_size
,
partition_type
,
precompiled_file_contexts
,
product_specific
,
product_variables.debuggable
,
product_variables.platform_version_name
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
ramdisk
,
recovery
,
required
,
rollback_index
,
rollback_index_location
,
security_patch
,
soc_specific
,
stem
,
support_casefolding
,
support_project_quota
,
symlinks
,
system_dlkm_specific
,
system_ext_specific
,
target
,
target.android
,
target.host
,
target_required
,
team
,
type
,
use_avb
,
use_fec
,
use_generic_config
,
uuid
,
vendor
,
vendor_dlkm_specific
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
defaults
list of string
host_supported
bool, If set to true, build a variant of the module for the host. Defaults to false.
device_supported
bool, If set to true, build a variant of the module for the device. Defaults to true.
⊕android_filesystem_deps
AndroidFilesystemDeps
Additional dependencies used for building android products
system
string
system_ext
string
product
string
apex_available
list of string, Availability of this module in APEXes. Only the listed APEXes can contain this module. If
the module has stubs then other APEXes and the platform may access it through them
(subject to visibility).
"//apex_available:anyapex" is a pseudo APEX name that matches to any APEX.
"//apex_available:platform" refers to non-APEX partitions like "system.img".
Prefix pattern (com.foo.*) can be used to match with any APEX name with the prefix(com.foo.).
Default is ["//apex_available:platform"].
arch
interface
⊕arch.arm
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕arch.arm64
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕arch.riscv64
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕arch.x86
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕arch.x86_64
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
avb_algorithm
string, Signing algorithm for avbtool. Default is SHA256_RSA4096.
avb_hash_algorithm
string, Hash algorithm used for avbtool (for descriptors). This is passed as hash_algorithm to
avbtool. Default is sha256.
avb_private_key
string, Path to the private key that avbtool will use to sign this filesystem image.
TODO(jiyong): allow apex_key to be specified here
base_dir
string, Base directory relative to root, to which deps are installed, e.g. "system". Default is "."
(root).
build_logtags
bool, When set, builds etc/event-log-tags file by merging logtags from all dependencies.
Default is false
check_vintf
bool, Run checkvintf on the vintf manifests of the filesystem
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform).
debug_ramdisk
bool, Whether this module is installed to debug ramdisk
defaults_visibility
list of string, Controls the visibility of the defaults module itself.
deps
configurable list of string, Modules to include in this package
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
dirs
configurable list of string, Directories to be created under root. e.g. /dev, /proc, etc.
⊕dist
Dist
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
targets
list of string, Copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
append_artifact_with_product
bool, If true, then the artifact file will be appended with _<product name>. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be foo_coral.apk. If false, there is
no change to the artifact file name.
prepend_artifact_with_product
bool, If true, then the artifact file will be prepended with <product name>-. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be coral-foo.apk. If false, there is
no change to the artifact file name.
tag
string, A string tag to select the OutputFiles associated with the tag.
If no tag is specified then it will select the default dist paths provided
by the module type. If a tag of "" is specified then it will return the
default output files provided by the modules, i.e. the result of calling
OutputFiles("").
dists
list of Dist, a list of configurations to distribute output files from this module to the
distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
enable_compression
bool, Whether to enable per-file compression in f2fs
enabled
configurable bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
⊕erofs
ErofsProperties
compressor
string, Compressor and Compression level passed to mkfs.erofs. e.g. (lz4hc,9)
Please see external/erofs-utils/README for complete documentation.
compress_hints
string, Used as --compress-hints for mkfs.erofs
sparse
bool
⊕f2fs
F2fsProperties
fake_timestamp
string, Seconds since unix epoch to override timestamps of file entries
file_contexts
string, file_contexts file to make image. Currently, only ext4 is supported. These file contexts
will be compiled with sefcontext_compile
⊕fsverity
fsverityProperties
inputs
configurable list of string, Patterns of files for fsverity metadata generation. For each matched file, a .fsv_meta file
will be generated and included to the filesystem image.
etc/security/fsverity/BuildManifest.apk will also be generated which contains information
about generated .fsv_meta files.
libs
configurable list of string, APK libraries to link against, for etc/security/fsverity/BuildManifest.apk
gen_aconfig_flags_pb
bool, Install aconfig_flags.pb file for the modules installed in this partition.
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
host_required
list of string, names of other modules to install on host if this module is installed
include_files_of
list of string, List of filesystem modules to include in creating the partition. The root directory of
the provided filesystem modules are included in creating the partition.
This is only supported for cpio and compressed cpio filesystem types.
init_rc
configurable list of string, init.rc files to be installed if this module is installed
is_auto_generated
bool, Determines if the module is auto-generated from Soong or not. If the module is
auto-generated, its deps are exempted from visibility enforcement.
licenses
list of string, Describes the licenses applicable to this module. Must reference license modules.
⊕linker_config
LinkerConfigProperties
gen_linker_config
bool, Build a linker.config.pb file
linker_config_srcs
list of string, List of files (in .json format) that will be converted to a linker config file (in .pb format).
The linker config file be installed in the filesystem at /etc/linker.config.pb
mount_point
string, Mount point for this image. Default is "/"
multilib
interface
⊕multilib.both
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.common
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.first
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.lib32
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.lib64
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.native_bridge
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.prefer32
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
native_bridge_supported
bool, Whether this module is built for non-native architectures (also known as native bridge binary)
no_flashall
bool, Whether this partition is not supported by flashall.
If true, this partition will not be included in the `updatedpackage` dist artifact.
no_full_install
bool, When set to true, this module is not installed to the full install path (ex: under
out/target/product/<name>/<partition>). It can be installed only to the packaging
modules like android_filesystem.
odm_dlkm_specific
bool, Install to partition odm_dlkm when set to true.
overrides
list of string, List of module names that are prevented from being installed when this module gets
installed.
owner
string, vendor who owns this module
partition_name
string, Name of the partition stored in vbmeta desc. Defaults to the name of this module.
partition_size
int64, The size of the partition on the device. It will be a build error if this built partition
image exceeds this size.
partition_type
string, Identifies which partition this is for //visibility:any_system_image (and others) visibility
checks, and will be used in the future for API surface checks.
precompiled_file_contexts
string, The selinux file contexts, after having already run them through sefcontext_compile
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
⊕product_variables.debuggable
⊕init_rc
⊕required
⊕host_required
⊕target_required
⊕deps
⊕product_variables.platform_version_name
⊕product_variables.release_aidl_use_unfrozen
⊕required
⊕vintf_fragment_modules
⊕product_variables.selinuxignoreneverallows
⊕product_variables.unbundled_build
⊕enabled
Configurable[bool]
Configurable[bool]
proptools.Configurable[bool]
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
configurable list of string, names of other modules to install if this module is installed
rollback_index
int64, The index used to prevent rollback of the image. Only used if use_avb is true.
rollback_index_location
int64, Rollback index location of this image. Must be 1, 2, 3, etc.
security_patch
string, The security patch passed to as the com.android.build.<type>.security_patch avb property.
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
stem
string, Name of the output. Default is $(module_name).img
support_casefolding
bool, Whether to format f2fs and ext4 in a way that supports casefolding
support_project_quota
bool, Whether to format f2fs and ext4 in a way that supports project quotas
symlinks
list of SymlinkDefinition, Symbolic links to be created under root with "ln -sf <target> <name>".
system_dlkm_specific
bool, Install to partition system_dlkm when set to true.
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.android
compile_multilib
string
enabled
bool
⊕target.host
target_required
list of string, names of other modules to install on target if this module is installed
team
string, The team (defined by the owner/vendor) who owns the property.
type
string, Type of the filesystem. Currently, ext4, erofs, cpio, and compressed_cpio are supported. Default
is ext4.
use_avb
bool, When set to true, sign the image with avbtool. Default is false.
use_fec
bool, Whether or not to use forward-error-correction codes when signing with AVB. Defaults to true.
use_generic_config
bool, Set to true if this module must be generic and does not require product-specific information.
To be included in the system image, this property must be set to true.
uuid
string, When set, passed to mkuserimg_mke2fs --mke2fs_uuid & --mke2fs_hash_seed.
Otherwise, they'll be set as random which might cause indeterministic build output.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vendor_dlkm_specific
bool, Install to partition vendor_dlkm when set to true.
vendor_ramdisk
bool, Whether this module is installed to vendor ramdisk
vintf_fragment_modules
configurable list of string, vintf_fragment Modules required from this module.
vintf_fragments
configurable list of string, VINTF manifest fragments to be installed if this module is installed
visibility
list of string, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/main/README.md#visibility for
more details.
android_system_image
android_system_image is a specialization of android_filesystem for the 'system' partition.
Currently, the only difference is the inclusion of linker.config.pb file which specifies
the provided and the required libraries to and from APEXes.
name
,
defaults
,
android_filesystem_deps
,
arch
,
arch.arm
,
arch.arm64
,
arch.riscv64
,
arch.x86
,
arch.x86_64
,
avb_algorithm
,
avb_hash_algorithm
,
avb_private_key
,
base_dir
,
build_logtags
,
check_vintf
,
compile_multilib
,
debug_ramdisk
,
deps
,
device_specific
,
dirs
,
dist
,
dists
,
enable_compression
,
enabled
,
erofs
,
f2fs
,
fake_timestamp
,
file_contexts
,
fsverity
,
gen_aconfig_flags_pb
,
high_priority_deps
,
host_required
,
include_files_of
,
init_rc
,
is_auto_generated
,
licenses
,
linker_config
,
mount_point
,
multilib
,
multilib.both
,
multilib.common
,
multilib.first
,
multilib.lib32
,
multilib.lib64
,
multilib.native_bridge
,
multilib.prefer32
,
native_bridge_supported
,
no_flashall
,
no_full_install
,
odm_dlkm_specific
,
overrides
,
owner
,
partition_name
,
partition_size
,
partition_type
,
precompiled_file_contexts
,
product_specific
,
product_variables.debuggable
,
product_variables.platform_version_name
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
ramdisk
,
recovery
,
required
,
rollback_index
,
rollback_index_location
,
security_patch
,
soc_specific
,
stem
,
support_casefolding
,
support_project_quota
,
symlinks
,
system_dlkm_specific
,
system_ext_specific
,
target
,
target.android
,
target.host
,
target_required
,
team
,
type
,
use_avb
,
use_fec
,
use_generic_config
,
uuid
,
vendor
,
vendor_dlkm_specific
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
defaults
list of string
⊕android_filesystem_deps
AndroidFilesystemDeps
Additional dependencies used for building android products
system
string
system_ext
string
product
string
arch
interface
⊕arch.arm
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕arch.arm64
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕arch.riscv64
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕arch.x86
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕arch.x86_64
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
avb_algorithm
string, Signing algorithm for avbtool. Default is SHA256_RSA4096.
avb_hash_algorithm
string, Hash algorithm used for avbtool (for descriptors). This is passed as hash_algorithm to
avbtool. Default is sha256.
avb_private_key
string, Path to the private key that avbtool will use to sign this filesystem image.
TODO(jiyong): allow apex_key to be specified here
base_dir
string, Base directory relative to root, to which deps are installed, e.g. "system". Default is "."
(root).
build_logtags
bool, When set, builds etc/event-log-tags file by merging logtags from all dependencies.
Default is false
check_vintf
bool, Run checkvintf on the vintf manifests of the filesystem
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform).
debug_ramdisk
bool, Whether this module is installed to debug ramdisk
deps
configurable list of string, Modules to include in this package
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
dirs
configurable list of string, Directories to be created under root. e.g. /dev, /proc, etc.
⊕dist
Dist
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
targets
list of string, Copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
append_artifact_with_product
bool, If true, then the artifact file will be appended with _<product name>. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be foo_coral.apk. If false, there is
no change to the artifact file name.
prepend_artifact_with_product
bool, If true, then the artifact file will be prepended with <product name>-. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be coral-foo.apk. If false, there is
no change to the artifact file name.
tag
string, A string tag to select the OutputFiles associated with the tag.
If no tag is specified then it will select the default dist paths provided
by the module type. If a tag of "" is specified then it will return the
default output files provided by the modules, i.e. the result of calling
OutputFiles("").
dists
list of Dist, a list of configurations to distribute output files from this module to the
distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
enable_compression
bool, Whether to enable per-file compression in f2fs
enabled
configurable bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
⊕erofs
ErofsProperties
compressor
string, Compressor and Compression level passed to mkfs.erofs. e.g. (lz4hc,9)
Please see external/erofs-utils/README for complete documentation.
compress_hints
string, Used as --compress-hints for mkfs.erofs
sparse
bool
⊕f2fs
F2fsProperties
fake_timestamp
string, Seconds since unix epoch to override timestamps of file entries
file_contexts
string, file_contexts file to make image. Currently, only ext4 is supported. These file contexts
will be compiled with sefcontext_compile
⊕fsverity
fsverityProperties
inputs
configurable list of string, Patterns of files for fsverity metadata generation. For each matched file, a .fsv_meta file
will be generated and included to the filesystem image.
etc/security/fsverity/BuildManifest.apk will also be generated which contains information
about generated .fsv_meta files.
libs
configurable list of string, APK libraries to link against, for etc/security/fsverity/BuildManifest.apk
gen_aconfig_flags_pb
bool, Install aconfig_flags.pb file for the modules installed in this partition.
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
host_required
list of string, names of other modules to install on host if this module is installed
include_files_of
list of string, List of filesystem modules to include in creating the partition. The root directory of
the provided filesystem modules are included in creating the partition.
This is only supported for cpio and compressed cpio filesystem types.
init_rc
configurable list of string, init.rc files to be installed if this module is installed
is_auto_generated
bool, Determines if the module is auto-generated from Soong or not. If the module is
auto-generated, its deps are exempted from visibility enforcement.
licenses
list of string, Describes the licenses applicable to this module. Must reference license modules.
⊕linker_config
LinkerConfigProperties
gen_linker_config
bool, Build a linker.config.pb file
linker_config_srcs
list of string, List of files (in .json format) that will be converted to a linker config file (in .pb format).
The linker config file be installed in the filesystem at /etc/linker.config.pb
mount_point
string, Mount point for this image. Default is "/"
multilib
interface
⊕multilib.both
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.common
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.first
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.lib32
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.lib64
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.native_bridge
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
⊕multilib.prefer32
DepsProperty
high_priority_deps
list of string, Deps that have higher priority in packaging when there is a packaging conflict.
For example, if multiple files are being installed to same filepath, the install file
of the module listed in this property will have a higher priority over those in other
deps properties.
deps
configurable list of string, Modules to include in this package
native_bridge_supported
bool, Whether this module is built for non-native architectures (also known as native bridge binary)
no_flashall
bool, Whether this partition is not supported by flashall.
If true, this partition will not be included in the `updatedpackage` dist artifact.
no_full_install
bool, When set to true, this module is not installed to the full install path (ex: under
out/target/product/<name>/<partition>). It can be installed only to the packaging
modules like android_filesystem.
odm_dlkm_specific
bool, Install to partition odm_dlkm when set to true.
overrides
list of string, List of module names that are prevented from being installed when this module gets
installed.
owner
string, vendor who owns this module
partition_name
string, Name of the partition stored in vbmeta desc. Defaults to the name of this module.
partition_size
int64, The size of the partition on the device. It will be a build error if this built partition
image exceeds this size.
partition_type
string, Identifies which partition this is for //visibility:any_system_image (and others) visibility
checks, and will be used in the future for API surface checks.
precompiled_file_contexts
string, The selinux file contexts, after having already run them through sefcontext_compile
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
⊕product_variables.debuggable
⊕init_rc
⊕required
⊕host_required
⊕target_required
⊕deps
⊕product_variables.platform_version_name
⊕product_variables.release_aidl_use_unfrozen
⊕required
⊕vintf_fragment_modules
⊕product_variables.selinuxignoreneverallows
⊕product_variables.unbundled_build
⊕enabled
Configurable[bool]
Configurable[bool]
proptools.Configurable[bool]
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
configurable list of string, names of other modules to install if this module is installed
rollback_index
int64, The index used to prevent rollback of the image. Only used if use_avb is true.
rollback_index_location
int64, Rollback index location of this image. Must be 1, 2, 3, etc.
security_patch
string, The security patch passed to as the com.android.build.<type>.security_patch avb property.
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
stem
string, Name of the output. Default is $(module_name).img
support_casefolding
bool, Whether to format f2fs and ext4 in a way that supports casefolding
support_project_quota
bool, Whether to format f2fs and ext4 in a way that supports project quotas
symlinks
list of SymlinkDefinition, Symbolic links to be created under root with "ln -sf <target> <name>".
system_dlkm_specific
bool, Install to partition system_dlkm when set to true.
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.android
compile_multilib
string
enabled
bool
⊕target.host
target_required
list of string, names of other modules to install on target if this module is installed
team
string, The team (defined by the owner/vendor) who owns the property.
type
string, Type of the filesystem. Currently, ext4, erofs, cpio, and compressed_cpio are supported. Default
is ext4.
use_avb
bool, When set to true, sign the image with avbtool. Default is false.
use_fec
bool, Whether or not to use forward-error-correction codes when signing with AVB. Defaults to true.
use_generic_config
bool, Set to true if this module must be generic and does not require product-specific information.
To be included in the system image, this property must be set to true.
uuid
string, When set, passed to mkuserimg_mke2fs --mke2fs_uuid & --mke2fs_hash_seed.
Otherwise, they'll be set as random which might cause indeterministic build output.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vendor_dlkm_specific
bool, Install to partition vendor_dlkm when set to true.
vendor_ramdisk
bool, Whether this module is installed to vendor ramdisk
vintf_fragment_modules
configurable list of string, vintf_fragment Modules required from this module.
vintf_fragments
configurable list of string, VINTF manifest fragments to be installed if this module is installed
visibility
list of string, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/main/README.md#visibility for
more details.
The AVB footer adds verification information to the image.
name
,
src
,
defaults
,
algorithm
,
arch
,
compile_multilib
,
debug_ramdisk
,
device_specific
,
dist
,
dists
,
enabled
,
filename
,
host_required
,
include_descriptors_from_images
,
init_rc
,
licenses
,
multilib
,
native_bridge_supported
,
no_full_install
,
odm_dlkm_specific
,
overrides
,
owner
,
partition_name
,
partition_size
,
private_key
,
product_specific
,
product_variables.debuggable
,
product_variables.native_coverage
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
props
,
ramdisk
,
recovery
,
required
,
rollback_index
,
salt
,
soc_specific
,
system_dlkm_specific
,
system_ext_specific
,
target
,
target.android
,
target.host
,
target_required
,
team
,
use_generic_config
,
vendor
,
vendor_dlkm_specific
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
visibility
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
⊕target.android
avb_add_hash_footer_defaults provides a set of properties that can be inherited by other
avb_add_hash_footer modules. A module can use the properties from an avb_add_hash_footer_defaults
using `defaults: ["<:default_module_name>"]`. Properties of both modules are erged (when
possible) by prepending the default module's values to the depending module's values.
name
,
src
,
defaults
,
host_supported
,
device_supported
,
algorithm
,
apex_available
,
arch
,
compile_multilib
,
debug_ramdisk
,
defaults_visibility
,
device_specific
,
dist
,
dists
,
enabled
,
filename
,
host_required
,
include_descriptors_from_images
,
init_rc
,
licenses
,
multilib
,
native_bridge_supported
,
no_full_install
,
odm_dlkm_specific
,
overrides
,
owner
,
partition_name
,
partition_size
,
private_key
,
product_specific
,
product_variables.debuggable
,
product_variables.native_coverage
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
props
,
ramdisk
,
recovery
,
required
,
rollback_index
,
salt
,
soc_specific
,
system_dlkm_specific
,
system_ext_specific
,
target
,
target.android
,
target.host
,
target_required
,
team
,
use_generic_config
,
vendor
,
vendor_dlkm_specific
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
visibility
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
⊕target.android
The avbGenVbmetaImage generates an unsigned VBMeta image output for the given image.
name
,
src
,
defaults
,
arch
,
compile_multilib
,
debug_ramdisk
,
device_specific
,
dist
,
dists
,
enabled
,
host_required
,
init_rc
,
licenses
,
multilib
,
native_bridge_supported
,
no_full_install
,
odm_dlkm_specific
,
overrides
,
owner
,
partition_name
,
product_specific
,
product_variables.debuggable
,
product_variables.native_coverage
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
ramdisk
,
recovery
,
required
,
salt
,
soc_specific
,
system_dlkm_specific
,
system_ext_specific
,
target
,
target.android
,
target.host
,
target_required
,
team
,
use_generic_config
,
vendor
,
vendor_dlkm_specific
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
src
string, Source file of this image. Can reference a genrule type module with the ":module" syntax.
defaults
list of string
arch
interface
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform).
debug_ramdisk
bool, Whether this module is installed to debug ramdisk
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
Dist
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
targets
list of string, Copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
append_artifact_with_product
bool, If true, then the artifact file will be appended with _<product name>. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be foo_coral.apk. If false, there is
no change to the artifact file name.
prepend_artifact_with_product
bool, If true, then the artifact file will be prepended with <product name>-. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be coral-foo.apk. If false, there is
no change to the artifact file name.
tag
string, A string tag to select the OutputFiles associated with the tag.
If no tag is specified then it will select the default dist paths provided
by the module type. If a tag of "" is specified then it will return the
default output files provided by the modules, i.e. the result of calling
OutputFiles("").
dists
list of Dist, a list of configurations to distribute output files from this module to the
distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
enabled
configurable bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
host_required
list of string, names of other modules to install on host if this module is installed
init_rc
configurable list of string, init.rc files to be installed if this module is installed
licenses
list of string, Describes the licenses applicable to this module. Must reference license modules.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architectures (also known as native bridge binary)
no_full_install
bool, When set to true, this module is not installed to the full install path (ex: under
out/target/product/<name>/<partition>). It can be installed only to the packaging
modules like android_filesystem.
odm_dlkm_specific
bool, Install to partition odm_dlkm when set to true.
overrides
list of string, List of module names that are prevented from being installed when this module gets
installed.
owner
string, vendor who owns this module
partition_name
string, Name of the image partition. Defaults to the name of this module.
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
⊕product_variables.debuggable
⊕init_rc
⊕required
⊕host_required
⊕target_required
⊕product_variables.native_coverage
⊕product_variables.release_aidl_use_unfrozen
⊕required
⊕vintf_fragment_modules
⊕product_variables.selinuxignoreneverallows
⊕product_variables.unbundled_build
⊕enabled
Configurable[bool]
Configurable[bool]
proptools.Configurable[bool]
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
configurable list of string, names of other modules to install if this module is installed
salt
string, The salt in hex. Required for reproducible builds.
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
system_dlkm_specific
bool, Install to partition system_dlkm when set to true.
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.android
compile_multilib
string
enabled
bool
⊕target.host
target_required
list of string, names of other modules to install on target if this module is installed
team
string, The team (defined by the owner/vendor) who owns the property.
use_generic_config
bool, Set to true if this module must be generic and does not require product-specific information.
To be included in the system image, this property must be set to true.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vendor_dlkm_specific
bool, Install to partition vendor_dlkm when set to true.
vendor_ramdisk
bool, Whether this module is installed to vendor ramdisk
vintf_fragment_modules
configurable list of string, vintf_fragment Modules required from this module.
vintf_fragments
configurable list of string, VINTF manifest fragments to be installed if this module is installed
avb_gen_vbmeta_image_defaults provides a set of properties that can be inherited by other
avb_gen_vbmeta_image modules. A module can use the properties from an
avb_gen_vbmeta_image_defaults using `defaults: ["<:default_module_name>"]`. Properties of both
modules are erged (when possible) by prepending the default module's values to the depending
module's values.
name
,
src
,
defaults
,
host_supported
,
device_supported
,
apex_available
,
arch
,
compile_multilib
,
debug_ramdisk
,
defaults_visibility
,
device_specific
,
dist
,
dists
,
enabled
,
host_required
,
init_rc
,
licenses
,
multilib
,
native_bridge_supported
,
no_full_install
,
odm_dlkm_specific
,
overrides
,
owner
,
partition_name
,
product_specific
,
product_variables.debuggable
,
product_variables.native_coverage
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
ramdisk
,
recovery
,
required
,
salt
,
soc_specific
,
system_dlkm_specific
,
system_ext_specific
,
target
,
target.android
,
target.host
,
target_required
,
team
,
use_generic_config
,
vendor
,
vendor_dlkm_specific
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
src
string, Source file of this image. Can reference a genrule type module with the ":module" syntax.
defaults
list of string
host_supported
bool, If set to true, build a variant of the module for the host. Defaults to false.
device_supported
bool, If set to true, build a variant of the module for the device. Defaults to true.
apex_available
list of string, Availability of this module in APEXes. Only the listed APEXes can contain this module. If
the module has stubs then other APEXes and the platform may access it through them
(subject to visibility).
"//apex_available:anyapex" is a pseudo APEX name that matches to any APEX.
"//apex_available:platform" refers to non-APEX partitions like "system.img".
Prefix pattern (com.foo.*) can be used to match with any APEX name with the prefix(com.foo.).
Default is ["//apex_available:platform"].
arch
interface
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform).
debug_ramdisk
bool, Whether this module is installed to debug ramdisk
defaults_visibility
list of string, Controls the visibility of the defaults module itself.
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
Dist
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
targets
list of string, Copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
append_artifact_with_product
bool, If true, then the artifact file will be appended with _<product name>. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be foo_coral.apk. If false, there is
no change to the artifact file name.
prepend_artifact_with_product
bool, If true, then the artifact file will be prepended with <product name>-. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be coral-foo.apk. If false, there is
no change to the artifact file name.
tag
string, A string tag to select the OutputFiles associated with the tag.
If no tag is specified then it will select the default dist paths provided
by the module type. If a tag of "" is specified then it will return the
default output files provided by the modules, i.e. the result of calling
OutputFiles("").
dists
list of Dist, a list of configurations to distribute output files from this module to the
distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
enabled
configurable bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
host_required
list of string, names of other modules to install on host if this module is installed
init_rc
configurable list of string, init.rc files to be installed if this module is installed
licenses
list of string, Describes the licenses applicable to this module. Must reference license modules.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architectures (also known as native bridge binary)
no_full_install
bool, When set to true, this module is not installed to the full install path (ex: under
out/target/product/<name>/<partition>). It can be installed only to the packaging
modules like android_filesystem.
odm_dlkm_specific
bool, Install to partition odm_dlkm when set to true.
overrides
list of string, List of module names that are prevented from being installed when this module gets
installed.
owner
string, vendor who owns this module
partition_name
string, Name of the image partition. Defaults to the name of this module.
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
⊕product_variables.debuggable
⊕init_rc
⊕required
⊕host_required
⊕target_required
⊕product_variables.native_coverage
⊕product_variables.release_aidl_use_unfrozen
⊕required
⊕vintf_fragment_modules
⊕product_variables.selinuxignoreneverallows
⊕product_variables.unbundled_build
⊕enabled
Configurable[bool]
Configurable[bool]
proptools.Configurable[bool]
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
configurable list of string, names of other modules to install if this module is installed
salt
string, The salt in hex. Required for reproducible builds.
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
system_dlkm_specific
bool, Install to partition system_dlkm when set to true.
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.android
compile_multilib
string
enabled
bool
⊕target.host
target_required
list of string, names of other modules to install on target if this module is installed
team
string, The team (defined by the owner/vendor) who owns the property.
use_generic_config
bool, Set to true if this module must be generic and does not require product-specific information.
To be included in the system image, this property must be set to true.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vendor_dlkm_specific
bool, Install to partition vendor_dlkm when set to true.
vendor_ramdisk
bool, Whether this module is installed to vendor ramdisk
vintf_fragment_modules
configurable list of string, vintf_fragment Modules required from this module.
vintf_fragments
configurable list of string, VINTF manifest fragments to be installed if this module is installed
bootconfig
bootconfig module generates the `vendor-bootconfig.img` file, which lists the bootconfig
parameters and can be passed as a `--vendor_bootconfig` value in mkbootimg invocation.
name
,
arch
,
boot_config
,
boot_config_file
,
compile_multilib
,
debug_ramdisk
,
device_specific
,
dist
,
dists
,
enabled
,
host_required
,
init_rc
,
licenses
,
multilib
,
native_bridge_supported
,
no_full_install
,
odm_dlkm_specific
,
overrides
,
owner
,
product_specific
,
product_variables.debuggable
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
ramdisk
,
recovery
,
required
,
soc_specific
,
system_dlkm_specific
,
system_ext_specific
,
target
,
target.android
,
target.host
,
target_required
,
team
,
use_generic_config
,
vendor
,
vendor_dlkm_specific
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
arch
interface
boot_config
list of string, List of bootconfig parameters that will be written as a line separated list in the output
file.
boot_config_file
string, Path to the file that contains the list of bootconfig parameters. This will be appended
to the output file, after the entries in boot_config.
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform).
debug_ramdisk
bool, Whether this module is installed to debug ramdisk
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
Dist
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
targets
list of string, Copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
append_artifact_with_product
bool, If true, then the artifact file will be appended with _<product name>. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be foo_coral.apk. If false, there is
no change to the artifact file name.
prepend_artifact_with_product
bool, If true, then the artifact file will be prepended with <product name>-. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be coral-foo.apk. If false, there is
no change to the artifact file name.
tag
string, A string tag to select the OutputFiles associated with the tag.
If no tag is specified then it will select the default dist paths provided
by the module type. If a tag of "" is specified then it will return the
default output files provided by the modules, i.e. the result of calling
OutputFiles("").
dists
list of Dist, a list of configurations to distribute output files from this module to the
distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
enabled
configurable bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
host_required
list of string, names of other modules to install on host if this module is installed
init_rc
configurable list of string, init.rc files to be installed if this module is installed
licenses
list of string, Describes the licenses applicable to this module. Must reference license modules.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architectures (also known as native bridge binary)
no_full_install
bool, When set to true, this module is not installed to the full install path (ex: under
out/target/product/<name>/<partition>). It can be installed only to the packaging
modules like android_filesystem.
odm_dlkm_specific
bool, Install to partition odm_dlkm when set to true.
overrides
list of string, List of module names that are prevented from being installed when this module gets
installed.
owner
string, vendor who owns this module
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
⊕product_variables.debuggable
⊕init_rc
⊕required
⊕host_required
⊕target_required
⊕product_variables.release_aidl_use_unfrozen
⊕required
⊕vintf_fragment_modules
⊕product_variables.selinuxignoreneverallows
⊕product_variables.unbundled_build
⊕enabled
Configurable[bool]
Configurable[bool]
proptools.Configurable[bool]
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
configurable list of string, names of other modules to install if this module is installed
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
system_dlkm_specific
bool, Install to partition system_dlkm when set to true.
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.android
compile_multilib
string
enabled
bool
⊕target.host
target_required
list of string, names of other modules to install on target if this module is installed
team
string, The team (defined by the owner/vendor) who owns the property.
use_generic_config
bool, Set to true if this module must be generic and does not require product-specific information.
To be included in the system image, this property must be set to true.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vendor_dlkm_specific
bool, Install to partition vendor_dlkm when set to true.
vendor_ramdisk
bool, Whether this module is installed to vendor ramdisk
vintf_fragment_modules
configurable list of string, vintf_fragment Modules required from this module.
vintf_fragments
configurable list of string, VINTF manifest fragments to be installed if this module is installed
visibility
list of string, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/main/README.md#visibility for
more details.
bootimg
bootimg is the image for the boot partition. It consists of header, kernel, ramdisk, and dtb.
name
,
arch
,
avb_algorithm
,
avb_mode
,
avb_private_key
,
avb_rollback_index
,
avb_rollback_index_location
,
boot_image_type
,
bootconfig
,
cmdline
,
compile_multilib
,
debug_ramdisk
,
device_specific
,
dist
,
dists
,
dtb_prebuilt
,
enabled
,
header_version
,
host_required
,
init_rc
,
kernel_prebuilt
,
licenses
,
multilib
,
native_bridge_supported
,
no_full_install
,
odm_dlkm_specific
,
overrides
,
owner
,
partition_name
,
partition_size
,
product_specific
,
product_variables.debuggable
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
ramdisk
,
ramdisk_module
,
recovery
,
required
,
security_patch
,
soc_specific
,
stem
,
system_dlkm_specific
,
system_ext_specific
,
target
,
target.android
,
target.host
,
target_required
,
team
,
use_avb
,
use_generic_config
,
vendor
,
vendor_dlkm_specific
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
arch
interface
avb_algorithm
string, Hash and signing algorithm for avbtool. Default is SHA256_RSA4096.
avb_mode
string, This can either be "default", or "make_legacy". "make_legacy" will sign the boot image
like how build/make/core/Makefile does, to get bit-for-bit backwards compatibility. But
we may want to reconsider if it's necessary to have two modes in the future. The default
is "default"
avb_private_key
string, Path to the private key that avbtool will use to sign this filesystem image.
TODO(jiyong): allow apex_key to be specified here
avb_rollback_index
int64, The index used to prevent rollback of the image on device.
avb_rollback_index_location
int64, Rollback index location of this image. Must be 0, 1, 2, etc.
boot_image_type
string, Determines the specific type of boot image this module is building. Can be boot,
vendor_boot or init_boot. Defaults to boot.
Refer to https://source.android.com/devices/bootloader/partitions/vendor-boot-partitions
for vendor_boot.
Refer to https://source.android.com/docs/core/architecture/partitions/generic-boot for
init_boot.
bootconfig
string, File that contains bootconfig parameters. This can be set only when `vendor_boot` is true
and `header_version` is greater than or equal to 4.
cmdline
list of string, Optional kernel commandline arguments
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform).
debug_ramdisk
bool, Whether this module is installed to debug ramdisk
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
Dist
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
targets
list of string, Copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
append_artifact_with_product
bool, If true, then the artifact file will be appended with _<product name>. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be foo_coral.apk. If false, there is
no change to the artifact file name.
prepend_artifact_with_product
bool, If true, then the artifact file will be prepended with <product name>-. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be coral-foo.apk. If false, there is
no change to the artifact file name.
tag
string, A string tag to select the OutputFiles associated with the tag.
If no tag is specified then it will select the default dist paths provided
by the module type. If a tag of "" is specified then it will return the
default output files provided by the modules, i.e. the result of calling
OutputFiles("").
dists
list of Dist, a list of configurations to distribute output files from this module to the
distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
dtb_prebuilt
string, Path to the device tree blob (DTB) prebuilt file to add to this boot image
enabled
configurable bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
host_required
list of string, names of other modules to install on host if this module is installed
init_rc
configurable list of string, init.rc files to be installed if this module is installed
kernel_prebuilt
string, Path to the linux kernel prebuilt file
licenses
list of string, Describes the licenses applicable to this module. Must reference license modules.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architectures (also known as native bridge binary)
no_full_install
bool, When set to true, this module is not installed to the full install path (ex: under
out/target/product/<name>/<partition>). It can be installed only to the packaging
modules like android_filesystem.
odm_dlkm_specific
bool, Install to partition odm_dlkm when set to true.
overrides
list of string, List of module names that are prevented from being installed when this module gets
installed.
owner
string, vendor who owns this module
partition_name
string, Name of the partition stored in vbmeta desc. Defaults to the name of this module.
partition_size
int64, The size of the partition on the device. It will be a build error if this built partition
image exceeds this size.
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
⊕product_variables.debuggable
⊕init_rc
⊕required
⊕host_required
⊕target_required
⊕cmdline
⊕product_variables.release_aidl_use_unfrozen
⊕required
⊕vintf_fragment_modules
⊕product_variables.selinuxignoreneverallows
⊕product_variables.unbundled_build
⊕enabled
Configurable[bool]
Configurable[bool]
proptools.Configurable[bool]
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
ramdisk_module
string, Filesystem module that is used as ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
configurable list of string, names of other modules to install if this module is installed
security_patch
string, The security patch passed to as the com.android.build.<type>.security_patch avb property.
Replacement for the make variables BOOT_SECURITY_PATCH / INIT_BOOT_SECURITY_PATCH.
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
stem
string, Set the name of the output. Defaults to <module_name>.img.
system_dlkm_specific
bool, Install to partition system_dlkm when set to true.
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.android
compile_multilib
string
enabled
bool
⊕target.host
target_required
list of string, names of other modules to install on target if this module is installed
team
string, The team (defined by the owner/vendor) who owns the property.
use_avb
bool, When set to true, sign the image with avbtool. Default is false.
use_generic_config
bool, Set to true if this module must be generic and does not require product-specific information.
To be included in the system image, this property must be set to true.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vendor_dlkm_specific
bool, Install to partition vendor_dlkm when set to true.
vendor_ramdisk
bool, Whether this module is installed to vendor ramdisk
vintf_fragment_modules
configurable list of string, vintf_fragment Modules required from this module.
vintf_fragments
configurable list of string, VINTF manifest fragments to be installed if this module is installed
visibility
list of string, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/main/README.md#visibility for
more details.
logical_partition
logical_partition is a partition image which has one or more logical partitions in it.
name
,
arch
,
compile_multilib
,
debug_ramdisk
,
default_group
,
device_specific
,
dist
,
dists
,
enabled
,
groups
,
host_required
,
init_rc
,
licenses
,
multilib
,
native_bridge_supported
,
no_full_install
,
odm_dlkm_specific
,
overrides
,
owner
,
product_specific
,
product_variables.debuggable
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
ramdisk
,
recovery
,
required
,
size
,
soc_specific
,
sparse
,
stem
,
system_dlkm_specific
,
system_ext_specific
,
target
,
target.android
,
target.host
,
target_required
,
team
,
use_generic_config
,
vendor
,
vendor_dlkm_specific
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
arch
interface
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform).
debug_ramdisk
bool, Whether this module is installed to debug ramdisk
default_group
list of partitionProperties, List of partitions for default group. Default group has no size limit and automatically
minimized when creating an image.
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
Dist
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
targets
list of string, Copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
append_artifact_with_product
bool, If true, then the artifact file will be appended with _<product name>. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be foo_coral.apk. If false, there is
no change to the artifact file name.
prepend_artifact_with_product
bool, If true, then the artifact file will be prepended with <product name>-. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be coral-foo.apk. If false, there is
no change to the artifact file name.
tag
string, A string tag to select the OutputFiles associated with the tag.
If no tag is specified then it will select the default dist paths provided
by the module type. If a tag of "" is specified then it will return the
default output files provided by the modules, i.e. the result of calling
OutputFiles("").
dists
list of Dist, a list of configurations to distribute output files from this module to the
distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
enabled
configurable bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
groups
list of groupProperties, List of groups. A group defines a fixed sized region. It can host one or more logical
partitions and their total size is limited by the size of the group they are in.
host_required
list of string, names of other modules to install on host if this module is installed
init_rc
configurable list of string, init.rc files to be installed if this module is installed
licenses
list of string, Describes the licenses applicable to this module. Must reference license modules.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architectures (also known as native bridge binary)
no_full_install
bool, When set to true, this module is not installed to the full install path (ex: under
out/target/product/<name>/<partition>). It can be installed only to the packaging
modules like android_filesystem.
odm_dlkm_specific
bool, Install to partition odm_dlkm when set to true.
overrides
list of string, List of module names that are prevented from being installed when this module gets
installed.
owner
string, vendor who owns this module
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
⊕product_variables.debuggable
⊕init_rc
⊕required
⊕host_required
⊕target_required
⊕product_variables.release_aidl_use_unfrozen
⊕required
⊕vintf_fragment_modules
⊕product_variables.selinuxignoreneverallows
⊕product_variables.unbundled_build
⊕enabled
Configurable[bool]
Configurable[bool]
proptools.Configurable[bool]
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
configurable list of string, names of other modules to install if this module is installed
size
string, Total size of the logical partition. If set to "auto", total size is automatically
calcaulted as minimum.
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
sparse
bool, Whether the output is a sparse image or not. Default is false.
stem
string, Set the name of the output. Defaults to <module_name>.img.
system_dlkm_specific
bool, Install to partition system_dlkm when set to true.
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.android
compile_multilib
string
enabled
bool
⊕target.host
target_required
list of string, names of other modules to install on target if this module is installed
team
string, The team (defined by the owner/vendor) who owns the property.
use_generic_config
bool, Set to true if this module must be generic and does not require product-specific information.
To be included in the system image, this property must be set to true.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vendor_dlkm_specific
bool, Install to partition vendor_dlkm when set to true.
vendor_ramdisk
bool, Whether this module is installed to vendor ramdisk
vintf_fragment_modules
configurable list of string, vintf_fragment Modules required from this module.
vintf_fragments
configurable list of string, VINTF manifest fragments to be installed if this module is installed
visibility
list of string, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/main/README.md#visibility for
more details.
raw_binary
name
,
src
,
arch
,
compile_multilib
,
debug_ramdisk
,
device_specific
,
dist
,
dists
,
enabled
,
host_required
,
init_rc
,
licenses
,
multilib
,
native_bridge_supported
,
no_full_install
,
odm_dlkm_specific
,
overrides
,
owner
,
product_specific
,
product_variables.debuggable
,
product_variables.native_coverage
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
ramdisk
,
recovery
,
required
,
soc_specific
,
stem
,
system_dlkm_specific
,
system_ext_specific
,
target
,
target.android
,
target.host
,
target_required
,
team
,
use_generic_config
,
vendor
,
vendor_dlkm_specific
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
src
string, Name of input executable. Can be a name of a target.
arch
interface
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform).
debug_ramdisk
bool, Whether this module is installed to debug ramdisk
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
Dist
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
targets
list of string, Copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
append_artifact_with_product
bool, If true, then the artifact file will be appended with _<product name>. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be foo_coral.apk. If false, there is
no change to the artifact file name.
prepend_artifact_with_product
bool, If true, then the artifact file will be prepended with <product name>-. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be coral-foo.apk. If false, there is
no change to the artifact file name.
tag
string, A string tag to select the OutputFiles associated with the tag.
If no tag is specified then it will select the default dist paths provided
by the module type. If a tag of "" is specified then it will return the
default output files provided by the modules, i.e. the result of calling
OutputFiles("").
dists
list of Dist, a list of configurations to distribute output files from this module to the
distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
enabled
configurable bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
host_required
list of string, names of other modules to install on host if this module is installed
init_rc
configurable list of string, init.rc files to be installed if this module is installed
licenses
list of string, Describes the licenses applicable to this module. Must reference license modules.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architectures (also known as native bridge binary)
no_full_install
bool, When set to true, this module is not installed to the full install path (ex: under
out/target/product/<name>/<partition>). It can be installed only to the packaging
modules like android_filesystem.
odm_dlkm_specific
bool, Install to partition odm_dlkm when set to true.
overrides
list of string, List of module names that are prevented from being installed when this module gets
installed.
owner
string, vendor who owns this module
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
⊕product_variables.debuggable
⊕init_rc
⊕required
⊕host_required
⊕target_required
⊕product_variables.native_coverage
⊕product_variables.release_aidl_use_unfrozen
⊕required
⊕vintf_fragment_modules
⊕product_variables.selinuxignoreneverallows
⊕product_variables.unbundled_build
⊕enabled
Configurable[bool]
Configurable[bool]
proptools.Configurable[bool]
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
configurable list of string, names of other modules to install if this module is installed
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
stem
string, Set the name of the output. Defaults to <module_name>.bin.
system_dlkm_specific
bool, Install to partition system_dlkm when set to true.
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.android
compile_multilib
string
enabled
bool
⊕target.host
target_required
list of string, names of other modules to install on target if this module is installed
team
string, The team (defined by the owner/vendor) who owns the property.
use_generic_config
bool, Set to true if this module must be generic and does not require product-specific information.
To be included in the system image, this property must be set to true.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vendor_dlkm_specific
bool, Install to partition vendor_dlkm when set to true.
vendor_ramdisk
bool, Whether this module is installed to vendor ramdisk
vintf_fragment_modules
configurable list of string, vintf_fragment Modules required from this module.
vintf_fragments
configurable list of string, VINTF manifest fragments to be installed if this module is installed
visibility
list of string, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/main/README.md#visibility for
more details.
super_image
name
,
ab_update
,
arch
,
block_devices
,
compile_multilib
,
create_super_empty
,
debug_ramdisk
,
device_specific
,
dist
,
dists
,
enabled
,
host_required
,
init_rc
,
licenses
,
metadata_device
,
multilib
,
native_bridge_supported
,
no_full_install
,
odm_dlkm_partition
,
odm_dlkm_specific
,
odm_partition
,
overrides
,
owner
,
partition_groups
,
product_partition
,
product_specific
,
product_variables.debuggable
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
ramdisk
,
recovery
,
required
,
retrofit
,
size
,
soc_specific
,
sparse
,
super_image_in_update_package
,
system_dlkm_partition
,
system_dlkm_specific
,
system_ext_partition
,
system_ext_specific
,
system_other_partition
,
system_partition
,
target
,
target.android
,
target.host
,
target_required
,
team
,
use_dynamic_partitions
,
use_generic_config
,
vendor
,
vendor_dlkm_partition
,
vendor_dlkm_specific
,
vendor_partition
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
virtual_ab
,
visibility
name
string, The name of the module. Must be unique across all modules.
ab_update
bool, whether A/B updater is used
arch
interface
block_devices
list of string, the super partition block device list
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform).
create_super_empty
bool, Whether a super_empty.img should be created
debug_ramdisk
bool, Whether this module is installed to debug ramdisk
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
Dist
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
targets
list of string, Copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
append_artifact_with_product
bool, If true, then the artifact file will be appended with _<product name>. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be foo_coral.apk. If false, there is
no change to the artifact file name.
prepend_artifact_with_product
bool, If true, then the artifact file will be prepended with <product name>-. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be coral-foo.apk. If false, there is
no change to the artifact file name.
tag
string, A string tag to select the OutputFiles associated with the tag.
If no tag is specified then it will select the default dist paths provided
by the module type. If a tag of "" is specified then it will return the
default output files provided by the modules, i.e. the result of calling
OutputFiles("").
dists
list of Dist, a list of configurations to distribute output files from this module to the
distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
enabled
configurable bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
host_required
list of string, names of other modules to install on host if this module is installed
init_rc
configurable list of string, init.rc files to be installed if this module is installed
licenses
list of string, Describes the licenses applicable to this module. Must reference license modules.
metadata_device
string, the block device where metadata for dynamic partitions is stored
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architectures (also known as native bridge binary)
no_full_install
bool, When set to true, this module is not installed to the full install path (ex: under
out/target/product/<name>/<partition>). It can be installed only to the packaging
modules like android_filesystem.
odm_dlkm_partition
string, Name of the Odm_dlkm partition filesystem module
odm_dlkm_specific
bool, Install to partition odm_dlkm when set to true.
odm_partition
string, Name of the Odm partition filesystem module
overrides
list of string, List of module names that are prevented from being installed when this module gets
installed.
owner
string, vendor who owns this module
partition_groups
list of PartitionGroupsInfo, information about how partitions within the super partition are grouped together
product_partition
string, Name of the Product partition filesystem module
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
⊕product_variables.debuggable
⊕init_rc
⊕required
⊕host_required
⊕target_required
⊕product_variables.release_aidl_use_unfrozen
⊕required
⊕vintf_fragment_modules
⊕product_variables.selinuxignoreneverallows
⊕product_variables.unbundled_build
⊕enabled
Configurable[bool]
Configurable[bool]
proptools.Configurable[bool]
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
configurable list of string, names of other modules to install if this module is installed
retrofit
bool, whether dynamic partitions is enabled on devices that were launched without this support
size
int64, the size of the super partition
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
sparse
bool, whether the output is a sparse image
super_image_in_update_package
bool, Whether the super image will be disted in the update package
system_dlkm_partition
string, Name of the System_dlkm partition filesystem module
system_dlkm_specific
bool, Install to partition system_dlkm when set to true.
system_ext_partition
string, Name of the System_ext partition filesystem module
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
system_other_partition
string, Name of the System_other partition filesystem module
system_partition
string, Name of the System partition filesystem module
target
interface
⊕target.android
compile_multilib
string
enabled
bool
⊕target.host
target_required
list of string, names of other modules to install on target if this module is installed
team
string, The team (defined by the owner/vendor) who owns the property.
use_dynamic_partitions
bool, whether dynamic partitions is used
use_generic_config
bool, Set to true if this module must be generic and does not require product-specific information.
To be included in the system image, this property must be set to true.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vendor_dlkm_partition
string, Name of the Vendor_dlkm partition filesystem module
vendor_dlkm_specific
bool, Install to partition vendor_dlkm when set to true.
vendor_partition
string, Name of the Vendor partition filesystem module
vendor_ramdisk
bool, Whether this module is installed to vendor ramdisk
vintf_fragment_modules
configurable list of string, vintf_fragment Modules required from this module.
vintf_fragments
configurable list of string, VINTF manifest fragments to be installed if this module is installed
⊕virtual_ab
enable
bool, whether virtual A/B seamless update is enabled
retrofit
bool, whether retrofitting virtual A/B seamless update is enabled
compression
bool, If set, device uses virtual A/B Compression
compression_method
string, This value controls the compression algorithm used for VABC.
Valid options are defined in system/core/fs_mgr/libsnapshot/cow_writer.cpp
e.g. "none", "gz", "brotli"
compression_factor
int64, Specifies maximum bytes to be compressed at once during ota. Options: 4096, 8192, 16384, 32768, 65536, 131072, 262144.
cow_version
int64, Specifies COW version to be used by update_engine and libsnapshot. If this value is not
specified we default to COW version 2 in update_engine for backwards compatibility
visibility
list of string, Controls the visibility of this module to other modules. Allowable values are one or more of
these formats:
["//visibility:public"]: Anyone can use this module.
["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
this module.
["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
Can only be used at the beginning of a list of visibility rules.
["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
other/package (defined in some/package/*.bp and other/package/*.bp) have access to
this module. Note that sub-packages do not have access to the rule; for example,
//some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
is a special module and must be used verbatim. It represents all of the modules in the
package.
["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
or other or in one of their sub-packages have access to this module. For example,
//project:rule, //project/library:lib or //other/testing/internal:munge are allowed
to depend on this rule (but not //independent:evil)
["//project"]: This is shorthand for ["//project:__pkg__"]
[":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
//project is the module's package. e.g. using [":__subpackages__"] in
packages/apps/Settings/Android.bp is equivalent to
//packages/apps/Settings:__subpackages__.
["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
for now. It is an error if it is used in a module.
If a module does not specify the `visibility` property then it uses the
`default_visibility` property of the `package` module in the module's package.
If the `default_visibility` property is not set for the module's package then
it will use the `default_visibility` of its closest ancestor package for which
a `default_visibility` property is specified.
If no `default_visibility` property can be found then the module uses the
global default of `//visibility:legacy_public`.
The `visibility` property has no effect on a defaults module although it does
apply to any non-defaults module that uses it. To set the visibility of a
defaults module, use the `defaults_visibility` property on the defaults module;
not to be confused with the `default_visibility` property on the package module.
See https://android.googlesource.com/platform/build/soong/+/main/README.md#visibility for
more details.
vbmeta is the partition image that has the verification information for other partitions.
name
,
algorithm
,
arch
,
avb_properties
,
chained_partition_metadata
,
chained_partitions
,
compile_multilib
,
debug_ramdisk
,
device_specific
,
dist
,
dists
,
enabled
,
filesystem_partition_type
,
host_required
,
init_rc
,
licenses
,
multilib
,
native_bridge_supported
,
no_full_install
,
odm_dlkm_specific
,
overrides
,
owner
,
partition_name
,
partitions
,
private_key
,
product_specific
,
product_variables.debuggable
,
product_variables.release_aidl_use_unfrozen
,
product_variables.selinuxignoreneverallows
,
product_variables.unbundled_build
,
proprietary
,
ramdisk
,
recovery
,
required
,
rollback_index
,
rollback_index_location
,
soc_specific
,
stem
,
system_dlkm_specific
,
system_ext_specific
,
target
,
target.android
,
target.host
,
target_required
,
team
,
use_generic_config
,
vendor
,
vendor_dlkm_specific
,
vendor_ramdisk
,
vintf_fragment_modules
,
vintf_fragments
,
visibility
name
string, The name of the module. Must be unique across all modules.
algorithm
string, Algorithm that avbtool will use to sign this vbmeta image. Default is SHA256_RSA4096.
arch
interface
avb_properties
list of avbProperty, List of key-value pair of avb properties
chained_partition_metadata
list of ChainedPartitionProperties, Metadata about the chained partitions that this vbmeta delegates the verification.
This is an alternative to chained_partitions, using chained_partitions instead is simpler
in most cases. However, this property allows building this vbmeta partition without
its chained partitions existing in this build.
chained_partitions
list of string, List of chained partitions that this vbmeta delegates the verification. They are the
names of other vbmeta modules.
compile_multilib
string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values
are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
platform).
debug_ramdisk
bool, Whether this module is installed to debug ramdisk
device_specific
bool, whether this module is specific to a device, not only for SoC, but also for off-chip
peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition
does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist).
This implies `soc_specific:true`.
⊕dist
Dist
configuration to distribute output files from this module to the distribution
directory (default: $OUT/dist, configurable with $DIST_DIR)
targets
list of string, Copy the output of this module to the $DIST_DIR when `dist` is specified on the
command line and any of these targets are also on the command line, or otherwise
built
dest
string, The name of the output artifact. This defaults to the basename of the output of
the module.
dir
string, The directory within the dist directory to store the artifact. Defaults to the
top level directory ("").
suffix
string, A suffix to add to the artifact file name (before any extension).
append_artifact_with_product
bool, If true, then the artifact file will be appended with _<product name>. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be foo_coral.apk. If false, there is
no change to the artifact file name.
prepend_artifact_with_product
bool, If true, then the artifact file will be prepended with <product name>-. For
example, if the product is coral and the module is an android_app module
of name foo, then the artifact would be coral-foo.apk. If false, there is
no change to the artifact file name.
tag
string, A string tag to select the OutputFiles associated with the tag.
If no tag is specified then it will select the default dist paths provided
by the module type. If a tag of "" is specified then it will return the
default output files provided by the modules, i.e. the result of calling
OutputFiles("").
dists
list of Dist, a list of configurations to distribute output files from this module to the
distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
enabled
configurable bool, emit build rules for this module
Disabling a module should only be done for those modules that cannot be built
in the current environment. Modules that can build in the current environment
but are not usually required (e.g. superceded by a prebuilt) should not be
disabled as that will prevent them from being built by the checkbuild target
and so prevent early detection of changes that have broken those modules.
filesystem_partition_type
string, Type of the `android_filesystem` for which the vbmeta.img is created.
Examples are system, vendor, product.
host_required
list of string, names of other modules to install on host if this module is installed
init_rc
configurable list of string, init.rc files to be installed if this module is installed
licenses
list of string, Describes the licenses applicable to this module. Must reference license modules.
multilib
interface
native_bridge_supported
bool, Whether this module is built for non-native architectures (also known as native bridge binary)
no_full_install
bool, When set to true, this module is not installed to the full install path (ex: under
out/target/product/<name>/<partition>). It can be installed only to the packaging
modules like android_filesystem.
odm_dlkm_specific
bool, Install to partition odm_dlkm when set to true.
overrides
list of string, List of module names that are prevented from being installed when this module gets
installed.
owner
string, vendor who owns this module
partition_name
string, Name of the partition stored in vbmeta desc. Defaults to the name of this module.
partitions
configurable list of string, List of filesystem modules that this vbmeta has descriptors for. The filesystem modules
have to be signed (use_avb: true).
private_key
string, Path to the private key that avbtool will use to sign this vbmeta image.
product_specific
bool, whether this module is specific to a software configuration of a product (e.g. country,
network operator, etc). When set to true, it is installed into /product (or
/system/product if product partition does not exist).
⊕product_variables.debuggable
⊕init_rc
⊕required
⊕host_required
⊕target_required
⊕product_variables.release_aidl_use_unfrozen
⊕required
⊕vintf_fragment_modules
⊕product_variables.selinuxignoreneverallows
⊕product_variables.unbundled_build
⊕enabled
Configurable[bool]
Configurable[bool]
proptools.Configurable[bool]
proprietary
bool, whether this is a proprietary vendor module, and should be installed into /vendor
ramdisk
bool, Whether this module is installed to ramdisk
recovery
bool, Whether this module is installed to recovery partition
required
configurable list of string, names of other modules to install if this module is installed
rollback_index
int64, The rollback index. If unspecified, the rollback index is from PLATFORM_SECURITY_PATCH
rollback_index_location
int64, Rollback index location of this vbmeta image. Must be 0, 1, 2, etc. Default is 0.
soc_specific
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
stem
string, Set the name of the output. Defaults to <module_name>.img.
system_dlkm_specific
bool, Install to partition system_dlkm when set to true.
system_ext_specific
bool, whether this module extends system. When set to true, it is installed into /system_ext
(or /system/system_ext if system_ext partition does not exist).
target
interface
⊕target.android
compile_multilib
string
enabled
bool
⊕target.host
target_required
list of string, names of other modules to install on target if this module is installed
team
string, The team (defined by the owner/vendor) who owns the property.
use_generic_config
bool, Set to true if this module must be generic and does not require product-specific information.
To be included in the system image, this property must be set to true.
vendor
bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true,
it is installed into /vendor (or /system/vendor if vendor partition does not exist).
Use `soc_specific` instead for better meaning.
vendor_dlkm_specific
bool, Install to partition vendor_dlkm when set to true.
vendor_ramdisk
bool, Whether this module is installed to vendor ramdisk
vintf_fragment_modules
configurable list of string, vintf_fragment Modules required from this module.
vintf_fragments
configurable list of string, VINTF manifest fragments to be installed if this module is installed