修改android启动
- 格式:doc
- 大小:20.00 KB
- 文档页数:5
日期:2012-02-15 作者:zhh
以下在Telechips tcc8923上,用的源码编译通过
图片修改
bootable\bootloader\lk\platform\tcc_shared\include\lcd\替换就行了
的制作:准备一张图片,然后用Img2Lcd工具把图片转成C语言数组
注意:在使用Img2Lcd工具转换的图片最左边会有一条白边,把数组中前8个数值删除就不会有这样的情
况。仅仅支持.bmp格式的文件
图片(linux logo)原来是没有的,需要先在menuconfig中加入配置Device Driver---Graphic
support---Bootup Logo中选中224 color
然后把自己的LOGO(png-8格式)转换成ppm格式,替换这个文件,同时删除 文件,重新编译。
(/drivers/video/logo/ 是默认的启动LOGO图片格式为ppm)
ppm图片的生成:
# pngtopnm >
# pnmquant 224 > (如果执行出错,可以省略)
# pnmtoplainpnm >
注意:使用pngtopnm ,pnmquant ,pnmtoplainpnm 工具前要先安装,在虚拟机下sudo apt-get install
netpbm 这三个工具会安装好。
设置图片居中显示:
修改drivers/video/
/*modified by creatory*/
制作当前屏幕像素的图片(模拟器默认为1024*768)
使用PS制作一张1024*168的图片,保存时选“保存为 Web 所用格式”,然后在弹开的窗口上,“预设”
项选择“PNG-24”,保存为(
注:好像只支持png-24,其他格式生成的rle文件显示不正常,有兴趣大家可以再验证一下。
2). 将图片转换为raw格式
使用linux下的ImageMagick自带的convert命令,进行raw格式转换,命令为:
convert -depth 8 rgb:
注:ubuntu 默认已经安装ImgageMagick工具,如果当前系统没有安装,可以执行下面的命令安装:
sudo apt-get install imagemagick
3). 将raw格式转化为rle文件
需要用到android编译后的rgb2565工具,在android/out/host/linux-x86/bin目录下(android为当
前源码所在目录),转换命令如下:
rgb2565 -rle < >
4).
修改:tcc8923_/device/telechips/m805_892x/
添加下面一行:
PRODUCT_COPY_FILES += \
device/telechips/common/:root/
意思是复制rle文件到
5、替换文件device\telechips\common\;
同时删除out\target\product\tcc8900\,,再重新编译,就可以了
第二种方法:
到目前为止,启动需要显示的图像已经做好了,就是,注意文件名必须是这个,如果想改文件名,需要修
改
android/system/core/init/中的宏:
#define INIT_IMAGE_FILE "/"
============================================================================================
下面需要将加入的android文件系统中
以下的4,5,6,7,需要先进行如下设置,把放入device\telechips\common\,删除之类的相关的文件重
新make即可。
4). 找到文件(android/out/target/product/generic/,将文件名改为,然后使用下面的命令解压:
gunzip
解压后得到,可能有人要问,怎么文件名又改回去了?其实不然,使用file 查看一下就知道了:
解压前:: gzip compressed data, from Unix
解压后:: ASCII cpio archive (SVR4 with no CRC)
跑题了,还是说正事儿。
5). 使用cpio提取文件:
新建一个temp目录:
mkdir temp
cd temp
cpio -i -F ../
6). 导出文件列表:
cpio -i -t -F ../ > list
注:list是一个文本文件,里面存储了的文件结构,我们需要在这个文件中加入这一行,修改后的文件如
下
data
dev
init
7). 生成
cpio -o -H newc -O < list
注:根据list文件的描述,生成文件
8). 用覆盖sdk目录下的(android-sdk-windows/platforms/images/,最好先备份一下。
二、
开机动画(闪动的ANDROID字样的动画图片)
Android 的系统登录动画类似于Windows系统的滚动条,是由前景和背景两张PNG图片组成,
这两张图片存在于/system/framework /文件当中。前景图片()上的Android文字部分镂
空,背景图片()则是简单的纹理。系统登录时,前景图片在最上层显示,程序代码控制背
景图片连续滚动,透过前景图片文字镂空部分滚动显示背景纹理,从而实现动画效果。
相关代码:
/frameworks/base/libs/surfaceflinger/
/frameworks/base/libs/surfaceflinger/
/frameworks/base/core/res/assets/images/
Android默认的前景图片,文字部分镂空,大小256×64
/frameworks/base/core/res/assets/images/
Android默认的背景图片,有动感效果,大小512×64
二、开机文字("A N D R I O D")
Android 系统启动后,中main()调用load_565rle_image()函数读取/(一张565 rle压缩
的位图),如果读取成功,则在/dev/graphics/fb0显示Logo图片;如果读取失败,则将
/dev/tty0设为TEXT模式, 并打开/dev/tty0,输出文本“A N D R I O D”字样。
定义加载图片文件名称
#define INIT_IMAGE_FILE "/"
int load_565rle_image( char *file_name );
#endif
中main()加载/文件。
if( load_565rle_image(INIT_IMAGE_FILE) ) {le文件的制作步骤:
a. 使用GIMP或者Advanced Batch Converter软件,将图象转换为RAW格式;
b. 使用android自带的rgb2565工具,将RAW格式文件转换为RLE格式(如:rgb2565 -rle
< > 。