summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-02-27kleaf: Add ddk_uapi_headers ruleandroid-u-qpr3-beta-2.1_r0.8android-15-beta-2_r0.8android-15-beta-2_r0.7android-15-beta-1_r0.8android-15-beta-1_r0.7android-14.0.0_r0.81android-14.0.0_r0.77android-gs-shusky-5.15-android15-dpandroid-gs-shusky-5.15-android15-betaandroid-gs-shusky-5.15-android14-qpr3-betaandroid-gs-shusky-5.15-android14-qpr2android-gs-akita-5.15-android15-betaandroid-gs-akita-5.15-android14-d2John Moon
It's common for external kernel modules to publish UAPI headers which need to be sanitized prior to delivery to userspace. Currently, the DDK has no way to package UAPI headers this way. Add a new rule, ddk_uapi_headers(), which allows external modules to package their UAPI headers for userspace. For example: ddk_uapi_headers( name = "my_headers", srcs = glob(["include/uapi/**/*.h"]), out = "my_headers.tar.gz", kernel_build = "//common:kernel_aarch64", ) Bug: 313898637 Bug: 326633656 Change-Id: I1b7b59def1bf0b99b1073600e1324c21f82996e8 Signed-off-by: John Moon <quic_johmoo@quicinc.com> Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> [isaacmanjarres: Used config_env_and_outputs_info and get_setup_script, since KernelSerializedEnvInfo is not available on this branch. Also added module_scripts and part of the inputs for running the rule.]
2024-02-23kleaf: checkpatch_presubmit: Add full checkpatch logErik Staats
Add a full checkpatch run that ignores nothing but doesn't fail on any violations. This will be used by an AyeAye analyzer that analyzes checkpatch violations. Bug: 321067108 Test: Verified checkpatch_full.log file is generated with all violations. Change-Id: Iaad7a6368807c078b8f6461e807af1e9c538657e Signed-off-by: Erik Staats <estaats@google.com> (cherry picked from commit f25e1ffb33962382b15d468c19d5651eb2df40d2)
2024-02-22kleaf: Replace os.path usage with Path() objectsIsaac J. Manjarres
Replace the usage of the os.path.* methods with Path() objects in the initramfs_modules_lists_test.py file to conform to more modern python practices. Also, include more style fixes. Bug: 323710246 Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> (cherry picked from https://android-review.googlesource.com/q/commit:d7a39fe1a99e6c78cb3e5e57c9e742f46f35a611) Merged-In: Ib92fc6bc3a41186f21925a45f8d53e0b5f349803 Change-Id: Ib92fc6bc3a41186f21925a45f8d53e0b5f349803
2024-02-22kleaf: Test modules.dep to ensure modules in modules.load* can be loadedIsaac J. Manjarres
Depmod generates the modules.dep file which contains the dependencies for each module in the directory that depmod runs in. When specifying module lists, it is important that there's an entry for each module in each module list to ensure that the module's dependencies are loaded before attempting to load the module. Therefore, add a test to ensure that each module in each module list has an entry in modules.dep. Bug: 323710246 Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> (cherry picked from https://android-review.googlesource.com/q/commit:2cef65c72ee9d91ebbbe184a47b1186a0954a950) Merged-In: Ie6a7cb65cad336d4ccda9fa6957624448690e3c7 Change-Id: Ie6a7cb65cad336d4ccda9fa6957624448690e3c7
2024-02-22kleaf: Test to ensure that the correct modules.load lists are generatedIsaac J. Manjarres
Add a test to ensure that only the expected *modules.load* lists are generated and no extraneous lists are generated. Bug: 324304750 Bug: 324356826 Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> (cherry picked from https://android-review.googlesource.com/q/commit:580b1a61b6a4a4f50c25f3cf3349f49099b1d9cc) Merged-In: I7aab46022a3fcb5f754d6e517a194d0f553f21e0 Change-Id: I7aab46022a3fcb5f754d6e517a194d0f553f21e0
2024-02-22kleaf: Handle lz4 compressed ramdisks in initramfs module lists testsIsaac J. Manjarres
The initramfs.img can be either gzip or lz4 compressed, so ensure both compression formats can be handled. Bug: 324304750 Bug: 324356826 Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> (cherry picked from https://android-review.googlesource.com/q/commit:c4a8127d9d6606963e4605aed8764dc6c6ca2751) Merged-In: I18655c85a329ea7a169154213739e7b9850aacd8 Change-Id: I18655c85a329ea7a169154213739e7b9850aacd8
2024-02-22kleaf: Fix initramfs modules lists testIsaac J. Manjarres
The initramfs modules lists test is currently not comparing the lists for equality; it is merely doing a check for None == None, which is vacuously true. This is because the assertion compares the return values of the sort() method on two lists. The sort() method does not return anything, and instead sorts the lists in place, so use the assertCountEqual() method instead, so that the order of the lists is not a concern. Also, fix whitespace issues and coding style when reading the lists. Fixes: Fixes: d08605f4c795 ("kleaf: Add support for specifying modules for recovery/charger") Bug: 266752750 Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> (cherry picked from https://android-review.googlesource.com/q/commit:3c47d6386f4a502272913d00e18b8b62c9fba9ef) Merged-In: I6582bcc04efa5542725ca9be4df420b12919ebe0 Change-Id: I6582bcc04efa5542725ca9be4df420b12919ebe0
2024-02-22kleaf: Fix generation of modules.load.[recovery|charger]Isaac J. Manjarres
Commit d08605f4c795 ("kleaf: Add support for specifying modules for recovery/charger") accidentally made it so that modules.load.[recovery|charger] are only generated if the vendor_boot or vendor_kernel_boot images are made. Similar to modules.load, it is possible to want to generate modules.load.[recovery|charger] without a vendor_boot or vendor_kernel_boot image, so decouple the two. Bug: 324356826 Fixes: d08605f4c795 ("kleaf: Add support for specifying modules for recovery/charger") Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> (cherry picked from https://android-review.googlesource.com/q/commit:7de44ada9d71869e582c42d5d2f62c714d496a5c) Merged-In: Idf9db5954e8c1bae01915f104c704302dbfd81ae Change-Id: Idf9db5954e8c1bae01915f104c704302dbfd81ae
2024-02-22kleaf: Do not generate vendor[_kernel]_boot.modules.* unless requiredIsaac J. Manjarres
Commit d08605f4c795 ("kleaf: Add support for specifying modules for recovery/charger") accidentally made it so that kleaf always tries to generate the vendor[_kernel]_boot.modules.* lists, even when neither vendor_boot.img or vendor_kernel_boot.img need to be built. Fix this by only attempting to generate those artifacts if either vendor_boot.img or vendor_kernel_boot.img need to be built. Bug: 324304750 Fixes: d08605f4c795 ("kleaf: Add support for specifying modules for recovery/charger") Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> (cherry picked from https://android-review.googlesource.com/q/commit:100076d823899780662a6fdec71f92be35f6d9f7) Merged-In: I31ec16fc543e55f33319e017c7d5976e825f581d Change-Id: I31ec16fc543e55f33319e017c7d5976e825f581d
2024-02-08Kleaf: Update rule docs for kernel_imagesandroid-u-qpr3-beta-2_r0.8android-15-dp-2_r0.7android-14.0.0_r0.80Ulises Mendez Martinez
* Additionally include ddk_module as suggestion for build external kernel modules. Bug: 306122000 Change-Id: I15eaefc4a205c23c22b3db26d9d1e31654507e56 Signed-off-by: Ulises Mendez Martinez <umendez@google.com> (cherry picked from commit d6e4d2543f2364be1283e096bda49516da10a68b)
2024-02-08Kleaf: Add testing for images with ddk modulesUlises Mendez Martinez
Bug: 306122000 Change-Id: I43d17a45caf81e2be7a281bd8498baa0b7b2ef80 Signed-off-by: Ulises Mendez Martinez <umendez@google.com> (cherry picked from commit cf40b51691f3690a198c6aaeccb55baa8d4cc0b0)
2024-02-08Kleaf: Add support to create a modules.order files for imagesUlises Mendez Martinez
* This is done by keeping a local copy of the make generated one, for each ddk_module or kernel_module. For kernel_module_group or kernel_modules_install this becomes a depset which is traversed in postorder (dependencies first) when needed. * With this change kernel_images (initiramfs, (system|vendor)_dlkm) can control whether to use this new approach or keep the old behavior with the variable `create_modules_order` (set to True by default). Bug: 306122000 Change-Id: Ic636c2da8d77e6c25e7eb9c8f6de68904828a9ad Signed-off-by: Ulises Mendez Martinez <umendez@google.com> (cherry picked from commit 1d3379dd0e0bb660bff2903ce7e93bd93e696700)
2024-02-07build_utils.sh: Ignore MODULES_[RECOVERY|CHARGER]_LIST for system_dlkmandroid-14.0.0_r0.67Isaac J. Manjarres
The system_dlkm partition consists of GKI modules, which are not loaded during first-stage init. However, the MODULES_[RECOVERY|CHARGER]_LIST arguments specify vendor modules that must be loaded during first stage init. Therefore, it does not make sense to consider these lists when building system_dlkm.img, so do not consider them. Bug: 322408856 Bug: 323710246 Change-Id: I50fb42b40a94b0b53d5a2cda676d39b919395538 Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> (cherry picked from commit 4daab96c0623f571c0eefbb0a4fe2d955e86fdea)
2024-02-07build_utils.sh: Ensure depmod runs on all modules lastIsaac J. Manjarres
When handling charger and recovery modules lists, depmod is run on the set of charger and recovery modules and all modules. However, the order in which this happens is such that depmod is run on the set of charger modules, instead of all modules last. This means that the final modules.dep file will contain the dependencies for the charger modules, and not the rest of the modules. This is not ideal, as the modules.dep file should contain the dependencies for all modules. Thus, ensure that depmod is run on all modules last after running depmod on the recovery and charger modules lists. Bug: 322408856 Bug: 323710246 Change-Id: I7e03be016877df3b528b810735efec6c55fd0f6e Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> (cherry picked from commit 3f67b5ffe1348d438e47f95fe2f2250def080960)
2024-02-05build_utils.sh: Fix typos for recovery and charger list variablesIsaac J. Manjarres
The variables pertaining to the recovery and charger lists were not written correctly, so fix them. Bug: 322408856 Bug: 323710246 Change-Id: Ia4d18920c5460a6ab019cb186e9da5cb1dd8835a Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> (cherry picked from commit 8565b2e637df5d0a482426b9aa505c917b9711aa)
2024-02-01kleaf: common_kernels: Ignore cscope & tagsPierre-Clément Tosi
As the common_kernel_sources filegroup includes _any_ file in the tree, with the exception of Git and Bazel files, the build system gets confused if some files are present at the time where the glob is evaluated but absent in following build commands. An example of this is an IDE automatically updating the code index file when saving a source file (e.g. tags.lock or tags.temp) as the kernel is getting built. Given that cscope and tags files are officially supported by the Linux Makefiles and as Bazel doesn't actually need them to build the kernel, exclude them from the filegroup. Test: build the kernel (cherry picked from https://android-review.googlesource.com/q/commit:7a3b2fbab0d764d6f6acbcf36c7b45f02421cf55) Merged-In: Id103c3f22dc286960fd703aac2c8e527cb718ff5 Change-Id: Id103c3f22dc286960fd703aac2c8e527cb718ff5
2024-01-31kleaf: cache_dir.bzl sets COMMON_OUT_DIR properly.Yifan Hong
When building a ddk_module with --config=local: - OUT_DIR is in out/cache/<hash>/$KERNEL_DIR - Module.symvers of the depended module is restored to out/cache/<hash>/<package>/<name>_Module.symvers - However, the generated makefile expects the file in COMMON_OUT_DIR/<package>/<name>_Module.symvers, where COMMON_OUT_DIR is not changed. This is because cache_dir.bzl only modifies the value of OUT_DIR, not COMMON_OUT_DIR. Hence, it makes sense to set COMMON_OUT_DIR to the directory under cache_dir as well. Test: TH Bug: 304499217 Change-Id: Icd9beb73db7105b278def0c95f036cd1ae21a930 Signed-off-by: Yifan Hong <elsk@google.com> (cherry picked from commit e2a45faccec7c5d94b4ff9d2c2d11d5d8d286814)
2024-01-31kleaf: kernel_module restores Module.symvers to `COMMON_OUT_DIR`.Yifan Hong
When ddk_module is building with --config=local: - OUT_DIR is in out/cache/<hash>/$KERNEL_DIR - Module.symvers of the depended module is restored to out/cache/<hash>/<package>/<name>_Module.symvers - However, the generated makefile expects the file in COMMON_OUT_DIR/<package>/<name>_Module.symvers, where COMMON_OUT_DIR is not changed. This is because cache_dir.bzl only modifies the value of OUT_DIR, not COMMON_OUT_DIR. Hence, let kernel_module's command to restore its Module.symvers to use COMMON_OUT_DIR directly. Bug: 304499217 Change-Id: I28995f30812e7ac2d596982d70e79f9374364787 Signed-off-by: Ulises Mendez Martinez <umendez@google.com> Signed-off-by: Yifan Hong <elsk@google.com> (cherry picked from commit 2f12101856d947353d043aec76ed0bf7c09e1c70)
2024-01-26Revert "kleaf: workspace.bzl: Expand import_external_repositories"Matthew Maurer
Revert submission 2922866 Reason for revert: Retargeting to `android15-6.6`, no reason to have any divergence on this branch. Reverted changes: /q/submissionid:2922866 Change-Id: If584557f5e971ec232b4eecf58d901015c954138
2024-01-26Revert "Load rules_rust if available"Matthew Maurer
Revert submission 2922866 Reason for revert: Retargeting to `android15-6.6`, no reason to have any divergence on this branch. Reverted changes: /q/submissionid:2922866 Change-Id: I43c56b9d14cfee2d06c6284b71db08f18a971806
2024-01-24Load rules_rust if availableMatthew Maurer
Bug: 284390729 Change-Id: I1d2691500548beb2f50b3ce4250eef78ebc35f71 Merged-In: I1d2691500548beb2f50b3ce4250eef78ebc35f71
2024-01-24kleaf: workspace.bzl: Expand import_external_repositoriesYifan Hong
Now that Roboleaf will stop using external.bzl, there's no benefit to keep a common definition. Hence, just expand the macro in workspace.bzl directly. Bug: 293260835 Change-Id: If39846a6003d937471b70bb466621755d1165cbc Merged-In: If39846a6003d937471b70bb466621755d1165cbc
2024-01-22kleaf: checkpatch: Ignore BAD_REPORTED_BY_LINKandroid-14.0.0_r0.57John Stultz
If you include a Reported-by: tag, checkpatch will warn with BAD_REPORTED_BY_LINK if there is not a URL link to where the report was made. While these links are nice, and should be included where possible, they shouldn't be required as often reports come in private email, and we should make sure to credit reporters even if there isn't a public URL for that report. Change-Id: I1a06a5c28c3dd9f7b365b475cbb446ba6d48c13c Signed-off-by: John Stultz <jstultz@google.com>
2024-01-22download_from_ci: Leave microdroid-gki as-is upon updating GKI prebuiltsInseob Kim
microdroid-gki is maintained separately. Ultimately we may want to move microdroid-gki to somewhere else. Until then we should leave it as-is when updating normal GKI prebuilts. Bug: 317929593 Test: run script Change-Id: I1fc3f2c7c2e68f9121f2c7d38cb7a4372528557d (cherry picked from commit 4e49573f0aa24198acaadab789595377f799e90e)
2024-01-19kleaf: Fix unit tests for --incompatible_sandbox_hermetic_tmp.Yifan Hong
Fix errors like: output 'build/kernel/kleaf/tests/ddk_test/makefiles_test_suite_subdir_test_subdir_sources_same_name_subdir_kbuild/subdir/Kbuild' is a dangling symbolic link Test: bazel test //build/kernel/kleaf/tests Bug: 319893821 Bug: 319077326 Change-Id: I445c3e49f56cdf82bbae7760b8abbe77b985a189 (cherry picked from commit ba157874458502fad044dd87342d1634a4cb1bf7)
2024-01-17kleaf: utils: adjust get_check_sandbox_cmd for compatibility with Bazel 8Matthias Maennich
As of bazel's e2c0276d1fd6 ("Enable `--incompatible_sandbox_hermetic_tmp` by default"), sandboxes can be much more neat, e.g. /tmp/bazel-working-directory/_main. Add support for that new behaviour when checking whether we are inside a sandbox. Link: https://github.com/bazelbuild/bazel/commit/e2c0276d1fd69c19d6946fb17f9e983e9ea68025 Bug: 319077326 Change-Id: I51498306fa620626d217dd89661c7acaba25560b Signed-off-by: Matthias Maennich <maennich@google.com> (cherry picked from commit 98b5f4865e13e39e5f6d973cf1f71752396073c3)
2024-01-17kleaf: Fix KBUILD_MIXED_TREE for --incompatible_sandbox_hermetic_tmp.Yifan Hong
Previously without the flag, the TreeArtifact contains symlinks to files under execroot, which is allowed. With the flag, the symlink points to a file in the sandbox, which is no longer valid (the sandbox is teared down) when the TreeArtifact is validated. Change it to a cp so that it is straightforward to humans. Performance: There are no obvious performance regression associated with this change. The KbuildMixedTree action is on the critical path. This change reduces the time for the action from 4.1s to 3.6s in a one-time experiment. Test: TH Bug: 319893821 Bug: 319077326 Change-Id: I63f2364e0ffaa57a7ae57a1f7730f4b510ae3a8e Signed-off-by: Yifan Hong <elsk@google.com> (cherry picked from commit b626eb43be646d8efdfb57e7d832da39fd81284a)
2024-01-12Kleaf: Fix attribute name in error messageandroid-u-qpr3-beta-1_r0.8android-u-qpr2-beta-3.1_r0.8android-15-dp-1_r0.8android-gs-shusky-5.15-android14-qpr2-betaUlises Mendez Martinez
Fixes: a09156147f79 ("kleaf: allow build number in downloaded file name") Bug: 317224407 Change-Id: I222c49ebcd7b582d1f33a1afd55f165ea1679b58 Signed-off-by: Ulises Mendez Martinez <umendez@google.com>
2024-01-11Kleaf: Use full path for kernel_build.kconfig_extUlises Mendez Martinez
* This is needed to allow generated files, which otherwise are not discoverable as inputs. Bug: 319236725 Change-Id: Iaf7a3f85f3d5d0bde4a4ddce140f94cb873b860c Signed-off-by: Ulises Mendez Martinez <umendez@google.com>
2024-01-06kleaf: assembly uses .S not .sYifan Hong
Kbuild only accepts .S not .s. Bazel suffix matching is case-sensitive. Test: build trusty Change-Id: I645c226f01bcd577f809c1759b9e71541d876522
2024-01-04build_utils.sh: Add support for additional arguments to mkbootimg.pyIsaac J. Manjarres
mkbootimg.py supports specifying the kernel base, as well as other offsets that a bootloader can read from the vendor boot header. Therefore, add support for specifying these offsets when building the vendor_boot image. Bug: 308443544 Change-Id: I9da3284a93ee064d07034d3a7a3e42c07e0e9b88 Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com>
2024-01-02kleaf: workspace_status_stamp.py: Fix pathlib.path errorJohn Moon
Currently, there are two places where "pathlib.path" is used instead of the correct "pathlib.Path". This causes the following error when building with --ignore_missing_projects: AttributeError: module 'pathlib' has no attribute 'path'. Did you mean: 'Path'? Fix this by changing "pathlib.path" to "pathlib.Path". Bug: 306026132 Change-Id: I8ecdec3b48d7438a3a953944f629b462a7c88536 Signed-off-by: John Moon <quic_johmoo@quicinc.com> (cherry picked from commit 224cf84e94caf3db491139ce2dac462d97a833e3)
2023-12-07build_utils.sh: Clarify the effects of TRIM_UNUSED_MODULESandroid-u-qpr2-beta-3_r0.8Isaac J. Manjarres
Make it clear that setting TRIM_UNUSED_MODULES removes unused module binaries from the final build output. Bug: 311553435 Change-Id: Iad5eac931381d76a2f9fe2233b9305bc55775a63 Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com>
2023-12-07build_utils.sh: Cleanup comments detection regex in module listIsaac J. Manjarres
The current regex for detecting comments in a module list escapes the "#" character. The "#" character is not a special character so it does not need to be escaped. Bug: 311553435 Change-Id: If295a0e14b922ebefc4e09cafad252379977a8f8 Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com>
2023-12-07kleaf: Add support for specifying modules for recovery/chargerIsaac J. Manjarres
Currently, the same modules.load file is used for normal boot, recovery/fastbootd and charger modes during first-stage init. This means that during normal boot, the modules that are needed for recovery and charger modes are loaded during first-stage init, which is not required. Add support for specifying a list of modules that are required for booting into recovery or charger mode. This introduces two new attributes to the kernel_images() macro called: modules_recovery_list and modules_charger_list. Each attribute points to a list of modules that are needed to boot into each mode respectively. This list can be generated dynamically by concatenating the list of vendor_boot or vendor_kernel_boot modules required for first stage init, along with the list of modules needed to boot into each mode. Defining these attributes also produces a file named modules.load.[recovery/charger] in the initramfs, which init uses instead of modules.load when booting into recovery or charger mode respectively to load the first-stage init and recovery and charger modules. In case of normal boot, init will use the modules.load file, which will only contain the modules needed for first stage init, and the recovery and charger modules will be loaded from the vendor_dlkm partition during second-stage init. Bug: 266752750 Change-Id: I11503b11683ef64cf0933b8641959ea5acd63ab1 Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> (cherry picked from commit b9ba4b67e90b85d01eb2f9cebf62830a73574cd9) [isaacmanjarres: Re-wrote some of the commit message/implemented it as part of kleaf. Also added tests for the new attributes.] (cherry picked from commit d08605f4c795e05d8569e975affd2736e430a555) [isaacmanjarres: Resolved trivial merge conflicts when backporting from main.]
2023-12-07kleaf: artifacts test do not depend on hermetic_tools aliases.Yifan Hong
Drop references to //build/kernel:hermetic-tools/... Such aliases have been deprecated. This ensures that running these tests won't produce warning messages because they depend on the deprecated aliases. To achieve this, I defined py_binary for each test script, then replaced py_test with hermetic_exec_test that invokes the script with the given arguments. in PATH before running the test. Then I modified the tests to search for the binary in PATH. Test: TH Test: bazel test //common-modules/virtual-device:x86_64/goldfish_drivers/goldfish_sync_test //common:kernel_aarch64_test //common:kernel_aarch64_additional_tests --test_output=all --config=stamp Bug: 234125794 Change-Id: Id84321227e6af04e2433516c30f8b11cbb9bcafe
2023-11-30build_utils.sh: update the SPL for developmentWill McVicker
The SPL in the platform build is being updated more frequently than originally anticipated (previously it was updated quarterly in the trunk_staging builds). Now the trunk staging SPL follows the monthly SPL. To accomidate this, this patch updates the development build's SPL to pick the QPR date after the next QPR, e.g. Nov 2023 builds would pick March 2024. Note, as a reminder, this is only applied for development GKI boot images (not certified GKI boot images). Bug: 274825778 Change-Id: I4b746e417d8b0403ad7a2cb21a83001cd1ecbd40 Signed-off-by: Will McVicker <willmcvicker@google.com>
2023-11-09download_from_ci: add --update-microdroid-gkiandroid-u-qpr2-beta-2_r0.8Inseob Kim
The flag fetches kernel_<arch> and updates the prebuilts at kernel/prebuilts/<version>/<arch>/microdroid-gki. Bug: 304479739 Test: build/kernel/gki/download_from_ci -b 304479739 \ --update-microdroid-gki 11062399 Change-Id: Ibd1d28d8d61c4d2160483dec2c35bb2b16072a21
2023-11-07kleaf: config_utils: support # nocheck linesandroid-14.0.0_r0.45android-14.0.0_r0.38android-gs-shusky-5.15-android14-qpr1Yifan Hong
If a line is trailing with # nocheck, e.g.: CONFIG_FOO=y # nocheck: b/??????? Then this config will not be enforced in the final .config. A warning is printed if value does not match. Bug: 295240936 Bug: 286589887 Change-Id: I12b3c16e14938116cc80af5abead08e35433eb2d (cherry picked from commit 99119c8fdeddba644c3d741b88341ca26f9d662d)
2023-11-02kleaf: system_dlkm: Name ext4 image as system_dlkm.imgRamji Jiyani
Enabling building both erofs and ext4 image changed the legacy image from system_dlkm.img to system_dlkm.ext4.img. This may break the scripts downloading this image from kernel build artifacts. For backward compatibility on the released kernel artifacts name ext4 images with legacy name system_dlkm.img. Fixes: ebfbdd4073c7 ("kleaf: system_dlkm: Build ext4 & erofs images for common kernels") Bug: 297407875 Test: TH, Manual image verification in dist Change-Id: Ia5aa7be37eff2801dfd50e8354213c2614465242 Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
2023-11-02kleaf: system_dlkm: Build ext4 & erofs images for common kernelsRamji Jiyani
For common kernel targets build system_dlkm partition image for both supported read-only filesystems to make them available via CI build artifacts by default. Before this change: ext4: system_dlkm.img After this change: ext4: system_dlkm.ext4.img erofs: system_dlkm.erofs.img Bug: 297407875 Test: TH, Manual image verification in dist Change-Id: Ibad393af4fcd7ba10f6dec49a3110ea5c163902f Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
2023-10-18kleaf: Add support to boot custom kernels without wipingWill McVicker
The following is implemented: * Add hashtree footer to vendor_dlkm. * Add SPL to boot.img This allows developers to flash a custom kernel on an unlocked device without having to wipe the device (based on SPL) or disable verification (based on AVB hashtree requirement). Test: verify custom boot.img and system_dlkm.img boots without wiping on C10 Test: verify custom vendor_dlkm.img boots without wiping on C10 Bug: 274825778 Change-Id: I685199eb11bfc5a4bdf545170ec136b327f992ad Signed-off-by: Will McVicker <willmcvicker@google.com>
2023-10-13system_dlkm: Add prefix for flatten modules.depandroid-u-qpr1-beta-2.2_r0.7android-gs-shusky-5.15-android14-qpr1-betaRamji Jiyani
Add /system/lib/modules/ prefix for every modules in modules.dep file for flatten images. Flatten images have directory structure as /lib/modules/*.ko; and when system_dlkm is mounted modules are available to load from /system/lib/modules. Test: Manual modules.dep verification, TH Bug: 301178664 Change-Id: Ife5dad13b3a51632d1fe9000474c4fff062e4fc3 Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
2023-10-10kleaf: system_dlkm: Enable flatten images for ACKsRamji Jiyani
Enable generating flatten system_dlkm images for the common_kernels targets to make them available for CI builds for testing. Bug: 301178664 Test: Manual image verification with different options Test: TH Change-Id: I08745d7660ab232ad92156ec764cc20ef749adad Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
2023-10-10kleaf: common_kernels: fix load out of orderRamji Jiyani
Load statement is out of its lexicographical order error fixes. Test: TH Change-Id: Id775d2d6cd6ec77044490f16b954dbf1dbecf098 Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
2023-10-10kleaf: system_dlkm: Add flatten images supportRamji Jiyani
Generate flatten images if kernel_images have build_system_dlkm_flatten is set True. These images don't have the `uname -r` in the directory structure and all modules are available as lib/modules/*.ko with modules.load and modules.dep depmod artifacts. Generates images as follow: If system_dlkm_fs_type is set: system_dlkm.flatten.<system_dlkm_fs_type>.img If system_dlkm_fs_types is set: system_dlkm.flatten.<fs_type>.img for each fs types By default when no fs type is specified: system_dlkm.flatten.ext4.img Bug: 301178664 Test: Manual image verification with different options Test: TH Change-Id: I4b7815d131d3d26adaa35c4550e76db71aa33936 Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
2023-09-29kleaf: system_dlkm build images for list of fsandroid-u-qpr1-beta-2.1_r0.8android-gs-shusky-5.15-u-qpr1-beta2Ramji Jiyani
Introduces system_dlkm_fs_types list attribute for the kernel_images rule to build the system_dlkm partition images for all filesystem provided in the list. Deprecates the system_dlkm_fs_type but gives it priority for backward compitability resons. Behavior based on values of system_dlkm_fs_type & system_dlkm_fs_types: Both specified: Fail with deprecation message Both not specified: system_dlkm.img with ext4 This is same as current default behavior when system_dlkm_fs_type is not specified. system_dlkm_fs_type="fs": system_dlkm.img with given fs This is same as current behavior. system_dlkm_fs_types=[list_of_filesystems]: system_dlkm.fs.img for each file system type in list_of_filesystems Bug: 297407875 Test: TH, Manual with all permutations & combinations Change-Id: Ie8ee880dbbc41576603a1ab1b56f0307a6ab2e90 Signed-off-by: Ramji Jiyani <ramjiyani@google.com> (cherry picked from commit b0fedfdcff7d4e8fcb6ec82ac8294e738b78dcbc)
2023-09-16download_from_ci: --update-16k: Fix version fetchandroid-u-qpr2-beta-1_r0.7android-u-qpr1-beta-2_r0.8Ramji Jiyani
--update-16k fails fetching the version and SHA information as version parsing logic only supports format for x86_64 whereas 16K page size kernels are only available for the arm64 architecture. Since kernels for all architecture targets are built from the same source at particular git hash; use x86_64 target's kernel binary from the same CI build to fetch the kernel version and SHA for --update-16k. Bug: 296248256 Test: download_from_ci --update-16k -b 296248256 10809747 Change-Id: I9514da8392703a7478ea3dd2c1425ef0ca31ab9f Signed-off-by: Ramji Jiyani <ramjiyani@google.com>
2023-09-04kleaf: Drop --verbose_failures for ci.android.com builds.Yifan Hong
The build_errors.log has always been too long, making the infra to skip lines in between, which usually contain useful error messages. Bug: 296431087 Change-Id: I2f71af242ba64e3dff923ef5f469f0faa0068408 (cherry picked from commit 4025481becbd2f07ec9bebd7556504c86379dd25)
2023-08-29kleaf: system_dlkm_image: Fix load out of order errorRamji Jiyani
Fixes buildifier error: Load statement is out of its lexicographical order. Change-Id: I66b6ee21802c012a3834b71e37c238b18296e6a2 Signed-off-by: Ramji Jiyani <ramjiyani@google.com> (cherry picked from commit 89ee0ed2f6a536a6762a778e0d5910a442fb425b)