Android 8.1添加开关机铃声

文章介绍了如何在Google的默认开机动画基础上,通过使用MTK的开机动画代码进行替换,以及在设备.mk中添加相关包来实现开机动画和开机铃声。修改Android.mk文件,添加资源文件,并创建复制资源文件的mk文件,确保首次开机时播放铃声。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值