• Android MTK平台最完备的开机动画修改教程


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

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

    手机是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。

  • 相关阅读:
    nodejs ---day01
    面向对象
    面向对象
    面向对象
    webpack
    webpack
    webpack
    模块化 (ESM) --- day02
    模块化 --- day01
    轮播图(淡入淡出切换)
  • 原文地址:https://www.cnblogs.com/liang123/p/6325398.html
Copyright © 2020-2023  润新知