Existing BoardConfig.mk variable:
BOARD_BUILD_VENDOR_RAMDISK_IMAGE := true
generates:
out/target/product/<name>/vendor_ramdisk.img
Extend the above to additionally generate:
out/target/product/<name>/vendor_ramdisk-debug.img
as the two ramdisks should be built together.
Test: make
Change-Id: Ief572e30c9225d0f5569e9ff89096c69accafc7f
product is used with ART prebuilts.
The prebuilt packages in packages/modules/ArtPrebuilt don't get
Android.mk entries in the `generic` product (as opposed to e.g.
`aosp_arm`), so the enforce-product-packages-exist check fails there.
Exclude the ART APEX modules from the check as a workaround. It's also
necessary to remove the check for superfluous allow list entries, since
which modules are actually missing depends on many other variables (see
runtime_libart.mk).
Test: m nothing TARGET_PRODUCT=generic \
SOONG_CONFIG_art_module_source_build=false
Bug: 172480615
Bug: 182105280
Change-Id: Id67278615f3e7c64c7658bbf1b2aa71ed6b381da
Do NOT touch build_number.txt if BUILD_NUMBER is explicitly set
but not changed from last build.
Bug: 182221512
Test: BUILD_NUMBER=123 m nothing
Change-Id: Ic88f6e0d2b9767d84e1ec5c826018d1ea08c0fc0
Allow BoardConfig.mk to set:
BOARD_BUILD_VENDOR_RAMDISK_IMAGE := true
to build:
out/target/product/<name>/vendor_ramdisk.img
This is done to support GKI device kernel development.
Kernel developers build vmlinux + DTB + GKI kernel modules locally
and then use kernel build tools to output:
* vmlinux + ramdisk.img => boot.img
* GKI kernel modules + DTB + vendor_ramdisk.img => vendor_boot.img
In other words, kernel developers use ramdisk.img and vendor_ramdisk.img
as prebuilts for building flashable boot.img and vendor_boot.img
directly from the kernel development environment.
Test: make vendorramdisk with BOARD_BUILD_VENDOR_RAMDISK_IMAGE := true
Test: make vendorramdisk with BOARD_BUILD_VENDOR_RAMDISK_IMAGE omitted
Change-Id: Id67839887b6bf608f4a5f13384c551c12ee9fdbd
This adds the configuration necessary to allow the cts_root
test suite to be built.
Bug: 162933947
Test: m cts_root
Merged-In: I4732bf82d3cedc77e30d7fa5eff285d382992853
Change-Id: I4732bf82d3cedc77e30d7fa5eff285d382992853
This adds the configuration necessary to allow the cts_root
test suite to be built.
Bug: 162933947
Test: m cts_root
Change-Id: I4732bf82d3cedc77e30d7fa5eff285d382992853
vendor-ramdisk-debug.cpio.lz4 will be packed into a
vendor_boot-debug.img and usually won't be flashed directly.
Moving it to the intermediate build directory.
Bug: None
Test: make vendorbootimage_debug
Change-Id: I86ea72c7a3484a90286139624408d07ce4bf994c
As we add more partitions, INTERNAL_*IMAGE_FILES variables has grown
and the places where the variables are referenced had to be touched
everytime. This change introduces a new variable
INTERNAL_ALLIMAGES_FILES which concatnates INTERNAL_*IMAGE_FILES, and
replaces the uses of the variables with the new one.
Bug: N/A
Test: m
Change-Id: I62a0f725a0f6999421d04a6261370be9124e62d7
The reason that the jar file depended on modules_to_install was to
collect files from other partitions, not just system. It isn't the
intention to gather fake modules like phony modules and more importantly
their dependencies (LOCAL_REQUIRE_MODULES). This change explicitly
filters out the fake modules to make the intent clearer.
In fact, the jar file depending on fake modules can have a side effect
that overridden modules are installed. It can happen as follows:
PRODUCT_PACKAGES += A B C
LOCAL_MODULE := A
LOCAL_REQUIRED_MODULES := B
include $(BUILD_PHONY_PACKAGE)
LOCAL_MODULE := B
include $(BUILD_XXX)
...
LOCAL_MODULE := C
LOCAL_OVERRIDES_MODULES := B
include $(BUILD_XXX)
modules_to_install is set to
out/target/product/xxx/fake_packages/A-timestamp
out/target/product/xxx/system/.../C
; B is correctly overridden.
But there still is an order-only dependency from A to B which is created
by add-all-target-to-target-required-modules-deps. Unfortunately,
overridden isn't take into account here.
So, if the jacoco jar file depends on modules_to_install, both B and C
are installed. And if the creation of system.img happens later, the two
are included together, which is an error.
A preferred way of fixing this is to amend
add-all-target-to-target-required-modules-deps so that override is take
into account. However, it will likely to require more Make tricks. This
change takes a much easier path; pruning the fake packages from the
dependencies so that its dependencies which might be wrong can't be
installed.
Bug: 175400393
Test: build/soong/soong_ui.bash --make-mode SKIP_ABI_CHECKS=true
SOONG_COLLECT_JAVA_DEPS=true TARGET_PRODUCT=cf_x86_phone
TARGET_BUILD_VARIANT=userdebug
TARGET_USERDATAIMAGE_PARTITION_SIZE=17179869184 droid dist
DIST_DIR=out/dist EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true
CLANG_COVERAGE=true NATIVE_COVERAGE_PATHS="*"
NATIVE_COVERAGE_EXCLUDE_PATHS="art bionic/libc device"
continuous_instrumentation_tests continuous_native_tests device-tests
platform_tests
No com.android.art.apex in system.img
Change-Id: Ie8a917b7c3985c3a4f19372a4430accd84124e83
Revert "Export soong license data to make."
Revert "Add ability to declare licenses in soong."
Revert submission 1377717-metalics
Reason for revert: This has broken renderscript_mac target for aosp-master, see b/176909442
Reverted Changes:
I26ac54ca9:Define the standard license_kind rules.
I656486070:Export soong license data to make.
If9d661dfc:Export soong license data to make.
I97943de53:Add ability to declare licenses in soong.
Icaff40171:Rough-in license metadata support to make.
Ib8e538bd0:Add variables for notice deps, license kinds etc.
Change-Id: I1f672e6e8ec48f0141bb4b6cc4eb2efed1eeef6b
Revert "Export soong license data to make."
Revert "Add ability to declare licenses in soong."
Revert submission 1377717-metalics
Reason for revert: This has broken renderscript_mac target for aosp-master, see b/176909442
Reverted Changes:
I26ac54ca9:Define the standard license_kind rules.
I656486070:Export soong license data to make.
If9d661dfc:Export soong license data to make.
I97943de53:Add ability to declare licenses in soong.
Icaff40171:Rough-in license metadata support to make.
Ib8e538bd0:Add variables for notice deps, license kinds etc.
Change-Id: Iaf2243cba16f6191b022371a14f81ef8194a47d1
The patch rename the original ro.product.cpu.abilist* to
ro.system.product.cpu.abilist*. The property service will
define ro.product.cpu.abilist* by the intersect ABIs of
ro.{partition}.product.cpu.abilist*.
Bug: 176520383
Test: build aosp_arm64-userdebug and check the system/build.prop
Change-Id: I26e404632b28e9f6abd462920e0084ad2022a763
If that happens it will be left out entirely.
It would be nice to catch this on the Soong level, but there are
several separate code paths there so this ensures it isn't missed.
Test: `m nothing` with packages/modules/ArtPrebuilt/Android.bp that
had this mistake
Bug: 172480615
Change-Id: I2d31679b2ca5b57bf14f35703c10093275209890
Add a new TARGET_ARCH_SUITE which, when set to 'mainline_sdk' or 'ndk',
sets `Aml_abis: true` in soong.variables.
This is required to enable removing the custom soong.variables that
are being maintained for the ndk and mainline sdk builds.
Bug: 174315599
Test: TARGET_ARCH_SUITE=mainline-sdk m nothing; inspect soong.variables
(ditto for ndk)
Change-Id: Ib651a637457310270840d721cdccf50bede3ee58
main.mk was a bit cluttered/difficult to follow wth all the indents. Put
the logic in a separate file instead.
Test: m nothing
Change-Id: I545bcd117a6bcd33b520ad279be1bab9b2d89393
It was in the middle of some other logic in main.mk
Put it in Makefile instead next to the other "information" dist txt
files.
Test: make and diff certificate_violation_modules.txt
Change-Id: I5b73a0f89ccf3de69e7608a0568d2b4b6f37e98c
Add installed-files-vendor-ramdisk.txt build artifact, so that it is
easy to see what files landed on the vendor ramdisk.
Test: clean build, inspect installed-files-vendor-ramdisk.txt
Change-Id: Ie84d06dc968ad972ab2bfa79db4d1839ba09e09f
It's mandatory for devices launching with Android P or later.
Some makefiles still depend on PRODUCT_COMPATIBLE_PROPERTY, so rather
than aggressively removing all codes, this forces
PRODUCT_COMPATIBLE_PROPERTY to be true.
Bug: 170082975
Test: m
Change-Id: I49dab8d573c21781e6295a8581a5ad2944e165d7
Fix a bug where if module A requires module B, and for whatever reason
module A and B have some common installed files, then all required
dependencies of the common files would be lost.
For example:
```
# A requires B
ALL_MODULES.A.INSTALLED := a
ALL_MODULES.B.INSTALLED := a b
```
Right now the build system wouldn't generate any dependency for `a`.
However the correct behavior should be: `a` has a order-only dependency
on `b`.
Bug: 157444528
Test: Check generated build-*.ninja
Change-Id: Iec60231f6597ec46077393d1defa109b9c07b208
Many partners have asked for platform support of system-only update.
So we config cuttlefish as an example to support the partial ota
updates. Also make such package available on the build server.
This allows continuous test to ensure the e2e update flow is working.
Bug: 170921953
Test: generate & apply a partial update, check output in presubmit
Change-Id: I79d0abeb1b2be18e6ff88f0455b6de6540a37794
Add a build.prop file for ramdisk. Properties uses the
name ro.[product.]bootimage*.
These ro.[product.]bootimage.* properties are also included in recovery
properties.
The file is installed to system/etc/ramdisk/build.prop under ramdisk.
On devices with dedicated recovery partition, the file is
installed to ramdisk/, which is installed to the ramdisk in the boot
image. The file is NOT installed to recovery/root to prevent
collision.
On devices with recovery_as_boot, in addition to ramdisk/, it is also
installed to recovery/root, which is installed to the ramdisk in the
boot image.
Test: m bootimage and inspect output
Bug: 169169031
Bug: 162623577
Bug: 170411692
Bug: 170364317
Change-Id: Ica6515b2a4e0f4a7fe4440434a3d7085fde64387
Add a build.prop file for ramdisk. Properties uses the
name ro.[product.]bootimage*.
These ro.[product.]bootimage.* properties are also included in recovery
properties.
The file is installed to boot/etc/build.prop under ramdisk.
On devices with dedicated recovery partition, the file is
installed to ramdisk/, which is installed to the ramdisk in the boot
image. The file is NOT installed to recovery/root to prevent
collision.
On devices with recovery_as_boot, in addition to ramdisk/, it is also
installed to recovery/root, which is installed to the ramdisk in the
boot image.
Test: m bootimage and inspect output
Bug: 169169031
Bug: 162623577
Change-Id: I94b993ce3214356036d038b6db57c4e1b755c111
Modules partition is a dynamic read-write partition.
- AVB is not enabled on the partition
- OTA is file-based; see follow up CL for details
- No build prop files; in particular, no build fingerprint
- No fs_config
- No notice files; notice files are included in individual APEXes
Test: build on CF
Bug: 163543381
Change-Id: Ie397b9ec61dfd1c158450d050196024604854d4d
Previously, HOST_CROSS_OS/ARCH were fixed to windows/x86. This change
makes the setting configuration and adds the support for new OS/ARCH
combo: linux_bionic/arm64.
linux_bionic is the Linux-based host target that uses Bionic (instead of
glibc) as libc. Previously, it supported only x86_64 and the x86_64
target was NOT configured via Make, but directly via editing
soong.variables file. Now, the support for arm64 is being added in the
Soong side and this change makes it possible to configure the target via
Make.
The new HOST_CROSS_OS/ARCH combo will be used for building the host-side
tools (adb, crosvm, etc.) for running Cuttlefish natively on Linux/ARM
hosts.
Bug: 159685774
Test: HOST_CROSS_OS=linux_bionic HOST_CROSS_ARCH=arm64 m nothing
Change-Id: I6b8ed8f7e26908749bbe778fbdcc34cfbde68179
It isn't doing anything useful that would be necessary to reparse the
Makefiles for.
Test: m target-files-package
Change-Id: I3aa2490480de8dbe0e57fe36221088c3f18017cb
Merge all the proguard_usage.zip files produced by the R8 rules and
dist the result.
Bug: 151857441
Test: m TARGET_BUILD_APPS=DocumentsUI dist
Change-Id: I7e6d73241478016093a203dc7bd86407ab86a4ac
ASAN SANITIZE_TARGET build may have missing dependencies due to
executables being skipped, thus bypass the required module check.
https://source.android.com/devices/tech/debug/asan#sanitize_target
Also streamline the bypassing logic.
Fix: 163802658
Test: TH
Test: lunch aosp_cf_x86_pasan-userdebug &&
m SANITIZE_TARGET=address nothing
Change-Id: Ia43c942ce7eae718bf6fcd254307535e418a70e7
This hasn't worked for a couple years, and continues to bitrot. Just
remove it.
Test: treehugger
Change-Id: Iea6caf3c08252a560155e095135c5ddaad712991
Merged-In: Iea6caf3c08252a560155e095135c5ddaad712991
Now that they're defined with prebuilt_build_tool, we don't need to set
them here.
In future changes we can replace more of these definitions with
prebuilt_build_tool, as it can centralize the selection of
build-from-source or prebuilt for Make, Soong, and user-defined
genrules.
Test: treehugger
Change-Id: I5821bbad1b655d561919245320d7c184a6eac737
This will let us quickly check the system image build type,
and modify *.rc behavior based on that.
Bug: 142430632
Test: adb shell getprop ro.sanitize.hwaddress in hwasan build
Change-Id: Id1738ebc94a7c29ea9902a063f5d8dd6deb48f1b
The prop list the name of the a/b partitions that are supposed to
update via an OTA. The list varies by product, and update engine
needs to know these partitions to install the GKI update correctly.
Test: build and check the property
Change-Id: I5258955a5c3303bdc61b97fc92f5dfa1905f7c37
This reverts commit 3e1c9115d1.
Reason for revert: broke builds where makefiles were using M4 without depending upon it
Change-Id: Ib2deef08255656b91cb8ec42f1cb7e9555364f23
Revert "Track allowed transitive deps in any updatable module."
Revert submission 1312796-apex-allowed-deps
Reason for revert: b/161974327
Reverted Changes:
I52a4be72e:Add a check for apex/allowed_deps.txt to droidcore...
I56771ba3f:Track allowed transitive deps in any updatable mod...
Change-Id: I20ad7bf2001e76b5e3ca4aaf3baa5318e270f3dc
The check ensures that build graph for updatable modules contains only
allowed dependencies at build time.
Bug: 149622332
Test: m
Change-Id: I52a4be72efaa523d53827dd11822a7802543dd10
Merged-In: I5695dd1003386191dbbe0ea511ef5b615d0d5e4e
Exempt-From-Owner-Approval: cp
Android S would not support upgrade from O-MR1 devices, so VNDK Lite
configuration is no more valid. This change removes all VNDK-Lite
related steps and makr BOARD_VNDK_RUNTIME_DISABLE as deprecated
variable.
Bug: 158719241
Test: m -j passed
Change-Id: Ifb355da936933843862426e7ddfce9c7f69cea61
Merged-In: Ifb355da936933843862426e7ddfce9c7f69cea61
Now that they're defined with prebuilt_build_tool, we don't need to set
them here.
In future changes we can replace more of these definitions with
prebuilt_build_tool, as it can centralize the selection of
build-from-source or prebuilt for Make, Soong, and user-defined
genrules.
Test: treehugger
Change-Id: I4bb526492ebc6270b6030913c1f5b3f49dc61284
* changes:
Create $OUT/{vendor,odm}/lib before symlink modules
Add odm_dlkm/etc/build.prop
Install ODM dlkm to appropriate place and symlink
Add notice files for odm_dlkm
Add odm_dlkm partition.
In the concept of system/vendor build split, usually vbmeta.img
won't be built in a system-only build and/or a vendor-only build.
Instead, vbmeta.img will be generated later when combining system
and vendor artifacts.
- system-only artifacts: system.img, system_ext.img,
product.img and vbmeta_system.img
- vendor-only artifacts: boot.img, vendor.img, odm.img and
vbmeta_vendor.img
PRODUCT_BUILD_VBMETA_IMAGE can be used to disable building vbmeta.img.
However, it also disables vbmeta_system.img and vbmeta_vendor.img
generation because both are only depended by vbmeta.img.
This change adds both vbmeta_[system|vendor].img into droidcore,
so they will be built even if PRODUCT_BUILD_VBMETA_IMAGE is set
to false, when we're building system-only artifacts or vendor-only
artifacts.
Bug: 161425613
Test: sets PRODUCT_BUILD_VBMETA_IMAGE := false then build, checks
vbmeta_system.img is generated but vbmeta.img is not.
Change-Id: I39d9819da4704195b0e1ee58d13c848ae97d474a
Dump $(modules_to_install) instead of $(product_target_FILES) to get a
more complete list of target files.
Use `echo $(modules_to_install) | tr -s ' ' '\n'` instead of
`$(foreach m,$(modules_to_install),$(info $(m)))`.
This way only one `echo` command is emitted instead of emitting `echo`
command for each file. This speeds up the invocation speed tremendously.
Bug: 159195410
Test: m dump-files
Change-Id: I06549cecc64177f1eb5a01e31a55d5eed307fcfd
Dist the transitive lint report for each unbundled app built by Soong
when lint-check is on the command line.
Bug: 153485543
Test: m TARGET_BUILD_APPS=Gallery2 lint-check dist
Change-Id: Icd2b6f884396fa5f743746099301c325ca82a324
All known uses of environment variables `COVERAGE_PATHS` and
`COVERAGE_EXCLUDE_PATHS` (in AOSP and downstream branches) have
been replaced with `NATIVE_COVERAGE_PATHS` and
`NATIVE_COVERAGE_EXCLUDE_PATHS` (resp.).
This reverts commit 62d9912677.
Reason for revert: The cause of the build breakages caused by the
initial change has been addressed.
Test: m nothing
Test: Check that `m nothing COVERAGE_PATHS=art` fails.
Test: Check that `m nothing COVERAGE_EXCLUDE_PATHS=art` fails.
Test: Check the Android Build for build errors related to these variables.
Bug: 158212027
Bug: 160769227
Change-Id: Ic267e1b61e84bc6f016a3eb57efe7f9b859adb42
All known uses of environment variables `COVERAGE_PATHS` and
`COVERAGE_EXCLUDE_PATHS` have been replaced with
`NATIVE_COVERAGE_PATHS` and `NATIVE_COVERAGE_EXCLUDE_PATHS` (resp.).
Test: m nothing
Test: Check that `m nothing COVERAGE_PATHS=art` fails.
Test: Check that `m nothing COVERAGE_EXCLUDE_PATHS=art` fails.
Test: Check the Android Build for build errors related to these variables.
Bug: 158212027
Change-Id: Icc7c1d9734e78c2bf327f00f04355700b5476648
add-all-host-to-target-required-modules-deps and
add-all-target-to-host-required-modules-deps permit errors when
ALLOW_MISSING_DEPENDENCY is set to true.
The previous behavior may break when doing unbundled builds.
Bug: 160318430
Bug: 7456955
Test: TH art-target-arm build pass
Change-Id: I00818d27ce18f4072eff9fa98958be820b5cd1f8
Merged-In: I00818d27ce18f4072eff9fa98958be820b5cd1f8
(cherry picked from commit 2c7c8bb657)
Previously, only system/build.prop was registered as dist out. This
change adds build.prop in the other partitions to the dist out. This
will allow us to examine those build.prop files without downloading
the entire target-files.zip file.
Bug: 117892318
Test: examine the dist out
Change-Id: I6f4ba16d765336a57f0da90edba788a627f25e60
Add select-bitness-of-target-host-required-modules that resolves module
bitness for TARGET_REQUIRED_FROM_HOST and HOST_REQUIRED_FROM_TARGET.
Also re-indent select-bitness-of-required-modules.
Bug: 7456955
Test: TH
Test: compare value of ALL_MODULES.<*>.*_REQUIRED_FROM_*
Change-Id: I9483685d8dd528cb1a4ef1e2ec53cbe2caa598a4
Update parsed NDK api xml file directory name.
Test: m ndk
Forrest test build pass: http://shortn/_E5mhRtD4zW
Change-Id: Ic20780d969e33103c45953c9cdd81efe4262b4a9
The use of environment variables `COVERAGE_PATHS` and
`COVERAGE_EXCLUDE_PATHS` has been deprecated since they have been
replaced by `NATIVE_COVERAGE_PATHS` and
`NATIVE_COVERAGE_EXCLUDE_PATHS` (resp.).
Test: m nothing
Bug: 158212027
Change-Id: I1c48dc4da15c630201168cce34edb920960c93d4
Properties for <partition>/build.prop are now added via
PRODUCT_<PARTITION>_PROPERTIES.
PRODUCT_SYSTEM_PROPERTIES is added. PRODUCT_SYSTEM_DEFAULT_PROPERTIES
will be deprecated.
PRODUCT_VENDOR_PROPERTIES is added. PRODUCT_PROPERTY_OVERRIDES and
PRODUCT_DEFAULT_PROPERTY_OVERRIDES will be deprecated in favor of the new
variable.
For other partitions (odm, system_ext, product), there is no change.
Exempt-From-Owner-Approval: cherry-pick from internal master
Bug: 117892318
Test: m
Merged-In: I98f3b5d0da661b3ad75260a23754e655103b7a44
(cherry picked from commit ad810b6dae)
Change-Id: I98f3b5d0da661b3ad75260a23754e655103b7a44
Properties for <partition>/build.prop are now added via
PRODUCT_<PARTITION>_PROPERTIES.
PRODUCT_SYSTEM_PROPERTIES is added. PRODUCT_SYSTEM_DEFAULT_PROPERTIES
will be deprecated.
PRODUCT_VENDOR_PROPERTIES is added. PRODUCT_PROPERTY_OVERRIDES and
PRODUCT_DEFAULT_PROPERTY_OVERRIDES will be deprecated in favor of the new
variable.
For other partitions (odm, system_ext, product), there is no change.
Exempt-From-Owner-Approval: cherry-pick from master
Bug: 117892318
Test: m
Merged-In: I98f3b5d0da661b3ad75260a23754e655103b7a44
(cherry picked from commit ad810b6dae)
Change-Id: I98f3b5d0da661b3ad75260a23754e655103b7a44
Setting this flag enables unbundled building, i.e. without support for
building the system image and other platform targets. This
functionality was previously enabled by TARGET_BUILD_APPS, and setting
that still implies TARGET_BUILD_UNBUNDLED.
This helps unbundled builds that aren't apps, e.g. ART runtest builds.
Specifically, with the topic of the child CL
https://r.android.com/1324517 TARGET_BUILD_UNBUNDLED does not imply
disabling dexpreopting, unlike TARGET_BUILD_APPS.
TODO: There may still be app-specific conditions that are incorrectly
controlled by TARGET_BUILD_UNBUNDLED, in particular on the Soong side
through config.UnbundledBuild().
Test: Flash & boot
Test: TH, in particular builds green on ub-launcher3-master
Bug: 157549171
Change-Id: Ic09fc879117ee06cab5444edfc280ed2b52d2870
These are no longer used by anyone:
* get-32-bit-modules
* get-32-bit-modules-if-we-can
* get-host-32-bit-modules
* get-host-32-bit-modules-if-we-can
Bug: 155869107
Test: TH
Change-Id: I441de7f94061efd40186b80d1a2ead11669a5753
Read out/soong/late-${TARGET_PRODUCT}.mk after reading Android.mk files
to allow Soong's makevars singleton to use $(call dist-for-goals).
Test: m lint-check dist
Change-Id: I7754fd1b8dab508c96ad59beed67f0d6c4ff75f0