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

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

手机是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 MTK平台最完备的开机动画修改教程的更多相关文章

  1. Android MTK平台 客制化系统来电界面(屏蔽 InCallUI 提供接口给客户自行展示来电去电页面)

    OS: Android 8.1 需求分析 1.禁止系统来电铃声,提供接口给客户自己播放铃声 2.禁止系统拉起来去电页面(InCallActivity),消息通知客户拉起自己的来去电页面 3.禁止来电消 ...

  2. Android系统移植与调试之------->如何修改开机动画的两种方式剖析

    首先,我们先来分析一下源码: frameworks/base/cmds/bootanimation/BootAnimation.cpp 首先看一下定义的常量: BootAnimation::ready ...

  3. Android 修改开机动画(bootanimation)【转】

    本文转载自:http://blog.csdn.net/u012301841/article/details/51598115 Android 系统自带的开机动画,是一个白色的 “android” 文字 ...

  4. 深入浅出 - Android系统移植与平台开发(十一)- Android系统的定制(瘋耔修改篇一)

    首先非常感谢原文作者为我们提供的知识库,因为有你们的贡献,我们的开发难度更显简单 原文 :   http://blog.csdn.net/mr_raptor/article/details/30113 ...

  5. android开机动画(bootanimation)

    Android开机动画有两种修改方法,android 2.0及之后,使用bootanimation程序显示开机画面,如需修改开机画面,不用修改代码,只需按格式要求做bootanimation.zip包 ...

  6. Android4.4开机动画播放视频

    Android4.4系统启动时,播放自定义bootanimation.zip动画时,由于分辨率为1280x720,bootanimation.zip包也很大,播放太卡,所以将开机动画修改为播放视频.如 ...

  7. 教你win7关闭开机动画,大幅度加快开机时间

    Win7系统如何关闭开机动画 Win7系统开机动画关闭教程,以前我们说过很多种帮助Win7开机加速的方法,比如减少Win7开机启动的程序.服务或计划任务等.不过这些都优化都是针对已经进入Win7系统后 ...

  8. 修改android系统开机动画

    本文转载自:http://blog.csdn.net/u012301841/article/details/51598115 修改android系统开机动画

  9. Nexus5x 修改Android开机动画

    1.制作帧动画 这里随便从网上找了一个gif图片,导入PS中,打开后会形成很多帧图层,选择导航栏中的文件->脚本->将图层导出到文件可以将所有图层导出来.要注意文件命名,Android会按 ...

随机推荐

  1. 有一台机器,上面有m个储存空间。然后有n个请求,第i个请求计算时需要占 R[i]个空间,储存计算结果则需要占据O[i]个空间(据O[i]个空间(其中O[i]<R[i])。问怎么安排这n个请求的顺序,使

    有一台机器,上面有m个储存空间.然后有n个请求,第i个请求计算时需要占 R[i]个空间,储存计算结果则需要占据O[i]个空间(据O[i]个空间(其中O[i]<R[i]).问怎么安排这n个请求的顺 ...

  2. 剑指Offer——丑数

    剑指Offer--丑数 前言     参照<剑指Offer>,通过洞悉其思想并消化吸收,改为java实现,供自己以后巩固. package cn.edu.ujn.offersword; i ...

  3. Unable to access the IIS metabase.You do not have sufficient privilege

    今天在用vs打开以前老代码的时候报如下问题,无法打开工程了,从提示来不大可能是因为vs的版本引起的,本身我用的是最新版的vs. 网上查了下解决方法如下:找到你电脑中的如下路径"C:\Wind ...

  4. Struts2中的struts.multipart.saveDir的配置

    <constant name="struts.multipart.saveDir" value="D:\\AsimsTemp"></const ...

  5. 剑指Offer--排序算法小结

    剑指Offer--排序算法小结 前言 毕业季转眼即到,工作成为毕业季的头等大事,必须得认认真真进行知识储备,迎战笔试.电面.面试. 许久未接触排序算法了.平时偶尔接触到时自己会不假思索的百度,然后就是 ...

  6. Android初级教程获取手机系统联系人信息

    在手机内部,对联系人信息存在对应的数据库.我们创建的而联系人信息都存在这张表中.如下是对数据库的截图,我已经对表和应该注意的地方做了红笔标注: 好了,现在可以根据数据库里面的数据来写代码了. 代码如下 ...

  7. C++ 对象的内存布局(上)

    本文转载自haoel博主的博客:陈皓专栏 [空谷幽兰,心如皓月] 原文地址:C++ 对象的内存布局(上) C++ 对象的内存布局(上) 陈皓 http://blog.csdn.net/haoel 点击 ...

  8. JSP自定义标签必知必会

    自定义标签技术自sun公司发布以来,便一向很受欢迎!下面我就来谈一谈如何实现自定义标签,以及如何使用自定义标签. 如何实现自定义标签 首先我们应该知道原理,不管是标签还是JSP,本身实际上都会被JSP ...

  9. UNIX网络编程——ICMP报文分析:端口不可达

    ICMP的一个规则是,ICMP差错报文必须包括生成该差错报文的数据报IP首部(包含任何选项),还必须至少包括跟在该IP首部后面的前8个字节(包含源端口和目的端口).在我们的例子中,跟在IP首部后面的前 ...

  10. 《java入门第一季》之泛型方法和泛型接口

    一.泛型方法. /* * 泛型方法:把泛型定义在方法上.格式:public <泛型类型> 返回类型 方法名(泛型类型 t) public <T> void show(T t){ ...