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

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

手机是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. 在Windows cmd中计算行数

    本文主体来自这篇外文文章的翻译.原文中有一个副标题:"如何简单地用Windows自带的FIND在CMD.exe中计算行数" 当我们在命令行环境中工作时,能计算其它工具输出内容的行数 ...

  2. Windows编译ejabberd

    Windows编译ejabberd(金庆的专栏)安装 erlang OTP. 添加路径到 PATH, 使 erl 可以运行.git clone ejabberd安装 rebar:git clone g ...

  3. NuGet包断线续传下载

    NuGet包断线续传下载(金庆的专栏)NuGet是VC的扩展,用来下载依赖包.NuGet下载没有断线续传,下载源又很容易断开.  https://nuget.org/api/v2/  https:// ...

  4. Android Multimedia框架总结(四)MediaPlayer中从Java层到C++层类关系及prepare及之后其他过程

    转载请把头部出处链接和尾部二维码一起转载,本文出自:http://blog.csdn.net/hejjunlin/article/details/52420803 前言:在上篇中,分析了MediaPl ...

  5. 抽屉效果的实现(DrawerLayout和SlidingMenu的对比)

    在做谷歌电子市场的时候用的是DrawerLayout实现的抽屉效果,在新闻客户端的时候用的是开源框架SlidingMenu来实现的,总的来说,各有个的优点,侧滑(开源框架)实现的效果更好,但是Draw ...

  6. java虚拟机 jvm 出入java栈 栈空间内存分配

    java栈空间是一块线程私有的内存空间,java堆和程序数据密切相关,那么java栈就是和线程执行密切相关.线程最基本的执行行为就是函数的调用.每次函数调用其实是通过java栈传递数据的. 数据结构中 ...

  7. 【编程练习】poj1111

    Image Perimeters Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8632   Accepted: 5168 ...

  8. Android简易实战教程--第十六话《SharedPreferences保存用户名和密码》

    之前在Android简易实战教程--第七话<在内存中存储用户名和密码> 那里是把用户名和密码保存到了内存中,这一篇把用户名和密码保存至SharedPreferences文件.为了引起误导, ...

  9. 应付模块的R12 TRACE 和 FND Debug 文件 / FND 日志 调试

     取得R12 TRACE: 1. 导航职责: 系统管理员> 配置文件> 系统> 查找 用户: 用户提交报表 配置: 初始化 SQL 语句 - 自定义 2. 点击用户栏位-编辑区域 ...

  10. Xcode7.2使用sqlite3数据库的方法

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 之前版本的Xcode是可以直接连接sqlite3的库文件的,但 ...