Android系统开机第一帧splash和Bootanimation修改

1>开机第一帧splash

  1. 准备一张和屏分辨率相同(颜色位深8/24/32都可以)格式为png的图片,如720*1280的屏照片命名为logo.png
  2. 使用device\qcom\common\display\logo\logo_gen.py脚本生成 splash.img,将logo.png放在同一文件夹内使用以下命令
python ./logo_gen.py logo.png
  1. 将上面生成的splash.img烧录到手机,使用fastboot 烧录
adb reboot bootloader
fastboot flash splash splash.img
fastboot reboot

2>开机logo添加到编译中

  1. 将logo.png图片还放在该目录下device/qcom/common/display/logo/
  2. 修改vendor/qcom/build/tasks/generate_extra_images.mk:
diff --git a/device/qcom/common/generate_extra_images.mk b/device/qcom/common/generate_extra_images.mk
old mode 100644
new mode 100755
index 1bdab24..c7c5f8d
--- a/device/qcom/common/generate_extra_images.mk
+++ b/device/qcom/common/generate_extra_images.mk
@@ -15,6 +15,7 @@ INSTALLED_USERDATAIMAGE_TARGET := $(PRODUCT_OUT)/userdata.img
 INSTALLED_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img
 recovery_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.img
 INSTALLED_USBIMAGE_TARGET := $(PRODUCT_OUT)/usbdisk.img
+INSTALLED_SPLASHIMAGE_TARGET := $(PRODUCT_OUT)/splash.img
 endif

 #---------------------------------------------------------------------
@@ -425,6 +426,30 @@ bootimage: $(INSTALLED_BOOTIMAGE_TARGET) $(INSTALLED_SEC_BOOTIMAGE_TARGET)
 endif

 ###################################################################################################
+#----------------------------------------------------------------------
+# Compile splash.img
+#----------------------------------------------------------------------
+define build-splashimage-target
+       $(hide) python device/qcom/common/display/logo/logo_gen.py device/qcom/common/display/logo/logo.png
+       $(hide) cp splash.img $(PRODUCT_OUT)/
+endef
+
+$(INSTALLED_SPLASHIMAGE_TARGET):
+       $(build-splashimage-target)
+
+ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_SPLASHIMAGE_TARGET)
+ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SPLASHIMAGE_TARGET)
+
+.PHONY:        splashimage
+splashimage: $(INSTALLED_SPLASHIMAGE_TARGET)
+

 ifeq ($(TARGET_BOOTIMG_SIGNED),true)
 .PHONY: otapackage
  1. 编译后out目录下会生成splash.img,修改烧录版本时的文件rawprogram0_16G.xml,找到label="splash"的这一项,将filename补上如下
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="splash.img" label="splash" num_partition_sectors="20480" 
physical_partition_number="0" size_in_KB="10240.0" sparse="false" start_byte_hex="0x8a82400" start_sector="283666"/>

3>开机动画bootanimation.zip的制作

  1. 新建part0文件夹,把全部图片都按照顺序命名好放在该文件夹下,如0000.png、0001.png等
  2. 新建desc.txt文件,如
720 1280 15
p 0 0 part0

参数解释:
第一行前两个参数为分辨率宽和高,如720x1280;第三个参数是帧数(每秒播放的图片数):每秒15帧
第二行第一个参数p为标志符;第二个参数为循环次数(1为循环一次,0为无限循环); 第三个参数为两次循环之间间隔时间;第四个参数为对应的文件夹名。

  1. 使用压缩软件将part0文件夹和desc.txt文件一起压缩,压缩方式选择存储,压缩文件名为bootanimation.zip
#Linux环境下完成
#压缩bootanimation.zip的时候压缩模式必须为存储模式:
zip -r -0 bootanimation.zip part0 desc.txt
#压缩完成后,检查压缩包是否完整:
Unzip -t bootanimation
  1. 将bootanimation.zip编译到到系统,将压缩文件Bootanimation.zip放在device/qcom/msm8953_64目录下,修改文件device/qcom/msm8953_64下的msm8953_64.mk
#修改文件device/qcom/msm8953_64下的msm8953_64.mk,添加
PRODUCT_COPY_FILES += 
	device/qcom/msm8953_64/bootanimation.zip:system/media/bootanimation.zip

4>adb替换开机动画bootanimation.zip

使用以下adb命令将制作好的bootanimation.zip导入手机

adn root 
adb remount
adb push bootanimation.zip /system/media/
adb reboot

你可能感兴趣的:(Android,OS,android,framework,bootloader)