Commit graph

153 commits

Author SHA1 Message Date
Cole Faust
189905be98 Add BUILD_BROKEN_USES_SOONG_PYTHON2_MODULES
See other cl in this topic for more details.

Bug: 203436762
Test: m nothing
Change-Id: I76725afece50a022aec611091ef4dead5ad3449a
2023-03-09 11:55:29 -08:00
Erick Alvarez
2b8cf0e409 Revert "Disable dexpreopt for aosp_riscv64"
This reverts commit e325f61525.

Reason for revert: DroidMonitor-triggered revert due to breakage in some branches.

Bug: 270958097
Change-Id: I2c3bb568c7f3b0dc7a364ea74b91574966102ff3
2023-02-27 20:39:14 +00:00
Ulya Trafimovich
e325f61525 Disable dexpreopt for aosp_riscv64
dex2oat isn't supported for riscv64 yet, disable dexpreopt.  For
aosp_riscv64-user and -userdebug builds it is also necessary to
relax the requirement that dexpreopt is enabled.

Test: trehugger
Change-Id: Ib84f1b40675783d286f4ff89d3c1daa9c7be710a
2023-02-24 14:09:10 +00:00
Yi-Yo Chiang
06c6273073 Remove deprecated BOARD_BUILD_SYSTEM_ROOT_IMAGE
This variable is always false or empty now, so clean up remaining
references of the variable.

Remove "buildvariant=" kernel commandline as it was used by
system-as-root kernels to determine the system build variant. It is
unsupported now.

Bug: 241346584
Test: Presubmit
Change-Id: I0f97b6e0bf8b03429f65366119ff78f9c7983516
2022-10-13 16:08:53 +08:00
Alix Espino
38e07f1baf Revert "Revert "Default BuildBrokenClangCFlags & BuildBrokenCla..."
Revert^2 "deletion of clang_cflags & clang_asflags from Soong"

e9a6865bc7c51028ed348f6d1c6b975ee8b98837

Test: Treehugger
Change-Id: Ibda75c075d0d88f2c11fd10722c9a74481ee965a
2022-09-21 16:45:00 +00:00
Treehugger Robot
fef5ca53fa Merge "Revert "Default BuildBrokenClangCFlags & BuildBrokenClangAsFlag..."" 2022-09-12 21:06:12 +00:00
Alix Espino
65f28793ab Revert "Default BuildBrokenClangCFlags & BuildBrokenClangAsFlag..."
Revert "deletion of clang_cflags & clang_asflags from Soong"

Revert submission 2154033-delete clang_cflags clang_asflags

Reason for revert: Broke build on git_tm-dev-plus-aosp and downstream branches

Reverted Changes:
I5c499a37e:Default BuildBrokenClangCFlags &  BuildBrokenClang...
Ic1d90b72d:deletion of clang_cflags & clang_asflags from Soon...

Change-Id: I62480972e5cd6cfe01782068b25893222a8edf79
2022-09-12 18:51:23 +00:00
Alix Espino
2227e61a04 Merge "Default BuildBrokenClangCFlags & BuildBrokenClangAsFlags to empty (false)" 2022-09-12 15:11:20 +00:00
Pierre-Clément Tosi
cb1d31c43b core: Drop support for BOARD_PREBUILT_PVMFWIMAGE
Remove the variable as it was only used when the prebuilt was
device-specific but pvmfw is now part of AOSP.

Bug: 237371962
Test: m $(realpath --relative-to=. $ANDROID_PRODUCT_OUT/pvmfw.img)
Change-Id: I5b4c1ffd563e3dccf22ee485cb12866355f5bfe0
2022-09-09 19:15:30 +01:00
Alix
8b7da27e22 Default BuildBrokenClangCFlags & BuildBrokenClangAsFlags to empty (false)
Set up BUILD_BROKEN flags so partners can bypass errors
from using them

Bug: 226636335
Test: m nothing & treehugger
Change-Id: I5c499a37e206bdf89c5c9f84c6ecfe1cdc9a1803
2022-09-07 15:30:01 +00:00
Alix
7a4d539e75 Default BuildBrokenClangProperty to empty (false)
Clang property is deprecated. Set up a BUILD_BROKEN_CLANG_PROPERTY
flag so partners can bypass errors from using clang.

Change-Id: I7ec19c3d11086046031108ecccba5065c38fa338
Test: m nothing & Treehugger
2022-08-26 20:05:42 +00:00
Jooyung Han
0140dfa4b3 Add WIFI_ variables into soong config
To migrate libwifi-hal module from make to soong, WIFI_ make variables
are added to soong config variables in `wifi` namespace.

Bug: 239984067
Test: m libwifi-hal
Merged-In: If60f5909619af887be8e0086a8dfef65dc97cce0
Change-Id: If60f5909619af887be8e0086a8dfef65dc97cce0
(cherry picked from commit 4abb3d43b4baf74cf7b17fee380d5b4c77a2bc9d)
2022-08-03 17:46:07 +09:00
Vinh Tran
3fae6fe0db Default BuildBrokenDepfile to empty (false)
Test: The builds should still pass because all depfile is cleanup in
AOSP
Bug: 179452413

Change-Id: Ifb6f5320f72c3beb44ddd6654100645e0a62e659
2022-06-27 12:05:11 -04:00
Cole Faust
127115190b Remove RBC_BOARD_CONFIG
Always enable the rbc board config along with
the product config now that board config works
well.

Bug: 231224938
Test: Presubmits
Change-Id: I52a79d53dfe54878477ee015bd21863c4cee6b05
2022-05-02 14:16:04 -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
Cole Faust
08e78b9fa4 Update paths to mk2rbc/rbcrun
They're now directly under the out folder instead
of out/soong.

Bug: 226677850
Test: Manually
Change-Id: I6f2d017736323a5a60b0a8d7face723862c0b0b3
2022-03-24 17:32:39 -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
Liz Kammer
4065e5b268 Introduce BUILD_BROKEN_INPUT_DIR_MODULES
Allows allowlisting modules that can temporarily continue to use a
directory as an input while some module types restrict their allowed
inputs.

Test: CI
Change-Id: Ic968a6f6efad45b6c1095dd214813e326d7493c1
2022-02-23 13:59:19 -05:00
Cole Faust
1bcdd24ad9 Pass --makefile_list to rbc board configuration
So that mk2rbc will just read from the file instead
of searching the source tree for makefiles.

Bug: 213508006
Test: m RBC_BOARD_CONFIG=1 nothing
Change-Id: I6b7e2aa000ad9861173c58cc06f6d49c9c11a0a7
2022-02-07 15:17:55 -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
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
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
c8c516a89b Strip ODM_MANIFEST_SKUS
Otherwise it gets a different value when using starlark
board config, causing the ninja files to differ.

Bug: 201700692
Test: ./build/bazel/ci/rbc_regression_test.sh -b aosp_crosshatch_car-userdebug
Change-Id: I55870f031b779202db720f10d7d502f9d868e1f6
2021-12-09 10:30:19 -08:00
Cole Faust
f1f49bb910 Pass input variables to product config
Passing variables via a makefile instead of
rblf_cli / rblf_env allows us to give them correct
types while converting the makefile to starlark,
as opposed to the variables always being strings
when given via rblf_cli / rblf_env.

This also allows us to remove some hand-converted
starlark code.

Bug: 201700692
Test: ./out/soong/rbcrun ./build/make/tests/run.rbc
Change-Id: I58c4f20b29171c14e5ae759beb26a849426f6961
2021-12-02 20:47:31 -08:00
Cole Faust
29bb6132c8 Strip more board config variables
These variables' values show up in the command line
of certain build commands, so they need to be stable
to have stable ninja files.

The starlark board configuration strips these variables,
causing a discrepency between the starlark and make
versions of board configuration.

Bug: 201700692
Test: ./build/bazel/ci/rbc_regression_test.sh beagle_x15-userdebug
Change-Id: Id053435409821a3fe5997c07610ef835e0c83112
2021-11-30 14:00:57 -08:00
Cole Faust
be6d5f13b2 Exclude predefined variables from board config
mk2rbc has a few predefined variables that can't be
set in the product/board config makefiles, unless they're
set to their predefined values. Exclude these variables
from the board config input variables so that they don't
conflict.

Bug: 201700692
Test: m RBC_BOARD_CONFIG=1 mainline_system_x86_64-userdebug (ninja files differ still but this fixes a compilation error)
Change-Id: Idc11b2c5029d28116236b289ad1f09afaaf83cc3
2021-11-23 16:45:29 -08:00
Sasha Smundak
7dc8f486c2 Update conversion results file only when it changed.
Test: treehugger
Change-Id: Ia0d6bf614fa0714a977b2880f7271d54df034366
2021-11-18 15:17:59 -08: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
Yi-Yo Chiang
ffb366ee99 Revert "Renames boot-debug-*.img in GSI targets"
This reverts commit a2a5db4466.

Reason for revert: original change was obsoleted by
  I3161e42b00a93177a1a4cb3b22da2218d294b7a7

Bug: 202129499
Test: Presubmit; change should be noop
Change-Id: Ib7be1ed73dbf08758276666f8ce35ed9cbf18a36
2021-10-18 06:33:51 +00:00
Pierre-Clément Tosi
88cceca4c5 Merge "Introduce BOARD_PVMFWIMAGE_PARTITION_SIZE" 2021-10-15 06:44:04 +00:00
Pierre-Clément Tosi
b3be181687 Merge changes from topic "default-pvmfw-image"
* changes:
  Add generic board-agnostic pre-built pvmfw.img
  Add framework for building the pvmfw.img partition
  Stop assuming that pvmfw.img can only be pre-built
2021-10-06 07:25:01 +00:00
Pierre-Clément Tosi
592a3ca91b Introduce BOARD_PVMFWIMAGE_PARTITION_SIZE
Rename the BOARD_PVMFWIMG_PARTITION_SIZE variable to follow the format
used by all other partitions: BOARD_$(name)IMAGE_PARTITION_SIZE. Note
that all boards using that variable should have been updated to also
define the new version, by now.

Define the new variable as board read-only, as done for other
partitions.

Bug: 199717422
Test: m ${ANDROID_PRODUCT_OUT}/pvmfw.img
Change-Id: I5664c903db6388458e906e996115b695220932ca
2021-10-04 14:20:49 +02:00
Pierre-Clément Tosi
fa8193c0e9 Add framework for building the pvmfw.img partition
Adapt the variables necessary for building pvmfw.img by following what
was done for other Android partitions and introducing:

 - PRODUCT_BUILD_PVMFW_IMAGE
 - BUILDING_PVMFW_IMAGE
 - BUILT_PVMFWIMAGE_TARGET

Replace the manual 'cp' by the more common 'copy-one-file'.

Bug: 199831815
Test: m ${ANDROID_PRODUCT_OUT}/pvmfw.img # with TARGET_PKVM_ENABLED=true
Change-Id: I5e4bbcbdbf4b96281ee54631938f097e9744883c
2021-10-04 11:41:34 +02:00
Pierre-Clément Tosi
88648d33c9 Stop assuming that pvmfw.img can only be pre-built
Introduce the BOARD_USES_PVMFWIMAGE variable, similarly to all other
partitions, and use it where appropriate (in particular, where the
soon-to-be incorrect assumption that pvmfw.img could only be a pre-built
board image was made).

Bug: 199717422
Test: m ${ANDROID_PRODUCT_OUT}/pvmfw.img # with TARGET_PKVM_ENABLED=true
Change-Id: I8f4faa78c741d29b473303b521834387dbd48cd1
2021-10-04 11:37:19 +02:00
Cole Faust
e5e7a2d531 Add RBC board configuration
This does largely the same thing as in product configuration,
it converts the board makefiles and evaluates them in place
of an $(include).

Bug: 201700692
Test: Temporarily replace the ifndef RBC_BOARD_CONFIG with RBC_PRODUCT_CONFIG,
      then ./build/bazel/ci/rbc_product_config.sh aosp_arm64-userdebug
Change-Id: I91c3dd6b91cf6bfeb18a5fff95d53b7a2c113c57
2021-10-01 17:56:54 -07:00
Yi-Yo Chiang
710e74588b Merge "Refactor build logic of boot-debug & vendor_boot-debug" 2021-10-01 01:35:23 +00:00
Yi-Yo Chiang
4d7c613c58 Refactor build logic of boot-debug & vendor_boot-debug
Add PRODUCT variables
  PRODUCT_BUILD_DEBUG_BOOT_IMAGE
  PRODUCT_BUILD_DEBUG_VENDOR_BOOT_IMAGE
as toggles to enable/disable building boot-debug & vendor_boot-debug.

Bug: 200945738
Test: m bootimage_debug
Change-Id: Ic032b8594f776f911d7b6345a97d64fed930d890
2021-09-30 18:32:55 +08:00
Cole Faust
e96edc34ce Fix parsing issues in board_config.mk
Soong's "androidmk" makefile parser couldn't parse
board_config.mk due to these issues.

Fixes: 201440410
Test: Manually
Change-Id: I2dc298fb969a140e14f704a8c9f9f2ec98be7bc0
2021-09-28 12:43:04 -07:00
Bowgo Tsai
a2a5db4466 Renames boot-debug-*.img in GSI targets
Those boot-debug-*.img is used with `repack_bootimg` for a
vendor_boot-debug.img in VTS setup. It is not for GKI boot.img
release.

  https://source.android.com/compatibility/vts/vts-on-gsi#repacking

Renames boot-debug-*.img to boot-with-debug-ramdisk-*.img to
avoid confusion with the official GKI boot.img release.

Bug: 200878300
Test: `lunch gsi_arm64-user` then `make bootimage_debug`
Change-Id: Ia1f6ba847d5b7409fb7a8534432484d2aa972494
2021-09-23 22:19:52 +08:00
Martin Stjernholm
e2077b5e3b Merge "Move logic to disable flattening in unbundled app mode from Soong to make." 2021-05-26 18:21:44 +00:00
Martin Stjernholm
421990d4a4 Move logic to disable flattening in unbundled app mode from Soong to
make.

Avoids TARGET_FLATTEN_APEX lying about it, so we can trust it in
scripts, e.g. in art/build/apex/runtests.sh.

Test: banchan com.android.art; art/build/apex/runtests.sh
Bug: 179900989
Change-Id: I5d3226047e51a51ee76de2cbfad050e200568655
2021-05-26 11:55:33 +01:00
Bowgo Tsai
cf9ead8972 Support AVB signing for BOARD_PREBUILT_BOOTIMAGE
Devices using GKI architecture will use a prebuilt boot.img.
However, we should still sign this prebuilt boot.img with
device-specific AVB keys.

Steps to test the CL.
1. In a device BoardConfig.mk:

   # Uses a prebuilt boot.img
   TARGET_NO_KERNEL := true
   BOARD_PREBUILT_BOOTIMAGE := device/google/redbull/boot.img

   # Enable chained vbmeta for the boot image.
   # The following can be absent, where the hash descriptor of the
   # 'boot' partition will be stored then signed in vbmeta.img instead.
   BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
   BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA4096
   BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
   BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2

2. `make bootimage`, then `avbtool info_image --image $OUT/boot.img`,
    checks the image is re-signed with a device-specific key

3. `make dist` to generate out/dist/TF.zip

4. `unzip out/dist/TF.zip IMAGES/boot.img`

5. `avbtool info_image --image out/dist/IMAGES/boot.img`,
    checks the image is re-signed with a device-specific key

6. `sign_target_files_apks \
      --avb_boot_key=external/avb/test/data/testkey_rsa8192.pem \
      --avb_boot_algorithm=SHA256_RSA8192 \
      --avb_boot_extra_args="--prop test:sign" \
      ./out/dist/*-target_files-eng.*.zip signed.zip`, resign the TF.zip

7. `unzip signed.zip IMAGES/boot.img`, then use `avbtool info_image` to
   check the boot.img is re-signed with the --avb_boot_key in step 6.

Bug: 188485657
Test: above steps
Change-Id: I7ee8b3ffe6a86aaca34bbb7a8898a97b3f8bd801
2021-05-21 08:44:37 +00:00
Bowgo Tsai
610286a88f Moving debug ramdisk resources under / of the ramdisk
Currently the debug ramdisk resources might be under / or
/first_stage_ramdisk of the ramdisk, and is determined by
some BOARD variables, e.g., BOARD_USES_RECOVERY_AS_BOOT,
BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT, etc.

To make a generic boot-debug.img that can work on both devices,
let's move the debug resources always under / of the ramdisk.

Bug: 186082603
Test: boot a device with boot-debug.img
Test: boot a device with vendor_boot-debug.img
Change-Id: I55dc8ff322f6b97e2d6dc1a4ee5935e863f2f835
2021-04-24 08:55:02 +08:00
Yi-Yo Chiang
12f92447a5 Support building recovery as standalone ramdisk in vendor_boot v4
If BOARD_BOOT_HEADER_VERSION >= 4,
BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT is true and
BOARD_INCLUDE_RECOVERY_RAMDISK_IN_VENDOR_BOOT is true, then build
recovery as a standalone ramdisk fragment in vendor_boot image.

The recovery ramdisk would be a vendor ramdisk fragment packaged in
vendor_boot, whose ramdisk_name is "recovery" and ramdisk_type is
"VENDOR_RAMDISK_TYPE_RECOVERY".

Bootloader can omit loading the recovery ramdisk during normal boot to
optimize the size of the initramfs.

Bug: 183395459
Test: Presubmit
Test: Modify BoardConfig of CF and m dist. Verify the vendor_boot.img
  with unpack_bootimg.
Test: Strip the vendor_boot of the recovery ramdisk, and verify that CF
  can boot to normal boot without the recovery ramdisk.
Change-Id: I6e9a2781ec87aece10d4844fa18bbe9a7b4674e6
2021-04-09 12:47:00 +08:00
Yi-Yo Chiang
1519d4351e Refactor vendor_boot v4 build logic and add more checks
Add more checks around BOARD_BOOT_HEADER_VERSION in board_config.mk.

Refactor generation logic of vendor_boot ramdisk fragments.
Consolidate initialization and validation check to its own section.
Adjust some variable names and initialization sequence so the follow-up
change can land more cleanly.
Rename variable name "dir" so that it don't collide with the Makefile
function "$(dir ...)".

Bug: 183395459
Test: Presubmit; Change should be no-op with respect to build artifacts.
Test: Modify BoardConfig of CF and m dist. Verify the vendor_boot.img
  with unpack_bootimg.
Change-Id: I8785c40dd9f87f3797a56ada93e65939d27d0e9b
2021-04-04 20:40:17 +08:00
Yo Chiang
3060ba5048 Merge "Revert^2 "Add option to allow product makefiles to skip building s..."" 2021-03-30 06:29:09 +00:00
Yo Chiang
e86bab474b Revert^2 "Add option to allow product makefiles to skip building s..."
This reverts commit ccfea17fb7.

Reason for revert: Original bug was resolved by updating branch config

Change-Id: I2327092261a2147fa8f2be3d878db04228e65511
2021-03-25 10:12:28 +00:00
Bowgo Tsai
099a7c40a7 GKI: put debugging resources under fisrt_stage_ramdisk subdir.
For consistency with android-11 GKI boot-debug.img, we should
put debug resources under the 'fisrt_stage_ramdisk' dir. This is
needed for devices with `androidboot.force_normal_boot=1` in the
kernel cmdline, where init will chroot into /fisrt_stage_ramdisk.

For devices without force_normal_boot, they still can use their
vendor_boot-debug.img for debugging purpose.

Bug: 183670217
Test: `make bootimage_debug`, then use unpack_bootimg and
      `lz4 -d -c ramdisk | toybox cpio -i` to unpack the ramdisk
      for inspection.
Change-Id: I0a79440dafd091141a1203a2c2c7be5bc1bfc836
2021-03-25 14:24:09 +08:00
Tianjie Xu
ccfea17fb7 Revert "Add option to allow product makefiles to skip building s..."
Revert submission 1644988-nextgen-release-img-zip-cleanup

Reason for revert: b/183654818
Reverted Changes:
I2474e5fd6:Nextgen release: Don't build super_empty.img
I549439528:Add option to allow product makefiles to skip buil...

Change-Id: I711d1c288eed17686b048144d8d41c0fdd5cd8e1
2021-03-25 05:00:12 +00:00
Yi-Yo Chiang
ba959a5ff1 Add option to allow product makefiles to skip building super_empty.img
This change doesn't change the condition for building super_empty.img,
it just add a toggle PRODUCT_BUILD_SUPER_EMPTY_IMAGE that product
makefiles can use to skip building super_empty.img.
Products that don't use super_empty at all, for example GSI, can set
this option to ensure the super_empty.img is not built.

Bug: 183068624
Test: "m dist" on GSI and check the build artifacts under OUT and DIST
  directories, and check the contents of *-img-*.zip
Change-Id: I54943952873d2d297fd9d18cbe14742bc12ae9c6
2021-03-24 05:35:10 +00:00