github IamCanincan/TS-AUTO-ADD v2.2.19.5-yuzu

3 hours ago

📋 核心变更摘要

本版新增本地日志缓冲(解决 logcat 记录一会儿就没了的问题),并完成一轮工程整理(换行符统一为 LF、CI 增加语法检查、.gitignore 精简、README 增加徽章与下载入口、提交历史压缩)。功能逻辑沿用 v2.2.19.4-yuzu 的四项修复,模块行为与现有配置无需改动。

v2.2.19.4-yuzu 升级:只有日志缓冲是新增内容,覆盖刷入即可。
从更早版本升级:会一并获得下节列出的四项修复。


✨ 本版新增

📜 本地日志缓冲

  • 除写入 logcat(tag 为 TS-AUTO)外,日志还会写入 /data/adb/ts_auto.log,每行带 月-日 时:分:秒 时间戳。
  • 缓冲有固定上限:超过 64KB 时自动只保留末尾 200 行,不会无限增长;裁剪采用「先写临时文件、成功后再覆盖」的方式,不会因裁剪失败而丢日志。
  • 文件权限为 600,且位于 0700/data/adb 下,仅 root 可读,其它应用无法访问(旧版本放在 /data/local/tmp,该目录所有应用可读)。
  • 之所以要加缓冲:logcat 是内存环形缓冲(默认几百 KB,且由全系统共用),系统繁忙时旧记录很快被挤掉、重启即清空,事后排查往往已经看不到;缓冲文件则可跨重启保留。
  • 缓冲文件不可写时静默退化为只写 logcat,不影响同步流程。
  • 管理器的“操作”按钮优先展示缓冲内容,安装完成时会打印日志路径;卸载时缓冲文件随模块一并删除。

⚡ 本版优化

➕ 日志读取方式

  • 点管理器“操作”按钮即可查看:action.sh 会同步一次,并附带打印最近 15 条日志(管理器以 root 运行,无需自己 su),缓冲不存在时回退到 logcat

  • 设备上手动查看(/data/adb0700需要 root;在终端 App 里先 su,或把命令写成 su -c '...'):

    tail -n 50 /data/adb/ts_auto.log                      # 本地缓冲,跨重启保留(推荐)
    grep -E '后端|同步|失败|停止' /data/adb/ts_auto.log    # 只看关键行
    logcat -d -s TS-AUTO | tail -n 30                     # 系统日志(重启即清空)
    logcat -s TS-AUTO                                     # 实时跟随
  • 电脑上查看(用 adblogcat 不需要 root,读 /data/adb 下的文件则需要):

    adb logcat -s TS-AUTO                                        # 实时查看系统日志
    adb shell su -c 'tail -n 50 /data/adb/ts_auto.log'           # 读本地缓冲
    adb shell su -c 'cat /data/adb/ts_auto.log' > ts_auto_log.txt   # 导出到电脑

🧹 工程整理

  • 换行符统一为 LF:新增 .gitattributes,对 *.sh / *.awk / *.prop / *.json / *.md / *.yml 等固定 LF,避免因 CRLF 导致 Android 上 shebang 解析失败(/system/bin/sh^M: not found);LICENSE 一并由 CRLF 转为 LF。
  • CI 增加语法检查:构建前对入口脚本、lib/backends/META-INF 内的脚本执行 sh -n,语法不通过的代码不进包。
  • .gitignore 精简:由 111 行压缩为 26 行,并修正原先会误忽略 module/META-INF/ 下新增文件的规则。
  • README:增加 CI / Release / License 徽章与下载入口,区分正式发行版与带时间戳的 CI 测试包。
  • 提交历史压缩:由 281 个提交(其中 236 个 merge 提交)压缩为单一提交,各历史版本仍可通过 tag(v1.4.31.5 ~ v2.2.19.5)查看。

🧹 模块结构分类(沿用)

  • 文件分为三类:入口脚本(模块根目录)、lib/ 共享库、backends/ 后端实现。
  • lib/ 按功能拆分:core(常量/状态/日志)、locktoolsapplistbackendprops,由 common.sh 统一加载;后端实现各自独立成文件(backends/tricky.shtarget.txtbackends/teesim.awkconfig.json)。

🔋 省电与稳定(沿用)

  • 无任何后台联网轮询;单进程同时监听 packages.listrules.txt;2 秒防抖合并短时触发;通过内容指纹比对,仅在数据真实变化时同步。
  • 日志只在开机与文件变化时写入(无事件不写),缓冲裁剪也只在超限时发生,不引入常驻开销。

🐛 沿用的修复(v2.2.19.4-yuzu 引入)

  • 常驻列表末行无换行导致粘连:用 echo 包名 >> rules.txt 追加的包名不再与上一行粘连(同步前自动补齐末行换行);文件开头的 UTF-8 BOM 也会被清除。
  • 写入失败被误报成功target.txt 替换失败(目录只读、文件被占用等)时如实返回失败 —— 描述标注 ⚠️、手动同步退出码 1
  • inotify 探测方式错误:原先探测 busybox 时执行的是 busybox --help(不含 applet 帮助),导致仅装有 busybox 的设备被误判为“无 inotify 工具”而直接退出;现改为实际执行 applet 的 --help
  • inotifyd 监听失效inotifyd PROG FILE:mask 会把 PROG 当作程序执行,原先传 - 不会产生任何输出;现改用 echo 打印事件,再由管道读取。

⚙️ 运行机制(沿用,未变)

  • 后端判定按模块 id/data/adb/modules/tricky_store(Tricky Store / OSS)与 /data/adb/modules/teesim(TEE Simulator);带 disable 标记的模块不计入,两个后端同时启用时模块直接停止(不做优先级选择)。
  • TEE Simulator 只改 profiles.default.appskeybox / mode / patchLevel / 设备信息等字段,以及其它 profile(如 ccc)均逐字节保留;无法可靠定位数组时放弃写入。
  • rules.txt 支持 # 注释与空行,同步前自动补齐末行换行、清除 UTF-8 BOM。
  • 属性伪装在开机早期执行apply_resetprop 位于 post-fs-data.sh(Zygote 启动前),在 Build.TYPE / Build.TAGS 等静态字段取值前生效。
  • 事件驱动:单进程 inotify 监听 packages.listrules.txt,2 秒防抖,内容指纹比对;无联网、无定时轮询。

🗑️ 移除

  • 全局可读的临时日志:不再产生 /data/local/tmp/ts_auto.log(该目录所有应用可读,存在被检测的风险);升级与卸载时会清理遗留文件。
  • 安全补丁功能:不读取、不生成、不修改 security_patch.txt
  • 周期联网任务:无后台定时拉取。

📥 安装与操作指南

项目 说明
支持环境 Tricky Store / Tricky Store OSS / TEE Simulator,配合 Magisk / KernelSU / APatch
部署 刷入 ZIP 后重启
手动同步 sh /data/adb/modules/ts-auto-add/action.sh
状态查看 模块描述:✅ [后端 | 应用: X | 更新: HH:MM]
日志 管理器“操作”按钮;tail -n 50 /data/adb/ts_auto.log(需 root)或 logcat -d -s TS-AUTO(电脑 adb logcat -s TS-AUTO

📁 数据文件路径

后端 判定(模块 id) 维护目标 常驻列表
TEE Simulator teesim /data/adb/teesim/config.json(仅 profiles.default.apps/data/adb/teesim/rules.txt
Tricky Store / OSS tricky_store /data/adb/tricky_store/target.txt /data/adb/tricky_store/rules.txt

运行文件(位于当前后端目录下):

文件 说明
.ts_daemon_pids.list 后台子进程 PID 列表
.ts_fingerprint 变更检测指纹缓存
.ts_lock / .ts_debounce / .ts_tmp 运行时锁 / 临时文件

日志缓冲固定存放在 /data/adb/ts_auto.log不在后端目录;权限 600、仅 root 可读,超过 64KB 时只保留末尾 200 行,卸载时删除)。

⚠️ 注意事项

  • 两个后端不要同时启用:同时启用时模块直接停止,描述显示 ⛔ [模块已停止 …];停用或卸载其中一个后重启即可恢复。
  • TEE Simulator 模式需要 awk(系统自带或框架 busybox);缺失时模块会放弃写入配置并记录日志,装上 busybox 后会在下次同步时自动重试。
  • 首次安装后请重启设备;编辑 rules.txt 会自动触发同步,无需重启。
  • 排查问题请优先查看本地缓冲 /data/adb/ts_auto.loglogcat 中的记录可能已经被系统挤掉。
  • 如需禁用属性重置:编辑 post-fs-data.sh,注释掉 apply_resetprop 后重启。
  • 卸载时只删除本模块自身的文件(含日志缓冲),target.txt / config.json 保持不动。

💡 提示:本版以新增日志缓冲与工程整理为主,功能行为无变化;升级后无需改动任何现有配置。

版本:v2.2.19.5-yuzu | 更新日期:2026-09-14

Don't miss a new TS-AUTO-ADD release

NewReleases is sending notifications on new releases.