Google默认的开机动画中没有开关机铃声的处理逻辑,所以只能自己添加相关逻辑或者使用MTK的开机动画部分代码。
Google开机动画相关代码在frameworks/base/cmds/bootanimation/目录下
MTK开机动画相关代码在vendor/mediatek/proprietary/operator/frameworks/bootanimation/MtkBootanimation/目录下
1. 使用MTK开机动画代码
去掉bootanimation,使用mtkbootanimation
deleted: frameworks/base/cmds/bootanimation/Android.mk
add frameworks/base/cmds/bootanimation/Android_disable.mk
deleted: vendor/mediatek/proprietary/operator/frameworks/bootanimation/Android_disable.mk
add vendor/mediatek/proprietary/operator/frameworks/bootanimation/Android.mk
deleted: vendor/mediatek/proprietary/operator/frameworks/bootanimation/MtkBootanimation/Android_disable.mk
add vendor/mediatek/proprietary/operator/frameworks/bootanimation/MtkBootanimation/Android.mk
在device.mk中添加mtkbootanimation和libmtkbootanimation
- 源码路径:device/mediatek/mt6580/device.mk
-PRODUCT_PACKAGES += bootanimation
+#PRODUCT_PACKAGES += bootanimation
+PRODUCT_PACKAGES += mtkbootanimation
+PRODUCT_PACKAGES += libmtkbootanimation
修改MtkBootanimation的mk文件
- 源码路径:/vendor/mediatek/proprietary/operator/frameworks/bootanimation/MtkBootanimation/Android.mk
else ifeq (OP09,$(word 1,$(subst _, ,$(OPTR_SPEC_SEG_DEF))))
ifeq ($(strip $(MTK_BSP_PACKAGE)), yes)
include $(BUILD_EXECUTABLE)
endif
+else
+ include $(BUILD_EXECUTABLE)
endif
# libbootanimation
else ifeq (OP09,$(word 1,$(subst _, ,$(OPTR_SPEC_SEG_DEF))))
ifeq ($(strip $(MTK_BSP_PACKAGE)), yes)
include $(BUILD_SHARED_LIBRARY)
endif
+else
+ include $(BUILD_SHARED_LIBRARY)
endif
第一次开机没有铃声
- 源码路径:frameworks/av/services/audioflinger/Threads.cpp
// add start
char mvalue[PROPERTY_VALUE_MAX] = { 1 };
property_get("service.bootanim.exit", mvalue, "");
if (strcmp(mvalue,"0") == 0){
vlf = 0.1f;
vrf = 0.1f;
vaf = 0.1f;
}
// add end
// XXX: these things DON'T need to be done each time
mAudioMixer->setBufferProvider(name, track);
mAudioMixer->enable(name);
添加开机动画和开机铃声资源文件
- vendor/audio-logo/animation/bootaudio.mp3
- vendor/audio-logo/animation/bootaudio.mp3
新建copy动画和铃声资源文件的mk文件
- 源码路径:vendor/audio-logo/products/resource-copy.mk
LOCAL_PATH:= vendor/audio-logo
#boot/shut animation
zip_files:= $(notdir $(wildcard $(LOCAL_PATH)/animation/*.zip))
PRODUCT_COPY_FILES += $(foreach file, $(zip_files), \
$(LOCAL_PATH)/animation/$(file):system/media/$(file))
#boot/shut audio
mp3_files:= $(notdir $(wildcard $(LOCAL_PATH)/animation/*.mp3))
PRODUCT_COPY_FILES += $(foreach file, $(mp3_files), \
$(LOCAL_PATH)/animation/$(file):system/media/$(file))
将resource-copy.mk加入编译
- 源码路径:device/mediatek/mt6580/device.mk
$(call inherit-product-if-exists, vendor/audio-logo/products/resource-copy.mk)