Skip to content

Releases

SetEdit v4.6

Choose a tag to compare

@NETO-DEV66 NETO-DEV66 released this 31 Oct 15:49

SetEdit v4.6 — every hidden switch, in the open

The Apps Manager now reaches past the short list of well-known operations. An app's Advanced
section opens two dedicated screens: AppOps, for the hidden switches Android keeps per app,
and App compat, for the behaviour changes it applies as a target SDK moves forward.

Added

  • AppOps screen. Every operation the platform knows — 162 of them — with the mode currently
    in force, the platform default next to it, a search box and a changed only filter. Tapping a
    row sets allow, ignore, deny, default or, on Android 10+, foreground. Reset all
    clears every override in one command, which is the clean way to undo a bad setting.
  • App compat screen. Lists the platform-compat changes this app overrides, read from
    dumpsys platform_compat, each with a switch to enable or disable it, plus Reset all.
    Toggling uses am compat enable|disable --no-kill, so changing a switch never force-stops the
    app behind your back.
  • Both screens show the package as the toolbar subtitle and reach the shell the same way the rest
    of the app does: root, then Shizuku, then the remembered ADB connection.

Changed

  • The AppOps action no longer opens a ten-item dialog of hand-picked ops; it opens the full
    screen.
  • versionCode 26, versionName 4.6.

Fixed

  • A fresh op change prints a ; time=+2m ago suffix after its mode; the parser now keeps only the
    mode, so a recently touched op no longer shows up as changed by a phantom value.
  • Both new screens re-read their data once privileged access comes up, so the first load on a
    device that has not been connected yet cannot leave a stale list behind.

Under the hood

  • utils/AppOpCatalog bundles the op table with each op's default mode and parses the single
    cmd appops get <pkg> call the screen makes, so a load is one shell round trip rather than one
    per op.
  • utils/CompatChanges parses the platform-compat dump and keeps only the rows the viewed
    package overrides; change ids are validated before they reach a shell line.
  • Eleven new unit tests cover the catalogue, both parsers and the exact command strings (67 total).

Verify the download

sha256sum SetEdit-4.6-release.apk
# 785169f93c7aa3b847467c51a7130980bb013ca6b3716c80403271ae85cbd206

Package io.github.netodev66.setedit · Version 4.6 (versionCode 26) · Requires Android 7.0+ · Signed release

SetEdit v4.5

Choose a tag to compare

@NETO-DEV66 NETO-DEV66 released this 31 Oct 08:02
c2b4487

SetEdit v4.5 — privileged access, granted once

Connect once and stay connected. SetEdit now grants itself every permission it needs after a
single connection, and remembers it, so a paired device stops asking you to connect again.

Fixed

  • Shizuku was never actually asked. The app only checked whether Shizuku was already
    approved, never requested permission, so a device running Shizuku was still told to use
    wireless debugging. SetEdit now asks Shizuku directly and waits for your answer.
  • The ADB endpoint is remembered. Every reconnect used to fall back to mDNS discovery, which
    gives up after three seconds when the phone is busy and sent you back to the pairing dialog.
    The host and port of the last successful connect are now saved and tried first, so a paired
    device reconnects with a single TCP handshake.
  • A failed action reconnects instead of nagging. Tapping an action used to show
    "grant privileged access first" and nothing else. It now restores access silently — root, a
    Shizuku grant, or a reconnect from the remembered endpoint — and retries once. The connect
    screen only opens when the device has genuinely never had privileged access.
  • One grant covers everything. A single connect now grants WRITE_SECURE_SETTINGS,
    WRITE_SETTINGS and usage access, and sets the matching AppOps, so settings edits and the
    Apps Manager work without keeping the connection alive.

Changed

  • versionCode 25, versionName 4.5.
  • A Shizuku refusal is remembered, so the prompt is not repeated on every screen; the connect
    screen still offers it explicitly.

Under the hood

  • New utils/PrivilegedAccess is the single entry point for restoring access: root, then
    Shizuku, then ADB. It coalesces concurrent callers onto one attempt on its own thread.
  • AdbConnector tries the remembered endpoint first, then discovers the TLS connect service and
    finally the plain ADB service. A stale endpoint that refuses this app's key is treated as
    stale rather than as a pairing problem.
  • Six new unit tests cover endpoint persistence and the granted flags (51 total).

Verify the download

sha256sum SetEdit-4.5-release.apk
# b636f2bb01b2831c6024580e658354dffad256812ac34e349cfeb0100b41c8ed

Package io.github.netodev66.setedit · Version 4.5 (versionCode 25) · Requires Android 7.0+ · Signed release

SetEdit v4.4

Choose a tag to compare

@NETO-DEV66 NETO-DEV66 released this 31 Oct 06:56

SetEdit v4.4 — the Apps Manager

Manage the other apps on your device, right from SetEdit.

Added

  • Apps screen. Browse every installed package with its icon, label, package
    name, size and a System badge. Search by name or package, and filter to user or
    system apps.
  • Per-app actions. Open an app, force stop it, jump to its system info page,
    clear its cache, or clear all its data. Disable or enable it, freeze or unfreeze
    it, and uninstall it. System apps are removed for the current user only, so the
    APK stays safe in /system.
  • Permissions, in one list. See the runtime permissions an app asks for and
    grant or revoke any of them.
  • AppOps switches. Flip hidden switches such as WAKE_LOCK,
    RUN_IN_BACKGROUND, POST_NOTIFICATION and SCHEDULE_EXACT_ALARM.
  • Battery and standby. Exempt an app from battery optimisation, or move it
    between the Active, Frequent, Rare and Restricted standby buckets.
  • A new Apps quick action on the Home tab.

Changed

  • versionCode 24, versionName 4.4.

Safety

Destructive actions confirm first, and every shell command is built in one place
with the package, permission, op and mode values validated before they are used,
so a malformed value cannot run anything unexpected.

Verify the download

sha256sum SetEdit-4.4-release.apk
# bb98d851a713b55d4c62dfd655642b3bb2ee7f2f0088ab64e64f79d43cc54555

SetEdit v4.3

Choose a tag to compare

@NETO-DEV66 NETO-DEV66 released this 30 Oct 16:19

A big one — sort, history, widgets and smarter recipes.

  • Sort any table. Order a list by name or by value, A-Z or Z-A, straight
    from the toolbar.
  • Change history. Every edit is recorded, newest first. Open the history
    and tap an entry to put the old value back.
  • Copy anything. Long-press a row, or use the editor, to copy a key, a
    value or a whole row to the clipboard.
  • Search values too. A new switch in search also matches setting values,
    not just key names.
  • Sensitive keys stand out. Risky keys now show a small warning badge in
    the list and inside the editor, so you know before you touch them.
  • Recipes, organised. Recipes are grouped into Animations, Display, Touch,
    Accessibility and Custom, and you can search them. You can also write
    your own recipes and keep them alongside the built-ins.
  • Auto-backup. Turn it on and SetEdit saves a snapshot before changing a
    sensitive key, so you can always get back.
  • Quick Settings tile. Flip straight into SetEdit from the notification
    shade.
  • Home-screen widget. Pin your starred settings keys to the home screen
    and open them with one tap.
  • Reduce motion. A new setting turns off the bouncy screen and list
    animations if you prefer things calm.

SetEdit v4.2

Choose a tag to compare

@NETO-DEV66 NETO-DEV66 released this 30 Oct 15:06

SetEdit v4.2

The recipes work, and the shell behaves.

🍳 Recipes now take effect

The animation presets wrote their keys to the wrong settings table, so Android ignored them and nothing changed. settings put creates the row without complaint, which is why the recipes looked like they worked but did nothing.

  • The animation presets now write to the table Android actually reads.
  • Every recipe reads its value back after applying it, so a recipe that cannot take effect reports a failure instead of a false success.

⬅️ Back returns to Home

Pressing back from any tab other than Home now takes you to the dashboard instead of closing the app. Back from Home still leaves the app, as you would expect.

🖥️ Full-screen, edge-to-edge

The status and navigation bars are hidden and the app draws behind them. Swipe from an edge to bring the bars back transiently, so Home, Back and Recents stay reachable.

🔧 Under the hood

  • Tables.readValue falls back to the settings ContentProvider when no shell is available, so recipe verification works with WRITE_SECURE_SETTINGS alone.
  • Added Robolectric with two MainActivity back-button tests and five RecipeTest table-mapping tests.

Package io.github.netodev66.setedit · Version 4.2 (versionCode 22) · Requires Android 7.0+ · Signed release

sha256sum SetEdit-4.2-release.apk
# 0df5c12b868828b978cb9467809f2dc2c21b54852c13e60b8f27ea7f5b35cbaf

SetEdit v4.1

Choose a tag to compare

@NETO-DEV66 NETO-DEV66 released this 30 Oct 12:39

SetEdit v4.1

SetEdit can now update itself, and the whole app feels springier.

⬆️ In-app updates

SetEdit checks GitHub Releases for a newer build, downloads the APK and hands it to the system package installer — all without leaving the app.

  • Open it from Settings → Check for updates, the Home quick actions, or the prompt that appears when a new version is found.
  • The launch check runs at most once a day and can be turned off in Settings.
  • If the device has not allowed installs from SetEdit yet, the app sends you to the right screen and lets you retry.

✨ Springy motion

One shared overshoot easing now drives list rows, whole screens, the editor sheet and bottom-nav taps, so navigation feels alive instead of abrupt.

⚡ Faster, smoother tables

  • The table list keeps its scroll position when you come back from the editor instead of jumping to the top.
  • Starring a key rebinds only that row, not the whole list.

🔧 Under the hood

  • New update/ package: UpdateChecker, UpdateInfo, UpdateManager, ApkInstaller, UpdateActivity and a unit-tested VersionComparator.
  • Added REQUEST_INSTALL_PACKAGES and a FileProvider for the cached APK.

Package io.github.netodev66.setedit · Version 4.1 (versionCode 21) · Requires Android 7.0+ · Signed release

sha256sum SetEdit-4.1-release.apk
# 3607ed3563108ac0d810b52c96f58d402704eed8e4985be8c91baf80de903d67

SetEdit v4.0

Choose a tag to compare

@NETO-DEV66 NETO-DEV66 released this 30 Oct 12:22

SetEdit v4.0

A full UI overhaul: the one-long-list-per-table screen is replaced by a
bottom-navigation dashboard, and the features that make the settings tables
usable day to day are now built in.

New UI

  • Bottom navigation — Home, Search, Favorites, Backup and Settings.
  • Home dashboard — quick actions plus a card for every table
    (system, secure, global, Android properties, Java properties, Linux
    environment, boot items and shortcuts).
  • Editor bottom sheet — create, edit and delete a key from a Material 3
    modal sheet, with a favourite star and a one-tap revert to the previous value.
  • Onboarding — a short first-run tour that explains the privileged-access
    model.
  • Recipes — apply a bundle of well-known tweaks together, after a confirmation.

New behaviour

  • Search everywhere — one box scans system, secure and global and
    jumps straight to a match.
  • Favorites — star any key and reach it again from the Favorites tab.
  • Backup & restore — export the tables to a file and restore them later,
    key by key.
  • History & revert — every change is recorded so an earlier value can be
    restored from the editor.
  • Risky-key warnings — keys that can destabilise a device are flagged
    before they are written.
  • Theme & dynamic colour — theme mode and dynamic colour follow the saved
    preference.

Cleanup

  • Removed the old EditorActivity, the adapters/ and cursor/ packages,
    and the layouts only they used.
  • Tables.readValue now reads a single key with settings get instead of
    loading the whole table.

Verified

Clean ./gradlew clean :app:assembleDebug :app:assembleRelease build passes;
the release APK is signed and installs and launches on API 34.

Install

Package io.github.netodev66.setedit
Version 4.0 (versionCode 20)
Requires Android 7.0 (API 24) or newer
Size ~2.0 MB
sha256sum SetEdit-4.0-release.apk
# 424d4aa018bac2053a7f8cf511022fc4baead64e7c93ac393bb913c98088de29

This release was prepared by an AI agent (OpenHands) on behalf of NETO-DEV66.

SetEdit v3.10

Choose a tag to compare

@NETO-DEV66 NETO-DEV66 released this 30 Oct 07:29

SetEdit v3.10

The system table now keeps working after the one-time wireless-debugging
connection, even with WiFi and mobile data switched off.

What was wrong

ShellExecutor.isAvailable() trusted a cached "connected" flag, but the ADB
connection is a raw TCP socket whose isConnected() keeps returning true
after the other end is gone. Once WiFi dropped, every write opened a stream on
the dead socket and blocked — the edit appeared to do nothing or froze for tens
of seconds — instead of falling back to the settings provider. Reads could
stall the same way.

What changed

  • A dead transport is now detected and marked: the first command after the
    drop recovers, and every later read/write goes straight to the provider.
  • Every shell command is bounded by a timeout that closes the connection, so
    a dead socket can never block the UI.
  • The permission gate accepts WRITE_SECURE_SETTINGS (which the one-time ADB
    connection grants) for every table, so the system table no longer asks for
    the role-managed WRITE_SETTINGS toggle it cannot get over ADB.
  • The "add item" action uses the same gate.

Verified

On Android 34: connect once, then block the adb port (the same thing that
happens when WiFi is turned off). The first write recovered in about 3
seconds; every following write and read finished in well under 2 seconds,
readAll(system) kept returning all 39 rows, and the written value persisted.

This release was prepared by an AI agent (OpenHands) on behalf of NETO-DEV66.

SetEdit v3.9

Choose a tag to compare

@NETO-DEV66 NETO-DEV66 released this 30 Oct 06:46

SetEdit v3.9

The system table now works offline too. v3.8 made the secure and global
tables keep working after the WiFi dropped, but the system table stayed
read-only: its permission check asks for WRITE_SETTINGS, which Android
manages as a special app access and which pm grant cannot grant, so the
write bailed out before it ever looked at the permission the ADB connection
had actually granted.

Fixed

  • System-table edits work offline. The write path now checks
    WRITE_SECURE_SETTINGS first — the permission the one-time ADB connection
    grants, and the one the settings provider accepts for every table including
    system — and only falls back to the per-table check when it is missing.
    Create, update and delete all take this path.

Changed

  • versionCode 18, versionName 3.9.

Verify the download

sha256sum SetEdit-3.9-release.apk
# 10393c21c395025b5a443a8f204a7572ca3e438723a9f7f4e10cc295912946fd

SetEdit v3.8

Choose a tag to compare

@NETO-DEV66 NETO-DEV66 released this 30 Oct 05:58

SetEdit v3.8

After SetEdit connects over wireless debugging, it keeps working when the
WiFi drops. The one-time connection grants the permission the app needs to
write settings, so edits no longer fail with SecurityException once the
device is offline.

Fixed

  • Writes keep working offline. The first successful ADB connection grants
    WRITE_SECURE_SETTINGS to SetEdit. When the shell is no longer reachable,
    edits fall back to the content provider, which that permission authorises.
    This also covers the system table, whose usual WRITE_SETTINGS permission
    cannot be granted over ADB.
  • Reads keep full coverage offline. The last complete table seen through
    the shell is saved and merged under the live values, so the keys the
    provider hides from apps stay visible after a reboot with no network.

Changed

  • versionCode 17, versionName 3.8.

Verify the download

sha256sum SetEdit-3.8-release.apk
# 388ba3ef20e5cc7e084ebc44958e833ee70967bf4af2a07f2b1dee879b316067