胖蔡说技术
随便扯扯

Android系统修改开机动画

Android系统开机通过源码可以发现一般会有3个动画界面进行加载:linux内核启动动画、Android平台初始化动画、开机动画。一般的我们能看到的就是Android平台初始化动画和开机厂商定制动画。如下看下,如何去修改这三个动画。

修改Linux启动动画

向framebuffer中写入数据,inux Kernel引导启动后,加载该图片,涉及到的代码在如下的目录中:

/kernel/trunk/drivers/video/fbmem.c
/kernel/trunk/drivers/video/fbmem.h
/kernel/trunk/drivers/video/logo/logo.c
/kernel/trunk/drivers/video/logo/logo.h
/kernel/trunk/drivers/video/logo/Kconfig
/kernel/trunk/include/linux/linux_logo.h

让内核中添加此开机logo的步骤如下:

1、让内核支持启动LOGO,  在内核目录中执行:

# make menuconfig

 Device Drivers—->Graphics support —>Bootup logo—>Standard 224-color Linux logo

2、制作开机logo图片

将要当作开机LOGO的图片按照你屏幕的大小进行裁减,并将其保存为bmp格式 或 png格式; 例如linuxlogo.bmp linuxlogo.png。在linux下输入以下命令(for bmp):

#bmptoppm linuxlogo.bmp > linuxlogo.ppm       //生成ppm
#ppmquant 224 linuxlogo.ppm > linuxlogo224.ppm   //转换成224颜色
#pnmnoraw linuxlogo224.ppm > linuxlogo224.ppm   //转换成ascii格式

// 在Linux下输入以下命令(for png):
# pngtopnm linuxlogo.png > linuxlogo.pnm
# pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm 
# pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm

    注:上述命令需要安装netpbm的工具包

$sudo apt-get install netpbm

3、将LOGO文件放入内核中

拷贝到制作好的LOGO文件到/drivers/video/logo文件夹替换logo_linux_clut224.ppm文件,还要删除该文件夹下的logo_linux_clut224.ologo_linux_clut224.c

4、重新编译内核

修改Android启动动画

相关的控制代码文件:

/system/core/init/init.c
/system/core/init/init.h
/system/core/init/init.rc
/system/core/init/logo.c

*.rle文件的制作步骤:

1、制作当前屏幕像素的图片,保存为android_logo.png(注:好像只支持png-24,其他格式生成的rle文件显示不正常,有兴趣大家可以再验证一下。)

2、将图片转化为raw格式

使用linux下的ImageMagick自带的covert命令,进行raw格式转换,命令为:

# convert -depth 8 android_logo.png rgb:android_logo.raw

3、将raw格式转化为rle文,需要使用rgb2565工具,转换命令为:

# rgb2565 -rle < android_logo.raw > initlogo.rle

4、将制作好的initlogo.rle文件拷贝到android系统的root目录下,也就是out/target/product/..../root下,最后编译成文件系统镜像xxx.img重新烧写。

修改开机动画

  • 具体的文件所在路径为:androidsource/frameworks/base/cmds/bootaninamtion
  • 具体图片文件所在路径为:androidsource/frameworks/base/core/res/assets/images

示例如下:

480 800 15
p 1 0 part0
p 0 0 part1

具体的含义如下:

  • 第一行: 480–图片宽度, 800–图片高度 15--fps,帧数
  • p 1:显示一次
  • p 0:重复显示知道动画结束

你可以制作自己的bootanimation.zip文件放置在合适的目录下,这样可以代替默认的开机界面。常见过程如下:

1、创建一个bootanimation文件夹

2、在bootanimation文件夹中创建一个desc.txt文件,一个part0文件夹:

3、编写desc.txt文件

1024 600 4
p 0 0 part0

4、制作动画图片添加到part0文件夹

4、将bootanimation文件夹打包成bootanimation.zip文件

5、替换默认的bootanimation.zip文件,重新烧录

赞(0) 打赏
转载请附上原文出处链接:胖蔡说技术 » Android系统修改开机动画
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏