修改ANDROID启动LOGO(动态图片 静态图片)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

修改和制作Android开机Logo(完整版)

日期:2012-02-15作者:zhh

以下在Telechips tcc8923上,用Android4.0的源码编译通过

1.bootloader图片修改

bootable\bootloader\lk\platform\tcc_shared\include\lcd\logo.h替换就行了

logo.h的制作:准备一张图片,然后用Img2Lcd工具把图片转成C语言数组

注意:在使用Img2Lcd工具转换的图片最左边会有一条白边,把数组中前8个数值删除就不会有这样的情况。仅仅支持.bmp格式的文件

2.kernel图片(linux logo)原来是没有的,需要先在menuconfig中加入配置Device Driver---Graphic support---Bootup Logo中选中224color

然后把自己的LOGO(png-8格式)转换成ppm格式,替换这个文件,同时删除logo_linux_clut224.c logo_linux_clut224.o文件,重新编译。(/drivers/video/logo/logo_linux_clut224.ppm是默认的启动LOGO 图片格式为ppm)

ppm图片的生成:

#pngtopnm logo_linux_clut224.png>logo_linux_clut224.pnm

#pnmquant224logo_linux_clut224.pnm>logo_linux_clut224.pnm(如果执行出错,可以省略)

#pnmtoplainpnm logo_linux_clut224.pnm>logo_linux_clut224.ppm

注意:使用pngtopnm,pnmquant,pnmtoplainpnm工具前要先安装,在虚拟机下sudo apt-get install netpbm这三个工具会安装好。

设置图片居中显示:

修改drivers/video/fbmem.c

/*modified by creatory*/

//image.dx=0;

//image.dy=y;

image.dx=(info->var.xres/2)-(logo->width/2);

image.dy=(info->var.yres/2)-(logo->height/2);

在drivers/video/console/fbcon.c文件中的

logo_height=fb_prepare_logo(info,ops->rotate);

下面加入

logo_height+=(info->var.yres/2)-(logo_height/2);

第三张图片:

这张图片是水果的图片加入的logo图片,制作和修改方法如下:

1).制作当前屏幕像素的图片(模拟器默认为1024*768)

使用PS制作一张1024*168的图片,保存时选“保存为Web所用格式”,然后在弹开的窗口上,“预设”项选择“PNG-24”,保存为android_logo.png(

注:好像只支持png-24,其他格式生成的rle文件显示不正常,有兴趣大家可以再验证一下。

2).将图片转换为raw格式

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

convert-depth8android_logo.png rgb:android_logo.raw

注:ubuntu10.04默认已经安装ImgageMagick工具,如果当前系统没有安装,可以执行下面的命令安装:sudo apt-get install imagemagick

3).将raw格式转化为rle文件

需要用到android编译后的rgb2565工具,在android/out/host/linux-x86/bin目录下(android为当前源码所在目录),转换命令如下:

rgb2565-rleinitlogo.rle

4).

修改:tcc8923_20120127/device/telechips/m805_892x/device.mk

添加下面一行:

PRODUCT_COPY_FILES+=\

device/telechips/common/initlogo.rle:root/initlogo.rle

意思是复制rle文件到ramdisk.img

5、替换文件device\telechips\common\initlogo.rle;

同时删除out\target\product\tcc8900\ramdisk.img,ramdisk-recovery.img,再重新编译,就可以了

第二种方法:

到目前为止,启动需要显示的图像已经做好了,就是initlogo.rle,注意文件名必须是这个,如果想改文件名,需要修改

android/system/core/init/init.h中的宏:

#define INIT_IMAGE_FILE"/initlogo.rle"

=============================================================================== =============

下面需要将initlogo.rle加入的android文件系统中

以下的4,5,6,7,需要先进行如下设置,把initlogo.rle放入device\telechips\common\,删除ramdisk.img 之类的相关的文件重新make即可。

4).找到ramdisk.img文件(android/out/target/product/generic/ramdisk.img),将文件名改为ramdisk.img.gz,然后使用下面的命令解压:

gunzip ramdisk.img.gz

解压后得到ramdisk.img,可能有人要问,怎么文件名又改回去了?其实不然,使用file ramdisk.img查看一下就知道了:

解压前:ramdisk.img:gzip compressed data,from Unix

解压后:ramdisk.img:ASCII cpio archive(SVR4with no CRC)

跑题了,还是说正事儿。

5).使用cpio提取文件:

新建一个temp目录:

mkdir temp

cd temp

cpio-i-F../ramdisk.img

6).导出文件列表:

cpio-i-t-F../ramdisk.img>list

注:list是一个文本文件,里面存储了ramdisk.img的文件结构,我们需要在这个文件中加入initlogo.rle这一行,修改后的文件如下

data

default.prop

dev

init

init.goldfish.rc

init.rc

initlogo.rle

proc

相关文档
最新文档