跳转到内容

管理器特性开发

更新: 9/28/2025字数: 0 字时长: 0 分钟

TIP

本篇内容的所有特性都是在 ShiroSU 管理器实现的,与 ShiroSU root 实现没有关联性, ShiroSU 管理器的特性可在其他 root 实现上使用

ShiroSU 管理器的特性大多都是在module.prop与其他特定文件上的拓展

IMPORTANT

请确保模块内的所有文本文件均使用UNIX (LF)换行类型,而不是Windows (CR + LF)Macintosh (CR)

module.prop

ANSI 转义码[1]

ShiroSU 允许在module.prop或 Shell 脚本中使用ANSI 转义码来丰富文本的显示,例如可在module.prop使用如下代码:

properties
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 (O.O.M. W.G.)
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-generatedcoreutils, busybox, and bash以及/system/bin均会被加粗

module.prop中, 可使用nameAnsiversionAnsiauthorAnsidescriptionAnsiactionAnsi来显示包含 ANSI 转义码的文本

虽然不包含Ansi后缀同样可以使用,但是为了确保兼容性,请这么做

ShiroSU 是通过顺序解析来读取module.prop中的内容的,所以请确保包含Ansi后缀的值是靠后的

展开查看渲染效果

module.prop 渲染效果

损坏检测&规范检查

ShiroSU 管理器有一个机制用来检测module.prop是否损坏或符合规范, 如果损坏或不符合规范,ShiroSU 管理器会在该模块的上方显示一个标签

WARNING

有些模块会使用sed命令来修改module.prop以实现实时更新内容,但此方法有一定概率会导致module.prop文件损坏, 请避免通过sed修改或者通过其他方式来显示实时内容,也可以实现一个module.prop损坏检测机制,在其损坏时恢复至默认内容

ShiroSU 管理器具体会检测如下内容:

  • module.prop内是否包含不符合语法的内容
  • idnameversionauthordescription是否为空 (如有带有Ansi后缀的同样检测)
  • id是否符合此正则表达式:^[a-zA-Z][a-zA-Z0-9._-]+$
  • versionCode是否大于0
  • module.prop内是否存在大小写不规范的情况 (ShiroSU 管理器会正常解析,但仍会显示标签)

如果只是module.prop损坏,重装模块通常可解决此问题,如果不符合规范,则需要开发者自行修复以解决此问题

其他内容

除了ANSI 转义码相关内容之外,ShiroSU 管理器还会解析如下内容:

  • action: 定义此内容,会在执行操作前显示弹窗,此内容用于描述操作有何作用
  • runtimeInfo: 定义此内容,会在模块名称旁边显示可点击图标,此内容为文本文件的模块相对路径/绝对路径,用于描述模块运行时的信息

ShiroSU 管理器还会自动搜索模块目录内是否有 符合正则表达式(?i)^(?:license|licence)(?:[-_][A-Za-z0-9]+)?(?:\.(?:txt|md|mkd))?$的文件, 如有,则会在模块信息卡片中显示一个许可证标签,点击则会显示模块的许可证内容

其他特性

ShiroSU 会在后续更新中提供模块备份接口模块更新接口 (在更新时执行原本模块的代码)模块存储接口等功能,这些内容尚在规划中,会在后续更新中推出

贡献者

页面历史


  1. ANSI 转义码是一种用于控制文本显示样式的字符编码方式,常用于终端和控制台应用程序中,详见维基百科↩︎

/dev/module/manager