Android AOSP 修改开机视频

644 阅读2分钟

Android系统启动过程采用开机动画或开机视频进行展示,等待系统启动完成。在Android原生开机中只开机动画。但芯片厂商一般提供的源码会增加开机视频支持,采用MediaPlayer来实现。本来主要介绍如何修改开机视频。

1. 开机视频

通过frameworks/base/cmds/bootanimation/BootAnimation.pp文件threadLoop方法确定是否支持开机视频,不支持的话就使用开机动画。

if (mVideoAnimation){//开机视频
    result = video();
} else {//默认的开机动画逻辑
    if (mZipFileName.isEmpty()) {
        result = android();
    } else {
        result = movie();
    }
}

这段代码由mVideoAnimation变量控制系统启动过程是使用开机视频还是开机动画,说明是支持开机视频的,因此我们可以进行修改。查看mVideoAnimation被设置的地方,由属性persist.sys.bootvideo.enablepersist.sys.bootvideo.showtime以及是否存在视频文件确定。

视频文件目录:

/data/local/bootanimation.ts/product/media/bootanimation.ts,前者优先级较高。

//默认是false,所以我们需要添加该属性,并改为true
std::string bootVideoEnable = android::base::GetProperty("persist.sys.bootvideo.enable", "false");
//默认是-1,根据下面的判断语句,我们可以不设置showtime属性   
std::string showTime = android::base::GetProperty("persist.sys.bootvideo.showtime", "-1");
//根据视频文件、enable、showtime确定是否启动开机视频
if (mVideoFile != NULL && !strcmp(bootVideoEnable.c_str(), "true") &&(atoi(showTime.c_str()) != 0)) {
    mVideoAnimation = true; //被设置true
} else {
    bootVideoEnable.c_str(), showTime.c_str());
}

在不修改代码的情况,通过我们通过以下步骤来修改开机视频。

  1. 制作开机视频文件

开机视频文件一般由美工提供,我们主要将视频文件添加到系统中,并保证在编译过程能复制到正确的位置。修改device/rockchip/rk3588/device.mk文件,在PRODUCT_COPY_FILES增加$(LOCAL_PATH)/bootanimation.ts:/product/media/bootanimation.ts。也就是编译时候,将开机视频从当前目录复制到/product/media/目录。

因为用到的开发板是香橙派的pi5pro,所以采用了目录rockchip/rk3588,大家根据自己情况修改。因为视频文件放置在device/rockchip/rk3588/目录下,所以采用了$(LOCAL_PATH)/bootanimation.ts来设置视频的src,实际应该改成自己目录。一般情况我们都会把自己修改或增加内容统一放在某个目录,避免后续其他机型也需要适配,迁移复杂。

  • 为了节约存储空间,在编译过程我们不复制bootanimation.zip文件到/system/media目录。

    device/rockchip/common/device.mk下面内容注释掉。

  PRODUCT_COPY_FILES += \
       $(LOCAL_PATH)/bootanimation.zip:/system/media/bootanimation.zip
  1. 增加 使能(enable) 开机视频属性和时间

修改device/rockchip/rk3588/device.mk文件,在PRODUCT_PROPERTY_OVERRIDES增加属性persist.sys.bootvideo.enable = true

  1. 设置开机时间

开机视频最长支持120秒,在PRODUCT_PROPERTY_OVERRIDES增加属性persist.sys.bootvideo.showtime = 10。这个也可以不设置。

然后重新编译即可。

2. 开机LOGO

替换下面内核目录两张图片

kernel-5.10/logo_kernel.bmp
kernel-5.10/logo.bmp