Skip to content

ADB Application Manager Pro v4.7

Choose a tag to compare

@github-actions github-actions released this 02 Oct 00:32
5cba21f

Installs over v3.1 – v4.6 without uninstalling (same signing key).

  • ✨ What's new: the changelog is bundled in the app. After an update it opens once with the changes
    since the version you last ran; Color & Themes → About has the button, version and links.
  • 👁️ Watch a profile: in 🗂️ Profiles, tap 👁️ Watch on one profile. When apps no longer match it
    (typically after a system update brings them back) a banner on the Applications tab says how many and
    opens the same reviewed Apply step. After a reboot with a new system build, a notification reminds you (Android 13+
    asks for notification permission the first time you watch a profile). Nothing is changed without your
    confirmation.
  • Quick Settings tiles and a home-screen widget (they run without opening the app):
    • Working mode tile / 🔄 Mode widget button: switches to the next mode that is ready
      (ADB TCP → Wireless Debugging → Shizuku → Root), or back to Automatic.
    • Stop apps tile / 🛑 Stop apps widget button: force-stops every app in your quick list.
      Choose it with 🛑 Quick list on a card in Saved Lists.
  • 🗄️ Backup and restore: 💾 Backup in the app menu (and 🗄️ Backups on the Applications tab).
    A backup is one .adbbackup file in Download/ADB App Manager/Backups/ holding the APK (with splits),
    granted permissions and changed app ops. With Root it can also hold the app's data. Restore
    installs the APK through ADB, Shizuku or Root, re-applies permissions and app ops, and with Root puts the
    data back. You can Share a backup or Choose a backup file from another phone. Data restore
    refuses archives that would write outside the app's own folders.
    Without Root, private app data cannot be read on current Android, so backups are APK + settings only.
  • Profiles are applied properly: a profile now remembers disabled and suspended separately, and applying
    works out the steps per app (bring back, re-enable, unsuspend, disable, suspend, uninstall), so an app that
    is in a different state than the profile wants is changed instead of being counted as matching. Undo of a
    profile run unwinds the steps newest first. Saving profiles that the app cannot keep (too large) now says so.
  • Extracting or sharing an APK handles one request at a time, so a second tap cannot mix up the results; the
    share sheet gets each file from its own private folder.
  • A full pass through every source file (not just this release's changes), backed by Copilot review plus an
    independent full-file audit:
    • Restore no longer trusts a picked backup file's own claims. backup.json can come from "Choose
      backup file…" and is untrusted by design; restoring used to take its stated package, version and signing
      key at face value, including on the path that brings a removed system app back. Everything now comes
      from the extracted APK itself, both for an app currently installed and for a system app only present on
      the system image.
    • A backup now correctly names the base APK base.apk regardless of its real on-disk name, so backing up
      a system app (whose source file is rarely actually called that) can be restored at all.
    • Restoring data now refuses archives containing FIFO or device-node entries, not just hard links and
      outward-pointing symlinks; an app-op explicitly set to Allow is backed up and restored instead of being
      treated as "nothing to restore"; skipping a backup's data when you didn't ask for it no longer
      decompresses that data anyway.
    • Quick list entries are validated before they can reach a shell command. The list editor accepts any
      text, and the new Stop-apps tile runs each entry with no per-entry review; a crafted entry could have run
      an arbitrary privileged command on a single tap. Every package name is now checked before anything is
      built from it.
    • Deleting a watched profile clears the setting the reboot notification reads; that notification also has a
      working baseline on the very first reboot after you turn watching on.
    • The manifest viewer no longer risks a confusing crash on a crafted or corrupted APK (it already
      couldn't crash the app itself): a hand-rolled binary-XML parser had several unchecked-arithmetic and
      unchecked-allocation spots reachable by viewing any installed app's manifest, including a sideloaded one.
      It also now caps how much of a manifest it will read, and closing tags are tracked properly instead of
      trusting a value a crafted file could point anywhere.
    • Update checks no longer trust a catalog's regex unconditionally. The Obtainium catalog is
      community-maintained; a pattern with pathological backtracking could previously hang the update check.
      Matching now has a hard timeout. The Galaxy Store download link is now required to be HTTPS, matching the
      rest of the update sources, and a download is capped in size and can no longer report an empty or
      unbounded response as a successful update.
    • A handful of smaller robustness fixes: a failure partway through generating the per-install ADB key can
      no longer leave a mismatched key pair on disk; reading a very large file no longer crashes outright.
    • A second look at that same signer check found it would skip verification entirely if either side's
      signing certificate couldn't be read at all, instead of refusing the restore; it now fails closed.
    • Package-name validation no longer rejects "android" itself - one of several framework-owned permissions
      and components PackageManager genuinely reports under that single-segment name.
    • An install through Shizuku that fails partway through writing or committing its session no longer leaves
      it open. Backing up an app whose app-ops can't be read now says so in the backup instead of silently
      recording an empty, misleadingly-successful-looking override list.
  • README: debloat-flow animation, light-theme screenshots and the new features.
  • A further Copilot pass after this APK was already built and signed found a few more issues; they're fixed
    in source (see "Unreleased" above) but not in this version's APK.