告别Softmax:YOLOv3的多标签分类与Binary Cross-Entropy Loss实战指南
2026/6/9 15:12:57
关键词:Android / ADB / 权限模型 / Binder / 非 Root 系统能力调用
在 Android 开发或高级用户场景中,我们经常会遇到这样的问题:
pm、am、settings等系统命令这些能力在ADB shell中非常简单:
adb shell pm list packages adb shell settings put global adb_enabled0但一旦放到普通 APK 内部,就会立刻撞上 Android 的安全墙:
shell/system权限adbd这正是 Shizuku 诞生的背景。
Shizuku是一个将ADB / shell 权限能力“下沉”到 App 层的中间服务框架。
它的核心思想是:
让用户通过一次 ADB 授权,启动一个运行在
shell权限下的服务进程,再通过 Binder 安全地将能力提供给普通 App。
Shizuku 本身并不破解系统,也不绕过权限模型,而是:
下面是 Shizuku 的典型架构:
| 组件 | 说明 |
|---|---|
| Shizuku Server | 运行在shell权限下的服务进程 |
| Shizuku Client | App 侧 SDK,负责权限检查与 Binder 调用 |
| Third-party App | 使用 Shizuku 能力的普通 APK |
用户在 PC 上执行一次:
adb shellsh/sdcard/Android/data/moe.shizuku.privileged.api/start.sh特点:
如果设备已 Root:
| 能力 | 是否可行 |
|---|---|
调用pm list packages | ✅ |
| 启停 App / 组件 | ✅ |
| 修改系统 settings | ✅(受限) |
| 授权危险权限 | ❌(Android 明确禁止) |
| 完全替代 Root | ❌ |
本质上:Shizuku ≈ ADB shell 的子集能力
pmvalprocess=Shizuku.newProcess(arrayOf("pm","list","packages"),null,null)process.inputStream.bufferedReader().useLines{it.forEach{line->Log.d("Shizuku",line)}}Shizuku 并不是“无脑放权”,它有一套完整的权限控制机制。
关键点:
| 方案 | 安全性 | 可行性 |
|---|---|---|
| App 自连无线 ADB | ❌ 灾难级 | ❌ 被系统禁止 |
| Root | ⚠️ 高风险 | ✅ |
| Shizuku | ✅ 合规 | ✅ |
Android 明确禁止:
设备内 App 直接消费 ADB 能力
而 Shizuku 的优势在于:
目前大量知名工具已内置 Shizuku 支持。
小工具:
在线图片压缩、utc timestamp, ctf tool
乖猫记账,AI智能分类的最佳聊天学生必备记账App。
百度网盘免费加速
Shizuku 是目前Android 非 Root 场景下,唯一成熟、合规、可规模化使用的“ADB 能力桥接方案”。
如果你的目标是:
“把原本只能通过 ADB 做的事情,优雅地放进一个 App 里”
那么,Shizuku 几乎是不可替代的选择。