PolyQon.
Free Samsung One UI theming — the Hex Installer successor. Open source. No paywall. in progress
PolyQon
Free, open-source Samsung One UI theming — the Hex Installer + Iconify successor.
> Status: LIVE ON DEVICE — PolyQon is now a full three-part stack, all tested on rooted
> Fold 6s (One UI 8.5 + One UI 7):
>
> 1. CLI (polyqon) — recolours the whole phone via cmd overlay fabricate (Material You +
> Samsung sesl_* accent), plus tweaks + Good Lock detection.
> 2. App (com.polyqon.app) — a native One UI-style Android app with a Tweaks hub that drives
> everything (recolour, gradients, harmony explorer, contrast meter, tweaks).
> 3. Xposed module (com.polyqon.xposed) — deep hooks for the stuff overlays can't reach
> (status-bar clock position/colour/size, lockscreen clock, battery, QS columns, transparency).
Where things are at
Working & live-verified
-
Recolour — arbitrary accent colour, two fabricated overlays (framework + SystemUI),
121 source-verified Samsung
sesl_*/qs_*/qp_*warm slots. No reboot needed. - Colour engine — self-contained Oklab (ARGB↔Oklab round-trips exactly), tonal palettes, hue rotation, Material-You schemes from one seed.
-
CLI — 17 commands:
probe,apply,scheme,ramp,recolor,patch,tweaks, Good Lock detection, 9 Material You variants. - Android app — full recolour + gradients + harmony explorer + contrast meter + phone preview + history + variants, One UI polish (squircles, translucent blur panels, safe-area spacing).
-
Xposed module — fires clean on One UI 7: status-bar clock (position/colour/size/hide/12h-24h),
lockscreen clock, battery hide, QS columns, transparency. Hooks both One UI 7
(
PhoneStatusBarClockManager) and One UI 8.5 (PhoneStatusBarViewController) class paths.
In progress
- Porting the full Hex Installer feature map into the Xposed module + app (see below).
-
dimen/booloverlay tweaks —cmd overlay fabricateis colour-only; these need the Xposed module (done) or a platform-key RRO APK.
What it is
PolyQon recolours your Samsung Galaxy two ways: the modern Material You / dynamic-colour route via
One UI's own theming levers, and the classic hex-patch route that patches a theme package's colour
values directly. Free, open source, GPL-3.0. No paywall, no login, no .rtc-style DRM. The Q is
for q6q — the Fold 6's board codename.
$ polyqon --adb adb probe # read the live theming levers (read-only)
$ polyqon apply --accent "#2D00FF" # recolour the whole phone (arbitrary colour!)
$ polyqon scheme "#6750A4" # one seed -> a full Material-You style scheme
$ polyqon ramp "#3B82F6" --tones 20,50,80
$ polyqon patch --apk theme.apk --palette palettes/example.json
Why it exists
The Samsung modding scene is drowning in closed-source tools that wrap free techniques in paywalls. Hex Installer — the thing everyone remembers — was exactly that. PolyQon rebuilds it in the open: the technique is documented, the source is free, and anyone can fork it.
Credit & lineage
PolyQon stands on the shoulders of Hex Installer (the Hex_ themes by Projekt Development) —
the tool that pioneered hex-patching Samsung theme packages for system-wide recolouring. It was a
brilliant idea; it was also closed-source and eventually left behind.
PolyQon is the open-source successor. Same technique, rebuilt from scratch, free forever. We're not cloning it — we're finishing what it started, in the open, so the next person doesn't hit a paywall to recolour their own phone.
The modern Material You / dynamic-colour half stands on ColorBlendr (by Mahmud0808) —
the free tool that proved the theme_customization_overlay_packages lever could be driven from
cmd overlay fabricate. PolyQon carries that idea to Samsung's sesl_* accent system, and the
Xposed half is source-verified against Iconify (Mahmud0808, GPL-3.0).
The Hex feature map (reverse-engineered, ready to port)
Decoded the Hex Installer app + six third-party Hex plugins (ayOS, Asylum, Dolian, Helling, terpsichora_, Spark) to build a complete feature taxonomy. Hex themes across these surfaces:
| Category | What it themes |
|---|---|
BACKGROUND
|
wallpaper / app backgrounds |
BOX
|
card & panel boxes |
CONTROL
|
toggles, checkboxes, radio buttons |
DIALPAD
|
phone keypad |
ICONS
|
QS + settings icons |
KEYBOARD
|
keyboard keys |
NAVBAR
|
navigation bar |
QS
|
quick-settings panel |
SETTINGSICON
|
settings app icons |
STATUSBAR
|
status bar |
HOME
|
launcher / home screen |
MISC
|
everything else |
Plus Hex's non-colour feature set: coloring (16 slots — accent, background, box stroke, bubble, notification bg/header/sub-text, transparency, gradient toggles), fonts (up to 10 custom), backgrounds (home/lockscreen, day & night), app icons, and preferences/tweaks (navbar height, hide battery icon, hide multi-SIM panel, QS rows/columns, tile mask, icon cache remover). All of this is being carried into PolyQon — colours via overlays, the rest via the Xposed module.
The research (done, live device)
Mapped the real theme system on a rooted One UI 8.5 Fold 6. Key finding: the "Color palette" picker
writes the standard Android Material You key secure.theme_customization_overlay_packages — a
JSON whose system_palette / accent_color hold an arbitrary ffRRGGBB colour (Samsung's
legacy cmf_color_code doesn't move). That means PolyQon can set any colour, not a preset list.
json
{
"android.theme.customization.color_index": "0",
"android.theme.customization.system_palette": "ff2d00ff",
"android.theme.customization.accent_color": "ff2d00ff",
"android.theme.customization.color_source": "preset",
"android.theme.customization.theme_style": "TONAL_SPOT"
}
Plus the other writable levers: `wallpapertheme_color` ramps, `navigationbar_color`, QS text
colours, and `colortheme_app_icon` (tint icons). The classic hex target (a theme APK's
`resources.arsc`) lives in `/data/overlays/main_packages/` + `jsonfiles/`.
## The core engine (working, tested)
A self-contained **Oklab** colour engine (no dependencies) — ARGB ↔ Oklab round-trips exactly, and
generates tonal palettes, hue rotation, and Material-You-style schemes from a single seed. Plus the
**hex-patch** core (the Hex Installer technique) and a **device bridge** that reads/writes the One UI
levers over adb:
```python```
def patch_colors(data: bytes, mapping: dict[str, str]) -> tuple[bytes, int]:
out = bytearray(data)
replaced = 0
for old_hex, new_hex in mapping.items():
old = struct.pack("<I", color_to_argb(old_hex)) # BB GG RR AA
new = struct.pack("<I", color_to_argb(new_hex))
n = out.count(old)
if n:
out = out.replace(old, new)
replaced += n
return bytes(out), replaced
Roadmap
- ✅ Theme-system map (live device).
- ✅ Colour engine (Oklab) + hex-patch core.
-
✅ Device bridge + CLI (
probe/scheme/ramp/apply/patch/recolor/tweaks). -
✅ Arbitrary accent colour (
apply --accent). -
✅ SemWT overlay format decoded (
.frrofabricated overlays) + byte-perfect codec (frro.py). -
✅ Full recolour works (
recolor --seed) — two fabricated overlays (framework + SystemUI), including Samsung'ssesl_*accent system. Live-verified: pink → blue, no reboot. -
✅ Android app (
com.polyqon.app) — recolour + gradients + tweaks hub, One UI polish. -
✅ Xposed module (
com.polyqon.xposed) — clock, lockscreen clock, battery, QS columns, transparency. Live on One UI 7 + 8.5. - ⏳ Port the full Hex feature map (backgrounds, fonts, controls, dialpad, keyboard, navbar).
- ⏳ Publish on GitHub.
Repo
Coming to GitHub soon — same home as orbit. Watch this space.