开机文字("A N D R I O D")

一。简单替换法,适用于将第二屏更换为静态图片

1.通过Ubuntu的命令sudo apt-get install imagemagick安装imagemagick工具。

2.做好一张与屏的分辨率一样大小的开机logo.png。PS1:目前只能用静态图片.png     3. 在虚拟机中用命令convert -depth 8 logo.png rgb:logo.raw

4.把生成的logo.raw放到文件系统的根目录下。

5.在文件系统根目录下运行命令

out/host/linux-x86/bin/rgb2565 -rleinitlogo.rle.bak

即可生成文件initlogo.rle.bak.

6.把生成的该文件放到2818_gingerbread/out/target/product/sdkDemo/root目录下即可

7. 在文件系统根目录下用命令#make firmware将initlogo.rle打包进镜像重新烧录即可完成修改andriod字符串

二。原理分析

Android 系统启动后,init.c中main()调用load_565rle_image()函数读取/initlogo.rle(一张565 rle压缩的位图),如果读取成功,则在/dev/graphics/fb0显示Logo图片;如果读取失败,则将/dev/tty0设为TEXT模式,并打开/dev/tty0,输出文本“A N D R I O D”字样。

定义加载图片文件名称:

#define INIT_IMAGE_FILE "/initlogo.rle"

int load_565rle_image( char *file_name );

#endif

init.c中main()加载/initlogo.rle文件:

if( load_565rle_image(INIT_IMAGE_FILE) ) {//加载initlogo.rle文件

fd = open("/dev/tty0", O_WRONLY);//将/dev/tty0设为text模式

if (fd >= 0) {

const char *msg;

msg = "\n"

"\n"

"\n"

"\n"

"\n"

"\n"

"\n"// console is 40 cols x 30 lines

"\n"

"\n"

"\n"

"\n"

"\n"

"\n"

"\n"

"A N D R O I D ";

write(fd, msg, strlen(msg));

close(fd);

}

}

相关代码:

/system/core/init/init.c

/system/core/init/init.h

/system/core/init/init.rc

/system/core/init/logo.c

*.rle文件的制作步骤:

a. 使用GIMP或者Advanced Batch Converter软件,将图象转换为RAW格式;

b. 使用android自带的rgb2565工具,将RAW格式文件转换为RLE格式

(如:rgb2565 -rle < initlogo.raw > initlogo.rle)。

三。附加

1. 修改logo高度:所在文件drivers/video/console/fbcon.c

{{ logo_height = fb_prepare_logo(info, ops->rotate)+xxxxxxx; //在加减相应xxxxxxx从而实现高度调整。logo_lines = DIV_ROUND_UP(logo_height, vc->vc_font.height); }}

2. 如何将开机logo中的光标去除

在内核的当前目录进入到drivers/video/console/fbcon.c文件

将static void fb_flashcursor(void *private)制成空函数如下386static void fb_flashcursor(void *private)387 {388 #if 0 //modify by yejj for clear cursor of lcdc389 struct fb_info *info = private;390 struct fbcon_ops *ops = info->fbcon_par;391 struct display *p;392 struct vc_data *vc = NULL;393 int c;394 int mode;

395396 acquire_console_sem();397 if (ops && ops->currcon != -1)398 vc = vc_cons[ops->currcon].d;

399400 if (!vc || !CON_IS_VISIBLE(vc) ||401 registered_fb[con2fb_map[vc->vc_num]] != info ||402 vc->vc_deccm != 1) {403 release_console_sem();404 return;405 }

406407 p = &fb_display[vc->vc_num];408 c = scr_readw((u16 *) vc->vc_pos);409 mode = (!ops->cursor_flash || ops->cursor_state.enable) ?410 CM_ERASE : CM_DRAW;411 ops->cursor(vc, info, mode, softback_lines, get_color(vc, info, c, 1),412 get_color(vc, info, c, 0));413 release_console_sem();414 #endif415 }

同样的方法将函数static void fbcon_cursor(struct vc_data *vc, int mode)用空函数替换如下1304 static void fbcon_cursor(struct vc_data *vc, int mode)1305 {1306 #if 0 //modify by yejj for clear cursor of lcdc1307 struct fb_info *info

另一种禁止光标的方法: drivers/video/console/Makefile

#obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o softcursor.o obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o

编译遇到一个soft_cursor没有定义的问题问题,注释代码:drivers/video/console/bitblit.c

//ABING // if (err) // soft_cursor(info, &cursor);

android开机画面大集合,汇总各种Android 开机画面修改方法 第二屏相关推荐

  1. Android面试题大集合

    2019独角兽企业重金招聘Python工程师标准>>> 1. Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指dalivk的虚拟机.每一个A ...

  2. android开源项目大集合

    目前包括: Android开源项目第一篇--个性化控件(View)篇   包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView. ...

  3. Android 动画应用大集合

    声明: 本方来源于网络,仅用于学习. https://cutler.github.io/android-D03/ 动画是多媒体中的一个重要组成部分,我们常见的各种炫酷的特效大部分都是通过动画来实现的. ...

  4. sketch插件 android,Sketch 插件大集合

    Jun 2 Sketch 插件大集合 -- Using Sketch Like A Boss 这几天发现了一个叫做 Sketch Toolbox 的 Mac 应用,简直是下载和安装 Sketch 插件 ...

  5. Android开源库大全分类汇总(Android技术资料汇总)

    1.基本控件 1.1.TextView ScrollNumber ReadMoreTextView HtmlImage android-autofittextview html-textview Ba ...

  6. Android开源库大全分类汇总(Android技术资料汇总)...

    1.基本控件 1.1.TextView ScrollNumber ReadMoreTextView HtmlImage android-autofittextview html-textview Ba ...

  7. 上集: Android开源库大全分类汇总(Android技术资料汇总)

    摘要: 1.基本控件 1.1.TextView ScrollNumber ReadMoreTextView HtmlImage android-autofittextview html-textvie ...

  8. 【游戏】2048及各种变种大集合汇总【更新ing~新版Floppy2048 - 恒星聚变版 - 恶搞改数据】...

    threes - 鼻祖 手机版:http://asherv.com/threes/ js版:http://threesjs.com/ 2048 - 原版 http://gabrielecirulli. ...

  9. 【游戏】2048及各种变种大集合汇总【更新ing~新版Floppy2048 - 恒星聚变版 - 恶搞改数据】

    threes - 鼻祖 手机版:http://asherv.com/threes/ js版:http://threesjs.com/ 2048 - 原版 http://gabrielecirulli. ...

  10. android 学习链接大集合

    http://m.cnblogs.com/50734/1581089.html?full=1 Understanding User Interface in Android - Part 3: Mor ...

最新文章

  1. 一文了解迁移学习经典算法
  2. t检验特征筛选详解及实战
  3. 算法应用与加速器系统架构的碰撞:AI软硬结合的方向怎么走?
  4. Missing artifact com.github.pagehelper:pagehelper:jar:3.4.2-fix的解决方法
  5. 怎么查看自己linux实验环境,Linux实验
  6. Hangfire 任务调度
  7. js 循环拆词_javascript forEach通用循环遍历方法
  8. matlab里输出恒压的逆变器,基于IGBT逆变器的异步电机变频调速系统的MATLAB仿真...
  9. WPF:Documents文档--Annomation批注(1)
  10. box2d之刚体,定制器笔记
  11. 手机PIN码解锁过程
  12. 值得看三次的高干文_5本精彩的高干文推荐,本本是经典,值得刷三遍以上!...
  13. VC程序里判断系统是64位还是32位的正确方法
  14. DataQL之语法-万能查询执行步骤
  15. Friendship 友谊--我最宝贵的财富
  16. Maxima符号计算系统简介
  17. 多级联动(三级联动)
  18. BUUCTF-PWN刷题记录-17
  19. Python渗透测试工具库
  20. 目标公司--软件测试--jd补充

热门文章

  1. CAN与CAN FD通信之间存在的问题
  2. 使用linux批量引物设计,使用NCBI-ePCR和Primer3进行引物批量化设计
  3. Smart3D认识引擎(Engine) Smart3D更改工程或模型(Engine)执行路径、更改模型执行优先级(建立tile的顺序)
  4. 2020山东大学计算机组成原理课程设计报告
  5. docker安装mysql【网易镜像方式】
  6. 多行文字cad提取数据_怎样从cad中提取excel表格数据-如何快速提取CAD图纸表格数据...
  7. PreScan快速入门到精通第十一讲之PreScan道路标记,建筑物、抽象物体及交通标识
  8. python下载微信公众号文章_Python 抓取微信公众号文章
  9. ActivityMq下载、安装、使用
  10. J2EE基础教程(3):Spring框架