闲来无事,上网看了达人们修改开机LOGO和开机动画不亦乐乎。自己也按耐不住寂寞,捣鼓了一把。
参考文档:
http://bbs.gfan.com/android-1367364-1-1.html
http://wenku.baidu.com/view/3b3602482e3f5727a5e96201.html
原理:
首先,开机动画的地址:system\media\bootanimation.zip要修改开机动画就是修改bootanimation这个文件。如果说你的手机里没有这个文件,那就是说明你用的是官方原始版本的rom,开机动画没有被修改过,但这不碍事,没有就放一个进去,到时候想换回最原始的开机画面,也可以把bootanimation这个文件删了。官方最原始的开机动画在system\ framework\framework-res.apk\assets\images里面。
Ø 模拟器修改
先上网下载yaffs2img浏览器20.exe,本文结尾附件中有,已经验证使用没有问题。
验证码是
用户名:乐之家(春节快乐)
注册码:C0A4DF124620713C0A51A718071FF0C01E86E177D7
找到你的模拟器的image文件夹
用yaffs2img浏览器20.exe打开你的system.img
在media文件夹中放入你制作好的bootanimation.zip开机动画压缩包(见文章结尾附件)
把保存的img放入android-sdk-windows\platforms\android-10\images,记得一定要名字一定要以system.img命名。好了开启模拟器,你发现开机动画改了。(哈哈,用过CM版本的同学是不是很眼熟,哈哈,是的,我把CM的开机动画拷贝过来了)
Ø 真机修改
这里我就用中兴的U960s做为小白鼠了。当然了你得有root权限。
Adb shell
#cd system/media
#ls
果然有我们想要替换的bootanimation.zip文件
参考本博客的重挂载system目录的权限(保证有rw权限)
好了 adb push yourpath/bootanimation.zip /sdcard/bootanimation.zip
adb shell
#cp /system/media/bootanimation.zip /system/media/bootanimation.zip.bk
#cp /sdcard/bootanimation.zip /system/media/bootanimation.zip
开机重启,呵呵,大功告成。
参考:
http://bbs.hiapk.com/thread-1016227-1-1.html
http://blog.csdn.net/wuzuokun/article/details/7069088
Ø 制作图片是最关键的一步:
1. 制作当前屏幕像素的图片(模拟器默认为320*480)
使用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,注意文件名必须是这个,如果想改文件名,需要修改android/system/core/init/init.h中的宏:
#define INIT_IMAGE_FILE "/initlogo.rle"
Ø 提取boot.img并修改
这里以中兴的blade V880作为小白鼠
cat /proc/mtd
备份boot.img命令举例如下(切记手机不同,命令不一定相同,请核对自己手机上一步的显示):
cat /dev/mtd/mtd2 >/sdcard/boot_test.img
将boot.img拷贝到ubuntu上(你最好装个虚拟机)
(解包、打包中用到的pl脚本在文章结尾的附件中)
解包:
./unpack-bootimg.pl boot_test.img
添加开机LOGO:
打包:
./repack-bootimg.pl boot.img-kernel.gz boot.img-ramdisk jhy_boot_logo_320.img
这里boot.img.new就是新打包生成的img文件。
不同的手机基址是不一样的,你可以看看下面这篇文章来算出你自己手机的bootimg基址。
Ø 重新烧录boot.img
将jhy_boot_logo_320.img拷到手机sdcard中
cat /dev/zero > /dev/mtd/mtd1
flash_image boot /sdcard/jhy_boot_logo_320.img
不过:本人实验的有点问题,可能是图片那块没有做好,开机LOGO是这个死样,感觉图片怎么缩了。而且一下子出来好多个机器人。
对比原图:这是惨不忍睹,也没有时间再捣鼓了,如果有兴趣的TX帮我找找原因,谢谢了。
本文所有的工具、资源下载链接
修改andorid开机LOGO及动画 附件