add:devices

add:devices
This commit is contained in:
Dich
2025-07-02 23:01:11 +08:00
parent 82a190534e
commit 869802bed6

View File

@@ -21,6 +21,14 @@ on:
options: options:
- lz4 - lz4
- zstd - zstd
device:
description: "Target OnePlus device"
required: true
default: "corvette"
type: choice
options:
- salami # OnePlus 11
- corvette # OnePlus ACE3 Pro
root_solution: root_solution:
description: "Choose root solution to integrate" description: "Choose root solution to integrate"
required: false required: false
@@ -43,6 +51,7 @@ jobs:
env: env:
ARCH: arm64 ARCH: arm64
SUBARCH: arm64 SUBARCH: arm64
WORKDIR: ${{ github.workspace }}/kernel
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -113,16 +122,59 @@ jobs:
ls -la ./toolchains/ ls -la ./toolchains/
echo "工具链设置完成 ===" echo "工具链设置完成 ==="
- name: Clone kernel source - name: Determine kernel repo & branch and set device variables
id: vars
run: | run: |
cd $GITHUB_WORKSPACE/kernel DEV=${{ github.event.inputs.device }}
case "$DEV" in
corvette)
REPO=https://github.com/crdroidandroid/android_kernel_oneplus_sm8650.git
DEVICE_CODENAME=corvette
DEVICE_NAME="OnePlus ACE3 Pro"
SOC_PLATFORM=sm8650
KERNEL_DIR=android_kernel_oneplus_sm8650
;;
salami)
REPO=https://github.com/crdroidandroid/android_kernel_oneplus_sm8550.git
DEVICE_CODENAME=salami
DEVICE_NAME="OnePlus 11"
SOC_PLATFORM=sm8550
KERNEL_DIR=android_kernel_oneplus_sm8550
;;
*)
echo "Unsupported device: $DEV"
exit 1
;;
esac
echo "REPO=$REPO" >> $GITHUB_ENV
echo "DEVICE_CODENAME=$DEVICE_CODENAME" >> $GITHUB_ENV
echo "DEVICE_NAME=$DEVICE_NAME" >> $GITHUB_ENV
echo "SOC_PLATFORM=$SOC_PLATFORM" >> $GITHUB_ENV
echo "KERNEL_DIR=$KERNEL_DIR" >> $GITHUB_ENV
echo "=== Device Configuration ==="
echo "Device: $DEVICE_NAME ($DEVICE_CODENAME)"
echo "SoC Platform: $SOC_PLATFORM"
echo "Repository: $REPO"
echo "Kernel Directory: $KERNEL_DIR"
- name: Clone Kernel Source
run: |
mkdir -p "$WORKDIR/source"
if [ -z "$BRANCH" ]; then
echo "BRANCH 未设置,自动检测默认分支..."
BRANCH=$(git ls-remote --symref "$REPO" HEAD | awk '/^ref:/ {sub("refs/heads/", "", $2); print $2; exit}')
echo "检测到默认分支为: $BRANCH"
fi
echo "Cloning $REPO branch $BRANCH into $WORKDIR/source/$KERNEL_DIR"
git clone --depth=1 \ git clone --depth=1 \
https://github.com/crdroidandroid/android_kernel_oneplus_sm8650.git \ --branch "$BRANCH" \
./source/android_kernel_oneplus_sm8650 "$REPO" \
"$WORKDIR/source/$KERNEL_DIR"
echo "=== 内核源码目录结构 ===" echo "=== 内核源码目录结构 ==="
echo "kernel/source/" ls -la "$WORKDIR/source/"
ls -la ./source/
- name: Clone AnyKernel3 - name: Clone AnyKernel3
run: | run: |
@@ -136,13 +188,13 @@ jobs:
run: | run: |
cd $GITHUB_WORKSPACE/kernel cd $GITHUB_WORKSPACE/kernel
if [ -f "$GITHUB_WORKSPACE/config" ]; then if [ -f "$GITHUB_WORKSPACE/config" ]; then
cp $GITHUB_WORKSPACE/config ./source/android_kernel_oneplus_sm8650/myconfig cp $GITHUB_WORKSPACE/config ./source/$KERNEL_DIR/myconfig
else else
echo "Error: config file not found!" echo "Error: config file not found!"
exit 1 exit 1
fi fi
cd source/android_kernel_oneplus_sm8650 cd source/$KERNEL_DIR
# Configure BBR if enabled # Configure BBR if enabled
if [ "${{ inputs.enable_bbr }}" = "true" ]; then if [ "${{ inputs.enable_bbr }}" = "true" ]; then
@@ -202,13 +254,15 @@ jobs:
EOF EOF
echo "=== Configuration Summary ===" echo "=== Configuration Summary ==="
echo "Device: $DEVICE_NAME ($DEVICE_CODENAME)"
echo "SoC Platform: $SOC_PLATFORM"
echo "BBR Enabled: ${{ inputs.enable_bbr }}" echo "BBR Enabled: ${{ inputs.enable_bbr }}"
echo "ZRAM Enabled: ${{ inputs.enable_zram }}" echo "ZRAM Enabled: ${{ inputs.enable_zram }}"
echo "ZRAM Algorithm: ${{ inputs.zram_algorithm }}" echo "ZRAM Algorithm: ${{ inputs.zram_algorithm }}"
- name: Install root solution - name: Install root solution
run: | run: |
cd $GITHUB_WORKSPACE/kernel/source/android_kernel_oneplus_sm8650 cd $GITHUB_WORKSPACE/kernel/source/$KERNEL_DIR
export KCONFIG_CONFIG=myconfig export KCONFIG_CONFIG=myconfig
echo "👉 选择的 Root 方案:${{ github.event.inputs.root_solution }}" echo "👉 选择的 Root 方案:${{ github.event.inputs.root_solution }}"
@@ -230,11 +284,12 @@ jobs:
- name: Build kernel - name: Build kernel
run: | run: |
cd $GITHUB_WORKSPACE/kernel/source/android_kernel_oneplus_sm8650 cd $GITHUB_WORKSPACE/kernel/source/$KERNEL_DIR
# 记录开始时间 # 记录开始时间
starttime=$(date +'%Y-%m-%d %H:%M:%S') starttime=$(date +'%Y-%m-%d %H:%M:%S')
echo "Build started at: $starttime" echo "Build started at: $starttime"
echo "Building for: $DEVICE_NAME ($DEVICE_CODENAME) - $SOC_PLATFORM"
# 设置环境变量 # 设置环境变量
export ARCH=arm64 export ARCH=arm64
@@ -293,7 +348,7 @@ jobs:
- name: Check build results - name: Check build results
run: | run: |
cd $GITHUB_WORKSPACE/kernel/source/android_kernel_oneplus_sm8650 cd $GITHUB_WORKSPACE/kernel/source/$KERNEL_DIR
echo "=== Build Results ===" echo "=== Build Results ==="
if [ -f "out/arch/arm64/boot/Image" ]; then if [ -f "out/arch/arm64/boot/Image" ]; then
echo "✅ Kernel build successful!" echo "✅ Kernel build successful!"
@@ -319,7 +374,7 @@ jobs:
fi fi
# 获取内核版本信息 # 获取内核版本信息
cd source/android_kernel_oneplus_sm8650 cd source/$KERNEL_DIR
KERNEL_VERSION=$(make kernelversion 2>/dev/null || echo "unknown") KERNEL_VERSION=$(make kernelversion 2>/dev/null || echo "unknown")
BUILD_DATE=$(date +'%Y%m%d_%H%M') BUILD_DATE=$(date +'%Y%m%d_%H%M')
@@ -329,12 +384,14 @@ jobs:
echo "内核名称: $KERNEL_NAME" echo "内核名称: $KERNEL_NAME"
echo "内核版本: $KERNEL_VERSION" echo "内核版本: $KERNEL_VERSION"
echo "构建日期: $BUILD_DATE" echo "构建日期: $BUILD_DATE"
echo "目标设备: $DEVICE_NAME ($DEVICE_CODENAME)"
echo "SoC平台: $SOC_PLATFORM"
# 复制 AnyKernel3 模板到输出目录 # 复制 AnyKernel3 模板到输出目录
cp -r anykernel3/* output/ cp -r anykernel3/* output/
# 复制内核文件 # 复制内核文件
cp source/android_kernel_oneplus_sm8650/out/arch/arm64/boot/Image output/ cp source/$KERNEL_DIR/out/arch/arm64/boot/Image output/
# 修改 AnyKernel3 配置 # 修改 AnyKernel3 配置
cd output cd output
@@ -405,9 +462,13 @@ jobs:
Kernel Name: $KERNEL_NAME Kernel Name: $KERNEL_NAME
Kernel Version: $KERNEL_VERSION Kernel Version: $KERNEL_VERSION
Build Date: $BUILD_DATE Build Date: $BUILD_DATE
Target Device: $DEVICE_NAME ($DEVICE_CODENAME)
SoC Platform: $SOC_PLATFORM
BBR Enabled: ${{ inputs.enable_bbr }} BBR Enabled: ${{ inputs.enable_bbr }}
ZRAM Enabled: ${{ inputs.enable_zram }}
ZRAM Algorithm: ${{ inputs.zram_algorithm }}
Root Solution: ${{ inputs.root_solution }}
Compiler: Clang 21.0.0 Compiler: Clang 21.0.0
Target Device: OnePlus ACE3 Pro(SM8650)
Architecture: ARM64 Architecture: ARM64
EOF EOF
@@ -430,7 +491,7 @@ jobs:
BBR_SUFFIX="_BBR" BBR_SUFFIX="_BBR"
fi fi
ZIP_NAME="${KERNEL_NAME}${BBR_SUFFIX}_${BUILD_DATE}.zip" ZIP_NAME="${KERNEL_NAME}_${DEVICE_CODENAME}${BBR_SUFFIX}${ROOT_SUFFIX}_${BUILD_DATE}.zip"
echo "=== 创建 ZIP 包: $ZIP_NAME ===" echo "=== 创建 ZIP 包: $ZIP_NAME ==="
@@ -458,12 +519,12 @@ jobs:
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
if: always() if: always()
with: with:
name: kernel-build-${{ github.run_number }} name: kernel-build-${{ env.DEVICE_CODENAME }}-${{ github.run_number }}
path: | path: |
kernel/source/android_kernel_oneplus_sm8650/out/arch/arm64/boot/Image* kernel/source/${{ env.KERNEL_DIR }}/out/arch/arm64/boot/Image*
kernel/source/android_kernel_oneplus_sm8650/out/arch/arm64/boot/dts/*/*.dtb kernel/source/${{ env.KERNEL_DIR }}/out/arch/arm64/boot/dts/*/*.dtb
kernel/source/android_kernel_oneplus_sm8650/out/error.log kernel/source/${{ env.KERNEL_DIR }}/out/error.log
kernel/source/android_kernel_oneplus_sm8650/out/.config kernel/source/${{ env.KERNEL_DIR }}/out/.config
kernel/output/*.zip kernel/output/*.zip
kernel/output/kernel_info.txt kernel/output/kernel_info.txt