关闭系统默认铃声

Platform:RK3399
OS:Android 7.1.2

1.需求

需要关闭(修改)系统默认铃声。

2.相关文件及目录

build/target/product/core_base.mk b/target/product/core_base.mk

 PRODUCT_PROPERTY_OVERRIDES := \
     ro.config.notification_sound=OnTheHunt.ogg \   //提示铃声
     ro.config.alarm_alert=Alarm_Classic.ogg         //闹钟铃声

build/target/product/full_base.mk b/target/product/full_base.mk

 # Additional settings used in all AOSP builds
 PRODUCT_PROPERTY_OVERRIDES := \
     ro.config.ringtone=Ring_Synth_04.ogg \         //电话铃声
     ro.config.notification_sound=pixiedust.ogg     //提示音铃声

frameworks/base/data/sounds —ogg格式铃声存放目录

.
├── alarms                  //闹钟铃声
├── AllAudio.mk             //PRODUCT_COPY_FILES
├── notifications			//提示音铃声
├── ringtones				//电话铃声

3.实现方式

1.更换已有铃声

修改core_base.mk或full_base.mk为sounds目录下对应铃声名称即可。

2.更换自定义铃声

1.自己制作自定义ogg铃声,放到sounds对应目录下;
2.修改AllAudio.mk,仿照文件添加拷贝语句;
3.修改core_base.mk或full_base.mk对应铃声属性为自定义铃声。

3.默认关闭某个铃声

方法1:直接属性值为空

 PRODUCT_PROPERTY_OVERRIDES := \
      ro.config.notification_sound=OnTheHunt.ogg \   //提示铃声
    - ro.config.alarm_alert=Alarm_Classic.ogg         //闹钟铃声
    + ro.config.alarm_alert=         //属性为空

方法2:使用mute.ogg空音频替代

 PRODUCT_PROPERTY_OVERRIDES := \
      ro.config.notification_sound=OnTheHunt.ogg \   //提示铃声
    - ro.config.alarm_alert=Alarm_Classic.ogg         //闹钟铃声
    + ro.config.alarm_alert=mute.ogg         //属性为空

4.已知问题

上述修改默认音频的方案,直接烧录固件可以生效,但是使用OTA升级是不会生效的。
原因:默认 属于用户设置数据,OTA升级不会修改用户数据
解决方案:
1.擦除用户数据
build/tools/releasetools/ota_from_target_files

- OPTIONS.wipe_user_data = False
+ OPTIONS.wipe_user_data = True

2.OTA升级时调用数据库更新接口
3.尽量在正式版发布前修改
4.下一批生产设备时使用最新修改过的固件

你可能感兴趣的:(实战调试记录)