[转]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 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

 

转载于:https://www.cnblogs.com/jasonleeee/p/3967830.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值