build: support --use_prebuilt_gki [1/1]

PD#SWPL-130219

Problem:
support --use_prebuilt_gki

Solution:
support --use_prebuilt_gki

Verify:
local

Change-Id: I32515737f5663b798f23ee2c69ce4b766ee1c5e6
Signed-off-by: Wanwei Jiang <wanwei.jiang@amlogic.com>
diff --git a/amlogic_utils.bzl b/amlogic_utils.bzl
index 224f0b3..6bb30f3 100644
--- a/amlogic_utils.bzl
+++ b/amlogic_utils.bzl
@@ -71,8 +71,6 @@
         kmi_symbol_list_add_only: See [kernel_abi.kmi_symbol_list_add_only](#kernel_abi-kmi_symbol_list_add_only).
         module_grouping: See [kernel_abi.module_grouping](#kernel_abi-module_grouping).
         unstripped_modules_archive: See [kernel_abi.unstripped_modules_archive](#kernel_abi-unstripped_modules_archive).
-        gki_modules_list: List of gki modules to be copied to the dist directory.
-          If `None`, all gki kernel modules will be copied.
         dist_dir: Argument to `copy_to_dist_dir`. If `None`, default is `"out/{BRANCH}/dist"`.
     """
 
@@ -85,9 +83,6 @@
     if kmi_symbol_list_add_only == None:
         kmi_symbol_list_add_only = True if define_abi_targets else None
 
-    if gki_modules_list == None:
-        gki_modules_list = [":kernel_aarch64_modules"]
-
     if dist_dir == None:
         dist_dir = "out/{branch}/dist".format(branch = BRANCH)
 
@@ -102,7 +97,7 @@
         module_outs = module_outs,
         build_config = build_config,
         # Enable mixed build.
-        base_kernel = ":kernel_aarch64",
+        base_kernel = ":kernel_aarch64_download_or_build",
         kmi_symbol_list = kmi_symbol_list,
         collect_unstripped_modules = _COLLECT_UNSTRIPPED_MODULES,
         strip_modules = True,
@@ -149,14 +144,14 @@
         name + "_images",
         name + "_modules_install",
         # Mixed build: Additional GKI artifacts.
-        ":kernel_aarch64",
-        ":kernel_aarch64_additional_artifacts",
+        ":kernel_aarch64_download_or_build",
+        ":kernel_aarch64_additional_artifacts_download_or_build",
         name + "_merged_kernel_uapi_headers",
     ]
 
     copy_to_dist_dir(
         name = name + "_dist",
-        data = dist_targets + gki_modules_list,
+        data = dist_targets,
         dist_dir = dist_dir,
         flat = True,
         log = "info",
diff --git a/amlogic_utils.sh b/amlogic_utils.sh
index b7091dd..86cee1e 100644
--- a/amlogic_utils.sh
+++ b/amlogic_utils.sh
@@ -1236,12 +1236,12 @@
 function export_env_variable () {
 	export ABI BUILD_CONFIG LTO KMI_SYMBOL_LIST_STRICT_MODE CHECK_DEFCONFIG MANUAL_INSMOD_MODULE ARCH
 	export KERNEL_DIR COMMON_DRIVERS_DIR BUILD_DIR ANDROID_PROJECT GKI_CONFIG UPGRADE_PROJECT ANDROID_VERSION FAST_BUILD CHECK_GKI_20 DEV_CONFIGS
-	export FULL_KERNEL_VERSION BAZEL
+	export FULL_KERNEL_VERSION BAZEL PREBUILT_GKI
 
 	echo ROOT_DIR=$ROOT_DIR
 	echo ABI=${ABI} BUILD_CONFIG=${BUILD_CONFIG} LTO=${LTO} KMI_SYMBOL_LIST_STRICT_MODE=${KMI_SYMBOL_LIST_STRICT_MODE} CHECK_DEFCONFIG=${CHECK_DEFCONFIG} MANUAL_INSMOD_MODULE=${MANUAL_INSMOD_MODULE}
 	echo KERNEL_DIR=${KERNEL_DIR} COMMON_DRIVERS_DIR=${COMMON_DRIVERS_DIR} BUILD_DIR=${BUILD_DIR} ANDROID_PROJECT=${ANDROID_PROJECT} GKI_CONFIG=${GKI_CONFIG} UPGRADE_PROJECT=${UPGRADE_PROJECT} ANDROID_VERSION=${ANDROID_VERSION}  FAST_BUILD=${FAST_BUILD} CHECK_GKI_20=${CHECK_GKI_20}
-	echo FULL_KERNEL_VERSION=${FULL_KERNEL_VERSION} BAZEL=${BAZEL}
+	echo FULL_KERNEL_VERSION=${FULL_KERNEL_VERSION} BAZEL=${BAZEL} PREBUILT_GKI=${PREBUILT_GKI}
 	echo MENUCONFIG=${MENUCONFIG} BASICCONFIG=${BASICCONFIG} IMAGE=${IMAGE} MODULES=${MODULES} DTB_BUILD=${DTB_BUILD}
 }
 export -f export_env_variable
@@ -1357,8 +1357,9 @@
 			VA=1
 			shift
 			;;
-		--bazel)
-			BAZEL=1
+		--use_prebuilt_gki)
+			PREBUILT_GKI=$2
+			VA=1
 			shift
 			;;
 		-h|--help)
diff --git a/mk.sh b/mk.sh
index e693ab6..62ec53b 100755
--- a/mk.sh
+++ b/mk.sh
@@ -30,7 +30,7 @@
 	echo "  --patch                 for only am patches"
 	echo "  --check_gki_20          for gki 2.0 check kernel build"
 	echo "  --dev_config            for use the config specified by oem instead of amlogic like ./mk.sh --dev_config a_config+b_config+c_config"
-	echo "  --bazel                 for choose bazel tool to build"
+	echo "  --use_prebuilt_gki      for use prebuilt gki, require parameter value, https://ci.android.com/builds/submitted/10412065/kernel_aarch64/latest, --use_prebuilt_gki 10412065"
 }
 
 # handle the dir parameters for amlogic_utils.sh
@@ -113,7 +113,7 @@
 build_part_of_kernel
 
 if [[ "${FULL_KERNEL_VERSION}" != "common13-5.15" && "${ARCH}" = "arm64" && ${BAZEL} == 1 ]]; then
-	args="$@ --lto=${LTO}"
+	[[ -z ${PREBUILT_GKI} ]] && args="$@ --lto=${LTO}"
 	PROJECT_DIR=${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/project
 	[[ -d ${PROJECT_DIR} ]] || mkdir -p ${PROJECT_DIR}
 
@@ -177,15 +177,19 @@
 	echo "]"					>> ${PROJECT_DIR}/dtb.bzl
 
 	echo args=${args}
+	set -x
 	if [[ -n ${GOOGLE_BAZEL_BUILD_COMMAND_LINE} ]]; then
 		${GOOGLE_BAZEL_BUILD_COMMAND_LINE}
-	elif [ "${ABI}" -eq "1" ]; then
+	elif [[ "${ABI}" -eq "1" ]]; then
 		tools/bazel run //common:amlogic_abi_update_symbol_list --sandbox_debug --verbose_failures ${args}
 		tools/bazel run //common:kernel_aarch64_abi_dist --sandbox_debug --verbose_failures ${args}
 		exit
+	elif [[ -n ${PREBUILT_GKI} ]]; then
+		tools/bazel run --use_prebuilt_gki=${PREBUILT_GKI} //common:amlogic_dist --sandbox_debug --verbose_failures ${args}
 	else
 		tools/bazel run //common:amlogic_dist --sandbox_debug --verbose_failures ${args}
 	fi
+	set +x
 
 	sed -i "/GKI_BUILD_CONFIG_FRAGMENT/d" ${PROJECT_DIR}/build.config.gki10