AOSP Android 11编译后自定义开机动画不生效问题求助
Android 11 AOSP自定义开机动画不生效问题解决方案
1. 修复boot.zip打包格式与内容错误
- 必须使用store模式压缩,禁止任何压缩算法,执行正确的打包命令:
(zip -0 -r boot.zip desc.txt part0/ part1/-0代表store模式,-r递归打包目录) - 检查
desc.txt语法合规性,Android 11对格式要求严格,示例正确格式:1080 1920 60 # 宽、高、帧率需匹配模拟器/设备分辨率 p 1 0 part0 # p [循环次数] [暂停时间] [目录],1代表循环1次,0代表无暂停 p 0 0 part1 # 0代表无限循环 - 确保boot.zip解压后直接是
desc.txt和动画段目录,不能嵌套额外根文件夹。
2. 修正aosp_x86_64.mk语法错误
你的PRODUCT_COPY_FILES配置缺少换行续行符,导致规则未被识别,修正后代码:
# Boot Animation PRODUCT_COPY_FILES += \ device/generic/x86_64/boot.zip:system/media/boot.zip PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \ system/media/boot.zip \
3. 确保文件权限与加载路径正确
- 添加属性指定开机动画路径,在mk中追加:
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ ro.bootanimation.zip=/system/media/boot.zip - 编译完成后,通过adb验证文件权限:
正确权限应为adb shell ls -l /system/media/boot.zip-rw-r--r-- root root(即644)。
4. 清理缓存并重新编译
旧编译产物可能被缓存,执行以下命令彻底清理后重新编译:
make clean make -j$(nproc)
或单独编译system分区:
make systemimage -j$(nproc)
5. 排查加载优先级与调试日志
- Android 11会优先加载
/vendor/media/boot.zip或/product/media/boot.zip,确认这些路径无原生开机动画文件。 - 开启开机动画调试模式,查看错误日志:
日志中会明确显示加载失败原因(如文件不存在、格式错误、分辨率不匹配等)。adb shell setprop debug.bootanimation 1 adb reboot adb logcat -s BootAnimation
6. 解决白屏闪烁问题
- 确保
desc.txt中宽高与模拟器/设备分辨率完全一致(x86_64模拟器默认1080x1920)。 - 检查所有动画帧为无损PNG格式,分辨率与desc.txt配置一致,无损坏文件。
内容的提问来源于stack exchange,提问作者Sanat Pandey
相关产品推荐
相关产品推荐

