android 8.0+ · no root

Your phone.
Your rules.

Rename apps, replace icons, and change real system settings with actual Android APIs. Chameleon talks to the framework directly instead of pretending a switch works.

—MB download
—published
3 dayskey lifetime
+7extendable days

What it actually does

Every control below writes to a real system setting or calls a real framework service.

✏️

Rename anything

Give an app a new name and pin it as a launcher shortcut. Works with every app that has a launcher entry.

🎨

Replace icons

Seventeen built-in vector icons, applied as pinned shortcuts with custom labels.

🎚️

Animation speed

Writes all three real animation scales — window, transition and animator — at once.

☀️

Brightness & timeout

Manual brightness, auto-brightness off, and a screen timeout you can cycle through.

🔔

Ringer mode

Silent, vibrate or normal — straight through AudioManager.

🌗

Night light

Toggles the display tint and colour temperature on devices that support it.

📱

Lock screen buttons

Builds signed shortcuts and asks your launcher to place them where it supports it.

⚡

Quick Settings tile

A real tile in the shade. One tap flips the system dark theme for every app that follows it.

📶

Device state

Wi-Fi, Bluetooth, battery saver, USB debugging and private DNS read live, honestly labelled.

💾

Backup & revoke

Export your settings, or revoke this device's key and start clean.

Updates, your call

Normal updates

The "check for updates" button reads latest.json, and if something newer exists it offers you the download. You decide. Nothing installs behind your back.

Mandatory updates

latest.json also carries a min_version. If a release turns out to be broken, raising that number locks the app until it's updated — with an explanation, not a silent brick.

Offline behaviour

If the manifest can't be reached, the gate fails open. A network problem never blocks you out of your own phone.

Honest refusals

Some settings need privileged permissions Android won't hand out. Chameleon says "not permitted" instead of flipping a switch that does nothing.

If Android says "invalid package"

That error is the installer refusing the file before it ever runs. In order of how often it's actually one of these:

1. The download is truncated

An interrupted download leaves a partial file that no longer parses. Delete it, reconnect, download again. On mobile, check Files → Downloads for a .crdownload leftover.

2. It's an HTML page named .apk

If the link 404'd, the browser saved the error page instead. A real APK starts with the bytes 50 4B 03 04 ("PK") — a web page starts with <!DOCTYPE.

3. Play Protect blocked it

Google flags unfamiliar sideloaded apps. Tap More details → Install anyway. This is expected for any app not from the Play Store.

4. Signature mismatch

Only if an older Chameleon was installed from a different signing key. Fix: uninstall it first. Nothing else is lost — your key is bound to the device ID, not the install.

Verify what you got

The SHA-256 of every release is published in the release notes. Compare it before installing if anything looks off.

Still stuck?

Install from the file itself, not from a chat app or downloader — those sometimes re-compress the APK and break the signature.

Chameleon2d 14h
Customizetweaks
Customizeicons
QWE RTY UIO

How the key works

No server-side accounts, no sign-up. Your device proves its own key.

1 — you subscribe

Tap the button in the app, land on the site, subscribe. That's it.

2 — link token

The app hands the page a sig-issuedAt token. It expires in 30 minutes, so a pasted link can't be reused forever.

3 — worker signs it

The Worker checks the signature against your device id and only then returns your key.

4 — you paste it

The app verifies the same signature locally and stores it with a three-day expiry.

1

Download the APK and allow installs from your browser.

2

Open Chameleon — it asks for a key on first launch.

3

Subscribe, grab the key, paste it back. Time starts counting.

Questions, answered

Does it need root?

No. It uses documented Android APIs — ShortcutManager for renames and icons, Settings.Global and Settings.System for system values, AudioManager for sound. The only permission it asks for beyond that is write-access to settings, which you grant yourself.

Can I rename an app's real icon?

No, and any app claiming otherwise is lying. Android doesn't let one app repaint another's icon. Chameleon creates a launcher shortcut with your label and icon instead — which looks identical in every launcher that honours pins.

What happens when the key expires?

The key is deleted from storage automatically and the app returns to the key screen. Subscribing again gives you a fresh three days.

How do the extensions work?

Settings has an "extend +1 day" button. Seven of them, so a key can live up to ten days. Extensions reset with a new key.

Can someone reuse my key?

No. The key is derived from your device's ANDROID_ID. Paste it on another phone and it won't validate.

Is anything sent to a server?

Your device id and link token go to the Worker when you ask for a key. That's it. Your settings never leave the phone, and update checks are plain GitHub API reads.

What's new

v1.3.2
  • Launcher icon redrawn — real chameleon silhouette with a spiral tail, generated at every density
  • Added PNG launcher fallbacks, so launchers that ignore adaptive icons stop showing a stale mark
  • Proper monochrome layer for themed icons on Android 13+ (no more featureless blob)
  • Removed an adaptive icon that was sitting in a pre-API-26 bucket where it couldn't parse
  • APK now signed with Signature Scheme v3 as well as v2
  • New install-troubleshooting section covering the "invalid package" error
v1.3.1
  • Fixed the crashes on Tweaks — system writes now fail gracefully instead of throwing SecurityException
  • Fixed the crash on Lock screen when a launcher refuses to pin
  • New Quick Settings tile that actually flips the system dark theme
  • Mandatory-update gate driven by min_version in latest.json
  • Private DNS is now a real cycle: off → Google → Cloudflare
v1.3.0
  • New adaptive app icon — chameleon mark with monochrome support
  • New Tweaks screen: brightness, timeout, ringer, volumes, night light, rotation, animations
  • Lock screen buttons via real ShortcutManager pins
  • Signed link tokens, 30-minute expiry, enforced by the Worker
  • Redesigned interface: dark cards, grey and white buttons, styled toasts
v1.2.1
  • Key extension system, +1 day ×7
  • In-app auto-updater with download and install
v1.0.0
  • First build: renames, icons, device-bound keys