【免费下载链接】BakaSU
A KernelSU based root solution for Android
BakaSU 是一款基于 KernelSU 的 Android 内核级 Root 解决方案,而App Profile(应用配置)正是它最具特色的功能之一:它能让 Root 权限"住进笼子",为每个应用单独定制身份(UID/GID)、权能、SELinux 域等权限边界,真正做到"最小权限原则"。无论你是想给 ADB 一个受限 shell,还是给高风险应用收窄 Root 能力,这份 BakaSU App Profile 应用级权限定制指南都能帮你在 5 分钟内上手。
一、App Profile 是什么?为什么值得用
默认情况下,通过 KernelSU 获得 Root 的应用拿到的是一整包 root 身份(uid 0、全部 Linux 权能、全局挂载命名空间)。这就像给每把钥匙都配了万能锁。
App Profile 的思路是:在 su 执行的那一刻,由内核按应用逐个"改写身份",而不是让所有应用共享同一套 root。它的权限模型定义在 uapi/app_profile.h 中,分为两类:
| 配置块 | 适用场景 | 可定制项 |
|---|---|---|
root_profile(Root 状态) | 应用已获 Root | UID / GID、组、Linux 权能、SELinux 域、挂载命名空间、Flags |
non_root_profile(非 Root 状态) | 应用未获 Root | 是否卸载模块(还原模块修改的文件) |
内核侧真正执行"换身份"的逻辑位于 kernel/policy/app_profile.c 的escape_with_root_profile():它在 su 时替换 UID/GID、写入权能位、设置 SELinux 域并切换挂载命名空间——这就是"笼子"上锁的瞬间。🔒
二、快速上手:三种模式一键切换
打开管理器,在「超级用户」页面点击已授权的应用,即可进入 App Profile 编辑页(界面实现见 ui/screen/AppProfile.kt)。页面顶部的「Superuser」开关决定该应用能否 Root;下方则有三种模式可切换:
- 默认(Default):不定制,su 后即为标准 root;
- 模板(Template):一键套用现成配置(本地模板或在线同步的模板);
- 自定义(Custom):手动逐项填写 uid、gid、权能等字段(ui/component/profile/RootProfileConfig.kt)。
💡 新手建议:先用「模板」体验效果,理解每个字段的含义后再切到「自定义」。
三、自定义模式:逐项定制 Root 权限
进入自定义模式后,你可以修改以下字段(保存即生效,即时写入内核):
1. UID 与 GID:给应用换一个新身份
默认 su 后 UID 为 0。把它改成2000(shell)或任意普通用户号,应用就只是"以普通用户身份运行、但保留权能",而不是系统 root——检测难度和误操作风险都显著降低。
2. 组(Groups)与权能(Capabilities)
- 组:最多可加入 32 个组(如
root、shell、system),对应源码中的 KSU_MAX_GROUPS 定义; - 权能:按需勾选 Linux capability(如
CAP_NET_ADMIN),未勾选的权能被内核直接剥夺,实现真正的"只给够用"。
3. 挂载命名空间:隔离模块环境
三个选项(strings.xml 中文说明):
| 选项 | 含义 |
|---|---|
| 继承(Inherited) | 跟随应用当前环境 |
| 全局(Global) | 使用系统全局命名空间 |
| 独立(Individual) | 为应用单独一套命名空间,模块改动互相隔离 |
4. Flags:禁止"二次提权"
勾选「no_new_privs」后(FLAG_KSU_NO_NEW_PRIVS),该 root 会话内部无法再通过 KernelSU 进一步提升权限——中文界面描述为:"禁止从此 Root Profile 的上下文中通过 KernelSU 进一步提升权限"。
5. SELinux 域与规则
最硬核的一项:为 su 后的进程指定 SELinux domain,并可附带一段 sepolicy 规则(编辑入口见 RootProfileConfig.kt)。规则会实时校验合法性,保存失败会自动回滚(AppProfileViewModel.kt)。
四、不给 Root 也能定制:一键还原模块修改
关闭 Superuser 的应用同样有定制项——「卸载模块」(ui/component/profile/AppProfileConfig.kt):
启用该选项后将允许 KernelSU 为本应用还原被模块修改过的文件。
适合"这个应用必须看到系统原生文件"的场景,例如某些依赖系统原生的工具类应用。📦
五、模板管理:批量套用权限配置
不想逐个手调?BakaSU 提供模板系统:
- 本地模板:把某个应用的自定义配置保存为模板,随时复用;
- 在线模板:点击「同步在线规则」拉取社区模板;
- 导入 / 导出:支持经剪贴板把模板 JSON 导入、导出到其他设备(ui/screen/Template.kt)。
模板与 SELinux 规则的持久化由用户空间的 ksud 完成,参见 userspace/ksud/src/android/profile.rs:配置写入/data/adb下对应目录,并在开机时自动重新加载。
六、常见场景速查表
| 场景 | 推荐配置 |
|---|---|
| ADB shell 日常调试 | 模板「Adb」:uid 2000,仅保留必要权能 |
| 高风险 Root 应用 | 自定义:低 UID + no_new_privs + 独立命名空间 + SELinux 域 |
| 应用读取被模块篡改 | 非 Root 状态开启「卸载模块」 |
| 系统应用(uid < 2000) | ⚠️ 系统应用(除 uid 1000 外)禁止授予 su,防止拖垮整机,见 AppProfile.kt 的限制逻辑 |
七、想深入原理?关键源码路径一览
| 模块 | 路径 |
|---|---|
| 权限结构定义(uapi) | uapi/app_profile.h |
| 内核侧换身份实现 | kernel/policy/app_profile.c |
| 管理器数据模型 | domain/model/AppProfile.kt |
| 模板列表与导入导出 | ui/screen/Template.kt |
| 模板/SELinux 持久化(ksud) | userspace/ksud/src/android/profile.rs |
| 官方功能介绍 | docs/zh/README.md |
结语
BakaSU 的 App Profile 把"给谁 Root、Root 到什么程度"变成了可精确控制的艺术:三种模式覆盖从新手到极客的诉求,模板系统让最佳实践可以一键流转。把 Root 关进笼子,既保留了内核级 Root 的强大,又守住了安全的底线——这正是 BakaSU 作为 KernelSU 衍生方案(其前身 ReSukiSU)在体验上的重要加分项。动手试试吧!
【免费下载链接】BakaSU
A KernelSU based root solution for Android
相关推荐
KernelSU App Profile 深度解析:用 Root Profile 与 Non Root Profile 精细化管控 root 权限
KernelSU App Profile 深度解析:用 Root Profile 与 Non Root Profile 精细化管控 root 权限 App Pr
操作系统驱动开发KernelSU App Profile 完全指南:基于最小权限原则的细粒度 Root 权限管理
KernelSU App Profile 完全指南:基于最小权限原则的细粒度 Root 权限管理 App Profile 是 KernelSU 提供的应用级配置
操作系统驱动开发KitsuneMagisk完整使用教程:安卓Root权限与系统定制终极指南
KitsuneMagisk完整使用教程:安卓Root权限与系统定制终极指南 想要在安卓设备上安全获取Root权限并实现深度系统定制吗?KitsuneMagisk
移动开发安全
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考