关键词:Android  linux 开机logo 开机动画 

平台信息:
内核:linux3.0.68 
系统:android/android5.1
平台:tiny4412

作者:庄泽彬(欢迎转载,请注明作者)

邮箱:2760715357@qq.com

摘要:最近晚上回到宿舍有点无聊,搞一下打发时间,如有不对之处欢迎指点。

一、

1、首先讲解一下如何修改Android系统的开机的第一幅logo

首先要让内核支持开机显示Logo:

make menuconfig选中这三项

2、首先我们要明白的一点就是:内核镜像无法存储图片格式的文件,只能将图片转化为数组,然后将数组编译进内核 所以按照相应的工具。

  2.1 sudo apt-get install netpbm 转化成ppm格式图片所需要的工具

  2.2 sudo  apt-get install imagemagick 将bmp格式的图片转化成png以及调整图片大小的工具。

  2.3 现在开始动手准备一张png格式的图片。 

、convert -resize 800x480 logo.png logo--.png       //根据屏幕的大小调整,我购买的开发板屏幕的大小为800*480

、pngtopnm logo.png > logo_linux.pnm                      //转成pnm格式 

、pnmquant  logo_linux.pnm > logo_linux_clut224_formal.pnm    //转成224格式的图片

、pnmtoplainpnm logo_linux_clut224_formal.pnm > logo_linux_clut224.ppm   //转成ppm格式 放到

  2.4 我们在内核的make menuconfig当中添加一个选项当选中的时候才编译自己想要的图片进内核

     2.4.1 重命名转换之后的图片,cp logo_linux_clut224.ppm logo_zzb_clut224.ppm

   2.4.2 拷贝到对应的目录:cp /home/book/my_test/logo/logo-nexll/logo_zzb_clut224.ppm   /work/linux-3.0.86/drivers/video/logo   要根据自己的linux源码目录去拷贝.

   2.4.3 修改driver/video/logo/目录下的Makefile添加如下内容

    obj-$(CONFIG_LOGO_ZZB_CLUT224)          += logo_zzb_clut224.o

   2.4.4 修改driver/video/logo/目录下的Kconfig添加如下内核 

config LOGO_ZZB_CLUT224
bool "ZhuangZeBin 224-color Linux logo"
default n

    2.4.5 修改修改driver/video/logo/目录下的logo.c文件添加如下内容

 #ifdef CONFIG_LOGO_ZZB_CLUT224
/* Generic Linux logo */
logo = &logo_zzb_clut224;
#endif

  2.4.6 修改修改vim include/linux/linux_logo.h文件添加如下内容

          extern const struct linux_logo logo_zzb_clut224;

  2.4.7 重新配置内核

  2.4.8 重新编译内核make zImage -j2

       2.4.9 实验结果:现在搞定了开机的第一幅图片

  

3、对于bmp格式的图片修改的方式跟上面的方式一样只是对图片的处理多了一步,在开始进行上面操作的时候先执行 convert logo.bmp logo_linux.png 将图片的格式进行转换,转换成png格式。后面的操作跟前面的一模一样。

附上一张对bmp图片图片处理之后tiny4412开发板显示的结果:

二、讲解一下如何修改Android系统的开机动画,修改开机动画可以说是很简单的操作。

  1、首先要准备一个bootanimation.zip的压缩文件里面用于存放开机动画的每一帧的图片。以及相关的描述.

    1.1、adb push bootanimation.zip /system/media/   将动画推送进设备

    1.2、adb reboot 即可看到我们定制的开机动画.

  2、了解bootanimation.zip包的内容:

 cat desc.txt

 p   part0
p part1

    2.1 part0,以及part1文件内部存放了开机动画要播放的动画,需要注意的就是制作的时候图片的命名一定要按顺序命令。

    2.2 dest.txt 文件:480 272 分别对应图片的高度和宽度,30表示每秒播放30帧的图片。

    p 1 0 part0 : 1表示part0里的图片播放完一次之后还会在播放一次, 0 表示 播放完part0之后等待的多久之后播放part1里的图片。这里为0表示播放完part0的图片之后立刻播放part1内容的图片。

    如果第三个参数为60那么等待的时候为60/30 =2秒 (30由第1行得到),至于为什么这样计算,自己想吧,很 容易的。

          3、可以去这里下载我 上传的开机动画:bootanimation.zip

     http://download.csdn.net/download/u013986340/9943999

    

  

  

tiny4412开机动画、开机界面的定制 【原创】的更多相关文章

  1. Android开机动画、logo、字样的定制过程【转】

    本文转载自:http://blog.csdn.net/yinhaide/article/details/43668401 Android开机画面总共有三屏 一.第一屏:开机logo 1.选张png格式 ...

  2. 开机logo以及两种修改开机动画方法

    Android开机画面总共有三屏 一.第一屏:开机logo 1.选张png格式的图片,在Linux任意下执行(安装工具): sudo apt-get install pnmtoplainpm 2.在所 ...

  3. 安卓修改开机logo和开机动画的方法

    第一种和第二种方法亲测可用,安卓版本是4.2和安卓5.1均可.第二种方法待验证 以下三种方法 Android 开机其实总共会出现3个画面: 1.第一个就是 linux 系统启动,出现Linux小企鹅画 ...

  4. 设置安卓开机动画、开机logo

    我们要修改的是system>media文件夹下的bootanimation.zip(手机开机动画)这个文件 先来讲讲这个文件结构:该zip解压后得到两个文件, 第一个目录存放了开机时播放的图片( ...

  5. Android5.1开机LOGO与开机动画【转】

    本文转载自:http://blog.csdn.net/u014770862/article/details/52624627 android5.1中,开机LOGO部分和之前版本的并不相同,主要区别在于 ...

  6. 全网络最正确的让 Linux 开机进入字符界面的方法及设置 FrameBuffer 分辨率的方法

    引言 这个标题有点长,是为了在标题中就把问题说清楚,以便搜索引擎能够把有需要的朋友准确地带到我这里来.目前在网络上,很多关于 Linux 方面的知识是过时的和错误的.我标题中指出的两个知识点就是其中的 ...

  7. Android开机动画

    Android系统的开机动画可分为三个部分,kernel启动,init进程启动,android系统服务启动.这三个开机动画都是在一个叫做 帧缓冲区(frame buffer)的硬件设备上进行渲染绘制的 ...

  8. Android隐藏虚拟按键,关闭开机动画、开机声音

    /*********************************************************************** * Android隐藏虚拟按键,关闭开机动画.开机声音 ...

  9. 理论制作 Windows 开机动画

    第一次接触 Windows 开机动画是 2012 年,那时候魔方的版本号还是 3.12,魔方里面有个很酷炫狂霸拽的功能就是替换 Windows 7 的开机动画.一开始我是在IT之家论坛里下载开机动画, ...

随机推荐

  1. Visual Studio UI Automation 学习(一)

    这几天需要研究自动化测试工具,因为团队开发使用visual studio,所以需要研究一下Visual studio自带的框架. 刚开始安装的时候,没有选自定义安装,所以安装完成后没有找到UI Aut ...

  2. jenkins如何实现重新发布历史构建记录里的版本

    Jenkins以前打包都会将打出的拷贝放到历史版本里放到Daily_Result里,昨天不只是误操作还是系统问题,误将一个历史版本的包删掉了,而且这个包是之前比较稳定的一个版本,需要重新给客户发,所以 ...

  3. SpringBoot入门系列(转)

    SpringBoot入门系列:第一篇 Hello World http://blog.csdn.net/lxhjh/article/details/51711148

  4. 【sqli-labs】 less11 POST - Error Based - Single quotes- String (基于错误的POST单引号字符型注入)

    查看源码,用户名和密码通过post提交 加单引号提交 出现报错,推测对应的SQL语句 , 直接使用or构造永真登录 成功,注意此处登录的用户为表中的第一个用户 需要改变用户可以通过改变筛选条件实现 作 ...

  5. (转)基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用

    http://www.cnblogs.com/wuhuacong/p/4761637.html 在上篇<基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JST ...

  6. RabbitMQ出现服务启动几秒退出问题

    最近在学习rebbitmq, 1.首先安装了otp_win64_20.3, 2.erlang安装完成需要配置erlang环境变量: 这个是新建的 文档是:ERLANG_HOME D:\develop\ ...

  7. How to use pthread_create && mutex?

    1 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <pthread. ...

  8. firebird的日期型字段

    fb一大特色,日期型字段.dialect3时,对date time datetime是分的很清楚的.它们之间,你必须手把格式设定好,否则会报错.而不是你想象的会自动化:表xxx的date字段yyy,i ...

  9. VIM 使用 匹配替换命令配合表达式 实现 递增替换

    :let n=100 | g/while/s/\d/\=n / | let n=n+1 before 10 void *thread_function_1(void *arg) { 11 int i; ...

  10. 洛谷 P1197 BZOJ 1015 [JSOI2008]星球大战 (ZOJ 3261 Connections in Galaxy War)

    这两道题长得差不多,都有分裂集合的操作,都是先将所有操作离线,然后从最后一步开始倒着模拟,这样一来,分裂就变成合并,也就是从打击以后最终的零散状态,一步步合并,回到最开始所有星球都被连为一个整体的状态 ...