跳转到主要内容

module.prop

ANSI 转义码

ShiroSU 允许在 module.prop 或 Shell 脚本中使用来丰富文本的显示 以 ShiroSU 自带的拓展模块为例,可在 module.prop 使用如下代码:
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 (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-generatedcoreutils, busybox, and bash 以及 /system/bin 均会被加粗 module.prop 中, 可使用 nameAnsiversionAnsiauthorAnsidescriptionAnsiactionAnsi 来显示包含 ANSI 转义码的文本 虽然不包含 Ansi 后缀同样可以使用,但是为了确保兼容性,请这么做
ShiroSU 是通过顺序解析来读取 module.prop 中的内容的,所以请确保包含 Ansi 后缀的值是靠后
渲染预览

其他属性

以 ShiroSU 的示例模块为例,可在 module.prop 使用如下代码:
module.prop
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=...
action=Action
# actionAnsi=...
# updateJson=https://...
除了 nameAnsiversionAnsiauthorAnsidescriptionAnsiactionAnsiANSI 转义码 相关内容之外,ShiroSU 管理器还会解析如下内容:
  • action(包括 actionAnsi): 定义此内容,会在执行操作前显示弹窗,此内容用于描述操作有何作用
  • runtimeInfo(已弃用): 定义此内容,会在模块名称旁边显示可点击图标,此内容为文本文件的 模块相对路径/绝对路径链接,用于描述模块运行时的信息

损坏检测 & 规范检查

ShiroSU 管理器有一个机制用来检测 module.prop 是否损坏或符合规范, 如果损坏或不符合规范,ShiroSU 管理器会在该模块的上方显示一个标签
有些模块会使用 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 内是否存在大小写不规范的情况 (管理器会正常解析,但仍会显示标签)
如果只是 module.prop 损坏,重装模块通常可解决此问题,如果不符合规范,则需要开发者自行修复以解决此问题

模块标签

ShiroSU 管理器默认会在模块名称下方显示一个内容为该模块 id 的小标签, 当模块目录内存在文件名称符合以下正则表达式的文件时,同样也会显示对应的小标签:
  • (?i)^changelogs?(?:[._-][A-Za-z0-9._-]+)?(?:\.(?:txt|md|mkd))?$: 模块的更新日志,点击则会通过弹窗显示内容
  • (?i)^(?:license|licence)(?:[._-][A-Za-z0-9._-]+)?(?:\.(?:txt|md|mkd))?$: 模块的许可证,点击则会通过弹窗显示内容
搜索文件时不会搜索子目录内的内容