Skip to content

SetEdit v3.10

Choose a tag to compare

@NETO-DEV66 NETO-DEV66 released this 30 Oct 07:29
· 15 commits to main since this release

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.