Android 8.1添加开关机铃声

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中添加mtkbootanimationlibmtkbootanimation

  • 源码路径: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)

猜你喜欢

转载自blog.csdn.net/wxd_csdn_2016/article/details/129159178