live

PolyQon.

All-Android tweaks — our own open theming engine. Works on every Android 9+ device; the full One UI theming suite unlocks on Samsung. Open source. No account. in progress

PolyQon

Free, open-source Samsung One UI theming — built from the ground up.

> 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).

// new in 0.3

Animations are here.

App and system animation presets, the One UI unlock-transition toggle, and a systemless boot animation changer for standard bootanimation.zip and Samsung .qmg packs.

Where things are at

Working & live-verified

In progress

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 account, no login. 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

We believe theming should be open, documented, and free. PolyQon is our own implementation: the technique is written down, the source is free, and anyone can fork it. No account, no lock-in, no hidden steps.

Built in the open

PolyQon is our own codebase. We studied the public behaviour of earlier Samsung theming tools, then wrote our own implementation and documented the technique. The full lineage, credits, and links to related projects live on the credits page.

The modern Material You / dynamic-colour work is informed by public research from the Android theming community. We credit those projects and link their source where applicable.

The Samsung theme feature map (reverse-engineered, ready to port)

Studied six public Samsung theme plugins (ayOS, Asylum, Dolian, Helling, terpsichora_, Spark) to build a complete feature taxonomy. These surfaces appear across modern Samsung themes:

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 the broader Samsung theme 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 theme-package 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 classic theme-package 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

  1. ✅ Theme-system map (live device).
  2. ✅ Colour engine (Oklab) + hex-patch core.
  3. ✅ Device bridge + CLI (probe / scheme / ramp / apply / patch / recolor / tweaks).
  4. ✅ Arbitrary accent colour (apply --accent).
  5. ✅ SemWT overlay format decoded (.frro fabricated overlays) + byte-perfect codec (frro.py).
  6. ✅ Full recolour works (recolor --seed) — two fabricated overlays (framework + SystemUI), including Samsung's sesl_* accent system. Live-verified: pink → blue, no reboot.
  7. ✅ Android app (com.polyqon.app) — recolour + gradients + tweaks hub, One UI polish.
  8. ✅ Xposed module (com.polyqon.xposed) — clock, lockscreen clock, battery, QS columns, transparency. Live on One UI 7 + 8.5.
  9. ⏳ Port the full Samsung theme feature map (backgrounds, fonts, controls, dialpad, keyboard, navbar).
  10. ⏳ Publish on GitHub.

Repo

Coming to GitHub soon — same home as orbit. Watch this space.