首页 > 代码库 > [转]Android Logo 之 android 开机logo initlogo.rle
[转]Android Logo 之 android 开机logo initlogo.rle
initlogo.rle的制作
initlogo.rle的调用
initlogo.rle定义的位置
system/core/init/init.h
1 #define INIT_IMAGE_FILE "/initlogo.rle"
从定义中可以知道,initlogo.rle存放位置在根目录下,如果图片名字不想取名叫initlogo.rle也可以在这里修改,但必须与图片文件的名字一致。
这里的存放位置根目录下是指已经生成好的ROM开机时,文件的位置。
在编译时需要将图片放到生成的目标文件下的root文件中<ANDROID_HOME>/out/..../root/initlogo.rle
initlogo.rle调用函数
<ANDROID_HOME>/system/core/init/init.c
1 static int console_init_action(int nargs, char **args) 2 { 3 ... 4 if( load_565rle_image(INIT_IMAGE_FILE) ) { //若调用失败,将会显示文字的”ANDROID“LOGO 5 fd = open("/dev/tty0", O_WRONLY); 6 if (fd >= 0) { 7 const char *msg; 8 msg = "\n" 9 "\n"10 "\n"11 "\n"12 "\n"13 "\n"14 "\n" // console is 40 cols x 30 lines15 "\n"16 "\n"17 "\n"18 "\n"19 "\n"20 "\n"21 "\n"22 " A N D R O I D ";23 write(fd, msg, strlen(msg));24 close(fd);25 }26 }27 ..28 }
注:
initlogo.rle开机后被删除:
查 看代码可发现,在system/core/init/init.c [load_565rle_image] --> logo.c中 ,显示完毕initlogo.rle之后作了 unlink 操作。该操作对于android 默认的只读型system.img 是没问题,, 但对于自定义的yaffs 或者 ubi形式的可读写型的system.img时就有问题了。会造成将initlogo.rle删除,下次启动时读取不到该文件。可以通过注释掉 logo.c的load_565rle_image()中的unlink(fn)语句来规避该问题。
參考:
http://blog.csdn.net/hjjph/article/details/7046274
[转]Android Logo 之 android 开机logo initlogo.rle
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。