github Bingblop/ADB-Root-Toolbox v7.22.0
ADB Application Manager Pro v7.22.0

latest release: v7.22.1
6 days ago

A feature release on top of v7.21.0, cut from main, for the owner's request of 2026-10-30 that the Monet colours written with Super User be the ones ColorBlendr makes, on one screen with one Apply. Package, signing certificate, APK file names and permissions are unchanged, so it installs over every earlier version. Nothing in it has been run on a phone yet: the colour maths were checked in a Node test against ColorBlendr's behaviour as read in its source, the page in a headless browser with a mock phone, the overlay rules by the Java suite.

  • ColorBlendr-identical palettes. The colours the RRO/Monet Customization tab writes with Super User are now computed exactly as ColorBlendr computes them: the same revision of Google's Material Color Utilities, the same per-palette saturation and lightness tuning with its gamut clipping, the same list of colours in the same order (the 13 shades of the six palettes, the role colours for light and for dark, the 12 fixed colours, Android's own SystemUI colours from Android 15, the surface effects on Android 17) and the same Pure black and text rules. The colour you pick is taken as it is (no grey-to-Google-blue swap, no minimum strength), the contrast is the one you choose, and the default spec is 2021, as in ColorBlendr. Why the old colours looked darker: the engine before followed the phone's own Android release (its copy of Google's library, so the 2026 spec on Android 17, the phone's contrast setting, the grey-seed remap and this app's own Intensity, accent and Accurate shades formulas), which gave darker, more muted colours than ColorBlendr for the same choices. The new engine (MonetPlan.cb in assets/monet.js) is this app's own code; ColorBlendr was the behavioural reference only, and the SystemUI custom colours are ported from AOSP (Apache-2.0) with a provenance comment.
  • Two new controls. Contrast (Standard, Medium, High): the level the scheme is computed at, a choice of its own rather than the phone's accessibility setting. Tint text color (on by default): off makes the text on backgrounds and surfaces plain white in dark mode and plain black in light mode instead of a tint of your colour. Color spec keeps 2021 / 2025 / 2026 with 2021 as the default; CMF needs 2026 and the style says so while another spec is chosen.
  • One screen, one Apply. The Theme half is one flow: Colors in use (with uid 0 a preview of exactly what Apply writes, with the source colour it takes), Color with the Secondary and tertiary accents, all ten styles in one grid, Color spec, Contrast, Intensity, the switches Accurate shades, Pure black and Tint text color under Shades and text, How this works (folded) and Back up and restore, with a bar at the bottom that holds the only Apply theme and Reset (called Default before). Every root-only control is a locked row without uid 0, greyed like the Root Features rows, with the lock glyph in its name, the Locked button and the reason: Needs Super User (uid 0) to write Material You colors, or, with Shizuku running as the system user, Shizuku runs as the system user (uid 1000); writing these colors needs uid 0. Apply takes every choice at the moment of the tap; Undo puts the theme and the overlay back as they were. Backups are format 2 (every choice of the screen); format 1 files from v7.18.1 to v7.21 are still read.
  • Uninstall an overlay by press and hold. For the owner's request that RROs can be uninstalled with Super User, or Shizuku as root (uid 0) or the system user (uid 1000): in the Overlays half a press and hold on a row that is Off now asks to uninstall it (a hold on a row that is On still switches it off; the switch and the detail sheet still turn a row on, so nothing is lost), and the detail sheet of an Off row has a red Uninstall button, greyed and locked with the lock glyph without that privilege, where the hold only says why. The app first copies the overlay's APK files (the base APK and any splits) to a folder named after the package under Download/ADB App Manager/Overlays and checks every copy is there (no copy, no uninstall), then runs pm uninstall for the phone's current user (the one the list is read for) and believes only what it reads back: pm path must print nothing and the overlay list must no longer have it; a Success that leaves the package in place is a failure, a cut-off read-back is reported as unknown and the list is read again. Refused with the reason: an overlay on a read-only partition (switch it off instead), a name this app fabricated (a colon in it: switching it off is all there is), a name that is not installed as a package, and ADB, Wireless Debugging or Shizuku as the shell. There is no Undo bar; the saved APKs install again from the Installer tab (choose all of them together), or with adb after pulling the folder to the computer. Before anything is copied or removed, the app reads the overlay list again and refuses a name that is not a switched-off overlay; the copy counts only when it matches the APK byte for byte (an older file of that name is never taken for it), and a copy the shell had to write below the storage mount is handed to the media layer so the Installer tab and a file manager see it. The in-tab note and the Press and hold guide say the new rule; the guide has an Uninstalling an overlay section with the risks and the way back.
  • The write path. An overlay entry may carry the night configuration, so the 12 fixed colours and the device default accent are written as day/night pairs from Android 14 (config="night" in the fabricate XML, which Android's overlay shell command reads; Android 12 and 13 get the current mode's colour); every android:color/* name is allowed, a plan may hold 512 entries, a resource may appear once per configuration, read-back lookups never pick a night entry, and only names the phone's framework has are sent (a per-version table for Android 14 to 17, built from AOSP's colour files and shipped as a test fixture).
  • Root Features: the Monet row is Monet theme — ColorBlendr palettes ("Color spec, contrast, intensity, accents, Pure black, Tint text color. Written with Super User.").
  • Tests and guide: tests/monet/cb.test.js (136 checks on the tuning, the token list, the rules, the writers and the framework table), OverlayRulesTest extended for the configuration, the widened names, the cap and the lookups, UI scripts t564–t574 and t604 rewritten for the one screen, t615 (the merged screen, locked rows at uid 1000 and at the shell) and t616 (Tint text color and Contrast reach the plan; a night entry for system_primary_fixed) new. t617 (the hold on an Off row asks, the prompt, the busy row, the success with the saved copy, the fabricated id, a pm refusal, the locked button and toast at the shell, the gate closing under a request) new, and OverlayRulesTest extended again for the uninstall rules: the fabricated-id refusal, pm path parsing and the firmware partitions, the backup script, judgeUninstall (a Success that leaves the package is not ok), and the whole flow against a fake pm in a real sh. The guide's RRO/Monet sections are rewritten for the one screen. Every new text in all 14 languages.

Don't miss a new ADB-Root-Toolbox release

NewReleases is sending notifications on new releases.