Commit Graph

1542 Commits

Author SHA1 Message Date
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
Pirama Arumuga Nainar
5fe798bea0 Merge "Revert "Set a BIONIC_COVERAGE .mk variable"" 2022-01-19 06:03:25 +00:00
Pirama Arumuga Nainar
e6b8497408 Revert "Set a BIONIC_COVERAGE .mk variable"
This reverts commit b1b4e1e38b.

Bug: http://b/194128476

Coverage metrics dropped for ~10 of the 40 modules.  There are also
regressions in mainline when running tests on older platform builds.

Test: presubmit
Change-Id: Ib34f607292cd64e7cb9fe35c59a4f79b46904ab8
2022-01-18 13:09:01 -08:00
Yi-Yo Chiang
44fb3619d1 Android T GKI certification scheme
New scheme is to certify kernel & ramdisk image separately, and
effectively decouple kernel & user space ramdisk image.

Under the new scheme, the --os_version and --os_patch_level boot header
field must be empty in order to maintain consistency.
Instead, these values must be in the vbmeta hash descriptor and
GKI certificate.

The new scheme also validates the image metadata, including the security
patch level.

The 'generic_kernel' certificate is associated with the 'boot' partition
and 'generic_ramdisk' certificate with 'init_boot' partition.

The 'generic_ramdisk' certificate may be packed into the 'boot' image if
product configuration doesn't have 'init_boot' image, this is only for
testing purposes and would be removed eventually.

Bug: 210367929
Bug: 211741246
Bug: 203698939
Test: unpack_bootimg --boot_img boot.img
Test: unpack_bootimg --boot_img init_boot.img
Test: avbtool info_image --image out/boot_signature
Change-Id: Iaf48a6e3d4b97fa6bfb5e1635a288b045baa248f
2022-01-11 15:14:38 +08:00
Pirama Arumuga Nainar
bd7e1a38ba Merge "Set a BIONIC_COVERAGE .mk variable" 2022-01-10 22:36:57 +00:00
Inseob Kim
bfe25fe702 Add sepolicy prebuilt dirs and variables to config
These are used when we build vendor sepolicy against old plat sepolicy.

Bug: 33691272
Test: build
Change-Id: I847108539b3b9d7d25c0fad9eddc017275a564be
2021-12-21 09:50:22 +09:00
Pirama Arumuga Nainar
b1b4e1e38b Set a BIONIC_COVERAGE .mk variable
Bug: http://b/194128476
Bug: http://b/210012154

Set BIONIC_COVERAGE to true if coverage instrumentation is enabled for
bionic/libc.  This is used in system/core/rootdir/Android.mk to set
the default LLVM_PROFILE_FILE environment.

Test: Run tests with this topic and verify coverage still works and also
test memory-mapped coverage (death tests, JNI code in CTS)

Change-Id: I585f3e43dfcb82dd3c211051d354dd79ee77b1fb
2021-12-10 15:29:37 -08:00
Inseob Kim
51c455bdb2 Refactor sepolicy version related codes
1. Move BOARD_SEPOLICY_VERS to build/make/core/config.mk where
PLATFORM_SEPOLICY_VERSION is set.

2. Remove hard-coded versions for the treble tests.

Test: build
Change-Id: Iab338a1f16855205d62312d4247a15ea766be1fe
2021-12-10 18:36:18 +09:00
Treehugger Robot
5a0cef1c00 Merge "Remove 26.0 and 27.0 compat support" 2021-12-02 06:26:58 +00:00
Inseob Kim
e124e3a02d Add 32.0 to PLATFORM_SEPOLICY_COMPAT_VERSIONS
Bug: 206330997
Test: m selinux_policy
Change-Id: Ibbe71843a0ba5677203eabb27690562d55cb057e
2021-11-30 13:44:52 +09:00
Inseob Kim
a6568e00e2 Remove 26.0 and 27.0 compat support
Treble doesn't support T system + O vendor, so removing 26.0 (N) and
27.0 (O) prebuilts and compat files.

Bug: 207815515
Test: build
Change-Id: Ie12737cc5ca8725caf834d9bf1bdfe840ac516c0
2021-11-29 01:29:28 +00:00
Treehugger Robot
372d74a8c9 Merge "Record ALL_DEPS by default." 2021-11-11 04:48:16 +00:00
Jim Tang
5c6410edee Record ALL_DEPS by default.
Abandon the use of RECORD_ALL_DEPS to record ALL_DEPS.

BUG: 204397180

Test: m, and inspect module-info.json.
Change-Id: Iaf35580b52c11ad37017b1fb8e0937b859d3f55b
2021-11-11 10:24:51 +08:00
Treehugger Robot
7bd2d13cde Merge "Fix BOARD_SYSTEMSDK_VERSIONS checks" 2021-11-10 23:38:28 +00:00
Cole Faust
70a886c7ce Add soong_config_get
Having a function to get soong config variables
makes it easier to convert to starlark.

Bug: 201700692
Test: m RBC_PRODUCT_CONFIG=1 RBC_BOARD_CONFIG=1 nothing and check output files
Change-Id: I8627555df10d3f66f6154c00be9f0565076f1f94
2021-11-09 17:09:04 -08:00
Justin Yun
e81ec6960a Fix BOARD_SYSTEMSDK_VERSIONS checks
BOARD_SYSTEMSDK_VERSIONS must be greater than or equal to the minimum
of PRODUCT_SHIPPING_API_LEVEL and BOARD_API_LEVEL. If BOARD_API_LEVEL
is not defined, read BOARD_SHIPPING_API_LEVEL. If both board api
levels are not defined, compare only with PRODUCT_SHIPPING_API_LEVEL.

Bug: 204964200
Bug: 201489975
Bug: 202919753
Test: manual test with different settings
Change-Id: I36fa0b2fed3bca9ebe1baad46ee1dbe8cb1414e3
2021-11-10 00:34:17 +00:00
Colin Cross
bca6483b07 Move tools compiled by Soong to HOST_OUT_EXECUTABLES
Soong now installs native tools to HOST_OUT_EXECUTABLES instead
of SOONG_HOST_OUT_EXECUTABLES.

Also add a cleanspec for SOONG_HOST_OUT to remove old files from
SOONG_HOST_OUT_EXECUTABLES.

Bug: 204136549
Test: m checkbuild
Change-Id: Id18213b9294b6d2cf78f657740c6d5a02733b8ad
2021-11-01 15:03:01 -07:00
Sasha Smundak
c5d5bb424f Better Soong config namespace support makefile macros.
Implement two new macros, `soong_config_set` and `soong_config_append`,
which will eventually replace the existing add_soong_config_xxx. With the
new macros, namespace declaration is implicit, and a value can be appended
to a variable in the namespace.

Bug: 200297238
Test: treehugger

Change-Id: I4ffd21bdb6d93db3b1630703fc5f766649b4152c
2021-10-15 15:39:15 -07:00
Treehugger Robot
72c7768320 Merge "BOARD_SYSTEMSDK_VERSIONS should depend on BOARD_*_API_LEVEL if it exists" am: 9885f2f744
Original change: https://android-review.googlesource.com/c/platform/build/+/1843156

Change-Id: Ib1b20e7c1da4427c30a98d11a2729724ad176be8
2021-10-05 02:02:22 +00:00
Jeongik Cha
fe6ef7c08a BOARD_SYSTEMSDK_VERSIONS should depend on BOARD_*_API_LEVEL if it exists
BOARD_SYSTEMSDK_VERSIONS should be checked by BOARD_API_LEVEL,
BOARD_SHIPPING_API_LEVEL, or PRODUCT_SHIPPING_API_LEVEL in a forward
order.

Bug: 201489975
Test: BOARD_SYSTEMSDK_VERSIONS := 30, PRODUCT_SHIPPING_API_LEVEL := 31,
BOARD_API_LEVEL := 30, and then check if there isn't an error

Change-Id: I00e3bf8dda6e6e87a2daf42c74d703503cbeed1f
2021-10-01 23:30:13 +09:00
Colin Cross
59737777dd Merge "Remove MAINDEXCLASSES" am: e919f2b8b1
Original change: https://android-review.googlesource.com/c/platform/build/+/1833628

Change-Id: I95d200e87eeb41f6eb686ab9913b748ae340a68d
2021-09-23 16:33:21 +00:00
Colin Cross
5a3729b2ba Remove MAINDEXCLASSES
The last user of MAINDEXCLASSES was removed in
Ia88660550c3e57749b8ccb154e97c31aaf2fcf3a.

Test: m checkbuild
Change-Id: I35d9e7d9ff4ac2c07716db59c900b8c3f2cb352e
2021-09-22 15:53:39 -07:00
Colin Cross
05d007ae20 Merge "Propagate USE_HOST_MUSL to Soong" am: ee20ae1a8d
Original change: https://android-review.googlesource.com/c/platform/build/+/1796674

Change-Id: Ie9c9e6ed81a70d699537131a5cd9d77c3f8eca7b
2021-08-26 05:26:46 +00:00
Colin Cross
ee20ae1a8d Merge "Propagate USE_HOST_MUSL to Soong" 2021-08-26 05:12:15 +00:00
Colin Cross
178de6308c Propagate USE_HOST_MUSL to Soong
Support enabling musl in Make builds with USE_HOST_MUSL=true.  Only
modules defined in Soong will use musl, but that's almost all host
modules.

Bug: 195988762
Test: m USE_HOST_MUSL=true adb
Change-Id: Ia88f6e20b302d86f2241877b017aebe218d968cf
2021-08-25 15:07:17 -07:00
Alexander Smundak
8fccb65188 Merge "Fix add_soong_config_namespace/add_soong_config_var macros" am: ed266e5fb8
Original change: https://android-review.googlesource.com/c/platform/build/+/1804317

Change-Id: I2cc898db10140c9a59d9b4376f812d50f147b6d8
2021-08-24 16:18:58 +00:00
Sasha Smundak
4a94bb884a Fix add_soong_config_namespace/add_soong_config_var macros
They were failing with an argument containing whitespace. That is,
calling `$(call add_soong_config_namespace, foo)` would result in
the attempt to assign to an empty variable. It went unnoticed
because `ckati` silently ignores such an assignment (`make` is
more diligent and fails).

Bug: 190051051
Test: treehugger
Change-Id: Ifcc168eaf2db725e705887889e732bcd4410db39
2021-08-20 11:18:32 -07:00
Treehugger Robot
7388ed30aa Merge "Imply ALLOW_MISSING_DEPENDENCIES for Mac builds" am: 42b072f4a7 am: f19de55328
Original change: https://android-review.googlesource.com/c/platform/build/+/1760965

Change-Id: Ib8393cc70ffa9e5cda7035fd67878287180cdfed
2021-07-09 01:56:02 +00:00
Dan Willemsen
fd224efb7f Imply ALLOW_MISSING_DEPENDENCIES for Mac builds
At least until the device builds are largely disabled and host builds
become opt-in rather than opt-out. Otherwise every host test that
depends on a linux-only library breaks the mac build, even if it won't
be used.

Bug: 187222815
Change-Id: Ic598f2b66a949b90e5b3fbebf463f28278e4834f
2021-07-08 14:26:03 -07:00
Treehugger Robot
f4d7292e02 Merge "Add 31.0 to PLATFORM_SEPOLICY_COMPAT_VERSIONS" am: 97b0ada631 am: 6b27401ca1
Original change: https://android-review.googlesource.com/c/platform/build/+/1737423

Change-Id: Ifa8965c94f08395de223c887c10e9dc52a2bdfd4
2021-06-18 11:41:43 +00:00
Treehugger Robot
97b0ada631 Merge "Add 31.0 to PLATFORM_SEPOLICY_COMPAT_VERSIONS" 2021-06-18 11:15:42 +00:00
Treehugger Robot
9dc7457b20 Merge "Remove --compatible-output=no as it is now default" am: 8d67d62e55 am: 2f58c897aa
Original change: https://android-review.googlesource.com/c/platform/build/+/1739037

Change-Id: I7a0c89754ea84b084cfadd5aaa54292dbf390ed0
2021-06-17 20:01:38 +00:00
Aurimas Liutikas
b3ca1a632f Remove --compatible-output=no as it is now default
Change-Id: I4dbc78473eda1807cfa812dc7e79f804e6dd8c9c
Test: treehugger
2021-06-17 09:13:20 -07:00
Inseob Kim
94c27efb68 Add 31.0 to PLATFORM_SEPOLICY_COMPAT_VERSIONS
Bug: 189161483
Test: m selinux_policy
Change-Id: I48b681fb28c78ea9dca922f5fb58f19a940c1a51
2021-06-16 02:25:48 +00:00
Jeff Sharkey
fcc2b97e54 platform/build/make - S is now 31
Bug: 171506470
Test: Build
Change-Id: I1f3475479659855c0185236f88bc388a61844968
2021-06-02 10:19:19 -06:00
Colin Cross
e85c66ccea Remove module-lib and system-server from TARGET_AVAILABLE_SDK_VERSIONS
module-lib and system-server are not supported in Make, remove them
from TARGET_AVAILABLE_SDK_VERSIONS.

Also replace the hardcoded test_current version with the one found in
the prebuilts.

Fixes: 185903998
Test: get_build_var TARGET_AVAILABLE_SDK_VERSIONS
Change-Id: I745fbcf019092ec27a9903c48fdb95e892c02e3e
2021-04-20 10:18:37 -07:00
Yi-Yo Chiang
f35afe97b1 Mark PRODUCT_CHECK_ELF_FILES as obsolete
Follow-up of aosp/1655468.

Bug: 149715904
Test: Presubmit
Change-Id: I3998c7356e3a41adaa00ab3d1d2c2ec66e2e37d7
2021-03-31 04:25:55 +00:00
Ulya Trafimovich
1a3b145803 Add PRODUCT_BROKEN_VERIFY_USES_LIBRARIES.
If set to true, it disables <uses-library> checks for a product. It is
possible to override with environment variable RELAX_USES_LIBRARY_CHECK
on the command-line.

Per product configuration is needed rather than per board configuration
(such as BUILD_BROKEN_* variables) because of the specifics of
<uses-library> checks: they depend on the product packages list, and
not on the board config.

One example of a product family that needs to disable the checks are
the SDK builds (e.g. sdk_gphone_x86_64), see b/183339664.

Bug: 183339664
Bug: 132357300
Test: treehugger
Change-Id: Ia58559e4e70163da94e9eb7b8a6133e0cbecd459
2021-03-23 12:36:24 +00:00
Martin Stjernholm
786bbea407 Include android_soong_config_vars.mk in the make (kati) step.
Test: `m nothing` with https://r.android.com/1592872
Bug: 172480615
Change-Id: I960cd234a5dd607f4f5af6bb68ae15b9bd104e7a
2021-03-01 23:14:10 +00:00
Treehugger Robot
c66465a4b0 Merge "Add non-fatal mode for verify_uses_libraries check." 2021-02-23 20:45:42 +00:00
Ulya Trafimovich
5a09c2084d Add non-fatal mode for verify_uses_libraries check.
The new mode is enabled with environment variable
RELAX_USES_LIBRARY_CHECK. If the variable is set to true, then a
verify_uses_libraries check failure does not fail the build, instead it
sets a special compiler filter "extract" for dexpreopt, which means that
the DEX file will be extracted, but it won't be compiled to native code.
Class loader context will be set to empty in this case (not &, as it is
going to be deprecated soon).

If the variable RELAX_USES_LIBRARY_CHECK is unset or set to something
other than "true", then the old behaviour of the verify_uses_libraries
check is preserved.

The intended use case for this flag is to have a smoother migration path
for the Java modules that need to add <uses-library> information in
the build files. The flag allows to quickly silence build errors. This
flag should be used with caution and only as a temporary measure, as it
masks real errors and affects performance.

verify_uses_libraries check is reworked so that it writes the error
message to a status file (which is used instead of the former timestamp
file). Currently the stored error message is not used, but it may be
used later to produce a warning. Dexpreopt command checks if the status
file exists and is nonempty; if that is the case, then compiler filter
is set to "extract".

Bug: 132357300

Test: Manually add some mismatch between the libraries in the Android.bp
      and Android.mk files for dexpreopted apps, build with
      RELAX_USES_LIBRARY_CHECK=true and obsserve that the build doesn't
      fail and they are compiled with compiler-filter "extract".
      Unset RELAX_USES_LIBRARY_CHECK and observe that the build fails.

Change-Id: Ie1a6298c4dba2f368ca9ac8b9fee2de0a26e68e8
2021-02-22 14:49:47 +00:00
Timi
baada2ad67 Remove extra dot from depreceation, obsoletion warnings
Remove extra dot from depreceation and obsoletion warnings to be consistent.
Changes
 x: warning: BOARD_PLAT_PUBLIC_SEPOLICY_DIR has been deprecated. Use SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS instead..
to
 x: warning: BOARD_PLAT_PUBLIC_SEPOLICY_DIR has been deprecated. Use SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS instead.

Test: m
Change-Id: I60a4258e549570e261252cffee69e5640f62295e
Signed-off-by: Timi <timi.rautamaki@gmail.com>
2021-02-21 15:26:00 +01:00
Bill Peckham
e3cf60911a Enable prebuilt hiddenapi CSV files.
By enabling these hiddenapi CSV files to be prebuilt, it
becomes possible to create a split build that supports
the hiddenapi encode dex step, but doesn't contain all
of the java sources needed to generate the CSV files.

Bug: 175048716
Test: m nothing
Test: new TestHiddenAPISingletonWithPrebuiltCsvFile
Test: local build without prebuilt hiddenapi
Test: local build with prebuilt hiddenapi
Change-Id: Ia38c5016d2aeba54aa537a5ce601898d46330730
2021-01-16 22:07:40 +00:00
Inseob Kim
2e88158571 Revert^2 "Always turn on compatible property"
This reverts commit facfb54ee4.

Reason for revert: Fixed broken targets

Change-Id: Ia713b08cf15fd356494984964a1e61eaa9991266
2020-11-19 09:48:49 +00:00
Inseob Kim
facfb54ee4 Revert "Always turn on compatible property"
This reverts commit 9994e96c7d.

Reason for revert: broken targets on the internal branch

Change-Id: Ic440fb1ca6ae5774a1d51e8fe1f3724426511841
2020-11-18 11:04:17 +00:00
Inseob Kim
9994e96c7d Always turn on compatible property
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
2020-11-17 10:00:40 +00:00
Gao Xiang
961041ac80 Allow flashing erofs system imgs
Bug: 158339527
Test: build & boot
Signed-off-by: Gao Xiang <hsiangkao@redhat.com>
Change-Id: Ie74db8ebcd7214ffbec49d42b305b2f3ac2e8c9d
2020-10-28 01:24:39 +08:00
Treehugger Robot
fd8dae609f Merge "Revert "Remove env-var-allowlist"" 2020-10-20 19:58:46 +00:00
Daniel Norman
6a93af91dc Merge "Removes usage of TARGET_NO_VENDOR_BOOT." 2020-10-20 17:18:01 +00:00