Amlogic s905动态修改开机视频动画

  • 平台
  • 需求
  • 解决方案
  • 结语

平台

Amlogic s905 + Android 7.1

需求

使用视频作为开机动画, 提供接口用于修改开机视频动画.

解决方案

  1. 打开视频开机动画功能:
//设置属性:
service.bootvideo=1
  1. 服务注册:
    |-- device/amlogic/common/products/tv/init.amlogic.rc
service bootvideo /system/bin/bootplayer /system/etc/bootvideoclass mainuser rootgroup systemdisabledoneshot
  1. 视频开机动画实现的程序:
    修改方法相对简单, 即是在视频播放前, 读取/data/bootvideo, 若不存在此文件, 则播放默认/system/etc/bootvideo
    |-- vendor/amlogic/frameworks/av/LibPlayer/bootplayer/bootplayer.c
int main(int argc, char *argv[])
{play_control_t *pCtrl = NULL;int pid;int pos = 0;int speed = 0;int tmpneedexit = 0;int ret = -1;int fd_di_bypass_all = -1;media_info_t minfo;int osd_is_blank = 0;char tmpcommand[TMP_COMMAND_MAX];char newframestring[30] = {0};char newstring0[30] = {0};int new_frame_count = 0;EMU_STEP tmpstep = EMU_STEP_MENU;osd1_clear = 0;char *di_bypass_all_path = "/sys/module/di/parameters/bypass_all";pCtrl = (play_control_t*)malloc(sizeof(play_control_t));memset(pCtrl, 0, sizeof(play_control_t));memset(&minfo, 0, sizeof(media_info_t));if (argc < 2) {ALOGD("usage:player file\n");return -1;}//amsysfs_set_sysfs_str(di_bypass_all_path, "1");set_video_axis();player_init();//streamsource_init();player_register_update_callback(&pCtrl->callback_fn, &update_player_info, 1000);ALOGD("player callback register....\n");//尝试读取/data/bootvideo, 若不存在则使用默认传进视频文件地址.char* videoPath = "/data/bootvideo";FILE* fp = fopen(videoPath, "r");if(fp){pCtrl->file_name = strdup(videoPath);}else{pCtrl->file_name = strdup(argv[1]);}ALOGD("player pCtrl->file_name=%s", pCtrl->file_name);//...}
  1. 解决SELinux问题, 打开bootplayer的文件读取权限.
    |-- system/sepolicy/domain.te
neverallow {domain-system_server-system_app-init-shell-bootanim-bootanimcp-bootvideo-installd # for relabelfrom and unlink, check for this in explicit neverallow
} system_data_file:file no_w_file_perms;

|-- device/amlogic/common/sepolicy/bootvideo.te

# 增加代码
allow bootvideo system_data_file:file{read getattr open write};

结语

使用时, 只需要通过服务或应用, 把视频文件放置到/data/bootvideo中即可. 若为普通APP权限, 则系统可适当增加一个文件拷贝服务, 将指定文件拷贝到/data下, 并赋与相关权限即可.

Amlogic s905动态修改开机视频动画相关推荐

  1. mlogic S905x 开机logo 开机视频 默认的luancher的修改

    修改开机log 修改开机视频 修改默认luancher 修改开机loge的时候,amlogic的芯片支持16bit 和 24bit,默认是16bit.  在使用高清图的时候需要将其设置成24bit. ...

  2. rk3399 u-boot修改开机logo以及开机动画和开机视频

    首先分析了一下uboot启动流程中的一部分代码,如下 第一部分:开机logo(下面代码分析排版有点乱,可以忽略) 1. ​ board_late_init //rk33xx.cboard/rockch ...

  3. linux系统下如何修改开机图片,Ubuntu Kylin下修改登录背景,用户头像,开机动画及自动更换壁纸...

    以下操作系统平台是Ubuntu Kylin 16.04,使用Ubuntu的朋友可参考. 一.修改默认登录背景图片 Ubuntu Kylin 16.04 LTS 默认登录背景图片是存放在 /usr/sh ...

  4. Win7修改开机动画(附自制流浪地球2开机动画)

    最近看了流浪地球2,看到B站视频改流浪2的开机动画,心血来潮,但电脑是Win7系统,于是搜索了一些方法记录一下.试过别的方法后我真正能用的方法即本文方法,局限于只能修改Win7开机动画时田字区域的动画 ...

  5. java修改动态视频,直播视频app源码,动态修改cron

    直播视频app源码,动态修改cron相关的代码 package com.chashiyu.task.dynamic; import org.springframework.beans.factory. ...

  6. 点击cell动态修改高度动画

    点击cell动态修改高度动画 效果 源码 https://github.com/YouXianMing/Animations // // TapCellAnimationController.m // ...

  7. Ubuntu16.04LTS修改开机动画

    ubuntu16.04LTS修改开机动画 ubuntu自带的开机动画实在是很不满美观,但是又不想重写,怎么办? 接下来交你们一招. 1.开机动画文件夹 Ubuntu14.04的开机动画在/usr/sh ...

  8. 动态修改spine动画渲染层次

    在unity中做2D游戏开发的时候我们使用sprite比较多,sprite的层次修改我们手动修改sprite renderer下面的Order in Layer属性就行了.也可以动态的获取它的层次属性 ...

  9. [RK3588 Android12]修改开机logo和播放开机视频

    1.修改开机logo 替换kernel-5.10/logo.bmp和logo_kernel.bmp两个图片文件即可修改开机logo,替换后编译报错 error: out/target/product/ ...

最新文章

  1. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button的command/Label/PhotoImage/封装为类)
  2. 总结运行SSIS包的几种方式
  3. php毕设周记_毕设周记
  4. 看完这篇操作系统,和面试官扯皮就没问题了!
  5. Ubuntu 安装极点五笔 for ibus
  6. 一些web开发中常用的、做成cs文件的js代码 - 转帖来的
  7. emysql: ping VS without ping
  8. Flutter AppBar控件
  9. python 异步IO编程
  10. 如何在官网下载java JDK
  11. 谷歌Chrome浏览器如何截图长图
  12. EXCEL利用VBA把汉字转拼音(李晓锋版)20180828更新
  13. 安卓模拟ibeacon_android iBeacon开发模拟实例
  14. 密钥文件snk 、AssemblyInfo.cs
  15. Mac添加中国法定节假日安排
  16. 那些堪比照片质感的PhotoRealistic Style Transfer系列
  17. 期货什么情况下会强制平仓
  18. 商业智能下,金融行业如何利用起来?
  19. 「PS-CC2019新版教程」套索工具-基础篇
  20. jar文件读取和遍历

热门文章

  1. grasps什么意思中文_Jesper[杰斯珀]的中文翻译及英文名意思
  2. Spring循环依赖流程分析
  3. 知识变现做课,如何找到蓝海市场
  4. 删除系统服务:出现“[SC] OpenService 失败 5:拒绝访问”的问题
  5. 100层楼摔鸡蛋问题
  6. cloudera环境搭建
  7. 银行数字化转型导师坚鹏:商业银行数字化风控(2天)
  8. linux nandflash分区,nandflash分区
  9. 甘肃省普通高等学校高职(专科)升本科考试英语科考试大纲(试行)
  10. 个人Github账号推荐:https://github.com/Charmve