1、修改android启动logo动态图片静态图片修改和制作Android开机Logo(完整版)之答禄夫天创作日期:2012-02-15 作者:zhhlogo.h的制作:准备一张图片,然后用Img2Lcd工具把图片转成C语言数组注意:在使用Img2Lcd工具转换的图片最左边会有一条白边,把数组中前8个数值删除就不会有这样的情况。2.kernel图片(linux logo)原来是没有的,需要先在menuconfig中加入配置Device Driver-Graphic support-Bootup Logo中选中224 color然后把自己的LOGO(png-8格式)转换成ppm格式,替换这个文件,同
2、时删除logo_linux_clut224.c logo_linux_clut224.o文件,重新编译。(/drivers/video/logo/logo_linux_clut224.ppm 是默认的启动LOGO图片格式为ppm)ppm图片的生成:# pnmquant 224 logo_linux_clut224.pnm logo_linux_clut224.pnm(如果执行出错,可以省略)注意:使用pngtopnm ,pnmquant ,pnmtoplainpnm 工具前要先装置,在虚拟机下sudo apt-get install netpbm 这三个工具会装置好。设置图片居中显示: /*m
3、odified 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);logo_height=fb_prepare_logo(info,ops-rotate);下面加入logo_height += (info-var.yres/2)-(logo_height/2);第三张图片:这张图片是水果的图片加入的logo图片,制作和修改方法如下:1). 制作当前屏幕像素的图片(模拟器默认为1024*768)使用P
4、S制作一张1024*168的图片,保管时选“保管为 Web 所用格式”,然后在弹开的窗口上,“预设”项选择“PNG-24”,保管为android_logo.png(注:好像只支持png-24,其他格式生成的rle文件显示不正常,有兴趣大家可以再验证一下。2). 将图片转换为raw格式使用linux下的ImageMagick自带的convert命令,进行raw格式转换,命令为:注:ubuntu 10.04 默认已经装置ImgageMagick工具,如果当前系统没有装置,可以执行下面的命令装置: sudo apt-get install imagemagick3). 将raw格式转化为rle文件需
5、要用到android编译后的rgb2565工具,在android/out/host/linux-x86/bin目录下(android为当前源码所在目录),转换命令如下:4).修改:tcc8923_20120127/device/telechips/m805_892x/device.mk 添加下面一行:PRODUCT_COPY_FILES += 5、替换文件devicetelechipscommoninitlogo.rle;同时删除outtargetproducttcc8900ramdisk.img,ramdisk-recovery.img,再重新编译,就可以了第二种方法:到目前为止,启动需要显
6、示的图像已经做好了,就是initlogo.rle,注意文件名必须是这个,如果想改文件名,需要修改android/system/core/init/init.h中的宏:#define INIT_IMAGE_FILE /initlogo.rle=以下的4,5,6,7,需要先进行如下设置,把initlogo.rle放入devicetelechipscommon,删除ramdisk.img之类的相关的文件重新make即可。4). 找到ramdisk.img文件(android/out/target/product/generic/ramdisk.img),将文件名改为ramdisk.img.gz,然后
7、使用下面的命令解压:解压后得到ramdisk.img,可能有人要问,怎么文件名又改回去了?其实否则,使用file ramdisk.img检查一下就知道了:解压前:ramdisk.img: gzip compressed data, from Unix解压后:ramdisk.img: ASCII cpio archive (SVR4 with no CRC)跑题了,还是说正事儿。5). 使用cpio提取文件:新建一个temp目录:mkdir tempcd temp6). 导出文件列表:cpio -i -t -F ./ramdisk.img list注:list是一个文本文件,里面存储了ramdi
8、sk.img的文件结构,我们需要在这个文件中加入initlogo.rle这一行,修改后的文件如下datadevinitprocsbinsbin/adbdsyssystemcpio -o -H newc -O ramdisk.img = 0) const char *msg; msg = n n n n n n n/ console is 40 cols x 30 lines n n n n n n n A N D R O I D ; write(fd, msg, strlen(msg); close(fd); 相关代码: /system/core/init/init.c /system/core/init/init.h /system/core/init/init.rc /system/core/init/logo.c *.rle文件的制作步调: a. 使用GIMP或者Advanced Batch Converter软件,将图象转换为RAW格式; b. 使用android自带的rgb2565工具,将RAW格式文件转换为RLE格式(如:rgb2565 -rle initlogo.rle)。