list of source files used to compile the Java module. May be .java, .logtags, .proto, or .aidl files.
Type: list of strings
list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of directories containing Java resources
Type: list of strings
list of directories that should be excluded from java_resource_dirs
Type: list of strings
list of files to use as Java resources
Type: list of strings
list of files that should be excluded from java_resources
Type: list of strings
don't build against the default libraries (bootclasspath, legacy-test, core-junit, ext, and framework for device targets)
Type: bool
don't build against the framework libraries (legacy-test, core-junit, ext, and framework for device targets)
Type: bool
list of module-specific flags that will be used for javac compiles
Type: list of strings
list of of java libraries that will be in the classpath
Type: list of strings
list of java libraries that will be compiled into the resulting jar
Type: list of strings
manifest file to be included in resulting jar
Type: string
if not blank, run jarjar using the specified rules file
Type: string
If not blank, set the java version passed to javac as -source and -target
Type: string
If set to false, don't allow this module to be installed. Defaults to true.
Type: bool
If set to true, include sources used to compile the module in to the final jar
Type: bool
List of modules to use as annotation processors
Type: list of strings
List of classes to pass to javac to use as annotation processors
Type: list of strings
The number of Java source entries each Javac instance can process
Type: int64
Add host jdk tools.jar to bootclasspath
Type: bool
List of source files that should only be used when passing -source 1.9
Type: list of strings
List of javac flags that should only be used when passing -source 1.9
Type: list of strings
List of classes to include for instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. If unset defaults to all classes. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of classes to exclude from instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. Overrides classes selected by the include_filter property. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of javac flags that should only be used when running errorprone.
Type: list of strings
List of extra options that will be passed to the proto generator.
Type: list of strings
list of module-specific flags that will be used for dex compiles
Type: list of strings
if not blank, set to the version of the sdk to compile against
Type: string
Top level directories to pass to aidl tool
Type: list of strings
Directories rooted at the Android.bp file to pass to aidl tool
Type: list of strings
directories that should be added as include directories for any aidl sources of modules that depend on this module, as well as to aidl for this module.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
If true, export a copy of the module as a -hostdex module for host testing.
Type: bool
If false, prevent dexpreopting and stripping the dex file from the final jar. Defaults to true.
Type: bool
If true, generate an app image (.art file) for this module.
Type: bool
If true, use a checked-in profile to guide optimization. Defaults to false unless a matching profile is set or a profile is found in PRODUCT_DEX_PREOPT_PROFILE_DIR that matches the name of this module, in which case it is defaulted to true.
Type: bool
If set, provides the path to profile relative to the Android.bp file. If not set, defaults to searching for a file that matches the name of this module in the default profile location set by PRODUCT_DEX_PREOPT_PROFILE_DIR, or empty if not found.
Type: string
If false, disable all optimization. Defaults to true for apps, false for libraries and tests.
Type: bool
Default: true
If true, optimize for size by removing unused code. Defaults to true for apps, false for libraries and tests.
Type: bool
Default: true
If true, optimize bytecode. Defaults to false.
Type: bool
If true, obfuscate bytecode. Defaults to false.
Type: bool
If true, do not use the flag files generated by aapt that automatically keep classes referenced by the app manifest. Defaults to false.
Type: bool
Flags to pass to proguard.
Type: list of strings
Specifies the locations of files containing proguard flags.
Type: list of strings
When targeting 1.9, override the modules to use with --system
Type: string
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
flags passed to aapt when creating the apk
Type: list of strings
list of directories relative to the Blueprints file containing assets. Defaults to "assets"
Type: list of strings
list of directories relative to the Blueprints file containing Android resources
Type: list of strings
path to AndroidManifest.xml. If unset, defaults to "AndroidManifest.xml".
Type: string
path to a certificate, or the name of a certificate in the default certificate directory, or blank to use the default product certificate
Type: string
paths to extra certificates to sign the apk with
Type: list of strings
If set, create package-export.apk, which other packages can use to get PRODUCT-agnostic resource data like IDs and type definitions.
Type: bool
Specifies that this app should be installed to the priv-app directory, where the system will grant it additional privileges not available to normal apps.
Type: bool
list of resource labels to generate individual resource packages
Type: list of strings
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
list of source files used to compile the Java module. May be .java, .logtags, .proto, or .aidl files.
Type: list of strings
list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of directories containing Java resources
Type: list of strings
list of directories that should be excluded from java_resource_dirs
Type: list of strings
list of files to use as Java resources
Type: list of strings
list of files that should be excluded from java_resources
Type: list of strings
don't build against the default libraries (bootclasspath, legacy-test, core-junit, ext, and framework for device targets)
Type: bool
don't build against the framework libraries (legacy-test, core-junit, ext, and framework for device targets)
Type: bool
list of module-specific flags that will be used for javac compiles
Type: list of strings
list of of java libraries that will be in the classpath
Type: list of strings
list of java libraries that will be compiled into the resulting jar
Type: list of strings
manifest file to be included in resulting jar
Type: string
if not blank, run jarjar using the specified rules file
Type: string
If not blank, set the java version passed to javac as -source and -target
Type: string
If set to false, don't allow this module to be installed. Defaults to true.
Type: bool
If set to true, include sources used to compile the module in to the final jar
Type: bool
List of modules to use as annotation processors
Type: list of strings
List of classes to pass to javac to use as annotation processors
Type: list of strings
The number of Java source entries each Javac instance can process
Type: int64
Add host jdk tools.jar to bootclasspath
Type: bool
List of source files that should only be used when passing -source 1.9
Type: list of strings
List of javac flags that should only be used when passing -source 1.9
Type: list of strings
List of classes to include for instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. If unset defaults to all classes. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of classes to exclude from instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. Overrides classes selected by the include_filter property. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of javac flags that should only be used when running errorprone.
Type: list of strings
List of extra options that will be passed to the proto generator.
Type: list of strings
list of module-specific flags that will be used for dex compiles
Type: list of strings
if not blank, set to the version of the sdk to compile against
Type: string
Top level directories to pass to aidl tool
Type: list of strings
Directories rooted at the Android.bp file to pass to aidl tool
Type: list of strings
directories that should be added as include directories for any aidl sources of modules that depend on this module, as well as to aidl for this module.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
If true, export a copy of the module as a -hostdex module for host testing.
Type: bool
If false, prevent dexpreopting and stripping the dex file from the final jar. Defaults to true.
Type: bool
If true, generate an app image (.art file) for this module.
Type: bool
If true, use a checked-in profile to guide optimization. Defaults to false unless a matching profile is set or a profile is found in PRODUCT_DEX_PREOPT_PROFILE_DIR that matches the name of this module, in which case it is defaulted to true.
Type: bool
If set, provides the path to profile relative to the Android.bp file. If not set, defaults to searching for a file that matches the name of this module in the default profile location set by PRODUCT_DEX_PREOPT_PROFILE_DIR, or empty if not found.
Type: string
If false, disable all optimization. Defaults to true for apps, false for libraries and tests.
Type: bool
If true, optimize for size by removing unused code. Defaults to true for apps, false for libraries and tests.
Type: bool
If true, optimize bytecode. Defaults to false.
Type: bool
If true, obfuscate bytecode. Defaults to false.
Type: bool
If true, do not use the flag files generated by aapt that automatically keep classes referenced by the app manifest. Defaults to false.
Type: bool
Flags to pass to proguard.
Type: list of strings
Specifies the locations of files containing proguard flags.
Type: list of strings
When targeting 1.9, override the modules to use with --system
Type: string
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
flags passed to aapt when creating the apk
Type: list of strings
list of directories relative to the Blueprints file containing assets. Defaults to "assets"
Type: list of strings
list of directories relative to the Blueprints file containing Android resources
Type: list of strings
path to AndroidManifest.xml. If unset, defaults to "AndroidManifest.xml".
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: string
Type: list of strings
Type: list of strings
When prefer is set to true the prebuilt will be used instead of any source module with a matching name.
Type: bool
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
if set, build against the gtest library. Defaults to true.
Type: bool
Create a separate binary for each source file. Useful when there is global state that can not be torn down and reset between each test suite.
Type: bool
Disables the creation of a test-specific directory when used with relative_install_path. Useful if several tests need to be in the same directory, but test_per_src doesn't work.
Type: bool
list of files or filegroup modules that provide data that should be installed alongside the test
Type: list of strings
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
Type: list of strings
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
Type: bool
Type: bool
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
if set, build against the gtest library. Defaults to true.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
Type: bool
Type: bool
Create a separate binary for each source file. Useful when there is global state that can not be torn down and reset between each test suite.
Type: bool
Disables the creation of a test-specific directory when used with relative_install_path. Useful if several tests need to be in the same directory, but test_per_src doesn't work.
Type: bool
list of files or filegroup modules that provide data that should be installed alongside the test
Type: list of strings
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
if set, build against the gtest library. Defaults to true.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
if set, build against the gtest library. Defaults to true.
Type: bool
Create a separate binary for each source file. Useful when there is global state that can not be torn down and reset between each test suite.
Type: bool
Disables the creation of a test-specific directory when used with relative_install_path. Useful if several tests need to be in the same directory, but test_per_src doesn't work.
Type: bool
list of files or filegroup modules that provide data that should be installed alongside the test
Type: list of strings
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
Type: list of strings
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
Type: bool
Type: bool
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Type: codegenArchProperties
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
if set, build against the gtest library. Defaults to true.
Type: bool
Create a separate binary for each source file. Useful when there is global state that can not be torn down and reset between each test suite.
Type: bool
Disables the creation of a test-specific directory when used with relative_install_path. Useful if several tests need to be in the same directory, but test_per_src doesn't work.
Type: bool
list of files or filegroup modules that provide data that should be installed alongside the test
Type: list of strings
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
Type: list of strings
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
Type: bool
Type: bool
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
Type: bool
Type: bool
list of files or filegroup modules that provide data that should be installed alongside the test
Type: list of strings
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
Type: bool
Type: bool
list of files or filegroup modules that provide data that should be installed alongside the test
Type: list of strings
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
if set, build against the gtest library. Defaults to true.
Type: bool
Create a separate binary for each source file. Useful when there is global state that can not be torn down and reset between each test suite.
Type: bool
Disables the creation of a test-specific directory when used with relative_install_path. Useful if several tests need to be in the same directory, but test_per_src doesn't work.
Type: bool
list of files or filegroup modules that provide data that should be installed alongside the test
Type: list of strings
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
Type: list of strings
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
Type: bool
Type: bool
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
names of the output files that will be generated
Type: list of strings
The command to run on one or more input files. Cmd supports substitution of a few variables (the actual substitution is implemented in GenerateAndroidBuildActions below) Available variables for substitution:
$(location): the path to the first entry in tools or tool_files $(location <label>): the path to the tool or tool_file with name <label> $(in): one or more input files $(out): a single output file $(depfile): a file to which dependencies will be written, if the depfile property is set to true $(genDir): the sandbox directory for this tool; contains $(out) $$: a literal $All files used must be declared as inputs (to ensure proper up-to-date checks). Use "$(in)" directly in Cmd to ensure that all inputs used are declared.
Type: string
Enable reading a file containing dependencies in gcc format after the command completes
Type: bool
name of the modules (if any) that produces the host executable. Leave empty for prebuilts or scripts that do not need a module to build them.
Type: list of strings
Local file that is used as the tool
Type: list of strings
List of directories to export generated headers from
Type: list of strings
list of input files
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
names of other cc_object modules to link into this module using partial linking
Type: list of strings
if set, add an extra objcopy --prefix-symbols= step
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
When prefer is set to true the prebuilt will be used instead of any source module with a matching name.
Type: bool
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
When prefer is set to true the prebuilt will be used instead of any source module with a matching name.
Type: bool
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
When prefer is set to true the prebuilt will be used instead of any source module with a matching name.
Type: bool
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
if set, build against the gtest library. Defaults to true.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
Type: bool
Type: bool
Create a separate binary for each source file. Useful when there is global state that can not be torn down and reset between each test suite.
Type: bool
Disables the creation of a test-specific directory when used with relative_install_path. Useful if several tests need to be in the same directory, but test_per_src doesn't work.
Type: bool
list of files or filegroup modules that provide data that should be installed alongside the test
Type: list of strings
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
if set, build against the gtest library. Defaults to true.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
Type: bool
Type: bool
Create a separate binary for each source file. Useful when there is global state that can not be torn down and reset between each test suite.
Type: bool
Disables the creation of a test-specific directory when used with relative_install_path. Useful if several tests need to be in the same directory, but test_per_src doesn't work.
Type: bool
list of files or filegroup modules that provide data that should be installed alongside the test
Type: list of strings
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
if set, build against the gtest library. Defaults to true.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: string
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
directory relative to top of the source tree that contains doc templates files.
Type: string
directories relative to top of the source tree which contains html/jd files.
Type: list of strings
set a value in the Clearsilver hdf namespace.
Type: list of strings
proofread file contains all of the text content of the javadocs concatenated into one file, suitable for spell-checking and other goodness.
Type: string
a todo file lists the program elements that are missing documentation. At some point, this might be improved to show more warnings.
Type: string
local files that are used within user customized droiddoc options.
Type: list of strings
user customized droiddoc args. Available variables for substitution:
$(location <label>): the path to the arg_files with name <label>
Type: string
names of the output files used in args that will be generated
Type: list of strings
a list of files under current module source dir which contains known tags in Java sources. filegroup or genrule can be included within this property.
Type: list of strings
list of source files used to compile the Java module. May be .java, .logtags, .proto, or .aidl files.
Type: list of strings
list of directories rooted at the Android.bp file that will be added to the search paths for finding source files when passing package names.
Type: list of strings
list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files filegroup or genrule can be included within this property.
Type: list of strings
list of of java libraries that will be in the classpath.
Type: list of strings
If set to false, don't allow this module(-docs.zip) to be exported. Defaults to true.
Type: bool
if not blank, set to the version of the sdk to compile against
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
directory relative to top of the source tree that contains doc templates files.
Type: string
directories relative to top of the source tree which contains html/jd files.
Type: list of strings
set a value in the Clearsilver hdf namespace.
Type: list of strings
proofread file contains all of the text content of the javadocs concatenated into one file, suitable for spell-checking and other goodness.
Type: string
a todo file lists the program elements that are missing documentation. At some point, this might be improved to show more warnings.
Type: string
local files that are used within user customized droiddoc options.
Type: list of strings
user customized droiddoc args. Available variables for substitution:
$(location <label>): the path to the arg_files with name <label>
Type: string
names of the output files used in args that will be generated
Type: list of strings
a list of files under current module source dir which contains known tags in Java sources. filegroup or genrule can be included within this property.
Type: list of strings
list of source files used to compile the Java module. May be .java, .logtags, .proto, or .aidl files.
Type: list of strings
list of directories rooted at the Android.bp file that will be added to the search paths for finding source files when passing package names.
Type: list of strings
list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files filegroup or genrule can be included within this property.
Type: list of strings
list of of java libraries that will be in the classpath.
Type: list of strings
If set to false, don't allow this module(-docs.zip) to be exported. Defaults to true.
Type: bool
if not blank, set to the version of the sdk to compile against
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
path to the directory containing the droiddoc templates.
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
srcs lists files that will be included in this filegroup
Type: list of strings
Type: list of strings
The base path to the files. May be used by other modules to determine which portion of the path to use. For example, when a filegroup is used as data in a cc_test rule, the base path is stripped off the path and the remaining path is used as the installation directory.
Type: string
Create a make variable with the specified name that contains the list of files in the filegroup, relative to the root of the source tree.
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
if set, build against the gtest library. Defaults to true.
Type: bool
Create a separate binary for each source file. Useful when there is global state that can not be torn down and reset between each test suite.
Type: bool
Disables the creation of a test-specific directory when used with relative_install_path. Useful if several tests need to be in the same directory, but test_per_src doesn't work.
Type: bool
list of files or filegroup modules that provide data that should be installed alongside the test
Type: list of strings
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
Type: list of strings
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
Type: bool
Type: bool
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
if set, build against the gtest library. Defaults to true.
Type: bool
Create a separate binary for each source file. Useful when there is global state that can not be torn down and reset between each test suite.
Type: bool
Disables the creation of a test-specific directory when used with relative_install_path. Useful if several tests need to be in the same directory, but test_per_src doesn't work.
Type: bool
list of files or filegroup modules that provide data that should be installed alongside the test
Type: list of strings
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
Type: list of strings
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
Type: bool
Type: bool
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
names of the output files that will be generated
Type: list of strings
The command to run on one or more input files. Cmd supports substitution of a few variables (the actual substitution is implemented in GenerateAndroidBuildActions below) Available variables for substitution:
$(location): the path to the first entry in tools or tool_files $(location <label>): the path to the tool or tool_file with name <label> $(in): one or more input files $(out): a single output file $(depfile): a file to which dependencies will be written, if the depfile property is set to true $(genDir): the sandbox directory for this tool; contains $(out) $$: a literal $All files used must be declared as inputs (to ensure proper up-to-date checks). Use "$(in)" directly in Cmd to ensure that all inputs used are declared.
Type: string
Enable reading a file containing dependencies in gcc format after the command completes
Type: bool
name of the modules (if any) that produces the host executable. Leave empty for prebuilts or scripts that do not need a module to build them.
Type: list of strings
Local file that is used as the tool
Type: list of strings
List of directories to export generated headers from
Type: list of strings
list of input files
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
extension that will be substituted for each output file
Type: string
The command to run on one or more input files. Cmd supports substitution of a few variables (the actual substitution is implemented in GenerateAndroidBuildActions below) Available variables for substitution:
$(location): the path to the first entry in tools or tool_files $(location <label>): the path to the tool or tool_file with name <label> $(in): one or more input files $(out): a single output file $(depfile): a file to which dependencies will be written, if the depfile property is set to true $(genDir): the sandbox directory for this tool; contains $(out) $$: a literal $All files used must be declared as inputs (to ensure proper up-to-date checks). Use "$(in)" directly in Cmd to ensure that all inputs used are declared.
Type: string
Enable reading a file containing dependencies in gcc format after the command completes
Type: bool
name of the modules (if any) that produces the host executable. Leave empty for prebuilts or scripts that do not need a module to build them.
Type: list of strings
Local file that is used as the tool
Type: list of strings
List of directories to export generated headers from
Type: list of strings
list of input files
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: string
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
The owner of the module
Type: string
List of .hal files which compose this interface.
Type: list of strings
List of hal interface packages that this library depends on.
Type: list of strings
Package root for this package, must be a prefix of name
Type: string
List of non-TypeDef types declared in types.hal.
Type: list of strings
Whether to generate the Java library stubs. Default: true
Type: bool
Whether to generate a Java library containing constants expressed by @export annotations in the hal files.
Type: bool
Don't generate "android.hidl.foo@1.0" C library. Instead only generate the genrules so that this package can be included in libhidltransport.
Type: bool
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
list of source files used to compile the Java module. May be .java, .logtags, .proto, or .aidl files.
Type: list of strings
list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of directories containing Java resources
Type: list of strings
list of directories that should be excluded from java_resource_dirs
Type: list of strings
list of files to use as Java resources
Type: list of strings
list of files that should be excluded from java_resources
Type: list of strings
don't build against the default libraries (bootclasspath, legacy-test, core-junit, ext, and framework for device targets)
Type: bool
don't build against the framework libraries (legacy-test, core-junit, ext, and framework for device targets)
Type: bool
list of module-specific flags that will be used for javac compiles
Type: list of strings
list of of java libraries that will be in the classpath
Type: list of strings
list of java libraries that will be compiled into the resulting jar
Type: list of strings
manifest file to be included in resulting jar
Type: string
if not blank, run jarjar using the specified rules file
Type: string
If not blank, set the java version passed to javac as -source and -target
Type: string
If set to false, don't allow this module to be installed. Defaults to true.
Type: bool
If set to true, include sources used to compile the module in to the final jar
Type: bool
List of modules to use as annotation processors
Type: list of strings
List of classes to pass to javac to use as annotation processors
Type: list of strings
The number of Java source entries each Javac instance can process
Type: int64
Add host jdk tools.jar to bootclasspath
Type: bool
List of source files that should only be used when passing -source 1.9
Type: list of strings
List of javac flags that should only be used when passing -source 1.9
Type: list of strings
List of classes to include for instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. If unset defaults to all classes. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of classes to exclude from instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. Overrides classes selected by the include_filter property. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of javac flags that should only be used when running errorprone.
Type: list of strings
List of extra options that will be passed to the proto generator.
Type: list of strings
list of module-specific flags that will be used for dex compiles
Type: list of strings
if not blank, set to the version of the sdk to compile against
Type: string
Top level directories to pass to aidl tool
Type: list of strings
Directories rooted at the Android.bp file to pass to aidl tool
Type: list of strings
directories that should be added as include directories for any aidl sources of modules that depend on this module, as well as to aidl for this module.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
If true, export a copy of the module as a -hostdex module for host testing.
Type: bool
If false, prevent dexpreopting and stripping the dex file from the final jar. Defaults to true.
Type: bool
If true, generate an app image (.art file) for this module.
Type: bool
If true, use a checked-in profile to guide optimization. Defaults to false unless a matching profile is set or a profile is found in PRODUCT_DEX_PREOPT_PROFILE_DIR that matches the name of this module, in which case it is defaulted to true.
Type: bool
If set, provides the path to profile relative to the Android.bp file. If not set, defaults to searching for a file that matches the name of this module in the default profile location set by PRODUCT_DEX_PREOPT_PROFILE_DIR, or empty if not found.
Type: string
If false, disable all optimization. Defaults to true for apps, false for libraries and tests.
Type: bool
If true, optimize for size by removing unused code. Defaults to true for apps, false for libraries and tests.
Type: bool
If true, optimize bytecode. Defaults to false.
Type: bool
If true, obfuscate bytecode. Defaults to false.
Type: bool
If true, do not use the flag files generated by aapt that automatically keep classes referenced by the app manifest. Defaults to false.
Type: bool
Flags to pass to proguard.
Type: list of strings
Specifies the locations of files containing proguard flags.
Type: list of strings
When targeting 1.9, override the modules to use with --system
Type: string
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
installable script to execute the resulting jar
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
list of source files used to compile the Java module. May be .java, .logtags, .proto, or .aidl files.
Type: list of strings
list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of directories containing Java resources
Type: list of strings
list of directories that should be excluded from java_resource_dirs
Type: list of strings
list of files to use as Java resources
Type: list of strings
list of files that should be excluded from java_resources
Type: list of strings
don't build against the default libraries (bootclasspath, legacy-test, core-junit, ext, and framework for device targets)
Type: bool
don't build against the framework libraries (legacy-test, core-junit, ext, and framework for device targets)
Type: bool
list of module-specific flags that will be used for javac compiles
Type: list of strings
list of of java libraries that will be in the classpath
Type: list of strings
list of java libraries that will be compiled into the resulting jar
Type: list of strings
manifest file to be included in resulting jar
Type: string
if not blank, run jarjar using the specified rules file
Type: string
If not blank, set the java version passed to javac as -source and -target
Type: string
If set to false, don't allow this module to be installed. Defaults to true.
Type: bool
If set to true, include sources used to compile the module in to the final jar
Type: bool
List of modules to use as annotation processors
Type: list of strings
List of classes to pass to javac to use as annotation processors
Type: list of strings
The number of Java source entries each Javac instance can process
Type: int64
Add host jdk tools.jar to bootclasspath
Type: bool
List of source files that should only be used when passing -source 1.9
Type: list of strings
List of javac flags that should only be used when passing -source 1.9
Type: list of strings
List of classes to include for instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. If unset defaults to all classes. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of classes to exclude from instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. Overrides classes selected by the include_filter property. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of javac flags that should only be used when running errorprone.
Type: list of strings
List of extra options that will be passed to the proto generator.
Type: list of strings
list of module-specific flags that will be used for dex compiles
Type: list of strings
if not blank, set to the version of the sdk to compile against
Type: string
Top level directories to pass to aidl tool
Type: list of strings
Directories rooted at the Android.bp file to pass to aidl tool
Type: list of strings
directories that should be added as include directories for any aidl sources of modules that depend on this module, as well as to aidl for this module.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
If true, export a copy of the module as a -hostdex module for host testing.
Type: bool
If false, prevent dexpreopting and stripping the dex file from the final jar. Defaults to true.
Type: bool
If true, generate an app image (.art file) for this module.
Type: bool
If true, use a checked-in profile to guide optimization. Defaults to false unless a matching profile is set or a profile is found in PRODUCT_DEX_PREOPT_PROFILE_DIR that matches the name of this module, in which case it is defaulted to true.
Type: bool
If set, provides the path to profile relative to the Android.bp file. If not set, defaults to searching for a file that matches the name of this module in the default profile location set by PRODUCT_DEX_PREOPT_PROFILE_DIR, or empty if not found.
Type: string
If false, disable all optimization. Defaults to true for apps, false for libraries and tests.
Type: bool
If true, optimize for size by removing unused code. Defaults to true for apps, false for libraries and tests.
Type: bool
If true, optimize bytecode. Defaults to false.
Type: bool
If true, obfuscate bytecode. Defaults to false.
Type: bool
If true, do not use the flag files generated by aapt that automatically keep classes referenced by the app manifest. Defaults to false.
Type: bool
Flags to pass to proguard.
Type: list of strings
Specifies the locations of files containing proguard flags.
Type: list of strings
When targeting 1.9, override the modules to use with --system
Type: string
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
installable script to execute the resulting jar
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
list of source files used to compile the Java module. May be .java, .logtags, .proto, or .aidl files.
Type: list of strings
list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of directories containing Java resources
Type: list of strings
list of directories that should be excluded from java_resource_dirs
Type: list of strings
list of files to use as Java resources
Type: list of strings
list of files that should be excluded from java_resources
Type: list of strings
don't build against the default libraries (bootclasspath, legacy-test, core-junit, ext, and framework for device targets)
Type: bool
don't build against the framework libraries (legacy-test, core-junit, ext, and framework for device targets)
Type: bool
list of module-specific flags that will be used for javac compiles
Type: list of strings
list of of java libraries that will be in the classpath
Type: list of strings
list of java libraries that will be compiled into the resulting jar
Type: list of strings
manifest file to be included in resulting jar
Type: string
if not blank, run jarjar using the specified rules file
Type: string
If not blank, set the java version passed to javac as -source and -target
Type: string
If set to false, don't allow this module to be installed. Defaults to true.
Type: bool
If set to true, include sources used to compile the module in to the final jar
Type: bool
List of modules to use as annotation processors
Type: list of strings
List of classes to pass to javac to use as annotation processors
Type: list of strings
The number of Java source entries each Javac instance can process
Type: int64
Add host jdk tools.jar to bootclasspath
Type: bool
List of source files that should only be used when passing -source 1.9
Type: list of strings
List of javac flags that should only be used when passing -source 1.9
Type: list of strings
List of classes to include for instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. If unset defaults to all classes. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of classes to exclude from instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. Overrides classes selected by the include_filter property. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of javac flags that should only be used when running errorprone.
Type: list of strings
List of extra options that will be passed to the proto generator.
Type: list of strings
list of module-specific flags that will be used for dex compiles
Type: list of strings
if not blank, set to the version of the sdk to compile against
Type: string
Top level directories to pass to aidl tool
Type: list of strings
Directories rooted at the Android.bp file to pass to aidl tool
Type: list of strings
directories that should be added as include directories for any aidl sources of modules that depend on this module, as well as to aidl for this module.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
If true, export a copy of the module as a -hostdex module for host testing.
Type: bool
If false, prevent dexpreopting and stripping the dex file from the final jar. Defaults to true.
Type: bool
If true, generate an app image (.art file) for this module.
Type: bool
If true, use a checked-in profile to guide optimization. Defaults to false unless a matching profile is set or a profile is found in PRODUCT_DEX_PREOPT_PROFILE_DIR that matches the name of this module, in which case it is defaulted to true.
Type: bool
If set, provides the path to profile relative to the Android.bp file. If not set, defaults to searching for a file that matches the name of this module in the default profile location set by PRODUCT_DEX_PREOPT_PROFILE_DIR, or empty if not found.
Type: string
If false, disable all optimization. Defaults to true for apps, false for libraries and tests.
Type: bool
If true, optimize for size by removing unused code. Defaults to true for apps, false for libraries and tests.
Type: bool
If true, optimize bytecode. Defaults to false.
Type: bool
If true, obfuscate bytecode. Defaults to false.
Type: bool
If true, do not use the flag files generated by aapt that automatically keep classes referenced by the app manifest. Defaults to false.
Type: bool
Flags to pass to proguard.
Type: list of strings
Specifies the locations of files containing proguard flags.
Type: list of strings
When targeting 1.9, override the modules to use with --system
Type: string
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
Type: bool
Type: bool
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
names of the output files that will be generated
Type: list of strings
The command to run on one or more input files. Cmd supports substitution of a few variables (the actual substitution is implemented in GenerateAndroidBuildActions below) Available variables for substitution:
$(location): the path to the first entry in tools or tool_files $(location <label>): the path to the tool or tool_file with name <label> $(in): one or more input files $(out): a single output file $(depfile): a file to which dependencies will be written, if the depfile property is set to true $(genDir): the sandbox directory for this tool; contains $(out) $$: a literal $All files used must be declared as inputs (to ensure proper up-to-date checks). Use "$(in)" directly in Cmd to ensure that all inputs used are declared.
Type: string
Enable reading a file containing dependencies in gcc format after the command completes
Type: bool
name of the modules (if any) that produces the host executable. Leave empty for prebuilts or scripts that do not need a module to build them.
Type: list of strings
Local file that is used as the tool
Type: list of strings
List of directories to export generated headers from
Type: list of strings
list of input files
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Type: string
Type: bool
When prefer is set to true the prebuilt will be used instead of any source module with a matching name.
Type: bool
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Type: string
Type: bool
When prefer is set to true the prebuilt will be used instead of any source module with a matching name.
Type: bool
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
list of source files used to compile the Java module. May be .java, .logtags, .proto, or .aidl files.
Type: list of strings
list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of directories containing Java resources
Type: list of strings
list of directories that should be excluded from java_resource_dirs
Type: list of strings
list of files to use as Java resources
Type: list of strings
list of files that should be excluded from java_resources
Type: list of strings
don't build against the default libraries (bootclasspath, legacy-test, core-junit, ext, and framework for device targets)
Type: bool
don't build against the framework libraries (legacy-test, core-junit, ext, and framework for device targets)
Type: bool
list of module-specific flags that will be used for javac compiles
Type: list of strings
list of of java libraries that will be in the classpath
Type: list of strings
list of java libraries that will be compiled into the resulting jar
Type: list of strings
manifest file to be included in resulting jar
Type: string
if not blank, run jarjar using the specified rules file
Type: string
If not blank, set the java version passed to javac as -source and -target
Type: string
If set to false, don't allow this module to be installed. Defaults to true.
Type: bool
If set to true, include sources used to compile the module in to the final jar
Type: bool
List of modules to use as annotation processors
Type: list of strings
List of classes to pass to javac to use as annotation processors
Type: list of strings
The number of Java source entries each Javac instance can process
Type: int64
Add host jdk tools.jar to bootclasspath
Type: bool
List of source files that should only be used when passing -source 1.9
Type: list of strings
List of javac flags that should only be used when passing -source 1.9
Type: list of strings
List of classes to include for instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. If unset defaults to all classes. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of classes to exclude from instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. Overrides classes selected by the include_filter property. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of javac flags that should only be used when running errorprone.
Type: list of strings
List of extra options that will be passed to the proto generator.
Type: list of strings
list of module-specific flags that will be used for dex compiles
Type: list of strings
if not blank, set to the version of the sdk to compile against
Type: string
Top level directories to pass to aidl tool
Type: list of strings
Directories rooted at the Android.bp file to pass to aidl tool
Type: list of strings
directories that should be added as include directories for any aidl sources of modules that depend on this module, as well as to aidl for this module.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
If true, export a copy of the module as a -hostdex module for host testing.
Type: bool
If false, prevent dexpreopting and stripping the dex file from the final jar. Defaults to true.
Type: bool
If true, generate an app image (.art file) for this module.
Type: bool
If true, use a checked-in profile to guide optimization. Defaults to false unless a matching profile is set or a profile is found in PRODUCT_DEX_PREOPT_PROFILE_DIR that matches the name of this module, in which case it is defaulted to true.
Type: bool
If set, provides the path to profile relative to the Android.bp file. If not set, defaults to searching for a file that matches the name of this module in the default profile location set by PRODUCT_DEX_PREOPT_PROFILE_DIR, or empty if not found.
Type: string
If false, disable all optimization. Defaults to true for apps, false for libraries and tests.
Type: bool
If true, optimize for size by removing unused code. Defaults to true for apps, false for libraries and tests.
Type: bool
If true, optimize bytecode. Defaults to false.
Type: bool
If true, obfuscate bytecode. Defaults to false.
Type: bool
If true, do not use the flag files generated by aapt that automatically keep classes referenced by the app manifest. Defaults to false.
Type: bool
Flags to pass to proguard.
Type: list of strings
Specifies the locations of files containing proguard flags.
Type: list of strings
When targeting 1.9, override the modules to use with --system
Type: string
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
list of source files used to compile the Java module. May be .java, .logtags, .proto, or .aidl files.
Type: list of strings
list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of directories containing Java resources
Type: list of strings
list of directories that should be excluded from java_resource_dirs
Type: list of strings
list of files to use as Java resources
Type: list of strings
list of files that should be excluded from java_resources
Type: list of strings
don't build against the default libraries (bootclasspath, legacy-test, core-junit, ext, and framework for device targets)
Type: bool
don't build against the framework libraries (legacy-test, core-junit, ext, and framework for device targets)
Type: bool
list of module-specific flags that will be used for javac compiles
Type: list of strings
list of of java libraries that will be in the classpath
Type: list of strings
list of java libraries that will be compiled into the resulting jar
Type: list of strings
manifest file to be included in resulting jar
Type: string
if not blank, run jarjar using the specified rules file
Type: string
If not blank, set the java version passed to javac as -source and -target
Type: string
If set to false, don't allow this module to be installed. Defaults to true.
Type: bool
If set to true, include sources used to compile the module in to the final jar
Type: bool
List of modules to use as annotation processors
Type: list of strings
List of classes to pass to javac to use as annotation processors
Type: list of strings
The number of Java source entries each Javac instance can process
Type: int64
Add host jdk tools.jar to bootclasspath
Type: bool
List of source files that should only be used when passing -source 1.9
Type: list of strings
List of javac flags that should only be used when passing -source 1.9
Type: list of strings
List of classes to include for instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. If unset defaults to all classes. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of classes to exclude from instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. Overrides classes selected by the include_filter property. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of javac flags that should only be used when running errorprone.
Type: list of strings
List of extra options that will be passed to the proto generator.
Type: list of strings
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
list of source files used to compile the Java module. May be .java, .logtags, .proto, or .aidl files.
Type: list of strings
list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of directories containing Java resources
Type: list of strings
list of directories that should be excluded from java_resource_dirs
Type: list of strings
list of files to use as Java resources
Type: list of strings
list of files that should be excluded from java_resources
Type: list of strings
don't build against the default libraries (bootclasspath, legacy-test, core-junit, ext, and framework for device targets)
Type: bool
don't build against the framework libraries (legacy-test, core-junit, ext, and framework for device targets)
Type: bool
list of module-specific flags that will be used for javac compiles
Type: list of strings
list of of java libraries that will be in the classpath
Type: list of strings
list of java libraries that will be compiled into the resulting jar
Type: list of strings
manifest file to be included in resulting jar
Type: string
if not blank, run jarjar using the specified rules file
Type: string
If not blank, set the java version passed to javac as -source and -target
Type: string
If set to false, don't allow this module to be installed. Defaults to true.
Type: bool
Default: false
If set to true, include sources used to compile the module in to the final jar
Type: bool
List of modules to use as annotation processors
Type: list of strings
List of classes to pass to javac to use as annotation processors
Type: list of strings
The number of Java source entries each Javac instance can process
Type: int64
Add host jdk tools.jar to bootclasspath
Type: bool
List of source files that should only be used when passing -source 1.9
Type: list of strings
List of javac flags that should only be used when passing -source 1.9
Type: list of strings
List of classes to include for instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. If unset defaults to all classes. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of classes to exclude from instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. Overrides classes selected by the include_filter property. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
Type: list of strings
List of javac flags that should only be used when running errorprone.
Type: list of strings
List of extra options that will be passed to the proto generator.
Type: list of strings
list of module-specific flags that will be used for dex compiles
Type: list of strings
if not blank, set to the version of the sdk to compile against
Type: string
Top level directories to pass to aidl tool
Type: list of strings
Directories rooted at the Android.bp file to pass to aidl tool
Type: list of strings
directories that should be added as include directories for any aidl sources of modules that depend on this module, as well as to aidl for this module.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
If true, export a copy of the module as a -hostdex module for host testing.
Type: bool
If false, prevent dexpreopting and stripping the dex file from the final jar. Defaults to true.
Type: bool
If true, generate an app image (.art file) for this module.
Type: bool
If true, use a checked-in profile to guide optimization. Defaults to false unless a matching profile is set or a profile is found in PRODUCT_DEX_PREOPT_PROFILE_DIR that matches the name of this module, in which case it is defaulted to true.
Type: bool
If set, provides the path to profile relative to the Android.bp file. If not set, defaults to searching for a file that matches the name of this module in the default profile location set by PRODUCT_DEX_PREOPT_PROFILE_DIR, or empty if not found.
Type: string
If false, disable all optimization. Defaults to true for apps, false for libraries and tests.
Type: bool
If true, optimize for size by removing unused code. Defaults to true for apps, false for libraries and tests.
Type: bool
If true, optimize bytecode. Defaults to false.
Type: bool
If true, obfuscate bytecode. Defaults to false.
Type: bool
If true, do not use the flag files generated by aapt that automatically keep classes referenced by the app manifest. Defaults to false.
Type: bool
Flags to pass to proguard.
Type: list of strings
Specifies the locations of files containing proguard flags.
Type: list of strings
When targeting 1.9, override the modules to use with --system
Type: string
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
List of java library modules that should be included in the system modules
Type: list of strings
List of prebuilt jars that should be included in the system modules
Type: list of strings
Sdk version that should be included in the system modules
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
list of source files used to compile the Java module. May be .java, .logtags, .proto, or .aidl files.
Type: list of strings
list of directories rooted at the Android.bp file that will be added to the search paths for finding source files when passing package names.
Type: list of strings
list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files filegroup or genrule can be included within this property.
Type: list of strings
list of of java libraries that will be in the classpath.
Type: list of strings
If set to false, don't allow this module(-docs.zip) to be exported. Defaults to true.
Type: bool
if not blank, set to the version of the sdk to compile against
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
list of source files used to compile the Java module. May be .java, .logtags, .proto, or .aidl files.
Type: list of strings
list of directories rooted at the Android.bp file that will be added to the search paths for finding source files when passing package names.
Type: list of strings
list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files filegroup or genrule can be included within this property.
Type: list of strings
list of of java libraries that will be in the classpath.
Type: list of strings
If set to false, don't allow this module(-docs.zip) to be exported. Defaults to true.
Type: bool
if not blank, set to the version of the sdk to compile against
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Creates a stub shared library based on the provided version file. Example: llndk_library { name: "libfoo", symbol_file: "libfoo.map.txt", export_include_dirs: ["include_vndk"], }
Relative path to the symbol map. An example file can be seen here: TODO(danalbert): Make an example.
Type: string
Whether to export any headers as -isystem instead of -I. Mainly for use by bionic/libc.
Type: bool
Which headers to process with versioner. This really only handles bionic/libc/include right now.
Type: list of strings
Whether the system library uses symbol versions.
Type: bool
whether this module can be directly depended upon by libs that are installed to /vendor. When set to false, this module can only be depended on by VNDK libraries, not vendor libraries. This effectively hides this module from vendors. Default value is true.
Type: bool
Default: true
list of llndk headers to re-export include directories from.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
Type: bool
Default: true
Type: bool
Type: bool
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
When prefer is set to true the prebuilt will be used instead of any source module with a matching name.
Type: bool
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
When prefer is set to true the prebuilt will be used instead of any source module with a matching name.
Type: bool
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Creates a stub shared library based on the provided version file. Example: llndk_library { name: "libfoo", symbol_file: "libfoo.map.txt", export_include_dirs: ["include_vndk"], }
Relative path to the symbol map. An example file can be seen here: TODO(danalbert): Make an example.
Type: string
Whether to export any headers as -isystem instead of -I. Mainly for use by bionic/libc.
Type: bool
Which headers to process with versioner. This really only handles bionic/libc/include right now.
Type: list of strings
Whether the system library uses symbol versions.
Type: bool
whether this module can be directly depended upon by libs that are installed to /vendor. When set to false, this module can only be depended on by VNDK libraries, not vendor libraries. This effectively hides this module from vendors. Default value is true.
Type: bool
Default: true
list of llndk headers to re-export include directories from.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
compile executable with -static
Type: bool
set the name of the output
Type: string
append to the name of the output
Type: string
if set, add an extra objcopy --prefix-symbols= step
Type: string
local file name to pass to the linker as --version_script
Type: string
if set, install a symlink to the preferred architecture
Type: bool
install symlinks to the binary. Symlink names will have the suffix and the binary extension (if any) appended
Type: list of strings
do not pass -pie
Type: bool
Names of modules to be overridden. Listed modules can only be other binaries (in Make or Soong). This does not completely prevent installation of the overridden binaries, but if both binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed from PRODUCT_PACKAGES.
Type: list of strings
if set, build against the gtest library. Defaults to true.
Type: bool
Create a separate binary for each source file. Useful when there is global state that can not be torn down and reset between each test suite.
Type: bool
Disables the creation of a test-specific directory when used with relative_install_path. Useful if several tests need to be in the same directory, but test_per_src doesn't work.
Type: bool
list of files or filegroup modules that provide data that should be installed alongside the test
Type: list of strings
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
Type: list of strings
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
Type: bool
Type: bool
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
When prefer is set to true the prebuilt will be used instead of any source module with a matching name.
Type: bool
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: string
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Base directory of the headers being installed. As an example: ndk_headers {
name: "foo", from: "include", to: "", srcs: ["include/foo/bar/baz.h"],} Will install $SYSROOT/usr/include/foo/bar/baz.h. If `from` were instead "include/foo", it would have installed $SYSROOT/usr/include/bar/baz.h.
Type: string
Install path within the sysroot. This is relative to usr/include.
Type: string
List of headers to install. Glob compatible. Common case is "include/**/*.h".
Type: list of strings
Path to the NOTICE file associated with the headers.
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Creates a stub shared library based on the provided version file. Example: ndk_library { name: "libfoo", symbol_file: "libfoo.map.txt", first_version: "9", }
Relative path to the symbol map. An example file can be seen here: TODO(danalbert): Make an example.
Type: string
The first API level a library was available. A library will be generated for every API level beginning with this one.
Type: string
The first API level that library should have the version script applied. This defaults to the value of first_version, and should almost never be used. This is only needed to work around platform bugs like https://github.com/android-ndk/ndk/issues/265.
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
names of other cc_object modules to link into this module using partial linking
Type: list of strings
if set, add an extra objcopy --prefix-symbols= step
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
Default: minimum
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
Default: none
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
Select the STL library to use. Possible values are "libc++", "libc++_static", "libstdc++", or "none". Leave blank to select the default.
Type: string
enable AddressSanitizer, ThreadSanitizer, or UndefinedBehaviorSanitizer
Type: bool
main sanitizers
Type: bool
Type: bool
local sanitizers
Type: bool
Type: bool
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Sanitizers to run in the diagnostic mode (as opposed to the release mode). Replaces abort() on error with a human-readable error message. Address and Thread sanitizers always run in diagnostic mode.
Type: bool
Type: bool
Type: bool
Type: list of strings
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Base directory of the headers being installed. As an example: preprocessed_ndk_headers {
name: "foo", from: "include", to: "",} Will install $SYSROOT/usr/include/foo/bar/baz.h. If `from` were instead "include/foo", it would have installed $SYSROOT/usr/include/bar/baz.h.
Type: string
Install path within the sysroot. This is relative to usr/include.
Type: string
Path to the NOTICE file associated with the headers.
Type: string
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
properties that apply to python libraries and binaries.
the package path prefix within the output artifact at which to place the source/data files of the current module. eg. Pkg_path = "a/b/c"; Other packages can reference this module by using (from a.b.c import ...) statement. if left unspecified, all the source/data files of current module are copied to "runfiles/" tree directory directly.
Type: string
true, if the Python module is used internally, eg, Python std libs.
Type: bool
list of source (.py) files compatible both with Python2 and Python3 used to compile the Python module. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module". Srcs has to be non-empty.
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of files or filegroup modules that provide data that should be installed alongside the test. the file extension can be arbitrary except for (.py).
Type: list of strings
list of the Python libraries compatible both with Python2 and Python3.
Type: list of strings
all the "srcs" or Python dependencies that are to be used only for Python2.
Type: VersionProperties
all the "srcs" or Python dependencies that are to be used only for Python3.
Type: VersionProperties
the name of the source file that is the main entry point of the program. this file must also be listed in srcs. If left unspecified, module name is used instead. If name doesn’t match any filename in srcs, main must be specified.
Type: string
set the name of the output binary.
Type: string
append to the name of the output binary.
Type: string
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
properties that apply to python libraries and binaries.
the package path prefix within the output artifact at which to place the source/data files of the current module. eg. Pkg_path = "a/b/c"; Other packages can reference this module by using (from a.b.c import ...) statement. if left unspecified, all the source/data files of current module are copied to "runfiles/" tree directory directly.
Type: string
true, if the Python module is used internally, eg, Python std libs.
Type: bool
list of source (.py) files compatible both with Python2 and Python3 used to compile the Python module. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module". Srcs has to be non-empty.
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of files or filegroup modules that provide data that should be installed alongside the test. the file extension can be arbitrary except for (.py).
Type: list of strings
list of the Python libraries compatible both with Python2 and Python3.
Type: list of strings
all the "srcs" or Python dependencies that are to be used only for Python2.
Type: VersionProperties
all the "srcs" or Python dependencies that are to be used only for Python3.
Type: VersionProperties
Type: bool
Type: bool
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
properties that apply to python libraries and binaries.
the package path prefix within the output artifact at which to place the source/data files of the current module. eg. Pkg_path = "a/b/c"; Other packages can reference this module by using (from a.b.c import ...) statement. if left unspecified, all the source/data files of current module are copied to "runfiles/" tree directory directly.
Type: string
true, if the Python module is used internally, eg, Python std libs.
Type: bool
list of source (.py) files compatible both with Python2 and Python3 used to compile the Python module. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module". Srcs has to be non-empty.
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of files or filegroup modules that provide data that should be installed alongside the test. the file extension can be arbitrary except for (.py).
Type: list of strings
list of the Python libraries compatible both with Python2 and Python3.
Type: list of strings
all the "srcs" or Python dependencies that are to be used only for Python2.
Type: VersionProperties
all the "srcs" or Python dependencies that are to be used only for Python3.
Type: VersionProperties
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
properties that apply to python libraries and binaries.
the package path prefix within the output artifact at which to place the source/data files of the current module. eg. Pkg_path = "a/b/c"; Other packages can reference this module by using (from a.b.c import ...) statement. if left unspecified, all the source/data files of current module are copied to "runfiles/" tree directory directly.
Type: string
true, if the Python module is used internally, eg, Python std libs.
Type: bool
list of source (.py) files compatible both with Python2 and Python3 used to compile the Python module. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module". Srcs has to be non-empty.
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of files or filegroup modules that provide data that should be installed alongside the test. the file extension can be arbitrary except for (.py).
Type: list of strings
list of the Python libraries compatible both with Python2 and Python3.
Type: list of strings
all the "srcs" or Python dependencies that are to be used only for Python2.
Type: VersionProperties
all the "srcs" or Python dependencies that are to be used only for Python3.
Type: VersionProperties
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
properties that apply to python libraries and binaries.
the package path prefix within the output artifact at which to place the source/data files of the current module. eg. Pkg_path = "a/b/c"; Other packages can reference this module by using (from a.b.c import ...) statement. if left unspecified, all the source/data files of current module are copied to "runfiles/" tree directory directly.
Type: string
true, if the Python module is used internally, eg, Python std libs.
Type: bool
list of source (.py) files compatible both with Python2 and Python3 used to compile the Python module. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module". Srcs has to be non-empty.
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of files or filegroup modules that provide data that should be installed alongside the test. the file extension can be arbitrary except for (.py).
Type: list of strings
list of the Python libraries compatible both with Python2 and Python3.
Type: list of strings
all the "srcs" or Python dependencies that are to be used only for Python2.
Type: VersionProperties
all the "srcs" or Python dependencies that are to be used only for Python3.
Type: VersionProperties
the name of the source file that is the main entry point of the program. this file must also be listed in srcs. If left unspecified, module name is used instead. If name doesn’t match any filename in srcs, main must be specified.
Type: string
set the name of the output binary.
Type: string
append to the name of the output binary.
Type: string
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
properties that apply to python libraries and binaries.
the package path prefix within the output artifact at which to place the source/data files of the current module. eg. Pkg_path = "a/b/c"; Other packages can reference this module by using (from a.b.c import ...) statement. if left unspecified, all the source/data files of current module are copied to "runfiles/" tree directory directly.
Type: string
true, if the Python module is used internally, eg, Python std libs.
Type: bool
list of source (.py) files compatible both with Python2 and Python3 used to compile the Python module. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module". Srcs has to be non-empty.
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of files or filegroup modules that provide data that should be installed alongside the test. the file extension can be arbitrary except for (.py).
Type: list of strings
list of the Python libraries compatible both with Python2 and Python3.
Type: list of strings
all the "srcs" or Python dependencies that are to be used only for Python2.
Type: VersionProperties
all the "srcs" or Python dependencies that are to be used only for Python3.
Type: VersionProperties
the name of the source file that is the main entry point of the program. this file must also be listed in srcs. If left unspecified, module name is used instead. If name doesn’t match any filename in srcs, main must be specified.
Type: string
set the name of the output binary.
Type: string
append to the name of the output binary.
Type: string
list of compatibility suites (for example "cts", "vts") that the module should be installed into.
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Default: false
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. srcs may reference the outputs of other modules that produce source files like genrule or filegroup using the syntax ":module".
Type: list of strings
list of source files that should not be used to build the C/C++ module. This is most useful in the arch/multilib variants to remove non-common files
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles.
Type: list of strings
list of module-specific flags that will be used for C++ compiles
Type: list of strings
list of module-specific flags that will be used for C compiles
Type: list of strings
list of module-specific flags that will be used for .S compiles
Type: list of strings
list of module-specific flags that will be used for C and C++ compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .S compiles when compiling with clang
Type: list of strings
list of module-specific flags that will be used for .y and .yy compiles
Type: list of strings
the instruction set architecture to use to compile the C/C++ module.
Type: string
list of directories relative to the root of the source tree that will be added to the include path using -I. If possible, don't use this. If adding paths from the current directory use local_include_dirs, if adding paths from other modules use export_include_dirs in that module.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path using -I
Type: list of strings
list of generated sources to compile. These are the names of gensrcs or genrule modules.
Type: list of strings
list of generated headers to add to the include path. These are the names of genrule modules.
Type: list of strings
pass -frtti instead of -fno-rtti
Type: bool
C standard version to use. Can be a specific version (such as "gnu11"), "experimental" (which will use draft versions like C1x when available), or the empty string (which will use the default).
Type: string
C++ standard version to use. Can be a specific version (such as "gnu++11"), "experimental" (which will use draft versions like C++1z when available), or the empty string (which will use the default).
Type: string
if set to false, use -std=c++* instead of -std=gnu++*
Type: bool
list of directories that will be added to the aidl include paths.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the aidl include paths.
Type: list of strings
whether to generate traces (for systrace) for this interface
Type: bool
list of directories that will be added to the llvm-rs-cc include paths
Type: list of strings
list of flags that will be passed to llvm-rs-cc
Type: list of strings
Renderscript API level to target
Type: string
list of module-specific flags that will be used for C and C++ compiles in debug or release builds
Type: list of strings
list of source files that should only be used in the vendor variant of the C/C++ module.
Type: list of strings
list of source files that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
List of additional cflags that should be used to build the vendor variant of the C/C++ module.
Type: list of strings
Link statically against the protobuf runtime
Type: bool
Build and link with OpenMP
Type: bool
Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
Type: string
list of directories that will be added to the protoc include paths.
Type: list of strings
list of directories relative to the bp file that will be added to the protoc include paths.
Type: list of strings
whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
Type: bool
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Type: bool
Type: bool
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: bool
Type: bool
Type: list of strings
Creates a stub shared library for a vendor public library. Vendor public libraries are vendor libraries (owned by them and installed to /vendor partition) that are exposed to Android apps via JNI. The libraries are made public by being listed in /vendor/etc/public.libraries.txt. This stub library is a build-time only artifact that provides symbols that are exposed from a vendor public library. Example: vendor_public_library { name: "libfoo", symbol_file: "libfoo.map.txt", export_public_headers: ["libfoo_headers"], } cc_headers { name: "libfoo_headers", export_include_dirs: ["include"], }
Relative path to the symbol map.
Type: string
Whether the system library uses symbol versions.
Type: bool
list of header libs to re-export include directories from.
Type: list of strings
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Creates vndk prebuilts that include the VNDK version. Example: vndk_prebuilt_shared { name: "libfoo", version: "27.1.0", vendor_available: true, vndk: { enabled: true, }, export_include_dirs: ["include/external/libfoo/vndk_include"], arch: { arm64: { srcs: ["arm/lib64/libfoo.so"], }, arm: { srcs: ["arm/lib/libfoo.so"], }, }, }
VNDK snapshot version.
Type: string
Target arch name of the snapshot (e.g. 'arm64' for variant 'aosp_arm64_ab')
Type: string
Prebuilt files for each arch.
Type: list of strings
Properties used to compile all C or C++ modules
compile module with clang instead of gcc
Type: bool
Minimum sdk version supported when compiling against the ndk
Type: string
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
whether this module should be allowed to be directly depended by other modules with `vendor: true`, `proprietary: true`, or `vendor_available:true`. If set to true, two variants will be built separately, one like normal, and the other limited to the set of libraries and headers that are exposed to /vendor modules. The vendor variant may be used with a different (newer) /system, so it shouldn't have any unversioned runtime dependencies, or make assumptions about the system that may not be true in the future. If set to false, this module becomes inaccessible from /vendor modules. Default value is true when vndk: {enabled: true} or vendor: true. Nothing happens if BOARD_VNDK_VERSION isn't set in the BoardConfig.mk
Type: bool
Type: list of strings
list of modules whose object files should be linked into this module in their entirety. For static library modules, all of the .o files from the intermediate directory of the dependency will be linked into this modules .a file. For a shared library, the dependency's .a file will be linked into this module using -Wl,--whole-archive.
Type: list of strings
list of modules that should be statically linked into this module.
Type: list of strings
list of modules that should be dynamically linked into this module.
Type: list of strings
list of modules that should only provide headers for this module.
Type: list of strings
list of module-specific flags that will be used for all link steps
Type: list of strings
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc, libm, and libdl. Set to [] to prevent linking against the defaults.
Type: list of strings
allow the module to contain undefined symbols. By default, modules cannot contain undefined symbols that are not satisified by their immediate dependencies. Set this flag to true to remove --no-undefined from the linker flags. This flag should only be necessary for compiling low-level libraries like libc.
Type: bool
don't link in libgcc.a
Type: bool
-l arguments to pass to linker for host-provided shared libraries
Type: list of strings
list of shared libraries to re-export include directories from. Entries must be present in shared_libs.
Type: list of strings
list of static libraries to re-export include directories from. Entries must be present in static_libs.
Type: list of strings
list of header libraries to re-export include directories from. Entries must be present in header_libs.
Type: list of strings
list of generated headers to re-export include directories from. Entries must be present in generated_headers.
Type: list of strings
don't link in crt_begin and crt_end. This flag should only be necessary for compiling crt or libc.
Type: bool
group static libraries. This can resolve missing symbols issues with interdependencies between static libraries, but it is generally better to order them correctly instead.
Type: bool
list of shared libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
list of static libs that should not be used to build the vendor variant of the C/C++ module.
Type: list of strings
make android::build:GetBuildNumber() available containing the build ID.
Type: bool
Type: list of strings
Type: list of strings
Type: bool
Type: list of strings
Type: list of strings
Type: list of strings
local file name to pass to the linker as --version_script
Type: string
local file name to pass to the linker as -unexported_symbols_list
Type: string
local file name to pass to the linker as -force_symbols_not_weak_list
Type: string
local file name to pass to the linker as -force_symbols_weak_list
Type: string
rename host libraries to prevent overlap with system installed libraries
Type: bool
export headers generated from .aidl sources
Type: bool
export headers generated from .proto sources
Type: bool
version script for this vendor variant
Type: string
Type: bool
list of directories relative to the Blueprints file that will be added to the include path (using -I) for this module and any module that links against this module. Directories listed in export_include_dirs do not need to be listed in local_include_dirs.
Type: list of strings
list of exported include directories, like export_include_dirs, that will be applied to the vendor variant of this library. This will overwrite any other declarations.
Type: list of strings
Type: bool
Default: true
Type: bool
Type: bool
install to a subdirectory of the default install path for the module
Type: string
Type: bool
Type: list of strings
declared as a VNDK or VNDK-SP module. The vendor variant will be installed in /system instead of /vendor partition. `vendor_vailable` must be explicitly set to either true or false together with `vndk: {enabled: true}`.
Type: bool
declared as a VNDK-SP module, which is a subset of VNDK. `vndk: { enabled: true }` must set together. All these modules are allowed to link to VNDK-SP or LL-NDK modules only. Other dependency will cause link-type errors. If `support_system_process` is not set or set to false, the module is VNDK-core and can link to other VNDK-core, VNDK-SP or LL-NDK modules only.
Type: bool
Extending another module
Type: string
Lto must violate capitialization style for acronyms so that it can be referred to in blueprint files as "lto"
Type: bool
Type: bool
Type: bool
Type: bool
Type: bool
Type: string
Type: list of strings
Type: bool
Additional compiler flags to use when building this module for profiling (either instrumentation or sampling).
Type: list of strings
whether to run clang-tidy over C-like sources.
Type: bool
Extra flags to pass to clang-tidy
Type: list of strings
Extra checks to enable or disable in clang-tidy
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
waylandCodegenProperties defines the properties that will be read in from the Android.bp file for each instantiation of the module.
This string gives the command line template to run on each protocol file to wayland_protocol_codegen. The string can contain one or more "$" prefixed variable names for values that can vary. At a minimum you need to use ${location}, ${out} and ${in}
$(location): the path to the first entry in tools or tool_files $(location <label>): the path to the tool or tool_file with name <label> $(in): A protocol file from srcs $(out): The constructed output filename from the protocol filename. $$: a literal $
Type: string
The string to prepend to every protcol filename to generate the corresponding output filename. The empty string by default.
Type: string
The suffix to append to every protocol filename to generate the corresponding output filename. The empty string by default.
Type: string
The list of protocol files to process.
Type: list of strings
The names of any built host executables to use for code generation. Can be left empty if a local script is used instead (specified in tool_files).
Type: list of strings
Local files that are used for code generation. Can be scripts to run, but should also include any other files that the code generation step should depend on that might be used by the code gen tool.
Type: list of strings
The name of the module. Must be unique across all modules.
Type: string
Type: list of strings
emit build rules for this module
Type: bool
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
Type: string
Type: string
whether this is a proprietary vendor module, and should be installed into /vendor
Type: bool
vendor who owns this module
Type: string
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.
Type: 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).
Type: 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`.
Type: 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).
Type: bool
init.rc files to be installed if this module is installed
Type: list of strings
names of other modules to install if this module is installed
Type: list of strings
relative path to a file to include in the list of notices for the device
Type: string
Type: list of strings
Type: list of strings
unbundled_build is a catch-all property to annotate modules that don't build in one or more unbundled branches, usually due to dependencies missing from the manifest.
Type: bool
Type: list of strings
Type: string
treble_linker_namespaces is true when the system/vendor linker namespace separation is enabled.
enforce_vintf_manifest is true when a device is required to have a vintf manifest.
Type: list of strings
Type: list of strings
debuggable is true for eng and userdebug builds, and can be used to turn on additional debugging features that don't significantly impact runtime behavior. userdebug builds are used for dogfooding and performance testing, and should be as similar to user builds as possible.
Type: list of strings
Type: list of strings
Type: list of strings
eng is true for -eng builds, and can be used to turn on additionaly heavyweight debugging features.
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings
Type: list of strings