# vmos0/kernel-action architecture

> Architecture diagram of the GitHub repository vmos0/kernel-action, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vmos0/kernel-action
- Repository: https://github.com/vmos0/kernel-action

## Overview

This repository provides a reusable GitHub Action for building Android kernels: a workflow author configures inputs, runs the action, and can receive a packaged kernel and optional release. The README documents source and toolchain selection, kernel options and integrations, and packaging choices. The sampled Python utility separately creates and inspects DTBO images; the excerpts do not establish that the action invokes it. Action internals and patch scripts were not sampled, so their detailed wiring is not shown.

Main entry points: [`action.yml`](https://github.com/vmos0/kernel-action/blob/main/action.yml) (Action entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_action["Kernel build action"]
  node_action_entry["Action entry<br/>[action.yml]"]
  node_kernel_source["Kernel source<br/>[action.yml]"]
  node_vendor_source["Vendor source<br/>[action.yml]"]
  node_toolchains["Toolchains<br/>[action.yml]"]
  node_kernel_config["Kernel configuration<br/>[action.yml]"]
  node_kernel_build["Kernel compilation<br/>[action.yml]"]
  node_kernel_features["Kernel features<br/>[action.yml]"]
  node_kernelsu["KernelSU integration<br/>[action.yml]"]
end

subgraph group_artifacts["Kernel artifacts"]
  node_kernel_image["Kernel image<br/>[action.yml]"]
  node_anykernel["AnyKernel3 packaging<br/>[action.yml]"]
  node_boot_image["Boot image input<br/>[action.yml]"]
  node_release["Release publishing<br/>[action.yml]"]
end

subgraph group_utility["DTBO utility"]
  node_dtbo_tool["DTBO image utility<br/>[mkdtboimg.py]"]
end

node_author(("Workflow author"))
node_runner["GitHub Actions"]

node_author -->|"runs workflow"| node_runner
node_runner -->|"invokes action"| node_action_entry
node_action_entry -->|"selects source"| node_kernel_source
node_action_entry -->|"optionally selects"| node_vendor_source
node_action_entry -->|"selects toolchain"| node_toolchains
node_action_entry -->|"sets config"| node_kernel_config
node_action_entry -->|"builds kernel"| node_kernel_build
node_action_entry -->|"configures features"| node_kernel_features
node_action_entry -->|"optionally integrates"| node_kernelsu
node_kernel_build -->|"produces image"| node_kernel_image
node_action_entry -->|"optionally packages"| node_anykernel
node_action_entry -->|"downloads when needed"| node_boot_image
node_action_entry -->|"optionally publishes"| node_release

click node_action_entry "https://github.com/vmos0/kernel-action/blob/main/action.yml"
click node_kernel_source "https://github.com/vmos0/kernel-action/blob/main/action.yml"
click node_vendor_source "https://github.com/vmos0/kernel-action/blob/main/action.yml"
click node_toolchains "https://github.com/vmos0/kernel-action/blob/main/action.yml"
click node_kernel_config "https://github.com/vmos0/kernel-action/blob/main/action.yml"
click node_kernel_build "https://github.com/vmos0/kernel-action/blob/main/action.yml"
click node_kernel_features "https://github.com/vmos0/kernel-action/blob/main/action.yml"
click node_kernelsu "https://github.com/vmos0/kernel-action/blob/main/action.yml"
click node_kernel_image "https://github.com/vmos0/kernel-action/blob/main/action.yml"
click node_anykernel "https://github.com/vmos0/kernel-action/blob/main/action.yml"
click node_boot_image "https://github.com/vmos0/kernel-action/blob/main/action.yml"
click node_release "https://github.com/vmos0/kernel-action/blob/main/action.yml"
click node_dtbo_tool "https://github.com/vmos0/kernel-action/blob/main/mkdtboimg.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_action_entry,node_kernel_source,node_vendor_source,node_toolchains,node_kernel_config,node_kernel_build,node_kernel_features,node_kernelsu toneBlue
class node_kernel_image,node_anykernel,node_boot_image,node_release toneAmber
class node_dtbo_tool toneMint
class node_author,node_runner toneIndigo
```

## Components

### Kernel build action

- [Action entry](https://github.com/vmos0/kernel-action/blob/main/action.yml): `action.yml`
- [Kernel source](https://github.com/vmos0/kernel-action/blob/main/action.yml): `action.yml`
- [Vendor source](https://github.com/vmos0/kernel-action/blob/main/action.yml): `action.yml`
- [Toolchains](https://github.com/vmos0/kernel-action/blob/main/action.yml): `action.yml`
- [Kernel configuration](https://github.com/vmos0/kernel-action/blob/main/action.yml): `action.yml`
- [Kernel compilation](https://github.com/vmos0/kernel-action/blob/main/action.yml): `action.yml`
- [Kernel features](https://github.com/vmos0/kernel-action/blob/main/action.yml): `action.yml`
- [KernelSU integration](https://github.com/vmos0/kernel-action/blob/main/action.yml): `action.yml`

### Kernel artifacts

- [Kernel image](https://github.com/vmos0/kernel-action/blob/main/action.yml): `action.yml`
- [AnyKernel3 packaging](https://github.com/vmos0/kernel-action/blob/main/action.yml): `action.yml`
- [Boot image input](https://github.com/vmos0/kernel-action/blob/main/action.yml): `action.yml`
- [Release publishing](https://github.com/vmos0/kernel-action/blob/main/action.yml): `action.yml`

### DTBO utility

- [DTBO image utility](https://github.com/vmos0/kernel-action/blob/main/mkdtboimg.py): `mkdtboimg.py`

### Other components

- **Workflow author**
- **GitHub Actions**

## Connections

- Workflow author → GitHub Actions: runs workflow (evidence: `README.md`)
- GitHub Actions → Action entry: invokes action (evidence: `README.md`)
- Action entry → Kernel source: selects source (evidence: `README.md`)
- Action entry → Vendor source: optionally selects (evidence: `README.md`)
- Action entry → Toolchains: selects toolchain (evidence: `README.md`)
- Action entry → Kernel configuration: sets config (evidence: `README.md`)
- Action entry → Kernel compilation: builds kernel (evidence: `README.md`)
- Action entry → Kernel features: configures features (evidence: `README.md`)
- Action entry → KernelSU integration: optionally integrates (evidence: `README.md`)
- Kernel compilation → Kernel image: produces image (evidence: `README.md`)
- Action entry → AnyKernel3 packaging: optionally packages (evidence: `README.md`)
- Action entry → Boot image input: downloads when needed (evidence: `README.md`)
- Action entry → Release publishing: optionally publishes (evidence: `README.md`)
