msm8996 android开机动画修改实战(bootanimation.zip)
1. android开机动画修改
1.1 底层代码中的信息
1.2 在硬件系统中确定
2. 修改bootanimation.zip
2.1 下载bootanimation.zip
2.2 修改图片
2.3 修改desc.txt
2.3.1 格式说明:
2.3.2 p或c说明:
2.4 打包bootanimation.zip
2.4.1 打包文件选择方法
2.4.2 打包格式
3. 传送bootanimation.zip到系统
3.1 adb push送到系统中的/system/media
1. android开机动画修改
1.1 底层代码中的信息
bootanimation.zip在平台上的位置 在底层源代码中的 /source PATH/frameworks/base/cmds/bootanimation/BootAnimation.cpp,可以找到 /system/media/bootanimation.zip
namespace android {
static const char OEM_BOOTANIMATION_FILE[] = "/oem/media/bootanimation.zip";
static const char SYSTEM_BOOTANIMATION_FILE[] = "/system/media/bootanimation.zip";
static const char SYSTEM_ENCRYPTED_BOOTANIMATION_FILE[] = "/system/media/bootanimation-encrypted.zip";
static const char OEM_SHUTDOWNANIMATION_FILE[] = "/oem/media/shutdownanimation.zip";
static const char SYSTEM_SHUTDOWNANIMATION_FILE[] = "/system/media/shutdownanimation.zip";
1.2 在硬件系统中确定
通过usb连接硬件,adb shell进去系统,可以看到bootanimation.zip的位置
2. 修改bootanimation.zip
2.1 下载bootanimation.zip
adb pull来下载原来的bootanimation.zip 解压bootanimation.zip,可以看到里面有两个文件:
2.2 修改图片
打开文件夹part0,图片的格式是.png,存入的格式也应该是.png。 图片的分辨率,根据显示屏的分辨率,不能大于显示屏分辨率。 我用的显示屏是10802340 所以,图片宽不大于1080,长不大于2340。 我选用的1080607的图片
2.3 修改desc.txt
打开文件如下:
2.3.1 格式说明:
第一行,1080 607是图片的分辨率,10是10帧每秒. 第二行,c 1 10 part4 c :有些是p,有些是c,后面说明。 c后面第1个参数:1是播放一次, 0表示无限循环直至开机完成。 c后面第2个参数: 数字表示阶段间隔时间,0表示没有间隔时间 c后面第3个参数:为对应的步骤文件夹。 p或c引领每个步骤,几行几步
第三行,回车(一定要有)
2.3.2 p或c说明:
通常animation都是P参数开头的,偶尔也会有C开头的参数,如下: Android5.1以上,加入了“c”,若是"c", 即使exitPending()返回值为true,也会继续显示。 BootAnimation.cpp中, 函数bool BootAnimation::parseAnimationDesc(Animation& animation),解析desc.txt。 函数bool BootAnimation::movie(),播放动画,释放动画。 movie()中playAnimation(),操作Animation。
bool BootAnimation::parseAnimationDesc(Animation& animation)
{
String8 desString;
if (!readFile(animation.zip, "desc.txt", desString)) {
return false;
}
char const* s = desString.string();
// Parse the description file
for (;;) {
const char* endl = strstr(s,