相比 v1.2.1,这一版没有新功能,只修了一批“平时很安静、出问题时才暴露”的细节。
修复
ENABLED=0真正全局生效:v1.2.1 里只有service.sh看这个开关,post-fs-data和boot-completed照旧干活;现在三个入口判断一致,关掉就是真的关掉。- 自我禁用后能正常回来:v1.2.1 触发自我禁用时不清零异常启动计数,重新启用后第一次开机就可能再次被禁用;现在先清零再禁用,并且只有
disable文件确实写成功才执行,写不进去就只记一笔、等你手动处理。 - 异常时只动手一次:新增开机标识校验与每次开机的状态清理——读不到开机标识就跳过本次动作,处理结果按开机标识去重,历史状态文件不再堆积。
- 状态锁更稳:锁文件时间戳损坏时不再原地空转;新增“跨开机”和“持锁进程是否还活着”的判断;等太久就放弃并记日志;只释放自己持有的锁。
- 健康判断更严谨:先写快照、再标记“已处理”,避免快照没写完却被当成处理完毕。
- 异常会说出来:
reboot与reboot -f都失败时写入状态,并在 Action 面板提示手动重启。 - 细节对齐:单字符模块 ID 也能被识别;精准禁用同样跳过已标记
remove的模块;上一次是异常启动时保留日志现场,不再清空。 - 工程侧:CI 的
shellcheckerror 级别问题会真正让构建失败,测试用例必须真的输出PASS:才算通过;刷机包补齐META-INF,现在可以直接在 recovery 里刷入。