shizukurunner 中文文档 下载 App

Exec Activity 接口 - 让 Runner 被其他应用远程调用

什么是 Exec Activity

Runner 不止是你手动打开才能用的工具——它暴露了一个名为 Exec 的 Activity,任何其他 App 都可以通过发送 Intent + 命令字符串,让 Runner 在后台默默执行。这是 Runner 自动化能力的核心。

接口规则很简单:

手动测试

在电脑上用 adb 可以直接测试这个接口:

adb shell am start -n com.shizuku.uninstaller/.Exec --es content "echo hello-runner"

执行后你应该在手机上看到 Runner 弹出通知或执行结果弹窗,命令 echo hello-runner 的输出应该能在通知里看到。

在其他 App 里调用

Java/Kotlin 方式(Android 开发者):

val intent = Intent()
intent.component = ComponentName("com.shizuku.uninstaller", "com.shizuku.uninstaller.Exec")
intent.putExtra("content", "pm disable-user --user 0 com.sina.weibo")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)

如果需要等待执行结果,可以用 startActivityForResult(旧版)或 Activity Result API(新版),Runner 会在执行完毕后回传执行结果和返回码。

返回值解读

Runner 执行命令后可能回传以下信息:

字段说明
resultCodeAndroid Activity 标准结果码(RESULT_OK = -1 表示执行成功)
命令返回值shell 命令本身的退出码(0 = 成功,非 0 = 失败)
输出文本命令的 stdout 输出(可能被截断)
权限信息当前命令是以 shell 还是 root 身份执行

安全注意

Exec 接口是对所有 App 开放的——只要你能启动 Runner,就能让它执行命令。这方便了自动化,但也意味着:

常见问题

调用后没反应:

Exec Activity 不存在: