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

  • 相关阅读:
    查依赖的时候发现 ldd: not found 的话,可以用 readelf 喔。
    【rv1126】host Python 没有内置 pip ,所以需要手动调用 get-pip.py 为 Python pip 安装指定包。
    MaixPy3 Linux 通用模块设计
    剑指 Offer 27. 二叉树的镜像
    Pycocotools安装艰辛历程
    性能测试之常见性能指标
    libuv事件循环中的三种句柄
    libuv线程通信
    libuv工作队列
    libuv中实现tcp服务器
  • 原文地址:https://www.cnblogs.com/jasonleeee/p/3967830.html
Copyright © 2020-2023  润新知