Rename apps, replace icons and change real system settings using actual Android APIs. When the system refuses a write, Chameleon says so instead of flipping a switch that quietly does nothing.
Every control writes to a real system setting or calls a real framework service.
New app labels, applied as pinned launcher shortcuts. Works with every app that has a launcher entry.
A built-in vector icon set applied the same way, with your own label.
Dark theme and motion, both one tap from the notification shade. The dark tile flips the real system switch on Android 12 and up.
All three animation scales, plus a peak refresh rate lock. Zero makes the whole phone feel faster.
Cycle the system font size without digging through display settings.
Manual brightness, auto-brightness off, and a screen timeout you can cycle through.
Ringer mode plus media and ring volume, straight through AudioManager.
Display tint and colour temperature, on devices that expose them.
Pinned shortcuts via ShortcutManager. Android gives no API to draw on the lock screen itself, so this is what genuinely exists.
Jump straight to an app's notification, language or info screen instead of hunting through Settings.
Wi-Fi, Bluetooth, battery saver, USB debugging and private DNS, read live and labelled honestly.
Your key, the exact expiry, extensions left, permissions and what is installed. Every row read from a real API.
One key, made fresh each time, tied to your phone.
The app hands you off to YouTube and remembers that you left. Come back, and it notices.
On your return the app mints a key instantly. No copying, no browser, and it works offline.
The key carries a nonce, so a renewal is a genuinely different key rather than the same thirteen characters handed back again.
It is derived from your device id, so it will not validate on another handset and cannot be shared.
Every key lasts three days and can be extended by a day, seven times over.
Only the channel trip is genuinely checked. YouTube exposes no subscription state to any app, so nothing here claims to verify one.
The button reads latest.json and offers you the download if something newer exists. Nothing installs behind your back.
latest.json also carries a min_version. Raising it locks the app until it is updated, with an explanation rather than a silent brick.
If the manifest cannot be reached the gate fails open. A network problem never locks you out of your own phone.
Some settings need privileged permissions Android will not hand out. Chameleon says "not permitted" instead of pretending.
An interrupted download leaves a partial file that no longer parses. Delete it and download again; look for a leftover .crdownload.
A real APK starts with the bytes 50 4B 03 04 ("PK"). A web page starts with <!DOCTYPE.
Google flags unfamiliar sideloaded apps. Tap More details then Install anyway.
Only if an older Chameleon came from a different key. Uninstall first. Your key is bound to the device id, not the install.
Every release publishes the SHA-256 of the asset in its notes.
Install from the file itself rather than a chat app or downloader — those sometimes re-compress the APK and break the signature.
Download the APK and allow installs from your browser.
Open Chameleon. It asks for a key on first launch.
Come back from the channel and take your key. The clock starts.
No. It uses documented Android APIs: ShortcutManager for renames and icons, Settings.Global and Settings.System for values, AudioManager for sound, UiModeManager for the theme on Android 12 and up.
No, and any app saying otherwise is lying. Android does not let one app repaint another's icon. Chameleon creates a launcher shortcut with your label and icon, which looks identical in every launcher that honours pins.
Because PackageManager.setHibernated is hidden from the public SDK, so no app is allowed to call it. Rather than ship a switch that silently does nothing, the button opens the real system screen where the change can actually be made.
It is deleted from storage and the key screen returns. Visiting the channel again gives you a fresh three days.
Settings has an "extend +1 day" button, seven times, so a key can reach ten days. A new key resets the counter.
No. It is derived from your device id and will not validate on another phone. The nonce inside it only makes each one different, it does not weaken that.
Your device id and the signed link token, when you ask for a key. Plus a check-in that counts installs for the stats page. Nothing else. Your settings never leave the phone.
The short answers, including the ones where Android says no.
No. ShortcutManager for renames and icons, Settings.Global and Settings.System for values, AudioManager for sound, UiModeManager for the theme on Android 12 and up.
No, and any app saying otherwise is lying. Android does not let one app repaint another's icon. Chameleon creates a launcher shortcut with your label and icon, which looks identical in every launcher that honours pins.
Because it is hidden from the public SDK, so no app may call it. Rather than ship a switch that silently does nothing, the button opens the real system screen.
We do not. YouTube offers no way for any app to confirm that, and finding out would mean reading your Google account. What is checked is that you left for the channel and came back.
No. It is derived from your device id and will not validate elsewhere. Worth knowing: the nonce is chosen on your device, so this is a weaker guarantee than a server-held key would be.