Repository navigation
Releases: HyperRamzey/Eureka-Kernel-R24U
Release list
Eureka Kernel #71 (2026-10-07) - charger-boot fixes, diagnostics removed
Eureka Kernel #71 — 2026-10-07 · Samsung A30s (SM-A307F / SM_A307FN)
Charger-boot fix series with the diagnostic instrumentation removed, and all
merged worktree branches folded into rom-crdroid16.
| Kernel | Linux version 4.4.302-p6-Eureka_rom-crdroid16 … #71 SMP PREEMPT Wed Oct 7 17:44:40 MSK 2026 |
| Source | 2df925e23af4289f27fd140759ae0f1f0769056c on rom-crdroid16 |
| Toolchain | Neutron clang 24.0.0git |
| Target | a30s, exynos7885/7904, Android 16 (crDroid 12.12) |
| Boot image | hdr v3, 33,282,048 B, partition by-name/boot = mmcblk0p15 (37,748,736 B) |
What's in this build
Kept — behavioural fixes:
32018b584c0cs2mpu08 PMIC CP rail programmingf0ed4a9cab22ACPM boot-CPU probe9d7b78a561f1NFCpvdd_endriven unconditionally (the charger-mode NFC fix)- 4 × schedtune fixes
Reverted — diagnostic only, no behaviour:
dae6e547ecd0cal/seq index logging2d907e286829CONFIG_LOG_BUF_SHIFTrestored 22 → 19 (512 KB log buffer)2df925e23af4sec_nfclpcharge/gpio instrumentation
Net effect: same behaviour as the previously verified #63, minus the log noise,
with the log buffer back to the shipped size.
Assets
| File | Size | Notes |
|---|---|---|
Eureka-Kernel-a30s-20261007.zip |
15,374,986 B | AnyKernel3 — flash from recovery, writes boot only |
boot.img |
33,282,048 B | raw Android boot image (kernel + ramdisk + dtb) |
dtb.img |
88,064 B | m dtbimage output → by-name/dtb (mmcblk0p17) |
dtbo.img |
407,552 B | AVB-signed prebuilt → by-name/dtbo (mmcblk0p18) |
Every asset ships with a .sha256 sidecar (sha256sum -c <file>.sha256).
ca9bee1a6c2174e52f6f19b8ca0be4539d67409bd1a093cd093ac0ee3d88e3ef boot.img
c4a95915c6ffaed6e27e723b1e298ab10e14c9fcddc62f38906caf447e5c526f dtb.img
d9db93a95236744390517387634279f8df46962981c2fc4db271fe815a56e8ef dtbo.img
348c9fc1dca7582b7a83d12e02b1128e96428fcaa11d32e558feb730ac076dd4 Eureka-Kernel-a30s-20261007.zip
md5 of boot.img: 627c181146974aca6291090b35634d87
dtb.imganddtbo.imgare unchanged by this build (dtb.imgis
byte-identical to the previous build,dtbo.imgis the AVB-keyed prebuilt).
They are published so the set is complete — flash them only if you have a
reason to.
Install
A. AnyKernel3 (recommended) — from OrangeFox/TWRP:
sha256sum -c Eureka-Kernel-a30s-20261007.zip.sha256
# then Flash the zip. It patches only the boot partition; /data is untouched.
The bundled anykernel.sh targets BLOCK=/dev/block/platform/13500000.dwmmc0/by-name/boot
(resolves to /dev/block/mmcblk0p15 — verified on hardware), IS_SLOT_DEVICE=0,
do.devicecheck=0, device.name1=a30s.
B. Raw dd (root shell):
BLK=/dev/block/by-name/boot # -> /dev/block/mmcblk0p15
grep -c mmcblk0p15 /proc/mounts # MUST print 0
dd if=boot.img of=$BLK bs=4096
head -c 33282048 $BLK | md5sum # must be 627c181146974aca6291090b35634d87
# zero the remainder. NOTE: 33282048 is NOT 4096-aligned (33282048/4096 = 8125.5),
# so seek=ceil(33282048/4096)=8126 would start at 33284096 and leave 2048 stale
# bytes. Use bs=2048, which divides the image size exactly:
# 33282048 = 2048 * 16251 and 37748736 = 2048 * 18432
dd if=/dev/zero of=$BLK bs=2048 seek=16251 count=2181Always keep a copy of your current boot.img before flashing — the partition
is the only thing that matters for recovery, and OrangeFox can restore it.
Verification (this exact build, flashed and booted)
- Build gates:
boot.imgkernel md5 == builtImage(c9ee4971…), all content
gates pass, zero-byte.o= 0, kernel tree clean (0 dirty). - Flash: head readback byte-exact, tail all-zero, rollback image intact.
- On device after reboot:
sys.boot_completed=1, kernel reports#71/rom-crdroid16system_serveralive, CPU time advancing across a 10 s sample- SystemUI present, WiFi enabled, SIM
LOADED, battery 100 % readable - no
system_server_watchdogentry in the 20 min after boot - camera provider stable (pid unchanged across 8 s — no construction crash-loop)
Not part of this verification: the AGC camera application is still WIP and was
not exercised.
kernel #85 — epoll_pwait2 + ftrace
A30s kernel #85. Includes epoll_pwait2 native/compat backport, tracefs/ftrace config, SUSFS fixes.
Eureka Kernel R24U v1.3 — governor/scheduler cleanup + real GPU voltage
Eureka Kernel R24U v1.3
Governor/scheduler cleanup + real GPU voltage reporting.
For all Eureka-supported Exynos7885 devices: Galaxy A10, A20, A20e, A30, A30s, A40, M20, M30s (jackpotlte).
What's new
CPU governors — cleaned set
Kept (exactly): interactive, performance, powersave, schedutil, userspace (stock set) + intelli_active, blu_active, lionheart.
Removed: ondemand, ondemandplus, conservative, smartmax, smartmax_eps, darkness, bioshock.
Default governor: tuned schedutil — rate-limit multiplier 50 → 20 for the overclocked Exynos7885 frequency tables (2.5× faster frequency ramp-up). Switch to intelli_active/blu_active/lionheart anytime via the manager app.
I/O schedulers — zen default
- Internal storage (eMMC): zen default;
bfq,fiops,sioselectable - External SD card: sio default (kernel-side hook at mmc block allocation — automatic, survives remount)
- Removed: noop, deadline, maple, anxiety, cfq
GPU voltage — real values
/sys/devices/platform/11500000.mali/vol was a stub returning 0. Now reports the real ASV voltage for the current GPU clock + voltage margin. The Eureka-Manager GPU page displays live current mV.
KernelSU
rsuntk 648e5988 + clang-24 copy_to_iter const-cast build fix — submodule now points at the HyperRamzey/KernelSU fork (eureka-r24u branch), so fresh clones build out of the box.
Everything from v1.2 preserved
ASV voltage margin sysfs (per-domain runtime margins), baseband guard (CP auto-recovery + crash counters), CIFS (SMB2/SMB3.1.1), full IPset, KernelSU 32473.
Install
Flash in recovery (same AROMA installer as always):
- Select variant (AOSP / OneUI3 / Legacy base)
- Select dtb enforcement mode
- Optional: DM-verity-patched DTBO
Kernel: 4.4.302-p6-Eureka-R24U-KSU_R24U · sha256 checksums in .sha256 sidecars.
Manager app
Eureka-Manager v1.1 — adds Display (mdnie) + FlashLight controls ported from EKManager, AMOLED solid-black default theme, correct °C rendering on the overall screen, live GPU mV.
Eureka Kernel R24U v1.2 — ASV Margin + Baseband Guard
Eureka Kernel R24U — v1.2 (ASV Margin + Baseband Guard)
Same proven recipe as v1.1 (vendor R24U 4.4.302 + rsuntk KernelSU 32473,
original AROMA packaging, Neutron Clang 24, vendor flag style), now with the
two ROADMAP features that needed kernel code:
What's new in v1.2
- ASV voltage margin (ROADMAP §1) — runtime per-domain voltage margins:
/sys/class/asv_margin/{cpucl0,cpucl1,g3d,mif,int}/margin(µV, rw)- 0 = stock ECT table; positive = stability margin; negative = undervolt
(user risk); clamped ±100000 µV;min/maxexposed read-only - Implemented via the existing
cal_dfs_set_volt_margin()→ ACPM
MARGIN_REQpath — the ACPM firmware applies it live to every future
voltage transition. The vendor kernel only used this control at boot
(fvmap early params); no runtime interface existed before. - Device-verified: margin round-trip 0→25000→0 µV on all domains.
- Baseband guard (ROADMAP §2) — CP auto-recovery policy:
- hooks the modem event notifier; if the Shannon CP crashes and does not
reach ONLINE within 45s, replays the RIL recovery sequence
(modem_off → modem_on → boot_on); rate-limited to 3 attempts - sysfs:
/sys/class/baseband_guard/baseband_guard/—enable(default on),
state,crashes,recoveries,last_event,boot_window_ms,
max_attempts,reboot_on_dead(default off) - Device-verified: boots,
cp_state=ONLINE, crash counter caught real
CP events the vendor kernel silently swallowed, zero spurious recoveries.
- hooks the modem event notifier; if the Shannon CP crashes and does not
- Includes everything from v1.1 (CIFS SMB2/3.1.1, full IPset) and the v1.1
packaging fix (original Eureka DTBs via AROMA — see v1.1 notes).
Companion app
Eureka-Manager — kernel
manager with ASV-margin seekbars and a Baseband Guard dashboard (requires
this kernel).
Install
Flash in recovery → Default Installation → AOSP Q/R/S/T/U (New) →
SELinux Enforcing → DM-verity Yes → reboot.
Manager pairing
rsuntk RKSU manager ≥ v3.2.2-10-legacy (unchanged).
Per-device
| Device | Codename | DTBO | v1.2 Image |
|---|---|---|---|
| Galaxy A10 | a10 | patched | 28,458,096 B |
| Galaxy A20 | a20 | patched | 29,097,448 B |
| Galaxy A20e | a20e | patched | 28,722,792 B |
| Galaxy A30 | a30 | patched | 29,443,944 B |
| Galaxy A30s | a30s | patched | user-verified boot + ASV + guard |
| Galaxy A40 | a40 | patched | 29,796,840 B |
| Galaxy M20 | m20 | original (no device dtbo) | 18,145,864 B |
| Galaxy M30s | jackpotlte | original (no device dtbo) | 22,293,960 B |
uname -r: 4.4.302-p6-Eureka-R24U-KSU_R24U (uniform, all 8)
ASV margin quick start
# +25 mV on the BIG cluster:
echo 25000 > /sys/class/asv_margin/cpucl0/margin
# back to stock:
echo 0 > /sys/class/asv_margin/cpucl0/margin
Negative values undervolt. Instability = your sign to go back toward 0.
Sources: R24U branch @ 8724e15af (asv_margin + baseband_guard commits).
Eureka Kernel R24U v1.1 — CIFS + IPset (AROMA)
Eureka Kernel R24U — v1.1 (CIFS + IPset, AROMA)
Kernel for Exynos7885 Samsung devices, based on the pristine vendor R24U 4.4.302
tree + rsuntk KernelSU 32473, packaged in the original AROMA installer
(the packaging style of the device-verified builds).
What's new in v1.1
- CIFS enabled (SMB2 + SMB3.1.1, XATTR, POSIX) — mount Windows/Samba shares
natively. Verified on-device:/proc/fs/cifsactive, CIFS Version 2.08. - Full IPset enabled (all 15 set types +
setmatch /SETtarget for
iptables). Verified on-device: set create/add/list/destroy over kernel
protocol 6 with ipset v7.24. - Original AROMA packaging restored — v1's plain AK3 zips flashed a
kernel-tree-built DTB that does not boot these devices (root cause of the
v1 boot failures, see below). v1.1 ships the same AROMA structure as the
original Eureka release: the menu flashes the original Eureka DTBs +
DM-verity-patched DTBO + the new kernel. - Missing vendor-tree fix actually committed (dsim dev_get_drvdata — was only
in the build working tree before). tools_eureka/build_device.shfixed (defconfig filename + stale
CIP-era LOCALVERSION) — now reproduces this release per-device.
Root cause of v1's boot failures (why v1.1 uses AROMA)
The v1 zips were single-layer AnyKernel3 that flashed the DTB built from the
kernel tree (dtb.img, sha 1b8609b2…). The device-verified builds (H2 and
the original Eureka release) flash the original Eureka DTBs
(52d5d478… enf / bbed7f94… perm) — different content. Flashing the
tree-built DTB hangs at the boot logo on these devices. v1 has been deleted;
use v1.1.
Install
- Flash the zip for your device in recovery.
- Menu: Default Installation
- Variant: AOSP Q/R/S/T/U (New) — this choice installs OUR kernel
(rsuntk KSU 32473 + CIFS + IPset). The OneUI3/Legacy choices flash the
original untouched Eureka kernels for users of those ROM types. - SELinux: Enforcing (Permissive also available)
- DM-verity patch: Yes (recommended)
- Reboot.
Manager pairing (unchanged from v1)
This kernel embeds rsuntk KernelSU 32473 — pair it with the
rsuntk RKSU manager ≥ v3.2.2-10-legacy (not tiann, not KernelSU-Next).
Per-device notes
| Device | Codename | DTBO |
|---|---|---|
| Galaxy A10 | a10 | DM-verity-patched (device-specific) |
| Galaxy A20 | a20 | DM-verity-patched |
| Galaxy A20e | a20e | DM-verity-patched |
| Galaxy A30 | a30 | DM-verity-patched |
| Galaxy A30s | a30s | DM-verity-patched (device-verified boot + CIFS + IPset + KSU) |
| Galaxy A40 | a40 | DM-verity-patched |
| Galaxy M20 | m20 | original (no device dtbo in tree; dtbo menu option is a no-op) |
| Galaxy M30s (jackpotlte) | jackpotlte | original (same as m20) |
Kernel
uname -r: 4.4.302-p6-Eureka-R24U-KSU_R24U (uniform across all 8 devices)
Built with Neutron Clang 24 in vendor flag style (no LLVM=1), full/ defconfigs.
Verify after install (optional)
adb shell "su -c 'cat /proc/fs/cifs/DebugData'" # CIFS version line
adb shell "su -c 'iptables -m set -h'" # set match registered
Sources: R24U branch of this repository (tip 0ac0bcfb8).