文档章节

【Rayeager PX2】andoid开机logo分析及PX上的实现

穿
 穿prada的008
发布于 2015/05/27 17:20
字数 1063
阅读 60
收藏 0

PX2烧的系统也是android的时候,那么修改logo的方式也就大同小异啦,楼主也比较闲,就来试试修改logo。

大家都知道android启动界面分三步,

一步是内核的启动logo,

然后是android的启动初始化logo,

最后还有个启动成功的开机动画。

楼主一开始的理解是在PX2上的过程就是,先出现两只小企鹅,然后出现android的字样,然后android这两字会动一下,

首先我们先来改改内核的启动logo,首先我们进入内核的配置界面,在Device Drivers \ Graphics support  \Bootup logo这一项如果不勾选的话,便不会有那两只企鹅。

而点进去可以看到选择的是Standard 224-color Linux logo  

 

   这个选项,可见此

时选择的开机logo是这个图片,我们这时候可以进入/kernel/drivers/video/logo这个文件夹如下,

 

里面有logo_linux_clut224这个图片,

此刻我们便可以用别的图片替换这个图片就可以改变开机界面了。然后这时候我先随便找张PNG图片,然后利用linux下的一些图片转换工具可以把这张PNG图片转成可和开机logo一样的图片具体命令如下:        

          # pngtopnm linuxlogo.png > linuxlogo.pnm

         # pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm

         # pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm

        注:上述命令需要安装netpbm的工具包 sudo apt-get install netpbm

然后再把转换好格式的图片名字改程logo_linux_clut224替换掉之前那个文件夹里面的那个文件,同时把里面的.o和.c文件删掉,然后重新编译内核,重新烧录kernel,然后重启,便得到如下结果,

 ok,这样内核logo就这样修改ok了,可行,很简单吧,

现在开始修改第二个logo,android的logo

这个我们先看看源码,在system/core/init这个目录下init.c便定义了如下,在判定initlogo.rle这个文件不存在后,便执行了下面代码,便是显示android这几个字,

  

所以我们便有两种方式改变logo一种是改那个文字,一种是加一个rle文件,生成rle文件到方式也很简单,首先准备一个PNG-24或png-32格式的图片,即可用PS修改出来,即在

保存时选“保存为 Web 所用格式”,然后在弹开的窗口上,“预设”项选择“PNG-24”,保存为android_logo.png。

然后使用了如下命令:  convert -depth 8 android_logo.png rgb:android_logo.raw

                     ./rgb2565 -rle < android_logo.raw > initlogo.rle

rgb2565这个工具一般在android/out/host/linux-x86/bin目录下,如果没有也可以去网上下载一个,然后把权限给上去就可以用了。

生成后,便把那个文件放在out/target/product/rkpx2/root下,然后开始wiki上的步骤编译下来,先make -j4,然后在。/mkimage.sh生成固件,

但是楼主在烧录这个固件后, 并没有如期着看见这个界面,不过后面我修改了第三个界面后,发现根本就不存在第二个界面,楼主猜测也许是初始化时间太短,所以界面没有显示出来,或者说PX2的源码中有将其忽略了,而楼主是用LCD屏的,而楼主的一位朋友用VGA显示,是可以正常显示的,所以说这步理论上也是可行的,最后生成的rle文件是包含在out/target/product/rkpx2目录下的ramdisk.img下的,然后生成固件的时候加在boot.img这个固件下。

第三步是动画,这一步有很多种方法,最简单的方法是只需要把对应的开机动画文件bootanimation.zip用adb工具push进板中/data/local目录下,然后重启便可以实现,显示如下,

  

使用的开机文件也在附件中,而如大家想知道如何制作这个bootanimation.zip,这个百度上也已经有具体教程,而关于这部分具体代码位置可以参考原帖:http://bbs.chipspark.com/forum.php?mod=viewthread&tid=8121&extra=page%3D1。然后所有android的开机所有界面就这样啦,本人也是新手,讲的不好也请指出。


© 著作权归作者所有

穿
粉丝 0
博文 51
码字总数 24172
作品 0
福州
私信 提问
【Rayeager PX2】andoid开机logo分析及PX上的实现

PX2烧的系统也是android的时候,那么修改logo的方式也就大同小异啦,楼主也比较闲,就来试试修改logo。 大家都知道android启动界面分三步, 一步是内核的启动logo, 然后是android的启动初始...

穿prada的008
2015/05/27
183
0
Rayeager PX2开发板Ubuntu系统V1.0 beta版

将大于4GB的U盘插入ubuntu主机 fdisk -l 得到U盘的盘符,假设为/dev/sdc dd bs=4M if=px2_linaro_ubuntu.img of=/dev/sdc 重新拔插U盘 fdisk -l 查看u盘分区表情况,存储ubuntu系统的分区应该是...

穿prada的008
2015/01/29
49
0
Rayeager PX2 1GB/2GB增强版上市

Rayeager PX2 开发板采用Rockchip PX2处理器,内置双核ARM Cortex-A9核心,内存:1GB DDR3@400MHz,最高运行频率1.4GHz,配备Mali-400 MP4 GPU,支持OpenGL ES 1.1/2.0和OpenVG 1.1,同时支持...

穿prada的008
2014/09/15
332
1
独领风骚:Rayeager PX2高性能开发板的八大特性

Rayeager PX2是首款采用Rockchip PX2高性能AP的开源开发板,这款采用双核Cortex A9,频率高达1.4GHz的板子是Rcokchip与Chipspark智能设备驱动平台的首次结合。 出身Rcokchip的这款板子主要被...

超级丹
2014/10/28
192
0
独领风骚:Rayeager PX2高性能开发板的八大特性

Rayeager PX2是首款采用Rockchip PX2高性能AP的开源开发板,这款采用双核Cortex A9,频率高达1.4GHz的板子是Rcokchip与Chipspark智能设备驱动平台的首次结合。 出身Rcokchip的这款板子主要被...

超级丹
2014/10/27
1
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
25分钟前
3
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部