action.yml 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. name: prepare ak3
  2. description: copy kernel image to ak3 folder
  3. runs:
  4. using: composite
  5. steps:
  6. - name: copy image to ak3 folder depending on branch
  7. shell: bash
  8. run: |
  9. cd "$CONFIG"
  10. # 1. Determine target file name based on branch structure
  11. if [[ "$BRANCH" == SM-A055* || "$BRANCH" == SM-X926* || "$BRANCH" == "SM-A075M-Oneui7" ]]; then
  12. target_name="Image.gz"
  13. else
  14. target_name="Image"
  15. fi
  16. shopt -s globstar
  17. shopt -s nocaseglob
  18. KERNEL_IMAGE=""
  19. priority_found=false
  20. fallback_images=()
  21. search_roots=("." "kernel_platform/out" "out")
  22. # ==========================================
  23. # PHASE 1: DIRECT BAZEL DEPENDENCY QUERY (SMART)
  24. # ==========================================
  25. for priority in "kbuild_mixed_tree" "dist" "kernel_aarch64" ".user" "_user" "boot"; do
  26. for root in "${search_roots[@]}"; do
  27. if [ -d "$root" ]; then
  28. # Place the wildcard * directly in the path syntax so Bash expands it natively
  29. for file in "$root"/**/*"$priority"/"$target_name"; do
  30. if [ -f "$file" ] && [[ "$file" != *".git"* ]]; then
  31. KERNEL_IMAGE="$file"
  32. priority_found=true
  33. cp "$KERNEL_IMAGE" "$ANYKERNEL3/$target_name"
  34. break 3 # Lock in and break out of all three loops immediately
  35. fi
  36. done
  37. fi
  38. done
  39. done
  40. # ==========================================
  41. # PHASE 3: DEEP WORKSPACE FALLBACK DISCOVERY
  42. # ==========================================
  43. if [ "$priority_found" = false ]; then
  44. echo "Priority folder target missing. Running complete disk scan..."
  45. for root in "${search_roots[@]}"; do
  46. if [ -d "$root" ]; then
  47. for file in "$root"/**/"$target_name"; do
  48. if [ -f "$file" ] && [[ "$file" != *".git"* ]]; then
  49. if [[ ! " ${fallback_images[*]} " =~ " ${file} " ]]; then
  50. fallback_images+=("$file")
  51. fi
  52. fi
  53. done
  54. fi
  55. done
  56. if [ ${#fallback_images[@]} -gt 0 ]; then
  57. KERNEL_IMAGE="${fallback_images[0]}"
  58. fi
  59. fi
  60. shopt -u nocaseglob
  61. # ==========================================
  62. # VALIDATION AND LOGGING OUTPUT
  63. # ==========================================
  64. if [ "$priority_found" = true ]; then
  65. echo "========================================================"
  66. echo "SUCCESS: Selected kernel binary path:"
  67. echo " -> $KERNEL_IMAGE"
  68. echo "KERNEL_IMAGE=$KERNEL_IMAGE" >> $GITHUB_ENV
  69. echo "========================================================"
  70. else
  71. echo "WARNING: Could not locate '$target_name' inside specified priority targets!"
  72. if [ ${#fallback_images[@]} -eq 0 ]; then
  73. echo "ERROR: The file was not found ANYWHERE in the workspace. Compilation likely failed."
  74. exit 1
  75. else
  76. echo "--------------------------------------------------------"
  77. echo "DISCOVERY MODE: Found the following alternative locations:"
  78. echo "--------------------------------------------------------"
  79. for fallback in "${fallback_images[@]}"; do
  80. echo " -> $fallback"
  81. done
  82. echo "--------------------------------------------------------"
  83. echo "Action Required: Update your script matching rules using a parent folder named above."
  84. exit 1
  85. fi
  86. fi
  87. - name: check IKCONFIG
  88. shell: bash
  89. run: |
  90. "$COMMON/scripts/extract-ikconfig" "$CONFIG/$KERNEL_IMAGE" | grep -E 'CONFIG_UH|CONFIG_UH_RKP|CONFIG_UH_LKMAUTH|CONFIG_UH_LKM_BLOCK|CONFIG_RKP|CONFIG_RKP_CFP_JOPP|CONFIG_RKP_CFP_ROPP|CONFIG_RKP_CFP|CONFIG_SECURITY_DEFEX|CONFIG_PROCA|CONFIG_FIVE|CONFIG_KDP|CONFIG_KDP_NS|CONFIG_LTO'
  91. #if [[ $BRANCH == SM-S928B* || $BRANCH == SM-S931* || $BRANCH == SM-F741* ]]; then
  92. # KERNEL_IMAGE=$(find kernel_platform/out -type f -path "*_kbuild_mixed_tree/Image" | head -n1)
  93. # echo "$KERNEL_IMAGE"
  94. # cp "$KERNEL_IMAGE" "$ANYKERNEL3/Image"
  95. #elif [[ -f ./kernel_platform/bazel-bin/common/kernel_aarch64/Image ]]; then
  96. # cp ./kernel_platform/bazel-bin/common/kernel_aarch64/Image "$ANYKERNEL3/Image"
  97. #elif [[ -f ./bazel-bin/kernel/kernel_aarch64/Image ]]; then
  98. #cp ./bazel-bin/kernel/kernel_aarch64/Image "$ANYKERNEL3/Image"
  99. #elif [[ "$BRANCH" == "SM-S928B-Oneui7" || "$BRANCH" == "SM-S928B-Oneui8-bit4" || "$BRANCH" == "SM-S928B-Oneui8-bit5" || "$BRANCH" == "SM-F741B-Oneui8" ]]; then
  100. # cp ./kernel_platform/sec/dist/Image "$ANYKERNEL3/Image"
  101. #elif [[ "$BRANCH" == "SM-S928B-Oneui6.1" ]]; then
  102. # cp ./out/msm-pineapple-pineapple-gki/dist/Image "$ANYKERNEL3/Image"
  103. #elif [[ "$BRANCH" == "SM-S938B-Oneui7" || "$BRANCH" == "SM-S931B-Oneui8" || "$BRANCH" == "SM-M556B-Oneui8" ]]; then
  104. # cp ./kernel_platform/gki/dist/Image "$ANYKERNEL3/Image"
  105. #elif [[ "$BRANCH" == "SM-X916B" || "$BRANCH" == "SM-F946N-Oneui7" || "$BRANCH" == "SM-F946B-Oneui8" || "$BRANCH" == "SM-S916B-Oneui8" || "$BRANCH" == "SM-S918B-Oneui8" || $BRANCH == SM-S911B* || "$BRANCH" == "SM-X710-Oneui6.1.1" ]]; then
  106. # cp ./out/msm-kalama-kalama-gki/dist/Image "$ANYKERNEL3/Image"
  107. #elif [[ $BRANCH == SM-A546* || "$BRANCH" == "SM-M146B-Oneui7-ADYJ2" || "$BRANCH" == "SM-S908B-Oneui8-bitK" || "$BRANCH" == "SM-X610-Oneui6.1.1-bit7" || "$BRANCH" == "SM-A166B-Oneui7" ]]; then
  108. # cp ./arch/arm64/boot/Image "$ANYKERNEL3/Image"
  109. #elif [[ "$BRANCH" == "SM-A566B" ]]; then
  110. # cp ./kernel-6.6/out/arch/arm64/boot/Image "$ANYKERNEL3/Image"
  111. #elif [[ $BRANCH == SM-S926B* ]]; then
  112. # #cp ./out/s5e9945_user/dist/Image "$ANYKERNEL3/Image"
  113. # KERNEL_IMAGE=$(find out -type f -name "Image" | head -n1)
  114. # echo "$KERNEL_IMAGE"
  115. # cp "$KERNEL_IMAGE" "$ANYKERNEL3/Image"
  116. #elif [[ $BRANCH == SM-A556* ]]; then
  117. # #cp ./out/s5e8845_user/dist/Image "$ANYKERNEL3/Image"
  118. # KERNEL_IMAGE=$(find out -type f -name "Image" | head -n1)
  119. # echo "$KERNEL_IMAGE"
  120. # cp "$KERNEL_IMAGE" "$ANYKERNEL3/Image"
  121. #elif [[ "$BRANCH" == "SM-S901E-Oneui8" || "$BRANCH" == "SM-X800-Oneui8" ]]; then
  122. # cp ./out/msm-waipio-waipio-gki/dist/Image "$ANYKERNEL3/Image"
  123. #elif [[ $BRANCH == SM-A055* ]]; then
  124. # #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"
  125. # KERNEL_IMAGE=$(find out -type f -name "Image.gz" | head -n1)
  126. # echo "$KERNEL_IMAGE"
  127. # cp "$KERNEL_IMAGE" "$ANYKERNEL3/Image.gz"
  128. #elif [[ "$BRANCH" == "SM-A075M-Oneui7" ]]; then
  129. # cp ./out/target/product/a07/obj/KERNEL_OBJ/kernel-5.10/arch/arm64/boot/Image.gz "$ANYKERNEL3/Image.gz"
  130. #elif [[ $BRANCH == SM-X926* ]]; then
  131. # #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"
  132. # KERNEL_IMAGE=$(find out -type f -name "Image.gz" | head -n1)
  133. # echo "$KERNEL_IMAGE"
  134. # cp "$KERNEL_IMAGE" "$ANYKERNEL3/Image.gz"
  135. #else
  136. # echo "Error: Image file not found in any expected location"
  137. # exit 1
  138. #fi