管理器特性开发
更新: 10/20/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使用如下代码:
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-generated、coreutils, busybox, and bash以及/system/bin均会被加粗
在module.prop中, 可使用nameAnsi、versionAnsi、authorAnsi、descriptionAnsi、actionAnsi来显示包含 ANSI 转义码的文本
虽然不包含Ansi后缀同样可以使用,但是为了确保兼容性,请这么做
ShiroSU 是通过顺序解析来读取module.prop中的内容的,所以请确保包含Ansi后缀的值是靠后的展开查看渲染效果

损坏检测&规范检查
ShiroSU 管理器有一个机制用来检测module.prop是否损坏或符合规范, 如果损坏或不符合规范,ShiroSU 管理器会在该模块的上方显示一个标签
WARNING
有些模块会使用sed命令来修改module.prop以实现实时更新内容,但此方法有一定概率会导致module.prop文件损坏, 请避免通过sed修改或者通过其他方式来显示实时内容,也可以实现一个module.prop损坏检测机制,在其损坏时恢复至默认内容
ShiroSU 管理器具体会检测如下内容:
module.prop内是否包含不符合语法的内容id、name、version、author、description是否为空 (如有带有Ansi后缀的同样检测)id是否符合此正则表达式:^[a-zA-Z][a-zA-Z0-9._-]+$versionCode是否大于0module.prop内是否存在大小写不规范的情况 (ShiroSU 管理器会正常解析,但仍会显示标签)
如果只是module.prop损坏,重装模块通常可解决此问题,如果不符合规范,则需要开发者自行修复以解决此问题
模块标签
ShiroSU 管理器默认会在模块名称下方显示一个内容为该模块id的小标签, 当模块目录内存在文件名称符合以下正则表达式的文件时,同样也会显示对应的小标签:
(?i)^changelogs?(?:[._-][A-Za-z0-9._-]+)?(?:\.(?:txt|md|mkd))?$: 模块的更新日志,点击则会通过弹窗显示内容(?i)^(?:license|licence)(?:[._-][A-Za-z0-9._-]+)?(?:\.(?:txt|md|mkd))?$: 模块的许可证,点击则会通过弹窗显示内容
NOTE
搜索文件时不会搜索子目录内的内容
其他内容
除了ANSI 转义码相关内容之外,ShiroSU 管理器还会解析如下内容:
action: 定义此内容,会在执行操作前显示弹窗,此内容用于描述操作有何作用runtimeInfo: 定义此内容,会在模块名称旁边显示可点击图标,此内容为文本文件的模块相对路径/绝对路径,用于描述模块运行时的信息
其他特性
ShiroSU 会在后续更新中提供模块备份接口、模块更新接口 (在更新时执行原本模块的代码)、模块存储接口等功能,这些内容尚在规划中,会在后续更新中推出



白彩恋