From 654a58e3f45098706ddd1082be1ce7a3ac9dc90d Mon Sep 17 00:00:00 2001 From: Mohammad Akil Date: Mon, 13 Jul 2026 10:28:35 +0530 Subject: [PATCH 1/2] feat: add pa-gr SM8450 kernel source preset Add kernel_source=pa-gr (pa-gr/android_kernel_xiaomi_sm8450 @ vauxite) as LOS-family GKI fragments + llvm-22.1.8. Wire matrix dropdown, naming, known-good pins, tests, and docs. Note in-tree KernelSU risk on vauxite. --- .github/workflows/build-matrix.yml | 1 + README.md | 9 ++++++--- config/kernel-sources.json | 19 +++++++++++++++++++ config/known-good-pins.json | 4 ++++ docs/ARCHITECTURE.md | 9 ++++++--- docs/manager-matrix.md | 2 +- docs/verification/los-smoke-checklist.md | 23 +++++++++++++++++++++++ docs/versions.md | 7 ++++--- scripts/package-anykernel.sh | 2 +- scripts/resolve-kernel-source.sh | 2 +- tests/test-kernel-sources.sh | 10 +++++++++- tests/test-known-good-pins.sh | 3 +++ tests/test-workflow-policy.sh | 2 +- 13 files changed, 79 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build-matrix.yml b/.github/workflows/build-matrix.yml index 2f6149c..a654655 100644 --- a/.github/workflows/build-matrix.yml +++ b/.github/workflows/build-matrix.yml @@ -48,6 +48,7 @@ on: - lineageos - evolution-x - pablo + - pa-gr source_ref: description: "Override branch/tag/commit (empty = preset default)" required: false diff --git a/README.md b/README.md index de0f09f..55d0806 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,7 @@ Named after the project / author. Pick one in **Build Marble Kernel**: | `lineageos` | LineageOS | [`LineageOS/android_kernel_xiaomi_sm8450`](https://github.com/LineageOS/android_kernel_xiaomi_sm8450) | `lineage-23.2` | **LOS-based** custom ROMs only | | `evolution-x` | Evolution-X | [`Evolution-X-Devices/kernel_xiaomi_sm8450`](https://github.com/Evolution-X-Devices/kernel_xiaomi_sm8450) | `cnb` | **LOS-based** custom ROMs only | | `pablo` | Pablo | [`aosp-pablo/android_kernel_xiaomi_sm8450`](https://github.com/aosp-pablo/android_kernel_xiaomi_sm8450) | `16` | **LOS-based** custom ROMs only | +| `pa-gr` | pa-gr | [`pa-gr/android_kernel_xiaomi_sm8450`](https://github.com/pa-gr/android_kernel_xiaomi_sm8450) | `vauxite` | **LOS-based** custom ROMs only | - **HyperOS (`melt`)** uses `marble_defconfig` and Android `clang-r416183b` via `toolchain=auto`. - **LOS-family kernels** merge `gki_defconfig` + vendor GKI fragments; `toolchain=auto` selects **`llvm-22.1.8`** (armv9). Prefer **`lto=thin`** on free runners. @@ -103,6 +104,7 @@ Named after the project / author. Pick one in **Build Marble Kernel**: | `lineageos` | `auto` → `llvm-22.1.8` | `thin` | Required for armv9 | | `evolution-x` | `auto` → `llvm-22.1.8` | `thin` | LOS-family | | `pablo` | `auto` → `llvm-22.1.8` | `thin` | LOS-family | +| `pa-gr` | `auto` → `llvm-22.1.8` | `thin` | LOS-family; default `vauxite` has in-tree KernelSU — smoke-test manager apply | **Free runners:** avoid many parallel LOS+LLVM jobs; prefer 1–2 heavy builds at a time. Prefer `lto=thin`, not `full`. @@ -117,7 +119,7 @@ AK3_marble___[-version][-codeN][_susfs-vX.Y.Z]_rN.zip | FAMILY | Sources | |--------|---------| | `MELT` | `melt` | -| `LOS` | `lineageos`, `evolution-x`, `pablo` | +| `LOS` | `lineageos`, `evolution-x`, `pablo`, `pa-gr` | LTO and toolchain are **not** in the filename (see flash banner + `build-info.*`). @@ -188,7 +190,7 @@ Do **not** enable SUSFS with `none` or `kernelsu`. ### Quick start — build 1. Open **[Actions → Build Marble Kernel → Run workflow](https://github.com/mohdakil2426/marble-kernel-builder/actions)** -2. Choose **kernel source** (`melt` / `lineageos` / `evolution-x` / `pablo`) +2. Choose **kernel source** (`melt` / `lineageos` / `evolution-x` / `pablo` / `pa-gr`) 3. Select manager checkbox(es) 4. Set **lto** (default `thin`), SUSFS, optional `source_ref`, **toolchain** (LOS → `llvm-22.1.8`), scope 5. Run · download artifacts when green @@ -219,7 +221,7 @@ Do **not** enable SUSFS with `none` or `kernelsu`. | `enable_susfs` | `false` | Enable SUSFS for managers that support it | | `susfs_version` | `v2.2.0` | `v2.2.0` · `v2.1.0` · `custom` | | `susfs_ref` | *(empty)* | Branch/tag/commit — only with `custom` | -| `kernel_source` | `melt` | Dropdown: `melt` · `lineageos` · `evolution-x` · `pablo` | +| `kernel_source` | `melt` | Dropdown: `melt` · `lineageos` · `evolution-x` · `pablo` · `pa-gr` | | `source_ref` | *(empty)* | Optional branch/tag/commit override (preset default if empty) | | `build_scope` | `image-only` | `image-only` or `full` | | `toolchain` | `android-r416183b` | `android-r416183b` (default) or experimental `llvm-22.1.8` | @@ -373,6 +375,7 @@ On A/B devices, target the correct slot (or both if needed). | 🟠 LineageOS SM8450 | [LineageOS/android_kernel_xiaomi_sm8450](https://github.com/LineageOS/android_kernel_xiaomi_sm8450) | | 🧬 Evolution-X SM8450 | [Evolution-X-Devices/kernel_xiaomi_sm8450](https://github.com/Evolution-X-Devices/kernel_xiaomi_sm8450) | | 🧩 Pablo SM8450 | [aosp-pablo/android_kernel_xiaomi_sm8450](https://github.com/aosp-pablo/android_kernel_xiaomi_sm8450) | +| 🧪 pa-gr SM8450 | [pa-gr/android_kernel_xiaomi_sm8450](https://github.com/pa-gr/android_kernel_xiaomi_sm8450) (`vauxite`) | | 🫙 AnyKernel3 | [osm0sis/AnyKernel3](https://github.com/osm0sis/AnyKernel3) | | 🔐 KernelSU | [tiann/KernelSU](https://github.com/tiann/KernelSU) | | 🚀 KernelSU-Next | [KernelSU-Next/KernelSU-Next](https://github.com/KernelSU-Next/KernelSU-Next) | diff --git a/config/kernel-sources.json b/config/kernel-sources.json index 8883b9a..a9f9331 100644 --- a/config/kernel-sources.json +++ b/config/kernel-sources.json @@ -67,5 +67,24 @@ ], "recommended_toolchain": "llvm-22.1.8", "notes": "aosp-pablo SM8450 kernel (Marble Development). LOS-based custom ROMs only. Needs llvm-22.1.8 (armv9 flags)." + }, + "pa-gr": { + "display": "pa-gr", + "author": "pa-gr", + "repo": "pa-gr/android_kernel_xiaomi_sm8450", + "default_ref": "vauxite", + "rom_label": "pa-gr", + "rom_family": "los", + "rom_support": "pa-gr / LOS-based custom ROMs only", + "defconfig_mode": "gki_fragments", + "base_defconfig": "gki_defconfig", + "config_fragments": [ + "vendor/waipio_GKI.config", + "vendor/xiaomi_GKI.config", + "vendor/marble_GKI.config", + "vendor/debugfs.config" + ], + "recommended_toolchain": "llvm-22.1.8", + "notes": "pa-gr SM8450 marble kernel (default branch vauxite). GKI fragments + llvm-22.1.8. Note: vauxite ships in-tree KernelSU submodule/drivers — out-of-tree manager apply may conflict; smoke-test before release." } } diff --git a/config/known-good-pins.json b/config/known-good-pins.json index 050852c..f76bce7 100644 --- a/config/known-good-pins.json +++ b/config/known-good-pins.json @@ -30,6 +30,10 @@ "pablo": { "repo": "aosp-pablo/android_kernel_xiaomi_sm8450", "ref": "16" + }, + "pa-gr": { + "repo": "pa-gr/android_kernel_xiaomi_sm8450", + "ref": "vauxite" } } } diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index e8f0eae..736bd45 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -98,7 +98,7 @@ Default CI scope is **`image-only`** (kernel `Image` → AnyKernel ZIP). │ ▼ │ ┌──────────────────────────────────┐ │ │ Remote kernel source (selected) │ - │ │ melt | lineageos | evo-x | pablo │ + │ │ melt | lineageos | evo-x | pablo | pa-gr │ │ └──────────────────────────────────┘ │ │ ▼ ▼ @@ -280,7 +280,7 @@ Parallel matrix builds of different managers share the group key only when those | `enable_susfs` | boolean | false | Applies to KSUNext / SukiSU / ReSukiSU only | | `susfs_version` | choice | `v2.2.0` | `v2.2.0` · `v2.1.0` · `custom` | | `susfs_ref` | string | empty | Only for custom SUSFS | -| `kernel_source` | choice | `melt` | `melt` · `lineageos` · `evolution-x` · `pablo` | +| `kernel_source` | choice | `melt` | `melt` · `lineageos` · `evolution-x` · `pablo` · `pa-gr` | | `source_ref` | string | empty | Override preset branch/tag/commit | | `build_scope` | choice | `image-only` | `image-only` · `full` | | `toolchain` | choice | `android-r416183b` | Or `llvm-22.1.8` (required for LOS armv9) | @@ -365,9 +365,12 @@ Strategy: `fail-fast: false` so one manager failure does not cancel siblings. | `lineageos` | LineageOS | `LineageOS/android_kernel_xiaomi_sm8450` | `lineage-23.2` | `gki_fragments` | LOS | | `evolution-x` | Evolution-X | `Evolution-X-Devices/kernel_xiaomi_sm8450` | `cnb` | `gki_fragments` | LOS | | `pablo` | Pablo | `aosp-pablo/android_kernel_xiaomi_sm8450` | `16` | `gki_fragments` | LOS | +| `pa-gr` | pa-gr | `pa-gr/android_kernel_xiaomi_sm8450` | `vauxite` | `gki_fragments` | LOS | LOS presets recommend **`llvm-22.1.8`** (armv9 march flags rejected by Android clang-12 / `clang-r416183b`). +**pa-gr note:** default `vauxite` includes an in-tree `KernelSU` submodule / `drivers/kernelsu`. Out-of-tree manager apply may conflict — treat first CI runs as smoke tests. + ### 7.2 Defconfig modes **`single` (Melt):** @@ -692,7 +695,7 @@ AK3_marble___[-version][-codeN][_susfs-vX.Y.Z]_rN.zip | Token | Values | |-------|--------| -| `FAMILY` | `MELT` (`melt`) · `LOS` (lineageos / evolution-x / pablo) | +| `FAMILY` | `MELT` (`melt`) · `LOS` (lineageos / evolution-x / pablo / pa-gr) | | `manager` | `noroot` · `kernelsu` · `ksunext` · `sukisu` · `resukisu` | | SUSFS off | omit segment | | LTO | **not** in zip name (banner + build-info) | diff --git a/docs/manager-matrix.md b/docs/manager-matrix.md index 205edc2..276480f 100644 --- a/docs/manager-matrix.md +++ b/docs/manager-matrix.md @@ -1,6 +1,6 @@ # Manager Matrix -Last checked: 2026-07-13 (manager policy + multi-kernel presets). Kernel **source** selection is independent — see `config/kernel-sources.json` and README presets (Melt vs LOS-family). +Last checked: 2026-07-13 (manager policy + multi-kernel presets including `pa-gr`). Kernel **source** selection is independent — see `config/kernel-sources.json` and README presets (Melt vs LOS-family: lineageos / evolution-x / pablo / pa-gr). `none` is a baseline no-root build mode. It is useful for validating the clean kernel source, build system, packaging, and AnyKernel3 flashing path. It is not a root solution, and SUSFS is blocked with `none` because SUSFS needs manager-side KernelSU-compatible hooks. diff --git a/docs/verification/los-smoke-checklist.md b/docs/verification/los-smoke-checklist.md index 8bbb85b..25e7737 100644 --- a/docs/verification/los-smoke-checklist.md +++ b/docs/verification/los-smoke-checklist.md @@ -46,3 +46,26 @@ notes: ``` Do **not** claim LOS product readiness until device boot is recorded. + +## pa-gr smoke (optional) + +| Input | Value | +|-------|--------| +| `kernel_source` | `pa-gr` | +| default ref | `vauxite` (`source_ref` empty) | +| `toolchain` | `auto` → `llvm-22.1.8` | +| `lto` | `thin` first; `full` only as experiment (free-runner OOM risk) | +| `build_kernelsu_next` | `true` | +| `enable_susfs` | `true` | +| other managers | `false` | + +**Expect ZIP:** `AK3_marble_LOS_pa-gr_ksunext-..._susfs-v2.2.0_rN.zip` + +**Risk:** `vauxite` may ship in-tree KernelSU (`KernelSU` submodule / `drivers/kernelsu`) — manager apply can fail or double-apply; treat first green/fail as CI signal only. + +```text +run: (paste) +date: +result: pass | fail +notes: +``` diff --git a/docs/versions.md b/docs/versions.md index 3765120..d8ee034 100644 --- a/docs/versions.md +++ b/docs/versions.md @@ -1,6 +1,6 @@ # Verified Defaults -Last updated: **2026-07-13** (branch `feature/los-kernel-source-presets` — naming, auto toolchain, CI Cache section, Wild-style manager version). +Last updated: **2026-07-13** (branch `feature/pa-gr-kernel-source` — pa-gr SM8450 preset). | Component | Repo | Default Ref | Version / Commit | |---|---|---|---| @@ -8,6 +8,7 @@ Last updated: **2026-07-13** (branch `feature/los-kernel-source-presets` — nam | Kernel source (`lineageos`) | `LineageOS/android_kernel_xiaomi_sm8450` | `lineage-23.2` | LOS GKI fragments (`gki_defconfig` + marble vendor configs) | | Kernel source (`evolution-x`) | `Evolution-X-Devices/kernel_xiaomi_sm8450` | `cnb` | LOS-family GKI fragments for Evolution X / custom LOS | | Kernel source (`pablo`) | `aosp-pablo/android_kernel_xiaomi_sm8450` | `16` | LOS-family GKI fragments (Pablo / aosp-pablo) | +| Kernel source (`pa-gr`) | `pa-gr/android_kernel_xiaomi_sm8450` | `vauxite` | LOS-family GKI fragments; default branch may ship in-tree KernelSU | | Android kernel Clang | `https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86` | `master-kernel-build-2021` | commit `6e3223f76384455acde43affde3df0ea9df66c0d`; sparse path `clang-r416183b`, matching `build.config.common` | | LLVM experimental | `https://github.com/llvm/llvm-project/releases/download/llvmorg-22.1.8/LLVM-22.1.8-Linux-X64.tar.xz` | `llvmorg-22.1.8` | SHA-256 `df0e1ecf16caf3489a272a5eea4eec9b0d82878f6477fa309504f918a0006384`; selectable with `toolchain=llvm-22.1.8` | | AnyKernel3 | `osm0sis/AnyKernel3` | commit `dca9dc370838d919d56c1f59ec78b27a14a72c68` | Immutable packaging template | @@ -23,7 +24,7 @@ Last updated: **2026-07-13** (branch `feature/los-kernel-source-presets` — nam The workflow resolves branch, tag, and commit inputs to exact commits at run time and records them in `release/build-info.txt`. For SUSFS, the user chooses `susfs_version=v2.2.0`, `susfs_version=v2.1.0`, or `susfs_version=custom`. Custom mode uses `susfs_ref` and verifies `susfs_expected_version` when provided. -Device targets remain Poco F5 (`marblein`) and Redmi Note 12 Turbo (`marble`). ROM support depends on the selected kernel preset: `melt` is stock HyperOS; `lineageos`, `evolution-x`, and `pablo` are for LOS-based custom ROMs only. +Device targets remain Poco F5 (`marblein`) and Redmi Note 12 Turbo (`marble`). ROM support depends on the selected kernel preset: `melt` is stock HyperOS; `lineageos`, `evolution-x`, `pablo`, and `pa-gr` are for LOS-based custom ROMs only. **ZIP naming (2026-07-13+):** @@ -66,7 +67,7 @@ Workflow input `lto` selects Clang LTO mode for all presets (`none` / `thin` / ` Notes: - **Melt / HyperOS** keeps LTO enabled (default `thin`) with Android `clang-r416183b`. -- **LOS-family** presets (`lineageos`, `evolution-x`, `pablo`) should use `toolchain=llvm-22.1.8` and `lto=thin` on free runners; the workflow enables swap and caps parallelism to reduce OOM risk. +- **LOS-family** presets (`lineageos`, `evolution-x`, `pablo`, `pa-gr`) should use `toolchain=llvm-22.1.8` and `lto=thin` on free runners; the workflow enables swap and caps parallelism to reduce OOM risk. `lto=full` is experimental on free runners (OOM risk). - Ccache: **4 GiB** (Android clang) / **6 GiB** (LLVM 22), content-based compiler checks, multi-level restore-keys (toolchain+LTO → kernel → source → manager). - ThinLTO: separate Actions cache for `~/.cache/thinlto` when `lto=thin` (similar to WildKernels LTO cache bucket). - **Object-cache save:** ccache / ThinLTO save on **failure as well as success** (`always() && !cancelled() && exact miss`). Partial compiles (e.g. fail at 90%) still warm the next run. ZIP/release stay success-only. diff --git a/scripts/package-anykernel.sh b/scripts/package-anykernel.sh index df4d013..9acce49 100644 --- a/scripts/package-anykernel.sh +++ b/scripts/package-anykernel.sh @@ -72,7 +72,7 @@ derive_package_family() { esac case "${kernel_source}" in - lineageos|evolution-x|pablo) echo "LOS" ;; + lineageos|evolution-x|pablo|pa-gr) echo "LOS" ;; *) echo "MELT" ;; esac } diff --git a/scripts/resolve-kernel-source.sh b/scripts/resolve-kernel-source.sh index 0324891..984879f 100644 --- a/scripts/resolve-kernel-source.sh +++ b/scripts/resolve-kernel-source.sh @@ -46,7 +46,7 @@ config_fragments = " ".join(fragments) recommended_toolchain = preset.get("recommended_toolchain") or "" rom_family_norm = (rom_family or "").lower() -if rom_family_norm == "los" or kernel_source in ("lineageos", "evolution-x", "pablo"): +if rom_family_norm == "los" or kernel_source in ("lineageos", "evolution-x", "pablo", "pa-gr"): package_family = "LOS" else: package_family = "MELT" diff --git a/tests/test-kernel-sources.sh b/tests/test-kernel-sources.sh index 005fbee..3068172 100644 --- a/tests/test-kernel-sources.sh +++ b/tests/test-kernel-sources.sh @@ -37,7 +37,8 @@ assert_contains "${out}" "KERNEL_SOURCE_AUTHOR=Melt" for preset_repo in \ "lineageos|LineageOS/android_kernel_xiaomi_sm8450|lineage-23.2|LineageOS" \ "evolution-x|Evolution-X-Devices/kernel_xiaomi_sm8450|cnb|Evolution-X" \ - "pablo|aosp-pablo/android_kernel_xiaomi_sm8450|16|Pablo" + "pablo|aosp-pablo/android_kernel_xiaomi_sm8450|16|Pablo" \ + "pa-gr|pa-gr/android_kernel_xiaomi_sm8450|vauxite|pa-gr" do IFS='|' read -r preset repo ref author <<<"${preset_repo}" out="$( @@ -102,4 +103,11 @@ assert_name \ MANAGER=resukisu ENABLE_SUSFS=false \ manager_build_version_name=v4.1.0 manager_build_version_code=34990 +assert_name \ + 'AK3_marble_LOS_pa-gr_ksunext-v3.2.0-code33203_susfs-v2.2.0_r9.zip' \ + KERNEL_SOURCE=pa-gr ROM_FAMILY=los \ + MANAGER=kernelsu-next ENABLE_SUSFS=true \ + manager_build_version_name='v3.2.0' manager_build_version_code=33203 \ + susfs_reported_version=v2.2.0 + echo "Kernel source preset tests passed" diff --git a/tests/test-known-good-pins.sh b/tests/test-known-good-pins.sh index 197fadc..dfb7940 100644 --- a/tests/test-known-good-pins.sh +++ b/tests/test-known-good-pins.sh @@ -16,6 +16,9 @@ assert "managers" in data assert "sources" in data assert "melt" in data["sources"] assert "lineageos" in data["sources"] +assert "pa-gr" in data["sources"] +assert data["sources"]["pa-gr"]["repo"] == "pa-gr/android_kernel_xiaomi_sm8450" +assert data["sources"]["pa-gr"]["ref"] == "vauxite" print("known-good-pins ok") PY diff --git a/tests/test-workflow-policy.sh b/tests/test-workflow-policy.sh index ad3002c..29d60ba 100644 --- a/tests/test-workflow-policy.sh +++ b/tests/test-workflow-policy.sh @@ -153,7 +153,7 @@ grep -Fq 'kernel_source:' "${matrix}" || { exit 1 } -for preset in melt lineageos evolution-x pablo; do +for preset in melt lineageos evolution-x pablo pa-gr; do grep -Fq -- "- ${preset}" "${matrix}" || { echo "FAIL: matrix workflow missing kernel_source option: ${preset}" >&2 exit 1 From c5434847fd0aa854748f65f5c7e638cf256e5691 Mon Sep 17 00:00:00 2001 From: Mohammad Akil Date: Mon, 13 Jul 2026 10:54:16 +0530 Subject: [PATCH 2/2] feat: pa-gr source-local Clang22 patch; rename pablo to aosp-pablo - Add gated source_patches for pa-gr@vauxite (clidr={0}) under patches/kernel-sources/pa-gr, applied only for that preset+ref - Wire apply-kernel-source-patches.sh after kernel checkout - Rename kernel_source preset pablo -> aosp-pablo (matches GitHub org) - Docs + policy/unit tests for patches and rename --- .github/workflows/build-core.yml | 6 + .github/workflows/build-matrix.yml | 2 +- README.md | 20 +-- config/kernel-sources.json | 20 ++- config/known-good-pins.json | 2 +- docs/ARCHITECTURE.md | 31 ++++- docs/manager-matrix.md | 2 +- docs/versions.md | 6 +- patches/kernel-sources/pa-gr/README.md | 35 +++++ ...001-kvm-arm64-init-clidr-for-clang22.patch | 27 ++++ patches/kernel-sources/pa-gr/vauxite/series | 3 + scripts/apply-kernel-source-patches.sh | 126 ++++++++++++++++++ scripts/package-anykernel.sh | 2 +- scripts/resolve-kernel-source.sh | 2 +- tests/test-kernel-sources.sh | 6 +- tests/test-known-good-pins.sh | 2 + tests/test-source-patches.sh | 92 +++++++++++++ tests/test-workflow-policy.sh | 17 ++- 18 files changed, 368 insertions(+), 33 deletions(-) create mode 100644 patches/kernel-sources/pa-gr/README.md create mode 100644 patches/kernel-sources/pa-gr/vauxite/0001-kvm-arm64-init-clidr-for-clang22.patch create mode 100644 patches/kernel-sources/pa-gr/vauxite/series create mode 100644 scripts/apply-kernel-source-patches.sh create mode 100644 tests/test-source-patches.sh diff --git a/.github/workflows/build-core.yml b/.github/workflows/build-core.yml index 261a6e8..fc92acb 100644 --- a/.github/workflows/build-core.yml +++ b/.github/workflows/build-core.yml @@ -128,6 +128,10 @@ jobs: fetch-depth: 1 persist-credentials: false + # Optional preset-scoped overlays (e.g. pa-gr/vauxite Clang 22). No-op for other sources. + - name: Apply kernel source-local patches + run: bash scripts/apply-kernel-source-patches.sh + - name: Check runner disk space id: disk-space run: | @@ -275,6 +279,8 @@ jobs: source release/resolved-refs.env config_hash="$(sha256sum scripts/build-kernel.sh config/marble.env config/managers.json \ config/susfs-refs.json config/kernel-sources.json scripts/resolve-kernel-source.sh \ + scripts/apply-kernel-source-patches.sh \ + $(find patches/kernel-sources -type f 2>/dev/null | sort || true) \ | sha256sum | cut -d' ' -f1)" toolchain_id="${ACTIVE_TOOLCHAIN_ID:-${TOOLCHAIN}}" lto_mode="${LTO:-thin}" diff --git a/.github/workflows/build-matrix.yml b/.github/workflows/build-matrix.yml index a654655..6536ce0 100644 --- a/.github/workflows/build-matrix.yml +++ b/.github/workflows/build-matrix.yml @@ -47,7 +47,7 @@ on: - melt - lineageos - evolution-x - - pablo + - aosp-pablo - pa-gr source_ref: description: "Override branch/tag/commit (empty = preset default)" diff --git a/README.md b/README.md index 55d0806..6ee31c1 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ | Feature | Description | |--------|-------------| -| 🧬 **Multi-kernel sources** | Dropdown: Melt (HyperOS), LineageOS, Evolution-X, Pablo (LOS-based) | +| 🧬 **Multi-kernel sources** | Dropdown: Melt (HyperOS), LineageOS, Evolution-X, aosp-pablo, pa-gr (LOS-based) | | 🤖 **Multi-manager builds** | KernelSU, KernelSU-Next, SukiSU Ultra, ReSukiSU, or a clean no-root baseline | | 🛡️ **SUSFS integration** | Optional SUSFS (`v2.2.0` / `v2.1.0` / custom) for supported managers | | 🔗 **Selectable LTO** | `none` · `thin` (default) · `full` — free-runner hardened for thin | @@ -89,7 +89,7 @@ Named after the project / author. Pick one in **Build Marble Kernel**: | `melt` | Melt | [`mohdakil2426/android_kernel_xiaomi_marble`](https://github.com/mohdakil2426/android_kernel_xiaomi_marble) | `melt-rebase` | Stock **HyperOS** | | `lineageos` | LineageOS | [`LineageOS/android_kernel_xiaomi_sm8450`](https://github.com/LineageOS/android_kernel_xiaomi_sm8450) | `lineage-23.2` | **LOS-based** custom ROMs only | | `evolution-x` | Evolution-X | [`Evolution-X-Devices/kernel_xiaomi_sm8450`](https://github.com/Evolution-X-Devices/kernel_xiaomi_sm8450) | `cnb` | **LOS-based** custom ROMs only | -| `pablo` | Pablo | [`aosp-pablo/android_kernel_xiaomi_sm8450`](https://github.com/aosp-pablo/android_kernel_xiaomi_sm8450) | `16` | **LOS-based** custom ROMs only | +| `aosp-pablo` | aosp-pablo | [`aosp-pablo/android_kernel_xiaomi_sm8450`](https://github.com/aosp-pablo/android_kernel_xiaomi_sm8450) | `16` | **LOS-based** custom ROMs only | | `pa-gr` | pa-gr | [`pa-gr/android_kernel_xiaomi_sm8450`](https://github.com/pa-gr/android_kernel_xiaomi_sm8450) | `vauxite` | **LOS-based** custom ROMs only | - **HyperOS (`melt`)** uses `marble_defconfig` and Android `clang-r416183b` via `toolchain=auto`. @@ -103,7 +103,7 @@ Named after the project / author. Pick one in **Build Marble Kernel**: | `melt` | `auto` → `android-r416183b` | `thin` | HyperOS-oriented | | `lineageos` | `auto` → `llvm-22.1.8` | `thin` | Required for armv9 | | `evolution-x` | `auto` → `llvm-22.1.8` | `thin` | LOS-family | -| `pablo` | `auto` → `llvm-22.1.8` | `thin` | LOS-family | +| `aosp-pablo` | `auto` → `llvm-22.1.8` | `thin` | LOS-family | | `pa-gr` | `auto` → `llvm-22.1.8` | `thin` | LOS-family; default `vauxite` has in-tree KernelSU — smoke-test manager apply | **Free runners:** avoid many parallel LOS+LLVM jobs; prefer 1–2 heavy builds at a time. Prefer `lto=thin`, not `full`. @@ -119,7 +119,7 @@ AK3_marble___[-version][-codeN][_susfs-vX.Y.Z]_rN.zip | FAMILY | Sources | |--------|---------| | `MELT` | `melt` | -| `LOS` | `lineageos`, `evolution-x`, `pablo`, `pa-gr` | +| `LOS` | `lineageos`, `evolution-x`, `aosp-pablo`, `pa-gr` | LTO and toolchain are **not** in the filename (see flash banner + `build-info.*`). @@ -190,7 +190,7 @@ Do **not** enable SUSFS with `none` or `kernelsu`. ### Quick start — build 1. Open **[Actions → Build Marble Kernel → Run workflow](https://github.com/mohdakil2426/marble-kernel-builder/actions)** -2. Choose **kernel source** (`melt` / `lineageos` / `evolution-x` / `pablo` / `pa-gr`) +2. Choose **kernel source** (`melt` / `lineageos` / `evolution-x` / `aosp-pablo` / `pa-gr`) 3. Select manager checkbox(es) 4. Set **lto** (default `thin`), SUSFS, optional `source_ref`, **toolchain** (LOS → `llvm-22.1.8`), scope 5. Run · download artifacts when green @@ -221,7 +221,7 @@ Do **not** enable SUSFS with `none` or `kernelsu`. | `enable_susfs` | `false` | Enable SUSFS for managers that support it | | `susfs_version` | `v2.2.0` | `v2.2.0` · `v2.1.0` · `custom` | | `susfs_ref` | *(empty)* | Branch/tag/commit — only with `custom` | -| `kernel_source` | `melt` | Dropdown: `melt` · `lineageos` · `evolution-x` · `pablo` · `pa-gr` | +| `kernel_source` | `melt` | Dropdown: `melt` · `lineageos` · `evolution-x` · `aosp-pablo` · `pa-gr` | | `source_ref` | *(empty)* | Optional branch/tag/commit override (preset default if empty) | | `build_scope` | `image-only` | `image-only` or `full` | | `toolchain` | `android-r416183b` | `android-r416183b` (default) or experimental `llvm-22.1.8` | @@ -268,7 +268,7 @@ marble-flash-