ANDROID: build: Switch to Kleaf super_image implementation

Currently, we use an in-tree definition of the super_image rule to
generate our super.img files. This rule depends on a private kleaf
API which is no longer visible to msm-kernel after an upstream
change.

To fix, we've upstreamed the super_image rule to kleaf which allows
usage of the private API. Accordingly, we need to make an update here
which uses the new super_image API from kleaf.

Change-Id: Ie904958a773061c83e33190cc9ad89a5467c738e
Signed-off-by: John Moon <quic_johmoo@quicinc.com>
This commit is contained in:
John Moon 2023-09-05 19:50:27 -07:00
parent 0f32661228
commit 787b33600b

View File

@ -10,6 +10,8 @@ load(
"kernel_modules_install",
"kernel_uapi_headers_cc_library",
"merged_kernel_uapi_headers",
"super_image",
"unsparsed_image",
)
load(
"//build:msm_kernel_extensions.bzl",
@ -25,7 +27,6 @@ load("@bazel_skylib//rules:write_file.bzl", "write_file")
load(":msm_common.bzl", "define_top_level_config", "gen_config_without_source_lines", "get_out_dir")
load(":msm_dtc.bzl", "define_dtc_dist")
load(":msm_abl.bzl", "define_abl_dist")
load(":super_image.bzl", "super_image")
load(":avb_boot_img.bzl", "avb_sign_boot_image")
load(":image_opts.bzl", "boot_image_opts")
load(":target_variants.bzl", "la_variants")
@ -272,14 +273,28 @@ def _define_image_build(
boot_partition_size = int(boot_image_opts.boot_partition_size),
)
# Defined separately because `super.img` is not generated by upstream kleaf
native.filegroup(
name = "{}_system_dlkm_image_file".format(target),
srcs = ["{}_images".format(base_kernel)],
output_group = "system_dlkm.img",
)
native.filegroup(
name = "{}_vendor_dlkm_image_file".format(target),
srcs = [":{}_images".format(target)],
output_group = "vendor_dlkm.img",
)
super_image(
name = "{}_super_image".format(target),
kernel_modules_install = "{}_modules_install".format(target),
deps = [
"{}_images_system_dlkm_image".format(base_kernel),
":{}_images_vendor_dlkm_image".format(target),
],
system_dlkm_image = ":{}_system_dlkm_image_file".format(target),
vendor_dlkm_image = ":{}_vendor_dlkm_image_file".format(target),
)
unsparsed_image(
name = "{}_unsparsed_image".format(target),
src = "{}_super_image".format(target),
out = "super_unsparsed.img",
)
def _define_kernel_dist(
@ -317,6 +332,7 @@ def _define_kernel_dist(
":{}".format(target),
":{}_images".format(target),
":{}_super_image".format(target),
":{}_unsparsed_image".format(target),
":{}_merged_kernel_uapi_headers".format(target),
":{}_build_config".format(target),
])