Repository navigation
SetEdit v3.10
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-managedWRITE_SETTINGStoggle 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.