• 最近接到一项任务,修改手机的开机动画。 其实这不是什么难事儿,但问题是,客户只提供了手机。 手机是MTK的一款手机,虽然比较贵(价格超过三星Note3),但在我看来跟山寨机木...1.开机第一屏 2.开机第一屏 3.开机动画

    修改手机的开机动画不是什么难事儿。

    但修改一款很冷门的“山寨机”,就不太好修改第一屏了。

    手机是MTK的一款手机,虽然比较贵(价格超过三星Note3),但在我看来跟山寨机木有啥区别。

    很冷门的手机,百度谷歌都翻了个天,都木有刷机包,更别提recovery了。

    好了,root完毕,开工。


    开机动画严格意义上可以分为三个步骤:

    1.开机第一屏

    2.开机第二屏

    3.开机动画


    以MTK手机为例:

    Boot logo:
    1. 开机显示的顺序如下:
        boot logo(开机第一屏)   (logo.bin 中)
        Kernel logo(开机第二屏)  (system/media/images/boot_logo 文件)
        Boot animation(开机动画)(system/media/bootanimation.zip 文件)
    2. boot logo和kernel log所用的图片资源在 mediatek/custom/common/uboot/logo 目录下。
        在ProjectConfig.mk中指定具体目录,比如BOOT_LOGO=wvga_XXX,表示用wvga_XXX目录下的资源,该目录下的资源都是bmp文件。
        在logo/update 文件中会调用tool/bmp_to_raw将bmp文件转换成raw文件,并且在make uboot时会将这些资源文件放到logo.bin 中。 
        Logo/update 针对wvga_XXX_kernel.bmp有特殊处理,将其转成raw文件并命名为/logo/boot_logo
        在mediatek/source/external/boot_logo_upater/Android.mk中会将boot_logo 文件放到out/target/product/system/media/images/boot_logo. 这样就放到了system.img中.
    3. boot logo的显示: boot.img中加载logo.img中的boot 图片显示;
        Kernel logo的显示: init.rc 启动 service bootlogoupdater /system/bin/boot_logo_updater .
        boot_logo_updater这个可执行程序由boot_logo_updater.c 编译而成,其功能是从/system/media/images/boot_logo 中读出kernel_boot资源,并通过framebuffer直接显示到LCD上。
        注:可以根据logo/update中的脚本单独生成boot_logo文件(修改第二屏),然后用adb remount/adb push的方法直接放到手机里面观察效果。


    下面依次来修改三个屏幕。


    1.开机第一屏

    这一屏的修改主要是制作一个update.zip的升级包,用recovery刷上去就看到效果了。

    但对于山寨机来说,就比较麻烦了(木有第三方recovery,官方的recovery战斗力就是个渣渣(原因可自行百度))。

    (1)adb pull 导出logo文件(是的,木有后缀,我手边的机子是在/dev/目录下)

    (2)将logo文件加个后缀.bin

    (3)下载开机第一屏制作软件LogoBuilder

    (4)如图,替换img1图片(也就是开机第一屏),点击“开始生成”,导出update.zip的刷机包

    (5)将生成的卡刷包 update.zip 拷到sd卡根目录下,手机进入 recovery ,进行卡刷(特别提醒:不要双清),刷完后重启手机就会看到新的第一屏。

    注:悲剧的是,自己不会做第三方recovery,而这破机子也没有第三方recovery!


    2.开机第二屏

    (1)导出boot_logo文件至笔记本

    (2)使用Image Search Editor软件打开boot_logo文件,用同尺寸的bmp文件替换显示出来的图片。

    (3)将替换图片后的boot_logo导入到手机原目录

    (4)OK


    3.开机动画

    (1)导出bootanimation.zip 文件至PC

    (2)解压缩,发现2个目录和一个desc.txt的"脚本文件"



    bootanimation.zip里面一般有两个文件夹part0,part1,一个文本文件desc.txt
    dest.txt里面的参数是用来控制播放的,
    比如:
    第一行   540  960   24       540*960是手机的分辨率,而接着的一秒播放多少帧,这里是24
    第二行    p  1  0    part0     这里第一个数字1表示播放1遍,第二个数字表示不停顿,而part0表示播放用的图片文件夹  

    第三行    p  0  0    part1     这里第一个数字0表示循环播放,第二个数字若不为0,则表示每播放到当前这个数字的帧停顿一下,(以10为例,就是每播放10帧停一下)而part1表示播放用的图片文件夹

    更换两个文件夹的文件为自己的逐帧动画图片素材,重新打包为zip文件。
    注意:要存为zip格式,并且只能是存储,否则开机动画是播放不出来的
    制作好之后进行替换就可以了需要注意的是文件容量不能太大尽量不要高于原开机动画大多否则会造成读取慢卡失效,另外,还需要配合开机音乐的时长。


    开机音乐相对简单,替换system/media中的bootaudio.mp3文件即可。



    关机动画与开机动画修改类似。

    The End。

    
    
    展开全文
  • Android系统开机显示画面分成两个过程,第一个过程从按电源键到Frameworks启动为止。第二个过程从Frameworks启动完成到Launcher程序启动完成。 第一个过程显示的画面是一张图,第二个过程显示的是一个动画。...
    Android系统开机显示画面分成两个过程,第一个过程从按电源键到Frameworks启动为止。第二个过程从Frameworks启动完成到Launcher程序启动完成。


    第一个过程显示的画面是一张图,第二个过程显示的是一个动画。分别简要记录一下怎么样在源码中修改这两个地方。






    1、修改开机画面


    找到源码kernel\drivers\video\logo\目录,在这个目录下你会发现logo_linux_clut224.ppm文件,这个就是开机画面的图片,如要替换成自己的Logo,则把自己的Logo图片(png格式)转换成ppm格式,替换这个文件,同时删除logo_linux_clut224.c logo_linux_clut224.o文件,重新编译烧录即可。




    注:将png图片改成.ppm格式。首先你要有个 和自己屏幕分辨率一样 或者 小于屏幕分辨率的图片,如logo_linux_clut224.png
        ①将png图片转成pnm
         pngtopnm logo_linux_clut224.png >logo_linux_clut224.pnm
        ②将pnm图片的颜色数限制在224色
        pnmquant 224 logo_linux_clut224.pnm > logo_linux_clut224_backup.pnm(此处生成后的名字不可与前者相同,否则会报错)
        ③将pnm图片转换成我们需要的ppm
        pnmtoplainpnm logo_linux_clut224_backup.pnm >logo_linux_clut224.ppm


    2、修改开机动画


    在源码跟目录中,执行  find . -name "bootanimation.zip"   找到文件所在路径,可以查看其中的Android.mk了解具体的编译过程,下面先介绍一下如何制作开机动画:






    开机动画主要是由一个zip格式的压缩包组成,压缩包里面包含数张png格式的图片,还有一个desc.txt的文本文档,开机时按desc.txt里面的指令,屏幕上会按文件名称顺序连续的播放一张张的图片,




     
    就像播放原始的胶带影片一样,形成动画。


    具体这一部分图片怎么来,看个人喜好了,我是比较喜欢用flash制作好自己想要的动画然后按帧导出,然后按数字顺序给文件编号就可以了。


    如果你不会flash制作也没关系,推荐一个软件:SWF2Video Pro ,链接我就不提供了,自己可以google搜索到,
    这个软件可以把flash按帧导出成png格式图片。也就是说,只要有你喜欢的flash动画,你都可以用这个软件把画面截取出来用来做你小石头的开机动画。其他格式导出png格式的软件我就不一一说明了,大家有机会去搜索一下。
    保存下来的png图片记得要按顺序编号命名。


    下面重点讲的是desc.txt这个文件里面的命令。
    desc.txt里面的命令格式如下:


    480 427 30
    p 1 0 part0
    p 0 0 part1


    我逐一解释一下:


    480 427意思是说你开机动画在屏幕先以多少的分辨率显示,注意不要超过milestone屏幕480x854的分辨率,否则你的画面就显示不全了。
    30 这个数字是代表着每秒播放的帧数,拿我这个开机画面打个比方说,part0文件夹里面共76个图片,播放时间就是76/30=2.533333秒播放完毕,当然在手机里面会有一定的延时,尤其是你的图片文件比较大的情况下,手机想播快也快不起来,卡啊
    以下部分是实现画面重复位置的
    p 1(代表着播放一次) 0(空指令)part0  */这句指令就代表这part0文件夹内的图片只按名称顺序播放一次
    p 0(重复播放)0 (空指令)part1 */这一句指令代表着part1文件夹内的图片会循环反复播放


    还有一种是指令不常用,我也来解释一下吧


    p 0 10 part1  这里面的那个10代表着播放完part1文件夹内的图片一遍之后稍作停顿,然后再循环播放一遍,再停顿少许,再播放,再停顿稍许·········重复下去
    p 1 10 part1  同理,这句代表着播放完part1文件夹内的图片之后稍作停顿然后继续执行吓一条命令。


    如果想作出一些特殊的效果,可以活用这些命令,然后分配不同的图片在各个文件夹里来实现各种重复与循环。


    图片准备好了,desc.txt里面的命令准备好了,就可以把他们一起打包压缩成zip格式了。
    记住,是zip格式,而不是rar格式。另外压缩的时候注意一点,压缩的时候压缩方式要选择存储,否则开机时手机会不认的。当然不至于变砖,只是开机的时候会黑着没动画一直到进入桌面为止。看图:
     
    压缩文件重命名为bootanimation.zip之后,放进源码相应的目录下重新编译,查看out\target\product\la0910\system\media\路径下的文件,即可发现已经修改成功,再烧录程序进行验证。
    如果之前已经使用了其他的红眼之类的非默认开机动画,这里会已经存在这个文件,只需覆盖就好。






    接下来介绍一下相关的代码:






    主要的控制代码在/framework/base/cmds/bootanimation/BootAnimation.cpp中。这个文件定义了对动画显示规则的解析,所以,我们可以通过在bootanimation.zip中包含的描述文件来很简单地定义动画显示。只要把开机动画按一定规则做成bootanimation.zip压缩包存放在系统的/oem/media/或/system/media/这两个目录下。开机时,系统检测到这两个目录任意一个下面有名字为bootanimation.zip的压缩包的话,都会解压并播放里面定制的动画。检测顺序是先检测/oem/media/再检测/system/media/。


    另外,我们还可以用另外一种方式修改动画,在/frameworks/base/core/res/assets/images/这个目录中,默认情况下,BootAnimation.cpp中的动画控制代码会使用变量mAndroid里面包含的两张图片来做为显示动画。我们要做的就是直接做好图片替换掉/frameworks/base/core/res/assets/images/中的两个文件,最主要的还是要把握好图片的分辨率。






    如果只是要修改分辨率,那么可以通过将其中的图片修改分辨率后重新生成一个新的bootanimation.zip的方法,达到适配的效果。



    http://blog.csdn.net/dddxxxx/article/details/54343976

    展开全文
  • Android系统的开机动画修改主要是修改/system/media/文件夹下面的bootanimation.zip文件。  解压该文件后,我们会发现里面有个文件夹,还有个名为desc.txt的文件。这个文件内容一般如下:  1920 1080 20  ...

      Android系统的开机动画修改主要是修改/system/media/文件夹下面的bootanimation.zip文件。
      解压该文件后,我们会发现里面有一个文件夹,还有一个名为desc.txt的文件。这个文件内容一般如下:
      1920 1080 20
      p 0 0 loading
      第一行中的1920和1080表示图片的分辨率,前面是宽后面是高,20表示刷新帧率,即每秒20帧
      第二行中的第一个0表示重复次数,0表示无限重复;第二个0表示动画完成后多久开始下一次动画;loading是我们放图片的文件夹名称。
      loading文件夹存放的图片一般为png图片,如果有多张图片就按照动画顺序依次命名为1.png 2.png。。。。。等
      最后我们把desc.txt文件和loading文件夹压缩名为bootanimation的zip压缩文件。
      这里需要注意的是,我们在压缩的时候需要选择压缩方式,这里必须选择为存储,否则即使替换了系统中的压缩文件,动画也不会正常显示。
      

    展开全文
  • 将需要的图片做成480*320像素 放到同个文件加内 之后。。。
  • 第一屏修改方法:(注意手机一定要是彻底ROOT的才可以修改)  1、准备图片:480*800*24bit的bmp图片(注意一定要试24bit的,否则刷第一屏时会失败,windows自带的图画软件就能保存为24bit的)  2、解压adb...
     第一屏的修改方法:(注意手机一定要是彻底ROOT的才可以修改)
      1、准备图片:480*800*24bit的bmp图片(注意一定要试24bit的,否则刷第一屏时会失败,windows自带的图画软件就能保存为24bit的)
      2、解压adb压缩包,直接将喜欢的图片覆盖里面的splash1.bmp示例图片(自己做的bmp图片改为splash1.bmp名称)
      3、连上手机,运行adb包里面的make.bat批命令即可
      
      具体步骤是:
      1关机,重启进入HBOOT的界面,然后进入fastboot
      2插上数据线链接电脑,安装好HBOOT的驱动(原来有的跳过)
      3运行adb批处理程序(已经替换好splash1.bmp文件)
      4等待大约不到2秒就OK了,点任意键cmd关闭,手机用电源键选择重启,就可以看到已经替换好的第一屏了。
    展开全文
  • 修改开机第一屏工具”进行修改,此方法简单而且安全性高,只要你按照要求修改不会出错,前提是认清自己的机器是否适合刷第一。 具体做法可以搜索论坛关键字 第二动画 1:下载你喜欢的开机动画文件,...
    首先确认自己机器有root权限

    具体步骤:

    “修改开机第一屏工具”进行修改,此方法简单而且安全性高,只要你按照要求修改不会出错,前提是认清自己的机器是否适合刷第一屏。

    具体做法可以搜索论坛关键字

    第二屏动画
    1:下载你喜欢的开机动画文件,下载好后不要解压缩,只需要将压缩文件的名字改为bootanimation.zip然后复制到SD卡任意文件夹下。
    2:打开手机中的root explorer文件浏览器找到刚才放进去的开机动画文件,复制然后粘贴到data/local目录下如果提示不能粘贴点击下RE浏览器上边的那行字母改为可读写模式
    3:粘贴好后一定不要以为完事了,一定别忘记长按刚才粘贴进去的动画文件找到权限那一项将所有权限都打√

    4:完事关机重启,OK



    还有一种方法:用RE将下载好的bootanimation.zip替换/system/media/下同名的bootanimation.zip ,然后再修改权限为被替换文件的权限
    展开全文
  • Android默认开机

    2019-07-18 16:32:36
    实际开发中,有时项目需要设备默认开机,这里我们默认第一帧第二帧依旧采用竖资源(Android7.0)。 frameworks/base/cmds/bootanimation/BootAnimation.cpp frameworks/base/core/res/res/values/config.xml ...
  • 1: 上层(Java)修改 既然设计到屏幕的修改, 肯定想到了直接修改WMS(比较粗暴的方式)。 其实Android的很多的需求都是通过配置文件来的, 这么明显的设计需求只要去找相应的配置就可以了。 core/res/res/values/...
  • android开机自动唤醒屏幕、打开锁屏页并启动app 标签: android开机自启屏幕唤醒屏幕解锁 2016-08-29 21:13 566人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: android ...
  • Android系统开机显示画面分成两个过程,第一个过程从按电源键到Frameworks启动为止。第二个过程从Frameworks启动完成到Launcher程序启动完成。 第一个过程显示的画面是一张图,第二个过程显示的是一个动画。分别...
  • 修改Android开机画面

    2012-01-06 21:07:41
    开机第android动画): 编译成功后在android源码根目录生成out目录, 修改android\out\target\product\sdkDemo\system\framework目录下的framework-res.apk 用winrar格式打开,替换assets\images里的2...
  • 直接贴修改记录 diff --git a/device/mediateksample/tb8768p1_64_bsp/ProjectConfig.mk b/device/mediateksample/tb8768p1_64_bsp/ProjectConfig.mk index 5710b64..5651cfa 100755 --- a/device/mediateksample/tb...
  • 开机默认固定横,是指第一次刷机开机或恢复出厂设置,开机时Launcher固定横向。当然,想要开机动画等同样横向显示,则需修改驱动的启动部分,在此,只说说应用层的默认固定横向。 在frameworks/base/packages/...
  • surfaceFlinger.cpp文件中 void GraphicPlane setDisplayHardware(DisplayHardware *hw)函数中 在int displayOrientation = ISurfaceComposer::eOrientationDefault;下面增加: displayOrientation = ...
  • 修改Android开机画面

    2016-02-16 16:07:53
    <br />Android系统开机显示画面分成两个过程,第一个过程从按电源键到Frameworks启动为止。第二个过程从Frameworks启动完成到Launcher程序启动完成。 第一个过程显示的画面是一张图,第二个过程显示的是...
  • ">如果理解了Android的设计的原理, 其实这个修改原理十分简单, 比一些网上流出来的粗暴的修改方式既美观又实用。  修改分为三部分:  1: 上层(Java)修改 既然设计到屏幕的修改, 肯定想到了直接修改...
  • Android:Android开机动画

    2019-08-23 11:20:46
    Android系统的开机画面显示过程分析 三个开机画面修改方式第一个开机画面是在内核启动的过程中出现的,它是一个静态的画面第二个开机画面是在init进程启动的过程中出现的,它也是一...修改android开机画面(第一个静...
  • 1、app 强制横显示,无视 android:screenOrientation=“portrait” 属性 2、开机动画横 3、开机logo、关机充电动画横 4、RecoveryUI 横 上代码 1、app 强制横显示 DisPlayContent 显示 mRotation 默认改为...
  • 修改Android开机图片

    2013-12-23 17:40:09
    原理比较简单,开机画面已被转换为可以直接用于显示的RGB数据,存放在个常量数组中,需要显示时,定义显示的区域,直接将这些数据拷贝到Buffer中。 这里说一下如何将一般的图片(jpg、png、bm
  • 引言Android系统在按下开机键之后就会进入启动流程,这个过程本身需要一些时间,而面向用户的往往是厂商定制...源码:非官方Android5.1源码描述笼统来说,目前android开机画面由三个部分(阶段)组成,第一部分在bootlo
1 2 3 4 5 ... 20
收藏数 14,263
精华内容 5,705