安卓修改开机logo

幽沉谢世事,俯默窥唐虞。这篇文章主要讲述安卓修改开机logo相关的知识,希望能为你提供帮助。
这里我们是在ubuntu下进行操作我是用root用户登陆的,首先安装netpbm库
        执行:apt-get install netpbm
        对于android系统最开始表现logo是在内核当中,所以首先我们要修改内核中的logo.
        一.内核中相关修改

        编译linux内核logo制造脚本mklogo.sh,内容如下:

#!/bin/sh pngtopnm logo.png > linuxlogo.pnm pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm pnmtoplainpnm linuxlogo224.pnm > logo_linux_gzsd_clut224.ppm rm linuxlogo.pnm linuxlogo224.pnm

        将你选好的logo转换成png格式,定名为logo.png并与mklogo.sh放在统一路径下.
执行./mklogo.sh最后生成logo_linux_gzsd_clut224.ppm
        这个定名可以自由变动,但是必须遵守logo_yourname_type这类定名方法,这里仅罗列*_clut224.ppm的定名方法,其它格式的定名方法请查看drivers/video/logo/Makefile文件.
        将logo_linux_gzsd_clut224.ppm文件放到内核源码下的drivers/video/logo/目录下
        进入drivers/video/logo目录
【安卓修改开机logo】        1.修改Kconfig文件
        增加:在endif #LOGO之前

       
config LOGO_LINUX_GZSD bool "gzsd logo" default n

        2.修改Makefile文件
        增加:
        obj-$(CONFIG_LOGO_LINUX_GZSD)          += logo_linux_gzsd_clut224.o
        3.logo.c中函数fb_find_logo中的 if (depth > = 8)上面增加:
        #ifdef CONFIG_LOGO_LINUX_GZSD
                              logo = & logo_linux_gzsd_clut224;
#endif
        4.内核源码目录下的include/linux/linux_logo.h中增加
        extern const struct linux_logo logo_linux_gzsd_clut224;
        每日一道理
毅力,是千里大堤一沙一石的凝聚,一点点地累积,才有前不见头后不见尾的壮丽;毅力,是春蚕吐丝一缕一缕的环绕,一丝丝地坚持,才有破茧而出重见光明的辉煌; 毅力,是远航的船的帆,有了帆,船才可以到达成功的彼岸。
        5.在终端执行make menuconfig,选上.

        Device Drivers  --->   Graphics support  ---> Bootup logo  ---> gzsd logo
        保存退出后编译即可
        6.禁止LCD控制台的光标
        在内核源码目录下drivers/video/console/fbcon.c中
        注释掉函数:fb_flashcursor和fbcon_cursor内的所有内容
        7.让logo中屏幕旁边表现:
        drivers/video/fbmem.c
        修改函数fb_do_show_logo如下

static void fb_do_show_logo(struct fb_info *info, struct fb_image *image, int rotate, unsigned int num) { unsigned int x; int xoff,yoff; /**for central logo**/ xoff = (info-> var.xres - num * (fb_logo.logo-> width + 8))> > 1; //得到旁边x坐标 yoff = (info-> var.yres - num * (fb_logo.logo-> height + 8))> > 1; //得到旁边y坐标 if (rotate == FB_ROTATE_UR) { for (x = 0; x < num & & image-> dx + image-> width < = info-> var.xres; x++) { image-> dx = xoff; image-> dy = yoff; info-> fbops-> fb_imageblit(info, image); image-> dx += image-> width + 8; } } else if (rotate == FB_ROTATE_UD) { for (x = 0; x < num & & image-> dx > = 0; x++) { info-> fbops-> fb_imageblit(info, image); image-> dx -= image-> width + 8; } } else if (rotate == FB_ROTATE_CW) { for (x = 0; x < num & & image-> dy + image-> height < = info-> var.yres; x++) { info-> fbops-> fb_imageblit(info, image); image-> dy += image-> height + 8; } } else if (rotate == FB_ROTATE_CCW) { for (x = 0; x < num & & image-> dy > = 0; x++) { info-> fbops-> fb_imageblit(info, image); image-> dy -= image-> height + 8; } } }

        重新编译即可
        二.android启动后闪动画面修改:
        路径:文件系统源码下的frameworks/base/core/res/assets/images/下有两张图片
        android-logo-mask.png
        android-logo-shine.png
        修改这两张图片即可,注意请将本来的保存。










    推荐阅读