ShizukuShellBackend

ShellBackend backed by Shizuku's newProcess binder. Runs commands as the shell UID — broader than the host app but narrower than root.

Activation is the user's responsibility: install the Shizuku app, activate it via wireless debugging (Android 11+) or ADB, grant the permission. The backend reports isAvailable() == false until both the binder is reachable and the host has permission. See docs/SHIZUKU.md.

Implementation note (Shizuku v13): Shizuku.newProcess(...) is package- private in v13. We reflectively access it because the alternative (a full AIDL UserService pattern) is substantially more code for the same effective behaviour. Migrating to a proper UserService is tracked for a follow-up release; reflection is the documented pragmatic path used by other Shizuku consumers in the v13 era.

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
open override val name: String

Functions

Link copied to clipboard
open suspend override fun exec(command: String, args: List<String>): ShellResult
Link copied to clipboard
open suspend fun execBinary(command: String, args: List<String>): ShellResult
Link copied to clipboard
open override fun isAvailable(): Boolean