adb_keys

 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
 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
  []string
required
  []string
host_required
  []string
target_required
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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
 compile_multilib string
 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.

avbpubkey

 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
 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
 private_key string
 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
  []string
required
  []string
host_required
  []string
target_required
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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
 compile_multilib string
 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.

install_symlink can be used to install an symlink with an arbitrary target to an arbitrary path on the device.
 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
 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
 installed_location string, Where to install this symlink, relative to the partition it's installed on. Which partition it's installed on can be controlled by the vendor, system_ext, ramdisk, etc. properties.
 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
  []string
required
  []string
host_required
  []string
target_required
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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
 compile_multilib string
 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.

install_symlink can be used to install an symlink to an arbitrary path on the host.
configuration to distribute output files from this module to the distribution directory (default: $OUT/dist, configurable with $DIST_DIR)

otacerts_zip

otacerts_zip collects key files defined in PRODUCT_DEFAULT_DEV_CERTIFICATE and PRODUCT_EXTRA_OTA_KEYS for system or PRODUCT_EXTRA_RECOVERY_KEYS for recovery image. The output file (otacerts.zip by default) is installed into the relative_install_path directory under the etc directory of the target partition.
 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
 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.
 filename string, Optional name for the installed file. If unspecified, otacerts.zip is used.
 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
  []string
required
  []string
host_required
  []string
target_required
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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
 recovery_available bool, Make this module available when building for recovery. Only the recovery partition is available.
 relative_install_path string, Optional subdirectory under which the zip file is installed into.
 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
 compile_multilib string
 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.

prebuilt_any

prebuilt_any is a special module where the module can define the subdirectory that the files are installed to. This is only used for converting the PRODUCT_COPY_FILES entries to Soong modules, and should never be defined in the bp files. If none of the existing prebuilt_* modules allow installing the file at the desired location, introduce a new prebuilt_* module type instead.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_avb

Generally, a <partition> directory will contain a `system` subdirectory, but the <partition> of `prebuilt_avb` will not have a `system` subdirectory. Ultimately, prebuilt_avb will install the prebuilt artifact to the `avb` subdirectory under the root directory of the partition: <partition_root>/avb. prebuilt_avb does not allow adding any other subdirectories.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_bin

prebuilt_bin installs files in <partition>/bin directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_bt_firmware

prebuilt_bt_firmware installs files in <partition>/bt_firmware directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_defaults

 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_dsp

prebuilt_dsp installs a DSP related file to <partition>/etc/dsp directory for system image. If soc_specific property is set to true, the DSP related file is installed to the vendor <partition>/dsp directory for vendor image.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_etc

prebuilt_etc is for a prebuilt artifact that is installed in <partition>/etc/<sub_dir> directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_etc_cacerts

prebuilt_etc_host is for a host prebuilt artifact that is installed in <partition>/etc/<sub_dir> directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_etc_host

prebuilt_etc_host is for a host prebuilt artifact that is installed in $(HOST_OUT)/etc/<sub_dir> directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 host_cross_supported bool, If set to true, build a variant of the module for the host cross. Defaults to true.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_firmware

prebuilt_firmware installs a firmware file to <partition>/etc/firmware directory for system image. If soc_specific property is set to true, the firmware file is installed to the vendor <partition>/firmware directory for vendor image.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_first_stage_ramdisk

prebuilt_first_stage_ramdisk installs files in <partition>/first_stage_ramdisk directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_font

prebuilt_font installs a font in <partition>/fonts directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_framework

prebuilt_framework installs files in <partition>/framework directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_gpu

prebuilt_gpu is for a prebuilt artifact in <partition>/gpu directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_lib

prebuilt_lib installs a prebuilt file to <partition>/lib directory for system image. If soc_specific property is set to true, the prebuilt file is installed to the vendor <partition>/lib directory for vendor image.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_media

prebuilt_media installs media files in <partition>/media directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_odm

prebuilt_odm installs files in <partition>/odm directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_optee

prebuilt_optee installs files in <partition>/optee directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_overlay

prebuilt_overlay is for a prebuilt artifact in <partition>/overlay directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_priv_app

prebuilt_priv_app installs files in <partition>/priv-app directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_radio

prebuilt_radio installs files in <partition>/radio directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_renderscript_bitcode

prebuilt_renderscript_bitcode installs a *.bc file into /system/lib or /system/lib64.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_res

prebuilt_res installs files in <partition>/res directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_rfs

prebuilt_rfs installs files in <partition>/rfs directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_rfsa

prebuilt_rfsa installs a firmware file that will be available through Qualcomm's RFSA to the <partition>/lib/rfsa directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_root

prebuilt_root is for a prebuilt artifact that is installed in <partition>/ directory. Can't have any sub directories.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_root_host

prebuilt_root_host is for a host prebuilt artifact that is installed in $(HOST_OUT)/<sub_dir> directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 host_cross_supported bool, If set to true, build a variant of the module for the host cross. Defaults to true.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_sbin

prebuilt_sbin installs files in <partition>/sbin directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_system

prebuilt_system installs files in <partition>/system directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_tee

prebuilt_tee installs files in <partition>/tee directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_tvconfig

prebuilt_tvconfig installs files in <partition>/tvconfig directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_tvservice

prebuilt_tvservice installs files in <partition>/tvservice directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_usr_hyphendata

prebuilt_usr_hyphendata is for a prebuilt artifact that is installed in <partition>/usr/hyphen-data/<sub_dir> directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_usr_idc

prebuilt_usr_idc is for a prebuilt artifact that is installed in <partition>/usr/idc/<sub_dir> directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 host_cross_supported bool, If set to true, build a variant of the module for the host cross. Defaults to true.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_usr_keychars

prebuilt_usr_keychars is for a prebuilt artifact that is installed in <partition>/usr/keychars/<sub_dir> directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 host_cross_supported bool, If set to true, build a variant of the module for the host cross. Defaults to true.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_usr_keylayout

prebuilt_usr_keylayout is for a prebuilt artifact that is installed in <partition>/usr/keylayout/<sub_dir> directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 host_cross_supported bool, If set to true, build a variant of the module for the host cross. Defaults to true.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_usr_odml

prebuilt_usr_odml is for a prebuilt artifact that is installed in <partition>/usr/odml/<sub_dir> directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_usr_share

prebuilt_usr_share is for a prebuilt artifact that is installed in <partition>/usr/share/<sub_dir> directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_usr_share_host

prebuilt_usr_share_host is for a host prebuilt artifact that is installed in $(HOST_OUT)/usr/share/<sub_dir> directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 host_cross_supported bool, If set to true, build a variant of the module for the host cross. Defaults to true.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_usr_srec

prebuilt_usr_srec is for a prebuilt artifact that is installed in <partition>/usr/srec/<sub_dir> directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_vendor

prebuilt_vendor installs files in <partition>/vendor directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_vendor_dlkm

prebuilt_vendor_dlkm installs files in <partition>/vendor_dlkm directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_vendor_overlay

prebuilt_vendor_overlay is for a prebuilt artifact in <partition>/vendor_overlay directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_voicepack

prebuilt_voicepack installs voice pack files in <partition>/tts directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_wallpaper

prebuilt_wallpaper installs image files in <partition>/wallpaper directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.

prebuilt_wlc_upt

prebuilt_wlc_upt installs files in <partition>/wlc_upt directory.
 name string, The name of the module. Must be unique across all modules.
 src configurable string, Source file of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with srcs.
 srcs configurable list of string, Source files of this prebuilt. Can reference a genrule type module with the ":module" syntax. Mutually exclusive with src. When used, filename_from_src is set to true unless dsts is also set. May use globs in filenames.
 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
 debug_ramdisk_available bool, Make this module available when building for 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)
 dsts configurable list of string, Destination files of this prebuilt. Requires srcs to be used and causes srcs not to implicitly set filename_from_src. This can be used to install each source file to a different directory and/or change filenames when files are installed. Must be exactly one entry per source file, which means care must be taken if srcs has globs.
 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.
 filename string, Optional name for the installed file. If unspecified, name of the module is used as the file name. Only available when using a single source (src).
 filename_from_src bool, When set to true, and filename property is not set, the name for the installed file is the same as the file name of the source file.
 from_product_copy_files bool, If this prebuilt_* module was auto-generated from a PRODUCT_COPY_FILES entry. Used for licensing/compliance/SBOM, as some legacy methods of specifying licenses were specific to PRODUCT_COPY_FILES.
 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
 install_in_root bool, Install this module to the root directory, without partition subdirs. When this module is added to PRODUCT_PACKAGES, this module will be installed to $PRODUCT_OUT/root, which will then be copied to the root of system.img. When this module is packaged by other modules like android_filesystem, this module will be installed to the root ("/"), unlike normal prebuilt_root modules which are installed to the partition subdir (e.g. "/system/").
 installable bool, Whether this module is directly installable to one of the partitions. Default: true.
 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.
 oem_specific bool, Install to partition oem 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.arc
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
srcs
  []string
product_variables.malloc_low_memory
srcs
  []string
product_variables.native_coverage
src
  *string
srcs
  []string
product_variables.release_aidl_use_unfrozen
required
  []string
vintf_fragment_modules
  []string
product_variables.selinuxignoreneverallows
required
  []string
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_available bool, Make this module available when building for ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 recovery bool, Whether this module is installed to recovery partition
 recovery_available bool, Make this module available when building for recovery.
 relative_install_path string, Optional subdirectory under which this file is installed into, cannot be specified with sub_dir.
 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).
 sub_dir string, Optional subdirectory under which this file is installed into, cannot be specified with relative_install_path, prefer relative_install_path.
 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
 compile_multilib string
 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
 vendor_ramdisk_available bool, Make this module available when building for vendor ramdisk. On device without a dedicated recovery partition, the module is only available after switching root into /first_stage_ramdisk. To expose the module before switching root, install the recovery variant instead.
 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.