码迷,mamicode.com
首页 > 移动开发 > 详细

[转]Android Logo 之 android 开机logo initlogo.rle

时间:2014-09-12 11:44:53      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   http   color   io   os   ar   文件   

 

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 lines
15             "\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

标签:android   style   blog   http   color   io   os   ar   文件   

原文地址:http://www.cnblogs.com/jasonleeee/p/3967830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!