[
  {
    "path": ".github/workflows/Build Kernel Only.yml",
    "content": "name: Build Kernel Only\non:\n  workflow_dispatch:\n    inputs:\n    \n      CPU:\n        description: \"CPU分支\"\n        required: true\n        type: choice\n        options:\n          - 'sm8750'\n          - 'sm8735'\n          - 'mt6991'\n          - 'sm8650'\n          - 'mt6989'\n          - 'sm8635'\n          - 'sm8550'\n          - 'sm8450'\n          - 'sm8475'\n          - 'sm7675'\n          - 'sm7635'\n          - 'sm7550'\n          - 'sm6375'\n        default: 'sm8650'\n        \n      FEIL:\n        description: \"手机型号\"\n        required: true\n        type: choice\n        options:\n          - 'oneplus_13_b'\n          - 'oneplus_13s_b'\n          - 'oneplus_13t_b'\n          - 'oneplus_ace5_pro_b'\n          - 'oneplus_ace_6'\n          - 'oneplus_pad_2_pro_b'\n          - 'oneplus_pad_3_b'\n          - 'oneplus_ace5_ultra_b'\n          - 'oneplus_turbo_6'\n          - 'oneplus_12_b'\n          - 'oneplus_ace3_pro_b'\n          - 'oneplus_ace5_b'\n          - 'oneplus_13r_b'\n          - 'oneplus_pad2_b'\n          - 'oneplus_pad_pro_b'\n          - 'oneplus_ace5_race_b'\n          - 'oneplus_nord_5_b'\n          - 'oneplus_11_b'\n          - 'oneplus_12r_b'\n          - 'oneplus_ace2_pro_b'\n          - 'oneplus_ace3_b'\n          - 'oneplus_open_b'\n          - 'oneplus_10t_v'\n          - 'oneplus_11r_b'\n          - 'oneplus_ace2_b'\n          - 'oneplus_ace_pro_v'\n          - 'oneplus_10_pro_b'\n          - 'oneplus_ace_3v_b'\n          - 'oneplus_turbo_6v'\n          - 'oneplus_nord_4_b'\n          - 'oneplus_nord_ce4_lite_5g'\n          - 'oneplus_nord_ce4_b'\n        default: 'oneplus_12_b'\n        \n      ANDROID_VERSION:\n        description: \"内核安卓KMI版本\"\n        required: true\n        type: choice\n        options:\n          - 'android15'\n          - 'android14'\n          - 'android13'\n          - 'android12'\n        default: 'android14'\n        \n      KERNEL_VERSION:\n        description: \"内核版本\"\n        required: true\n        type: choice\n        options:\n          - '6.6'\n          - '6.1'\n          - '5.15'\n          - '5.10'\n        default: '6.1'\n       \n      lz4kd:\n        description: \"是否启用lz4kd(6.1 关闭时使用 lz4 + zstd; 6.6 关闭时使用 lz4)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      bbg:\n        description: \"是否启用BBG基带保护\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'On'\n       \n      bbr:\n        description: \"是否启用BBR算法(对手机日用无太大意义甚至可能负优化)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      proxy:\n        description: \"是否添加代理性能优化(联发科芯片跑的时候请关闭否则出现恶性问题)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'On'\n\n      UNICODE_BYPASS:\n        description: \"是否添加Unicode零宽绕过修复补丁(高内核版本不推荐开启, 建议使用 https://t.me/real5ec1cff/271 无痛修复)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n         \njobs:\n  build:\n    name: For ${{ github.event.inputs.FEIL }} lz4kd ${{ github.event.inputs.lz4kd }}\n    runs-on: ubuntu-latest\n    env:\n      CCACHE_COMPILERCHECK: \"%compiler% -dumpmachine; %compiler% -dumpversion\"\n      CCACHE_NOHASHDIR: \"true\"\n      CCACHE_HARDLINK: \"true\"\n      CCACHE_MAXSIZE: 8G\n      \n    steps:\n      - name: \"🚀 Maximize Build Space | 最大化构建空间\"\n        if: ${{ github.event.inputs.KERNEL_VERSION == '5.10' || github.event.inputs.KERNEL_VERSION == '5.15' }}\n        uses: easimon/maximize-build-space@master\n        with:\n          root-reserve-mb: 8192\n          temp-reserve-mb: 4096\n          remove-dotnet: 'true'\n          remove-android: 'true'\n          remove-haskell: 'true'\n          remove-codeql: 'true'\n\n      - name: \"⚙️ Setup Cache Env | 设置缓存环境\"\n        run: |\n          echo \"🔧 正在设置机型隔离缓存目录...\"\n          echo \"CCACHE_DIR=$HOME/.ccache_${{ github.event.inputs.FEIL }}_Kernel\" >> $GITHUB_ENV\n          mkdir -p \"$HOME/.ccache_${{ github.event.inputs.FEIL }}_Kernel\"\n          echo \"✅ 缓存目录已设置: $HOME/.ccache_${{ github.event.inputs.FEIL }}_Kernel\"\n\n      - name: \"🔐 Configure Git | 配置Git账户\"\n        run: |\n          echo \"🔧 正在配置Git用户信息...\"\n          git config --global user.name \"build\"\n          git config --global user.email \"2210077278@qq.com\"\n          echo \"✅ Git配置完成\"\n\n      - name: \"📦 Cache & Install Dependencies | 缓存 & 安装构建依赖\"\n        uses: awalsh128/cache-apt-pkgs-action@latest \n        with: \n          packages: python3 git curl ccache libelf-dev build-essential flex bison libssl-dev libncurses-dev liblz4-tool zlib1g-dev libxml2-utils rsync unzip gawk dos2unix\n          execute_install_scripts: true\n\n      - name: \"💾 Restore ccache | 恢复ccache缓存\"\n        uses: actions/cache@v5\n        with:\n          path: ${{ env.CCACHE_DIR }}\n          key: ccache-${{ runner.os }}-${{ github.ref }}-${{ github.event.inputs.FEIL }}-Kernel\n          restore-keys: |\n            ccache-${{ runner.os }}-${{ github.event.inputs.FEIL }}-Kernel\n            ccache-${{ runner.os }}-Kernel\n\n      - name: \"⚙️ Initialize ccache | 初始化ccache\"\n        run: |\n          echo \"🔧 正在初始化ccache...\"\n          INIT_FLAG=\"${{ env.CCACHE_DIR }}/.ccache_initialized\"\n          \n          if command -v ccache >/dev/null 2>&1; then\n            if [ ! -f \"$INIT_FLAG\" ]; then\n              mkdir -p \"${{ env.CCACHE_DIR }}\"\n              ccache -M ${{ env.CCACHE_MAXSIZE }}\n              touch \"$INIT_FLAG\"\n              echo \"🆕 ccache初始化完成\"\n            else\n              echo \"ℹ️ ccache已存在，跳过初始化\"\n            fi\n          else\n            echo \"⚠️ 未找到ccache命令，跳过初始化\"\n          fi\n          # 显示缓存统计\n          ccache -s\n          echo \"✅ ccache初始化流程完成\"\n\n      - name: \"📥 Install Repo Tool | 安装Repo工具\"\n        run: |\n          echo \"⬇️ 正在下载repo工具...\"\n          curl -fsSL https://storage.googleapis.com/git-repo-downloads/repo > ~/repo\n          chmod a+x ~/repo\n          sudo mv ~/repo /usr/local/bin/repo\n          echo \"✅ repo工具安装完成\"\n\n      - name: \"⬇️ Clone Kernel Source | 克隆内核源码\"\n        run: |\n          echo \"🌐 正在初始化内核仓库...\"\n          mkdir kernel_workspace && cd kernel_workspace\n         \n          repo init -u https://github.com/Xiaomichael/kernel_manifest.git -b refs/heads/oneplus/${{ github.event.inputs.CPU }} -m ${{ github.event.inputs.FEIL }}.xml --depth=1\n\n          echo \"🔄 同步代码库(使用$(nproc --all)线程)...\"\n          repo sync -c -j$(nproc --all) --no-tags --no-clone-bundle --force-sync\n          \n          rm kernel_platform/common/android/abi_gki_protected_exports_* || echo \"No protected exports!\"\n          rm kernel_platform/msm-kernel/android/abi_gki_protected_exports_* || echo \"No protected exports!\"\n\n          # Remove -dirty in kernel version\n          sed -i 's/ -dirty//g' kernel_platform/common/scripts/setlocalversion\n          sed -i 's/ -dirty//g' kernel_platform/msm-kernel/scripts/setlocalversion\n          sed -i 's/ -dirty//g' kernel_platform/external/dtc/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/common/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/msm-kernel/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/external/dtc/scripts/setlocalversion\n\n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" != \"6.6\" ]; then\n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/common/scripts/setlocalversion            \n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/msm-kernel/scripts/setlocalversion\n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/external/dtc/scripts/setlocalversion\n          else\n            ESCAPED_SUFFIX=$(printf '%s\\n' \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\" | sed 's:[\\/&]:\\\\&:g')\n            sudo sed -i \"s/-4k/$ESCAPED_SUFFIX/g\" kernel_platform/common/arch/arm64/configs/gki_defconfig\n            sed -i 's/${scm_version}//' kernel_platform/common/scripts/setlocalversion\n            sed -i 's/${scm_version}//' kernel_platform/msm-kernel/scripts/setlocalversion\n          fi\n\n          echo \"✅ 内核配置完成\"\n\n      - name: \"⚡ Setup Baseband-guard | 配置 Baseband-guard\"\n        if: ${{ github.event.inputs.bbg == 'On' }}\n        run: |\n          set -e\n          cd kernel_workspace/kernel_platform/common\n          curl -sSL https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh -o setup.sh\n          bash setup.sh\n\n      - name: \"🔧 Setup ZRAM | 配置 ZRAM\"\n        run: |\n          cd kernel_workspace\n          echo \"⬇️ 下载ZRAM补丁...\"\n          git clone https://github.com/Xiaomichael/kernel_patches.git\n          git clone https://github.com/ShirkNeko/SukiSU_patch.git\n          \n          cd kernel_platform\n          echo \"📝 复制补丁文件...\"\n          cp ../kernel_patches/zram_patches/001-lz4.patch ./common/\n          cp ../kernel_patches/zram_patches/lz4armv8.S ./common/lib\n          cp ../kernel_patches/zram_patches/002-zstd.patch ./common/\n\n          if [ \"${{ github.event.inputs.UNICODE_BYPASS }}\" = \"On\" ]; then\n            if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n              cp ../kernel_patches/common/unicode_bypass_fix_6.1+.patch ./common/unicode_bypass_fix.patch\n            elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.15\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.10\" ]; then\n              cp ../kernel_patches/common/unicode_bypass_fix_6.1-.patch ./common/unicode_bypass_fix.patch\n            fi\n          fi\n          \n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            # Copy lz4k from ShirkNeko\n            cp -r ../SukiSU_patch/other/zram/lz4k/include/linux/* ./common/include/linux\n            cp -r ../SukiSU_patch/other/zram/lz4k/lib/* ./common/lib\n            cp -r ../SukiSU_patch/other/zram/lz4k/crypto/* ./common/crypto\n            cp -r ../SukiSU_patch/other/zram/lz4k_oplus ./common/lib/\n          fi\n          \n          echo \"🔧 应用补丁...\"\n          \n          cd ./common\n          \n          if [ \"${{ github.event.inputs.UNICODE_BYPASS }}\" = \"On\" ]; then\n            echo \"📦 正在应用Unicode零宽绕过修复补丁...\"\n            patch -p1 < unicode_bypass_fix.patch\n          fi\n\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"Off\" ] && [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ]; then\n            echo \"📦 应用lz4+zstd补丁...\"\n            git apply -p1 < 001-lz4.patch || true\n            patch -p1 < 002-zstd.patch || true\n          fi\n\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"Off\" ] && [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n            echo \"📦 应用lz4补丁...\"\n            git apply -p1 < 001-lz4.patch || true\n          fi\n          \n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            echo \"🚀 应用lz4kd补丁...\"\n            cp ../../SukiSU_patch/other/zram/zram_patch/${{ github.event.inputs.KERNEL_VERSION }}/lz4kd.patch ./\n            patch -p1 -F 3 < lz4kd.patch || true\n            cp ../../SukiSU_patch/other/zram/zram_patch/${{ github.event.inputs.KERNEL_VERSION }}/lz4k_oplus.patch ./\n            patch -p1 -F 3 < lz4k_oplus.patch || true\n          fi\n          \n          echo \"✅ 所有补丁应用完成\"\n\n      - name: \"⚙️ Apply SCHED Patch | 应用风驰补丁\"\n        if: ${{ github.event.inputs.KERNEL_VERSION == '6.6' }}\n        run: |\n          cd kernel_workspace/kernel_platform/common\n          echo \"⬇️ 正在拉取风驰补丁\"          \n          if [ \"${{ github.event.inputs.FEIL }}\" == \"oneplus_ace5_ultra\" ] || [ \"${{ github.event.inputs.FEIL }}\" = \"oneplus_ace5_ultra_b\" ]; then\n              git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"mt6991\"\n          else\n              git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"sm8750\"\n          fi\n          cp ./SCHED_PATCH/fengchi_${{ github.event.inputs.FEIL }}.patch ./\n          if [[ -f \"fengchi_${{ github.event.inputs.FEIL }}.patch\" ]]; then\n            echo \"⚙️ 开始应用风驰补丁\"\n            dos2unix \"fengchi_${{ github.event.inputs.FEIL }}.patch\"\n            patch -p1 -F 3 < \"fengchi_${{ github.event.inputs.FEIL }}.patch\"\n            echo \"✅ 完美风驰补丁应用完成\"\n          else\n            sed -i '1iobj-y += hmbird_patch.o' drivers/Makefile\n            wget https://github.com/Numbersf/Action-Build/raw/SukiSU-Ultra/patches/hmbird_patch.patch\n            echo \"⚙️ 正在打OGKI转换GKI补丁\"\n            patch -p1 -F 3 < hmbird_patch.patch\n            echo \"✅ OGKI转换GKI_patch完成\"\n          fi\n\n      - name: \"⚙️ Configure Kernel Options | 配置内核选项\"\n        run: |\n          echo \"⚙️ 正在配置内核编译选项...\"\n          \n          cd kernel_workspace/kernel_platform\n\n          if [ \"${{ github.event.inputs.bbg }}\" == \"On\" ]; then\n            echo \"⚡ 启用BBG中...\"\n            echo 'CONFIG_BBG=y' >> ./common/arch/arm64/configs/gki_defconfig\n            echo 'CONFIG_LSM=\"landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf,baseband_guard\"' >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n\n          # 添加对 Mountify (backslashxx/mountify) 模块的支持\n          echo \"CONFIG_TMPFS_XATTR=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          echo \"CONFIG_TMPFS_POSIX_ACL=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          \n          if [ \"${{ github.event.inputs.bbr }}\" == \"On\" ]; then\n            echo \"🌐 启用BBR网络算法...\"\n            echo \"CONFIG_TCP_CONG_ADVANCED=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_BBR=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NET_SCH_FQ=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_BIC=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_WESTWOOD=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_HTCP=n\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            echo \"📦 启用lz4kd压缩...\"\n            echo \"CONFIG_CRYPTO_LZ4KD=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_CRYPTO_LZ4K_OPLUS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_ZRAM_WRITEBACK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.1\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.6\" ]; then\n            # Add O2 config\n            echo \"📦 为6.1&6.6加入O2优化...\"\n            echo \"CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n\n          if [ \"${{ github.event.inputs.proxy }}\" == \"On\" ]; then\n            # Add proxy config\n            echo \"📦 加入代理优化...\"\n            echo \"CONFIG_BPF_STREAM_PARSER=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NETFILTER_XT_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_MAX=65534\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_IP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_IPMAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_PORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPMARK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORTIP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORTNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPMAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_MAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETPORTNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETPORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETIFACE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_LIST_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP6_NF_NAT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP6_NF_TARGET_MASQUERADE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.10\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.15\" ]; then\n            echo \"📦 正在为5.10系与5.15系配置lto中...\"\n            DEFCONFIG=./common/arch/arm64/configs/gki_defconfig\n            sed -i 's/^CONFIG_LTO=n/CONFIG_LTO=y/' \"$DEFCONFIG\"\n            sed -i 's/^CONFIG_LTO_CLANG_FULL=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG\"\n            sed -i 's/^CONFIG_LTO_CLANG_NONE=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG\"\n            grep -q '^CONFIG_LTO_CLANG_THIN=y' \"$DEFCONFIG\" || echo 'CONFIG_LTO_CLANG_THIN=y' >> \"$DEFCONFIG\"\n          fi\n\n          #跳过将uapi标准头安装到 usr/include 目录的不必要操作，节省编译时间\n          echo \"CONFIG_HEADERS_INSTALL=n\" >> ./common/arch/arm64/configs/gki_defconfig\n\n          # Remove check_defconfig\n          sed -i 's/check_defconfig//' ./common/build.config.gki\n          echo \"✅ 内核配置更新完成\"\n          \n      - name: \"🔨 Build Kernel | 编译内核\"\n        run: |\n          echo \"🏗️ 开始内核编译...\"\n          export KBUILD_BUILD_USER=\"xiaoxiaow\"\n          export KBUILD_BUILD_HOST=\"xiaoxiaow_build\"\n\n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.1\" ]; then\n            export KBUILD_BUILD_TIMESTAMP=\"Tue Mar 10 03:53:33 UTC 2026\"\n            export KBUILD_BUILD_VERSION=1\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out KCFLAGS+=-O2 gki_defconfig all\n\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.6\" ]; then\n            export PATH=\"/usr/lib/ccache:$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r510928/bin:$PATH\" \n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out KCFLAGS+=-O2  gki_defconfig all            \n          \n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.15\" ]; then\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r450784e/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\n            \n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.10\" ]; then\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts-master/clang/host/linux-x86/clang-r416183b/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM_IAS=1 LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\n          fi\n          \n          # 显示ccache统计信息\n          ccache -s\n          echo \"✅ 内核编译完成\"\n          \n      - name: \"📦 Package Kernel | 打包内核\"\n        run: |\n          echo \"📦 准备AnyKernel3打包环境...\"\n          git clone https://github.com/Xiaomichael/AnyKernel3 --depth=1\n          rm -rf ./AnyKernel3/.git\n          mkdir -p kernel_workspace/kernel_platform/out/Final-Image-Find/\n          dir1=\"\"\n          dir2=\"\"\n          image_path=$(find \"./kernel_workspace/kernel_platform/common/out/\" -name \"Image\" | head -n 1)\n          if [ -n \"$image_path\" ]; then\n            dir1=$(dirname \"$image_path\")/\n            echo \"✅ 成功找到 Image 文件\"\n          fi\n          if [ -n \"$image_path\" ] && [ -f \"$image_path\" ]; then\n            echo \"Image file finally located at: $image_path\"\n            cp \"$image_path\" ./AnyKernel3/Image\n            cp \"$image_path\" kernel_workspace/kernel_platform/out/Final-Image-Find/Image\n          fi\n\n      - name: \"🧠 Set Artifact Name | 设置产物名称\"\n        id: set_name\n        run: |\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"On\" ]; then\n            echo \"ARTIFACT_NAME=Anykernel3_${{ github.event.inputs.FEIL }}_lz4kd_Kernel_Only\" >> $GITHUB_OUTPUT\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ]; then\n            echo \"ARTIFACT_NAME=Anykernel3_${{ github.event.inputs.FEIL }}_lz4_zstd_Kernel_Only\" >> $GITHUB_OUTPUT\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n            echo \"ARTIFACT_NAME=Anykernel3_${{ github.event.inputs.FEIL }}_lz4_Kernel_Only\" >> $GITHUB_OUTPUT\n          else\n            echo \"ARTIFACT_NAME=Anykernel3_${{ github.event.inputs.FEIL }}_Kernel_Only\" >> $GITHUB_OUTPUT\n          fi\n\n      - name: \"📤 Upload AnyKernel3 | 上传 AnyKernel3\"\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{ steps.set_name.outputs.ARTIFACT_NAME }}\n          path: ./AnyKernel3/*\n         \n      - name: \"📝 Find zram.ko & crypto_zstdn.ko | 查找 zram.ko & crypto_zstdn.ko\"\n        # if: ${{ github.event.inputs.lz4kd == 'On' }}\n        run: |\n          find -name zram.ko\n          find -name crypto_zstdn.ko\n          \n      - name: \"📤 Upload zram.ko | 上传 zram.ko\"\n        # if: ${{ github.event.inputs.lz4kd == 'On' }}\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{ github.event.inputs.FEIL }}_zram.ko\n          path: ./kernel_workspace/kernel_platform/common/out/drivers/block/zram/zram.ko\n"
  },
  {
    "path": ".github/workflows/Build KernelSU Next.yml",
    "content": "name: Build KernelSU Next\non:\n  workflow_dispatch:\n    inputs:\n    \n      CPU:\n        description: \"CPU分支\"\n        required: true\n        type: choice\n        options:\n          - 'sm8750'\n          - 'sm8735'\n          - 'mt6991'\n          - 'sm8650'\n          - 'mt6989'\n          - 'sm8635'\n          - 'sm8550'\n          - 'sm8450'\n          - 'sm8475'\n          - 'sm7675'\n          - 'sm7635'\n          - 'sm7550'\n          - 'sm6375'\n        default: 'sm8650'\n        \n      FEIL:\n        description: \"手机型号\"\n        required: true\n        type: choice\n        options:\n          - 'oneplus_13_b'\n          - 'oneplus_13s_b'\n          - 'oneplus_13t_b'\n          - 'oneplus_ace5_pro_b'\n          - 'oneplus_ace_6'\n          - 'oneplus_pad_2_pro_b'\n          - 'oneplus_pad_3_b'\n          - 'oneplus_ace5_ultra_b'\n          - 'oneplus_turbo_6'\n          - 'oneplus_12_b'\n          - 'oneplus_ace3_pro_b'\n          - 'oneplus_ace5_b'\n          - 'oneplus_13r_b'\n          - 'oneplus_pad2_b'\n          - 'oneplus_pad_pro_b'\n          - 'oneplus_ace5_race_b'\n          - 'oneplus_nord_5_b'\n          - 'oneplus_11_b'\n          - 'oneplus_12r_b'\n          - 'oneplus_ace2_pro_b'\n          - 'oneplus_ace3_b'\n          - 'oneplus_open_b'\n          - 'oneplus_10t_v'\n          - 'oneplus_11r_b'\n          - 'oneplus_ace2_b'\n          - 'oneplus_ace_pro_v'\n          - 'oneplus_10_pro_b'\n          - 'oneplus_ace_3v_b'\n          - 'oneplus_turbo_6v'\n          - 'oneplus_nord_4_b'\n          - 'oneplus_nord_ce4_lite_5g'\n          - 'oneplus_nord_ce4_b'\n        default: 'oneplus_12_b'\n        \n      ANDROID_VERSION:\n        description: \"内核安卓KMI版本\"\n        required: true\n        type: choice\n        options:\n          - 'android15'\n          - 'android14'\n          - 'android13'\n          - 'android12'\n        default: 'android14'\n        \n      KERNEL_VERSION:\n        description: \"内核版本\"\n        required: true\n        type: choice\n        options:\n          - '6.6'\n          - '6.1'\n          - '5.15'\n          - '5.10'\n        default: '6.1'\n\n      SUSFS:\n        description: \"是否启用SUSFS\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      lz4kd:\n        description: \"是否启用lz4kd(6.1 关闭时使用 lz4 + zstd; 6.6 关闭时使用 lz4)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      bbg:\n        description: \"是否启用BBG基带保护\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'On'\n       \n      bbr:\n        description: \"是否启用BBR算法(对手机日用无太大意义甚至可能负优化)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      proxy:\n        description: \"是否添加代理性能优化(联发科芯片跑的时候请关闭否则出现恶性问题)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'On'\n\n      UNICODE_BYPASS:\n        description: \"是否添加Unicode零宽绕过修复补丁(高内核版本不推荐开启, 建议使用 https://t.me/real5ec1cff/271 无痛修复)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n        \njobs:\n  build:\n    name: For ${{ github.event.inputs.FEIL }} lz4kd ${{ github.event.inputs.lz4kd }} SUSFS ${{ github.event.inputs.SUSFS }}\n    runs-on: ubuntu-latest\n    env:\n      CCACHE_COMPILERCHECK: \"%compiler% -dumpmachine; %compiler% -dumpversion\"\n      CCACHE_NOHASHDIR: \"true\"\n      CCACHE_HARDLINK: \"true\"\n      CCACHE_MAXSIZE: 8G\n      \n    steps:\n      - name: \"🚀 Maximize Build Space | 最大化构建空间\"\n        if: ${{ github.event.inputs.KERNEL_VERSION == '5.10' || github.event.inputs.KERNEL_VERSION == '5.15' }}\n        uses: easimon/maximize-build-space@master\n        with:\n          root-reserve-mb: 8192\n          temp-reserve-mb: 4096\n          remove-dotnet: 'true'\n          remove-android: 'true'\n          remove-haskell: 'true'\n          remove-codeql: 'true'\n\n      - name: \"⚙️ Setup Cache Env | 设置缓存环境\"\n        run: |\n          echo \"🔧 正在设置机型隔离缓存目录...\"\n          echo \"CCACHE_DIR=$HOME/.ccache_${{ github.event.inputs.FEIL }}_Next\" >> $GITHUB_ENV\n          mkdir -p \"$HOME/.ccache_${{ github.event.inputs.FEIL }}_Next\"\n          echo \"✅ 缓存目录已设置: $HOME/.ccache_${{ github.event.inputs.FEIL }}_Next\" \n\n      - name: \"🔐 Configure Git | 配置Git账户\"\n        run: |\n          echo \"🔧 正在配置Git用户信息...\"\n          git config --global user.name \"build\"\n          git config --global user.email \"2210077278@qq.com\"\n          echo \"✅ Git配置完成\"\n\n      - name: \"📦 Cache & Install Dependencies | 缓存 & 安装构建依赖\"\n        uses: awalsh128/cache-apt-pkgs-action@latest \n        with: \n          packages: python3 git curl ccache libelf-dev build-essential flex bison libssl-dev libncurses-dev liblz4-tool zlib1g-dev libxml2-utils rsync unzip gawk dos2unix\n          execute_install_scripts: true\n         \n      - name: \"💾 Restore ccache (With SUSFS) | 恢复ccache缓存 (With SUSFS)\"\n        if: ${{ github.event.inputs.SUSFS == 'On' }}\n        uses: actions/cache@v5\n        with:\n          path: ${{ env.CCACHE_DIR }}\n          key: ccache-${{ runner.os }}-${{ github.ref }}-${{ github.event.inputs.FEIL }}-Next-SUSFS\n          restore-keys: |\n            ccache-${{ runner.os }}-${{ github.event.inputs.FEIL }}-Next-SUSFS\n            ccache-${{ runner.os }}-Next-SUSFS\n\n      - name: \"💾 Restore ccache (Without SUSFS) | 恢复ccache缓存 (Without SUSFS)\"\n        if: ${{ github.event.inputs.SUSFS == 'Off' }}\n        uses: actions/cache@v5\n        with:\n          path: ${{ env.CCACHE_DIR }}\n          key: ccache-${{ runner.os }}-${{ github.ref }}-${{ github.event.inputs.FEIL }}-Next-NoSUSFS\n          restore-keys: |\n            ccache-${{ runner.os }}-${{ github.event.inputs.FEIL }}-Next-NoSUSFS\n            ccache-${{ runner.os }}-Next-NoSUSFS\n\n      - name: \"⚙️ Initialize ccache | 初始化ccache\"\n        run: |\n          echo \"🔧 正在初始化ccache...\"\n          INIT_FLAG=\"${{ env.CCACHE_DIR }}/.ccache_initialized\"\n          \n          if command -v ccache >/dev/null 2>&1; then\n            if [ ! -f \"$INIT_FLAG\" ]; then\n              mkdir -p \"${{ env.CCACHE_DIR }}\"\n              ccache -M ${{ env.CCACHE_MAXSIZE }}\n              touch \"$INIT_FLAG\"\n              echo \"🆕 ccache初始化完成\"\n            else\n              echo \"ℹ️ ccache已存在，跳过初始化\"\n            fi\n          else\n            echo \"⚠️ 未找到ccache命令，跳过初始化\"\n          fi\n          # 显示缓存统计\n          ccache -s\n          echo \"✅ ccache初始化流程完成\"\n\n      - name: \"📥 Install Repo Tool | 安装Repo工具\"\n        run: |\n          echo \"⬇️ 正在下载repo工具...\"\n          curl -fsSL https://storage.googleapis.com/git-repo-downloads/repo > ~/repo\n          chmod a+x ~/repo\n          sudo mv ~/repo /usr/local/bin/repo\n          echo \"✅ repo工具安装完成\"\n\n      - name: \"⬇️ Clone Kernel Source | 克隆内核源码\"\n        run: |\n          mkdir kernel_workspace && cd kernel_workspace\n\n          echo \"🌐 正在初始化内核仓库...\"\n          repo init -u https://github.com/Xiaomichael/kernel_manifest.git -b refs/heads/oneplus/${{ github.event.inputs.CPU }} -m ${{ github.event.inputs.FEIL }}.xml --depth=1\n\n          echo \"🔄 同步代码库(使用$(nproc --all)线程)...\"\n          repo sync -c -j$(nproc --all) --no-tags --no-clone-bundle --force-sync\n          \n          rm kernel_platform/common/android/abi_gki_protected_exports_* || echo \"No protected exports!\"\n          rm kernel_platform/msm-kernel/android/abi_gki_protected_exports_* || echo \"No protected exports!\"\n          \n          # Remove -dirty in kernel version\n          sed -i 's/ -dirty//g' kernel_platform/common/scripts/setlocalversion\n          sed -i 's/ -dirty//g' kernel_platform/msm-kernel/scripts/setlocalversion\n          sed -i 's/ -dirty//g' kernel_platform/external/dtc/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/common/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/msm-kernel/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/external/dtc/scripts/setlocalversion\n\n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" != \"6.6\" ]; then\n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/common/scripts/setlocalversion            \n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/msm-kernel/scripts/setlocalversion\n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/external/dtc/scripts/setlocalversion\n          else\n            ESCAPED_SUFFIX=$(printf '%s\\n' \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\" | sed 's:[\\/&]:\\\\&:g')\n            sudo sed -i \"s/-4k/$ESCAPED_SUFFIX/g\" kernel_platform/common/arch/arm64/configs/gki_defconfig\n            sed -i 's/${scm_version}//' kernel_platform/common/scripts/setlocalversion\n            sed -i 's/${scm_version}//' kernel_platform/msm-kernel/scripts/setlocalversion\n          fi\n\n          echo \"✅ 内核配置完成\"\n                \n      - name: \"⚡ Setup Baseband-guard | 配置 Baseband-guard\"\n        if: ${{ github.event.inputs.bbg == 'On'}}\n        run: |\n          set -e\n          cd kernel_workspace/kernel_platform/common\n          echo \"🛠️ 正在设置BBG...\"\n          curl -sSL https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh -o setup.sh\n          bash setup.sh\n          \n      - name: \"⚡ Setup KernelSU Next | 配置 KernelSU Next\"\n        run: |\n          cd kernel_workspace/kernel_platform\n          # 下载并执行设置脚本\n          echo \"🛠️ 正在设置KernelSU Next...\"\n          curl -LSs \"https://raw.githubusercontent.com/pershoot/KernelSU-Next/dev-susfs/kernel/setup.sh\" | bash -s dev-susfs\n\n          cd KernelSU-Next\n          KSU_VERSION=$(expr $(curl -sI \"https://api.github.com/repos/KernelSU-Next/KernelSU-Next/commits?sha=dev&per_page=1\" | grep -i \"link:\" | sed -n 's/.*page=\\([0-9]*\\)>; rel=\"last\".*/\\1/p') \"+\" 30000)\n          echo \"KSUVER=$KSU_VERSION\" >> $GITHUB_ENV\n          sed -i \"s/DKSU_VERSION=11998/DKSU_VERSION=${KSU_VERSION}/\" kernel/Makefile\n\n          echo \"✅ KernelSU Next 配置完成\"\n        \n      - name: \"🔧 Setup Patches | 配置补丁\"\n        run: |\n          cd kernel_workspace\n\n          echo \"⬇️ 下载所需补丁...\"\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then          \n            git clone https://github.com/cctv18/susfs4oki.git -b oki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}\n          fi\n          git clone https://github.com/Xiaomichael/kernel_patches.git\n          git clone https://github.com/ShirkNeko/SukiSU_patch.git\n\n          cd kernel_platform\n          echo \"📝 复制补丁文件...\"\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            cp ../susfs4oki/kernel_patches/50_add_susfs_in_gki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}.patch ./common/\n            cp ../susfs4oki/kernel_patches/fs/* ./common/fs/\n            cp ../susfs4oki/kernel_patches/include/linux/* ./common/include/linux/\n          else\n            cp ../kernel_patches/sukisu/scope_min_manual_hooks_v1.9.patch ./common/\n          fi\n\n          cp ../kernel_patches/zram_patches/001-lz4.patch ./common/\n          cp ../kernel_patches/zram_patches/lz4armv8.S ./common/lib\n          cp ../kernel_patches/zram_patches/002-zstd.patch ./common/\n          \n          if [ \"${{ github.event.inputs.UNICODE_BYPASS }}\" = \"On\" ]; then\n            if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n              cp ../kernel_patches/common/unicode_bypass_fix_6.1+.patch ./common/unicode_bypass_fix.patch\n            elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.15\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.10\" ]; then\n              cp ../kernel_patches/common/unicode_bypass_fix_6.1-.patch ./common/unicode_bypass_fix.patch\n            fi\n          fi\n\n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            # Copy lz4k from ShirkNeko\n            cp -r ../SukiSU_patch/other/zram/lz4k/include/linux/* ./common/include/linux\n            cp -r ../SukiSU_patch/other/zram/lz4k/lib/* ./common/lib\n            cp -r ../SukiSU_patch/other/zram/lz4k/crypto/* ./common/crypto\n            cp -r ../SukiSU_patch/other/zram/lz4k_oplus ./common/lib/\n          fi\n          \n          echo \"🔧 应用补丁...\"\n          cd ./common\n\n          if [ \"${{ github.event.inputs.UNICODE_BYPASS }}\" = \"On\" ]; then\n            echo \"📦 正在应用Unicode零宽绕过修复补丁...\"\n            patch -p1 < unicode_bypass_fix.patch\n          fi\n          \n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"Off\" ] && [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ]; then\n            echo \"📦 应用lz4+zstd补丁...\"\n            git apply -p1 < 001-lz4.patch || true\n            patch -p1 < 002-zstd.patch || true\n          fi\n\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"Off\" ] && [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n            echo \"📦 应用lz4补丁...\"\n            git apply -p1 < 001-lz4.patch || true\n          fi\n          \n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            echo \"🚀 应用lz4kd补丁...\"\n            cp ../../SukiSU_patch/other/zram/zram_patch/${{ github.event.inputs.KERNEL_VERSION }}/lz4kd.patch ./\n            patch -p1 -F 3 < lz4kd.patch || true\n            cp ../../SukiSU_patch/other/zram/zram_patch/${{ github.event.inputs.KERNEL_VERSION }}/lz4k_oplus.patch ./\n            patch -p1 -F 3 < lz4k_oplus.patch || true\n          fi\n\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then \n            echo \"📦 应用SUSFS补丁...\"\n            patch -p1 < 50_add_susfs_in_gki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}.patch || true\n            cp ../../kernel_patches/69_hide_stuff.patch ./\n            patch -p1 -F 3 < 69_hide_stuff.patch\n          else\n            echo \"📦 应用MANUAL_HOOK补丁...\"\n            patch -p1 --fuzz=3 < scope_min_manual_hooks_v1.9.patch\n          fi\n\n          echo \"✅ 所有补丁应用完成\"\n\n      - name: \"⚙️ Apply SCHED Patch | 应用风驰补丁\"\n        if: ${{ github.event.inputs.KERNEL_VERSION == '6.6' }}\n        run: |\n          cd kernel_workspace/kernel_platform/common\n          echo \"⬇️ 正在拉取风驰补丁\"\n          if [ \"${{ github.event.inputs.FEIL }}\" == \"oneplus_ace5_ultra\" ] || [ \"${{ github.event.inputs.FEIL }}\" = \"oneplus_ace5_ultra_b\" ]; then\n              git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"mt6991\"\n          else\n              git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"sm8750\"\n          fi\n          cp ./SCHED_PATCH/fengchi_${{ github.event.inputs.FEIL }}.patch ./\n          if [[ -f \"fengchi_${{ github.event.inputs.FEIL }}.patch\" ]]; then\n            echo \"⚙️ 开始应用风驰补丁\"\n            dos2unix \"fengchi_${{ github.event.inputs.FEIL }}.patch\"\n            patch -p1 -F 3 < \"fengchi_${{ github.event.inputs.FEIL }}.patch\"\n            echo \"✅ 完美风驰补丁应用完成\"\n          else\n            sed -i '1iobj-y += hmbird_patch.o' drivers/Makefile\n            wget https://github.com/Numbersf/Action-Build/raw/SukiSU-Ultra/patches/hmbird_patch.patch\n            echo \"⚙️ 正在打OGKI转换GKI补丁\"\n            patch -p1 -F 3 < hmbird_patch.patch\n            echo \"✅ OGKI转换GKI_patch完成\"\n          fi\n\n      - name: \"⚙️ Configure Kernel Options | 配置内核选项\"\n        run: |\n          cd kernel_workspace/kernel_platform\n\n          echo \"⚙️ 正在配置内核编译选项...\"\n\n          # Add KSU configuration settings\n          echo \"📦 启用 KSU 支持...\"\n          echo \"CONFIG_KSU=y\" >> ./common/arch/arm64/configs/gki_defconfig  \n            \n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            echo \"📦 启用 SUSFS 功能...\"\n            echo \"CONFIG_KSU_SUSFS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_PATH=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_MOUNT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_KSTAT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SPOOF_UNAME=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_ENABLE_LOG=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_OPEN_REDIRECT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_MAP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          else \n            echo \"📦 启用 MANUAL_HOOK...\"\n            echo \"CONFIG_KSU_SUSFS=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_MANUAL_HOOK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n\n          #添加对 Mountify (backslashxx/mountify) 模块的支持\n          echo \"CONFIG_TMPFS_XATTR=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          echo \"CONFIG_TMPFS_POSIX_ACL=y\" >> ./common/arch/arm64/configs/gki_defconfig\n\n          if [ \"${{ github.event.inputs.bbg }}\" == \"On\" ]; then\n            echo \"⚡ 启用BBG中...\"\n            echo 'CONFIG_BBG=y' >> ./common/arch/arm64/configs/gki_defconfig\n            echo 'CONFIG_LSM=\"landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf,baseband_guard\"' >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.bbr }}\" == \"On\" ]; then\n            echo \"🌐 启用BBR网络算法...\"\n            echo \"CONFIG_TCP_CONG_ADVANCED=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_BBR=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NET_SCH_FQ=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_BIC=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_WESTWOOD=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_HTCP=n\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n        \n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            echo \"📦 启用lz4kd压缩...\"\n            echo \"CONFIG_CRYPTO_LZ4KD=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_CRYPTO_LZ4K_OPLUS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_ZRAM_WRITEBACK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n\n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.1\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.6\" ]; then\n            # Add O2 config\n            echo \"📦 为6.1&6.6加入O2优化...\"\n            echo \"CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.proxy }}\" == \"On\" ]; then\n            # Add proxy config\n            echo \"CONFIG_BPF_STREAM_PARSER=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NETFILTER_XT_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_MAX=65534\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_IP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_IPMAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_PORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPMARK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORTIP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORTNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPMAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_MAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETPORTNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETPORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETIFACE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_LIST_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP6_NF_NAT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP6_NF_TARGET_MASQUERADE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.10\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.15\" ]; then\n            echo \"📦 正在为5.10系与5.15系配置lto中....\"\n            DEFCONFIG=./common/arch/arm64/configs/gki_defconfig\n            sed -i 's/^CONFIG_LTO=n/CONFIG_LTO=y/' \"$DEFCONFIG\"\n            sed -i 's/^CONFIG_LTO_CLANG_FULL=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG\"\n            sed -i 's/^CONFIG_LTO_CLANG_NONE=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG\"\n            grep -q '^CONFIG_LTO_CLANG_THIN=y' \"$DEFCONFIG\" || echo 'CONFIG_LTO_CLANG_THIN=y' >> \"$DEFCONFIG\"\n          fi\n\n          #跳过将uapi标准头安装到 usr/include 目录的不必要操作，节省编译时间\n          echo \"CONFIG_HEADERS_INSTALL=n\" >> ./common/arch/arm64/configs/gki_defconfig\n\n          sed -i 's/check_defconfig//' ./common/build.config.gki\n          echo \"✅ 内核配置更新完成\"\n         \n      - name: \"🔨 Build Kernel | 编译内核\"\n        run: |\n          echo \"🏗️ 开始内核编译...\"\n          export KBUILD_BUILD_USER=\"xiaoxiaow\"\n          export KBUILD_BUILD_HOST=\"xiaoxiaow_build\"\n\n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.1\" ]; then\n            export KBUILD_BUILD_TIMESTAMP=\"Tue Mar 10 03:53:33 UTC 2026\"\n            export KBUILD_BUILD_VERSION=1\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out KCFLAGS+=-O2 gki_defconfig all\n\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.6\" ]; then\n            export PATH=\"/usr/lib/ccache:$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r510928/bin:$PATH\" \n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out KCFLAGS+=-O2  gki_defconfig all\n\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.15\" ]; then\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r450784e/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\n            \n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.10\" ]; then\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts-master/clang/host/linux-x86/clang-r416183b/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM_IAS=1 LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\n          fi\n          \n          # 显示ccache统计信息\n          ccache -s\n          echo \"✅ 内核编译完成\"\n         \n      - name: \"📦 Package Kernel | 打包内核\"\n        run: |\n          echo \"📦 准备AnyKernel3打包环境...\"\n          git clone https://github.com/Xiaomichael/AnyKernel3 --depth=1\n          rm -rf ./AnyKernel3/.git\n          mkdir -p kernel_workspace/kernel_platform/out/Final-Image-Find/\n          dir1=\"\"\n          dir2=\"\"\n          image_path=$(find \"./kernel_workspace/kernel_platform/common/out/\" -name \"Image\" | head -n 1)\n          if [ -n \"$image_path\" ]; then\n            dir1=$(dirname \"$image_path\")/\n            echo \"✅ 成功找到 Image 文件\"\n          fi\n          if [ -n \"$image_path\" ] && [ -f \"$image_path\" ]; then\n            echo \"Image file finally located at: $image_path\"\n            cp \"$image_path\" ./AnyKernel3/Image\n            cp \"$image_path\" kernel_workspace/kernel_platform/out/Final-Image-Find/Image\n          fi\n\n      - name: \"🧠 Set Artifact Name | 设置产物名称\"\n        id: set_name\n        run: |\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"On\" ]; then\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_KernelSU_Next_lz4kd_${{ env.KSUVER }}\"\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ]; then\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_KernelSU_Next_lz4_zstd_${{ env.KSUVER }}\"\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_KernelSU_Next_lz4_${{ env.KSUVER }}\"\n          else\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_KernelSU_Next_${{ env.KSUVER }}\"\n          fi\n          \n          if [ \"${{ github.event.inputs.SUSFS }}\" = \"On\" ]; then\n            FINAL_NAME=\"${BASE_NAME}_SUSFS\"\n          else\n            FINAL_NAME=\"${BASE_NAME}\"\n          fi\n          \n          echo \"ARTIFACT_NAME=${FINAL_NAME}\" >> $GITHUB_OUTPUT\n         \n      - name: \"📤 Upload AnyKernel3 | 上传 AnyKernel3\"\n        uses: actions/upload-artifact@v7\n        with:\n         name: ${{ steps.set_name.outputs.ARTIFACT_NAME }}\n         path: ./AnyKernel3/*\n\n      - name: \"📝 Find zram.ko & crypto_zstdn.ko | 查找 zram.ko & crypto_zstdn.ko\"\n        run: |\n          find -name zram.ko\n          find -name crypto_zstdn.ko\n          \n      - name: \"📤 Upload zram.ko | 上传 zram.ko\"\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{ github.event.inputs.FEIL }}_zram.ko\n          path: ./kernel_workspace/kernel_platform/common/out/drivers/block/zram/zram.ko\n\n      # - name: \"🤖 Get bot script | 获取 bot 脚本\"\n        # uses: actions/checkout@v6\n        # with:\n          # path: bot\n\n      # - name: \"📤 Upload to telegram | 上传至Telegram群组\"\n        # run: |\n          # if [ ! -z \"${{ secrets.BOT_TOKEN }}\" ]; then\n            # echo \"📤 正在上传到Telegram...\"\n            # cd AnyKernel3\n            # zip -q -r \"../${{ steps.set_name.outputs.ARTIFACT_NAME }}.zip\" ./*\n            # cd ..\n            # pip3 install telethon\n            # python3 ./bot/script/buildbot.py \"./${{ steps.set_name.outputs.ARTIFACT_NAME }}.zip\"\n            # echo \"✅ 文件已上传到Telegram\"\n          # fi\n        # env:\n          # CHATID: ${{secrets.CHATID}}\n          # BOT_TOKEN: ${{secrets.BOT_TOKEN}}\n          # MESSAGE_THREAD_ID: ${{secrets.MESSAGE_THREAD_ID}}\n          # KernelVer: ${{ github.event.inputs.ANDROID_VERSION}}-${{ github.event.inputs.KERNEL_VERSION }}\n          # DEVICE: ${{ github.event.inputs.FEIL }}\n          # KPM: Not Support\n          # LZ4KD: ${{ github.event.inputs.lz4kd }}\n          # BBR: ${{ github.event.inputs.bbr }}\n          # KSU_VAR: \"NEXT\"\n"
  },
  {
    "path": ".github/workflows/Build KernelSU.yml",
    "content": "name: Build KernelSU Official\non:\n  workflow_dispatch:\n    inputs:\n    \n      CPU:\n        description: \"CPU分支\"\n        required: true\n        type: choice\n        options:\n          - 'sm8750'\n          - 'sm8735'\n          - 'mt6991'\n          - 'sm8650'\n          - 'mt6989'\n          - 'sm8635'\n          - 'sm8550'\n          - 'sm8450'\n          - 'sm8475'\n          - 'sm7675'\n          - 'sm7635'\n          - 'sm7550'\n          - 'sm6375'\n        default: 'sm8650'\n        \n      FEIL:\n        description: \"手机型号\"\n        required: true\n        type: choice\n        options:\n          - 'oneplus_13_b'\n          - 'oneplus_13s_b'\n          - 'oneplus_13t_b'\n          - 'oneplus_ace5_pro_b'\n          - 'oneplus_ace_6'\n          - 'oneplus_pad_2_pro_b'\n          - 'oneplus_pad_3_b'\n          - 'oneplus_ace5_ultra_b'\n          - 'oneplus_turbo_6'\n          - 'oneplus_12_b'\n          - 'oneplus_ace3_pro_b'\n          - 'oneplus_ace5_b'\n          - 'oneplus_13r_b'\n          - 'oneplus_pad2_b'\n          - 'oneplus_pad_pro_b'\n          - 'oneplus_ace5_race_b'\n          - 'oneplus_nord_5_b'\n          - 'oneplus_11_b'\n          - 'oneplus_12r_b'\n          - 'oneplus_ace2_pro_b'\n          - 'oneplus_ace3_b'\n          - 'oneplus_open_b'\n          - 'oneplus_10t_v'\n          - 'oneplus_11r_b'\n          - 'oneplus_ace2_b'\n          - 'oneplus_ace_pro_v'\n          - 'oneplus_10_pro_b'\n          - 'oneplus_ace_3v_b'\n          - 'oneplus_turbo_6v'\n          - 'oneplus_nord_4_b'\n          - 'oneplus_nord_ce4_lite_5g'\n          - 'oneplus_nord_ce4_b'\n        default: 'oneplus_12_b'\n        \n      ANDROID_VERSION:\n        description: \"内核安卓KMI版本\"\n        required: true\n        type: choice\n        options:\n          - 'android15'\n          - 'android14'\n          - 'android13'\n          - 'android12'\n        default: 'android14'\n        \n      KERNEL_VERSION:\n        description: \"内核版本\"\n        required: true\n        type: choice\n        options:\n          - '6.6'\n          - '6.1'\n          - '5.15'\n          - '5.10'\n        default: '6.1'\n\n      SUSFS:\n        description: \"是否启用SUSFS\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      lz4kd:\n        description: \"是否启用lz4kd(6.1 关闭时使用 lz4 + zstd; 6.6 关闭时使用 lz4)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      bbg:\n        description: \"是否启用BBG基带保护\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'On'\n       \n      bbr:\n        description: \"是否启用BBR算法(对手机日用无太大意义甚至可能负优化)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      proxy:\n        description: \"是否添加代理性能优化(联发科芯片跑的时候请关闭否则出现恶性问题)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'On'\n\n      UNICODE_BYPASS:\n        description: \"是否添加Unicode零宽绕过修复补丁(高内核版本不推荐开启, 建议使用 https://t.me/real5ec1cff/271 无痛修复)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n        \njobs:\n  build:\n    name: For ${{ github.event.inputs.FEIL }} lz4kd ${{ github.event.inputs.lz4kd }} SUSFS ${{ github.event.inputs.SUSFS }}\n    runs-on: ubuntu-latest\n    env:\n      CCACHE_COMPILERCHECK: \"%compiler% -dumpmachine; %compiler% -dumpversion\"\n      CCACHE_NOHASHDIR: \"true\"\n      CCACHE_HARDLINK: \"true\"\n      CCACHE_MAXSIZE: 8G\n      \n    steps:\n      - name: \"🚀 Maximize Build Space | 最大化构建空间\"\n        if: ${{ github.event.inputs.KERNEL_VERSION == '5.10' || github.event.inputs.KERNEL_VERSION == '5.15' }}\n        uses: easimon/maximize-build-space@master\n        with:\n          root-reserve-mb: 8192\n          temp-reserve-mb: 4096\n          remove-dotnet: 'true'\n          remove-android: 'true'\n          remove-haskell: 'true'\n          remove-codeql: 'true'\n\n      - name: \"⚙️ Setup Cache Env | 设置缓存环境\"\n        run: |\n          echo \"🔧 正在设置机型隔离缓存目录...\"\n          echo \"CCACHE_DIR=$HOME/.ccache_${{ github.event.inputs.FEIL }}_Official\" >> $GITHUB_ENV\n          mkdir -p \"$HOME/.ccache_${{ github.event.inputs.FEIL }}_Official\"\n          echo \"✅ 缓存目录已设置: $HOME/.ccache_${{ github.event.inputs.FEIL }}_Official\" \n\n      - name: \"🔐 Configure Git | 配置Git账户\"\n        run: |\n          echo \"🔧 正在配置Git用户信息...\"\n          git config --global user.name \"build\"\n          git config --global user.email \"2210077278@qq.com\"\n          echo \"✅ Git配置完成\"\n\n      - name: \"📦 Cache & Install Dependencies | 缓存 & 安装构建依赖\"\n        uses: awalsh128/cache-apt-pkgs-action@latest \n        with: \n          packages: python3 git curl ccache libelf-dev build-essential flex bison libssl-dev libncurses-dev liblz4-tool zlib1g-dev libxml2-utils rsync unzip gawk dos2unix\n          execute_install_scripts: true\n         \n      - name: \"💾 Restore ccache (With SUSFS) | 恢复ccache缓存 (With SUSFS)\"\n        if: ${{ github.event.inputs.SUSFS == 'On' }}\n        uses: actions/cache@v5\n        with:\n          path: ${{ env.CCACHE_DIR }}\n          key: ccache-${{ runner.os }}-${{ github.ref }}-${{ github.event.inputs.FEIL }}-Official-SUSFS\n          restore-keys: |\n            ccache-${{ runner.os }}-${{ github.event.inputs.FEIL }}-Official-SUSFS\n            ccache-${{ runner.os }}-Official-SUSFS\n\n      - name: \"💾 Restore ccache (Without SUSFS) | 恢复ccache缓存 (Without SUSFS)\"\n        if: ${{ github.event.inputs.SUSFS == 'Off' }}\n        uses: actions/cache@v5\n        with:\n          path: ${{ env.CCACHE_DIR }}\n          key: ccache-${{ runner.os }}-${{ github.ref }}-${{ github.event.inputs.FEIL }}-Official-NoSUSFS\n          restore-keys: |\n            ccache-${{ runner.os }}-${{ github.event.inputs.FEIL }}-Official-NoSUSFS\n            ccache-${{ runner.os }}-Official-NoSUSFS\n\n      - name: \"⚙️ Initialize ccache | 初始化ccache\"\n        run: |\n          echo \"🔧 正在初始化ccache...\"\n          INIT_FLAG=\"${{ env.CCACHE_DIR }}/.ccache_initialized\"\n          \n          if command -v ccache >/dev/null 2>&1; then\n            if [ ! -f \"$INIT_FLAG\" ]; then\n              mkdir -p \"${{ env.CCACHE_DIR }}\"\n              ccache -M ${{ env.CCACHE_MAXSIZE }}\n              touch \"$INIT_FLAG\"\n              echo \"🆕 ccache初始化完成\"\n            else\n              echo \"ℹ️ ccache已存在，跳过初始化\"\n            fi\n          else\n            echo \"⚠️ 未找到ccache命令，跳过初始化\"\n          fi\n          # 显示缓存统计\n          ccache -s\n          echo \"✅ ccache初始化流程完成\"\n\n      - name: \"📥 Install Repo Tool | 安装Repo工具\"\n        run: |\n          echo \"⬇️ 正在下载repo工具...\"\n          curl -fsSL https://storage.googleapis.com/git-repo-downloads/repo > ~/repo\n          chmod a+x ~/repo\n          sudo mv ~/repo /usr/local/bin/repo\n          echo \"✅ repo工具安装完成\"\n\n      - name: \"⬇️ Clone Kernel Source | 克隆内核源码\"\n        run: |\n          mkdir kernel_workspace && cd kernel_workspace\n\n          echo \"🌐 正在初始化内核仓库...\"\n          repo init -u https://github.com/Xiaomichael/kernel_manifest.git -b refs/heads/oneplus/${{ github.event.inputs.CPU }} -m ${{ github.event.inputs.FEIL }}.xml --depth=1\n\n          echo \"🔄 同步代码库(使用$(nproc --all)线程)...\"\n          repo sync -c -j$(nproc --all) --no-tags --no-clone-bundle --force-sync\n          \n          rm kernel_platform/common/android/abi_gki_protected_exports_* || echo \"No protected exports!\"\n          rm kernel_platform/msm-kernel/android/abi_gki_protected_exports_* || echo \"No protected exports!\"\n          \n          # Remove -dirty in kernel version\n          sed -i 's/ -dirty//g' kernel_platform/common/scripts/setlocalversion\n          sed -i 's/ -dirty//g' kernel_platform/msm-kernel/scripts/setlocalversion\n          sed -i 's/ -dirty//g' kernel_platform/external/dtc/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/common/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/msm-kernel/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/external/dtc/scripts/setlocalversion\n\n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" != \"6.6\" ]; then\n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/common/scripts/setlocalversion            \n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/msm-kernel/scripts/setlocalversion\n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/external/dtc/scripts/setlocalversion\n          else\n            ESCAPED_SUFFIX=$(printf '%s\\n' \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\" | sed 's:[\\/&]:\\\\&:g')\n            sudo sed -i \"s/-4k/$ESCAPED_SUFFIX/g\" kernel_platform/common/arch/arm64/configs/gki_defconfig\n            sed -i 's/${scm_version}//' kernel_platform/common/scripts/setlocalversion\n            sed -i 's/${scm_version}//' kernel_platform/msm-kernel/scripts/setlocalversion\n          fi\n\n          echo \"✅ 内核配置完成\"\n                \n      - name: \"⚡ Setup Baseband-guard | 配置 Baseband-guard\"\n        if: ${{ github.event.inputs.bbg == 'On'}}\n        run: |\n          set -e\n          cd kernel_workspace/kernel_platform/common\n          echo \"🛠️ 正在设置BBG...\"\n          curl -sSL https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh -o setup.sh\n          bash setup.sh\n          \n      - name: \"⚡ Setup KernelSU | 配置 KernelSU\"\n        run: |\n          cd kernel_workspace/kernel_platform\n\n          echo \"🛠️ 正在设置KernelSU...\"\n          curl -LSs \"https://raw.githubusercontent.com/tiann/KernelSU/refs/heads/main/kernel/setup.sh\" | bash -s main\n          cd KernelSU\n          KSU_VERSION=$(expr $(curl -sI \"https://api.github.com/repos/tiann/KernelSU/commits?sha=main&per_page=1\" | grep -i \"link:\" | sed -n 's/.*page=\\([0-9]*\\)>; rel=\"last\".*/\\1/p') \"+\" 30000)\n          echo \"KSUVER=$KSU_VERSION\" >> $GITHUB_ENV\n          sed -i \"s/DKSU_VERSION=16/DKSU_VERSION=${KSU_VERSION}/\" kernel/Kbuild\n\n          echo \"✅ KernelSU 配置完成\"\n        \n      - name: \"🔧 Setup Patches | 配置补丁\"\n        run: |\n          cd kernel_workspace\n\n          echo \"⬇️ 下载所需补丁...\"\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            git clone https://github.com/cctv18/susfs4oki.git -b oki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}\n          fi\n          git clone https://github.com/Xiaomichael/kernel_patches.git\n          git clone https://github.com/ShirkNeko/SukiSU_patch.git\n\n          cd kernel_platform\n          echo \"📝 复制补丁文件...\"\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            cp ../susfs4oki/kernel_patches/50_add_susfs_in_gki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}.patch ./common/\n            cp ../susfs4oki/kernel_patches/fs/* ./common/fs/\n            cp ../susfs4oki/kernel_patches/include/linux/* ./common/include/linux/\n          fi\n\n          cp ../kernel_patches/zram_patches/001-lz4.patch ./common/\n          cp ../kernel_patches/zram_patches/lz4armv8.S ./common/lib\n          cp ../kernel_patches/zram_patches/002-zstd.patch ./common/\n\n          if [ \"${{ github.event.inputs.UNICODE_BYPASS }}\" = \"On\" ]; then\n            if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n              cp ../kernel_patches/common/unicode_bypass_fix_6.1+.patch ./common/unicode_bypass_fix.patch\n            elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.15\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.10\" ]; then\n              cp ../kernel_patches/common/unicode_bypass_fix_6.1-.patch ./common/unicode_bypass_fix.patch\n            fi\n          fi\n\n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            # Copy lz4k from ShirkNeko\n            cp -r ../SukiSU_patch/other/zram/lz4k/include/linux/* ./common/include/linux\n            cp -r ../SukiSU_patch/other/zram/lz4k/lib/* ./common/lib\n            cp -r ../SukiSU_patch/other/zram/lz4k/crypto/* ./common/crypto\n            cp -r ../SukiSU_patch/other/zram/lz4k_oplus ./common/lib/\n          fi\n          \n          echo \"🔧 应用补丁...\"\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            cd ./KernelSU\n            patch -p1 < 10_enable_susfs_for_ksu.patch || true\n          fi\n\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            cd ../common\n          elif [ \"${{ github.event.inputs.SUSFS }}\" == \"Off\" ]; then\n            cd ./common\n          fi\n\n          if [ \"${{ github.event.inputs.UNICODE_BYPASS }}\" = \"On\" ]; then\n            echo \"📦 正在应用Unicode零宽绕过修复补丁...\"\n            patch -p1 < unicode_bypass_fix.patch\n          fi\n          \n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"Off\" ] && [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ]; then\n            echo \"📦 应用lz4+zstd补丁...\"\n            git apply -p1 < 001-lz4.patch || true\n            patch -p1 < 002-zstd.patch || true\n          fi\n\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"Off\" ] && [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n            echo \"📦 应用lz4补丁...\"\n            git apply -p1 < 001-lz4.patch || true\n          fi\n          \n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            echo \"🚀 应用lz4kd补丁...\"\n            cp ../../SukiSU_patch/other/zram/zram_patch/${{ github.event.inputs.KERNEL_VERSION }}/lz4kd.patch ./\n            patch -p1 -F 3 < lz4kd.patch || true\n            cp ../../SukiSU_patch/other/zram/zram_patch/${{ github.event.inputs.KERNEL_VERSION }}/lz4k_oplus.patch ./\n            patch -p1 -F 3 < lz4k_oplus.patch || true\n          fi\n\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then           \n            patch -p1 < 50_add_susfs_in_gki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}.patch || true\n            cp ../../kernel_patches/69_hide_stuff.patch ./\n            patch -p1 -F 3 < 69_hide_stuff.patch\n          fi\n\n          echo \"✅ 所有补丁应用完成\"\n\n      - name: \"⚙️ Apply SCHED Patch | 应用风驰补丁\"\n        if: ${{ github.event.inputs.KERNEL_VERSION == '6.6' }}\n        run: |\n          cd kernel_workspace/kernel_platform/common\n          echo \"⬇️ 正在拉取风驰补丁\"\n          if [ \"${{ github.event.inputs.FEIL }}\" == \"oneplus_ace5_ultra\" ] || [ \"${{ github.event.inputs.FEIL }}\" = \"oneplus_ace5_ultra_b\" ]; then\n              git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"mt6991\"\n          else\n              git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"sm8750\"\n          fi\n          cp ./SCHED_PATCH/fengchi_${{ github.event.inputs.FEIL }}.patch ./\n          if [[ -f \"fengchi_${{ github.event.inputs.FEIL }}.patch\" ]]; then\n            echo \"⚙️ 开始应用风驰补丁\"\n            dos2unix \"fengchi_${{ github.event.inputs.FEIL }}.patch\"\n            patch -p1 -F 3 < \"fengchi_${{ github.event.inputs.FEIL }}.patch\"\n            echo \"✅ 完美风驰补丁应用完成\"\n          else\n            sed -i '1iobj-y += hmbird_patch.o' drivers/Makefile\n            wget https://github.com/Numbersf/Action-Build/raw/SukiSU-Ultra/patches/hmbird_patch.patch\n            echo \"⚙️ 正在打OGKI转换GKI补丁\"\n            patch -p1 -F 3 < hmbird_patch.patch\n            echo \"✅ OGKI转换GKI_patch完成\"\n          fi\n\n      - name: \"⚙️ Configure Kernel Options | 配置内核选项\"\n        run: |\n          cd kernel_workspace/kernel_platform\n\n          echo \"⚙️ 正在配置内核编译选项...\"\n\n          # Add KSU configuration settings\n          echo \"📦 启用 KSU 支持...\"\n          echo \"CONFIG_KSU=y\" >> ./common/arch/arm64/configs/gki_defconfig\n\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            # Add SUSFS configuration settings\n            echo \"CONFIG_KSU_SUSFS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_PATH=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_MOUNT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_KSTAT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SPOOF_UNAME=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_ENABLE_LOG=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_OPEN_REDIRECT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_MAP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n\n          #添加对 Mountify (backslashxx/mountify) 模块的支持\n          echo \"CONFIG_TMPFS_XATTR=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          echo \"CONFIG_TMPFS_POSIX_ACL=y\" >> ./common/arch/arm64/configs/gki_defconfig\n\n          if [ \"${{ github.event.inputs.bbg }}\" == \"On\" ]; then\n            echo \"⚡ 启用BBG中...\"\n            echo 'CONFIG_BBG=y' >> ./common/arch/arm64/configs/gki_defconfig\n            echo 'CONFIG_LSM=\"landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf,baseband_guard\"' >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.bbr }}\" == \"On\" ]; then\n            echo \"🌐 启用BBR网络算法...\"\n            echo \"CONFIG_TCP_CONG_ADVANCED=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_BBR=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NET_SCH_FQ=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_BIC=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_WESTWOOD=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_HTCP=n\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n        \n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            echo \"📦 启用lz4kd压缩...\"\n            echo \"CONFIG_CRYPTO_LZ4KD=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_CRYPTO_LZ4K_OPLUS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_ZRAM_WRITEBACK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n\n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.1\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.6\" ]; then\n            # Add O2 config\n            echo \"📦 为6.1&6.6加入O2优化...\"\n            echo \"CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.proxy }}\" == \"On\" ]; then\n            # Add proxy config\n            echo \"CONFIG_BPF_STREAM_PARSER=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NETFILTER_XT_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_MAX=65534\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_IP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_IPMAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_PORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPMARK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORTIP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORTNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPMAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_MAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETPORTNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETPORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETIFACE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_LIST_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP6_NF_NAT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP6_NF_TARGET_MASQUERADE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.10\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.15\" ]; then\n            echo \"📦 正在为5.10系与5.15系配置lto中....\"\n            DEFCONFIG=./common/arch/arm64/configs/gki_defconfig\n            sed -i 's/^CONFIG_LTO=n/CONFIG_LTO=y/' \"$DEFCONFIG\"\n            sed -i 's/^CONFIG_LTO_CLANG_FULL=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG\"\n            sed -i 's/^CONFIG_LTO_CLANG_NONE=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG\"\n            grep -q '^CONFIG_LTO_CLANG_THIN=y' \"$DEFCONFIG\" || echo 'CONFIG_LTO_CLANG_THIN=y' >> \"$DEFCONFIG\"\n          fi\n\n          #跳过将uapi标准头安装到 usr/include 目录的不必要操作，节省编译时间\n          echo \"CONFIG_HEADERS_INSTALL=n\" >> ./common/arch/arm64/configs/gki_defconfig\n\n          sed -i 's/check_defconfig//' ./common/build.config.gki\n          echo \"✅ 内核配置更新完成\"\n         \n      - name: \"🔨 Build Kernel | 编译内核\"\n        run: |\n          echo \"🏗️ 开始内核编译...\"\n          export KBUILD_BUILD_USER=\"xiaoxiaow\"\n          export KBUILD_BUILD_HOST=\"xiaoxiaow_build\"\n\n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.1\" ]; then\n            export KBUILD_BUILD_TIMESTAMP=\"Tue Mar 10 03:53:33 UTC 2026\"\n            export KBUILD_BUILD_VERSION=1\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out KCFLAGS+=-O2 gki_defconfig all\n\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.6\" ]; then\n            export PATH=\"/usr/lib/ccache:$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r510928/bin:$PATH\" \n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out KCFLAGS+=-O2  gki_defconfig all\n\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.15\" ]; then\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r450784e/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\n            \n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.10\" ]; then\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts-master/clang/host/linux-x86/clang-r416183b/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM_IAS=1 LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\n          fi\n          \n          # 显示ccache统计信息\n          ccache -s\n          echo \"✅ 内核编译完成\"\n         \n      - name: \"📦 Package Kernel | 打包内核\"\n        run: |\n          echo \"📦 准备AnyKernel3打包环境...\"\n          git clone https://github.com/Xiaomichael/AnyKernel3 --depth=1\n          rm -rf ./AnyKernel3/.git\n          mkdir -p kernel_workspace/kernel_platform/out/Final-Image-Find/\n          dir1=\"\"\n          dir2=\"\"\n          image_path=$(find \"./kernel_workspace/kernel_platform/common/out/\" -name \"Image\" | head -n 1)\n          if [ -n \"$image_path\" ]; then\n            dir1=$(dirname \"$image_path\")/\n            echo \"✅ 成功找到 Image 文件\"\n          fi\n          if [ -n \"$image_path\" ] && [ -f \"$image_path\" ]; then\n            echo \"Image file finally located at: $image_path\"\n            cp \"$image_path\" ./AnyKernel3/Image\n            cp \"$image_path\" kernel_workspace/kernel_platform/out/Final-Image-Find/Image\n          fi\n          \n      - name: \"🧠 Set Artifact Name | 设置产物名称\"\n        id: set_name\n        run: |\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"On\" ]; then\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_KernelSU_lz4kd_${{ env.KSUVER }}\"\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ]; then\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_KernelSU_lz4_zstd_${{ env.KSUVER }}\"\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_KernelSU_lz4_${{ env.KSUVER }}\"\n          else\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_KernelSU_${{ env.KSUVER }}\"\n          fi\n          \n          if [ \"${{ github.event.inputs.SUSFS }}\" = \"On\" ]; then\n            FINAL_NAME=\"${BASE_NAME}_SUSFS\"\n          else\n            FINAL_NAME=\"${BASE_NAME}\"\n          fi\n          \n          echo \"ARTIFACT_NAME=${FINAL_NAME}\" >> $GITHUB_OUTPUT\n\n      - name: \"📤 Upload AnyKernel3 | 上传 AnyKernel3\"\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{ steps.set_name.outputs.ARTIFACT_NAME }}\n          path: ./AnyKernel3/*\n\n      - name: \"📝 Find zram.ko & crypto_zstdn.ko | 查找 zram.ko & crypto_zstdn.ko\"\n        # if: ${{ github.event.inputs.lz4kd == 'On' }}\n        run: |\n          find -name zram.ko\n          find -name crypto_zstdn.ko\n          \n      - name: \"📤 Upload zram.ko | 上传 zram.ko\"\n        # if: ${{ github.event.inputs.lz4kd == 'On' }}\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{ github.event.inputs.FEIL }}_zram.ko\n          path: ./kernel_workspace/kernel_platform/common/out/drivers/block/zram/zram.ko\n"
  },
  {
    "path": ".github/workflows/Build ReSukiSU.yml",
    "content": "name: Build ReSukiSU\non:\n  workflow_dispatch:\n    inputs:\n    \n      CPU:\n        description: \"CPU分支\"\n        required: true\n        type: choice\n        options:\n          - 'sm8750'\n          - 'sm8735'\n          - 'mt6991'\n          - 'sm8650'\n          - 'mt6989'\n          - 'sm8635'\n          - 'sm8550'\n          - 'sm8450'\n          - 'sm8475'\n          - 'sm7675'\n          - 'sm7635'\n          - 'sm7550'\n          - 'sm6375'\n        default: 'sm8650'\n        \n      FEIL:\n        description: \"手机型号\"\n        required: true\n        type: choice\n        options:\n          - 'oneplus_13_b'\n          - 'oneplus_13s_b'\n          - 'oneplus_13t_b'\n          - 'oneplus_ace5_pro_b'\n          - 'oneplus_ace_6'\n          - 'oneplus_pad_2_pro_b'\n          - 'oneplus_pad_3_b'\n          - 'oneplus_ace5_ultra_b'\n          - 'oneplus_turbo_6'\n          - 'oneplus_12_b'\n          - 'oneplus_ace3_pro_b'\n          - 'oneplus_ace5_b'\n          - 'oneplus_13r_b'\n          - 'oneplus_pad2_b'\n          - 'oneplus_pad_pro_b'\n          - 'oneplus_ace5_race_b'\n          - 'oneplus_nord_5_b'\n          - 'oneplus_11_b'\n          - 'oneplus_12r_b'\n          - 'oneplus_ace2_pro_b'\n          - 'oneplus_ace3_b'\n          - 'oneplus_open_b'\n          - 'oneplus_10t_v'\n          - 'oneplus_11r_b'\n          - 'oneplus_ace2_b'\n          - 'oneplus_ace_pro_v'\n          - 'oneplus_10_pro_b'\n          - 'oneplus_ace_3v_b'\n          - 'oneplus_turbo_6v'\n          - 'oneplus_nord_4_b'\n          - 'oneplus_nord_ce4_lite_5g'\n          - 'oneplus_nord_ce4_b'\n        default: 'oneplus_12_b'\n        \n      ANDROID_VERSION:\n        description: \"内核安卓KMI版本\"\n        required: true\n        type: choice\n        options:\n          - 'android15'\n          - 'android14'\n          - 'android13'\n          - 'android12'\n        default: 'android14'\n        \n      KERNEL_VERSION:\n        description: \"内核版本\"\n        required: true\n        type: choice\n        options:\n          - '6.6'\n          - '6.1'\n          - '5.15'\n          - '5.10'\n        default: '6.1'\n\n      SUSFS:\n        description: \"是否启用SUSFS\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      KPM:\n        description: \"是否启用KPM\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n       \n      lz4kd:\n        description: \"是否启用lz4kd(6.1 关闭时使用 lz4 + zstd; 6.6 关闭时使用 lz4)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      bbg:\n        description: \"是否启用BBG基带保护\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'On'\n       \n      bbr:\n        description: \"是否启用BBR算法(对手机日用无太大意义甚至可能负优化)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      proxy:\n        description: \"是否添加代理性能优化(联发科芯片跑的时候请关闭否则出现恶性问题)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'On'\n\n      UNICODE_BYPASS:\n        description: \"是否添加Unicode零宽绕过修复补丁(高内核版本不推荐开启, 建议使用 https://t.me/real5ec1cff/271 无痛修复)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n         \njobs:\n  build:\n    name: For ${{ github.event.inputs.FEIL }} KPM ${{ github.event.inputs.KPM }} lz4kd ${{ github.event.inputs.lz4kd }} SUSFS ${{ github.event.inputs.SUSFS }}\n    runs-on: ubuntu-latest\n    env:\n      CCACHE_COMPILERCHECK: \"%compiler% -dumpmachine; %compiler% -dumpversion\"\n      CCACHE_NOHASHDIR: \"true\"\n      CCACHE_HARDLINK: \"true\"\n      CCACHE_MAXSIZE: 8G\n      \n    steps:\n      - name: \"🚀 Maximize Build Space | 最大化构建空间\"\n        if: ${{ github.event.inputs.KERNEL_VERSION == '5.10' || github.event.inputs.KERNEL_VERSION == '5.15' }}\n        uses: easimon/maximize-build-space@master\n        with:\n          root-reserve-mb: 8192\n          temp-reserve-mb: 4096\n          remove-dotnet: 'true'\n          remove-android: 'true'\n          remove-haskell: 'true'\n          remove-codeql: 'true'\n\n      - name: \"⚙️ Setup Cache Env | 设置缓存环境\"\n        run: |\n          echo \"🔧 正在设置机型隔离缓存目录...\"\n          echo \"CCACHE_DIR=$HOME/.ccache_${{ github.event.inputs.FEIL }}_ReSukiSU\" >> $GITHUB_ENV\n          mkdir -p \"$HOME/.ccache_${{ github.event.inputs.FEIL }}_ReSukiSU\"\n          echo \"✅ 缓存目录已设置: $HOME/.ccache_${{ github.event.inputs.FEIL }}_ReSukiSU\"\n\n      - name: \"🔐 Configure Git | 配置Git账户\"\n        run: |\n          echo \"🔧 正在配置Git用户信息...\"\n          git config --global user.name \"build\"\n          git config --global user.email \"2210077278@qq.com\"\n          echo \"✅ Git配置完成\"\n\n      - name: \"📦 Cache & Install Dependencies | 缓存 & 安装构建依赖\"\n        uses: awalsh128/cache-apt-pkgs-action@latest \n        with: \n          packages: python3 git curl ccache libelf-dev build-essential flex bison libssl-dev libncurses-dev liblz4-tool zlib1g-dev libxml2-utils rsync unzip gawk dos2unix\n          execute_install_scripts: true\n\n      - name: \"💾 Restore ccache (With SUSFS) | 恢复ccache缓存 (With SUSFS)\"\n        if: ${{ github.event.inputs.SUSFS == 'On' }}\n        uses: actions/cache@v5\n        with:\n          path: ${{ env.CCACHE_DIR }}\n          key: ccache-${{ runner.os }}-${{ github.ref }}-${{ github.event.inputs.FEIL }}-ReSukiSU-SUSFS\n          restore-keys: |\n            ccache-${{ runner.os }}-${{ github.event.inputs.FEIL }}-ReSukiSU-SUSFS\n            ccache-${{ runner.os }}-ReSukiSU-SUSFS\n\n      - name: \"💾 Restore ccache (Without SUSFS) | 恢复ccache缓存 (Without SUSFS)\"\n        if: ${{ github.event.inputs.SUSFS == 'Off' }}\n        uses: actions/cache@v5\n        with:\n          path: ${{ env.CCACHE_DIR }}\n          key: ccache-${{ runner.os }}-${{ github.ref }}-${{ github.event.inputs.FEIL }}-ReSukiSU-NoSUSFS\n          restore-keys: |\n            ccache-${{ runner.os }}-${{ github.event.inputs.FEIL }}-ReSukiSU-NoSUSFS\n            ccache-${{ runner.os }}-ReSukiSU-NoSUSFS\n\n      - name: \"⚙️ Initialize ccache | 初始化ccache\"\n        run: |\n          echo \"🔧 正在初始化ccache...\"\n          INIT_FLAG=\"${{ env.CCACHE_DIR }}/.ccache_initialized\"\n          \n          if command -v ccache >/dev/null 2>&1; then\n            if [ ! -f \"$INIT_FLAG\" ]; then\n              mkdir -p \"${{ env.CCACHE_DIR }}\"\n              ccache -M ${{ env.CCACHE_MAXSIZE }}\n              touch \"$INIT_FLAG\"\n              echo \"✅ ccache初始化完成\"\n            else\n              echo \"ℹ️ ccache已存在，跳过初始化\"\n            fi\n          else\n            echo \"⚠️ 未找到ccache命令，跳过初始化\"\n          fi\n          # 显示缓存统计\n          ccache -s\n          echo \"✅ ccache初始化流程完成\"\n\n      - name: \"📥 Install Repo Tool | 安装Repo工具\"\n        run: |\n          echo \"⬇️ 正在下载repo工具...\"\n          curl -fsSL https://storage.googleapis.com/git-repo-downloads/repo > ~/repo\n          chmod a+x ~/repo\n          sudo mv ~/repo /usr/local/bin/repo\n          echo \"✅ repo工具安装完成\"\n\n      - name: \"⬇️ Clone Kernel Source | 克隆内核源码\"\n        run: |\n          mkdir kernel_workspace && cd kernel_workspace\n\n          echo \"🌐 正在初始化内核仓库...\"\n          repo init -u https://github.com/Xiaomichael/kernel_manifest.git -b refs/heads/oneplus/${{ github.event.inputs.CPU }} -m ${{ github.event.inputs.FEIL }}.xml --depth=1\n\n          echo \"🔄 同步代码库(使用$(nproc --all)线程)...\"\n          repo sync -c -j$(nproc --all) --no-tags --no-clone-bundle --force-sync\n \n          echo \"✅ 内核源码克隆完成\"\n     \n          rm kernel_platform/common/android/abi_gki_protected_exports_* || echo \"No protected exports!\"\n          rm kernel_platform/msm-kernel/android/abi_gki_protected_exports_* || echo \"No protected exports!\"\n\n          echo \"🔧 正在配置内核版本信息...\"\n          # Remove -dirty in kernel version\n          sed -i 's/ -dirty//g' kernel_platform/common/scripts/setlocalversion\n          sed -i 's/ -dirty//g' kernel_platform/msm-kernel/scripts/setlocalversion\n          sed -i 's/ -dirty//g' kernel_platform/external/dtc/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/common/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/msm-kernel/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/external/dtc/scripts/setlocalversion\n          \n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" != \"6.6\" ]; then\n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/common/scripts/setlocalversion            \n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/msm-kernel/scripts/setlocalversion\n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/external/dtc/scripts/setlocalversion\n          else\n            ESCAPED_SUFFIX=$(printf '%s\\n' \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\" | sed 's:[\\/&]:\\\\&:g')\n            sudo sed -i \"s/-4k/$ESCAPED_SUFFIX/g\" kernel_platform/common/arch/arm64/configs/gki_defconfig\n            sed -i 's/${scm_version}//' kernel_platform/common/scripts/setlocalversion\n            sed -i 's/${scm_version}//' kernel_platform/msm-kernel/scripts/setlocalversion\n          fi\n\n          echo \"✅ 内核配置完成\"\n\n      - name: \"⚡ Setup Baseband-guard | 配置 Baseband-guard\"\n        if: ${{ github.event.inputs.bbg == 'On' && github.event.inputs.KPM == 'Off' }}\n        run: |\n          set -e\n          cd kernel_workspace/kernel_platform/common\n          echo \"🛠️ 正在设置BBG...\"\n          curl -sSL https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh -o setup.sh\n          bash setup.sh     \n              \n      - name: \"⚡ Setup ReSukiSU | 配置 ReSukiSU\"\n        run: |\n          cd kernel_workspace/kernel_platform\n\n          # 下载并执行设置脚本\n          echo \"🛠️ 正在设置ReSukiSU...\"\n          curl -LSs \"https://raw.githubusercontent.com/ReSukiSU/ReSukiSU/main/kernel/setup.sh\" | bash -s main\n\n          cd KernelSU\n          KSU_VERSION=$(expr $(/usr/bin/git rev-list --count main) \"+\" 30700)\n          echo \"KSUVER=$KSU_VERSION\" >> $GITHUB_ENV\n          \n          echo \"✅ ReSukiSU 配置完成\"\n          \n      - name: \"🔧 Setup Patches | 配置补丁\"\n        run: |\n          cd kernel_workspace\n\n          echo \"⬇️ 克隆所需补丁...\"\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then          \n            git clone https://github.com/cctv18/susfs4oki.git -b oki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}\n          fi\n          git clone https://github.com/Xiaomichael/kernel_patches.git\n          git clone https://github.com/ShirkNeko/SukiSU_patch.git\n          \n          cd kernel_platform\n          echo \"📝 复制补丁文件...\"\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            cp ../susfs4oki/kernel_patches/50_add_susfs_in_gki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}.patch ./common/\n            cp ../susfs4oki/kernel_patches/fs/* ./common/fs/\n            cp ../susfs4oki/kernel_patches/include/linux/* ./common/include/linux/\n          else\n            cp ../kernel_patches/sukisu/scope_min_manual_hooks_v1.9.patch ./common/\n          fi\n          cp ../kernel_patches/zram_patches/001-lz4.patch ./common/\n          cp ../kernel_patches/zram_patches/lz4armv8.S ./common/lib\n          cp ../kernel_patches/zram_patches/002-zstd.patch ./common/\n\n          if [ \"${{ github.event.inputs.UNICODE_BYPASS }}\" = \"On\" ]; then\n            if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n              cp ../kernel_patches/common/unicode_bypass_fix_6.1+.patch ./common/unicode_bypass_fix.patch\n            elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.15\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.10\" ]; then\n              cp ../kernel_patches/common/unicode_bypass_fix_6.1-.patch ./common/unicode_bypass_fix.patch\n            fi\n          fi\n\n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            # Copy lz4k from ShirkNeko\n            cp -r ../SukiSU_patch/other/zram/lz4k/include/linux/* ./common/include/linux\n            cp -r ../SukiSU_patch/other/zram/lz4k/lib/* ./common/lib\n            cp -r ../SukiSU_patch/other/zram/lz4k/crypto/* ./common/crypto\n            cp -r ../SukiSU_patch/other/zram/lz4k_oplus ./common/lib/\n          fi\n          \n          cd ./common\n\n          if [ \"${{ github.event.inputs.UNICODE_BYPASS }}\" = \"On\" ]; then\n            echo \"📦 正在应用Unicode零宽绕过修复补丁...\"\n            patch -p1 < unicode_bypass_fix.patch\n          fi\n\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"Off\" ] && [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ]; then\n            echo \"📦 应用lz4+zstd补丁...\"\n            git apply -p1 < 001-lz4.patch || true\n            patch -p1 < 002-zstd.patch || true\n          fi\n\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"Off\" ] && [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n            echo \"📦 应用lz4补丁...\"\n            git apply -p1 < 001-lz4.patch || true\n          fi\n          \n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            echo \"📦 应用lz4kd补丁...\"\n            cp ../../SukiSU_patch/other/zram/zram_patch/${{ github.event.inputs.KERNEL_VERSION }}/lz4kd.patch ./\n            patch -p1 -F 3 < lz4kd.patch || true\n            cp ../../SukiSU_patch/other/zram/zram_patch/${{ github.event.inputs.KERNEL_VERSION }}/lz4k_oplus.patch ./\n            patch -p1 -F 3 < lz4k_oplus.patch || true\n          fi\n\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            echo \"📦 应用SUSFS补丁...\"\n            patch -p1 < 50_add_susfs_in_gki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}.patch || true\n          else\n            echo \"📦 应用MANUAL_HOOK补丁...\"\n            patch -p1 -F 3 < scope_min_manual_hooks_v1.9.patch\n          fi\n\n          echo \"✅ 所有补丁应用完成\"\n\n      - name: \"⚙️ Apply SCHED Patch | 应用风驰补丁\"\n        if: ${{ github.event.inputs.KERNEL_VERSION == '6.6' }}\n        run: |\n          cd kernel_workspace/kernel_platform/common\n\n          echo \"⬇️ 正在拉取风驰补丁\"\n          if [ \"${{ github.event.inputs.FEIL }}\" == \"oneplus_ace5_ultra\" ] || [ \"${{ github.event.inputs.FEIL }}\" = \"oneplus_ace5_ultra_b\" ]; then\n              echo \"⚠️ Ace5 Ultra 需要使用 mt6991 分支的补丁\"\n              git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"mt6991\"\n          else\n              echo \"⚙️ 使用 sm8750 分支的补丁\"\n              git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"sm8750\"\n          fi\n\n          cp ./SCHED_PATCH/fengchi_${{ github.event.inputs.FEIL }}.patch ./\n\n          if [[ -f \"fengchi_${{ github.event.inputs.FEIL }}.patch\" ]]; then\n            echo \"⚙️ 开始应用风驰补丁\"\n            dos2unix \"fengchi_${{ github.event.inputs.FEIL }}.patch\"\n            patch -p1 -F 3 < \"fengchi_${{ github.event.inputs.FEIL }}.patch\"\n            echo \"✅ 完美风驰补丁应用完成\"\n          else\n            sed -i '1iobj-y += hmbird_patch.o' drivers/Makefile\n            wget https://github.com/Numbersf/Action-Build/raw/SukiSU-Ultra/patches/hmbird_patch.patch\n            echo \"⚙️ 正在打OGKI转换GKI补丁\"\n            patch -p1 -F 3 < hmbird_patch.patch\n            echo \"✅ OGKI转换GKI_patch完成\"\n          fi\n          \n      - name: \"⚙️ Configure Kernel Options | 配置内核选项\"\n        run: |\n          cd kernel_workspace/kernel_platform\n\n          echo \"⚙️ 正在配置内核编译选项...\"\n          \n          echo \"📦 启用 KSU 支持...\"\n          curl -L -o resukisu_setup.bin https://github.com/Xiaomichael/OnePlus-Actions/raw/Build/script/resukisu_setup.bin\n          chmod +x resukisu_setup.bin\n          ./resukisu_setup.bin\n          rm -rf ./resukisu_setup.bin\n          \n          if [ \"${{ github.event.inputs.KPM }}\" == \"On\" ]; then\n            echo \"📦 启用 KPM...\"\n            echo \"CONFIG_KPM=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            echo \"📦 启用 SUSFS 功能...\"\n            echo \"CONFIG_KSU_SUSFS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_PATH=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_MOUNT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_KSTAT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SPOOF_UNAME=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_ENABLE_LOG=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_OPEN_REDIRECT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_MAP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          else \n            echo \"📦 启用 MANUAL_HOOK...\"\n            echo \"CONFIG_KSU_SUSFS=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_MANUAL_HOOK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n\n          echo \"📦 添加对 Mountify (backslashxx/mountify) 模块的支持\"\n          echo \"CONFIG_TMPFS_XATTR=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          echo \"CONFIG_TMPFS_POSIX_ACL=y\" >> ./common/arch/arm64/configs/gki_defconfig\n\n          if [ \"${{ github.event.inputs.bbg }}\" == \"On\" ] && [ \"${{ github.event.inputs.KPM }}\" == \"Off\" ]; then\n            echo \"⚡ 配置 BBG 中...\"\n            echo 'CONFIG_BBG=y' >> ./common/arch/arm64/configs/gki_defconfig\n            echo 'CONFIG_LSM=\"landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf,baseband_guard\"' >> ./common/arch/arm64/configs/gki_defconfig\n          fi          \n          \n          if [ \"${{ github.event.inputs.bbr }}\" == \"On\" ]; then\n            echo \"🌐 启用 BBR 网络算法...\"\n            echo \"CONFIG_TCP_CONG_ADVANCED=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_BBR=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NET_SCH_FQ=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_BIC=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_WESTWOOD=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_HTCP=n\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            echo \"📦 启用 lz4kd压缩...\"\n            echo \"CONFIG_CRYPTO_LZ4KD=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_CRYPTO_LZ4K_OPLUS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_ZRAM_WRITEBACK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.1\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.6\" ]; then\n            # Add O2 config\n            echo \"📦 为6.1 / 6.6加入O2优化...\"\n            echo \"CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n\n          if [ \"${{ github.event.inputs.proxy }}\" == \"On\" ]; then\n            # Add proxy config\n            echo \"📦 加入代理优化...\"\n            echo \"CONFIG_BPF_STREAM_PARSER=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NETFILTER_XT_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_MAX=65534\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_IP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_IPMAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_PORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPMARK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORTIP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORTNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPMAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_MAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETPORTNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETPORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETIFACE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_LIST_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP6_NF_NAT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP6_NF_TARGET_MASQUERADE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.10\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.15\" ]; then\n            echo \"📦 正在为5.10 / 5.15系配置lto中...\"\n            DEFCONFIG=./common/arch/arm64/configs/gki_defconfig\n            sed -i 's/^CONFIG_LTO=n/CONFIG_LTO=y/' \"$DEFCONFIG\"\n            sed -i 's/^CONFIG_LTO_CLANG_FULL=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG\"\n            sed -i 's/^CONFIG_LTO_CLANG_NONE=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG\"\n            grep -q '^CONFIG_LTO_CLANG_THIN=y' \"$DEFCONFIG\" || echo 'CONFIG_LTO_CLANG_THIN=y' >> \"$DEFCONFIG\"\n          fi\n\n          #跳过将uapi标准头安装到 usr/include 目录的不必要操作，节省编译时间\n          echo \"CONFIG_HEADERS_INSTALL=n\" >> ./common/arch/arm64/configs/gki_defconfig\n\n          # Remove check_defconfig\n          sed -i 's/check_defconfig//' ./common/build.config.gki\n          echo \"✅ 内核配置更新完成\"\n          \n      - name: \"🔨 Build Kernel | 编译内核\"\n        run: |\n          echo \"🏗️ 开始内核编译...\"\n          export KBUILD_BUILD_USER=\"xiaoxiaow\"\n          export KBUILD_BUILD_HOST=\"xiaoxiaow_build\"\n\n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.1\" ]; then\n            export KBUILD_BUILD_TIMESTAMP=\"Tue Mar 10 03:53:33 UTC 2026\"\n            export KBUILD_BUILD_VERSION=1\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out KCFLAGS+=-O2 gki_defconfig all\n\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.6\" ]; then\n            export PATH=\"/usr/lib/ccache:$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r510928/bin:$PATH\" \n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out KCFLAGS+=-O2  gki_defconfig all\n            \n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.15\" ]; then\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r450784e/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\n            \n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.10\" ]; then\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts-master/clang/host/linux-x86/clang-r416183b/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM_IAS=1 LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\n          fi\n          \n          # 显示ccache统计信息\n          ccache -s\n          echo \"✅ 内核编译完成\"\n          \n      - name: \"📦 Package Kernel | 打包内核\"\n        run: |\n          echo \"📦 准备AnyKernel3打包环境...\"\n          git clone https://github.com/Xiaomichael/AnyKernel3 --depth=1\n          rm -rf ./AnyKernel3/.git\n          mkdir -p kernel_workspace/kernel_platform/out/Final-Image-Find/\n          dir1=\"\"\n          dir2=\"\"\n          image_path=$(find \"./kernel_workspace/kernel_platform/common/out/\" -name \"Image\" | head -n 1)\n          if [ -n \"$image_path\" ]; then\n            dir1=$(dirname \"$image_path\")/\n            echo \"✅ 成功找到 Image 文件\"\n          fi\n          if [ -n \"$image_path\" ] && [ -f \"$image_path\" ]; then\n            echo \"Image file finally located at: $image_path\"\n            cp \"$image_path\" ./AnyKernel3/Image\n            cp \"$image_path\" kernel_workspace/kernel_platform/out/Final-Image-Find/Image\n          fi\n         \n      - name: \"🧩 Patch Kernel Image (KPM) | KPM修补镜像\"\n        if: ${{ github.event.inputs.KPM == 'On' }}\n        run: |\n          echo \"🔧 正在应用KPM补丁...\"\n          cd kernel_workspace/kernel_platform/out/Final-Image-Find\n          curl -LO https://github.com/SukiSU-Ultra/SukiSU_KernelPatch_patch/releases/download/0.13.0/patch_linux\n          chmod +x patch_linux\n          ./patch_linux\n          rm -f Image\n          mv oImage Image\n          cp Image $GITHUB_WORKSPACE/AnyKernel3/Image\n          echo \"✅ KPM补丁应用完成\"\n\n      - name: \"🧠 Set Artifact Name | 设置产物名称\"\n        id: set_name\n        run: |\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"On\" ]; then\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_ReSukiSU_lz4kd_${{ env.KSUVER }}\"\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ]; then\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_ReSukiSU_lz4_zstd_${{ env.KSUVER }}\"\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_ReSukiSU_lz4_${{ env.KSUVER }}\"\n          else\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_ReSukiSU_${{ env.KSUVER }}\"\n          fi\n          \n          if [ \"${{ github.event.inputs.SUSFS }}\" = \"On\" ]; then\n            FINAL_NAME=\"${BASE_NAME}_SUSFS\"\n          else\n            FINAL_NAME=\"${BASE_NAME}\"\n          fi\n          \n          echo \"ARTIFACT_NAME=${FINAL_NAME}\" >> $GITHUB_OUTPUT\n\n      - name: \"📤 Upload AnyKernel3 | 上传 AnyKernel3\"\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{ steps.set_name.outputs.ARTIFACT_NAME }}\n          path: ./AnyKernel3/*\n         \n      - name: \"📝 Find zram.ko & crypto_zstdn.ko | 查找 zram.ko & crypto_zstdn.ko\"\n        run: |\n          find -name zram.ko\n          find -name crypto_zstdn.ko\n          \n      - name: \"📤 Upload zram.ko | 上传 zram.ko\"\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{ github.event.inputs.FEIL }}_zram.ko\n          path: ./kernel_workspace/kernel_platform/common/out/drivers/block/zram/zram.ko\n"
  },
  {
    "path": ".github/workflows/Build SukiSU Ultra.yml",
    "content": "name: Build SukiSU Ultra\non:\n  workflow_dispatch:\n    inputs:\n    \n      CPU:\n        description: \"CPU分支\"\n        required: true\n        type: choice\n        options:\n          - 'sm8750'\n          - 'sm8735'\n          - 'mt6991'\n          - 'sm8650'\n          - 'mt6989'\n          - 'sm8635'\n          - 'sm8550'\n          - 'sm8450'\n          - 'sm8475'\n          - 'sm7675'\n          - 'sm7635'\n          - 'sm7550'\n          - 'sm6375'\n        default: 'sm8650'\n        \n      FEIL:\n        description: \"手机型号\"\n        required: true\n        type: choice\n        options:\n          - 'oneplus_13_b'\n          - 'oneplus_13s_b'\n          - 'oneplus_13t_b'\n          - 'oneplus_ace5_pro_b'\n          - 'oneplus_ace_6'\n          - 'oneplus_pad_2_pro_b'\n          - 'oneplus_pad_3_b'\n          - 'oneplus_ace5_ultra_b'\n          - 'oneplus_turbo_6'\n          - 'oneplus_12_b'\n          - 'oneplus_ace3_pro_b'\n          - 'oneplus_ace5_b'\n          - 'oneplus_13r_b'\n          - 'oneplus_pad2_b'\n          - 'oneplus_pad_pro_b'\n          - 'oneplus_ace5_race_b'\n          - 'oneplus_nord_5_b'\n          - 'oneplus_11_b'\n          - 'oneplus_12r_b'\n          - 'oneplus_ace2_pro_b'\n          - 'oneplus_ace3_b'\n          - 'oneplus_open_b'\n          - 'oneplus_10t_v'\n          - 'oneplus_11r_b'\n          - 'oneplus_ace2_b'\n          - 'oneplus_ace_pro_v'\n          - 'oneplus_10_pro_b'\n          - 'oneplus_ace_3v_b'\n          - 'oneplus_turbo_6v'\n          - 'oneplus_nord_4_b'\n          - 'oneplus_nord_ce4_lite_5g'\n          - 'oneplus_nord_ce4_b'\n        default: 'oneplus_12_b'\n        \n      ANDROID_VERSION:\n        description: \"内核安卓KMI版本\"\n        required: true\n        type: choice\n        options:\n          - 'android15'\n          - 'android14'\n          - 'android13'\n          - 'android12'\n        default: 'android14'\n        \n      KERNEL_VERSION:\n        description: \"内核版本\"\n        required: true\n        type: choice\n        options:\n          - '6.6'\n          - '6.1'\n          - '5.15'\n          - '5.10'\n        default: '6.1'\n\n      SUSFS:\n        description: \"是否启用SUSFS\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      KPM:\n        description: \"是否启用KPM\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n       \n      lz4kd:\n        description: \"是否启用lz4kd(6.1 关闭时使用 lz4 + zstd; 6.6 关闭时使用 lz4)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      bbg:\n        description: \"是否启用BBG基带保护\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'On'\n       \n      bbr:\n        description: \"是否启用BBR算法(对手机日用无太大意义甚至可能负优化)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n\n      proxy:\n        description: \"是否添加代理性能优化(联发科芯片跑的时候请关闭否则出现恶性问题)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'On'\n\n      UNICODE_BYPASS:\n        description: \"是否添加Unicode零宽绕过修复补丁(高内核版本不推荐开启, 建议使用 https://t.me/real5ec1cff/271 无痛修复)\"\n        required: true\n        type: choice\n        options:\n          - 'On'\n          - 'Off'\n        default: 'Off'\n         \njobs:\n  build:\n    name: For ${{ github.event.inputs.FEIL }} KPM ${{ github.event.inputs.KPM }} lz4kd ${{ github.event.inputs.lz4kd }} SUSFS ${{ github.event.inputs.SUSFS }}\n    runs-on: ubuntu-latest\n    env:\n      CCACHE_COMPILERCHECK: \"%compiler% -dumpmachine; %compiler% -dumpversion\"\n      CCACHE_NOHASHDIR: \"true\"\n      CCACHE_HARDLINK: \"true\"\n      CCACHE_MAXSIZE: 8G\n      \n    steps:\n      - name: \"🚀 Maximize Build Space | 最大化构建空间\"\n        if: ${{ github.event.inputs.KERNEL_VERSION == '5.10' || github.event.inputs.KERNEL_VERSION == '5.15' }}\n        uses: easimon/maximize-build-space@master\n        with:\n          root-reserve-mb: 8192\n          temp-reserve-mb: 4096\n          remove-dotnet: 'true'\n          remove-android: 'true'\n          remove-haskell: 'true'\n          remove-codeql: 'true'\n\n      - name: \"⚙️ Setup Cache Env | 设置缓存环境\"\n        run: |\n          echo \"🔧 正在设置机型隔离缓存目录...\"\n          echo \"CCACHE_DIR=$HOME/.ccache_${{ github.event.inputs.FEIL }}_SukiSU\" >> $GITHUB_ENV\n          mkdir -p \"$HOME/.ccache_${{ github.event.inputs.FEIL }}_SukiSU\"\n          echo \"✅ 缓存目录已设置: $HOME/.ccache_${{ github.event.inputs.FEIL }}_SukiSU\"\n\n      - name: \"🔐 Configure Git | 配置Git账户\"\n        run: |\n          echo \"🔧 正在配置Git用户信息...\"\n          git config --global user.name \"build\"\n          git config --global user.email \"2210077278@qq.com\"\n          echo \"✅ Git配置完成\"\n\n      - name: \"📦 Cache & Install Dependencies | 缓存 & 安装构建依赖\"\n        uses: awalsh128/cache-apt-pkgs-action@latest \n        with: \n          packages: python3 git curl ccache libelf-dev build-essential flex bison libssl-dev libncurses-dev liblz4-tool zlib1g-dev libxml2-utils rsync unzip gawk dos2unix\n          execute_install_scripts: true\n\n      - name: \"💾 Restore ccache (With SUSFS) | 恢复ccache缓存 (With SUSFS)\"\n        if: ${{ github.event.inputs.SUSFS == 'On' }}\n        uses: actions/cache@v5\n        with:\n          path: ${{ env.CCACHE_DIR }}\n          key: ccache-${{ runner.os }}-${{ github.ref }}-${{ github.event.inputs.FEIL }}-SukiSU-SUSFS\n          restore-keys: |\n            ccache-${{ runner.os }}-${{ github.event.inputs.FEIL }}-SukiSU-SUSFS\n            ccache-${{ runner.os }}-SukiSU-SUSFS\n\n      - name: \"💾 Restore ccache (Without SUSFS) | 恢复ccache缓存 (Without SUSFS)\"\n        if: ${{ github.event.inputs.SUSFS == 'Off' }}\n        uses: actions/cache@v5\n        with:\n          path: ${{ env.CCACHE_DIR }}\n          key: ccache-${{ runner.os }}-${{ github.ref }}-${{ github.event.inputs.FEIL }}-SukiSU-NoSUSFS\n          restore-keys: |\n            ccache-${{ runner.os }}-${{ github.event.inputs.FEIL }}-SukiSU-NoSUSFS\n            ccache-${{ runner.os }}-SukiSU-NoSUSFS\n\n      - name: \"⚙️ Initialize ccache | 初始化ccache\"\n        run: |\n          echo \"🔧 正在初始化ccache...\"\n          INIT_FLAG=\"${{ env.CCACHE_DIR }}/.ccache_initialized\"\n          \n          if command -v ccache >/dev/null 2>&1; then\n            if [ ! -f \"$INIT_FLAG\" ]; then\n              mkdir -p \"${{ env.CCACHE_DIR }}\"\n              ccache -M ${{ env.CCACHE_MAXSIZE }}\n              touch \"$INIT_FLAG\"\n              echo \"✅ ccache初始化完成\"\n            else\n              echo \"ℹ️ ccache已存在，跳过初始化\"\n            fi\n          else\n            echo \"⚠️ 未找到ccache命令，跳过初始化\"\n          fi\n          # 显示缓存统计\n          ccache -s\n          echo \"✅ ccache初始化流程完成\"\n\n      - name: \"📥 Install Repo Tool | 安装Repo工具\"\n        run: |\n          echo \"⬇️ 正在下载repo工具...\"\n          curl -fsSL https://storage.googleapis.com/git-repo-downloads/repo > ~/repo\n          chmod a+x ~/repo\n          sudo mv ~/repo /usr/local/bin/repo\n          echo \"✅ repo工具安装完成\"\n\n      - name: \"⬇️ Clone Kernel Source | 克隆内核源码\"\n        run: |\n          mkdir kernel_workspace && cd kernel_workspace\n\n          echo \"🌐 正在初始化内核仓库...\"\n          repo init -u https://github.com/Xiaomichael/kernel_manifest.git -b refs/heads/oneplus/${{ github.event.inputs.CPU }} -m ${{ github.event.inputs.FEIL }}.xml --depth=1\n\n          echo \"🔄 同步代码库(使用$(nproc --all)线程)...\"\n          repo sync -c -j$(nproc --all) --no-tags --no-clone-bundle --force-sync\n \n          echo \"✅ 内核源码克隆完成\"\n     \n          rm kernel_platform/common/android/abi_gki_protected_exports_* || echo \"No protected exports!\"\n          rm kernel_platform/msm-kernel/android/abi_gki_protected_exports_* || echo \"No protected exports!\"\n\n          echo \"🔧 正在配置内核版本信息...\"\n          # Remove -dirty in kernel version\n          sed -i 's/ -dirty//g' kernel_platform/common/scripts/setlocalversion\n          sed -i 's/ -dirty//g' kernel_platform/msm-kernel/scripts/setlocalversion\n          sed -i 's/ -dirty//g' kernel_platform/external/dtc/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/common/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/msm-kernel/scripts/setlocalversion\n          sed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/external/dtc/scripts/setlocalversion\n          \n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" != \"6.6\" ]; then\n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/common/scripts/setlocalversion            \n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/msm-kernel/scripts/setlocalversion\n            sed -i '$s|echo \"\\$res\"|echo \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\"|' kernel_platform/external/dtc/scripts/setlocalversion\n          else\n            ESCAPED_SUFFIX=$(printf '%s\\n' \"-${{ github.event.inputs.ANDROID_VERSION }}-oki-xiaoxiaow\" | sed 's:[\\/&]:\\\\&:g')\n            sudo sed -i \"s/-4k/$ESCAPED_SUFFIX/g\" kernel_platform/common/arch/arm64/configs/gki_defconfig\n            sed -i 's/${scm_version}//' kernel_platform/common/scripts/setlocalversion\n            sed -i 's/${scm_version}//' kernel_platform/msm-kernel/scripts/setlocalversion\n          fi\n\n          echo \"✅ 内核配置完成\"\n\n      - name: \"⚡ Setup Baseband-guard | 配置 Baseband-guard\"\n        if: ${{ github.event.inputs.bbg == 'On' && github.event.inputs.KPM == 'Off' }}\n        run: |\n          set -e\n          cd kernel_workspace/kernel_platform/common\n          echo \"🛠️ 正在设置BBG...\"\n          curl -sSL https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh -o setup.sh\n          bash setup.sh     \n              \n      - name: \"⚡ Setup SukiSU Ultra | 配置 SukiSU Ultra\"\n        run: |\n          cd kernel_workspace/kernel_platform\n\n          # 下载并执行设置脚本\n          echo \"🛠️ 正在设置SukiSU Ultra...\"\n          curl -LSs \"https://raw.githubusercontent.com/SukiSU-Ultra/SukiSU-Ultra/builtin/kernel/setup.sh\" | bash -s builtin\n          \n          cd KernelSU\n          echo \"⬇️ 下载SukiSU设置工具...\"\n          curl -L -o sukisu_setup.bin https://github.com/Xiaomichael/OnePlus-Actions/raw/Build/script/sukisu_setup.bin\n          chmod +x sukisu_setup.bin\n          \n          ./sukisu_setup.bin\n          rm -rf ./sukisu_setup.bin\n          \n          echo \"✅ SukiSU Ultra配置完成\"\n          \n      - name: \"🔧 Setup Patches | 配置补丁\"\n        run: |\n          cd kernel_workspace\n\n          echo \"⬇️ 克隆所需补丁...\"\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then          \n            git clone https://github.com/cctv18/susfs4oki.git -b oki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}\n          fi\n          git clone https://github.com/Xiaomichael/kernel_patches.git\n          git clone https://github.com/ShirkNeko/SukiSU_patch.git\n          \n          cd kernel_platform\n          echo \"📝 复制补丁文件...\"\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            cp ../susfs4oki/kernel_patches/50_add_susfs_in_gki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}.patch ./common/\n            cp ../susfs4oki/kernel_patches/fs/* ./common/fs/\n            cp ../susfs4oki/kernel_patches/include/linux/* ./common/include/linux/\n          else\n            cp ../kernel_patches/sukisu/scope_min_manual_hooks_v1.6.patch ./common/\n          fi\n          cp ../kernel_patches/zram_patches/001-lz4.patch ./common/\n          cp ../kernel_patches/zram_patches/lz4armv8.S ./common/lib\n          cp ../kernel_patches/zram_patches/002-zstd.patch ./common/\n\n          if [ \"${{ github.event.inputs.UNICODE_BYPASS }}\" = \"On\" ]; then\n            if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n              cp ../kernel_patches/common/unicode_bypass_fix_6.1+.patch ./common/unicode_bypass_fix.patch\n            elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.15\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.10\" ]; then\n              cp ../kernel_patches/common/unicode_bypass_fix_6.1-.patch ./common/unicode_bypass_fix.patch\n            fi\n          fi\n          \n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            # Copy lz4k from ShirkNeko\n            cp -r ../SukiSU_patch/other/zram/lz4k/include/linux/* ./common/include/linux\n            cp -r ../SukiSU_patch/other/zram/lz4k/lib/* ./common/lib\n            cp -r ../SukiSU_patch/other/zram/lz4k/crypto/* ./common/crypto\n            cp -r ../SukiSU_patch/other/zram/lz4k_oplus ./common/lib/\n          fi\n          \n          cd ./common\n\n          if [ \"${{ github.event.inputs.UNICODE_BYPASS }}\" = \"On\" ]; then\n            echo \"📦 正在应用Unicode零宽绕过修复补丁...\"\n            patch -p1 < unicode_bypass_fix.patch\n          fi\n\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"Off\" ] && [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ]; then\n            echo \"📦 应用lz4+zstd补丁...\"\n            git apply -p1 < 001-lz4.patch || true\n            patch -p1 < 002-zstd.patch || true\n          fi\n\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"Off\" ] && [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n            echo \"📦 应用lz4补丁...\"\n            git apply -p1 < 001-lz4.patch || true\n          fi\n          \n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            echo \"📦 应用lz4kd补丁...\"\n            cp ../../SukiSU_patch/other/zram/zram_patch/${{ github.event.inputs.KERNEL_VERSION }}/lz4kd.patch ./\n            patch -p1 -F 3 < lz4kd.patch || true\n            cp ../../SukiSU_patch/other/zram/zram_patch/${{ github.event.inputs.KERNEL_VERSION }}/lz4k_oplus.patch ./\n            patch -p1 -F 3 < lz4k_oplus.patch || true\n          fi\n\n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            echo \"📦 应用SUSFS补丁...\"\n            patch -p1 < 50_add_susfs_in_gki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}.patch || true\n          else\n            echo \"📦 应用MANUAL_HOOK补丁...\"\n            patch -p1 -F 3 < scope_min_manual_hooks_v1.6.patch\n          fi\n\n          echo \"✅ 所有补丁应用完成\"\n\n      - name: \"⚙️ Apply SCHED Patch | 应用风驰补丁\"\n        if: ${{ github.event.inputs.KERNEL_VERSION == '6.6' }}\n        run: |\n          cd kernel_workspace/kernel_platform/common\n\n          echo \"⬇️ 正在拉取风驰补丁\"\n          if [ \"${{ github.event.inputs.FEIL }}\" == \"oneplus_ace5_ultra\" ] || [ \"${{ github.event.inputs.FEIL }}\" = \"oneplus_ace5_ultra_b\" ]; then\n              echo \"⚠️ Ace5 Ultra 需要使用 mt6991 分支的补丁\"\n              git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"mt6991\"\n          else\n              echo \"⚙️ 使用 sm8750 分支的补丁\"\n              git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"sm8750\"\n          fi\n\n          cp ./SCHED_PATCH/fengchi_${{ github.event.inputs.FEIL }}.patch ./\n\n          if [[ -f \"fengchi_${{ github.event.inputs.FEIL }}.patch\" ]]; then\n            echo \"⚙️ 开始应用风驰补丁\"\n            dos2unix \"fengchi_${{ github.event.inputs.FEIL }}.patch\"\n            patch -p1 -F 3 < \"fengchi_${{ github.event.inputs.FEIL }}.patch\"\n            echo \"✅ 完美风驰补丁应用完成\"\n          else\n            sed -i '1iobj-y += hmbird_patch.o' drivers/Makefile\n            wget https://github.com/Numbersf/Action-Build/raw/SukiSU-Ultra/patches/hmbird_patch.patch\n            echo \"⚙️ 正在打OGKI转换GKI补丁\"\n            patch -p1 -F 3 < hmbird_patch.patch\n            echo \"✅ OGKI转换GKI_patch完成\"\n          fi\n          \n      - name: \"⚙️ Configure Kernel Options | 配置内核选项\"\n        run: |\n          cd kernel_workspace/kernel_platform\n\n          echo \"⚙️ 正在配置内核编译选项...\"\n          \n          echo \"📦 启用 KSU 支持...\"\n          echo \"CONFIG_KSU=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          \n          if [ \"${{ github.event.inputs.KPM }}\" == \"On\" ]; then\n            echo \"📦 启用 KPM...\"\n            echo \"CONFIG_KPM=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.SUSFS }}\" == \"On\" ]; then\n            echo \"📦 启用 SUSFS 功能...\"\n            echo \"CONFIG_KSU_SUSFS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_PATH=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_MOUNT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_KSTAT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SPOOF_UNAME=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_ENABLE_LOG=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_OPEN_REDIRECT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_SUSFS_SUS_MAP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          else \n            echo \"📦 启用 MANUAL_HOOK...\"\n            echo \"CONFIG_KSU_SUSFS=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_KSU_MANUAL_HOOK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n\n          echo \"📦 添加对 Mountify (backslashxx/mountify) 模块的支持\"\n          echo \"CONFIG_TMPFS_XATTR=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          echo \"CONFIG_TMPFS_POSIX_ACL=y\" >> ./common/arch/arm64/configs/gki_defconfig\n\n          if [ \"${{ github.event.inputs.bbg }}\" == \"On\" ] && [ \"${{ github.event.inputs.KPM }}\" == \"Off\" ]; then\n            echo \"⚡ 配置 BBG 中...\"\n            echo 'CONFIG_BBG=y' >> ./common/arch/arm64/configs/gki_defconfig\n            echo 'CONFIG_LSM=\"landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf,baseband_guard\"' >> ./common/arch/arm64/configs/gki_defconfig\n          fi          \n          \n          if [ \"${{ github.event.inputs.bbr }}\" == \"On\" ]; then\n            echo \"🌐 启用 BBR 网络算法...\"\n            echo \"CONFIG_TCP_CONG_ADVANCED=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_BBR=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NET_SCH_FQ=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_BIC=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_WESTWOOD=n\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_TCP_CONG_HTCP=n\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.lz4kd }}\" == \"On\" ]; then\n            echo \"📦 启用 lz4kd压缩...\"\n            echo \"CONFIG_CRYPTO_LZ4KD=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_CRYPTO_LZ4K_OPLUS=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_ZRAM_WRITEBACK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.1\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.6\" ]; then\n            # Add O2 config\n            echo \"📦 为6.1 / 6.6加入O2优化...\"\n            echo \"CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n\n          if [ \"${{ github.event.inputs.proxy }}\" == \"On\" ]; then\n            # Add proxy config\n            echo \"📦 加入代理优化...\"\n            echo \"CONFIG_BPF_STREAM_PARSER=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_NETFILTER_XT_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_MAX=65534\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_IP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_IPMAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_BITMAP_PORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPMARK=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORTIP=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPPORTNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_IPMAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_MAC=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETPORTNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETNET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETPORT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_HASH_NETIFACE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP_SET_LIST_SET=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP6_NF_NAT=y\" >> ./common/arch/arm64/configs/gki_defconfig\n            echo \"CONFIG_IP6_NF_TARGET_MASQUERADE=y\" >> ./common/arch/arm64/configs/gki_defconfig\n          fi\n          \n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.10\" ] || [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"5.15\" ]; then\n            echo \"📦 正在为5.10 / 5.15系配置lto中...\"\n            DEFCONFIG=./common/arch/arm64/configs/gki_defconfig\n            sed -i 's/^CONFIG_LTO=n/CONFIG_LTO=y/' \"$DEFCONFIG\"\n            sed -i 's/^CONFIG_LTO_CLANG_FULL=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG\"\n            sed -i 's/^CONFIG_LTO_CLANG_NONE=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG\"\n            grep -q '^CONFIG_LTO_CLANG_THIN=y' \"$DEFCONFIG\" || echo 'CONFIG_LTO_CLANG_THIN=y' >> \"$DEFCONFIG\"\n          fi\n\n          #跳过将uapi标准头安装到 usr/include 目录的不必要操作，节省编译时间\n          echo \"CONFIG_HEADERS_INSTALL=n\" >> ./common/arch/arm64/configs/gki_defconfig\n\n          # Remove check_defconfig\n          sed -i 's/check_defconfig//' ./common/build.config.gki\n          echo \"✅ 内核配置更新完成\"\n          \n      - name: \"🔨 Build Kernel | 编译内核\"\n        run: |\n          echo \"🏗️ 开始内核编译...\"\n          export KBUILD_BUILD_USER=\"xiaoxiaow\"\n          export KBUILD_BUILD_HOST=\"xiaoxiaow_build\"\n\n          if [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.1\" ]; then\n            export KBUILD_BUILD_TIMESTAMP=\"Tue Mar 10 03:53:33 UTC 2026\"\n            export KBUILD_BUILD_VERSION=1\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out KCFLAGS+=-O2 gki_defconfig all\n\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"6.6\" ]; then\n            export PATH=\"/usr/lib/ccache:$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r510928/bin:$PATH\" \n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out KCFLAGS+=-O2  gki_defconfig all\n            \n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.15\" ]; then\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r450784e/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\n            \n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" == \"5.10\" ]; then\n            export PATH=\"$GITHUB_WORKSPACE/kernel_workspace/kernel_platform/prebuilts-master/clang/host/linux-x86/clang-r416183b/bin:$PATH\"\n            export PATH=\"/usr/lib/ccache:$PATH\"\n            sudo apt install libelf-dev\n            cd kernel_workspace/kernel_platform/common\n            make -j$(nproc --all) LLVM_IAS=1 LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\"ccache clang\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\n          fi\n          \n          # 显示ccache统计信息\n          ccache -s\n          echo \"✅ 内核编译完成\"\n          \n      - name: \"📦 Package Kernel | 打包内核\"\n        run: |\n          echo \"📦 准备AnyKernel3打包环境...\"\n          git clone https://github.com/Xiaomichael/AnyKernel3 --depth=1\n          rm -rf ./AnyKernel3/.git\n          mkdir -p kernel_workspace/kernel_platform/out/Final-Image-Find/\n          dir1=\"\"\n          dir2=\"\"\n          image_path=$(find \"./kernel_workspace/kernel_platform/common/out/\" -name \"Image\" | head -n 1)\n          if [ -n \"$image_path\" ]; then\n            dir1=$(dirname \"$image_path\")/\n            echo \"✅ 成功找到 Image 文件\"\n          fi\n          if [ -n \"$image_path\" ] && [ -f \"$image_path\" ]; then\n            echo \"Image file finally located at: $image_path\"\n            cp \"$image_path\" ./AnyKernel3/Image\n            cp \"$image_path\" kernel_workspace/kernel_platform/out/Final-Image-Find/Image\n          fi\n         \n      - name: \"🧩 Patch Kernel Image (KPM) | KPM修补镜像\"\n        if: ${{ github.event.inputs.KPM == 'On' }}\n        run: |\n          echo \"🔧 正在应用KPM补丁...\"\n          cd kernel_workspace/kernel_platform/out/Final-Image-Find\n          curl -LO https://github.com/SukiSU-Ultra/SukiSU_KernelPatch_patch/releases/download/0.13.0/patch_linux\n          chmod +x patch_linux\n          ./patch_linux\n          rm -f Image\n          mv oImage Image\n          cp Image $GITHUB_WORKSPACE/AnyKernel3/Image\n          echo \"✅ KPM补丁应用完成\"\n\n      - name: \"🧠 Set Artifact Name | 设置产物名称\"\n        id: set_name\n        run: |\n          if [ \"${{ github.event.inputs.lz4kd }}\" = \"On\" ]; then\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_SukiSU_Ultra_lz4kd_${{ env.KSUVER }}\"\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.1\" ]; then\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_SukiSU_Ultra_lz4_zstd_${{ env.KSUVER }}\"\n          elif [ \"${{ github.event.inputs.KERNEL_VERSION }}\" = \"6.6\" ]; then\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_SukiSU_Ultra_lz4_${{ env.KSUVER }}\"\n          else\n            BASE_NAME=\"${{ github.event.inputs.FEIL }}_SukiSU_Ultra_${{ env.KSUVER }}\"\n          fi\n          \n          if [ \"${{ github.event.inputs.SUSFS }}\" = \"On\" ]; then\n            FINAL_NAME=\"${BASE_NAME}_SUSFS\"\n          else\n            FINAL_NAME=\"${BASE_NAME}\"\n          fi\n          \n          echo \"ARTIFACT_NAME=${FINAL_NAME}\" >> $GITHUB_OUTPUT\n\n      - name: \"📤 Upload AnyKernel3 | 上传 AnyKernel3\"\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{ steps.set_name.outputs.ARTIFACT_NAME }}\n          path: ./AnyKernel3/*\n         \n      - name: \"📝 Find zram.ko & crypto_zstdn.ko | 查找 zram.ko & crypto_zstdn.ko\"\n        run: |\n          find -name zram.ko\n          find -name crypto_zstdn.ko\n          \n      - name: \"📤 Upload zram.ko | 上传 zram.ko\"\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{ github.event.inputs.FEIL }}_zram.ko\n          path: ./kernel_workspace/kernel_platform/common/out/drivers/block/zram/zram.ko\n\n      # - name: \"🤖 Get bot script | 获取 bot 脚本\"\n        # uses: actions/checkout@v6\n        # with:\n          # path: bot\n\n      # - name: \"📤 Upload to telegram | 上传至Telegram群组\"\n        # run: |\n          # if [ ! -z \"${{ secrets.BOT_TOKEN }}\" ]; then\n            # echo \"📤 正在上传到Telegram...\"\n            # cd AnyKernel3\n            # zip -q -r \"../${{ steps.set_name.outputs.ARTIFACT_NAME }}.zip\" ./*\n            # cd ..\n            # pip3 install telethon\n            # python3 ./bot/script/buildbot.py \"./${{ steps.set_name.outputs.ARTIFACT_NAME }}.zip\"\n            # echo \"✅ 文件已上传到Telegram\"\n          # fi\n        # env:\n          # CHATID: ${{secrets.CHATID}}\n          # BOT_TOKEN: ${{secrets.BOT_TOKEN}}\n          # MESSAGE_THREAD_ID: ${{secrets.MESSAGE_THREAD_ID}}\n          # KernelVer: ${{ github.event.inputs.ANDROID_VERSION}}-${{ github.event.inputs.KERNEL_VERSION }}\n          # DEVICE: ${{ github.event.inputs.FEIL }}\n          # KPM: ${{ github.event.inputs.KPM }}\n          # LZ4KD: ${{ github.event.inputs.lz4kd }}\n          # BBR: ${{ github.event.inputs.bbr }}\n          # KSU_VAR: \"SukiSU\"\n"
  },
  {
    "path": ".github/workflows/Clean_ccache.yml",
    "content": "name: Clean Caches\n\non:\n  workflow_dispatch:\n\njobs:\n  clean-caches:\n    runs-on: ubuntu-latest\n    permissions:\n      actions: write\n    \n    steps:     \n      - name: 获取并删除所有缓存\n        uses: actions/github-script@v6\n        with:\n          script: |\n            const { owner, repo } = context.repo;\n            let totalDeleted = 0;\n            \n            // 获取所有缓存\n            const caches = await github.rest.actions.getActionsCacheList({\n              owner,\n              repo,\n              per_page: 100\n            });\n            \n            // 删除匹配的缓存\n            for (const cache of caches.data.actions_caches) {\n              if (cache.key.startsWith('ccache-')) {\n                console.log(`删除缓存: ${cache.key}`);\n                await github.rest.actions.deleteActionsCacheById({\n                  owner,\n                  repo,\n                  cache_id: cache.id\n                });\n                totalDeleted++;\n              }\n            }\n            \n            return `成功删除 ${totalDeleted} 个缓存`;\n\n      - name: 重置环境\n        run: |\n          rm -rf $HOME/.ccache/*\n          sudo apt clean\n          sudo journalctl --vacuum-time=1s\n          sudo rm -rf /var/log/*\n          docker system prune -af || true\n          sudo rm -rf /tmp/*\n          echo \"容器环境已重置！\"\n          echo \"清理后空间:\"\n          df -h"
  },
  {
    "path": ".github/workflows/Clean_workflows.yml",
    "content": "name: Clean Workflows\n\non:\n  workflow_dispatch:\n    inputs:\n      workflow_name:\n        type: choice\n        description: '清理的工作流名称'\n        required: true\n        default: 'Build SukiSU Ultra'\n        options:\n          - Build SukiSU Ultra\n          - Build KernelSU Next\n          - Build Kernel Only\n          - Build KernelSU Official\n          - Build SukiSU Ultra (40129)\n          - Build ReSukiSU\n      count:\n        description: '最多清理的运行次数'\n        required: false\n        default: '20'\n      delete_failed:\n        description: '是否删除失败的运行记录'\n        required: false\n        type: boolean\n        default: true\n      delete_success:\n        description: '是否删除成功的运行记录'\n        required: false\n        type: boolean\n        default: false\n      delete_cancelled:\n        description: '是否删除已取消的运行记录'\n        required: false\n        type: boolean\n        default: true\n      reverse_order:\n        description: '是否从旧到新开始清理'\n        required: false\n        type: boolean\n        default: true\n\npermissions:\n  actions: write\n\njobs:\n  cleanup:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: 安装 GitHub CLI 和 jq\n        run: |\n          sudo apt-get update\n          sudo apt-get install -y gh jq\n\n      - name: 认证 GitHub CLI\n        run: echo \"${{ secrets.GITHUB_TOKEN }}\" | gh auth login --with-token\n\n      - name: 清理指定工作流及本工作流运行记录\n        env:\n          REPO: ${{ github.repository }}\n          COUNT: ${{ inputs.count }}\n          DELETE_FAILED: ${{ inputs.delete_failed }}\n          DELETE_SUCCESS: ${{ inputs.delete_success }}\n          DELETE_CANCELLED: ${{ inputs.delete_cancelled }}\n          REVERSE_ORDER: ${{ inputs.reverse_order }}\n          WORKFLOW_NAME: ${{ inputs.workflow_name }}\n          CURRENT_RUN_ID: ${{ github.run_id }}\n        run: |\n          set -e\n\n          echo \"当前仓库：$REPO\"\n          echo \"查找工作流 \\\"$WORKFLOW_NAME\\\" 的 ID...\"\n          WORKFLOW_ID=$(gh api repos/$REPO/actions/workflows | jq -r \".workflows[] | select(.name == \\\"$WORKFLOW_NAME\\\") | .id\")\n          if [ -z \"$WORKFLOW_ID\" ]; then\n            echo \"未找到工作流 \\\"$WORKFLOW_NAME\\\"，退出。\"\n            exit 1\n          fi\n\n          echo \"开始分页获取所有运行记录...\"\n          PER_PAGE=100\n          PAGE=1\n          MATCHED_RUNS=\"[]\"\n          while true; do\n            RESP=$(gh api \"repos/$REPO/actions/workflows/$WORKFLOW_ID/runs?per_page=$PER_PAGE&page=$PAGE\")\n            RUNS=$(echo \"$RESP\" | jq '.workflow_runs')\n            COUNT_THIS_PAGE=$(echo \"$RUNS\" | jq 'length')\n\n            if [ \"$COUNT_THIS_PAGE\" -eq 0 ]; then\n              break\n            fi\n\n            MATCHED_RUNS=$(jq -s 'add' <(echo \"$MATCHED_RUNS\") <(echo \"$RUNS\"))\n            PAGE=$((PAGE + 1))\n          done\n\n          echo \"共获取到 $(echo \"$MATCHED_RUNS\" | jq 'length') 条运行记录。\"\n\n          # 排序顺序：旧到新 or 新到旧\n          if [[ \"$REVERSE_ORDER\" == \"true\" ]]; then\n            SORTED_RUNS=$(echo \"$MATCHED_RUNS\" | jq 'sort_by(.run_started_at)')\n          else\n            SORTED_RUNS=$(echo \"$MATCHED_RUNS\" | jq 'sort_by(.run_started_at) | reverse')\n          fi\n\n          # 仅保留前 N 条\n          TO_DELETE_RUNS=$(echo \"$SORTED_RUNS\" | jq \".[0:${COUNT}]\")\n\n          echo \"$TO_DELETE_RUNS\" | jq -c '.[]' | while read run; do\n            ID=$(echo \"$run\" | jq -r '.id')\n            STATUS=$(echo \"$run\" | jq -r '.conclusion')\n            STATE=$(echo \"$run\" | jq -r '.status')\n\n            if [[ \"$STATE\" == \"in_progress\" || \"$STATE\" == \"queued\" ]]; then\n              echo \"跳过运行 ID: $ID（状态为 $STATE）\"\n              continue\n            fi\n\n            if [[ \"$STATUS\" == \"failure\" && \"$DELETE_FAILED\" != \"true\" ]]; then continue; fi\n            if [[ \"$STATUS\" == \"success\" && \"$DELETE_SUCCESS\" != \"true\" ]]; then continue; fi\n            if [[ \"$STATUS\" == \"cancelled\" && \"$DELETE_CANCELLED\" != \"true\" ]]; then continue; fi\n\n            echo \"删除运行记录 ID: $ID (状态: $STATUS)\"\n            gh api -X DELETE \"repos/$REPO/actions/runs/$ID\" || echo \"删除失败\"\n          done\n\n          echo \"清理本工作流运行记录...\"\n          SELF_WORKFLOW_ID=$(gh api repos/$REPO/actions/workflows | jq -r '.workflows[] | select(.name == \"清理工作流运行记录\") | .id')\n          if [ -n \"$SELF_WORKFLOW_ID\" ]; then\n            SELF_RUNS=$(gh api \"repos/$REPO/actions/workflows/$SELF_WORKFLOW_ID/runs?per_page=50\" | jq -c '.workflow_runs[]')\n\n            echo \"$SELF_RUNS\" | while read run; do\n              ID=$(echo \"$run\" | jq -r '.id')\n              if [[ \"$ID\" == \"$CURRENT_RUN_ID\" ]]; then\n                echo \"跳过当前运行 ID: $ID\"\n                continue\n              fi\n              echo \"删除本工作流运行记录 ID: $ID\"\n              gh api -X DELETE \"repos/$REPO/actions/runs/$ID\" || echo \"删除失败\"\n            done\n          fi"
  },
  {
    "path": "README.md",
    "content": "# ⭐⭐⭐ Star This Project ⭐⭐⭐\n\n如果您觉得这个项目对您有帮助，请给我一个 ``Star`` 或 ``进行赞助``！您的支持是我持续改进的动力。❤❤❤\n\n如果遇到问题欢迎提交``issue``！也随时欢迎``Pull Requests``！\n\n[![Channel](https://img.shields.io/badge/Follow-Telegram-blue.svg?logo=telegram)](https://t.me/gki_kernels_xiaoxiaow) [![Coolapk](https://img.shields.io/badge/Follow-Coolapk-3DDC84?style=flat-square&logo=android&logoColor=white)](https://www.coolapk.com/u/24701380)\n\n<img width=\"250\" height=\"250\" alt=\"image\" src=\"https://github.com/user-attachments/assets/55acad97-8fe6-4de7-b9ce-90da9552a212\" />\n\n## OnePlus 开源地址\n\n[![OnePlus Repository](https://img.shields.io/badge/OnePlus-Repository-red)](https://github.com/Xiaomichael/kernel_manifest)\n\n## 设备支持\n\n支持欧加真内核版本 `5.10-6.6` 的设备，只要跑出来内核版本号一样(或大于的可以尝试一下)就可以用\n\n内核版本为 `6.12` 的可以去这个 [专用仓库](https://github.com/Xiaomichael/oppo_oplus_realme_sm8850)\n\n## KernelSU管理器支持\n\n支持 ``ReSukiSU`` ``SukiSU Ultra`` ``KernelSU Next`` ``KernelSU Official``, 当然你也可以编译仅加入优化的 ``无 Root`` 内核\n\n## 使用指南\n\n### ① 分支选择\n\n1. 点击 `Branches` 切换处理器分支\n2. 选择适合您设备的配置 (Tips: 如果实在找不到代号名称去网上搜搜)\n\n<img width=\"376\" height=\"77\" alt=\"{B57A09D0-EC2F-4B86-9821-9C6CAC6435CF}\" src=\"https://github.com/user-attachments/assets/0f97b652-b1e4-484d-90c0-9e36bc15cdf0\" />\n\n### ② 配置文件说明\n\n- `_b` 后缀：ColorOS/OxygenOS 16\n- `_v` 后缀：ColorOS/OxygenOS 15\n- `_u` 后缀：ColorOS/OxygenOS 14\n- `_t` 后缀：ColorOS/OxygenOS 13\n\n<img width=\"1122\" height=\"257\" alt=\"image\" src=\"https://github.com/user-attachments/assets/24631b01-ec9d-4f77-a764-476cfe522537\" />\n\n### ③ 配置开关建议\n\n- **SUSFS选项**：SUSFS在编译时已经改为可选，看你的需求进行开关。近期上游在拉💩💩💩, 建议关闭\n- **KPM选项**：仅在 ``SukiSU Ultra`` ``ReSukiSU`` 支持开启，建议禁用以减少电量消耗，挂🐕去④\n- **lz4kd**：\n  - ``6.1系``内核：建议关闭该选项以获得更好的 `lz4 + zstd` 压缩方式\n  - ``6.6系``内核：建议关闭该选项以获得更好的 `lz4` 压缩方式\n  - ``5.10 - 5.15系``内核：建议保持开启\n- **BBR算法**：对手机日用无太大意义甚至可能``负优化``，推荐关闭\n- **BBG基带守护**: 推荐开启，看名字就知道是干啥的\n- **⚠️代理优化**: 骁龙芯片可以开，联发科芯片 `千万不要开` ，否则出现恶性Bug！\n- **是否添加Unicode零宽绕过修复补丁**: 仅推荐内核KMI版本为``android12-5.10``开启, ``5.15 - 6.12``可以使用 [这个 LSPosed 模块](https://t.me/real5ec1cff/271) 无痛修复"
  },
  {
    "path": "local/Build_KernelSU.sh",
    "content": "#!/bin/bash\n#export all_proxy=socks5://192.168.x.x:x/\nset -e\n\nclear\necho \"================================================\"\necho \"  KernelSU OnePlus Kernel Build Configuration   \"\necho \"================================================\"\necho \"  按回车键可直接使用 [方括号] 中的默认值\"\necho \"\"\n\nask() {\n    local prompt default reply\n    prompt=\"$1\"\n    default=\"$2\"\n    \n    read -p \"$prompt [$default]: \" reply\n    echo \"${reply:-$default}\"\n}\n\nCPU=$(ask \"请输入 CPU 分支 (例如: sm8750, sm8650, sm8550, sm8475)\" \"sm8650\")\nFEIL=$(ask \"请输入手机型号 (例如: oneplus_13_b, oneplus_12_b, oneplus_11_b)\" \"oneplus_12_b\")\nANDROID_VERSION=$(ask \"请输入内核安卓 KMI 版本 (android15, android14, android13, android12)\" \"android14\")\nKERNEL_VERSION=$(ask \"请输入内核版本 (6.6, 6.1, 5.15, 5.10)\" \"6.1\")\nSUSFS=$(ask \"是否启用 SUSFS? (On/Off)\" \"Off\")\nlz4kd=$(ask \"是否启用 lz4kd? (6.1 关闭时使用 lz4 + zstd; 6.6 关闭时使用 lz4) (On/Off)\" \"Off\")\nbbr=$(ask \"是否启用 BBR 拥塞控制算法? (On/Off)\" \"Off\")\nbbg=$(ask \"是否启用 Baseband-Guard 基带防护? (On/Off)\" \"On\")\nproxy=$(ask \"是否添加代理性能优化? (如为联发科 CPU 必须选择 Off) (On/Off)\" \"On\")\nUNICODE_BYPASS=$(ask \"是否添加Unicode零宽绕过修复补丁(高内核版本不推荐开启, 建议使用 https://t.me/real5ec1cff/271 无痛修复) (On/Off)\" \"Off\")\n\nclear\necho \"\"\necho \"=================================================\"\necho \"                   配置摘要\"\necho \"=================================================\"\necho \"手机型号                 : $FEIL\"\necho \"CPU 分支                 : $CPU\"\necho \"安卓 KMI 版本            : $ANDROID_VERSION\"\necho \"内核版本                 : $KERNEL_VERSION\"\necho \"是否启用 SUSFS           : $SUSFS\"\necho \"是否启用 lz4kd           : $lz4kd\"\necho \"是否启用 BBR             : $bbr\"\necho \"是否启用 Baseband-Guard  : $bbg\"\necho \"是否启用代理优化          : $proxy\"\necho \"是否启用 Unicode 绕过修复 : $UNICODE_BYPASS\"\necho \"=================================================\"\nread -p \"按回车键开始构建流程...\"\nclear\n\necho \"📦 正在准备构建工作空间...\"\nWORKSPACE=$PWD/build_workspace\nsudo rm -rf \"$WORKSPACE\"\nmkdir -p \"$WORKSPACE\"\ncd \"$WORKSPACE\"\n\necho \"📦 正在安装构建依赖...\"\nsudo apt-get update\nsudo DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \\\n  python3 git curl ccache libelf-dev \\\n  build-essential flex bison libssl-dev \\\n  libncurses-dev liblz4-tool zlib1g-dev \\\n  libxml2-utils rsync unzip python3-pip gawk dos2unix\nclear\necho \"✅ 必要构建依赖安装完成\"\n\necho \"⚙️ 正在配置 ccache 缓存...\"\nif [ \"$SUSFS\" == \"On\" ]; then\n  export CCACHE_DIR=\"$HOME/.ccache_${FEIL}_Official_SUSFS\"\nelse\n  export CCACHE_DIR=\"$HOME/.ccache_${FEIL}_Official_NoSUSFS\"\nfi\nexport CCACHE_COMPILERCHECK=\"%compiler% -dumpmachine; %compiler% -dumpversion\"\nexport CCACHE_NOHASHDIR=\"true\"\nexport CCACHE_HARDLINK=\"true\"\nexport CCACHE_MAXSIZE=\"20G\"\nexport PATH=\"/usr/lib/ccache:$PATH\"\nmkdir -p \"$CCACHE_DIR\"\necho \"✅ ccache 缓存目录: $CCACHE_DIR\"\nccache -M \"$CCACHE_MAXSIZE\"\nccache -z\n\necho \"🔐 正在配置 Git 用户信息...\"\ngit config --global user.name \"Local Builder\"\ngit config --global user.email \"builder@localhost\"\necho \"✅ Git 用户信息配置完成\"\n\nif ! command -v repo &> /dev/null; then\n    echo \"📥 未检测到 repo 工具，正在安装...\"\n    curl -fsSL https://storage.googleapis.com/git-repo-downloads/repo > ~/repo\n    chmod a+x ~/repo\n    sudo mv ~/repo /usr/local/bin/repo\n    echo \"✅ repo 工具安装完成\"\nelse\n    echo \"ℹ️ 已检测到 repo 工具，跳过安装\"\nfi\n\necho \"⬇️ 正在准备内核源码目录...\"\nsudo rm -rf kernel_workspace\nmkdir -p kernel_workspace && cd kernel_workspace\n\necho \"🌐 正在初始化 oneplus/${CPU} 分支、机型 ${FEIL} 的 manifest...\"\nrepo init -u https://github.com/Xiaomichael/kernel_manifest.git -b refs/heads/oneplus/${CPU} -m ${FEIL}.xml --depth=1\n\necho \"🔄 正在同步内核源码仓库 (使用 $(nproc --all) 线程)...\"\nrepo sync -c -j$(nproc --all) --no-tags --no-clone-bundle --force-sync\necho \"✅ 内核源码同步完成\"\n\nexport adv=$ANDROID_VERSION\necho \"🔧 正在清理并修改版本字符串...\"\nrm -f kernel_platform/common/android/abi_gki_protected_exports_* || echo \"common 目录下无受保护导出表，无需删除\"\nrm -f kernel_platform/msm-kernel/android/abi_gki_protected_exports_* || echo \"msm-kernel 目录下无受保护导出表，无需删除\"\n\nsed -i 's/ -dirty//g' kernel_platform/common/scripts/setlocalversion\nsed -i 's/ -dirty//g' kernel_platform/msm-kernel/scripts/setlocalversion\nsed -i 's/ -dirty//g' kernel_platform/external/dtc/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/common/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/msm-kernel/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/external/dtc/scripts/setlocalversion\n\nif [ \"$KERNEL_VERSION\" != \"6.6\" ]; then\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/common/scripts/setlocalversion\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/msm-kernel/scripts/setlocalversion\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/external/dtc/scripts/setlocalversion\nelse\n  ESCAPED_SUFFIX=$(printf '%s\\n' \"-${ANDROID_VERSION}-oki-xiaoxiaow\" | sed 's:[\\/&]:\\\\&:g')\n  sed -i \"s/-4k/${ESCAPED_SUFFIX}/g\" kernel_platform/common/arch/arm64/configs/gki_defconfig\n  sed -i 's/\\${scm_version}//' kernel_platform/common/scripts/setlocalversion\n  sed -i 's/\\${scm_version}//' kernel_platform/msm-kernel/scripts/setlocalversion\nfi\n\necho \"✅ 内核仓库准备完毕并完成版本号清理\"\n\nif [ \"$bbg\" = \"On\" ]; then\n    set -e\n    cd kernel_platform/common\n    echo \"🛡️ 正在配置 Baseband-Guard 基带防护...\"\n    curl -sSL https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh -o setup.sh\n    bash setup.sh\n    cd ../..\n    echo \"✅ Baseband-Guard 配置完成\"\nfi\n\necho \"⚡ 正在配置 KernelSU...\"\ncd kernel_platform\n\ncurl -LSs \"https://raw.githubusercontent.com/tiann/KernelSU/refs/heads/main/kernel/setup.sh\" | bash -s main\ncd KernelSU\nKSU_VERSION=$(expr $(curl -sI \"https://api.github.com/repos/tiann/KernelSU/commits?sha=main&per_page=1\" | grep -i \"link:\" | sed -n 's/.*page=\\([0-9]*\\)>; rel=\"last\".*/\\1/p') \"+\" 30000)\necho \"KSUVER=$KSU_VERSION\" >> $GITHUB_ENV\nsed -i \"s/DKSU_VERSION=16/DKSU_VERSION=${KSU_VERSION}/\" kernel/Kbuild\n\necho \"✅ KernelSU 版本信息配置完成\"\ncd ../..\n\necho \"🔧 正在克隆所需补丁...\"\nif [ \"$SUSFS\" == \"On\" ]; then\n  git clone https://github.com/cctv18/susfs4oki.git -b oki-${ANDROID_VERSION}-${KERNEL_VERSION}\nfi\ngit clone https://github.com/Xiaomichael/kernel_patches.git\ngit clone https://github.com/ShirkNeko/SukiSU_patch.git\n\ncd kernel_platform\necho \"📝 正在复制补丁文件...\"\n  cp ../susfs4oki/kernel_patches/50_add_susfs_in_gki-${ANDROID_VERSION}-${KERNEL_VERSION}.patch ./common/\n  cp ../susfs4oki/kernel_patches/fs/* ./common/fs/\n  cp ../susfs4oki/kernel_patches/include/linux/* ./common/include/linux/\nfi\n\ncp ../kernel_patches/zram_patches/001-lz4.patch ./common/\ncp ../kernel_patches/zram_patches/lz4armv8.S ./common/lib\ncp ../kernel_patches/zram_patches/002-zstd.patch ./common/\n\nif [ \"$UNICODE_BYPASS\" = \"On\" ]; then\n  if [ \"$KERNEL_VERSION\" = \"6.1\" ] || [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n    cp ../kernel_patches/common/unicode_bypass_fix_6.1+.patch ./common/unicode_bypass_fix.patch\n  elif [ \"$KERNEL_VERSION\" = \"5.15\" ] || [ \"$KERNEL_VERSION\" = \"5.10\" ]; then\n    cp ../kernel_patches/common/unicode_bypass_fix_6.1-.patch ./common/unicode_bypass_fix.patch\n  fi\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"🚀 正在复制 lz4kd 相关补丁...\"\n  cp -r ../SukiSU_patch/other/zram/lz4k/include/linux/* ./common/include/linux\n  cp -r ../SukiSU_patch/other/zram/lz4k/lib/* ./common/lib\n  cp -r ../SukiSU_patch/other/zram/lz4k/crypto/* ./common/crypto\n  cp -r ../SukiSU_patch/other/zram/lz4k_oplus ./common/lib/\nfi\n\necho \"🔧 正在应用补丁...\"\n\nif [ \"$SUSFS\" == \"On\" ]; then\n  cd ./KernelSU\n  patch -p1 < 10_enable_susfs_for_ksu.patch || true\nfi\n\nif [ \"$SUSFS\" == \"On\" ]; then\n  cd ../common\n  patch -p1 < 50_add_susfs_in_gki-${ANDROID_VERSION}-${KERNEL_VERSION}.patch || true\n  cp ../../kernel_patches/69_hide_stuff.patch ./\n  patch -p1 -F 3 < 69_hide_stuff.patch\nelif [ \"$SUSFS\" == \"Off\" ]; then\n  cd ./common\nfi\n\nif [ \"$UNICODE_BYPASS\" = \"On\" ]; then\n  echo \"📦 正在应用Unicode零宽绕过修复补丁...\"\n  patch -p1 < unicode_bypass_fix.patch\nfi\n\nif [ \"$lz4kd\" = \"Off\" ] && [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n  echo \"📦 正在为 6.1 应用 lz4 + zstd 补丁...\"\n  git apply -p1 < 001-lz4.patch || true\n  patch -p1 < 002-zstd.patch || true\nfi\n\nif [ \"$lz4kd\" = \"Off\" ] && [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  echo \"📦 正在为 6.6 应用 lz4 补丁...\"\n  git apply -p1 < 001-lz4.patch || true\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"📦 正在应用 lz4kd / lz4k_oplus 补丁...\"\n  cp ../../SukiSU_patch/other/zram/zram_patch/${KERNEL_VERSION}/lz4kd.patch ./\n  patch -p1 -F 3 < lz4kd.patch || true\n  cp ../../SukiSU_patch/other/zram/zram_patch/${KERNEL_VERSION}/lz4k_oplus.patch ./\n  patch -p1 -F 3 < lz4k_oplus.patch || true\nfi\necho \"✅ 所有补丁应用完成\"\ncd ../..\n\nif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  cd kernel_platform/common\n  echo \"⬇️ 正在拉取风驰补丁\"\n  if [ \"$FEIL\" = \"oneplus_ace5_ultra\" ] || [ \"$FEIL\" = \"oneplus_ace5_ultra_b\" ]; then\n      echo \"⚠️ Ace5 Ultra 需要使用 mt6991 分支的补丁\"\n      git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"mt6991\"\n  else\n      echo \"⚙️ 使用 sm8750 分支的补丁\"\n      git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"sm8750\"\n  fi\n\n  cp ./SCHED_PATCH/fengchi_$FEIL.patch ./\n\n  if [[ -f \"fengchi_$FEIL.patch\" ]]; then\n    echo \"⚙️ 开始应用风驰补丁\"\n    dos2unix \"fengchi_$FEIL.patch\"\n    patch -p1 -F 3 < \"fengchi_$FEIL.patch\"\n    echo \"✅ 完美风驰补丁应用完成\"\n  else\n    echo \"⚠️ 该6.6机型暂不支持风驰补丁, 正在应用OGKI转GKI补丁\"\n    sed -i '1iobj-y += hmbird_patch.o' drivers/Makefile\n    wget https://github.com/Numbersf/Action-Build/raw/SukiSU-Ultra/patches/hmbird_patch.patch\n    echo \"⚙️ 正在打OGKI转换GKI补丁\"\n    patch -p1 -F 3 < hmbird_patch.patch\n    echo \"✅ OGKI转换GKI_patch完成\"\n  fi\n  cd ../..\nfi\n\necho \"⚙️ 正在配置内核编译选项...\"\nDEFCONFIG_PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/common/arch/arm64/configs/gki_defconfig\"\n\necho \"CONFIG_KSU=y\" >> \"$DEFCONFIG_PATH\"\n\n#添加对 Mountify (backslashxx/mountify) 模块的支持\necho \"CONFIG_TMPFS_XATTR=y\" >> \"$DEFCONFIG_PATH\"\necho \"CONFIG_TMPFS_POSIX_ACL=y\" >> \"$DEFCONFIG_PATH\"\n\nif [ \"$SUSFS\" == \"On\" ]; then\n  echo \"⚡ 配置 SUSFS 中...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_KSU_SUSFS=y\nCONFIG_KSU_SUSFS_SUS_PATH=y\nCONFIG_KSU_SUSFS_SUS_MOUNT=y\nCONFIG_KSU_SUSFS_SUS_KSTAT=y\nCONFIG_KSU_SUSFS_SPOOF_UNAME=y\nCONFIG_KSU_SUSFS_ENABLE_LOG=y\nCONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y\nCONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y\nCONFIG_KSU_SUSFS_OPEN_REDIRECT=y\nCONFIG_KSU_SUSFS_SUS_MAP=y\nEOT\nelse\n  echo \"CONFIG_KSU_SUSFS=n\" >> \"$DEFCONFIG_PATH\"\nfi\n\nif [ \"$bbg\" = \"On\" ]; then\n  echo \"⚡ 配置 BBG 中...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_BBG=y\nCONFIG_LSM=\"landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf,baseband_guard\"\nEOT\nfi\n\nif [ \"$bbr\" = \"On\" ]; then\n  echo \"🌐 启用 BBR 网络算法...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_TCP_CONG_ADVANCED=y\nCONFIG_TCP_CONG_BBR=y\nCONFIG_NET_SCH_FQ=y\nCONFIG_TCP_CONG_BIC=n\nCONFIG_TCP_CONG_WESTWOOD=n\nCONFIG_TCP_CONG_HTCP=n\nEOT\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"📦 启用 lz4kd 与 写回支持...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_CRYPTO_LZ4KD=y\nCONFIG_CRYPTO_LZ4K_OPLUS=y\nCONFIG_ZRAM_WRITEBACK=y\nEOT\nfi\n\nif [ \"$KERNEL_VERSION\" = \"6.1\" ] || [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  echo \"CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y\" >> \"$DEFCONFIG_PATH\"\nfi\n\nif [ \"$proxy\" = \"On\" ]; then\n  echo \"📦 添加代理相关网络优化选项...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_BPF_STREAM_PARSER=y\nCONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y\nCONFIG_NETFILTER_XT_SET=y\nCONFIG_IP_SET=y\nCONFIG_IP_SET_MAX=65534\nCONFIG_IP_SET_BITMAP_IP=y\nCONFIG_IP_SET_BITMAP_IPMAC=y\nCONFIG_IP_SET_BITMAP_PORT=y\nCONFIG_IP_SET_HASH_IP=y\nCONFIG_IP_SET_HASH_IPMARK=y\nCONFIG_IP_SET_HASH_IPPORT=y\nCONFIG_IP_SET_HASH_IPPORTIP=y\nCONFIG_IP_SET_HASH_IPPORTNET=y\nCONFIG_IP_SET_HASH_IPMAC=y\nCONFIG_IP_SET_HASH_MAC=y\nCONFIG_IP_SET_HASH_NETPORTNET=y\nCONFIG_IP_SET_HASH_NET=y\nCONFIG_IP_SET_HASH_NETNET=y\nCONFIG_IP_SET_HASH_NETPORT=y\nCONFIG_IP_SET_HASH_NETIFACE=y\nCONFIG_IP_SET_LIST_SET=y\nCONFIG_IP6_NF_NAT=y\nCONFIG_IP6_NF_TARGET_MASQUERADE=y\nEOT\nfi\n\nif [ \"$KERNEL_VERSION\" = \"5.10\" ] || [ \"$KERNEL_VERSION\" = \"5.15\" ]; then\n  echo \"📦 正在为 5.10 / 5.15 系配置 LTO...\"\n  sed -i 's/^CONFIG_LTO=n/CONFIG_LTO=y/' \"$DEFCONFIG_PATH\"\n  sed -i 's/^CONFIG_LTO_CLANG_FULL=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG_PATH\"\n  sed -i 's/^CONFIG_LTO_CLANG_NONE=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG_PATH\"\n  grep -q '^CONFIG_LTO_CLANG_THIN=y' \"$DEFCONFIG_PATH\" || echo 'CONFIG_LTO_CLANG_THIN=y' >> \"$DEFCONFIG_PATH\"\nfi\n\necho \"CONFIG_HEADERS_INSTALL=n\" >> \"$DEFCONFIG_PATH\"\n\nsed -i 's/check_defconfig//' \"$WORKSPACE/kernel_workspace/kernel_platform/common/build.config.gki\"\n\necho \"✅ defconfig 配置更新完成\"\ncd ../..\n\necho \"🔨 开始内核编译...\"\ncd \"$WORKSPACE/kernel_workspace/kernel_platform/common\"\n\nMAKE_CMD_COMMON=\"make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\\\"ccache clang\\\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\"\n\nexport KBUILD_BUILD_USER=\"xiaoxiaow\"\nexport KBUILD_BUILD_HOST=\"xiaoxiaow_build\"\n\nif [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n    export KBUILD_BUILD_TIMESTAMP=\"Tue Mar 10 03:53:33 UTC 2026\"\n    export KBUILD_BUILD_VERSION=1\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON KCFLAGS+=-O2\"\nelif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n    export KBUILD_BUILD_VERSION=1\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r510928/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON KCFLAGS+=-O2\"\nelif [ \"$KERNEL_VERSION\" = \"5.15\" ]; then\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r450784e/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON\"\nelif [ \"$KERNEL_VERSION\" = \"5.10\" ]; then\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts-master/clang/host/linux-x86/clang-r416183b/bin:$PATH\"\n    eval \"make -j$(nproc --all) LLVM_IAS=1 LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\\\"ccache clang\\\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\"\nelse\n    echo \"❌ 不支持的内核版本: $KERNEL_VERSION\" && exit 1\nfi\n\necho \"📊 当前 ccache 统计信息如下:\"\nccache -s\necho \"✅ 内核编译完成\"\ncd \"$WORKSPACE\"\n\necho \"📦 正在获取 AnyKernel3 并准备打包...\"\ngit clone https://github.com/Xiaomichael/AnyKernel3 --depth=1\nrm -rf ./AnyKernel3/.git\n\nIMAGE_PATH=$(find \"$WORKSPACE/kernel_workspace/kernel_platform/common/out/\" -name \"Image\" | head -n 1)\nif [ -z \"$IMAGE_PATH\" ]; then echo \"❌ 严重错误：编译完成后未找到 Kernel Image！\" && exit 1; fi\n\necho \"✅ 已找到 Kernel Image: $IMAGE_PATH\"\ncp \"$IMAGE_PATH\" ./AnyKernel3/Image\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  ARTIFACT_NAME=\"${FEIL}_KernelSU_lz4kd_${KSUVER}\"\nelif [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n  ARTIFACT_NAME=\"${FEIL}_KernelSU_lz4_zstd_${KSUVER}\"\nelif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  ARTIFACT_NAME=\"${FEIL}_KernelSU_lz4_${KSUVER}\"\nelse\n  ARTIFACT_NAME=\"${FEIL}_KernelSU_${KSUVER}\"\nfi\nif [ \"$SUSFS\" = \"On\" ]; then\n  ARTIFACT_NAME=\"${ARTIFACT_NAME}_SUSFS\"\nfi\n\nFINAL_ZIP_NAME=\"${ARTIFACT_NAME}.zip\"\n\necho \"📦 正在创建最终可刷入压缩包: ${FINAL_ZIP_NAME}...\"\ncd AnyKernel3 && zip -q -r9 \"../${FINAL_ZIP_NAME}\" ./* && cd ..\n\necho \"\"\necho \"=================================================\"\necho \"                  构建完成！\"\necho \"=================================================\"\necho \"-> 可刷入内核压缩包路径: $WORKSPACE/${FINAL_ZIP_NAME}\"\n\nZRAM_KO_PATH=$(find \"$WORKSPACE/kernel_workspace/kernel_platform/common/out/\" -name \"zram.ko\" | head -n 1)\nif [ -n \"$ZRAM_KO_PATH\" ]; then\n    cp \"$ZRAM_KO_PATH\" \"$WORKSPACE/\"\n    echo \"-> zram.ko 模块路径: $WORKSPACE/zram.ko\"\nfi\n\necho \"=================================================\"\necho \"\"\n"
  },
  {
    "path": "local/Build_Next.sh",
    "content": "#!/bin/bash\n#export all_proxy=socks5://192.168.x.x:x/\nset -e\n\nclear\necho \"====================================================\"\necho \"  KernelSU Next OnePlus Kernel Build Configuration  \"\necho \"====================================================\"\necho \"  按回车键可直接使用 [方括号] 中的默认值\"\necho \"\"\n\nask() {\n    local prompt default reply\n    prompt=\"$1\"\n    default=\"$2\"\n    \n    read -p \"$prompt [$default]: \" reply\n    echo \"${reply:-$default}\"\n}\n\nCPU=$(ask \"请输入 CPU 分支 (例如: sm8750, sm8650, sm8550, sm8475)\" \"sm8650\")\nFEIL=$(ask \"请输入手机型号 (例如: oneplus_13_b, oneplus_12_b, oneplus_11_b)\" \"oneplus_12_b\")\nANDROID_VERSION=$(ask \"请输入内核安卓 KMI 版本 (android15, android14, android13, android12)\" \"android14\")\nKERNEL_VERSION=$(ask \"请输入内核版本 (6.6, 6.1, 5.15, 5.10)\" \"6.1\")\nSUSFS=$(ask \"是否启用 SUSFS? (On/Off)\" \"Off\")\nlz4kd=$(ask \"是否启用 lz4kd? (6.1 关闭时使用 lz4 + zstd; 6.6 关闭时使用 lz4) (On/Off)\" \"Off\")\nbbr=$(ask \"是否启用 BBR 拥塞控制算法? (On/Off)\" \"Off\")\nbbg=$(ask \"是否启用 Baseband-Guard 基带防护? (On/Off)\" \"On\")\nproxy=$(ask \"是否添加代理性能优化? (如为联发科 CPU 必须选择 Off) (On/Off)\" \"On\")\nUNICODE_BYPASS=$(ask \"是否添加Unicode零宽绕过修复补丁(高内核版本不推荐开启, 建议使用 https://t.me/real5ec1cff/271 无痛修复) (On/Off)\" \"Off\")\n\nclear\necho \"\"\necho \"=================================================\"\necho \"                   配置摘要\"\necho \"=================================================\"\necho \"手机型号                 : $FEIL\"\necho \"CPU 分支                 : $CPU\"\necho \"安卓 KMI 版本            : $ANDROID_VERSION\"\necho \"内核版本                 : $KERNEL_VERSION\"\necho \"是否启用 SUSFS           : $SUSFS\"\necho \"是否启用 lz4kd           : $lz4kd\"\necho \"是否启用 BBR             : $bbr\"\necho \"是否启用 Baseband-Guard  : $bbg\"\necho \"是否启用代理优化          : $proxy\"\necho \"是否启用 Unicode 绕过修复 : $UNICODE_BYPASS\"\necho \"=================================================\"\nread -p \"按回车键开始构建流程...\"\nclear\n\necho \"📦 正在准备构建工作空间...\"\nWORKSPACE=$PWD/build_workspace\nsudo rm -rf \"$WORKSPACE\"\nmkdir -p \"$WORKSPACE\"\ncd \"$WORKSPACE\"\n\necho \"📦 正在安装构建依赖...\"\nsudo apt-get update\nsudo DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \\\n  python3 git curl ccache libelf-dev \\\n  build-essential flex bison libssl-dev \\\n  libncurses-dev liblz4-tool zlib1g-dev \\\n  libxml2-utils rsync unzip python3-pip gawk dos2unix\nclear\necho \"✅ 必要构建依赖安装完成\"\n\necho \"⚙️ 正在配置 ccache 缓存...\"\nif [ \"$SUSFS\" == \"On\" ]; then\n  export CCACHE_DIR=\"$HOME/.ccache_${FEIL}_Next_SUSFS\"\nelse\n  export CCACHE_DIR=\"$HOME/.ccache_${FEIL}_Next_NoSUSFS\"\nfi\nexport CCACHE_COMPILERCHECK=\"%compiler% -dumpmachine; %compiler% -dumpversion\"\nexport CCACHE_NOHASHDIR=\"true\"\nexport CCACHE_HARDLINK=\"true\"\nexport CCACHE_MAXSIZE=\"20G\"\nexport PATH=\"/usr/lib/ccache:$PATH\"\nmkdir -p \"$CCACHE_DIR\"\necho \"✅ ccache 缓存目录: $CCACHE_DIR\"\nccache -M \"$CCACHE_MAXSIZE\"\nccache -z\n\necho \"🔐 正在配置 Git 用户信息...\"\ngit config --global user.name \"Local Builder\"\ngit config --global user.email \"builder@localhost\"\necho \"✅ Git 用户信息配置完成\"\n\nif ! command -v repo &> /dev/null; then\n    echo \"📥 未检测到 repo 工具，正在安装...\"\n    curl -fsSL https://storage.googleapis.com/git-repo-downloads/repo > ~/repo\n    chmod a+x ~/repo\n    sudo mv ~/repo /usr/local/bin/repo\n    echo \"✅ repo 工具安装完成\"\nelse\n    echo \"ℹ️ 已检测到 repo 工具，跳过安装\"\nfi\n\necho \"⬇️ 正在准备内核源码目录...\"\nsudo rm -rf kernel_workspace\nmkdir -p kernel_workspace && cd kernel_workspace\n\necho \"🌐 正在初始化 oneplus/${CPU} 分支、机型 ${FEIL} 的 manifest...\"\nrepo init -u https://github.com/Xiaomichael/kernel_manifest.git -b refs/heads/oneplus/${CPU} -m ${FEIL}.xml --depth=1\n\necho \"🔄 正在同步内核源码仓库 (使用 $(nproc --all) 线程)...\"\nrepo sync -c -j$(nproc --all) --no-tags --no-clone-bundle --force-sync\necho \"✅ 内核源码同步完成\"\n\nexport adv=$ANDROID_VERSION\necho \"🔧 正在清理并修改版本字符串...\"\nrm -f kernel_platform/common/android/abi_gki_protected_exports_* || echo \"common 目录下无受保护导出表，无需删除\"\nrm -f kernel_platform/msm-kernel/android/abi_gki_protected_exports_* || echo \"msm-kernel 目录下无受保护导出表，无需删除\"\n\nsed -i 's/ -dirty//g' kernel_platform/common/scripts/setlocalversion\nsed -i 's/ -dirty//g' kernel_platform/msm-kernel/scripts/setlocalversion\nsed -i 's/ -dirty//g' kernel_platform/external/dtc/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/common/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/msm-kernel/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/external/dtc/scripts/setlocalversion\n\nif [ \"$KERNEL_VERSION\" != \"6.6\" ]; then\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/common/scripts/setlocalversion\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/msm-kernel/scripts/setlocalversion\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/external/dtc/scripts/setlocalversion\nelse\n  ESCAPED_SUFFIX=$(printf '%s\\n' \"-${ANDROID_VERSION}-oki-xiaoxiaow\" | sed 's:[\\/&]:\\\\&:g')\n  sed -i \"s/-4k/${ESCAPED_SUFFIX}/g\" kernel_platform/common/arch/arm64/configs/gki_defconfig\n  sed -i 's/\\${scm_version}//' kernel_platform/common/scripts/setlocalversion\n  sed -i 's/\\${scm_version}//' kernel_platform/msm-kernel/scripts/setlocalversion\nfi\n\necho \"✅ 内核仓库准备完毕并完成版本号清理\"\n\nif [ \"$bbg\" = \"On\" ]; then\n    set -e\n    cd kernel_platform/common\n    echo \"🛡️ 正在配置 Baseband-Guard 基带防护...\"\n    curl -sSL https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh -o setup.sh\n    bash setup.sh\n    cd ../..\n    echo \"✅ Baseband-Guard 配置完成\"\nfi\n\necho \"⚡ 正在配置 KernelSU Next...\"\ncd kernel_platform\ncurl -LSs \"https://raw.githubusercontent.com/pershoot/KernelSU-Next/dev-susfs/kernel/setup.sh\" | bash -s dev-susfs\n\ncd KernelSU-Next\nKSU_VERSION=$(expr $(curl -sI \"https://api.github.com/repos/KernelSU-Next/KernelSU-Next/commits?sha=dev&per_page=1\" | grep -i \"link:\" | sed -n 's/.*page=\\([0-9]*\\)>; rel=\"last\".*/\\1/p') \"+\" 30000)\nexport KSUVER=$(expr $KSU_VERSION)\nsed -i \"s/DKSU_VERSION=11998/DKSU_VERSION=${KSU_VERSION}/\" kernel/Makefile\n\necho \"✅ KernelSU Next 版本信息配置完成.\"\ncd ../..\n\necho \"🔧 正在克隆所需补丁...\"\nif [ \"$SUSFS\" == \"On\" ]; then\n  git clone https://github.com/cctv18/susfs4oki.git -b oki-${ANDROID_VERSION}-${KERNEL_VERSION}\nfi\ngit clone https://github.com/Xiaomichael/kernel_patches.git\ngit clone https://github.com/ShirkNeko/SukiSU_patch.git\n\ncd kernel_platform\necho \"📝 正在复制补丁文件...\"\n\nif [ \"$SUSFS\" == \"On\" ]; then\n  cp ../susfs4oki/kernel_patches/50_add_susfs_in_gki-${ANDROID_VERSION}-${KERNEL_VERSION}.patch ./common/\n  cp ../susfs4oki/kernel_patches/fs/* ./common/fs/\n  cp ../susfs4oki/kernel_patches/include/linux/* ./common/include/linux/\nelse\n  cp ../kernel_patches/sukisu/scope_min_manual_hooks_v1.9.patch ./common/\nfi\n\ncp ../kernel_patches/zram_patches/001-lz4.patch ./common/\ncp ../kernel_patches/zram_patches/lz4armv8.S ./common/lib\ncp ../kernel_patches/zram_patches/002-zstd.patch ./common/\n\nif [ \"$UNICODE_BYPASS\" = \"On\" ]; then\n  if [ \"$KERNEL_VERSION\" = \"6.1\" ] || [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n    cp ../kernel_patches/common/unicode_bypass_fix_6.1+.patch ./common/unicode_bypass_fix.patch\n  elif [ \"$KERNEL_VERSION\" = \"5.15\" ] || [ \"$KERNEL_VERSION\" = \"5.10\" ]; then\n    cp ../kernel_patches/common/unicode_bypass_fix_6.1-.patch ./common/unicode_bypass_fix.patch\n  fi\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"🚀 正在复制 lz4kd 相关补丁...\"\n  cp -r ../SukiSU_patch/other/zram/lz4k/include/linux/* ./common/include/linux\n  cp -r ../SukiSU_patch/other/zram/lz4k/lib/* ./common/lib\n  cp -r ../SukiSU_patch/other/zram/lz4k/crypto/* ./common/crypto\n  cp -r ../SukiSU_patch/other/zram/lz4k_oplus ./common/lib/\nfi\n\necho \"🔧 正在应用补丁...\"\ncd ./common\n\nif [ \"$UNICODE_BYPASS\" = \"On\" ]; then\n  echo \"📦 正在应用Unicode零宽绕过修复补丁...\"\n  patch -p1 < unicode_bypass_fix.patch\nfi\n\nif [ \"$lz4kd\" = \"Off\" ] && [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n  echo \"📦 正在为 6.1 应用 lz4 + zstd 补丁...\"\n  git apply -p1 < 001-lz4.patch || true\n  patch -p1 < 002-zstd.patch || true\nfi\n\nif [ \"$lz4kd\" = \"Off\" ] && [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  echo \"📦 正在为 6.6 应用 lz4 补丁...\"\n  git apply -p1 < 001-lz4.patch || true\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"📦 正在应用 lz4kd / lz4k_oplus 补丁...\"\n  cp ../../SukiSU_patch/other/zram/zram_patch/${KERNEL_VERSION}/lz4kd.patch ./\n  patch -p1 -F 3 < lz4kd.patch || true\n  cp ../../SukiSU_patch/other/zram/zram_patch/${KERNEL_VERSION}/lz4k_oplus.patch ./\n  patch -p1 -F 3 < lz4k_oplus.patch || true\nfi\n\nif [ \"$SUSFS\" == \"On\" ]; then\n  patch -p1 < 50_add_susfs_in_gki-${ANDROID_VERSION}-${KERNEL_VERSION}.patch || true\n  cp ../../kernel_patches/69_hide_stuff.patch ./\n  patch -p1 -F 3 < 69_hide_stuff.patch || true\nelse\n  echo \"📦 应用 MANUAL_HOOK 补丁...\"\n  patch -p1 --fuzz=3 < scope_min_manual_hooks_v1.9.patch\nfi\n\necho \"✅ 所有补丁应用完成\"\ncd ../..\n\nif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  cd kernel_platform/common\n  echo \"⬇️ 正在拉取风驰补丁\"\n  if [ \"$FEIL\" = \"oneplus_ace5_ultra\" ] || [ \"$FEIL\" = \"oneplus_ace5_ultra_b\" ]; then\n      echo \"⚠️ Ace5 Ultra 需要使用 mt6991 分支的补丁\"\n      git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"mt6991\"\n  else\n      echo \"⚙️ 使用 sm8750 分支的补丁\"\n      git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"sm8750\"\n  fi\n\n  cp ./SCHED_PATCH/fengchi_$FEIL.patch ./\n\n  if [[ -f \"fengchi_$FEIL.patch\" ]]; then\n    echo \"⚙️ 开始应用风驰补丁\"\n    dos2unix \"fengchi_$FEIL.patch\"\n    patch -p1 -F 3 < \"fengchi_$FEIL.patch\"\n    echo \"✅ 完美风驰补丁应用完成\"\n  else\n    echo \"⚠️ 该6.6机型暂不支持风驰补丁, 正在应用OGKI转GKI补丁\"\n    sed -i '1iobj-y += hmbird_patch.o' drivers/Makefile\n    wget https://github.com/Numbersf/Action-Build/raw/SukiSU-Ultra/patches/hmbird_patch.patch\n    echo \"⚙️ 正在打OGKI转换GKI补丁\"\n    patch -p1 -F 3 < hmbird_patch.patch\n    echo \"✅ OGKI转换GKI_patch完成\"\n  fi\n  cd ../..\nfi\n\necho \"⚙️ 正在配置内核编译选项...\"\nDEFCONFIG_PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/common/arch/arm64/configs/gki_defconfig\"\n\necho \"CONFIG_KSU=y\" >> \"$DEFCONFIG_PATH\"\n\nif [ \"$SUSFS\" = \"On\" ]; then\n    echo \"📦 启用 SUSFS 功能...\"\n    cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_KSU_SUSFS=y\nCONFIG_KSU_SUSFS_SUS_PATH=y\nCONFIG_KSU_SUSFS_SUS_MOUNT=y\nCONFIG_KSU_SUSFS_SUS_KSTAT=y\nCONFIG_KSU_SUSFS_SPOOF_UNAME=y\nCONFIG_KSU_SUSFS_ENABLE_LOG=y\nCONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y\nCONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y\nCONFIG_KSU_SUSFS_OPEN_REDIRECT=y\nCONFIG_KSU_SUSFS_SUS_MAP=y\nEOT\nelse\n    echo \"📦 启用 MANUAL_HOOK...\"\n    cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_KSU_SUSFS=n\nCONFIG_KSU_MANUAL_HOOK=y\nEOT\nfi\n\n#添加对 Mountify (backslashxx/mountify) 模块的支持\necho \"CONFIG_TMPFS_XATTR=y\" >> \"$DEFCONFIG_PATH\"\necho \"CONFIG_TMPFS_POSIX_ACL=y\" >> \"$DEFCONFIG_PATH\"\n\nif [ \"$bbg\" = \"On\" ]; then\n  echo \"⚡ 配置 BBG 中...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_BBG=y\nCONFIG_LSM=\"landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf,baseband_guard\"\nEOT\nfi\n\nif [ \"$bbr\" = \"On\" ]; then\n  echo \"🌐 启用 BBR 网络算法...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_TCP_CONG_ADVANCED=y\nCONFIG_TCP_CONG_BBR=y\nCONFIG_NET_SCH_FQ=y\nCONFIG_TCP_CONG_BIC=n\nCONFIG_TCP_CONG_WESTWOOD=n\nCONFIG_TCP_CONG_HTCP=n\nEOT\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"📦 启用 lz4kd 与 写回支持...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_CRYPTO_LZ4KD=y\nCONFIG_CRYPTO_LZ4K_OPLUS=y\nCONFIG_ZRAM_WRITEBACK=y\nEOT\nfi\n\nif [ \"$KERNEL_VERSION\" = \"6.1\" ] || [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  echo \"CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y\" >> \"$DEFCONFIG_PATH\"\nfi\n\nif [ \"$proxy\" = \"On\" ]; then\n  echo \"📦 添加代理相关网络优化选项...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_BPF_STREAM_PARSER=y\nCONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y\nCONFIG_NETFILTER_XT_SET=y\nCONFIG_IP_SET=y\nCONFIG_IP_SET_MAX=65534\nCONFIG_IP_SET_BITMAP_IP=y\nCONFIG_IP_SET_BITMAP_IPMAC=y\nCONFIG_IP_SET_BITMAP_PORT=y\nCONFIG_IP_SET_HASH_IP=y\nCONFIG_IP_SET_HASH_IPMARK=y\nCONFIG_IP_SET_HASH_IPPORT=y\nCONFIG_IP_SET_HASH_IPPORTIP=y\nCONFIG_IP_SET_HASH_IPPORTNET=y\nCONFIG_IP_SET_HASH_IPMAC=y\nCONFIG_IP_SET_HASH_MAC=y\nCONFIG_IP_SET_HASH_NETPORTNET=y\nCONFIG_IP_SET_HASH_NET=y\nCONFIG_IP_SET_HASH_NETNET=y\nCONFIG_IP_SET_HASH_NETPORT=y\nCONFIG_IP_SET_HASH_NETIFACE=y\nCONFIG_IP_SET_LIST_SET=y\nCONFIG_IP6_NF_NAT=y\nCONFIG_IP6_NF_TARGET_MASQUERADE=y\nEOT\nfi\n\nif [ \"$KERNEL_VERSION\" = \"5.10\" ] || [ \"$KERNEL_VERSION\" = \"5.15\" ]; then\n  echo \"📦 正在为 5.10 / 5.15 系配置 LTO...\"\n  sed -i 's/^CONFIG_LTO=n/CONFIG_LTO=y/' \"$DEFCONFIG_PATH\"\n  sed -i 's/^CONFIG_LTO_CLANG_FULL=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG_PATH\"\n  sed -i 's/^CONFIG_LTO_CLANG_NONE=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG_PATH\"\n  grep -q '^CONFIG_LTO_CLANG_THIN=y' \"$DEFCONFIG_PATH\" || echo 'CONFIG_LTO_CLANG_THIN=y' >> \"$DEFCONFIG_PATH\"\nfi\n\necho \"CONFIG_HEADERS_INSTALL=n\" >> \"$DEFCONFIG_PATH\"\n\nsed -i 's/check_defconfig//' \"$WORKSPACE/kernel_workspace/kernel_platform/common/build.config.gki\"\n\necho \"✅ defconfig 配置更新完成\"\ncd ../..\n\necho \"🔨 开始内核编译...\"\ncd \"$WORKSPACE/kernel_workspace/kernel_platform/common\"\n\nMAKE_CMD_COMMON=\"make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\\\"ccache clang\\\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\"\n\nexport KBUILD_BUILD_USER=\"xiaoxiaow\"\nexport KBUILD_BUILD_HOST=\"xiaoxiaow_build\"\n\nif [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n    export KBUILD_BUILD_TIMESTAMP=\"Tue Mar 10 03:53:33 UTC 2026\"\n    export KBUILD_BUILD_VERSION=1\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON KCFLAGS+=-O2\"\nelif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n    export KBUILD_BUILD_VERSION=1\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r510928/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON KCFLAGS+=-O2\"\nelif [ \"$KERNEL_VERSION\" = \"5.15\" ]; then\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r450784e/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON\"\nelif [ \"$KERNEL_VERSION\" = \"5.10\" ]; then\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts-master/clang/host/linux-x86/clang-r416183b/bin:$PATH\"\n    eval \"make -j$(nproc --all) LLVM_IAS=1 LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\\\"ccache clang\\\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\"\nelse\n    echo \"❌ 不支持的内核版本: $KERNEL_VERSION\" && exit 1\nfi\n\necho \"📊 当前 ccache 统计信息如下:\"\nccache -s\necho \"✅ 内核编译完成\"\ncd \"$WORKSPACE\"\n\necho \"📦 正在获取 AnyKernel3 并准备打包...\"\ngit clone https://github.com/Xiaomichael/AnyKernel3 --depth=1\nrm -rf ./AnyKernel3/.git\n\nIMAGE_PATH=$(find \"$WORKSPACE/kernel_workspace/kernel_platform/common/out/\" -name \"Image\" | head -n 1)\nif [ -z \"$IMAGE_PATH\" ]; then echo \"❌ 严重错误：编译完成后未找到 Kernel Image！\" && exit 1; fi\n\necho \"✅ 已找到 Kernel Image: $IMAGE_PATH\"\ncp \"$IMAGE_PATH\" ./AnyKernel3/Image\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  ARTIFACT_NAME=\"${FEIL}_KernelSU_Next_lz4kd_${KSUVER}\"\nelif [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n  ARTIFACT_NAME=\"${FEIL}_KernelSU_Next_lz4_zstd_${KSUVER}\"\nelif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  ARTIFACT_NAME=\"${FEIL}_KernelSU_Next_lz4_${KSUVER}\"\nelse\n  ARTIFACT_NAME=\"${FEIL}_KernelSU_Next_${KSUVER}\"\nfi\nif [ \"$SUSFS\" = \"On\" ]; then\n  ARTIFACT_NAME=\"${ARTIFACT_NAME}_SUSFS\"\nfi\n\nFINAL_ZIP_NAME=\"${ARTIFACT_NAME}.zip\"\n\necho \"📦 正在创建最终可刷入压缩包: ${FINAL_ZIP_NAME}...\"\ncd AnyKernel3 && zip -q -r9 \"../${FINAL_ZIP_NAME}\" ./* && cd ..\n\necho \"\"\necho \"=================================================\"\necho \"                  构建完成！\"\necho \"=================================================\"\necho \"-> 可刷入内核压缩包路径: $WORKSPACE/${FINAL_ZIP_NAME}\"\n\nZRAM_KO_PATH=$(find \"$WORKSPACE/kernel_workspace/kernel_platform/common/out/\" -name \"zram.ko\" | head -n 1)\nif [ -n \"$ZRAM_KO_PATH\" ]; then\n    cp \"$ZRAM_KO_PATH\" \"$WORKSPACE/\"\n    echo \"-> zram.ko 模块路径: $WORKSPACE/zram.ko\"\nfi\n\necho \"=================================================\"\necho \"\"\n"
  },
  {
    "path": "local/Build_Only.sh",
    "content": "#!/bin/bash\n#export all_proxy=socks5://192.168.x.x:x/\nset -e\n\nclear\necho \"=============================================\"\necho \"     OnePlus Kernel Build Configuration      \"\necho \"=============================================\"\necho \"  按回车键可直接使用 [方括号] 中的默认值\"\necho \"\"\n\nask() {\n    local prompt default reply\n    prompt=\"$1\"\n    default=\"$2\"\n    \n    read -p \"$prompt [$default]: \" reply\n    echo \"${reply:-$default}\"\n}\n\nCPU=$(ask \"请输入 CPU 分支 (例如: sm8750, sm8650, sm8550, sm8475)\" \"sm8650\")\nFEIL=$(ask \"请输入手机型号 (例如: oneplus_13_b, oneplus_12_b, oneplus_11_b)\" \"oneplus_12_b\")\nANDROID_VERSION=$(ask \"请输入内核安卓 KMI 版本 (android15, android14, android13, android12)\" \"android14\")\nKERNEL_VERSION=$(ask \"请输入内核版本 (6.6, 6.1, 5.15, 5.10)\" \"6.1\")\nlz4kd=$(ask \"是否启用 lz4kd? (6.1 关闭时使用 lz4 + zstd; 6.6 关闭时使用 lz4) (On/Off)\" \"Off\")\nbbr=$(ask \"是否启用 BBR 拥塞控制算法? (On/Off)\" \"Off\")\nbbg=$(ask \"是否启用 Baseband-Guard 基带防护? (On/Off)\" \"On\")\nproxy=$(ask \"是否添加代理性能优化? (如为联发科 CPU 必须选择 Off) (On/Off)\" \"On\")\nUNICODE_BYPASS=$(ask \"是否添加Unicode零宽绕过修复补丁(高内核版本不推荐开启, 建议使用 https://t.me/real5ec1cff/271 无痛修复) (On/Off)\" \"Off\")\n\nclear\necho \"\"\necho \"=================================================\"\necho \"                   配置摘要\"\necho \"=================================================\"\necho \"手机型号                 : $FEIL\"\necho \"CPU 分支                 : $CPU\"\necho \"安卓 KMI 版本            : $ANDROID_VERSION\"\necho \"内核版本                 : $KERNEL_VERSION\"\necho \"是否启用 lz4kd           : $lz4kd\"\necho \"是否启用 BBR             : $bbr\"\necho \"是否启用 Baseband-Guard  : $bbg\"\necho \"是否启用代理优化          : $proxy\"\necho \"是否启用 Unicode 绕过修复 : $UNICODE_BYPASS\"\necho \"=================================================\"\nread -p \"按回车键开始构建流程...\"\nclear\n\necho \"📦 正在准备构建工作空间...\"\nWORKSPACE=$PWD/build_workspace\nsudo rm -rf \"$WORKSPACE\"\nmkdir -p \"$WORKSPACE\"\ncd \"$WORKSPACE\"\n\necho \"📦 正在安装构建依赖...\"\nsudo apt-get update\nsudo DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \\\n  python3 git curl ccache libelf-dev \\\n  build-essential flex bison libssl-dev \\\n  libncurses-dev liblz4-tool zlib1g-dev \\\n  libxml2-utils rsync unzip python3-pip gawk dos2unix\nclear\necho \"✅ 必要构建依赖安装完成\"\n\necho \"⚙️ 正在配置 ccache 缓存...\"\nexport CCACHE_DIR=\"$HOME/.ccache_${FEIL}_Kernel\"\nexport CCACHE_COMPILERCHECK=\"%compiler% -dumpmachine; %compiler% -dumpversion\"\nexport CCACHE_NOHASHDIR=\"true\"\nexport CCACHE_HARDLINK=\"true\"\nexport CCACHE_MAXSIZE=\"20G\"\nexport PATH=\"/usr/lib/ccache:$PATH\"\nmkdir -p \"$CCACHE_DIR\"\necho \"✅ ccache 缓存目录: $CCACHE_DIR\"\nccache -M \"$CCACHE_MAXSIZE\"\nccache -z\n\necho \"🔐 正在配置 Git 用户信息...\"\ngit config --global user.name \"Local Builder\"\ngit config --global user.email \"builder@localhost\"\necho \"✅ Git 用户信息配置完成\"\n\nif ! command -v repo &> /dev/null; then\n    echo \"📥 未检测到 repo 工具，正在安装...\"\n    curl -fsSL https://storage.googleapis.com/git-repo-downloads/repo > ~/repo\n    chmod a+x ~/repo\n    sudo mv ~/repo /usr/local/bin/repo\n    echo \"✅ repo 工具安装完成\"\nelse\n    echo \"ℹ️ 已检测到 repo 工具，跳过安装\"\nfi\n\necho \"⬇️ 正在准备内核源码目录...\"\nsudo rm -rf kernel_workspace\nmkdir -p kernel_workspace && cd kernel_workspace\n\necho \"🌐 正在初始化 oneplus/${CPU} 分支、机型 ${FEIL} 的 manifest...\"\nrepo init -u https://github.com/Xiaomichael/kernel_manifest.git -b refs/heads/oneplus/${CPU} -m ${FEIL}.xml --depth=1\n\necho \"🔄 正在同步内核源码仓库 (使用 $(nproc --all) 线程)...\"\nrepo sync -c -j$(nproc --all) --no-tags --no-clone-bundle --force-sync\necho \"✅ 内核源码同步完成\"\n\nexport adv=$ANDROID_VERSION\necho \"🔧 正在清理并修改版本字符串...\"\nrm -f kernel_platform/common/android/abi_gki_protected_exports_* || echo \"common 目录下无受保护导出表，无需删除\"\nrm -f kernel_platform/msm-kernel/android/abi_gki_protected_exports_* || echo \"msm-kernel 目录下无受保护导出表，无需删除\"\n\nsed -i 's/ -dirty//g' kernel_platform/common/scripts/setlocalversion\nsed -i 's/ -dirty//g' kernel_platform/msm-kernel/scripts/setlocalversion\nsed -i 's/ -dirty//g' kernel_platform/external/dtc/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/common/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/msm-kernel/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/external/dtc/scripts/setlocalversion\n\nif [ \"$KERNEL_VERSION\" != \"6.6\" ]; then\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/common/scripts/setlocalversion\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/msm-kernel/scripts/setlocalversion\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/external/dtc/scripts/setlocalversion\nelse\n  ESCAPED_SUFFIX=$(printf '%s\\n' \"-${ANDROID_VERSION}-oki-xiaoxiaow\" | sed 's:[\\/&]:\\\\&:g')\n  sed -i \"s/-4k/${ESCAPED_SUFFIX}/g\" kernel_platform/common/arch/arm64/configs/gki_defconfig\n  sed -i 's/\\${scm_version}//' kernel_platform/common/scripts/setlocalversion\n  sed -i 's/\\${scm_version}//' kernel_platform/msm-kernel/scripts/setlocalversion\nfi\n\necho \"✅ 内核仓库准备完毕并完成版本号清理\"\n\nif [ \"$bbg\" = \"On\" ]; then\n    set -e\n    cd kernel_platform/common\n    echo \"🛡️ 正在配置 Baseband-Guard 基带防护...\"\n    curl -sSL https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh -o setup.sh\n    bash setup.sh\n    cd ../..\n    echo \"✅ Baseband-Guard 配置完成\"\nfi\n\necho \"📝 正在复制补丁文件...\"\ngit clone https://github.com/Xiaomichael/kernel_patches.git\ngit clone https://github.com/ShirkNeko/SukiSU_patch.git\n\ncd kernel_platform\ncp ../kernel_patches/zram_patches/001-lz4.patch ./common/\ncp ../kernel_patches/zram_patches/lz4armv8.S ./common/lib\ncp ../kernel_patches/zram_patches/002-zstd.patch ./common/\n\nif [ \"$UNICODE_BYPASS\" = \"On\" ]; then\n  if [ \"$KERNEL_VERSION\" = \"6.1\" ] || [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n    cp ../kernel_patches/common/unicode_bypass_fix_6.1+.patch ./common/unicode_bypass_fix.patch\n  elif [ \"$KERNEL_VERSION\" = \"5.15\" ] || [ \"$KERNEL_VERSION\" = \"5.10\" ]; then\n    cp ../kernel_patches/common/unicode_bypass_fix_6.1-.patch ./common/unicode_bypass_fix.patch\n  fi\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"🚀 正在复制 lz4kd 相关补丁...\"\n  cp -r ../SukiSU_patch/other/zram/lz4k/include/linux/* ./common/include/linux\n  cp -r ../SukiSU_patch/other/zram/lz4k/lib/* ./common/lib\n  cp -r ../SukiSU_patch/other/zram/lz4k/crypto/* ./common/crypto\n  cp -r ../SukiSU_patch/other/zram/lz4k_oplus ./common/lib/\nfi\n\necho \"🔧 正在应用补丁...\"\ncd ./common\n\nif [ \"$UNICODE_BYPASS\" = \"On\" ]; then\n  echo \"📦 正在应用Unicode零宽绕过修复补丁...\"\n  patch -p1 < unicode_bypass_fix.patch\nfi\n\nif [ \"$lz4kd\" = \"Off\" ] && [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n  echo \"📦 正在为 6.1 应用 lz4 + zstd 补丁...\"\n  git apply -p1 < 001-lz4.patch || true\n  patch -p1 < 002-zstd.patch || true\nfi\n\nif [ \"$lz4kd\" = \"Off\" ] && [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  echo \"📦 正在为 6.6 应用 lz4 补丁...\"\n  git apply -p1 < 001-lz4.patch || true\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"📦 正在应用 lz4kd / lz4k_oplus 补丁...\"\n  cp ../../SukiSU_patch/other/zram/zram_patch/${KERNEL_VERSION}/lz4kd.patch ./\n  patch -p1 -F 3 < lz4kd.patch || true\n  cp ../../SukiSU_patch/other/zram/zram_patch/${KERNEL_VERSION}/lz4k_oplus.patch ./\n  patch -p1 -F 3 < lz4k_oplus.patch || true\nfi\necho \"✅ 所有补丁应用完成\"\ncd ../..\n\nif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  cd kernel_platform/common\n  echo \"⬇️ 正在拉取风驰补丁\"\n  if [ \"$FEIL\" = \"oneplus_ace5_ultra\" ] || [ \"$FEIL\" = \"oneplus_ace5_ultra_b\" ]; then\n      echo \"⚠️ Ace5 Ultra 需要使用 mt6991 分支的补丁\"\n      git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"mt6991\"\n  else\n      echo \"⚙️ 使用 sm8750 分支的补丁\"\n      git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"sm8750\"\n  fi\n\n  cp ./SCHED_PATCH/fengchi_$FEIL.patch ./\n\n  if [[ -f \"fengchi_$FEIL.patch\" ]]; then\n    echo \"⚙️ 开始应用风驰补丁\"\n    dos2unix \"fengchi_$FEIL.patch\"\n    patch -p1 -F 3 < \"fengchi_$FEIL.patch\"\n    echo \"✅ 完美风驰补丁应用完成\"\n  else\n    echo \"⚠️ 该6.6机型暂不支持风驰补丁, 正在应用OGKI转GKI补丁\"\n    sed -i '1iobj-y += hmbird_patch.o' drivers/Makefile\n    wget https://github.com/Numbersf/Action-Build/raw/SukiSU-Ultra/patches/hmbird_patch.patch\n    echo \"⚙️ 正在打OGKI转换GKI补丁\"\n    patch -p1 -F 3 < hmbird_patch.patch\n    echo \"✅ OGKI转换GKI_patch完成\"\n  fi\n  cd ../..\nfi\n\necho \"⚙️ 正在配置内核编译选项...\"\nDEFCONFIG_PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/common/arch/arm64/configs/gki_defconfig\"\n\nif [ \"$bbg\" = \"On\" ]; then\n  echo \"⚡ 配置 BBG 中...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_BBG=y\nCONFIG_LSM=\"landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf,baseband_guard\"\nEOT\nfi\n\n# 为 Mountify (backslashxx/mountify) 模块开启必要选项\necho \"CONFIG_TMPFS_XATTR=y\" >> \"$DEFCONFIG_PATH\"\necho \"CONFIG_TMPFS_POSIX_ACL=y\" >> \"$DEFCONFIG_PATH\"\n\nif [ \"$bbr\" = \"On\" ]; then\n  echo \"🌐 启用 BBR 网络算法...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_TCP_CONG_ADVANCED=y\nCONFIG_TCP_CONG_BBR=y\nCONFIG_NET_SCH_FQ=y\nCONFIG_TCP_CONG_BIC=n\nCONFIG_TCP_CONG_WESTWOOD=n\nCONFIG_TCP_CONG_HTCP=n\nEOT\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"📦 启用 lz4kd 与 写回支持...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_CRYPTO_LZ4KD=y\nCONFIG_CRYPTO_LZ4K_OPLUS=y\nCONFIG_ZRAM_WRITEBACK=y\nEOT\nfi\n\nif [ \"$KERNEL_VERSION\" = \"6.1\" ] || [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  echo \"CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y\" >> \"$DEFCONFIG_PATH\"\nfi\n\nif [ \"$proxy\" = \"On\" ]; then\n  echo \"📦 添加代理相关网络优化选项...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_BPF_STREAM_PARSER=y\nCONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y\nCONFIG_NETFILTER_XT_SET=y\nCONFIG_IP_SET=y\nCONFIG_IP_SET_MAX=65534\nCONFIG_IP_SET_BITMAP_IP=y\nCONFIG_IP_SET_BITMAP_IPMAC=y\nCONFIG_IP_SET_BITMAP_PORT=y\nCONFIG_IP_SET_HASH_IP=y\nCONFIG_IP_SET_HASH_IPMARK=y\nCONFIG_IP_SET_HASH_IPPORT=y\nCONFIG_IP_SET_HASH_IPPORTIP=y\nCONFIG_IP_SET_HASH_IPPORTNET=y\nCONFIG_IP_SET_HASH_IPMAC=y\nCONFIG_IP_SET_HASH_MAC=y\nCONFIG_IP_SET_HASH_NETPORTNET=y\nCONFIG_IP_SET_HASH_NET=y\nCONFIG_IP_SET_HASH_NETNET=y\nCONFIG_IP_SET_HASH_NETPORT=y\nCONFIG_IP_SET_HASH_NETIFACE=y\nCONFIG_IP_SET_LIST_SET=y\nCONFIG_IP6_NF_NAT=y\nCONFIG_IP6_NF_TARGET_MASQUERADE=y\nEOT\nfi\n\nif [ \"$KERNEL_VERSION\" = \"5.10\" ] || [ \"$KERNEL_VERSION\" = \"5.15\" ]; then\n  echo \"📦 正在为 5.10 / 5.15 系配置 LTO...\"\n  sed -i 's/^CONFIG_LTO=n/CONFIG_LTO=y/' \"$DEFCONFIG_PATH\"\n  sed -i 's/^CONFIG_LTO_CLANG_FULL=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG_PATH\"\n  sed -i 's/^CONFIG_LTO_CLANG_NONE=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG_PATH\"\n  grep -q '^CONFIG_LTO_CLANG_THIN=y' \"$DEFCONFIG_PATH\" || echo 'CONFIG_LTO_CLANG_THIN=y' >> \"$DEFCONFIG_PATH\"\nfi\n\necho \"CONFIG_HEADERS_INSTALL=n\" >> \"$DEFCONFIG_PATH\"\n\nsed -i 's/check_defconfig//' \"$WORKSPACE/kernel_workspace/kernel_platform/common/build.config.gki\"\n\necho \"✅ defconfig 配置更新完成\"\ncd ../..\n\necho \"🔨 开始内核编译...\"\ncd \"$WORKSPACE/kernel_workspace/kernel_platform/common\"\n\nMAKE_CMD_COMMON=\"make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\\\"ccache clang\\\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\"\n\nexport KBUILD_BUILD_USER=\"xiaoxiaow\"\nexport KBUILD_BUILD_HOST=\"xiaoxiaow_build\"\n\nif [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n    export KBUILD_BUILD_TIMESTAMP=\"Tue Mar 10 03:53:33 UTC 2026\"\n    export KBUILD_BUILD_VERSION=1\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON KCFLAGS+=-O2\"\nelif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n    export KBUILD_BUILD_VERSION=1\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r510928/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON KCFLAGS+=-O2\"\nelif [ \"$KERNEL_VERSION\" = \"5.15\" ]; then\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r450784e/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON\"\nelif [ \"$KERNEL_VERSION\" = \"5.10\" ]; then\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts-master/clang/host/linux-x86/clang-r416183b/bin:$PATH\"\n    eval \"make -j$(nproc --all) LLVM_IAS=1 LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\\\"ccache clang\\\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\"\nelse\n    echo \"❌ 不支持的内核版本: $KERNEL_VERSION\" && exit 1\nfi\n\necho \"📊 当前 ccache 统计信息如下:\"\nccache -s\necho \"✅ 内核编译完成\"\ncd \"$WORKSPACE\"\n\necho \"📦 正在获取 AnyKernel3 并准备打包...\"\ngit clone https://github.com/Xiaomichael/AnyKernel3 --depth=1\nrm -rf ./AnyKernel3/.git\n\nIMAGE_PATH=$(find \"$WORKSPACE/kernel_workspace/kernel_platform/common/out/\" -name \"Image\" | head -n 1)\nif [ -z \"$IMAGE_PATH\" ]; then echo \"❌ 严重错误：编译完成后未找到 Kernel Image！\" && exit 1; fi\n\necho \"✅ 已找到 Kernel Image: $IMAGE_PATH\"\ncp \"$IMAGE_PATH\" ./AnyKernel3/Image\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  ARTIFACT_NAME=\"Anykernel3_${FEIL}_lz4kd_Kernel_Only\"\nelif [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n  ARTIFACT_NAME=\"Anykernel3_${FEIL}_lz4_zstd_Kernel_Only\"\nelif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  ARTIFACT_NAME=\"Anykernel3_${FEIL}_lz4_Kernel_Only\"\nelse\n  ARTIFACT_NAME=\"Anykernel3_${FEIL}_Kernel_Only\"\nfi\nFINAL_ZIP_NAME=\"${ARTIFACT_NAME}.zip\"\n\necho \"📦 正在创建最终可刷入压缩包: ${FINAL_ZIP_NAME}...\"\ncd AnyKernel3 && zip -q -r9 \"../${FINAL_ZIP_NAME}\" ./* && cd ..\n\necho \"\"\necho \"=================================================\"\necho \"                  构建完成！\"\necho \"=================================================\"\necho \"-> 可刷入内核压缩包路径: $WORKSPACE/${FINAL_ZIP_NAME}\"\n\nZRAM_KO_PATH=$(find \"$WORKSPACE/kernel_workspace/kernel_platform/common/out/\" -name \"zram.ko\" | head -n 1)\nif [ -n \"$ZRAM_KO_PATH\" ]; then\n    cp \"$ZRAM_KO_PATH\" \"$WORKSPACE/\"\n    echo \"-> zram.ko 模块路径: $WORKSPACE/zram.ko\"\nfi\n\necho \"=================================================\"\necho \"\"\n"
  },
  {
    "path": "local/Build_ReSukiSU.sh",
    "content": "#!/bin/bash\n#export all_proxy=socks5://192.168.x.x:x/\nset -e\n\nclear\necho \"===============================================\"\necho \"  ReSukiSU OnePlus Kernel Build Configuration  \"\necho \"===============================================\"\necho \"  按回车键可直接使用 [方括号] 中的默认值\"\necho \"\"\n\nask() {\n    local prompt default reply\n    prompt=\"$1\"\n    default=\"$2\"\n    \n    read -p \"$prompt [$default]: \" reply\n    echo \"${reply:-$default}\"\n}\n\nCPU=$(ask \"请输入 CPU 分支 (例如: sm8750, sm8650, sm8550, sm8475)\" \"sm8650\")\nFEIL=$(ask \"请输入手机型号 (例如: oneplus_13_b, oneplus_12_b, oneplus_11_b)\" \"oneplus_12_b\")\nANDROID_VERSION=$(ask \"请输入内核安卓 KMI 版本 (android15, android14, android13, android12)\" \"android14\")\nKERNEL_VERSION=$(ask \"请输入内核版本 (6.6, 6.1, 5.15, 5.10)\" \"6.1\")\nSUSFS=$(ask \"是否启用 SUSFS? (On/Off)\" \"Off\")\nKPM=$(ask \"是否启用 KPM (Kernel Patch Manager)? (On/Off)\" \"Off\")\nlz4kd=$(ask \"是否启用 lz4kd? (6.1 关闭时使用 lz4 + zstd; 6.6 关闭时使用 lz4) (On/Off)\" \"Off\")\nbbr=$(ask \"是否启用 BBR 拥塞控制算法? (On/Off)\" \"Off\")\nbbg=$(ask \"是否启用 Baseband-Guard 基带防护? (On/Off)\" \"On\")\nproxy=$(ask \"是否添加代理性能优化? (如为联发科 CPU 必须选择 Off) (On/Off)\" \"On\")\nUNICODE_BYPASS=$(ask \"是否添加Unicode零宽绕过修复补丁(高内核版本不推荐开启, 建议使用 https://t.me/real5ec1cff/271 无痛修复) (On/Off)\" \"Off\")\n\nclear\necho \"\"\necho \"=================================================\"\necho \"                   配置摘要\"\necho \"=================================================\"\necho \"手机型号                 : $FEIL\"\necho \"CPU 分支                 : $CPU\"\necho \"安卓 KMI 版本            : $ANDROID_VERSION\"\necho \"内核版本                 : $KERNEL_VERSION\"\necho \"是否启用 SUSFS           : $SUSFS\"\necho \"是否启用 KPM             : $KPM\"\necho \"是否启用 lz4kd           : $lz4kd\"\necho \"是否启用 BBR             : $bbr\"\necho \"是否启用 Baseband-Guard  : $bbg\"\necho \"是否启用代理优化          : $proxy\"\necho \"是否启用 Unicode 绕过修复 : $UNICODE_BYPASS\"\necho \"=================================================\"\nread -p \"按回车键开始构建流程...\"\nclear\n\necho \"📦 正在准备构建工作空间...\"\nWORKSPACE=$PWD/build_workspace\nsudo rm -rf \"$WORKSPACE\"\nmkdir -p \"$WORKSPACE\"\ncd \"$WORKSPACE\"\n\necho \"📦 正在安装构建依赖...\"\nsudo apt-get update\nsudo DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \\\n  python3 git curl ccache libelf-dev \\\n  build-essential flex bison libssl-dev \\\n  libncurses-dev liblz4-tool zlib1g-dev \\\n  libxml2-utils rsync unzip python3-pip gawk dos2unix\nclear\necho \"✅ 必要构建依赖安装完成\"\n\necho \"⚙️ 正在配置 ccache 缓存...\"\nif [ \"$SUSFS\" == \"On\" ]; then\n  export CCACHE_DIR=\"$HOME/.ccache_${FEIL}_ReSukiSU_SUSFS\"\nelse\n  export CCACHE_DIR=\"$HOME/.ccache_${FEIL}_ReSukiSU_NoSUSFS\"\nfi\nexport CCACHE_COMPILERCHECK=\"%compiler% -dumpmachine; %compiler% -dumpversion\"\nexport CCACHE_NOHASHDIR=\"true\"\nexport CCACHE_HARDLINK=\"true\"\nexport CCACHE_MAXSIZE=\"20G\"\nexport PATH=\"/usr/lib/ccache:$PATH\"\nmkdir -p \"$CCACHE_DIR\"\necho \"✅ ccache 缓存目录: $CCACHE_DIR\"\nccache -M \"$CCACHE_MAXSIZE\"\nccache -z\n\necho \"🔐 正在配置 Git 用户信息...\"\ngit config --global user.name \"Local Builder\"\ngit config --global user.email \"builder@localhost\"\necho \"✅ Git 用户信息配置完成\"\n\nif ! command -v repo &> /dev/null; then\n    echo \"📥 未检测到 repo 工具，正在安装...\"\n    curl -fsSL https://storage.googleapis.com/git-repo-downloads/repo > ~/repo\n    chmod a+x ~/repo\n    sudo mv ~/repo /usr/local/bin/repo\n    echo \"✅ repo 工具安装完成\"\nelse\n    echo \"ℹ️ 已检测到 repo 工具，跳过安装\"\nfi\n\necho \"⬇️ 正在准备内核源码目录...\"\nsudo rm -rf kernel_workspace\nmkdir -p kernel_workspace && cd kernel_workspace\n\necho \"🌐 正在初始化 oneplus/${CPU} 分支、机型 ${FEIL} 的 manifest...\"\nrepo init -u https://github.com/Xiaomichael/kernel_manifest.git -b refs/heads/oneplus/${CPU} -m ${FEIL}.xml --depth=1\n\necho \"🔄 正在同步内核源码仓库 (使用 $(nproc --all) 线程)...\"\nrepo sync -c -j$(nproc --all) --no-tags --no-clone-bundle --force-sync\necho \"✅ 内核源码同步完成\"\n\nexport adv=$ANDROID_VERSION\necho \"🔧 正在清理并修改版本字符串...\"\nrm -f kernel_platform/common/android/abi_gki_protected_exports_* || echo \"common 目录下无受保护导出表，无需删除\"\nrm -f kernel_platform/msm-kernel/android/abi_gki_protected_exports_* || echo \"msm-kernel 目录下无受保护导出表，无需删除\"\n\nsed -i 's/ -dirty//g' kernel_platform/common/scripts/setlocalversion\nsed -i 's/ -dirty//g' kernel_platform/msm-kernel/scripts/setlocalversion\nsed -i 's/ -dirty//g' kernel_platform/external/dtc/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/common/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/msm-kernel/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/external/dtc/scripts/setlocalversion\n\nif [ \"$KERNEL_VERSION\" != \"6.6\" ]; then\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/common/scripts/setlocalversion\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/msm-kernel/scripts/setlocalversion\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/external/dtc/scripts/setlocalversion\nelse\n  ESCAPED_SUFFIX=$(printf '%s\\n' \"-${ANDROID_VERSION}-oki-xiaoxiaow\" | sed 's:[\\/&]:\\\\&:g')\n  sed -i \"s/-4k/${ESCAPED_SUFFIX}/g\" kernel_platform/common/arch/arm64/configs/gki_defconfig\n  sed -i 's/\\${scm_version}//' kernel_platform/common/scripts/setlocalversion\n  sed -i 's/\\${scm_version}//' kernel_platform/msm-kernel/scripts/setlocalversion\nfi\n\necho \"✅ 内核仓库准备完毕并完成版本号清理\"\n\nif [ \"$bbg\" = \"On\" ] && [ \"$KPM\" = \"Off\" ]; then\n    set -e\n    cd kernel_platform/common\n    echo \"🛡️ 正在配置 Baseband-Guard 基带防护...\"\n    curl -sSL https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh -o setup.sh\n    bash setup.sh\n    cd ../..\n    echo \"✅ Baseband-Guard 配置完成\"\nfi\n\necho \"⚡ 正在配置 ReSukiSU...\"\ncd kernel_platform\ncurl -LSs \"https://raw.githubusercontent.com/ReSukiSU/ReSukiSU/main/kernel/setup.sh\" | bash -s main\n\ncd KernelSU\nKSU_VERSION_COUNT=$(git rev-list --count main)\nexport KSUVER=$(expr $KSU_VERSION_COUNT + 30700)\n\necho \"✅ ReSukiSU 配置完成\"\ncd ../..\n\necho \"🔧 正在克隆所需补丁...\"\nif [ \"$SUSFS\" = \"On\" ]; then\n    git clone https://github.com/cctv18/susfs4oki.git -b oki-${ANDROID_VERSION}-${KERNEL_VERSION}\nfi\ngit clone https://github.com/Xiaomichael/kernel_patches.git\ngit clone https://github.com/ShirkNeko/SukiSU_patch.git\n\ncd kernel_platform\necho \"📝 正在复制补丁文件...\"\n\nif [ \"$SUSFS\" = \"On\" ]; then\n    cp ../susfs4oki/kernel_patches/50_add_susfs_in_gki-${ANDROID_VERSION}-${KERNEL_VERSION}.patch ./common/\n    cp ../susfs4oki/kernel_patches/fs/* ./common/fs/\n    cp ../susfs4oki/kernel_patches/include/linux/* ./common/include/linux/\nelse\n    cp ../kernel_patches/sukisu/scope_min_manual_hooks_v1.9.patch ./common/\nfi\n\ncp ../kernel_patches/zram_patches/001-lz4.patch ./common/\ncp ../kernel_patches/zram_patches/lz4armv8.S ./common/lib\ncp ../kernel_patches/zram_patches/002-zstd.patch ./common/\n\nif [ \"$UNICODE_BYPASS\" = \"On\" ]; then\n  if [ \"$KERNEL_VERSION\" = \"6.1\" ] || [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n    cp ../kernel_patches/common/unicode_bypass_fix_6.1+.patch ./common/unicode_bypass_fix.patch\n  elif [ \"$KERNEL_VERSION\" = \"5.15\" ] || [ \"$KERNEL_VERSION\" = \"5.10\" ]; then\n    cp ../kernel_patches/common/unicode_bypass_fix_6.1-.patch ./common/unicode_bypass_fix.patch\n  fi\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"🚀 正在复制 lz4kd 相关补丁...\"\n  cp -r ../SukiSU_patch/other/zram/lz4k/include/linux/* ./common/include/linux\n  cp -r ../SukiSU_patch/other/zram/lz4k/lib/* ./common/lib\n  cp -r ../SukiSU_patch/other/zram/lz4k/crypto/* ./common/crypto\n  cp -r ../SukiSU_patch/other/zram/lz4k_oplus ./common/lib/\nfi\n\necho \"🔧 正在应用补丁...\"\ncd ./common\n\nif [ \"$UNICODE_BYPASS\" = \"On\" ]; then\n  echo \"📦 正在应用Unicode零宽绕过修复补丁...\"\n  patch -p1 < unicode_bypass_fix.patch\nfi\n\nif [ \"$SUSFS\" = \"On\" ]; then\n    patch -p1 < 50_add_susfs_in_gki-${ANDROID_VERSION}-${KERNEL_VERSION}.patch || true\nelse\n    echo \"📦 应用 MANUAL_HOOK 补丁...\"\n    patch -p1 -F 3 < scope_min_manual_hooks_v1.9.patch\nfi\n\nif [ \"$lz4kd\" = \"Off\" ] && [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n  echo \"📦 正在为 6.1 应用 lz4 + zstd 补丁...\"\n  git apply -p1 < 001-lz4.patch || true\n  patch -p1 < 002-zstd.patch || true\nfi\n\nif [ \"$lz4kd\" = \"Off\" ] && [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  echo \"📦 正在为 6.6 应用 lz4 补丁...\"\n  git apply -p1 < 001-lz4.patch || true\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"📦 正在应用 lz4kd / lz4k_oplus 补丁...\"\n  cp ../../SukiSU_patch/other/zram/zram_patch/${KERNEL_VERSION}/lz4kd.patch ./\n  patch -p1 -F 3 < lz4kd.patch || true\n  cp ../../SukiSU_patch/other/zram/zram_patch/${KERNEL_VERSION}/lz4k_oplus.patch ./\n  patch -p1 -F 3 < lz4k_oplus.patch || true\nfi\necho \"✅ 所有补丁应用完成\"\ncd ../..\n\nif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  cd kernel_platform/common\n  echo \"⬇️ 正在拉取风驰补丁\"\n  if [ \"$FEIL\" = \"oneplus_ace5_ultra\" ] || [ \"$FEIL\" = \"oneplus_ace5_ultra_b\" ]; then\n      echo \"⚠️ Ace5 Ultra 需要使用 mt6991 分支的补丁\"\n      git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"mt6991\"\n  else\n      echo \"⚙️ 使用 sm8750 分支的补丁\"\n      git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"sm8750\"\n  fi\n\n  cp ./SCHED_PATCH/fengchi_$FEIL.patch ./\n\n  if [[ -f \"fengchi_$FEIL.patch\" ]]; then\n    echo \"⚙️ 开始应用风驰补丁\"\n    dos2unix \"fengchi_$FEIL.patch\"\n    patch -p1 -F 3 < \"fengchi_$FEIL.patch\"\n    echo \"✅ 完美风驰补丁应用完成\"\n  else\n    echo \"⚠️ 该6.6机型暂不支持风驰补丁, 正在应用OGKI转GKI补丁\"\n    sed -i '1iobj-y += hmbird_patch.o' drivers/Makefile\n    wget https://github.com/Numbersf/Action-Build/raw/SukiSU-Ultra/patches/hmbird_patch.patch\n    echo \"⚙️ 正在打OGKI转换GKI补丁\"\n    patch -p1 -F 3 < hmbird_patch.patch\n    echo \"✅ OGKI转换GKI_patch完成\"\n  fi\n  cd ../..\nfi\n\necho \"⚙️ 正在配置内核编译选项...\"\nDEFCONFIG_PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/common/arch/arm64/configs/gki_defconfig\"\n\necho \"CONFIG_KSU=y\" >> \"$DEFCONFIG_PATH\"\necho \"CONFIG_KSU_FULL_NAME_FORMAT=\\\"%TAG_NAME%-%COMMIT_SHA%-xiaoxiaow@ReSukiSU\\\"\" >> \"$DEFCONFIG_PATH\"\necho \"CONFIG_KSU_MULTI_MANAGER_SUPPORT=y\" >> \"$DEFCONFIG_PATH\"\n\nif [ \"$SUSFS\" = \"On\" ]; then\n    echo \"📦 启用 SUSFS 功能...\"\n    cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_KSU_SUSFS=y\nCONFIG_KSU_SUSFS_SUS_PATH=y\nCONFIG_KSU_SUSFS_SUS_MOUNT=y\nCONFIG_KSU_SUSFS_SUS_KSTAT=y\nCONFIG_KSU_SUSFS_SPOOF_UNAME=y\nCONFIG_KSU_SUSFS_ENABLE_LOG=y\nCONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y\nCONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y\nCONFIG_KSU_SUSFS_OPEN_REDIRECT=y\nCONFIG_KSU_SUSFS_SUS_MAP=y\nEOT\nelse\n    echo \"📦 启用 MANUAL_HOOK...\"\n    cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_KSU_SUSFS=n\nCONFIG_KSU_MANUAL_HOOK=y\nEOT\nfi\n\n#添加对 Mountify (backslashxx/mountify) 模块的支持\necho \"CONFIG_TMPFS_XATTR=y\" >> \"$DEFCONFIG_PATH\"\necho \"CONFIG_TMPFS_POSIX_ACL=y\" >> \"$DEFCONFIG_PATH\"\n\nif [ \"$KPM\" = \"On\" ]; then echo \"CONFIG_KPM=y\" >> \"$DEFCONFIG_PATH\"; fi\n\nif [ \"$bbg\" = \"On\" ] && [ \"$KPM\" = \"Off\" ]; then\n  echo \"⚡ 配置 BBG 中...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_BBG=y\nCONFIG_LSM=\"landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf,baseband_guard\"\nEOT\nfi\n\nif [ \"$bbr\" = \"On\" ]; then\n  echo \"🌐 启用 BBR 网络算法...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_TCP_CONG_ADVANCED=y\nCONFIG_TCP_CONG_BBR=y\nCONFIG_NET_SCH_FQ=y\nCONFIG_TCP_CONG_BIC=n\nCONFIG_TCP_CONG_WESTWOOD=n\nCONFIG_TCP_CONG_HTCP=n\nEOT\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"📦 启用 lz4kd 与 写回支持...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_CRYPTO_LZ4KD=y\nCONFIG_CRYPTO_LZ4K_OPLUS=y\nCONFIG_ZRAM_WRITEBACK=y\nEOT\nfi\n\nif [ \"$KERNEL_VERSION\" = \"6.1\" ] || [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  echo \"CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y\" >> \"$DEFCONFIG_PATH\"\nfi\n\nif [ \"$proxy\" = \"On\" ]; then\n  echo \"📦 添加代理相关网络优化选项...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_BPF_STREAM_PARSER=y\nCONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y\nCONFIG_NETFILTER_XT_SET=y\nCONFIG_IP_SET=y\nCONFIG_IP_SET_MAX=65534\nCONFIG_IP_SET_BITMAP_IP=y\nCONFIG_IP_SET_BITMAP_IPMAC=y\nCONFIG_IP_SET_BITMAP_PORT=y\nCONFIG_IP_SET_HASH_IP=y\nCONFIG_IP_SET_HASH_IPMARK=y\nCONFIG_IP_SET_HASH_IPPORT=y\nCONFIG_IP_SET_HASH_IPPORTIP=y\nCONFIG_IP_SET_HASH_IPPORTNET=y\nCONFIG_IP_SET_HASH_IPMAC=y\nCONFIG_IP_SET_HASH_MAC=y\nCONFIG_IP_SET_HASH_NETPORTNET=y\nCONFIG_IP_SET_HASH_NET=y\nCONFIG_IP_SET_HASH_NETNET=y\nCONFIG_IP_SET_HASH_NETPORT=y\nCONFIG_IP_SET_HASH_NETIFACE=y\nCONFIG_IP_SET_LIST_SET=y\nCONFIG_IP6_NF_NAT=y\nCONFIG_IP6_NF_TARGET_MASQUERADE=y\nEOT\nfi\n\nif [ \"$KERNEL_VERSION\" = \"5.10\" ] || [ \"$KERNEL_VERSION\" = \"5.15\" ]; then\n  echo \"📦 正在为 5.10 / 5.15 系配置 LTO...\"\n  sed -i 's/^CONFIG_LTO=n/CONFIG_LTO=y/' \"$DEFCONFIG_PATH\"\n  sed -i 's/^CONFIG_LTO_CLANG_FULL=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG_PATH\"\n  sed -i 's/^CONFIG_LTO_CLANG_NONE=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG_PATH\"\n  grep -q '^CONFIG_LTO_CLANG_THIN=y' \"$DEFCONFIG_PATH\" || echo 'CONFIG_LTO_CLANG_THIN=y' >> \"$DEFCONFIG_PATH\"\nfi\n\necho \"CONFIG_HEADERS_INSTALL=n\" >> \"$DEFCONFIG_PATH\"\n\nsed -i 's/check_defconfig//' \"$WORKSPACE/kernel_workspace/kernel_platform/common/build.config.gki\"\n\necho \"✅ defconfig 配置更新完成\"\ncd ../..\n\necho \"🔨 开始内核编译...\"\ncd \"$WORKSPACE/kernel_workspace/kernel_platform/common\"\n\nMAKE_CMD_COMMON=\"make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\\\"ccache clang\\\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\"\n\nexport KBUILD_BUILD_USER=\"xiaoxiaow\"\nexport KBUILD_BUILD_HOST=\"xiaoxiaow_build\"\n\nif [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n    export KBUILD_BUILD_TIMESTAMP=\"Tue Mar 10 03:53:33 UTC 2026\"\n    export KBUILD_BUILD_VERSION=1\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON KCFLAGS+=-O2\"\nelif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n    export KBUILD_BUILD_VERSION=1\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r510928/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON KCFLAGS+=-O2\"\nelif [ \"$KERNEL_VERSION\" = \"5.15\" ]; then\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r450784e/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON\"\nelif [ \"$KERNEL_VERSION\" = \"5.10\" ]; then\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts-master/clang/host/linux-x86/clang-r416183b/bin:$PATH\"\n    eval \"make -j$(nproc --all) LLVM_IAS=1 LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\\\"ccache clang\\\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\"\nelse\n    echo \"❌ 不支持的内核版本: $KERNEL_VERSION\" && exit 1\nfi\n\necho \"📊 当前 ccache 统计信息如下:\"\nccache -s\necho \"✅ 内核编译完成\"\ncd \"$WORKSPACE\"\n\necho \"📦 正在获取 AnyKernel3 并准备打包...\"\ngit clone https://github.com/Xiaomichael/AnyKernel3 --depth=1\nrm -rf ./AnyKernel3/.git\n\nIMAGE_PATH=$(find \"$WORKSPACE/kernel_workspace/kernel_platform/common/out/\" -name \"Image\" | head -n 1)\nif [ -z \"$IMAGE_PATH\" ]; then echo \"❌ 严重错误：编译完成后未找到 Kernel Image！\" && exit 1; fi\n\necho \"✅ 已找到 Kernel Image: $IMAGE_PATH\"\ncp \"$IMAGE_PATH\" ./AnyKernel3/Image\n\nif [ \"$KPM\" = 'On' ]; then\n    echo \"🧩 正在对内核 Image 应用 KPM 补丁...\"\n    mkdir -p kpm_patch_temp && cd kpm_patch_temp\n    curl -LO https://github.com/SukiSU-Ultra/SukiSU_KernelPatch_patch/releases/download/0.13.0/patch_linux\n    chmod +x patch_linux\n    cp \"$WORKSPACE/AnyKernel3/Image\" ./Image\n    ./patch_linux\n    mv oImage \"$WORKSPACE/AnyKernel3/Image\"\n    cd .. && rm -rf kpm_patch_temp\n    echo \"✅ KPM 补丁应用完成\"\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  ARTIFACT_NAME=\"${FEIL}_ReSukiSU_lz4kd_${KSUVER}\"\nelif [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n  ARTIFACT_NAME=\"${FEIL}_ReSukiSU_lz4_zstd_${KSUVER}\"\nelif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  ARTIFACT_NAME=\"${FEIL}_ReSukiSU_lz4_${KSUVER}\"\nelse\n  ARTIFACT_NAME=\"${FEIL}_ReSukiSU_${KSUVER}\"\nfi\nif [ \"$SUSFS\" = \"On\" ]; then\n  ARTIFACT_NAME=\"${ARTIFACT_NAME}_SUSFS\"\nfi\n\nFINAL_ZIP_NAME=\"${ARTIFACT_NAME}.zip\"\n\necho \"📦 正在创建最终可刷入压缩包: ${FINAL_ZIP_NAME}...\"\ncd AnyKernel3 && zip -q -r9 \"../${FINAL_ZIP_NAME}\" ./* && cd ..\n\necho \"\"\necho \"=================================================\"\necho \"                  构建完成！\"\necho \"=================================================\"\necho \"-> 可刷入内核压缩包路径: $WORKSPACE/${FINAL_ZIP_NAME}\"\n\nZRAM_KO_PATH=$(find \"$WORKSPACE/kernel_workspace/kernel_platform/common/out/\" -name \"zram.ko\" | head -n 1)\nif [ -n \"$ZRAM_KO_PATH\" ]; then\n    cp \"$ZRAM_KO_PATH\" \"$WORKSPACE/\"\n    echo \"-> zram.ko 模块路径: $WORKSPACE/zram.ko\"\nfi\n\necho \"=================================================\"\necho \"\"\n"
  },
  {
    "path": "local/Build_SukiSU.sh",
    "content": "#!/bin/bash\n#export all_proxy=socks5://192.168.x.x:x/\nset -e\n\nclear\necho \"===================================================\"\necho \"  SukiSU Ultra OnePlus Kernel Build Configuration  \"\necho \"===================================================\"\necho \"  按回车键可直接使用 [方括号] 中的默认值\"\necho \"\"\n\nask() {\n    local prompt default reply\n    prompt=\"$1\"\n    default=\"$2\"\n    \n    read -p \"$prompt [$default]: \" reply\n    echo \"${reply:-$default}\"\n}\n\nCPU=$(ask \"请输入 CPU 分支 (例如: sm8750, sm8650, sm8550, sm8475)\" \"sm8650\")\nFEIL=$(ask \"请输入手机型号 (例如: oneplus_13_b, oneplus_12_b, oneplus_11_b)\" \"oneplus_12_b\")\nANDROID_VERSION=$(ask \"请输入内核安卓 KMI 版本 (android15, android14, android13, android12)\" \"android14\")\nKERNEL_VERSION=$(ask \"请输入内核版本 (6.6, 6.1, 5.15, 5.10)\" \"6.1\")\nSUSFS=$(ask \"是否启用 SUSFS? (On/Off)\" \"Off\")\nKPM=$(ask \"是否启用 KPM (Kernel Patch Manager)? (On/Off)\" \"Off\")\nlz4kd=$(ask \"是否启用 lz4kd? (6.1 关闭时使用 lz4 + zstd; 6.6 关闭时使用 lz4) (On/Off)\" \"Off\")\nbbr=$(ask \"是否启用 BBR 拥塞控制算法? (On/Off)\" \"Off\")\nbbg=$(ask \"是否启用 Baseband-Guard 基带防护? (On/Off)\" \"On\")\nproxy=$(ask \"是否添加代理性能优化? (如为联发科 CPU 必须选择 Off) (On/Off)\" \"On\")\nUNICODE_BYPASS=$(ask \"是否添加Unicode零宽绕过修复补丁(高内核版本不推荐开启, 建议使用 https://t.me/real5ec1cff/271 无痛修复) (On/Off)\" \"Off\")\n\nclear\necho \"\"\necho \"=================================================\"\necho \"                   配置摘要\"\necho \"=================================================\"\necho \"手机型号                 : $FEIL\"\necho \"CPU 分支                 : $CPU\"\necho \"安卓 KMI 版本            : $ANDROID_VERSION\"\necho \"内核版本                 : $KERNEL_VERSION\"\necho \"是否启用 SUSFS           : $SUSFS\"\necho \"是否启用 KPM             : $KPM\"\necho \"是否启用 lz4kd           : $lz4kd\"\necho \"是否启用 BBR             : $bbr\"\necho \"是否启用 Baseband-Guard  : $bbg\"\necho \"是否启用代理优化          : $proxy\"\necho \"是否启用 Unicode 绕过修复 : $UNICODE_BYPASS\"\necho \"=================================================\"\nread -p \"按回车键开始构建流程...\"\nclear\n\necho \"📦 正在准备构建工作空间...\"\nWORKSPACE=$PWD/build_workspace\nsudo rm -rf \"$WORKSPACE\"\nmkdir -p \"$WORKSPACE\"\ncd \"$WORKSPACE\"\n\necho \"📦 正在安装构建依赖...\"\nsudo apt-get update\nsudo DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \\\n  python3 git curl ccache libelf-dev \\\n  build-essential flex bison libssl-dev \\\n  libncurses-dev liblz4-tool zlib1g-dev \\\n  libxml2-utils rsync unzip python3-pip gawk dos2unix\nclear\necho \"✅ 必要构建依赖安装完成\"\n\necho \"⚙️ 正在配置 ccache 缓存...\"\nif [ \"$SUSFS\" == \"On\" ]; then\n  export CCACHE_DIR=\"$HOME/.ccache_${FEIL}_SukiSU_SUSFS\"\nelse\n  export CCACHE_DIR=\"$HOME/.ccache_${FEIL}_SukiSU_NoSUSFS\"\nfi\nexport CCACHE_COMPILERCHECK=\"%compiler% -dumpmachine; %compiler% -dumpversion\"\nexport CCACHE_NOHASHDIR=\"true\"\nexport CCACHE_HARDLINK=\"true\"\nexport CCACHE_MAXSIZE=\"20G\"\nexport PATH=\"/usr/lib/ccache:$PATH\"\nmkdir -p \"$CCACHE_DIR\"\necho \"✅ ccache 缓存目录: $CCACHE_DIR\"\nccache -M \"$CCACHE_MAXSIZE\"\nccache -z\n\necho \"🔐 正在配置 Git 用户信息...\"\ngit config --global user.name \"Local Builder\"\ngit config --global user.email \"builder@localhost\"\necho \"✅ Git 用户信息配置完成\"\n\nif ! command -v repo &> /dev/null; then\n    echo \"📥 未检测到 repo 工具，正在安装...\"\n    curl -fsSL https://storage.googleapis.com/git-repo-downloads/repo > ~/repo\n    chmod a+x ~/repo\n    sudo mv ~/repo /usr/local/bin/repo\n    echo \"✅ repo 工具安装完成\"\nelse\n    echo \"ℹ️ 已检测到 repo 工具，跳过安装\"\nfi\n\necho \"⬇️ 正在准备内核源码目录...\"\nsudo rm -rf kernel_workspace\nmkdir -p kernel_workspace && cd kernel_workspace\n\necho \"🌐 正在初始化 oneplus/${CPU} 分支、机型 ${FEIL} 的 manifest...\"\nrepo init -u https://github.com/Xiaomichael/kernel_manifest.git -b refs/heads/oneplus/${CPU} -m ${FEIL}.xml --depth=1\n\necho \"🔄 正在同步内核源码仓库 (使用 $(nproc --all) 线程)...\"\nrepo sync -c -j$(nproc --all) --no-tags --no-clone-bundle --force-sync\necho \"✅ 内核源码同步完成\"\n\nexport adv=$ANDROID_VERSION\necho \"🔧 正在清理并修改版本字符串...\"\nrm -f kernel_platform/common/android/abi_gki_protected_exports_* || echo \"common 目录下无受保护导出表，无需删除\"\nrm -f kernel_platform/msm-kernel/android/abi_gki_protected_exports_* || echo \"msm-kernel 目录下无受保护导出表，无需删除\"\n\nsed -i 's/ -dirty//g' kernel_platform/common/scripts/setlocalversion\nsed -i 's/ -dirty//g' kernel_platform/msm-kernel/scripts/setlocalversion\nsed -i 's/ -dirty//g' kernel_platform/external/dtc/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/common/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/msm-kernel/scripts/setlocalversion\nsed -i '$i res=$(echo \"$res\" | sed '\\''s/-dirty//g'\\'')' kernel_platform/external/dtc/scripts/setlocalversion\n\nif [ \"$KERNEL_VERSION\" != \"6.6\" ]; then\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/common/scripts/setlocalversion\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/msm-kernel/scripts/setlocalversion\n  sed -i '$s|echo \"\\$res\"|echo \"-'\"$adv\"'-oki-xiaoxiaow\"|' kernel_platform/external/dtc/scripts/setlocalversion\nelse\n  ESCAPED_SUFFIX=$(printf '%s\\n' \"-${ANDROID_VERSION}-oki-xiaoxiaow\" | sed 's:[\\/&]:\\\\&:g')\n  sed -i \"s/-4k/${ESCAPED_SUFFIX}/g\" kernel_platform/common/arch/arm64/configs/gki_defconfig\n  sed -i 's/\\${scm_version}//' kernel_platform/common/scripts/setlocalversion\n  sed -i 's/\\${scm_version}//' kernel_platform/msm-kernel/scripts/setlocalversion\nfi\n\necho \"✅ 内核仓库准备完毕并完成版本号清理\"\n\nif [ \"$bbg\" = \"On\" ] && [ \"$KPM\" = \"Off\" ]; then\n    set -e\n    cd kernel_platform/common\n    echo \"🛡️ 正在配置 Baseband-Guard 基带防护...\"\n    curl -sSL https://github.com/vc-teahouse/Baseband-guard/raw/main/setup.sh -o setup.sh\n    bash setup.sh\n    cd ../..\n    echo \"✅ Baseband-Guard 配置完成\"\nfi\n\necho \"⚡ 正在配置 SukiSU Ultra...\"\ncd kernel_platform\ncurl -LSs \"https://raw.githubusercontent.com/SukiSU-Ultra/SukiSU-Ultra/builtin/kernel/setup.sh\" | bash -s builtin\n\ncd KernelSU\nKSU_VERSION_COUNT=$(git rev-list --count main)\nexport KSUVER=$(expr $KSU_VERSION_COUNT + 37185)\nKSU_API_VERSION=4.1.2\n\nKSU_COMMIT_HASH=$(git ls-remote https://github.com/SukiSU-Ultra/SukiSU-Ultra.git refs/heads/builtin | cut -f1 | cut -c1-8)\nKSU_VERSION_FULL=\"v${KSU_API_VERSION}-${KSU_COMMIT_HASH}-xiaoxiaow@SukiSU\"\n\nsed -i '/define get_ksu_version_full/,/endef/d' kernel/Makefile\nsed -i '/KSU_VERSION_API :=/d' kernel/Makefile\nsed -i '/KSU_VERSION_FULL :=/d' kernel/Makefile\n\nTMP_FILE=$(mktemp)\nwhile IFS= read -r line; do\n  echo \"$line\" >> \"$TMP_FILE\"\n  if echo \"$line\" | grep -q 'REPO_OWNER :='; then\n    cat >> \"$TMP_FILE\" <<EOF\ndefine get_ksu_version_full\nv\\\\\\$\\$1-${KSU_COMMIT_HASH}-xiaoxiaow@SukiSU\nendef\n\nKSU_VERSION_API := ${KSU_API_VERSION}\nKSU_VERSION_FULL := ${KSU_VERSION_FULL}\nEOF\n  fi\ndone < kernel/Makefile\nmv \"$TMP_FILE\" kernel/Makefile\n\necho \"✅ SukiSU Ultra 版本信息配置完成\"\ncd ../..\n\necho \"🔧 正在克隆所需补丁...\"\nif [ \"$SUSFS\" = \"On\" ]; then\n    git clone https://github.com/cctv18/susfs4oki.git -b oki-${ANDROID_VERSION}-${KERNEL_VERSION}\nfi\ngit clone https://github.com/Xiaomichael/kernel_patches.git\ngit clone https://github.com/ShirkNeko/SukiSU_patch.git\n\ncd kernel_platform\necho \"📝 正在复制补丁文件...\"\n\nif [ \"$SUSFS\" = \"On\" ]; then\n    cp ../susfs4oki/kernel_patches/50_add_susfs_in_gki-${ANDROID_VERSION}-${KERNEL_VERSION}.patch ./common/\n    cp ../susfs4oki/kernel_patches/fs/* ./common/fs/\n    cp ../susfs4oki/kernel_patches/include/linux/* ./common/include/linux/\nelse\n    cp ../kernel_patches/sukisu/scope_min_manual_hooks_v1.6.patch ./common/\nfi\n\ncp ../kernel_patches/zram_patches/001-lz4.patch ./common/\ncp ../kernel_patches/zram_patches/lz4armv8.S ./common/lib\ncp ../kernel_patches/zram_patches/002-zstd.patch ./common/\n\nif [ \"$UNICODE_BYPASS\" = \"On\" ]; then\n  if [ \"$KERNEL_VERSION\" = \"6.1\" ] || [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n    cp ../kernel_patches/common/unicode_bypass_fix_6.1+.patch ./common/unicode_bypass_fix.patch\n  elif [ \"$KERNEL_VERSION\" = \"5.15\" ] || [ \"$KERNEL_VERSION\" = \"5.10\" ]; then\n    cp ../kernel_patches/common/unicode_bypass_fix_6.1-.patch ./common/unicode_bypass_fix.patch\n  fi\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"🚀 正在复制 lz4kd 相关补丁...\"\n  cp -r ../SukiSU_patch/other/zram/lz4k/include/linux/* ./common/include/linux\n  cp -r ../SukiSU_patch/other/zram/lz4k/lib/* ./common/lib\n  cp -r ../SukiSU_patch/other/zram/lz4k/crypto/* ./common/crypto\n  cp -r ../SukiSU_patch/other/zram/lz4k_oplus ./common/lib/\nfi\n\necho \"🔧 正在应用补丁...\"\ncd ./common\n\nif [ \"$UNICODE_BYPASS\" = \"On\" ]; then\n  echo \"📦 正在应用Unicode零宽绕过修复补丁...\"\n  patch -p1 < unicode_bypass_fix.patch\nfi\n\nif [ \"$SUSFS\" = \"On\" ]; then\n    patch -p1 < 50_add_susfs_in_gki-${ANDROID_VERSION}-${KERNEL_VERSION}.patch || true\nelse\n    echo \"📦 应用 MANUAL_HOOK 补丁...\"\n    patch -p1 -F 3 < scope_min_manual_hooks_v1.6.patch\nfi\n\nif [ \"$lz4kd\" = \"Off\" ] && [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n  echo \"📦 正在为 6.1 应用 lz4 + zstd 补丁...\"\n  git apply -p1 < 001-lz4.patch || true\n  patch -p1 < 002-zstd.patch || true\nfi\n\nif [ \"$lz4kd\" = \"Off\" ] && [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  echo \"📦 正在为 6.6 应用 lz4 补丁...\"\n  git apply -p1 < 001-lz4.patch || true\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"📦 正在应用 lz4kd / lz4k_oplus 补丁...\"\n  cp ../../SukiSU_patch/other/zram/zram_patch/${KERNEL_VERSION}/lz4kd.patch ./\n  patch -p1 -F 3 < lz4kd.patch || true\n  cp ../../SukiSU_patch/other/zram/zram_patch/${KERNEL_VERSION}/lz4k_oplus.patch ./\n  patch -p1 -F 3 < lz4k_oplus.patch || true\nfi\necho \"✅ 所有补丁应用完成\"\ncd ../..\n\nif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  cd kernel_platform/common\n  echo \"⬇️ 正在拉取风驰补丁\"\n  if [ \"$FEIL\" = \"oneplus_ace5_ultra\" ] || [ \"$FEIL\" = \"oneplus_ace5_ultra_b\" ]; then\n      echo \"⚠️ Ace5 Ultra 需要使用 mt6991 分支的补丁\"\n      git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"mt6991\"\n  else\n      echo \"⚙️ 使用 sm8750 分支的补丁\"\n      git clone https://github.com/Numbersf/SCHED_PATCH.git -b \"sm8750\"\n  fi\n\n  cp ./SCHED_PATCH/fengchi_$FEIL.patch ./\n\n  if [[ -f \"fengchi_$FEIL.patch\" ]]; then\n    echo \"⚙️ 开始应用风驰补丁\"\n    dos2unix \"fengchi_$FEIL.patch\"\n    patch -p1 -F 3 < \"fengchi_$FEIL.patch\"\n    echo \"✅ 完美风驰补丁应用完成\"\n  else\n    echo \"⚠️ 该6.6机型暂不支持风驰补丁, 正在应用OGKI转GKI补丁\"\n    sed -i '1iobj-y += hmbird_patch.o' drivers/Makefile\n    wget https://github.com/Numbersf/Action-Build/raw/SukiSU-Ultra/patches/hmbird_patch.patch\n    echo \"⚙️ 正在打OGKI转换GKI补丁\"\n    patch -p1 -F 3 < hmbird_patch.patch\n    echo \"✅ OGKI转换GKI_patch完成\"\n  fi\n  cd ../..\nfi\n\necho \"⚙️ 正在配置内核编译选项...\"\nDEFCONFIG_PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/common/arch/arm64/configs/gki_defconfig\"\n\necho \"CONFIG_KSU=y\" >> \"$DEFCONFIG_PATH\"\n\nif [ \"$SUSFS\" = \"On\" ]; then\n    echo \"📦 启用 SUSFS 功能...\"\n    cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_KSU_SUSFS=y\nCONFIG_KSU_SUSFS_SUS_PATH=y\nCONFIG_KSU_SUSFS_SUS_MOUNT=y\nCONFIG_KSU_SUSFS_SUS_KSTAT=y\nCONFIG_KSU_SUSFS_SPOOF_UNAME=y\nCONFIG_KSU_SUSFS_ENABLE_LOG=y\nCONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y\nCONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y\nCONFIG_KSU_SUSFS_OPEN_REDIRECT=y\nCONFIG_KSU_SUSFS_SUS_MAP=y\nEOT\nelse\n    echo \"📦 启用 MANUAL_HOOK...\"\n    cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_KSU_SUSFS=n\nCONFIG_KSU_MANUAL_HOOK=y\nEOT\nfi\n\n#添加对 Mountify (backslashxx/mountify) 模块的支持\necho \"CONFIG_TMPFS_XATTR=y\" >> \"$DEFCONFIG_PATH\"\necho \"CONFIG_TMPFS_POSIX_ACL=y\" >> \"$DEFCONFIG_PATH\"\n\nif [ \"$KPM\" = \"On\" ]; then echo \"CONFIG_KPM=y\" >> \"$DEFCONFIG_PATH\"; fi\n\nif [ \"$bbg\" = \"On\" ] && [ \"$KPM\" = \"Off\" ]; then\n  echo \"⚡ 配置 BBG 中...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_BBG=y\nCONFIG_LSM=\"landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf,baseband_guard\"\nEOT\nfi\n\nif [ \"$bbr\" = \"On\" ]; then\n  echo \"🌐 启用 BBR 网络算法...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_TCP_CONG_ADVANCED=y\nCONFIG_TCP_CONG_BBR=y\nCONFIG_NET_SCH_FQ=y\nCONFIG_TCP_CONG_BIC=n\nCONFIG_TCP_CONG_WESTWOOD=n\nCONFIG_TCP_CONG_HTCP=n\nEOT\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  echo \"📦 启用 lz4kd 与 写回支持...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_CRYPTO_LZ4KD=y\nCONFIG_CRYPTO_LZ4K_OPLUS=y\nCONFIG_ZRAM_WRITEBACK=y\nEOT\nfi\n\nif [ \"$KERNEL_VERSION\" = \"6.1\" ] || [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  echo \"CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y\" >> \"$DEFCONFIG_PATH\"\nfi\n\nif [ \"$proxy\" = \"On\" ]; then\n  echo \"📦 添加代理相关网络优化选项...\"\n  cat <<EOT >> \"$DEFCONFIG_PATH\"\nCONFIG_BPF_STREAM_PARSER=y\nCONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y\nCONFIG_NETFILTER_XT_SET=y\nCONFIG_IP_SET=y\nCONFIG_IP_SET_MAX=65534\nCONFIG_IP_SET_BITMAP_IP=y\nCONFIG_IP_SET_BITMAP_IPMAC=y\nCONFIG_IP_SET_BITMAP_PORT=y\nCONFIG_IP_SET_HASH_IP=y\nCONFIG_IP_SET_HASH_IPMARK=y\nCONFIG_IP_SET_HASH_IPPORT=y\nCONFIG_IP_SET_HASH_IPPORTIP=y\nCONFIG_IP_SET_HASH_IPPORTNET=y\nCONFIG_IP_SET_HASH_IPMAC=y\nCONFIG_IP_SET_HASH_MAC=y\nCONFIG_IP_SET_HASH_NETPORTNET=y\nCONFIG_IP_SET_HASH_NET=y\nCONFIG_IP_SET_HASH_NETNET=y\nCONFIG_IP_SET_HASH_NETPORT=y\nCONFIG_IP_SET_HASH_NETIFACE=y\nCONFIG_IP_SET_LIST_SET=y\nCONFIG_IP6_NF_NAT=y\nCONFIG_IP6_NF_TARGET_MASQUERADE=y\nEOT\nfi\n\nif [ \"$KERNEL_VERSION\" = \"5.10\" ] || [ \"$KERNEL_VERSION\" = \"5.15\" ]; then\n  echo \"📦 正在为 5.10 / 5.15 系配置 LTO...\"\n  sed -i 's/^CONFIG_LTO=n/CONFIG_LTO=y/' \"$DEFCONFIG_PATH\"\n  sed -i 's/^CONFIG_LTO_CLANG_FULL=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG_PATH\"\n  sed -i 's/^CONFIG_LTO_CLANG_NONE=y/CONFIG_LTO_CLANG_THIN=y/' \"$DEFCONFIG_PATH\"\n  grep -q '^CONFIG_LTO_CLANG_THIN=y' \"$DEFCONFIG_PATH\" || echo 'CONFIG_LTO_CLANG_THIN=y' >> \"$DEFCONFIG_PATH\"\nfi\n\necho \"CONFIG_HEADERS_INSTALL=n\" >> \"$DEFCONFIG_PATH\"\n\nsed -i 's/check_defconfig//' \"$WORKSPACE/kernel_workspace/kernel_platform/common/build.config.gki\"\n\necho \"✅ defconfig 配置更新完成\"\ncd ../..\n\necho \"🔨 开始内核编译...\"\ncd \"$WORKSPACE/kernel_workspace/kernel_platform/common\"\n\nMAKE_CMD_COMMON=\"make -j$(nproc --all) LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\\\"ccache clang\\\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\"\n\nexport KBUILD_BUILD_USER=\"xiaoxiaow\"\nexport KBUILD_BUILD_HOST=\"xiaoxiaow_build\"\n\nif [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n    export KBUILD_BUILD_TIMESTAMP=\"Tue Mar 10 03:53:33 UTC 2026\"\n    export KBUILD_BUILD_VERSION=1\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON KCFLAGS+=-O2\"\nelif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n    export KBUILD_BUILD_VERSION=1\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r510928/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON KCFLAGS+=-O2\"\nelif [ \"$KERNEL_VERSION\" = \"5.15\" ]; then\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts/clang/host/linux-x86/clang-r450784e/bin:$PATH\"\n    eval \"$MAKE_CMD_COMMON\"\nelif [ \"$KERNEL_VERSION\" = \"5.10\" ]; then\n    export PATH=\"$WORKSPACE/kernel_workspace/kernel_platform/prebuilts-master/clang/host/linux-x86/clang-r416183b/bin:$PATH\"\n    eval \"make -j$(nproc --all) LLVM_IAS=1 LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=\\\"ccache clang\\\" RUSTC=../../prebuilts/rust/linux-x86/1.73.0b/bin/rustc PAHOLE=../../prebuilts/kernel-build-tools/linux-x86/bin/pahole LD=ld.lld HOSTLD=ld.lld O=out gki_defconfig all\"\nelse\n    echo \"❌ 不支持的内核版本: $KERNEL_VERSION\" && exit 1\nfi\n\necho \"📊 当前 ccache 统计信息如下:\"\nccache -s\necho \"✅ 内核编译完成\"\ncd \"$WORKSPACE\"\n\necho \"📦 正在获取 AnyKernel3 并准备打包...\"\ngit clone https://github.com/Xiaomichael/AnyKernel3 --depth=1\nrm -rf ./AnyKernel3/.git\n\nIMAGE_PATH=$(find \"$WORKSPACE/kernel_workspace/kernel_platform/common/out/\" -name \"Image\" | head -n 1)\nif [ -z \"$IMAGE_PATH\" ]; then echo \"❌ 严重错误：编译完成后未找到 Kernel Image！\" && exit 1; fi\n\necho \"✅ 已找到 Kernel Image: $IMAGE_PATH\"\ncp \"$IMAGE_PATH\" ./AnyKernel3/Image\n\nif [ \"$KPM\" = 'On' ]; then\n    echo \"🧩 正在对内核 Image 应用 KPM 补丁...\"\n    mkdir -p kpm_patch_temp && cd kpm_patch_temp\n    curl -LO https://github.com/SukiSU-Ultra/SukiSU_KernelPatch_patch/releases/download/0.13.0/patch_linux\n    chmod +x patch_linux\n    cp \"$WORKSPACE/AnyKernel3/Image\" ./Image\n    ./patch_linux\n    mv oImage \"$WORKSPACE/AnyKernel3/Image\"\n    cd .. && rm -rf kpm_patch_temp\n    echo \"✅ KPM 补丁应用完成\"\nfi\n\nif [ \"$lz4kd\" = \"On\" ]; then\n  ARTIFACT_NAME=\"${FEIL}_SukiSU_Ultra_lz4kd_${KSUVER}\"\nelif [ \"$KERNEL_VERSION\" = \"6.1\" ]; then\n  ARTIFACT_NAME=\"${FEIL}_SukiSU_Ultra_lz4_zstd_${KSUVER}\"\nelif [ \"$KERNEL_VERSION\" = \"6.6\" ]; then\n  ARTIFACT_NAME=\"${FEIL}_SukiSU_Ultra_lz4_${KSUVER}\"\nelse\n  ARTIFACT_NAME=\"${FEIL}_SukiSU_Ultra_${KSUVER}\"\nfi\nif [ \"$SUSFS\" = \"On\" ]; then\n  ARTIFACT_NAME=\"${ARTIFACT_NAME}_SUSFS\"\nfi\n\nFINAL_ZIP_NAME=\"${ARTIFACT_NAME}.zip\"\n\necho \"📦 正在创建最终可刷入压缩包: ${FINAL_ZIP_NAME}...\"\ncd AnyKernel3 && zip -q -r9 \"../${FINAL_ZIP_NAME}\" ./* && cd ..\n\necho \"\"\necho \"=================================================\"\necho \"                  构建完成！\"\necho \"=================================================\"\necho \"-> 可刷入内核压缩包路径: $WORKSPACE/${FINAL_ZIP_NAME}\"\n\nZRAM_KO_PATH=$(find \"$WORKSPACE/kernel_workspace/kernel_platform/common/out/\" -name \"zram.ko\" | head -n 1)\nif [ -n \"$ZRAM_KO_PATH\" ]; then\n    cp \"$ZRAM_KO_PATH\" \"$WORKSPACE/\"\n    echo \"-> zram.ko 模块路径: $WORKSPACE/zram.ko\"\nfi\n\necho \"=================================================\"\necho \"\"\n"
  },
  {
    "path": "script/buildbot.py",
    "content": "import asyncio\nimport os\nimport sys\nfrom telethon import TelegramClient\n\nAPI_ID = 611335\nAPI_HASH = \"d524b414d21f4d37f08684c1df41ac9c\"\n\n\nBOT_TOKEN = os.environ.get(\"BOT_TOKEN\")\nCHAT_ID = os.environ.get(\"CHATID\")\nMESSAGE_THREAD_ID = os.environ.get(\"MESSAGE_THREAD_ID\")\nDEVICE = os.environ.get(\"DEVICE\")\nKPM= os.environ.get(\"KPM\")\nlz4kd= os.environ.get(\"LZ4KD\")\nBBR= os.environ.get(\"BBR\")\nKSU_VAR = os.environ.get(\"KSU_VAR\")\n\nMSG_TEMPLATE = \"\"\"\n**New Build Published!**\n#oki\n#{device}\n```Kernel Info\nkernelver: {kernelversion}\nKSU_VAR: {KSU_VAR}\nKsuVersion: {Ksuver}\nKPM: {kpm}\nLz4kd: {lz4kd} Lz4&zstd: {lz4_zstd}\nBBR: {BBR}\n```\n十分感谢yc佬对本自动推送bot做出的贡献❤️\nPlease Join Our Group! tg @gki_kernels_xiaoxiaow\n\"\"\".strip()\n\n\ndef get_caption():\n    msg = MSG_TEMPLATE.format(\n        device=DEVICE,\n        kernelversion=kernelversion,\n        kpm=KPM,\n        lz4kd=lz4kd,\n        Ksuver=ksuver,\n        KSU_VAR=KSU_VAR,\n        lz4_zstd=check_lz4_zstd(),\n        BBR=BBR,\n    )\n    if len(msg) > 1024:\n        return f\"{DEVICE}{kernelversion}\"\n    return msg\n\n\ndef check_environ():\n    global CHAT_ID, MESSAGE_THREAD_ID\n    if BOT_TOKEN is None:\n        print(\"[-] Invalid BOT_TOKEN\")\n        exit(1)\n    if CHAT_ID is None:\n        print(\"[-] Invalid CHAT_ID\")\n        exit(1)\n    else:\n        try:\n            CHAT_ID = int(CHAT_ID)\n        except:\n            pass\n    if MESSAGE_THREAD_ID is not None and MESSAGE_THREAD_ID != \"\":\n        try:\n            MESSAGE_THREAD_ID = int(MESSAGE_THREAD_ID)\n        except:\n            print(\"[-] Invaild MESSAGE_THREAD_ID\")\n            exit(1)\n    else:\n        MESSAGE_THREAD_ID = None\n    get_versions()\n\ndef get_kernel_versions():\n    version=\"\"\n    patchlevel=\"\"\n    sublevel=\"\"\n\n    try:\n        with open(\"Makefile\",'r') as file:\n            for line in file:\n                if line.startswith(\"VERSION\"):\n                    version = line.split('=')[1].strip()\n                elif line.startswith(\"PATCHLEVEL\"):\n                    patchlevel = line.split('=')[1].strip()\n                elif line.startswith(\"SUBLEVEL\"):\n                    sublevel = line.split('=')[1].strip()\n                elif line.startswith(\"#\"): # skip comments\n                    continue\n                else:\n                    break\n    except FileNotFoundError:\n        raise\n    return f\"{version}.{patchlevel}.{sublevel}\"\n\ndef get_versions():\n    global kernelversion,ksuver,KSU_VAR\n    if KSU_VAR == \"NEXT\":\n        ksu_folder=\"KernelSU-Next\"\n    else:\n        ksu_folder=\"KernelSU\"\n    current_work=os.getcwd()\n    os.chdir(current_work+\"/kernel_workspace/kernel_platform/common\") #除非next\n    kernelversion=get_kernel_versions()\n    os.chdir(os.getcwd()+f\"/../{ksu_folder}\")\n    ksuver=os.popen(\"echo $(git describe --tags $(git rev-list --tags --max-count=1))-$(git rev-parse --short HEAD)@$(git branch --show-current)\").read().strip()\n    ksuver+=f' ({os.environ.get(\"KSUVER\")})'\n    os.chdir(current_work)\n\ndef check_lz4_zstd():\n    global lz4kd\n    if lz4kd == \"Off\":\n        return \"On\"\n    else:\n        return \"Off\"\n    return \"Off\"\n\nasync def main():\n    print(\"[+] Uploading to telegram\")\n    check_environ()\n    files = sys.argv[1:]\n    print(\"[+] Files:\", files)\n    if len(files) <= 0:\n        print(\"[-] No files to upload\")\n        exit(1)\n    print(\"[+] Logging in Telegram with bot\")\n    script_dir = os.path.dirname(os.path.abspath(sys.argv[0]))\n    session_dir = os.path.join(script_dir, \"ksubot\")\n    async with await TelegramClient(session=session_dir, api_id=API_ID, api_hash=API_HASH).start(bot_token=BOT_TOKEN) as bot:\n        caption = [\"\"] * len(files)\n        caption[-1] = get_caption()\n        print(\"[+] Caption: \")\n        print(\"---\")\n        print(caption)\n        print(\"---\")\n        print(\"[+] Sending\")\n        await bot.send_file(entity=CHAT_ID, file=files, caption=caption, reply_to=MESSAGE_THREAD_ID, parse_mode=\"markdown\")\n        print(\"[+] Done!\")\n\nif __name__ == \"__main__\":\n    try:\n        asyncio.run(main())\n    except Exception as e:\n        print(f\"[-] An error occurred: {e}\")"
  }
]