zoukankan      html  css  js  c++  java
  • [转]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 = "
    "
     9             "
    "
    10             "
    "
    11             "
    "
    12             "
    "
    13             "
    "
    14             "
    "  // console is 40 cols x 30 lines
    15             "
    "
    16             "
    "
    17             "
    "
    18             "
    "
    19             "
    "
    20             "
    "
    21             "
    "
    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

  • 相关阅读:
    iis管理器的程序应用池中没有Asp.NET v4.0
    Rowlock、UPDLOCK
    转SQLSERVER 会不会自动加锁
    安装IE11必备更新
    阻止表单提交刷新页面的问题
    C#分屏控件用法实例
    Flex内存泄露解决方法和内存释放优化原则
    DataSet.Clear() Method()
    短文件名漏洞修复
    vs2017创建dotnetcore web项目,并部署到centos7上
  • 原文地址:https://www.cnblogs.com/jasonleeee/p/3967830.html
Copyright © 2011-2022 走看看