Commit graph

1516 commits

Author SHA1 Message Date
Yi-Yo Chiang
70b69de18a Add ro.force.debuggable=0 to ADDITIONAL_SYSTEM_PROPERTIES
This should only be set to '1' by flashing debug boot image,
so default to '0' in system/build.prop.

Bug: 223517900
Test: Boot with and without debug boot image and check value of property
Change-Id: I0e0df7d86a31fd771248433513483e8ad600b5ed
2022-06-10 15:28:31 +08:00
Bob Badour
ba3372439f Create license metadata for copied targets.
Bug: 213388645

Test: m cts dist reportmissinglicenses
Change-Id: I43043e5e7b80d9f3210d6498c215846aec761add
2022-06-02 15:43:08 -07:00
Anton Hansson
55a8f02ea8 Remove unused dependencies from sdk goals
The SDK no longer includes system images, so no longer needs to depend
on targets that are only relevant for the system images.

Remove all the explicit dependencies that end up depending on
"everything" but are not included in the sdk zip.

Two positive side-effects:
- fewer unused things get built (now ~32k targets, down from ~108k)
- apexes no longer get built, eliminating the risk of mismatch between
  module sdk prebuilts and source-built AOSP apexes.

There are some potential risks with this CL:
- because we no longer forcefully rebuild everything, if there are bugs
  in dependencies of exising files in the SDK, incremental builds may
  not rebuild them.
- some files that get built into the SDK may be being built as a
  side-effect of other files included in the SDK, so removing one file
  may cause another to not get built. The solution to that is to add
  the file not getting built to ALL_SDK_FILES.

Bug: 205008975
Test: m sdk sdk_repo dist && diff sdk.zip before/after (identical)
Change-Id: I97284864f66aa88556fbe16864f45b04be97634e
2022-05-12 12:28:49 +00:00
Dan Shi
3e85ca9d4b Allow non-compat suite to locate testcases dir properly
cc_test that can run on hostside are default to be part of
host-unit-tests suite. The suite is set up similar to device-tests and
general-tests, and it's not a compatibility suite. So following variable
will always be empty:
$(COMPATIBILITY_TESTCASES_OUT_host-unit-tests.
It should use HOST_OUT_TESTCASES as testcases dir.

The same logic should be applied to art-host-tests.

Bug: None
Test: build
Change-Id: Ieddacd5157da73c6df473c103be109d9c3a55281
2022-04-28 13:36:36 -07:00
Cole Faust
81f1e92ed8 Remove usages of long-form variables
The long-form variables (PRODUCTS.<makefile>.<variable>)
are used to get information about multiple products.
However, they've never really worked correctly, and so
importing multiple products is deprecated behavior.

Remove as many usages of the long-form variables and
multi-product imports as possible.

Bug: 228518445
Test: Manually
Change-Id: I0b67f16360ff8bdcdb39638de739440472bccf76
2022-04-13 15:49:56 -07:00
Treehugger Robot
ff15a27bd7 Merge "Non-module targets." 2022-04-11 19:42:29 +00:00
Treehugger Robot
7b51e8cbdf Merge changes from topic "colefaust_artifact_path_requirements"
* changes:
  Add artifact path requirement support to Starlark
  Support `m product-graph` in Starlark product config
2022-04-08 17:32:25 +00:00
Bob Badour
3a0f0c157e Non-module targets.
Bug: 151177513
Bug: 213388645
Bug: 210912771

Test: m droid dist reportmissinglicenses

Change-Id: Ia7cddef9748f6c036a2fc7539dad717ebc131f7c
2022-04-07 22:03:29 -07:00
Colin Cross
ac7febc9c7 Revert "Revert "Produce mappings of hashes to elf symbols and r8 dictionaries""
This reverts commit 59ecb9e016.

Reason for revert: symbols_map is fixed to ignore non-elf files

Bug: 218888599
Change-Id: I88654b2dba3dfb9ab2809b0555544277279f345d
2022-04-06 01:11:20 +00:00
Cole Faust
2e8bb7989e Add artifact path requirement support to Starlark
Artifact path requirements requires setting some new variables,
and also dumping the state of the product config variables
after evaluating partial products that set artifact path requirements.

Bug: 188079133
Test: Removed the code that disabled artifacts path requirements from the rbc dashboard script,
      and verified that it was still green for aosp_arm64
Change-Id: I228e35285d788f4c83aa695c0f28b7c7db02544c
2022-04-05 16:53:38 -07:00
Cole Faust
0472730380 Support m product-graph in Starlark product config
Bug: 221312856
Test: Manually
Change-Id: Ia3a78df2de356801c83b1ba5c17601acfc026d06
2022-04-05 16:52:23 -07:00
Colin Cross
59ecb9e016 Revert "Produce mappings of hashes to elf symbols and r8 dictionaries"
This reverts commit 3570b3ed86.

Reason for revert: b/228195288

Bug: 218888599
Change-Id: I17b38ca1b6f8940d682f2782515bfd5f8db1ce58
2022-04-05 17:47:27 +00:00
Colin Cross
3570b3ed86 Produce mappings of hashes to elf symbols and r8 dictionaries
Run the symbols_map tool on each unstripped binary and proguard
dictionary while copying it to produce a textproto that maps the
hash to the symbol/dictionary file location.  Combine the textprotos
into a mapping file when producing the zipped build artifacts.

Bug: 218888599
Test: m dist
Change-Id: I78997e2f3b631ed74213903cc8e72415b2d7eee0
2022-04-04 16:04:52 -07:00
Colin Cross
ce3c48db58 Merge changes I084158ff,I2f2ba905,Ic9af8761
* changes:
  Depend on PRODUCT_COPY_FILES that are not in images
  Remove ALL_ORIGINAL_DYNAMIC_BINARIES
  Remove ALL_GENERATED_SOURCES
2022-03-22 22:24:39 +00:00
Colin Cross
79a76ec581 Depend on PRODUCT_COPY_FILES that are not in images
If0e4b958b3dfaa02771a5da70f970379635f904e made `droidcore` stop
depending on `files` so that installed files from unbuilt images
would not be built.  That also disabled the dependency on installed
files that were not in any image, but the vendor notice file had
overly broad dependencies that caused them to still be built.
Icdb11d3c72b180cd02231e8dc98ae500d6566a98 made the vendor notice
file dependencies less broad, exposing the missing `droidcore`
dependencies.

Track the list of installed device files that are not included in any
image, built or unbuilt, and add them as a dependency for `droidcore`.

Bug: 225187583
Test: m checkbuild
Test: check dependency path to encryptionkey.img
Change-Id: I084158ffb52b353e9a3eca9ad06a68c80d3bd371
2022-03-22 09:25:58 -07:00
Lucas Wei
8842016b30 Merge "Make build support vendor_kernel_boot image" 2022-03-22 13:48:34 +00:00
Bob Badour
7358398647 Fix typo -- no _gz on notice file name.
Test: m nothing reportmissinglicenses
Change-Id: I133950489a17d1bd30a7fb3bc1a96ff6699d475b
2022-03-18 12:12:43 -07:00
Bob Badour
dbb8d7a3d4 Apps-only notice file
Bug: 225050939
Bug: 68860345
Bug: 151177513
Bug: 151953481
Bug: 213388645
Bug: 210912771

Test: m alllicensemetadata reportmissinglicenses

Change-Id: I5564c59686277398e05bb59b30d548b2ed678eab
2022-03-17 13:55:15 -07:00
Lucas Wei
f57333f7fc Make build support vendor_kernel_boot image
Add vendor_kernel_boot image for vendors whose bootloader support
extra first stage booting kernel modules ramdisks. This benefit
kernel repo to build kernel-artifacts only image without Andorid
artifacts dependency.

Bug: 214409109
Signed-off-by: Lucas Wei <lucaswei@google.com>
Change-Id: If07218b86a7751b3d452a172610af960f5f9ec74
2022-03-16 23:13:19 +08:00
Treehugger Robot
0835ac67b6 Merge "Change how we set ro.product.first_api_level." 2022-02-23 20:49:14 +00:00
Peter Collingbourne
0e3b095886 Change how we set ro.product.first_api_level.
The goal of this change is to cause ro.product.first_api_level to be
set in /system/build.prop in targets with PRODUCT_FULL_TREBLE=false
(which may be the case for targets without the usual set of
hardware interfaces, such as the mini targets being added in
https://r.android.com/1966051).

Setting ro.product.first_api_level is necessary for devices with newer
kernels to boot because it controls which metadata encryption format
is used, and an old format that is incompatible with new kernels is
used by default (see commit 4073c0b5241b635cb59e9e8a75ddcc783b5a99ce in
system/vold). There also appear to be e.g. bionic tests that check this
property. So it seems reasonable to set it even if PRODUCT_FULL_TREBLE
is false.

To begin with, stop adding it to ADDITIONAL_SYSTEM_PROPERTIES. There's
basically no point in adding it there because it will be filtered
out by the property blocklist for the system partition, whether
PRODUCT_FULL_TREBLE is true or false. This lets us remove the
blocklist entry, which causes ro.product.first_api_level to
appear in /system/build.prop via ADDITIONAL_VENDOR_PROPERTIES on
PRODUCT_FULL_TREBLE=false targets.

Bug: 217455793
Change-Id: I8c07baf9d308ea734ffed5d9b1776b60cdbf3435
2022-02-18 20:03:10 -08:00
Cole Faust
900999973e Sort AB_OTA_PARTITIONS
Some product config makefiles are being refactored for
the conversion to Starlark. In order to test that the
refactor doesn't cause any meaningful change, we test
that the ninja files are the same before/after the refactor.
Currently, they have differences in the order of AB_OTA_PARTIONS,
which shouldn't matter. In order to increase our confidence
and make the ninja files more stable, sort AB_OTA_PARTITIONS
before it's used.

Bug: 220169197
Test: Presubmits
Change-Id: I6a9f9f2990406d810577cf8930416925f2987311
2022-02-17 11:35:27 -08:00
Ramji Jiyani
13a4137929 core & tools: system_dlkm: add dynamic partition
Converts existing static partition support to a
dynamic partition.

Bug: 200082547
Test: TH
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Change-Id: Ifd6d0c2a04e947b16f8b241e99cca594a1d315ae
2022-01-30 08:43:08 +00:00
Devin Moore
4724f77bca Merge "Fix initbootimage .PHONY target" 2022-01-24 15:17:17 +00:00
Nicolas Geoffray
7d0f8dd332 Merge "Revert "Set an empty persist.sys.dalvik.vm.lib.2 to simplify debug apex testing."" 2022-01-24 13:59:48 +00:00
Ramji Jiyani
1065523a5e Add support to build system_dlkm.img
There are 2 choices to build system_dlkm.img for
the system_dlkm partition for Android T launch
devices and must choose one.

1. Use kernel prebuilt system_dlkm.img
   - BOARD_PREBUILT_SYSTEM_DLKM_IMAGE to point image
2. Build from kernel prebuilt system_dlkm_staging
   - PRODUCT_BUILD_SYSTEM_DLKM_IMAGE

Both requires: BOARD_SYSTEM_DLKM_PARTITION_SIZE and
must be 64MB or higher in size (enforced via vts).

Bug: 200082547
Test: TH
Test: atest vts_system_dlkm_partition_test
Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
Change-Id: I83435123bd8aa3d04ab8a8b650a95fbab0bc49f2
2022-01-21 21:39:15 +00:00
Devin Moore
35b69f698d Fix initbootimage .PHONY target
This was assigning the INSTALLED_INIT_BOOT_IMAGE_TARGET to bootimage
instead of initbootimage.

Test: m
Bug: 203698939
Change-Id: I5fc6e2296dac8cc35c4d46601fea6ab0ee18fd18
2022-01-20 15:26:47 +00:00
Nicolas Geoffray
4ff406c4a1 Revert "Set an empty persist.sys.dalvik.vm.lib.2 to simplify debug apex testing."
This reverts commit 50930076a2.

Bug: 214049018

Reason for revert: Not needed after all.

Change-Id: Ifbf3053fd70c5880e58136821a2fb8b783c48e2a
2022-01-19 16:22:07 +00:00
Nicolas Geoffray
00a48b3df7 Merge "Set an empty persist.sys.dalvik.vm.lib.2 to simplify debug apex testing." 2022-01-17 12:23:19 +00:00
Nicolas Geoffray
50930076a2 Set an empty persist.sys.dalvik.vm.lib.2 to simplify debug apex testing.
Keep the property for now to keep the ability to toggle on/off the
library we want. If we want to remove this functionality,
we need to cleanup all references to persist.sys.dalvik.vm.lib.2.

Test: build and boot with debug apex
Bug: 214049018
Change-Id: I66c7eb510f5a8b7974391ceafd309fba59a524a1
2022-01-14 16:07:07 +00:00
Yi-Yo Chiang
f282f5521d Add boot*.img to default dist target if PRODUCT_EXPORT_BOOT_IMAGE_TO_DIST
Right now if PRODUCT_EXPORT_BOOT_IMAGE_TO_DIST is given,
  $ m dist bootimage
would copy boot*.img to the dist dir.

After this change, both
  $ m dist  # droidcore
  $ m dist bootimage
would copy boot*.img to the dist dir, the difference is that the latter
builds & copies *only* the boot images.

Bug: 212486689
Test: m dist bootimage
Test: m dist => boot*.img are copied to dist dir
Change-Id: I1c714ce5d75eba93e32078b1ac291a181b05405a
2022-01-11 17:31:16 +08:00
Devin Moore
380d9e445c Build a new init_boot.img that contains the boot ramdisk
This ramdisk used to be in boot.img, and is now placed into this new
init_boot.img instead.
This new image is used for a new init parition to seperate Android
platform artifacts from the kernel artifacts in boot.img.

Test: boot Cuttlefish
Bug: 203698939

Change-Id: Iaaf82486259979ab728730ce72a4e847ae005c18
2021-12-20 20:54:14 +00:00
Cole Faust
985fa48a98 Make starlark board configuration work with sdk_phone_x86_64
The main issue with board configuration up till this
cl was that it didn't have access to the product configuration
variables. Pass those in by dumping the make variables to a
temporary file, which is then converted to RBC, loaded,
and passed to the starlark board config..

Bug: 201700692
Test: build/bazel/ci/rbc_product_config.sh -pb sdk_phone_x86_64-userdebug
Change-Id: I9a4946b970ca43c5b5f53a6c507ad2c1a2eca61e
2021-11-04 16:13:24 -07:00
Colin Cross
23ee375a4a Support generating install rules in Soong
Support moving some install rules into Soong by allowing Soong to
provide a Makefile containing install rules, and by skipping parts
of base_rules.mk when Soong already created an install rule.

The install rules are exported as a Makefile instead of directly
in Soong's build.ninja file so that base_rules.mk can add dependencies
from the `required` property that are hard to resolve in Soong.

Bug: 204136549
Test: m checkbuild
Change-Id: Ife2964d76469b385e90c0c5f6adf21bd2b5e8bf6
2021-10-29 15:43:39 -07:00
Dan Willemsen
349dc07933 Shrink Mac builds
Device builds are no longer supported on Mac, but we do support building
various host tools, including the SDK build-tools and platform-tools
packages. All of these are defined in Soong now, so we stop reading all
the Android.mk files, and defining and depending on the device output
targets.

Bug: 187222815
Test: `m`, `m dist`, etc on Mac
Change-Id: Ibb19756d44f2cbc6948381043115718ffc3f4b7d
2021-10-17 00:28:39 -07:00
Dan Willemsen
39b81cdc7a Remove old build-tools/platform-tools SDK implementation
Since those were the only components of the Windows SDK, this removes a
lot of special casing around that as well.

Bug: 187222815
Change-Id: I2690aadcf78e9ccad43314c8475893e81a2e2735
2021-10-15 14:22:07 -07:00
Yi-Yo Chiang
f93950ae53 Merge changes If929bcf9,I9fb5c7fc am: 747a0c12eb
Original change: https://android-review.googlesource.com/c/platform/build/+/1842716

Change-Id: I0f9bc530c3e2e83b14efcad778870bc0d7795888
2021-10-04 10:00:49 +00:00
Yi-Yo Chiang
747a0c12eb Merge changes If929bcf9,I9fb5c7fc
* changes:
  Dedup build rules of ramdisk-(debug|test-harness).img
  Build vendor_ramdisk[-debug].img if building vendor_boot.img
2021-10-04 09:50:36 +00:00
Howard Chen
8a59680b4f Merge "Make GSI target to export bootimage to DIST" am: c1b9c1d801
Original change: https://android-review.googlesource.com/c/platform/build/+/1839815

Change-Id: Ibac747f40c9a961fbe692f511b2edfef11f07247
2021-10-04 06:59:55 +00:00
Howard Chen
c1b9c1d801 Merge "Make GSI target to export bootimage to DIST" 2021-10-04 06:36:32 +00:00
Yi-Yo Chiang
870ea163c2 Build vendor_ramdisk[-debug].img if building vendor_boot.img
Make vendor_boot.img / vendor_ramdisk.img symmetrical to boot.img /
ramdisk.img.

Bug: 201753847
Test: Build and check vendor_ramdisk[-debug].img
Change-Id: I9fb5c7fca09a77446bd140ca549c2091fc9c6a40
2021-10-01 21:45:34 +08:00
Ulyana Trafimovich
e6a4320cb0 Merge "Remove unused variable SKIP_BOOT_JARS_CHECK." am: 85ed8ef84f
Original change: https://android-review.googlesource.com/c/platform/build/+/1841575

Change-Id: Id9dfc110111e09a3d82d0ae6f76ce943431b8bb6
2021-10-01 07:34:20 +00:00
Ulya Trafimovich
ddec79ce54 Remove unused variable SKIP_BOOT_JARS_CHECK.
The variable is no longer used after https://r.android.com/1737753.

Bug: 189298093
Test: m
Change-Id: I6bcb6735189429551ebca697441f2a1edb5c4dfa
2021-09-30 14:00:34 +01:00
Howard Chen
95339b0d91 Make GSI target to export bootimage to DIST
This is to support a bootimage only target in AB.

Bug: 198363484
Test: lunch aosp_arm64-userdebug; make bootimage dist

Change-Id: I9a32c365f635ec4693675a1969d7a1e684c8f55a
2021-09-30 07:10:05 +00:00
Treehugger Robot
d656f50618 Merge "Stop disting monolithic SDK for Mac SDK builds" am: 1646ba0814
Original change: https://android-review.googlesource.com/c/platform/build/+/1829032

Change-Id: I2bda18219770a634add3716a3de215b8fc41cba6
2021-09-17 06:08:53 +00:00
Dan Willemsen
616e7fd9b6 Stop disting monolithic SDK for Mac SDK builds
The Mac SDK build is being reduced to just the build-tools and
platform-tools packages. I'm still working on refactoring those builds
not to require the monolithic SDK to be built first, but we can at least
stop distributing it (and other related files) now.

Most of these checks can likely go away once the build refactor is
complete, since we'll be able to move away from the `sdk` target to
something more specific. Right now there's a lot of logic around sdk
being in MAKECMDGOALS that I don't want to unravel with the current
build logic.

Bug: 187222815
Change-Id: I1f711ce063170e41078ad4a125bcd77340a1746c
2021-09-16 14:54:38 -07:00
Lukács T. Berki
0dae6f9daa Merge "Remove soong_docs from droidcore." am: f999a9d145
Original change: https://android-review.googlesource.com/c/platform/build/+/1818099

Change-Id: I28685ea07309b5ffebb44bc62149bef8b4dd3d20
2021-09-08 13:39:20 +00:00
Lukacs T. Berki
043f3a1897 Remove soong_docs from droidcore.
soong_docs will be run directly from soong_ui so it won't have a
corresponding Make target.

Test: Presubmits.
Change-Id: Id7abccdf2ea3830edf6043c10b617bddf4f9c86d
2021-09-08 08:24:33 +02:00
Sophie Zheng
a44660f3a6 Merge "API coverage Copy generated API list during building cc_library to cc_apis/" am: 8f863178da
Original change: https://android-review.googlesource.com/c/platform/build/+/1798348

Change-Id: I3cafb348553174a01cb9fc796d7138d30f5943a9
2021-08-25 21:58:02 +00:00
Sophie Zheng
8f863178da Merge "API coverage Copy generated API list during building cc_library to cc_apis/" 2021-08-25 21:42:44 +00:00