| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- name: prepare ak3
- description: copy kernel image to ak3 folder
- inputs:
- branch:
- description: 'device kernel/repo'
- required: true
- runs:
- using: composite
- steps:
-
- - name: copy image to ak3 folder depending on branch
- shell: bash
- run: |
- cd "$CONFIG"
- # 1. Determine target file name based on branch structure
- if [[ "${{ inputs.branch }}" == SM-A055* || "${{ inputs.branch }}" == SM-X926* || "${{ inputs.branch }}" == "SM-A075M-Oneui7" ]]; then
- target_name="Image.gz"
- else
- target_name="Image"
- fi
-
- shopt -s globstar
- shopt -s nocaseglob
- KERNEL_IMAGE=""
- priority_found=false
- fallback_images=()
- # ==========================================
- # PHASE 1: DIRECT BAZEL DEPENDENCY QUERY (SMART)
- # ==========================================
- if [ -f "kernel_platform/tools/bazel" ]; then
- echo "Bazel detected. Querying for target: //common:kernel_aarch64 ($target_name)..."
-
- # 1. Gather all files matching the target name into an array
- mapfile -t cquery_outputs < <(tools/bazel cquery //common:kernel_aarch64 --output=files 2>/dev/null | grep -E "/${target_name}$")
-
- # 2. First Pass: Look strictly for your priority folder structures in the Bazel paths
- for priority in *_kbuild_mixed_tree *.user "kernel_aarch64"; do
- for path in "${cquery_outputs[@]}"; do
- # Use case-insensitive matching to verify if the path contains the priority folder name
- if [[ "${path,,}" == *"${priority,,}"* ]] && [ -f "$path" ]; then
- kernel_image="$path"
- priority_found=true
- echo "Match found via prioritized Bazel Graph lookup: $kernel_image"
- break 2
- fi
- done
- done
- else
- echo "No Bazel installation detected. Skipping Phase 1..."
- fi
- # 2. Phase 2: Hunt inside priority folders if build did not use bazel
- for priority in "dist" "boot"; do
- for file in **/"$priority"/"$target_name"; do
- if [ -f "$file" ] && [[ "$file" != *".git"* ]]; then
- KERNEL_IMAGE="$file"
- priority_found=true
- break 2
- fi
- done
- done
- # 3. Phase 3: If not in priority folders, gather ALL copies across the workspace
- if [ "$priority_found" = false ]; then
- for file in **/"$target_name"; do
- if [ -f "$file" ] && [[ "$file" != *".git"* ]]; then
- fallback_images+=("$file")
- fi
- done
-
- fi
-
- shopt -u nocaseglob
-
-
- # ==========================================
- # VALIDATION AND LOGGING OUTPUT
- # ==========================================
- if [ "$priority_found" = true ]; then
- echo "========================================================"
- echo "SUCCESS: Selected kernel binary path:"
- echo " -> $KERNEL_IMAGE"
- echo "========================================================"
- else
- echo "WARNING: Could not locate '$target_name' inside specified priority targets!"
-
- if [ ${#fallback_images[@]} -eq 0 ]; then
- echo "ERROR: The file was not found ANYWHERE in the workspace. Compilation likely failed."
- exit 1
- else
- echo "--------------------------------------------------------"
- echo "DISCOVERY MODE: Found the following alternative locations:"
- echo "--------------------------------------------------------"
- for fallback in "${fallback_images[@]}"; do
- echo " -> $fallback"
- done
- echo "--------------------------------------------------------"
- echo "Action Required: Update your script matching rules using a parent folder named above."
- exit 1
- fi
- fi
- #if [[ ${{ inputs.branch }} == SM-S928B* || ${{ inputs.branch }} == SM-S931* || ${{ inputs.branch }} == SM-F741* ]]; then
- # KERNEL_IMAGE=$(find kernel_platform/out -type f -path "*_kbuild_mixed_tree/Image" | head -n1)
- # echo "$KERNEL_IMAGE"
- # cp "$KERNEL_IMAGE" "$ANYKERNEL3/Image"
- #elif [[ -f ./kernel_platform/bazel-bin/common/kernel_aarch64/Image ]]; then
- # cp ./kernel_platform/bazel-bin/common/kernel_aarch64/Image "$ANYKERNEL3/Image"
- #elif [[ -f ./bazel-bin/kernel/kernel_aarch64/Image ]]; then
- #cp ./bazel-bin/kernel/kernel_aarch64/Image "$ANYKERNEL3/Image"
- #elif [[ "${{ inputs.branch }}" == "SM-S928B-Oneui7" || "${{ inputs.branch }}" == "SM-S928B-Oneui8-bit4" || "${{ inputs.branch }}" == "SM-S928B-Oneui8-bit5" || "${{ inputs.branch }}" == "SM-F741B-Oneui8" ]]; then
- # cp ./kernel_platform/sec/dist/Image "$ANYKERNEL3/Image"
- #elif [[ "${{ inputs.branch }}" == "SM-S928B-Oneui6.1" ]]; then
- # cp ./out/msm-pineapple-pineapple-gki/dist/Image "$ANYKERNEL3/Image"
- #elif [[ "${{ inputs.branch }}" == "SM-S938B-Oneui7" || "${{ inputs.branch }}" == "SM-S931B-Oneui8" || "${{ inputs.branch }}" == "SM-M556B-Oneui8" ]]; then
- # cp ./kernel_platform/gki/dist/Image "$ANYKERNEL3/Image"
- #elif [[ "${{ inputs.branch }}" == "SM-X916B" || "${{ inputs.branch }}" == "SM-F946N-Oneui7" || "${{ inputs.branch }}" == "SM-F946B-Oneui8" || "${{ inputs.branch }}" == "SM-S916B-Oneui8" || "${{ inputs.branch }}" == "SM-S918B-Oneui8" || ${{ inputs.branch }} == SM-S911B* || "${{ inputs.branch }}" == "SM-X710-Oneui6.1.1" ]]; then
- # cp ./out/msm-kalama-kalama-gki/dist/Image "$ANYKERNEL3/Image"
- #elif [[ ${{ inputs.branch }} == SM-A546* || "${{ inputs.branch }}" == "SM-M146B-Oneui7-ADYJ2" || "${{ inputs.branch }}" == "SM-S908B-Oneui8-bitK" || "${{ inputs.branch }}" == "SM-X610-Oneui6.1.1-bit7" || "${{ inputs.branch }}" == "SM-A166B-Oneui7" ]]; then
- # cp ./arch/arm64/boot/Image "$ANYKERNEL3/Image"
- #elif [[ "${{ inputs.branch }}" == "SM-A566B" ]]; then
- # cp ./kernel-6.6/out/arch/arm64/boot/Image "$ANYKERNEL3/Image"
- #elif [[ ${{ inputs.branch }} == SM-S926B* ]]; then
- # #cp ./out/s5e9945_user/dist/Image "$ANYKERNEL3/Image"
- # KERNEL_IMAGE=$(find out -type f -name "Image" | head -n1)
- # echo "$KERNEL_IMAGE"
- # cp "$KERNEL_IMAGE" "$ANYKERNEL3/Image"
- #elif [[ ${{ inputs.branch }} == SM-A556* ]]; then
- # #cp ./out/s5e8845_user/dist/Image "$ANYKERNEL3/Image"
- # KERNEL_IMAGE=$(find out -type f -name "Image" | head -n1)
- # echo "$KERNEL_IMAGE"
- # cp "$KERNEL_IMAGE" "$ANYKERNEL3/Image"
- #elif [[ "${{ inputs.branch }}" == "SM-S901E-Oneui8" || "${{ inputs.branch }}" == "SM-X800-Oneui8" ]]; then
- # cp ./out/msm-waipio-waipio-gki/dist/Image "$ANYKERNEL3/Image"
- #elif [[ ${{ inputs.branch }} == SM-A055* ]]; then
- # #cp ./out/target/product/a05m/obj/KLEAF_OBJ/dist/kernel_device_modules-6.6/mgk_64_k66_kernel_aarch64.user/Image.gz "$ANYKERNEL3/Image.gz"
- # KERNEL_IMAGE=$(find out -type f -name "Image.gz" | head -n1)
- # echo "$KERNEL_IMAGE"
- # cp "$KERNEL_IMAGE" "$ANYKERNEL3/Image.gz"
- #elif [[ "${{ inputs.branch }}" == "SM-A075M-Oneui7" ]]; then
- # cp ./out/target/product/a07/obj/KERNEL_OBJ/kernel-5.10/arch/arm64/boot/Image.gz "$ANYKERNEL3/Image.gz"
- #elif [[ ${{ inputs.branch }} == SM-X926* ]]; then
- # #cp ./out/target/product/gts10u/obj/KLEAF_OBJ/dist/kernel_device_modules-6.1/mgk_64_k61_kernel_aarch64.user/Image.gz "$ANYKERNEL3/Image.gz"
- # KERNEL_IMAGE=$(find out -type f -name "Image.gz" | head -n1)
- # echo "$KERNEL_IMAGE"
- # cp "$KERNEL_IMAGE" "$ANYKERNEL3/Image.gz"
- #else
- # echo "Error: Image file not found in any expected location"
- # exit 1
- #fi
|