linux开机logo 和 android开机logo 的修改

廉价感情. 提交于 2019-12-09 17:48:34

一.设置LINUX内核启动LOGO

     1、让内核支持启动LOGO

        在内核目录中 make menuconfig

        Device Drivers ---->   Graphics support ---->

        选中 Bootup logo ----> Standard 224-color Linux logo

     2、制作开机logo的图片        

         将要当作开机LOGO的图片按照你屏幕的大小进行裁减,并将其保存为bmp格式 或 png格式; 例如linuxlogo.bmp 或 linuxlogo.png

         在linux下输入以下命令(for bmp):

          #bmptoppm linuxlogo.bmp > linuxlogo.ppm                             //生成ppm
          #ppmquant 224 linuxlogo.ppm > linuxlogo224.ppm                   //转换成224颜色
          #pnmnoraw linuxlogo224.ppm > linuxlogo224.ppm
                   //转换成ascii格式

        在Linux下输入以下命令(for png):

         # pngtopnm linuxlogo.png > linuxlogo.pnm 
         # pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm 
         # pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm

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

     3、将LOGO文件放入内核中

           拷贝到制作好的LOGO文件到  /drivers/video/logo 文件夹

           替换  logo_linux_clut224.ppm 文件,还要删除该文件夹下的logo_linux_clut224.o

     4、重新编译内核 make zImage 或 make uImage

 

二、修改android开机画面

 

Android系统开机动画包括两部分:

  开机显示的 ANDROID 文字;

  ANDROID发光动画。

======================================================================================================================

  开机显示的 ANDROID 文字;

       1、 制作当前屏幕像素的图片(模拟器默认为320*480),例如android_logo.png

  使用PS制作一张320*480的图片,保存时选“保存为 Web 所用格式”,然后在弹开的窗口上,“预设”项选择“PNG-24”,保存为android_logo.png

  注:好像只支持png-24,其他格式生成的rle文件显示不正常,有兴趣大家可以再验证一下。

  2、 将图片转换为raw格式

  使用linux下的ImageMagick自带的convert命令,进行raw格式转换,命令为:

  convert -depth 8 android_logo.png rgb:android_logo.raw

  注:ubuntu 10.04 默认已经安装ImgageMagick工具,如果当前系统没有安装,可以执行下面的命令安装:

  sudo apt-get install imagemagick

  3、 将raw格式转化为rle文件

  需要用到android编译后的rgb2565工具,在android/out/host/linux-x86/bin目录下(android为当前源码所在目录),转换命令如下:

  rgb2565 -rle < android_logo.raw > initlogo.rle

      将initlogo.rle文件放在android4.2\device\softwinner\【wing-k70】下,或是自己创建个目录将initlogo.rle文件放在改目录下,若直接放在【wing-k70】下,则要在该目录下的

ProductCommon.mk中添加PRODUCT_COPY_FILES += \
device/softwinner/wing-common/initlogo.rle:root/initlogo.rle \,表示将该目录下的initlogo.rle,一起打包到板子的根目录下(将会出现在android4.2\out\target\product\wing-k70目录下),若是自己创建的目录则要 PRODUCT_COPY_FILES += \
device/softwinner/wing-common/【your dir】/initlogo.rle:root/initlogo.rle \;

  到目前为止,启动需要显示的图像已经做好了,就是initlogo.rle,注意文件名必须是这个,如果想改文件名,需要修改android/system/core/init/init.h中的宏:

  #define INIT_IMAGE_FILE "/initlogo.rle"

      ============================================================================================

  下面需要将initlogo.rle加入的android文件系统中

  4、找到ramdisk.img文件(android/out/target/product/generic/ramdisk.img),将文件名改为ramdisk.img.gz,然后使用下面的命令解压:

  gunzip ramdisk.img.gz

  解压后得到ramdisk.img,可能有人要问,怎么文件名又改回去了?其实不然,使用file ramdisk.img查看一下就知道了:

  解压前:ramdisk.img: gzip compressed data, from Unix

  解压后:ramdisk.img: ASCII cpio archive (SVR4 with no CRC)

  跑题了,还是说正事儿。

  5、使用cpio提取文件:

  新建一个temp目录:

  mkdir temp

  cd temp

  cpio -i -F ../ramdisk.img

       6、导出文件列表:

  cpio -i -t -F ../ramdisk.img > list

  注:list是一个文本文件,里面存储了ramdisk.img的文件结构,我们需要在这个文件中加入initlogo.rle这一行,修改后的文件如下:

  data

  default.prop

  dev

  init

  init.goldfish.rc

  init.rc

  initlogo.rle

  proc

  sbin

  sbin/adbd

  sys

  system

  7、生成ramdisk.img

  cpio -o -H newc -O ramdisk.img < list

  注:根据list文件的描述,生成ramdisk.img文件

  8、用ramdisk.img覆盖sdk目录下的ramdisk.img(android-sdk-windows/platforms/android-2.1/images/ramdisk.img),最好先备份一下。

   9、启动模拟器,就可以看到我们自己做的的开机界面了。

================================================================================================================

     开机动画(闪动的ANDROID字样的动画图片)

Android 的系统登录动画类似于Windows系统的滚动条,是由前景和背景两张PNG图片组成,

这两张图片存在于/system/framework /framework-res.apk文件当中。

前景图片(android-logo-mask.png)上的Android文字部分镂空,背景图片 (android-logo-shine.png)则是简单的纹理。

系统登录时,前景图片在最上层显示,程序代码控制背景图片连续滚动,透过前景图片文字 镂空部分滚动显示背景纹理,从而实现动画效果。

相关代码:
/frameworks/base/cmds/bootanimation/BootAnimation.h
/frameworks/base/cmds/bootanimation/BootAnimation.cpp

/frameworks/base/core/res/assets/images/android-logo-mask.png
Android默认的前景图片,文字部分镂空,大小256×64
/frameworks/base/core/res/assets/images/android-logo-shine.png
Android默认的背景图片,有动感效果,大小512×64

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!