Repository navigation
启幕 v1.4.0(关机动画 + 裁切/区间/取消/预览)
启幕 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 不支持