Skip to content

启幕 v1.4.0(关机动画 + 裁切/区间/取消/预览)

Choose a tag to compare

@Baimacao Baimacao released this 06 Oct 14:18
· 4 commits to main since this release

启幕 v1.4.0

这个版本把双端都补齐了:关机动画、视频裁切、循环区间、取消任务、预览。


1. 关机动画(双端)

以前只做开机动画。现在 PC 端与安卓端都能做关机动画。

开机动画 关机动画
文件名 bootanimation.zip shutdownanimation.zip
视频版 bootanimation.mp4 shutdownanimation.mp4
段类型 p(可被打断) c(必须播完,否则可能播一半就被关掉)
Magisk 模块 id bootanimforge_bootanimation bootanimforge_shutdownanimation

两个动画的 Magisk 模块 id 不同,所以可以同时装、互不覆盖。

⚠ 关机动画的路径与文件名没有 AOSP 级的统一规范,各厂商自定义较多,部分机型根本不支持。
刷入前建议先确认设备上原本有没有这个文件、放在哪,再替换同一路径。

踩坑记录:段类型只在用户没显式指定时才由 target 决定。
一开始 normalizePart / 构造函数里写死了默认 type='p',结果 c 永远覆盖不上,
而 desc.txt 看上去完全正常 —— 双端都中过这个招,现在两边都改成"未指定时留空"。


2. 视频裁切 / 取用区间

  • PC 端:取用区间新增可拖动滑块,与输入框双向联动;拖动时时间轴与帧数预估实时更新
  • 安卓端:新增「设置取用区间」,可填起止秒数;生成前实时显示"预计多少帧",帧数偏多会变黄提醒

这是最实用的一项 —— 手机生成较慢,先截短几秒能省很多时间。


3. 取消当前任务(安卓端)

生成过程中显示百分比与当前段进度,并有取消当前任务按钮。
取消是逐帧检查的,响应很快;取消后会删掉半成品,不会留下看起来像成品的坏包。


4. 预览(安卓端)

解决"装上才知道效果、验证却要重启"的问题:

入口 作用
制作页 →「预览效果」 按当前参数(分辨率 + 取用区间)在内存里渲染 2 帧。黑色部分即留边,能直接看出比例对不对、有没有被拉伸。不写任何文件
主界面 →「预览当前动画」 用 root 把设备上正在使用的动画复制出来、解包、取若干帧显示,并列出 desc.txt 声明。不用重启就能确认现状

5. 其他同步

安卓端主界面新增操作对象切换(开机/关机),路径候选与文件名会跟着换,
扫描、校验、安装、备份、还原整条链路都对两种目标生效。


验证情况

套件 结果
PC 后端端到端 109 / 109
PC 界面全流程 58 / 58,控制台零错误
PC 动效 14 / 14
安卓 APK 静态 75 / 75
安卓包解析逻辑 31 / 31
安卓制作核心 56 / 56

新增的验证里,值得说的几条:

  • 取用区间真的生效:设 1.0s→2.0s @10FPS,断言产物只有 10 帧,且只向视频源取了 10 次帧
  • 取消真的干净:进度回调返回 false 时必须抛 InterruptedException,且不留下半成品文件
  • 关机动画的 desc 真的是 c:从真跑出来的 zip 里读出 desc.txt 逐字比对
  • 两个目标只有段类型不同:把 c 换成 p 后应与开机动画的 desc 完全一致
  • 用户显式指定段类型时不被 target 覆盖

手写的 PNG 编码器与 STORE zip 写入器依旧在 PC 上真跑,由 ffmpeg 逐像素当裁判、BootCore 双重校验。

⚠ 未能验证的部分

本机没有 adb、也没有真机,以下我不会假装验过:

  • 真机安装与启动
  • MediaMetadataRetriever 的实际取帧效果(尤其竖屏视频旋转方向对不对)
  • 制作速度与内存表现(大视频、高帧率)
  • 预览在当前设备上的显示效果
  • 关机动画的实际路径与是否被系统使用(最不确定的一项)
  • root 授权流程、写入分区后的权限与 SELinux 上下文
  • 圆屏安全区的视觉效果(16% 缩进是算出来的,好不好看要肉眼看)

下载哪个

文件 说明
BootAnimForge-1.4.0-portable.zip 推荐。PC 端(Node + ffmpeg,解压即用)+ 安卓端 APK
BootAnimForge-Android-1.4.0-debug.apk 只要安卓端

已知限制

  • 安卓端只做单段;多段拆分、每段循环次数/暂停、视频版输出格式、Magisk 模块生成都在 PC 端
  • 手机生成较慢(每秒视频约需几秒),建议先用取用区间截短
  • 需要 root 才能刷入;没 root 只能制作与查看状态
  • APK 用自动生成的调试密钥签名,正式分发请换自己的 keystore
  • 关机动画是否生效完全取决于机型,部分 ROM 不支持