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
flags passed to aapt when creating the apk
Type: list of strings
list of resource labels to generate individual resource packages
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 Java resources
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
don't build against the default 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 module-specific flags that will be used for jack compiles
Type: list of strings
list of module-specific flags that will be used for dex 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, set to the version of the sdk to compile against
Type: string
if not blank, run jarjar using the specified rules file
Type: string
directories 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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
Type: bool
names of other cc_object modules to link into this module using partial linking
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: 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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
command to run on one or more input files. Available variables for substitution: $(location): the path to the first entry in tools or tool_files $(location
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
extension that will be substituted for each output file
Type: string
command to run on one or more input files. Available variables for substitution: $(location): the path to the first entry in tools or tool_files $(location 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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
installable script to execute the resulting jar
Type: string
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
don't build against the default 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 module-specific flags that will be used for jack compiles
Type: list of strings
list of module-specific flags that will be used for dex 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, set to the version of the sdk to compile against
Type: string
if not blank, run jarjar using the specified rules file
Type: string
directories 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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
installable script to execute the resulting jar
Type: string
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
don't build against the default 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 module-specific flags that will be used for jack compiles
Type: list of strings
list of module-specific flags that will be used for dex 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, set to the version of the sdk to compile against
Type: string
if not blank, run jarjar using the specified rules file
Type: string
directories 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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't build against the default 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 module-specific flags that will be used for jack compiles
Type: list of strings
list of module-specific flags that will be used for dex 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, set to the version of the sdk to compile against
Type: string
if not blank, run jarjar using the specified rules file
Type: string
directories 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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
don't build against the default 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 module-specific flags that will be used for jack compiles
Type: list of strings
list of module-specific flags that will be used for dex 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, set to the version of the sdk to compile against
Type: string
if not blank, run jarjar using the specified rules file
Type: string
directories 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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't build against the default 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 module-specific flags that will be used for jack compiles
Type: list of strings
list of module-specific flags that will be used for dex 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, set to the version of the sdk to compile against
Type: string
if not blank, run jarjar using the specified rules file
Type: string
directories 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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
The name of the module. Must be unique across all modules.
Type: string
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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", "stlport", "stlport_static", "ndk", "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
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
value to pass to -fsanitize-recover=
Type: list of strings
value to pass to -fsanitize-blacklist
Type: string
Type: bool
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
whether this module should be allowed to install onto /vendor as well as /system. The 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. 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
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
Proto generator type (full, lite)
Type: string
Link statically against the protobuf runtime
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
don't insert default compiler flags into asflags, cflags, cppflags, conlyflags, ldflags, or include_dirs
Type: bool
list of system libraries that will be dynamically linked to shared library and executable modules. If unset, generally defaults to libc and libm. Set to [] to prevent linking against libc and libm.
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
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
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
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
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 device specific and should be installed into /vendor
Type: bool
*.logtags files, to combine together in order to generate the /system/etc/event-log-tags file
Type: list of strings
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
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 is true when a build is a Treble compliant device. This is automatically set when a build is shipped with Android O, but can be overriden. This controls such things as the sepolicy split and enabling the Treble linker namespaces.
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: bool
Type: bool
Default: true
Type: list of strings