# 回忆篇章 Source: https://oom-wg.dev/blog # 开发库 Source: https://oom-wg.dev/dev 回忆溢出工作组的官方库列表 回忆溢出工作组 在着手于诸多项目的开发时,依据需要做出了一些库,如有兴趣可查看它们的开发文档 多语言的多功能辅助库 多语言单文件的文本格式 基于 FVV 的 KMP/CMP/Android 多语言方案 通过 GitHub Actions 构建的基于 FVV 的 Maven 发布系统 所有官方库的开发文档均发布于 [NGA 开发文档](https://app.niggergo.work/) # 回忆溢出开发者 Source: https://oom-wg.dev/developers 开发组与社区成员介绍 ## 核心开发组成员 由核心成员组成的核心组织,主导项目的开发 ## 社区成员 由协助人员组成的附属组织,辅助项目的开发 > 名单按首字母排序 * [打鱼](https://github.com/Fisher4124) * [Fangzy](https://github.com/fangzny1) * [Fiagelia](https://github.com/xianyu6556) * [可惜 (空白没有输)](https://github.com/kexi1412) * [Ryobunoki](https://github.com/Ryobunoki) * [我无聊了 (liyw)](https://github.com/liyw0205) # 起源之地 Source: https://oom-wg.dev/index 这里是一切的开始,在仰望星空的同时,也悄然承载着一点点回忆 ## 这里是我们一切的开始 **回忆溢出工作组** (简称 **OOM WG**) @白彩恋 发起,是一个致力于用编程创造美好回忆的组织
图标由开发组成员 @枫莹 手绘
**OOM** 的缩写灵感源自 **`Out Of Memory`**(**内存溢出**), 而我们更希望 **`Out Of Memories`**(**回忆溢出**) 我们希望通过编程创造美好的回忆, 如果你遇到一个真心待你、没有任何伪装的朋友, 请一定珍惜他 *** ## 回忆篇章 在批判与学习中不断前进 *** ## 开发中的项目 由我们发起并维护的项目 由我们与其他人协作的项目 *** ## 关注我们 我们的 GitHub 组织,开源项目均会发布至此处 我们的 GitCode 组织,部分重要仓库会在此备份 我们的 Telegram 频道,您可以在此关注我们的新闻 我们的 Discord 服务器,您可以在此关注并交流 如果您对我们的成员个人感兴趣,也可以在此查看有关于我们的开发者的信息 # MikotoMem Source: https://oom-wg.dev/mmem/index 基于 Go 的高性能网络优化内核 ## 施工中... *** # YumeMem Source: https://oom-wg.dev/only-gui-can-do/index 基于 Flutter 实现的跨平台代理软件 > `YumeMem` != `YumeBox` > >
> > `YumeMem` === `Only GUI Can Do` ## 施工中... *** # 主导项目 Source: https://oom-wg.dev/projects 这些是我们开发的项目,如果您感兴趣不妨去点个 Star,您的支持是我们继续下去的动力 ## 系列 > 一个项目可以同时隶属于多个系列 ### 欢律遗愉 (PureJoy) 回忆溢出主要的系列,所有回忆溢出的项目都隶属于此系列 ### [ShiroSU](https://shirosu.gal.tf/) 致力于 Android 使用体验提升的系列项目,包括 [**ShiroSU 主线**](https://shirosu.gal.tf/) 、 [**ShiroSU 支线**](https://shirosu.gal.tf/about) 、 [**苏柚**](https://shirosu.gal.tf/utils) ### [NGA](https://app.niggergo.work) 白彩恋 的个人系列,包括 [NGA SDK](https://app.niggergo.work/nga/) 及其他软件、模块 ### 苓茶 (RK) 白彩恋 的个人系列,包括一些工具 ## 项目 Android root 方案与管理工具 多平台 Android 玩机工具 施工中... 施工中... ## 开发库 我们的库可在 [**此处**](/dev/) 查看 # 互助项目 Source: https://oom-wg.dev/projects-ext 由我们与他人协作,携手并进带来的事物们 ## 真我 GT/Neo 系列 root 教程 > 合作方: [酷安@小帅当然帅](https://www.coolapk.com/u/5970992) 解锁刷机,一气呵成!用方便的一键工具来探索刷机的奇妙世界吧! ## 《寻找伪人》游戏攻略文档 此项目属于我们游戏计划的一部分 > 合作方: [抖音@Rug](https://www.douyin.com/user/MS4wLjABAAAA27iQnjKSmFnpgvZq_khJAhUW3LbVRSSoK0FDn1YkHokZNUvCZHmr3Nl9QWUZriux) 游戏机制、人物图鉴、游戏结局,应有尽有\~ # ConfigUI 模块开发 Source: https://oom-wg.dev/ssu/compat/dev/cfgui ShiroSU Compat 的 ConfigUI 开发 ConfigUI 仍在开发中,由于计划有变,我们将要开发出一套完整的 FWW for Compose 之后再将其应用于 ConfigUI,当前文档**仅供参考** ConfigUI 是 ShiroSU 特有的一种功能,旨在通过 FVV FWW 低学习成本地快速生成 CU NGA 风格 的模块配置界面 使用 ConfigUI 要求模块的**配置文件必须以 FVV 格式 编写**,除非是能让 FVV 解析的简单赋值格式 ConfigUI 的 配置文件、多语言文件、UI 文件 也必须以 FVV 格式 编写,因此需要了解 FVV 格式 才能使用 ConfigUI ## 模块目录结构 模块目录应遵循以下结构: * `module.prop` 为模块描述文件 * `cfgui` 目录是 ConfigUI 的根目录,包含所有配置 * `config.fvv` 为 ConfigUI 配置文件 * `ui` 目录为 FWW 配置目录 * `lang` 目录可选,用于配置多语言文本 ## 配置 ConfigUI `config.fvv` 是 ConfigUI 的配置文件,其中应当包含以下内容: * `ConfigPath`: 模块的 FVV 配置文件路径,将会以 *`cfgui` 的相对路径*、*模块目录的相对路径*、*绝对路径* 顺序查找 * `DefaultLang` (可选): 多语言的默认回滚语言 * `IconPath` (可选): 图标路径,用于创建快捷方式 * `InitCommand` (可选): ConfigUI 初始化时需要执行的 Shell 代码 ### 多语言 多语言的配置文件需要存储到 `lang` 目录内,以**下斜杠**语言标签作为子目录名称,其中的文件会被递归载入至当前语言标签 语言标签目录内的 FVV 配置文件会被**无差别**递归读取,子目录路径不会影响其被解析时的行为! 多语言内的文本会被存储到 `Lang` 内,故调用时需要在值名称前加上 `Lang.` ### 界面 界面的配置文件需要存储到 `ui` 目录内 FWW 的文件后缀是 `fww` 而不是 `fvv`! <>目录内的 FWW 配置文件会被**无差别**递归读取,子目录路径不会影响其被解析时的行为! 由于解析时会直接赋值多语言文本,故无法直接将 FWW 界面存储至 `UI` 内,请务必保证每个页面均以 `UI.` 开头! 仅有赋值进 `UI` 内的页面才会被解析为 FWW 界面! ConfigUI 的 FWW 界面均使用 **FVV 列表** 作为页面, 其中 `UI.Main` 是 ConfigUI 的默认页面,编写 ConfigUI 需要确保至少有 `UI.Main` 一个界面! ConfigUI 会将页面的注释设置为该页面的标题: ```fvv theme={null} UI.PageA = <页面A> [ <...> ] <直接命名> UI.PageB = [ <...> ] <通过多语言命名> ``` 主页面的标题默认是模块名称,在 FWW 中再自定义名称也是允许的 每个页面的除 `UI.` 外的内容是其路由名称,并且 ConfigUI **不支持**多级定义!请确保所有页面定义均为 `UI` 的顶级定义! # 开发 SSU Compat Source: https://oom-wg.dev/ssu/compat/dev/index ShiroSU Compat 的特性开发 ShiroSU Compat 在模块方面与 ShiroSU NT 有部分重合,具体可与 [SSU NT 开发文档](/ssu/nt/dev) 相互对照 如果将 ShiroSU Compat 仅用于其他 root 实现的 root 管理器,那么模块标准应当以当前 root 实现为准,ShiroSU Compat **不会干涉**其他 root 实现的任何行为 <> 但不依赖 root 实现的标准可以**额外再遵守** ShiroSU Compat 的标准,实现对 ShiroSU Compat 的专门适配 ShiroSU Compat 的特性主要基于 **Scheme**、**模块**,均为完全基于其自身的特性,**可在其他 root 实现上使用** 通过 Scheme 在**网页**或其他**软件**、**程序**上拉起 ShiroSU Compat 对模块信息显示的拓展 通过 [**FWW**](https://app.niggergo.work/fw/fww) 实现的模块配置界面,极低学习成本,无需前端开发经验 与 [KernelSU](https://kernelsu.org/zh_CN/guide/module-webui.html) 保持一致的模块界面 # 模块信息拓展 Source: https://oom-wg.dev/ssu/compat/dev/module ShiroSU Compat 的模块信息拓展开发 ## module.prop 对于具体支持的内容,已经继承至 [SSU NT 模块开发](/ssu/nt/dev/module) ### 损坏检测 & 规范检查 ShiroSU Compat 有一个机制用来检测 `module.prop` 是否损坏或符合规范, 如果损坏或不符合规范,ShiroSU Compat 会在该模块的上方显示一个标签 有些模块会使用 `sed` 命令来修改 `module.prop` 以实现实时更新内容,但此方法有一定概率会导致 `module.prop` 文件损坏, 请避免通过 `sed` 修改或者通过其他方式来显示实时内容,也可以实现一个 `module.prop` 损坏检测机制,在其损坏时恢复至默认内容 ShiroSU Compat 具体会检测如下内容: * `module.prop` 内是否包含不符合语法的内容 * `id`、`name`、`version`、`author`、`description` 是否为空 (如有带有 `Ansi` 后缀的同样检测) * `id` 是否符合此正则表达式: `^[a-zA-Z][a-zA-Z0-9._-]+$` * `versionCode` 是否大于 **0** * `module.prop` 内是否存在大小写不规范的情况 (会正常解析,但仍会显示标签) 如果只是 `module.prop` 损坏,**重装模块**通常可解决此问题,如果不符合规范,则需要**开发者自行修复**以解决此问题 ## 模块标签 ShiroSU Compat 默认会在模块名称下方显示一个内容为该模块 `id` 的小标签, 当模块目录内存在文件名称符合以下正则表达式的文件时,同样也会显示对应的小标签: * `(?i)^changelogs?(?:[._-][A-Za-z0-9._-]+)?(?:\.(?:txt|md|mkd))?$`: 模块的更新日志,点击则会通过弹窗显示内容 * `(?i)^(?:license|licence)(?:[._-][A-Za-z0-9._-]+)?(?:\.(?:txt|md|mkd))?$`: 模块的许可证,点击则会通过弹窗显示内容 搜索文件时不会搜索子目录内的内容 # Scheme 关联 Source: https://oom-wg.dev/ssu/compat/dev/scheme 了解如何开发适配 ShiroSU Compat 的 Scheme 关联 ShiroSU Compat 会注册 `ssu` 的 `scheme` ,只需要通过 `ssu://...` 即可调用 如果没有传入或传入错误的内容,只会打开 ShiroSU Compat 的主页,支持的 `host` 如下: ## module 调用此 `host`,需要传入以下 `path` 之一: ### action 调用此 `path`,需要传入以下 `query`: * `id`: 模块 ID 示例: `ssu://module/action?id=xxx` 调用后,会执行该模块的 `操作`,如果不存在该模块,则只会打开 ShiroSU Compat 的主页 ### webui 调用此 `path`,需要传入以下 `query`: * `id`: 模块 ID 示例: `ssu://module/webui?id=xxx` 调用后,会跳转该模块的 `WebUI`,如果不存在该模块,则只会打开 ShiroSU Compat 的主页 ### install 调用此 `path`,需要传入以下 `query`: * `name`: 模块名称,不传入则为 `未知` * `url`: 模块下载链接 示例: `ssu://module/install?name=meow&url=https://meow.latestfile.zip` 调用后,会下载并安装该模块 仅自动下载,安装需要手动确认 # WebUI 模块开发 Source: https://oom-wg.dev/ssu/compat/dev/webui ShiroSU Compat 的 WebUI 开发 ShiroSU Compat 的 WebUI 标准与 KerenlSU 保持一致,详细规范请参考 [KerenlSU 规范](https://kernelsu.org/zh_CN/guide/module-webui.html) **不保证**与 KernelSU 标准持续同步,可能出现滞后情况 ## 模块目录结构 模块目录应遵循以下结构: `index.html` 不可更名为 `index.htm` 等文件名! 不建议把任何非网页资源放置于 `webroot` 目录内 ## 开发 Demo

我们提供了一个简单的 WebUI Demo,它使用 [**Vite**](https://vitejs.dev/) 进行打包,并基于 [**Vue 3**](https://vuejs.org/) 开发,同时集成了 [**KernelSU**](https://www.npmjs.com/package/kernelsu) 包,以帮助您快速入门

# ShiroSU 多功能 root 管理器 Source: https://oom-wg.dev/ssu/compat/index ShiroSU 分支 - 多功能 root 管理器 [**ShiroSU Compat**](https://shirosu.gal.tf/compat) 是 ShiroSU 的一个分支,主要实现兼容多种 root 实现的 root 管理器 ## 特色功能 ShiroSU Compat 致力于在各个方面提供提升使用体验的功能,包括但不限于如下内容: 通过 *更多列表* 以**一键 禁用/启用/更新** 模块 **长按**模块信息卡片可**置顶**模块 **长按** *WebUI 按钮* 来为当前模块的 WebUI **创建桌面快捷方式** 可通过网页直接跳转模块的 **操作**/**WebUI**,或是**安装模块** ## 兼容性 只要有 root,不管是来自 ShiroSU 自己的,还是来着其他 root 实现的权能,均可在 ShiroSU Compat 使用, 但第三方 root 实现**仍需要逐步支持**才可完整使用,目前兼容性情况如下 由于开发进度,ShiroSU Compat 还未完全支持 ShiroSU NT ### 模块兼容性 ShiroSU Compat 支持管理其他 root 实现的模块, 所有模块目录在 `/data/adb/modules` 的 root 实现,ShiroSU Compat 都可以兼容, 具体的模块功能适配如下: 由于暂无较多用户使用的模块目录不在 `/data/adb/modules` 的 root 实现,故暂不推出模块目录自定义功能 * 操作(`action.sh`): 已完全适配 * WebUI(`webroot`): 已完全在 [KernelSU 标准](https://kernelsu.org/zh_CN/guide/module-webui.html) 上适配,未计划适配 [WebUIX](https://mmrl.dev/guide/webuix/) **不保证**与 KernelSU 标准持续同步,可能出现滞后情况 ### 权能管理兼容性 ShiroSU Compat 支持管理其他 root 实现的权能管理, 具体的 root 实现适配如下: * [Magisk](https://topjohnwu.github.io/Magisk/): 支持 **root 权能**管理以及**排除列表**管理 * [KernelSU](https://kernelsu.org/zh_CN/): 支持 **root 权能**管理以及**卸载模块**管理 (使用**原版**但设备上安装了 `KernelSU Next` 或 `SukiSU Ultra` 会无法使用) * [KernelSU Next](https://kernelsu-next.github.io/webpage/zh_CN/): 有特别适配,可正常使用 * [SukiSU Ultra](https://sukisu.org/zh/): 有特别适配,可正常使用 使用 KernelSU 时若开启了 `默认卸载模块`,则 ShiroSU 内的卸载模块管理会失效! * [APatch](https://apatch.dev/zh_CN/): 暂不支持,仍在计划中 * [SKRoot](https://github.com/abcz316/SKRoot-linuxKernelRoot): 暂不支持,仍在计划中 *** 请参考 *使用指南* 获取安装与使用说明 开发者可参考 *开发文档* 来了解如何针对 ShiroSU Compat 进行开发 记录了部分常见问题,若可能,请 [**加入群组**](https://oom-wg.dev/join) 以交流发展 # 历史更新 Source: https://oom-wg.dev/ssu/compat/update ShiroSU Compat 的历史版本与更新日志 各版本渠道区别: * **`预览版`**: 更新较为频繁,变动内容较多,其中不稳定内容较多 * **`预发布版`**: 基于 `预览版` 沉淀,较为稳定,但仍具有一定实验性内容 * **`正式版`**: 最终沉淀版本,尽可能确保稳定性 *** **最新版本**直接获取: * [预览版](https://ssu.fileto.download/preview/latest) *** "*常规代码维护*" 包括但不限于 **依赖更新**、**改动部分代码**、**优化性能**、**优化布局**、**提升稳定性**、**修复错误** 以及 **为后续功能铺垫** 查找具体版本时可通过 *筛选* 来缩小查找范围 ## 0.2.x 赋权/隐藏 部分目前仅供参考,相关逻辑暂未实现 # 0.1.x *** # 常见问题 Source: https://oom-wg.dev/ssu/compat/usage/faq ShiroSU Compat 的常见问题解答 如有问题难以自行解决,请 [**加入群组**](https://oom-wg.dev/join) *** ### 有没有人知道这个怎么用? > [NT](/ssu/nt) 作为原生 root 可安装至设备后通过 WebUI 使用, > [Compat](/ssu/compat) 可作为第三方 root 管理器使用 ### 为什么选择了 `RC/Release` 等更新渠道收不到更新? > 切换渠道后将**只接收该渠道的更新推送**,若想要**持续获取到最新版更新**,**`请切换到 Preview 渠道`** ### 主页的横幅提示怎么关闭 > 横幅提示是为了提示用户而存在的,若有需要,在 `更多`->`设置`->`客制化`->`主页提示` 即可关闭 # 使用指南 Source: https://oom-wg.dev/ssu/compat/usage/index ShiroSU Compat 的安装步骤和使用说明 您需要有一部 Android **`7`+** 的设备,架构为 `arm64-v8a`、`armeabi-v7a`、`x86_64`、`x86` 之一 您可以安装 [ShiroSU 原生 root](/ssu/nt) 或其他第三方 root 实现来使用 ShiroSU Compat ShiroSU 最新版本及历史版本下载 下载 ShiroSU Compat 后,请安装至您的 Android 设备 由于开发进度,ShiroSU Compat 还并未完全支持 ShiroSU NT,但您仍然可以使用它来管理模块 如果您在使用 `Magisk` 这样的黑名单类 root 实现,请在启动 ShiroSU 后授权 root 如果您在使用 `KernelSU` 这样的白名单类 root 实现,请自行前往您的 root 管理器手动授权 root 如果您在使用 `APatch` 这样的密钥类 root 实现,由于暂未适配,请自行前往您的 root 管理器手动授权 root 向 ShiroSU 授予 root 后,即可开始使用 ShiroSU 的各项功能 <> <>在 *模块页面* 即可管理您的模块 <> <>若已适配,在 *权能页面* 可以管理您的权能 <> <>在 *更多页面*,您可以使用更多辅助功能 *** 若有问题,可在此处查看 # 畅享 Android,让 Android 更易上手 Source: https://oom-wg.dev/ssu/index 了解 ShiroSU 系列 - 助力 Android 使用体验提升的系列项目 [**ShiroSU**](https://shirosu.gal.tf/) (简称 **SSU**,原 SakiSU/SakitinSU) 是由 [回忆溢出工作组](https://oom-wg.dev/) 以核心成员 [**@白彩恋**](https://shiror.ren/) 的名字命名的**系列项目** **ShiroSU 系列** 致力于提供更易上手的 Android 使用方式,主要通过 root 相关功能实现更便利、更完整地使用 ## 项目分化 [**ShiroSU NewTech**](https://shirosu.gal.tf/newtech) (简称 *SSU NT*,又称 *SSU ROOT*) 是 SSU 自己的 root 实现,是基于 `ramdisk` 注入实现的**纯用户态 root 实现**,采用 **WebUI** 实现 **root 管理** [**ShiroSU Compat**](https://shirosu.gal.tf/compat) (简称 *SSU Compat*,又称 *SSU 管理器*) 是**兼容多种 root 实现**的 root 管理器,可以**管理模块与权能** 在规划上,它们是两个相对独立的项目(在部分设计上相互支持),但 SSU 就是通过这样的**双路线开发**实现覆盖面广且便利好用的 [**ShiroSU Utils**](https://shirosu.gal.tf/utils) (简称 *SUU*,中文名 *苏柚*) 是系列中的姊妹项目,具体可见下方简述 其他项目描述可见 [**ShiroSU 系列官网**](https://shirosu.gal.tf/) 与 [**ShiroSU 系列说明**](https://shirosu.gal.tf/about) ## 安全性声明 网络中存在着一些 **ShiroSU 系列** 的仿冒网站,为了能够更好的甄别这些内容,请见 [**ShiroSU 系列安全声明**](https://shirosu.gal.tf/security) ## 快速开始 **ShiroSU NewTech** 简介 **ShiroSU Compat** 简介 *** *** ## 拓展软件 [**苏柚**](/suu) (简称 **SUU**) 是 **ShiroSU 系列** 中的姊妹项目 苏柚 主打**存储优化**功能,整体都着重于**更多功能使用**,在方方面面都提供一些小帮助 它**不局限于 root**,**普通用户权限**、**adb 权限**、**DeviceOwner 权限** 都可用来驱动部分功能,同时还有 **Xposed 注入** 功能,还可以通过 **Windows 版本**来体验更多内容 # 项目起源 Source: https://oom-wg.dev/ssu/more/origin ShiroSU 的发展历程 **ShiroSU** 原名 SakiSU/SakitinSU/SKTSU,由 **@白彩恋** 于 `2025-5-20` 立项 系列主要由 [**ShiroSU NewTech**](https://shirosu.gal.tf/newtech) 与 [**ShiroSU Compat**](https://shirosu.gal.tf/compat) 两个主线项目组成,[**ShiroSU Utils**](https://shirosu.gal.tf/utils) 即 **苏柚** 为姊妹项目 具体历程可见 [**ShiroSU 系列说明**](https://shirosu.gal.tf/about) # 相关政策 Source: https://oom-wg.dev/ssu/more/privacy ShiroSU 的隐私政策、分发许可等相关内容 ## 隐私政策 ShiroSU 使用 *百度移动统计*、*微软 Clarity*、*阿里云 EMAS* 收集用户的使用数据,依此增强后续的使用体验 ShiroSU 尊重并保护用户隐私,用户的使用数据仅用于错误分析、性能优化等用途,绝不会进行任何滥用行为 ShiroSU 软件本体仅使用已声明的第三方 SDK 用于数据收集,除此之外,不存在任何第一方/第三方数据收集行为, 软件携带的第一方二进制文件不存在任何数据收集行为 ### 第三方 SDK 相关链接 * [百度统计隐私政策](https://tongji.baidu.com/web/help/article?id=330\&type=0\&castk=LTE%3D) * [Clarity 使用条款](https://clarity.microsoft.com/terms) * [EMAS 隐私权政策](https://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud202112071754_83380.html) *** ## 分发许可 ShiroSU 的分发物使用 [File to Downloader 许可证](https://license.fileto.download) 许可, 其相关开源代码同样使用 [File to Downloader 许可证](https://license.fileto.download) 许可 # 创建一次性 WebSocket 票证 Source: https://oom-wg.dev/ssu/nt/dev/api/http/websocket/创建一次性-websocket-票证 /apis/ssu/openapi.yml post /ws 返回临时票证,用作 WebSocket 升级请求中的 `ws` 查询参数 # 读取用户 0 的系统壁纸 Source: https://oom-wg.dev/ssu/nt/dev/api/http/主题/读取用户-0-的系统壁纸 /apis/ssu/openapi.yml post /theme/wallpaper 优先壁纸裁剪图,其次原图或锁屏壁纸 # 下载模块远程更新资源 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/下载模块远程更新资源 /apis/ssu/openapi.yml post /modules/id/{mid}/update/{url} 下载模块更新信息中的更新包或更新日志 # 创建模块标记文件 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/创建模块标记文件 /apis/ssu/openapi.yml put /modules/id/{mid}/status/{mark} # 删除模块标记文件 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/删除模块标记文件 /apis/ssu/openapi.yml delete /modules/id/{mid}/status/{mark} # 删除模块系统 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/删除模块系统 /apis/ssu/openapi.yml delete /modules 仅删除环境依赖,不会删除已安装模块 # 安装模块 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/安装模块 /apis/ssu/openapi.yml post /modules/install 接收模块 ZIP 并执行模块安装 如果请求体为空,后端会从 `url` 查询参数下载模块 ZIP # 执行模块 action.sh 并返回输出 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/执行模块-actionsh-并返回输出 /apis/ssu/openapi.yml post /modules/id/{mid}/action # 更新模块系统 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/更新模块系统 /apis/ssu/openapi.yml put /modules 接收 `modinit` ELF 可执行文件,校验签名和版本后执行模块系统初始化 如果请求体为空,后端会从 `url` 查询参数下载 `modinit` # 标记模块卸载 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/标记模块卸载 /apis/ssu/openapi.yml delete /modules/id/{mid} 创建或覆盖 `remove` 标记文件 # 获取单个模块信息 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/获取单个模块信息 /apis/ssu/openapi.yml get /modules/id/{mid} # 获取模块列表 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/获取模块列表 /apis/ssu/openapi.yml post /modules/list 支持分页拉取,查询参数中不添加 `limit` 即返回 `offset` 后的全部 # 获取模块图标 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/获取模块图标 /apis/ssu/openapi.yml get /modules/id/{mid}/icons/{icon} # 获取模块数量 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/获取模块数量 /apis/ssu/openapi.yml get /modules/list # 获取模块系统状态 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/获取模块系统状态 /apis/ssu/openapi.yml get /modules # 获取模块远程更新信息 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/获取模块远程更新信息 /apis/ssu/openapi.yml post /modules/id/{mid}/update # 通过 WebSocket 安装模块 Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/通过-websocket-安装模块 /apis/ssu/openapi.yml get /modules/install 本路径只支持 WebSocket 升级 # 通过 WebSocket 执行模块 action.sh Source: https://oom-wg.dev/ssu/nt/dev/api/http/模块/通过-websocket-执行模块-actionsh /apis/ssu/openapi.yml get /modules/id/{mid}/action 本路径只支持 WebSocket 升级 # 临时热更新并重启管理后端 Source: https://oom-wg.dev/ssu/nt/dev/api/http/状态/临时热更新并重启管理后端 /apis/ssu/openapi.yml patch /status/restart 接收替换用的 `suu` ELF 可执行文件,校验签名和版本后写入临时路径并执行热重载 仅用于临时更新 ShiroSU,设备重启后仍会变成旧版本 如果请求体为空,后端会从 `url` 查询参数下载 `suu` 前端调用后应该刷新页面 # 获取当前运行的 ShiroSU 版本 Source: https://oom-wg.dev/ssu/nt/dev/api/http/状态/获取当前运行的-shirosu-版本 /apis/ssu/openapi.yml get /version 普通 HTTP 请求返回当前 ShiroSU 版本号 本路径也支持 WebSocket 升级 # 获取运行状态 Source: https://oom-wg.dev/ssu/nt/dev/api/http/状态/获取运行状态 /apis/ssu/openapi.yml get /status # 重启管理后端 Source: https://oom-wg.dev/ssu/nt/dev/api/http/状态/重启管理后端 /apis/ssu/openapi.yml post /status/restart 应在修改端口或 IP 成功后调用,调用后前端应该刷新页面 # 写入镜像到当前槽位的 init_boot 或 boot 分区 Source: https://oom-wg.dev/ssu/nt/dev/api/http/系统/写入镜像到当前槽位的-init_boot-或-boot-分区 /apis/ssu/openapi.yml put /system/boot 写入提供的镜像,并用零填充目标分区剩余空间 如果请求体为空,后端会从 `url` 查询参数下载镜像 # 获取系统信息 Source: https://oom-wg.dev/ssu/nt/dev/api/http/系统/获取系统信息 /apis/ssu/openapi.yml get /system # 读取当前槽位的 init_boot 或 boot 分区镜像 Source: https://oom-wg.dev/ssu/nt/dev/api/http/系统/读取当前槽位的-init_boot-或-boot-分区镜像 /apis/ssu/openapi.yml post /system/boot 优先读取 `init_boot{slot}`,不存在时读取 `boot{slot}`,`{slot}` 可能为空 # 重启到指定模式 Source: https://oom-wg.dev/ssu/nt/dev/api/http/系统/重启到指定模式 /apis/ssu/openapi.yml post /system/reboot/{cmd} 前端调用后应该刷新页面 # 重启或关闭设备 Source: https://oom-wg.dev/ssu/nt/dev/api/http/系统/重启或关闭设备 /apis/ssu/openapi.yml post /system/reboot 前端调用后应该刷新页面 # 从授权或隐藏列表移除 UID 分组 Source: https://oom-wg.dev/ssu/nt/dev/api/http/软件包/从授权或隐藏列表移除-uid-分组 /apis/ssu/openapi.yml delete /packages/{type}/{uid} # 将 UID 分组加入授权或隐藏列表 Source: https://oom-wg.dev/ssu/nt/dev/api/http/软件包/将-uid-分组加入授权或隐藏列表 /apis/ssu/openapi.yml put /packages/{type}/{uid} # 获取软件包 UID 列表 Source: https://oom-wg.dev/ssu/nt/dev/api/http/软件包/获取软件包-uid-列表 /apis/ssu/openapi.yml post /packages 已授权或隐藏软件优先置顶 支持分页拉取,查询参数中不添加 `limit` 即返回 `offset` 后的全部 软件包详细信息查询失败时会返回基础列表 # 获取软件包 UID 总数与授权隐藏数量 Source: https://oom-wg.dev/ssu/nt/dev/api/http/软件包/获取软件包-uid-总数与授权隐藏数量 /apis/ssu/openapi.yml get /packages # 修改管理配置 Source: https://oom-wg.dev/ssu/nt/dev/api/http/配置/修改管理配置 /apis/ssu/openapi.yml patch /config 可同时修改管理密码、监听 IP 和监听端口 # 获取管理配置 Source: https://oom-wg.dev/ssu/nt/dev/api/http/配置/获取管理配置 /apis/ssu/openapi.yml get /config # 模块 action.sh 执行流 Source: https://oom-wg.dev/ssu/nt/dev/api/websockets/模块-actionsh-执行流 建立连接后后端执行模块的 `action.sh` 客户端可以发送文本信息或二进制消息作为进程标准输入 服务端以 JSON 文本信息返回标准输出、标准错误和退出状态, 错误会以 `exit` 消息返回,其中 `code` 可能是 HTTP 状态码 # 模块安装流 Source: https://oom-wg.dev/ssu/nt/dev/api/websockets/模块安装流 建立连接后后端执行模块安装 传入 `url` 查询参数时后端下载模块 ZIP,客户端不需要发送 ZIP 二进制 没有 `url` 查询参数时客户端必须先发送 ZIP 二进制消息,并以 `{"type":"uploadEnd"}` 结束上传 客户端可以发送文本信息或二进制消息作为进程标准输入 服务端以 JSON 文本信息返回标准输出、标准错误和退出状态, 错误会以 `exit` 消息返回,其中 `code` 可能是 HTTP 状态码 # 版本心跳 Source: https://oom-wg.dev/ssu/nt/dev/api/websockets/版本心跳 服务端每秒发送一条版本号文本信息 # 开发 SSU NT Source: https://oom-wg.dev/ssu/nt/dev/index ShiroSU NewTech 各项内容的开发适配 ShiroSU NT 在刚开发时继承了在模块方面 ShiroSU Compat 的部分内容, 具体可与 [SSU Compat 开发文档](/ssu/compat/dev) 相互对照 具体的模块标准 部分 ShiroSU NT 运行时的暴露 API 对于所有暴露给前端使用的 HTTP 与 WebSocket API,请见导航目录 *** 为 ShiroSU 而设计的模块构建工具,**同时适用**于 ShiroSU 与其他 root 实现 # 模块构建工具 Source: https://oom-wg.dev/ssu/nt/dev/module/builder ShiroSU 的通用模块构建工具 ShiroSU 的模块构建工具分为如下内容: 在 `GitHub Action` 中使用或在本地使用 通过此模板生成模块仓库 ## 依赖 构建工具会使用 [NGA SDK](https://app.niggergo.work/nga/shell) 在构建时自动集成 Shell Utils,自动混淆加密 `action.sh`、`customize.sh`、`nga-utils.sh` * [Android NDK](https://developer.android.google.cn/ndk) * [Go](https://golang.google.cn) * [Garble (可选)](https://github.com/burrowers/garble) 本地构建需要至少有 `ksh` 或者语法特性更多的 Shell 解释器!否则 Shell 加密无法运行,不可使用 `POSIX` Shell! ## 使用方法 前往示例仓库通过模板生成新项目 修改模块项目代码 通过 GitHub Action 手动或自行修改 Workflow 来实现构建模块 前往示例仓库通过模板生成新项目 将本项目与模块项目克隆至本地 修改模块项目代码 通过 Go 运行本项目的构建工具来实现构建模块 ## 项目结构 模块项目应该遵循以下目录结构









不建议往 `META-INF` 添加任何 Recovery 刷入脚本之外的文件 模块示例仓库已经配置好这些内容,可直接使用模板并按需修改以使用 不需要的文件请自行删除!请避免对用户设备造成不必要的负担! ### 注意事项 * 模块目录 * `action.sh` 的支持范围是: ShiroSU 默认支持/Magisk 27008+/KernelSU 1.0.2+/APatch 11039+ 低版本不支持该按钮,开发者应避免不支持而是建议使用者脱离啃老或建议非 GKI 原版 KSU 使用者转向其他分支 * `post-mount.sh`、`boot-completed.sh` 仅在 ShiroSU/KernelSU/APatch 支持, 但 Magisk 可在 `service.sh` 内主动执行 `boot-completed.sh` * `META-INF` 在仅支持 ShiroSU/KernelSU/APatch 时无需包含 * `zygisk`、`bin` 会通过 `c++_native`/`go_native` 中的目录自动添加,如有需要,也可自行添加 * C++ 项目 * *项目名称* 必须与 `Android.mk` 中的 `LOCAL_MODULE` 相同,即构建后的文件名称 * `Android.mk` 如果配置以 `BUILD_EXECUTABLE` 构建,将自动把编译后文件移动至模块目录的 `bin/<项目名称>/<架构>.bin`, 如果配置以 `BUILD_SHARED_LIBRARY` 构建,将自动把编译后文件移动至模块目录的 `zygisk/<架构>.so` * Go 项目 * *项目名称* 必须与 `go.mod` 中的 `module` 值的最后名称相同,即构建后的文件名称 * `arch` 按行输出要构建的架构,架构以 Go 支持的为准 (例如使用 `amd64` 而非 `x86_64`) * `changelog.md`、`update.json` 等文件可按需自定义名称、路径 后续会重构项目架构,使其基于 `FVV` 配置 # 原生模块特性 Source: https://oom-wg.dev/ssu/nt/dev/module/index ShiroSU NT 的原生模块特性 对于大部分内容,ShiroSU 与 [**Magisk**](https://topjohnwu.github.io/Magisk/guides.html) 和 [**KernelSU**](https://kernelsu.org/zh_CN/guide/module.html) 基本保持一致,此处仅介绍不同之处 ## module.prop ### ANSI 转义码 ShiroSU 允许在 `module.prop` 或 Shell 脚本中使用 **ANSI 转义码** 来丰富文本的显示 以 ShiroSU Compat 自带的拓展模块为例,可在 `module.prop` 使用如下代码: ```properties {4,8} module.prop theme={null} id=ssu_cmd_ext name=Command Set Extension version=Auto-generated by SSU versionAnsi=\e[1mAuto-generated\e[0m by SSU versionCode=1 author=SSU Developers (OOM WG) description=Add coreutils, busybox, and bash to /system/bin. descriptionAnsi=Add \e[1mcoreutils, busybox, and bash\e[0m to \e[1m/system/bin\e[0m. ``` 使用如上 `module.prop` 后, 模块在 ShiroSU 管理器中显示时 `Auto-generated`、`coreutils, busybox, and bash` 以及 `/system/bin` 均会被加粗 在 `module.prop` 中, 可使用 `nameAnsi`、`versionAnsi`、`authorAnsi`、`descriptionAnsi`、`actionDescriptionAnsi` 来显示包含 ANSI 转义码的文本 虽然不包含 `Ansi` 后缀同样可以使用,但是为了确保兼容性,请这么做 渲染预览 ### 其他属性 以 ShiroSU 的示例模块为例,可在 `module.prop` 使用如下代码: ```properties module.prop theme={null} id=ssu-mod-eg name=SSU Module E.G. # nameAnsi=... version=Version 1 # versionAnsi=... versionCode=1 author=SSU Developers (O.O.M. W.G.) # authorAnsi=... description=ShiroSU module e.g. # descriptionAnsi=... actionDescription=Action # actionDescriptionAnsi=... # updateJson=https://... ``` 除了 `nameAnsi`、`versionAnsi`、`authorAnsi`、`descriptionAnsi`、`actionDescriptionAnsi` 为 **ANSI 转义码** 相关内容之外,ShiroSU 还会解析如下内容: * `actionDescription`(包括 `actionDescriptionAnsi`): 定义此内容,会在执行操作前显示弹窗,此内容用于描述操作有何作用 * `moduleIcon`/`actionIcon`/`webuiIcon`: 各个类型图标的相对路径,不允许绝对路径或路径穿越 ### 覆写机制 ShiroSU 使用 `module.override.prop` 来覆写 `module.prop` 中的字段,可覆写的有: `name`、`version`、`author`、`description`、`actionDescription` 以及包含 `Ansi` 后缀的字段 ## 模块系统 ### Systemless ShiroSU NT 采用元模块机制实现挂载,本身提供了一个原生元模块 —— ShiroSU Systemless ShiroSU 的原生元模块 ShiroSU NT 挂载内容的挂载源为 `SSU`,任何模块挂载内容的挂载源都应该为 `SSUS` ### Shell ShiroSU NT 在此处与其他 root 实现有较大差异,运行的所有 Shell 脚本**并不**在 `BusyBox` 中以 “*独立模式*” 运行 为了提升 Shell 脚本开发的便利性,ShiroSU NT 使用 brush 运行 Shell 脚本,并且 Shell 解释器中内置了 uutils 的部分命令,以 Magisk 的 BusyBox 作为替补 也就是说,命令**优先从 uutils 获取**(部分有兼容性问题的指令没有内置),没有的命令才会从 BusyBox 获取 由于 uutils 命令覆盖面不完整,命令会通过 `PATH` 环境变量优先回退至 BusyBox,请勿在模块的 Shell 脚本内硬编码修改 `PATH`! 除此之外,在 ShiroSU NT 的模块环境中,还内置了 [jaq](https://github.com/01mf02/jaq)(会设置别名为 `jq`), 以及 [ripgrep](https://github.com/BurntSushi/ripgrep) #### 执行环境 ShiroSU NT 的模块系统是直接集成了 brush 而不是编译为独立二进制,Shell 脚本执行都是在模块系统内部进行 `fork` 执行的 因此模块系统在执行所有 Shell 脚本时,**都会注入环境变量与工具函数**, 所有通用脚本或模块都可以在任何由 ShiroSU NT 执行的 Shell 脚本中使用提供的环境 并且 ShiroSU NT 的所有工具函数均是用 Rust 编写的 brush 内置指令,在部分场景下可能与 Shell 的行为不一致,但大部分场景下都是一致可用的 ##### 执行约束 模块执行除了元模块机制的约束下,都是无序执行的 通用脚本执行则按文件名顺序执行,执行顺序总是固定的 执行模块时,会判断模块 ID 不以 `.` 开头且模块 ID 与模块目录名一致,执行通用脚本时,也会判断文件名不以 `.` 开头 当判断失败时,均会跳过执行,错误的模块/通用脚本不会参与到模块系统生命周期的任何一部分,它们会在被发现时删除 ##### 环境变量 为了便于区分,ShiroSU NT 在 Shell 脚本运行时注入以下变量: * `SSU` (`bool`): 在 ShiroSU NT 环境下运行时,此值将为 `true` 但这并不能代表可以通过 `$SSU && # code ...` 来执行代码,应当始终使用 `[ "$SSU" = true ]` 或类似方法来检测 ShiroSU * `SSU_VER` (`string`): ShiroSU NT 的版本号 * `SSU_VER_CODE` (`uint64`): ShiroSU NT 的纯数字版本号 * `SSU_LATE_LOAD`/`LATE_LOAD_MODE` (`bool`): 在越狱模式下运行时,此值将为 `true` * `SSU_MODULE`/`MODULE_ID` (`string`): 当前模块 ID (在元模块 `metauninstall.sh` 执行时 `MODULE_ID` 将为要卸载模块的 ID) #### Recovery ShiroSU NT 不支持通过 Recovery 安装模块, 并且在模块安装时 `META-INF/com/google/android/update-binary` 中的代码不会被执行 #### SU 调用 ShiroSU NT 的 SU 实现除了 `su` 外还附带了 `sudo`,支持部分简单传参或基于 `su` 的传参 但是任何模块内都**不应该**通过 `sudo` 或 `su -c` 执行 Shell 命令! 同样的,任何模块也**不应该**通过**硬编码**来获取命令,例如 `/data/adb/ssu/bin/busybox crond`, 因为无论是在 BusyBox 的 “*独立模式*” 还是直接通过 `PATH` 注入命令,命令都已经可以直接调用,无需任何硬编码的手动获取行为 # SSUS 特性 Source: https://oom-wg.dev/ssu/nt/dev/module/ssus ShiroSU 的原生元模块特性 **ShiroSU Systemless** (简称 *SSUS*) 是基于 [**KernelSU 元模块**](https://kernelsu.org/zh_CN/guide/metamodule.html) 标准所写的元模块, 它拥有自己的运行时,并且支持 **Magisk** SSUS 的开发慢于 SSU NT,目前已经完成元模块,但仍未完成所有实现目标 ShiroSU 的 Systemless 是基于 `bind mount` 的挂载机制实现的,其接口完全兼容 Magisk(但 `.replace` 用法已废除转为使用 `overlayfs` 用法) 但它的挂载机制兼容性更强,是基于动态识别分区实现的,也就是说,模块可以直接通过 SSUS 挂载例如 `odm` 以及其他 root 实现无法挂载的分区,无需为此而付出额外的心血 并且,为了保证更强的安全性,SSUS 会无视模块挂载的 **文件/目录 的 SELinux 上下文**、**目录的权限**以及**文件/目录 的 用户/组**, 如果文件挂载到了不存在的目录,那么其 **SELinux 上下文**、**权限**、**用户/组** 均会继承自父目录 通常来说,这些行为不会影响模块的运行,反而有助于提高稳定性 SSUS 会优先使用模块目录中的 `systemless` 目录执行挂载,如果要仅适配 SSUS,那么可以直接通过 `systemless` 目录使用 Systemless 与常规 Systemless 不同的是,SSUS 要求 `systemless` 目录中若要挂载 `/system`, 需要将文件放至 `systemless/system` 而非直接置于 `systemless` 目录中 # ShiroSU 原生 root 实现 Source: https://oom-wg.dev/ssu/nt/index ShiroSU 分支 - 原生 root 实现 [**ShiroSU NewTech**](https://shirosu.gal.tf/newtech) 是 ShiroSU 的一个分支,主要实现自己的原生 root 实现 ## 特色功能 ShiroSU NewTech 致力于实现独特的 root 使用体验,包括但不限于如下内容: 通过 PWA 可以将网页安装至设备上,可以随时更新随时使用 前后端分离机制使得可以在局域网内自由交互,电脑直接管理手机轻而易举 通过拦截 `zygote` 降权使得白名单应用本身具有完整权限,再通过 `su` 转换获得宽容 SELinux 域 原生 root 不会泄露任何 SELinux 或挂载上下文,后端端口可监听黑名单应用运行状态自动关闭 ShiroSU NT 是白名单机制 root,默认为 adb 授予 root,在隐蔽性与便利性方面都有着良好体验 ## 支持性 ShiroSU NT 是通过注入 `ramdisk` 的 `init` 实现的纯用户态 root 实现逻辑中强制要求 Android `10`+ 的二阶段 SAR,在此范围内的 Android 设备全部支持,没有内核版本限制 ShiroSU NT 也支持在 SELinux 宽容的设备上注入 SELinux 规则实现越狱,也可安装至模拟器/虚拟机的系统分区内使用 *** 请参考 *使用指南* 获取安装与使用说明 开发者可参考 *开发文档* 来了解如何针对 ShiroSU NewTech 进行开发 记录了部分常见问题,若可能,请 [**加入群组**](https://oom-wg.dev/join) 以交流发展 # 历史更新 Source: https://oom-wg.dev/ssu/nt/update ShiroSU NewTech 的历史版本与更新日志 ## 0.1.x # 常见问题 Source: https://oom-wg.dev/ssu/nt/usage/faq ShiroSU NewTech 的常见问题解答 如有问题难以自行解决,请 [**加入群组**](https://oom-wg.dev/join) *** ### 有没有人知道这个怎么用? > [NT](/ssu/nt) 作为原生 root 可安装至设备后通过 WebUI 使用, > [Compat](/ssu/compat) 可作为第三方 root 管理器使用 ### 如何将后端限制至仅本地可访问? > 在设置中将后端监听 IP 改为 `127.0.0.1` 即可 ### 为什么通过网页 fastboot 刷入无法使用? > [WebUSB](https://developer.mozilla.org/en-US/docs/Web/API/WebUSB_API#browser_compatibility) > 仅在 **Chromium 内核**的浏览器上可用 ### 为什么默认密码填写设置里的序列号或者 `SSU-PASSWD` 无效? > 大部分设备均有序列号,仅当明确知晓当前设备无序列号时才可使用回退密码 `SSU-PASSWD` > >
> > 部分机型在系统设置里的序列号并不准确,可通过电脑使用 `adb`/`fastboot` 二次确认 ### 为什么电脑上无法连接手机 IP? > 请注意是否误填为电脑本机 IP `127.0.0.1` 或电脑的局域网 IP,如果通过 adb 转发了端口才可直接使用本机 IP > >
> > 局域网连接需要确保电脑与手机处于同一局域网内,再查询手机在当前局域网内的 IP 才可连接,局域网 IP 通常以 `192.168` 开头 ### 为什么部分浏览器无法连接后端? > 部分浏览器例如 Firefox、Safari 默认拦截 `https`/`http` 混合协议,推荐使用 **Chromium 内核**的浏览器 ### 为什么开启被隐藏权能的应用后无法连接后端? > 检测到目标应用运行时会自动断开端口监听 > >
> > 所以尽量不要对后台长期运行的应用隐藏权能,并且也不要对需要隐藏权能的应用允许自启动 ### 为什么部分脚本无法执行,仅有在使用额外环境(例如 *MT终端扩展包*)时才可执行? > 此类脚本可能涉及硬编码搜索 `busybox` 路径来使用系统环境不存在的命令 > >
> > 所以此问题由脚本自身写法导致,没有办法解决 *** ### 用户态 root 实现的实用性是否会逊于内核态 root 实现? > 对于 root 实现而言,用户态与内核态的主要区别在于主动获取 root 权限的方式,尽管获取方式并不相同,但是结果总是相似的,差异并不大 > >
> > 除此之外,例如 **模块系统** 等其他功能的主要运行逻辑并无差别 > >
> > 并且用户态与内核态并不冲突,使用用户态 root > 实现的同时也可以动态加载内核模块或是静态修改内核文件,同样可以继续使用基于内核态的功能 ### 基于 WebUI 的管理方式是否需要让设备与外部服务器连接? > 通过网页管理 root 是直接连接设备本身开放的后端服务,不需要任何外部服务器的参与 > >
> > 只有通过浏览器访问 WebUI 来下载前端资源是必要的(相当于安装其他 root 实现的**管理器 APK**) > >
> > WebUI 本身也只是静态网页(*SSG*),网页内容均通过连接设备后直接展现 # 使用指南 Source: https://oom-wg.dev/ssu/nt/usage/index ShiroSU NewTech 的安装步骤和使用说明 ## 检查设备支持 ShiroSU NT 仅支持 Android 版本大于等于 `10` 的设备 通常可以在 `设置` → `关于本机` 获取到 Android 版本号,例如: ```properties theme={null} # Android 版本 ro.build.version.release=16 # Android 安全更新 ro.build.version.security_patch=2026-02-01 ``` ## 修补启动镜像 ShiroSU 提供了一种网页修补方案,仅需要将设备的 `init_boot.img` 或 `boot.img` (**优先前者**) 上传,即可在镜像中安装 ShiroSU NT ShiroSU NT 仅支持系统版本为 **Android 10+** 的设备 ShiroSU NT 不可与 Magisk 及其分支或类似实现共存! ## 刷入镜像 ShiroSU 网页支持修补后通过 fastboot 刷入,也可以通过如下命令手动刷入 ```sh init_boot 分区机型 theme={null} fastboot flash init_boot <修补后的镜像路径> ``` ```sh boot 分区机型 theme={null} fastboot flash boot <修补后的镜像路径> ``` 在刷入之前请备份原厂镜像!如果设备无法开机,刷写回原厂镜像即可 网页 fastboot 刷机仅在 **Chromium 内核**的浏览器上可用 ## 使用 ShiroSU NT 可以通过 WebUI 进行管理 在这之前需要获取设备的 **序列号** 作为唯一的密钥,执行以下任意命令即可获取到设备的序列号,或者在 `关于本机` 中找到序列号, 大部分机型的序列号为 **16**位*大写字母*&*数字* 或 **8**位*小写字母*&*数字* 欧加真的高通机型在系统设置中显示的序列号通常是不准确的,请优先通过命令行获取 ```sh ADB (电脑) theme={null} adb get-serialno ``` ```sh ADB (本机) theme={null} getprop ro.serialno ``` ```sh bootloader/fastboot (电脑) theme={null} fastboot getvar serialno ``` ### 连接后端 建立与后端的连接 * 目标IP: 默认 `127.0.0.1` * 目标端口: 默认 `5355` * 鉴权密码: 默认 设备序列号 (在无序列号的设备上将回退为 `SSU-PASSWD`) 如果在局域网中可以在其他设备上填写对应 IP,也可以使用 adb 进行端口转发: `adb forward tcp:5355 tcp:5355` 推荐在 **Chromium 内核**的浏览器上使用 ShiroSU 网页 *** 若有问题,可在此处查看 # C&C 清理 Source: https://oom-wg.dev/suu/feats/data/c&c 苏柚的 C&C 清理功能 C\&C 清理可以定时循环清理文件、目录 ## 配置 配置可以 导出/导入 来进行原始文件编辑或分享配置 配置文件名称 配置文件作者 配置文件版本 信息配置对功能**无任何作用**,仅用于标记配置信息 输出更多日志以排查问题 仅 *root* 可用 处理当前设备上多个用户上的数据 格式遵守 [`time.ParseDuration`](https://pkg.go.dev/time#ParseDuration) 每次清理的间隔 仅第三方应用 不清理缓存的软件包名 路径格式遵守 [`filepath.Match`](https://pkg.go.dev/path/filepath#Match) 要搜索的路径 路径格式遵守 [`filepath.Match`](https://pkg.go.dev/path/filepath#Match) 不搜索的路径或不删除的路径 路径格式遵守 [`filepath.Match`](https://pkg.go.dev/path/filepath#Match) 要删除的路径 即以 `.` 开头的文件或目录 <> 不包括 `.nomedia` 与 `.database_uuid` <> 包括 `.thumbnails` 优先级比 *名称黑名单列表* 高 格式遵守 [`path.Match`](https://pkg.go.dev/path#Match) 或**仅子字符串判断** 不清理的名称 优先级比 *名称白名单列表* 低 格式遵守 [`path.Match`](https://pkg.go.dev/path#Match) 或**仅子字符串判断** 要清理的名称 # GBB 优质存储 Source: https://oom-wg.dev/suu/feats/data/gbb 苏柚的 GBB 优质存储功能 GBB 优质存储可以通过 root 权限与 Zygisk API 重定向目录 故仅可在 root 使用,必须安装附加模块并确保有 Zygisk 环境! GBB 优质存储不会通过 Zygisk 注入任何内容,不会影响环境 ## 配置 配置可以 导出/导入 来进行原始文件编辑或分享配置 配置文件名称 配置文件作者 配置文件版本 信息配置对功能**无任何作用**,仅用于标记配置信息 输出更多日志以排查问题 处理当前设备上多个用户上的数据 **全局生效**地挂载目录 所有软件**可见** 要重定向到的路径 会挂载到 *目标路径列表* 要重定向的路径 会被 *源路径* 挂载 **仅指定软件生效**地挂载目录 所有软件**不可见** 要重定向到的路径 会挂载到 *目标路径列表* 要重定向的路径 会被 *源路径* 挂载 要生效的软件包名 # 功能概览 Source: https://oom-wg.dev/suu/feats/data/index 苏柚的存储功能概览 通过监听目录或定时循环来整理文件 定时循环清理文件、目录 重定向目录 *** ## 路径对照 配置中的可用变量可在此参照使用: | 变量 | 单用户 | 多用户 | 需要 root | | ----------------------------- | ------------------------- | ------------------------- | ------- | | `{id}` | `0` | `<用户ID>` | 仅多用户 | | `{storage}` | `/sdcard` | `/storage/emulated/{id}` | 仅多用户 | | `{androidData}` | `{storage}/Android/data` | `{storage}/Android/data` | 是 | | `{androidMedia}` | `{storage}/Android/media` | `{storage}/Android/media` | 是 | | `{androidObb}` | `{storage}/Android/obb` | `{storage}/Android/obb` | 是 | | ~~`{userData}`~~ `{dataUser}` | `/data/data` | `/data/user/{id}` | 是 | | `{dataMedia}` | `/data/media/0` | `/data/media/{id}` | 是 | 非 root 权限仅可处理当前用户,且无法访问各类私有目录,局限性较大 # Nyanya 整理 Source: https://oom-wg.dev/suu/feats/data/nyanya 苏柚的 Nyanya 整理功能 Nyanya 整理可通过监听目录或定时循环将文件归类到指定目录, 按照规则将文件以 *文件名*/*文件类型* 分类,还可以再依据时间进行二次分类 ## 配置 配置可以 导出/导入 来进行原始文件编辑或分享配置 配置文件名称 配置文件作者 配置文件版本 信息配置对功能**无任何作用**,仅用于标记配置信息 输出更多日志以排查问题 仅 *root* 可用 处理当前设备上多个用户上的数据 归类后文件的存放路径 单位: *秒* 归类文件前的等待时间 是否在监听路径的同时固定循环移动文件 因为部分设备可能无法正常运行监听 格式遵守 [`time.ParseDuration`](https://pkg.go.dev/time#ParseDuration) 固定循环的间隔 是否把文件归类到名称为监听组名称的子目录内 是否把文件归类到名称为文件修改日期的子目录内 格式为 `年-月-日` 不在 *后缀列表* 与 *名称列表* 规则内的文件的归类子目录 即以 `.` 开头的文件或目录 路径格式遵守 [`filepath.Match`](https://pkg.go.dev/path/filepath#Match) 要监听的路径 <> 需要递归的路径将以组名称形式存储到 *递归列表* <> 组名称可用于 *依监听组分类* 用于存储需要递归监听的 *监听列表* 组名称 优先级比 *名称列表* 低 分类文件的后缀规则 <> 组名称会用于归类文件的子目录 <> 变量 `[name]` 会被替换为归类文件所属监听组的组名称 要忽略的文件后缀 优先级比 *后缀列表* 高 格式遵守 [`path.Match`](https://pkg.go.dev/path#Match) 或**仅子字符串判断** 分类文件的名称规则 <> 组名称会用于归类文件的子目录 <> 变量 `[name]` 会被替换为归类文件所属监听组的组名称 要忽略的文件名称 # 功能详情 Source: https://oom-wg.dev/suu/feats/index 苏柚的各项功能 由于很难做到让软件在不看任何文档的情况下即可上手使用,请在查看文档后再使用功能 *** **Nyanya 整理**、**C\&C 清理**、**GBB 优质存储** 等存储相关功能文档 Xposed 相关的注入功能 修改各项设备 ID 一些小玩具 *** 苏柚里面还藏了些什么? # modify.my.id Source: https://oom-wg.dev/suu/feats/modify.my.id 苏柚的 modify.my.id 功能 [modify.my.id](https://modify.my.id) 能够修改部分 *匿名标识符*、*唯一标识符* ## 支持范围 ### AOSP & Google * SSAID (Android ID) * AAID (广告 ID) ### MIUI & JoyUI & HyperOS * OAID (开放匿名设备标识符) * VAID (开发者匿名设备标识符) * Extm ID * GC ID * Key ID ### ColorOS & OxygenOS & realmeUI * Security ID * OUID (开放匿名设备标识符) * GUID (设备唯一标识符) * 百度 ID ### HMS Core (EMUI & MagicUI & HarmonyOS) * OAID (开放匿名设备标识符) # 小提示 Source: https://oom-wg.dev/suu/feats/tip 对于苏柚的细节功能上的提示 双击或长按 *设备信息板块* 可查看更详细的设备信息 双击或长按 *电池信息板块* 可查看更详细的电池信息 以**root 权限**运行**有后台进程的功能**时,不需要**软件本体**在后台运行 # 玩具箱 Source: https://oom-wg.dev/suu/feats/toybox 苏柚的一些玩具功能 一些小玩具? ## 震震震 一直尽可能猛烈地震起来!
  • 震动传感器
## 画笔 画画什么东西?
  • 有触控功能的显示屏
# Xposed 功能 Source: https://oom-wg.dev/suu/feats/xposed 苏柚的 Xposed 注入功能 为苏柚启用对应软件的作用域即可使用对应功能 ## 功能 ### 解锁监听 监听设备解锁时间
  • 系统界面 (`com.android.systemui`)
### 欧加真 OTA 优化 移除 `本地安装` 开发者模式检测 移除 `本地安装` 有更新推送时禁用检测 移除系统更新时 DM 校验检测
  • 软件更新 (`com.oplus.ota`)
### 欧加真 GPA 伪装 伪装 GPA 获取型号以获取指定型号的云控数据
  • 应用增强服务 (`com.oplus.cosa`)
# 多平台 Android 玩机工具 Source: https://oom-wg.dev/suu/index 了解 苏柚 - 做最棒的超级用户工具 [**苏柚**](https://shirosu.gal.tf/utils) (简称 **SUU**) 是由 [回忆溢出工作组](https://oom-wg.dev/) 的开发组成员 [@梦璃酱](https://oom-wg.dev/developers) 发起的项目 <>原为仅有文件整理功能的 root 模块 ***Intelligent***,后与核心成员 [@白彩恋](https://oom-wg.dev/developers) 合作维护,转型为多功能软件 苏柚 旨在以 *普通权限*/*adb 权限*/*DeviceOwner 权限*/*root 权限*/*Xposed 注入* 全面地覆盖各类 Android 设备并加以 Windows 的辅助,提升玩机体验 ## 特色功能 苏柚作为多功能软件,好用功能当然少不了! 文件 **整理**、**清理**、**重定向**,杂乱的存储一下子条理分明啦! 文件系统 **碎片整理**、**脏块回收**、**文件压缩/合并**,设备怎么能用得更久了? 系统不好用?那就注入一下! 这些功能还挺好玩的嘛! *** 请参考 *使用指南* 获取安装与使用说明 *** # 苏柚软件用户使用协议 Source: https://oom-wg.dev/suu/more/agreement 苏柚的用户使用协议 > 生效日期:**二〇二三年十月一日** > >
> > 更新日期:**二〇二五年十月一日** 本《用户协议》(以下称为"**本协议**")适用于"**回忆溢出工作组**"(以下称为"**我们**")作为"**苏柚**"软件(以下称为"**本软件**")的**研发**与**运营**方,通过本软件向**终端用户**(以下称为"**您**")所提供的所有服务(以下称为"**软件服务**")。 本协议用于描述我们与您之间关于使用软件服务等相关内容的权利义务,故请仔细阅读并了解本协议,并选择接受与否,并且如果您是适用的法律法规中定义的未成年人,请在您的法定监护人陪同下审阅。 除非您接受本协议,否则您无权下载、安装、使用本软件及软件服务, 因此您的安装、使用行为将被视为对本协议的接受,并且自愿接受本协议的约束, 但若不接受,请及时卸载本软件并删除本软件的安装包。 我们有权主动因您的违规行为或拒绝本协议的行为而终止向您提供软件服务,在终止后,请您及时卸载本软件并删除本软件的安装包。 本协议所有条款的标题仅为阅读方便而并无实际含义,不能作为本协议的含义解释依据。 本协议条款无论因何种原因而部分无效或无法执行,但其余条款仍有效,对双方仍具有约束力。 ## 关于本软件 本软件是由我们开发的一款多功能软件,旨在通过各方面优化设备使用体验。 我们主要的服务主体是**中华人民共和国**境内(仅限于**大陆地区**,不适用于**香港特别行政区**、**澳门特别行政区**、**台湾省**)的终端用户。 如果您在**中华人民共和国**境外或在**香港特别行政区**、**澳门特别行政区**、**台湾省**使用软件服务,请确保在遵守您当地的适用的法律法规的情况下使用。因您跨境使用软件服务而产生的任何风险或责任,将由您自行承担。 使用软件服务前,请您了解其用途,明确知晓可能带来的风险并自行承担。 ## 知识产权 本软件的一切著作权等相关知识产权,以及本软件的闭源或开源的源代码等相关内容,均受适用的法律法规保护,我们依法享有上述相关知识产权。 ## 禁止行为 除非适用的法律法规允许,或您获得了我们的许可,否则您不得从事以下行为: * 主观恶意地进行包括但不限于造谣、侮辱等负面宣传 * 删除本软件或本软件的安装包中有关著作权等声明信息 * 进行任何形式的逆向工程以试图获取本软件的源代码或破解软件服务 * 篡改或伪造本软件,或传播本软件的篡改或伪造版本 * 通过任何形式主观地干扰软件服务正常运行 * 利用本软件损害我们或其他主体的合法权益或从事任何违反适用的法律法规的活动 ## 权利声明 如果您违反本协议或相关条款规定,我们有权视情况而采取包括但不限于限制或终止提供服务、追究责任等措施,并且如果导致损害我们或其他主体的合法权益,您需要独立承担责任。 ## 免责声明 请您理解并同意,本软件及软件服务是基于当前现有现状的基础提供的,因此我们不作任何形式的明示或默示的保证、声明或陈述。 ### 适用性保证 我们无法保证本软件及软件服务的所有适用性,包括但不限于: * 本软件可以在所有设备、所有系统上运行软件服务 * 软件服务可以满足您的所有需求 * 软件服务是持续不断、及时、安全、无错的 * 使用软件服务获得的任何结果都是准确或可靠的 * 软件服务的质量是十分优秀可靠的 * 软件服务中的任何错误都将得到更正 在适用的法律法规所允许的最大范围内,我们明确否认无论明示或默示的所有保证。 ### 使用风险 使用软件服务中的部分服务可能会带来一定风险,您需要自行承担这部分风险: * 数据损坏丢失风险: * 使用文件管理及相关功能时,错误的操作或不可预见的程序错误,有可能导致您的个人信息或重要数据被意外修改、损坏或删除 * 系统稳定性风险: * 使用需要较高系统权限的功能时,操作不当或与系统或其他程序的冲突,有可能导致您的系统部分功能异常、运行不稳定、损坏而无法启动 ### 第三方责任 您在使用软件服务中接触到的任何第三方服务,其责任由相应的第三方承担。 我们也不对任何第三方服务的任何适用性作任何保证,因此我们不承担因第三方而产生的任何责任。 ### 责任限制 在适用的法律法规所允许的最大范围内,在任何情况下,我们均不对因您使用或无法使用软件服务所导致的无论直接或间接的任何损害承担责任。 ## 变更协议 我们有权修改本协议的条款。 在协议变更后,您需要接受修改后的协议才可以继续使用软件服务,否则应当停止使用。 # 分发协议 Source: https://oom-wg.dev/suu/more/license 苏柚的分发协议 苏柚的分发物使用 [File to Downloader 许可证](https://license.fileto.download) 许可, 其相关开源代码同样使用 [File to Downloader 许可证](https://license.fileto.download) 许可 # 项目起源 Source: https://oom-wg.dev/suu/more/origin 苏柚的发展历程 **苏柚** 原名 Intelligent,由 **@梦璃酱** 于 `2024-12-23` 立项,在 [**ShiroSU 系列**](https://shirosu.gal.tf/) 立项后被合为姊妹项目 具体历程可见 [**ShiroSU 系列说明**](https://shirosu.gal.tf/about) # 苏柚软件用户隐私协议 Source: https://oom-wg.dev/suu/more/privacy 苏柚的用户隐私协议 > 生效日期:**二〇二三年九月二十九日** > >
> > 更新日期:**二〇二五年十月一日** 本《隐私政策》(以下称为“**本政策**”)适用于“**回忆溢出工作组**”(以下称为“**我们**”)作为“**苏柚**”软件(以下称为“**本软件**”)的**研发**与**运营**方,通过本软件向**终端用户**(以下称为“**您**”)所提供的所有服务(以下称为“**软件服务**”)。 我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。 我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:权责一致原则、目的明确原则、选择同意原则、最小必要原则、确保安全原则、主体参与原则、公开透明原则等。 同时,我们承诺将按业界成熟的安全标准,采取相应的安全保护措施来保护您的个人信息。 本政策所有条款的标题仅为阅读方便而并无实际含义,不能作为本政策的含义解释依据。 本政策条款无论因何种原因而部分无效或无法执行,但其余条款仍有效,对双方仍具有约束力。 请在使用软件服务前,仔细阅读并了解本政策。 ## 一、我们如何收集和使用您的个人信息 ### 1. 收集和使用的目的 我们可能需要收集和使用您的个人信息,以向您提供软件服务。 您有权自行选择是否向我们提供软件服务所需的您的个人信息,但如果您不提供必需的您的个人信息,我们将无法向您提供软件服务。 此外,软件服务的部分服务可能需要您额外提供可选的您的个人信息,如果您不提供,我们可能无法向您提供相应服务,但并不影响您使用软件服务的其他服务。 ### 2. 需要哪些并用于哪些内容 软件服务的部分服务需要您向我们提供您的个人信息,以向您提供相应服务,以下内容需要您同意以便于我们提供软件服务: * 个人信息名称:**外置存储信息** * 提供需求:**可选**提供 * 使用用途:仅用于在**本地**实现文件管理类功能,执行对文件的移动、删除文件等操作 * 个人信息名称:**已安装应用列表** * 提供需求:可选提供 * 使用用途:仅用于在**本地**为您展示您的设备安装的所有应用等用途 我们仅在您使用软件服务期间处理您的个人信息,当您停止使用时,我们也会停止处理。 当我们所需的您的个人信息超出上述范围或者要将您的个人信息用于本政策未载明的其他用途时,我们会向您明确说明并获得您的授权同意。 ### 3. 第三方 SDK 接入服务 我们为了向您能够提供更好的软件服务,同时也为了软件服务的良性发展,在软件服务中接入了一些第三方 SDK。 部分第三方 SDK 接入服务可能需要您额外提供您的个人信息,我们接入的第三方 SDK 具体列明如下: * 第三方 SDK 名称:**百度统计** * 所属主体:**北京百度网讯科技有限公司** * 接入用途:统计、分析您使用软件服务的情况,以帮助我们了解使用情况并优化软件服务 * 所需的您的个人信息: * **OAID** * **Android ID** * **日志信息** * **应用程序列表** * 隐私政策:[《**百度统计隐私政策**》](https://tongji.baidu.com/web/help/article?id=330\&type=0\&castk=LTE%3D) * 第三方 SDK 名称:**EMAS** * 所属主体:**杭州阿里云智能科技有限公司** * 接入用途:监测您使用软件服务过程中的性能与崩溃情况,以帮助我们定位并修复软件服务的问题;提供软件更新服务 * 所需的您的个人信息: * **设备信息**(品牌、型号、CPU、分辨率) * **IMEI** * **Android ID** * **系统信息**(版本、语言) * **网络信息**(运营商、网络类型) * **位置信息** * 隐私政策:[《**EMAS 隐私权政策**》](https://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud202112071754_83380.html) ## 二、我们如何使用 Cookie 和同类技术 ### 1. Cookie Cookie 是一种在互联网中普遍使用的网页技术,由于软件服务中并不包含网页服务,因此我们不使用 Cookie 技术。 ### 2. 同类技术 除了 Cookie 外,我们也不会使用网站信标、像素标签等用于追踪您的个人信息的同类技术。 ## 三、我们如何共享、转让、公开披露您的个人信息 ### 1. 共享 我们不会与任何第三方分享您的个人信息,但以下情况除外: * 在获取授权同意的情况下共享 * 获得您的授权同意后,我们会与第三方共享您的个人信息 * 为履行相关义务所必需的共享 * 我们可能会遵守适用的法律法规等有关规定,或按照政府主管部门的强制性要求,对外共享您的个人信息 * 与我们的关联主体共享 * 我们可能会与我们的关联主体在受到本政策约束的情况下共享必要的您的个人信息,但关联主体如要改变您的个人信息的共享目的,将再次征求您的授权同意 * 与第三方 SDK 接入服务的提供主体共享 * 我们会仅出于已声明的目的,通过第三方 SDK 接入服务向您提供软件服务中的部分内容,因此我们可能会与第三方 SDK 接入服务的提供主体在合法合规合理的情况下共享必要的您的个人信息 * 对于第三方 SDK 接入服务的清单与共享的您的个人信息的内容,我们已在[“**我们如何收集和使用您的个人信息**”](#一、我们如何收集和使用您的个人信息)中列出 ### 2. 转让 我们不会将您的个人信息转让给任何第三方,但以下情况除外: * 在获取授权同意的情况下转让 * 获得您的授权同意后,我们会向第三方转让您的个人信息 * 在涉及合并、收购或破产清算时转让 * 在涉及合并、收购或破产清算时,如涉及到您的个人信息的转让,我们会要求新的持有您的个人信息的主体继续受本政策的约束,否则我们将要求该主体重新征求您的授权同意 ### 3. 公开披露 原则上,我们不会公开披露您的个人信息,但以下情况除外: * 在获取授权同意的情况下公开披露 * 获得您的授权同意后,我们会公开披露您的个人信息 * 为履行相关义务所必需的公开披露 * 我们可能会遵守适用的法律法规等有关规定,或按照政府主管部门的强制性要求,公开披露您的个人信息 ## 四、我们如何保护您的个人信息 ### 1. 保护方式 我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止您的个人信息遭到泄漏、毁损或者丢失。 我们会采取合法合规合理且必要的措施,保护您的个人信息,包括但不限于以下方式: * 对于本地数据,我们会采取加密存储等方式处理,并将数据存储至本软件的私有目录内 * 对于网络数据,我们会使用 TLS 加密等方式确保数据传输的安全 ### 2. 其他措施 我们会确保未收集无关的您的个人信息,并只在达成已声明的目的所需的期限内保留您的个人信息,除非需要延长保留期限或受到适用的法律法规的允许,并且在超出保留期限后,我们将对您的个人信息进行删除或匿名化处理。 互联网并非绝对安全的环境,我们会采取合法合规合理且必要的措施尽力确保您提供的个人信息的安全性,但仍有可能无法杜绝您的个人信息遭到泄漏、毁损或者丢失,导致您的合法权益受损,请您理解上述风险并自愿承担。 但如果您的个人信息不幸发生安全事件,我们会按照适用的法律法规的要求,尽可能采取补救措施,并向您告知以下可能的内容: * 安全事件的基本情况以及可能的影响 * 我们已经采取或将要采取的处置措施 * 对您的补救措施以及自主防范和降低风险的建议 我们会通过可能的方式及时向您告知,若难以或无法告知您,我们会采取合理有效的方式发布公告。 ## 五、您的个人信息的存储 ### 1. 存储位置 我们会遵守适用的法律法规的规定,确保您的个人信息存储在安全位置: * 对于本地数据,我们会存储至本软件的私有目录,并确保其受加密保护 * 对于网络数据,我们会安全存储并使外部无法访问,并且确保传输过程是安全的 原则上,我们会将在**中华人民共和国**境内(仅限于**大陆地区**,不适用于**香港特别行政区**、**澳门特别行政区**、**台湾省**)获取到的您的个人信息存储至**中华人民共和国**境内,不会将您的个人信息进行跨境传输。 如果您在**中华人民共和国**境外或在**香港特别行政区**、**澳门特别行政区**、**台湾省**使用软件服务,请确保在遵守您当地的适用的法律法规的情况下使用。因您跨境使用软件服务而产生的任何风险或责任,将由您自行承担。 ### 2. 存储期限 我们仅在您使用软件服务的期间内,为实现已声明的目的而保留您的个人信息,您在使用软件服务的过程中产生您的个人信息将按照如下规则存储: * 对于本地数据,将一直保留在您的设备上,直至您主动清除本软件的所有数据或卸载本软件 * 对于网络数据,我们会在您使用软件服务所需的期限内并遵守适用的法律法规的情况下保留 如果适用的法律法规另有规定,或出于其他公共利益,或您另行授权同意,我们可能需要较长时间保留相关数据。 ## 六、您如何管理您的个人信息 我们遵守适用的法律法规以保障您对自己的个人信息行使管理权利。 ### 1. 访问、修改 您有权访问您的个人信息,适用的法律法规规定的例外情况除外。 如果您想行使数据访问权,可以通过以下方式自行访问: * 软件服务的基本设置信息: * 在本软件的设置页面内访问 * 软件服务的各功能配置信息: * 在各功能的配置页面内访问 您可以通过以上方式访问您的个人信息,并可以依据您的需求而自行修改相关内容。 ### 2. 删除 对于存储至本地的您的个人信息,您可以通过清除本软件的所有数据或卸载本软件来删除您的个人信息。 对于另外的您的个人信息,您可以在以下情形中请求我们删除您的个人信息: * 我们处理您的个人信息的行为违反了适用的法律法规或与您的约定 * 我们收集、使用您的个人信息却未征得您的同意 * 您不再使用软件服务,或我们不再为您提供软件服务 若我们决定响应您的删除请求,我们还会要求从我们获得您的个人信息的第三方及时删除您的个人信息,除非适用的法律法规另有规定,或第三方已获得您的独立授权,或您的个人信息已被匿名化处理。 ### 3. 改变授权范围 您可以随时给予或收回您的授权同意。 但如果您收回同意提供必需的您的个人信息,我们将无法继续向您提供软件服务,若只是收回同意提供额外的您的个人信息,则我们可能无法继续向您提供相应服务,但并不影响您使用软件服务的其他服务。 当您收回同意后,我们将不再处理相应的您的个人信息,但并不会影响此前基于您的授权同意而进行的您的个人信息的处理行为。 ### 4. 例外情况 按照适用的法律法规等有关规定,在以下情形中我们将无法响应您的请求: * 与我们履行适用的法律法规规定的义务相关的 * 与公共安全、公共利益等相关的 * 有充分证据表明您存在主观恶意或滥用权利的 * 响应您的请求将导致您或其他主体的合法权益受到损害的 * 涉及商业秘密的 ## 七、未成年人保护 软件服务主要面向成人。 若您是适用的法律法规中定义的未成年人,在使用软件服务之前,请先取得您的法定监护人的同意。 ## 八、如何联系我们 当您遇到如下情形时,可以选择与我们联系: * 对本政策有任何疑问或反馈的 * 对管理您的个人信息有疑问或需要帮助的 * 需要进行投诉或举报的 您可以通过以下方式与我们联系: * 电子邮件:[**oom@200ok.work**](mailto:oom@200ok.work) 一般情况下,我们将在**一**个**自然月**内回复。 特殊情况下,可能因为节假日放假安排、软件服务运行故障等原因导致未及时回复,如果出现此类情况请您谅解。 但出现如下情形时,我们可能会拒绝您的请求: * 您的请求多次重复、超出合理限度、不切实际的 * 您的请求会给我们或其他主体的合法权益带来风险的 * 有充分证据表明您存在主观恶意或滥用权利的 ## 九、隐私政策变更 本政策可能会变更,但未经您明确同意,我们不会削减您按照本政策所应享有的权利。 当本政策发生变更时,我们会告知您并重新征求您的授权同意,然后您才可以继续使用软件服务,如果您不再次授权同意,我们则无法继续向您提供软件服务。 # 历史更新 Source: https://oom-wg.dev/suu/update 苏柚的历史版本与更新日志 "*常规代码维护*" 包括但不限于 **依赖更新**、**改动部分代码**、**优化性能**、**优化布局**、**提升稳定性**、**修复错误** 以及 **为后续功能铺垫** 查找具体版本时可通过 *筛选* 来缩小查找范围 ## 0.8.x 仍在开发中... ## 过时版本 `2024-12-23` 至 `2025-2-11` 的所有版本已完全弃用,部分版本可在 [GitHub](https://github.com/OOM-WG/ShiroSU-Utils/releases) 查看 **提取码: `mysu`** <> `2025-2-11` 至 `2025-6-3` 的所有过时版本 下载时若提示会员下载,请**切换浏览器 `UA` 为电脑** # 常见问题 Source: https://oom-wg.dev/suu/usage/faq 苏柚的常见问题解答 如有问题难以自行解决,请 [**加入群组**](https://oom-wg.dev/join) *** ### 为什么有些功能运行报错读取配置失败? > 因为配置没有生成或更新后有新配置暂未配置,需要保存配置后才可运行 这样设计的初衷是因为默认配置不一定能适用于所有人,所以请自行确认配置后再使用 # 使用指南 Source: https://oom-wg.dev/suu/usage/index 苏柚的安装步骤和使用说明 您需要有一部 Android **`7`+** 的设备,架构为 `arm64-v8a`、`armeabi-v7a`、`x86_64`、`x86` 之一 苏柚最新版本及历史版本下载 下载苏柚后,请安装至您的 Android 设备 您需要阅读并同意 [**隐私政策**](/suu/more/privacy)、 [**用户协议**](/suu/more/agreement)、 [**分发协议**](/suu/more/license) 后才可使用苏柚 您需要授予必要权限才可使用苏柚 使用 *普通权限* 局限性较大,只能使用部分基本功能,使用基本功能的范围也会有所限制 <> 您只需要在使用特定功能时才需要授权所需权限 要使用 *adb/do 权限*,需要您通过 [Shizuku](https://shizuku.rikka.app/zh-hans/) 或 [Dhizuku](https://github.com/iamr0s/Dhizuku) 授权权限 苏柚支持所有提供 `su` 可执行的 root 实现,但部分功能需要附加模块支持,故建议使用有模块功能的 root 实现 由于暂无较多用户使用提供名称非 `su` 的 root 实现,故暂不推出 `su` 名称自定义功能 不建议使用任何**停止维护**或**不稳定**的 root 实现,例如 [**`SukiSU Ultra`**](https://sukisu.org/zh) <> 若可能,请切换使用在维护的稳定 root 实现 <> 使用不被建议的 root 实现不会对苏柚的运行产生任何影响,但是有可能因为 root 实现本身的问题导致苏柚运行异常 您**只有在使用 *Xposed 功能* 的情况下**才需要为苏柚启用 Xposed 作用域 不支持使用免 root Xposed 框架! <> 对于支持的 Xposed 框架,参见 [YukiHookAPI](https://highcapable.github.io/YukiHookAPI/zh-cn/guide/supportive.html) 对于所需的 Xposed 作用域范围,请按照已启用的 Xposed 功能进行选择 苏柚的各项功能 *** 若有问题,可在此处查看 # 网页玩机工具 Source: https://oom-wg.dev/suu/web/index 了解 苏柚 - 全方位打击,玩机轻松上手! > 苏柚的网页版本仍在开发中...