文章目录

  • 1. 前言
  • 2. 默认关闭数据
  • 3. 默认关闭蓝牙
  • 4. 默认关闭定位
  • 5. 默认关闭飞行模式
  • 6. 默认关闭wifi
  • 7. 默认关闭USB调试
  • 8. 默认息屏时间修改
  • 9. 默认亮度修改
  • 10. 默认关闭自动旋转屏幕
  • 11. 默认时区设置为中国
  • 12. 默认语言改为中文
  • 13. 默认允许安装未知来源应用
  • 14. 默认输入法修改
  • 15. 默认浏览器主页修改
  • 16. 默认系统声音/大小修改
  • 17. 默认系统亮度修改
  • 18. 默认字体修改
  • 19. 默认声音修改

1. 前言

系统设置默认值修改,仅为做个记录,方便后续回顾。

ps:有可能遇到查询数据时候发现修改的值是成功了,但是效果没有,这可能是在上层被处理导致的结果。

2. 默认关闭数据

frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java

private void loadGlobalSettings(SQLiteDatabase db) {......loadSetting(stmt, Settings.Global.MOBILE_DATA,false);......
}

3. 默认关闭蓝牙

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

<bool name="def_bluetooth_on">false</bool>

4. 默认关闭定位

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

<string name="def_location_providers_allowed" translatable="false">gps</string>
修改为
<string name="def_location_providers_allowed" translatable="false"></string>

5. 默认关闭飞行模式

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

<bool name="def_airplane_mode_on">false</bool>

6. 默认关闭wifi

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

<bool name="def_wifi_on">false</bool>

7. 默认关闭USB调试

frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java

private void loadSecureSettings(SQLiteDatabase db) {//省略loadSetting(stmt, Settings.Secure.ADB_ENABLED, 0);//省略
}

8. 默认息屏时间修改

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

单位为毫秒,这里修改为10天不息屏。

<integer name="def_screen_off_timeout">864000000</integer>

ps:值为-1的时候为永不灭屏

9. 默认亮度修改

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

如想把手机的默认亮度调整为90%,则

   <integer name="def_screen_brightness">102</integer>
修改为<integer name="def_screen_brightness">230</integer>

ps:全亮是255,255*90%=229.5,取整就是230

10. 默认关闭自动旋转屏幕

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

<bool name="def_accelerometer_rotation">false</bool>

11. 默认时区设置为中国

预置属性:

persist.sys.timezone = Asia/Shanghai

12. 默认语言改为中文

修改build/target/product/full_base.mk:

PRODUCT_LOCALES := zh_CN

13. 默认允许安装未知来源应用

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

<bool name="def_install_non_market_apps">true</bool>

14. 默认输入法修改

跟输入法相关的两个数据库变量:
Settings.Secure.ENABLED_INPUT_METHODS 使用/启用输入法, 这会显示在设置中的输入法列表
Settings.Secure.DEFAULT_INPUT_METHOD 默认输入法

#显示系统安装的输入法列表
ime list -s

#获取系统默认输入法
settings get secure default_input_method

修改位置:
framworks/base/services/java/com/android/server/InputMethodManagerService.java

public InputMethodManagerService(Context context, WindowManagerService windowManager) {Settings.Secure.putString(context.getContentResolver(),Settings.Secure.ENABLED_INPUT_METHODS ,"com.hisilicon.android.inputmethod.remote/.RemoteIME");Settings.Secure.putString(context.getContentResolver(),Settings.Secure.DEFAULT_INPUT_METHOD,"com.hisilicon.android.inputmethod.remote/.RemoteIME");
}

15. 默认浏览器主页修改

修改位置:
packages/apps/Browser/res/values/strings.xml

 <!-- The default homepage. --><string name="homepage_base" translatable="false">
https://www.google.com/webhp?client={CID}&amp;source=android-home</string>

将默认的链接google修改成百度:

 <string name="homepage_base" translatable="false">
https://www.baidu.com/</string>

16. 默认系统声音/大小修改

在做定制需求的时候,可能需要修改系统通知的声音,将其禁用掉,避免第三方应用发送通知时,声音很大,吓着用户。索性就把通知声音关掉。下面就说说关闭声音的几种方法,以及修改系统默认声音的方法。

1.直接修改系统层默认的声音大小

在系统代码 frameworks/base/media/java/android/media/AudioService.java 的开头定义了两个数组,一个 MAX_STREAM_VOLUME 这里面定义了各种声音的最大值( 最大值不是100 ,所以需要 AudioManager.getStreamMaxVolume(type) 来获取各个音量的最大值),然后进行设置。

还定义了一个数组 DEFAULT_STREAM_VOLUME 这里面则和 MAX_STREAM_VOLUME 里定义的顺序是一样,表明了各种声音的默认的大小。此块代码如下:

/** @hide Maximum volume index values for audio streams */private static int[] MAX_STREAM_VOLUME = new int[] {5,  // STREAM_VOICE_CALL7,  // STREAM_SYSTEMX_STREAM_VOLUMEMAX_STREAM_VOLUMEMAX_STREAM_VOLUME7,  // STREAM_RING15, // STREAM_MUSIC7,  // STREAM_ALARM7,  // STREAM_NOTIFICATION15, // STREAM_BLUETOOTH_SCO7,  // STREAM_SYSTEM_ENFORCED15, // STREAM_DTMF15  // STREAM_TTS};
 private static int[] DEFAULT_STREAM_VOLUME = new int[] {4,  // STREAM_VOICE_CALL7,  // STREAM_SYSTEM5,  // STREAM_RING11, // STREAM_MUSIC6,  // STREAM_ALARM5,  // STREAM_NOTIFICATION7,  // STREAM_BLUETOOTH_SCO7,  // STREAM_SYSTEM_ENFORCED11, // STREAM_DTMF11  // STREAM_TTS};

如果我们需要修改默认的通知声音,则可以将 STREAM_NOTIFICATION 前面的数值 5 给为 0即可,这样默认声音就为0 了。

2.修改数据库中的通知声音值
媒体声音这些数据在数据库中都会默认的存放数据,我们知道大多数的数据都是系统初次启动的时候在 SettingProvider 应用中加载初始化的值,当然通知的声音也在里面。

具体的代码在 frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java 其中有个方法 loadVolumeLevels(db) 此方法则是加载所有默认声音大小的地方,具体代码如下:

stmt = db.compileStatement("INSERT OR IGNORE INTO system(name,value)" + " VALUES(?,?);");loadSetting(stmt, Settings.System.VOLUME_MUSIC,
AudioService.getDefaultStreamVolume(AudioManager.STREAM_MUSIC));loadSetting(stmt, Settings.System.VOLUME_RING,          AudioService.getDefaultStreamVolume(AudioManager.STREAM_RING));loadSetting(stmt, Settings.System.VOLUME_SYSTEM,        AudioService.getDefaultStreamVolume(AudioManager.STREAM_SYSTEM));loadSetting(stmt,Settings.System.VOLUME_VOICE,
AudioService.getDefaultStreamVolume(AudioManager.STREAM_VOICE_CALL));loadSetting(stmt, Settings.System.VOLUME_ALARM,         AudioService.getDefaultStreamVolume(AudioManager.STREAM_ALARM));loadSetting(stmt,Settings.System.VOLUME_NOTIFICATION,
AudioService.getDefaultStreamVolume(AudioManager.STREAM_NOTIFICATION));loadSetting(stmt,Settings.System.VOLUME_BLUETOOTH_SCO,
AudioService.getDefaultStreamVolume(AudioManager.STREAM_BLUETOOTH_SCO));

我们发现loadSetting中把所有声音相关默认值大小的都写入数据库中了,那么我们就可以从这里下手了,在 Settings.System.VOLUME_NOTIFICATION 的设置项中我们就把他设置为0,则系统通知默认的声音就为0 ,我们再看看 AudioService.getDefaultStreamVolume 这个方法的实现.

public static int getDefaultStreamVolume(int streamType) {return DEFAULT_STREAM_VOLUME[streamType];
}

实际就是返回了我们在方案一中系统里面默认音量大小数组里面的值。所以方案一和方案二实际是一个效果

3.修改ro.config.notification_sound的属性值
此属性值的意思就是通知默认的音乐文件文件名,我们在系统代码 build/target/product/full_base.mk 中定义了,如果我们不想有声音那么我们可以将默认值改为不存在的文件,则不会播放通知声音了,当然我们也可以在客户定义的mk中使用 PRODUCT_PROPERTY_OVERRIDES 去复写此属性,将其指定为不存在文件或者为空,这样就不会有通知声音响了。

4.修改默认的声音
系统默认了很多的声音,那么我们要修改一些系统里默认的音效文件呢,那么我们可以修改 frameworks/base/data/sounds 下面文件及文件夹中的声音文件,如果改了名字记得要在mk中将原来的替换为新的名字。这下面的mk的作用是将这些音乐文件全部打包到系统 system/media/audio 下面各个模块的文件,然后在系统开机的时候,扫描这些文件,将其加入到数据库中,之后在设置中更换声音时,则直接从数据库中查询这些音乐文件,然后供用户选择。

17. 默认系统亮度修改

修改位置:
frameworks\base\packages\SettingsProvider\res\values\defaults.xml

<integer name="def_screen_brightness">230</integer>

ps:默认值是102,全亮是255,即默认是40%的亮度。而255*0.9=229.5,对229.5取整就是230,即调整系统亮度为90%

18. 默认字体修改

主要有以下几个步骤:
1.在系统目录frameworks/base/data/fonts/ 下预制新增的FZYouHGB18030.ttf字体

2.在系统目录frameworks/base/data/fonts/Android.mk中,将资源文件添加进编译选项

font_src_files := \Roboto-Regular.ttf \Roboto-Bold.ttf \Roboto-Italic.ttf \Roboto-BoldItalic.ttf \DroidSerif-Regular.ttf \DroidSerif-Bold.ttf \DroidSerif-Italic.ttf \DroidSerif-BoldItalic.ttf \DroidSansMono.ttf \Clockopia.ttf \AndroidClock.ttf \AndroidClock_Highlight.ttf \AndroidClock_Solid.ttf \FZLTHPro_GB18030.ttf

3.在系统目录frameworks/base/data/fonts/fallback_fonts.xml中添加新加入的配置选项

<familyset><family><fileset><file>FZYouHGB18030.ttf</file></fileset></family>
......
</familyset>

4.最后在系统目录external/skia/src/ports/SkFontConfigInterface_android.cpp中指定默认字体文件即可完成默认字体修改

static void get_path_for_sys_fonts(SkString* full, const char name[]) {char args[PROPERTY_VALUE_MAX];property_get("persist.sys.usedmyfont", args, "default");if (gTestFontFilePrefix) {full->set(gTestFontFilePrefix);} else {full->set(getenv("ANDROID_ROOT"));full->append(SK_FONT_FILE_PREFIX);}if (strstr(args, "cafont1")) {full->append("FZLTHPro_GB18030.ttf");//todo more fonts//}else if (strstr(args, "cafont2")) {//}else if (strstr(args, "cafont3")) {}else {//default fontfull->append("FZLTHPro_GB18030.ttf");}
}

19. 默认声音修改

1. 资源文件编译
frameworks/base/data/sounds/AllAudio.mk文件中列出了所有要编译的声音文件,这个文件是用generate-all-audio.sh工具来生成的。并且在./build/target/product/full_base.mk中,通过下面这段脚本代码将AllAudio.mk文件加入编译选项中:

$(call inherit-product-if-exists, frameworks/base/data/sounds/AllAudio.mk)

AllAudio.mk主要工作就是在编译系统时候将不同类型的音频文件拷贝到对应的out目录下。如果想要添加新的音频文件,可以在AllAudio.mk直接添加新内容即可。

2. 修改默认设置
我们在系统代码build/target/product/full_base.mk 中定义了,如果我们不想有声音那么我们可以将默认值改为不存在的文件,则不会播放通知声音了,当然我们也可以在客户定义的mk中使用PRODUCT_PROPERTY_OVERRIDES 去复写此属性,将其指定为上面编译到系统中的其他文件名,就能达到切换声音的效果。

PRODUCT_PROPERTY_OVERRIDES := \ro.com.android.dateformat=MM-dd-yyyy \ro.config.ringtone=Ring_Synth_04.ogg \ro.config.notification_sound=pixiedust.ogg

android系统开机默认设置修改记录相关推荐

  1. Android系统语言默认设置为简体中文

       Android系统默认的语言是英语,但是对于中国大陆Android产品厂商来说,不会出厂之后语言还是英语,到用户手里之后,用户自己设置成简体中文吧?有如果客户不懂英语,岂不是就不能设置系统语言了 ...

  2. 修改 Android 5.1 默认设置

    应用能够配置Android系统的各种设置,这些设置的默认值都是由frameworks中的SettingsProvider从数据库中读取的frameworks/base/packages/Setting ...

  3. Android系统开机启动流程及init进程浅析

    Android系统启动概述 Android系统开机流程基于Linux系统,总体可分为三个阶段: Boot Loader引导程序启动 Linux内核启动 Android系统启动,Launcher/app ...

  4. android 恢复出厂设置流程分析,基于Android系统快速恢复出厂设置方法实现.doc

    基于Android系统快速恢复出厂设置方法实现 基于Android系统快速恢复出厂设置方法实现 摘 要:针对使用Android系统的智能电视进行恢复出厂设置时重置速度慢的情况进行了研究和分析,从其重置 ...

  5. android 恢复出厂 自动恢复文件夹,基于Android系统快速恢复出厂设置方法的实现...

    龚强 摘 要:针对使用Android系统的智能电视进行恢复出厂设置时重置速度慢的情况进行了研究和分析,从其重置原理入手,通过简化备份.导入.执行等设置方法以实现该系统的快速恢复出厂设置.实践证明,该方 ...

  6. android系统开机画面_Android开机画面

    android系统开机画面 Android Splash Screen is the first screen visible to the user when the application's l ...

  7. Android系统多语言设置

    Android系统默认支持多个国家语言.实现对整个android系统的语言设置,网上很多人使用的是反射的方式,但更简单的应该是通过系统提供的LocalePicker里方法来实现.本文基于Android ...

  8. Android来电铃声默认设置的实现方法与如何设置语音来电的默认铃声

    Android来电铃声默认设置的实现方法与如何设置语音来电的默认铃声 一.Android来电铃声默认设置的实现方法 Andoird默认来电铃声的设置方法为修改build/target/product/ ...

  9. Android系统修改默认语言为中文

    Android系统修改默认语言为中文 对于Android系统修改默认语言的方法,各个版本的系统方法都差不多一致,至少我在Android5.1和Android9.0使用都成功,具体方法如下: 在buil ...

最新文章

  1. 人工智能3d建模算法_打破国外垄断,全国产3D芯片为机器人“点睛”
  2. 微信小程序之后台https域名绑定以及免费的https证书申请
  3. 皮一皮:钢铁直女?鉴定了,钢的不能再钢!
  4. Android环境下通过C框架层控制WIFI【转】
  5. Java黑皮书课后题第9章:9.7(Account类)设计一个名为Account的类,它包含……。编写一个测试程序,创建一个账户ID为1122、余额为20000美元、年利率为4.5%的Account…
  6. CentOS5安装Nginx1.4+PHP5.5 FastCGI
  7. MQ问题集(kafka主从同步与高可用,MQ重复消费、幂等)
  8. linux 系统vt 测试,vt-x linux子系统
  9. 使用 Jquery 来实现可以输入值的下拉选单 雏型
  10. windows桌面远程工具连接Ubuntu
  11. android_ratingbar的使用错误
  12. Redis命令回溯方案
  13. 蓝桥杯_算法训练_审美课
  14. mysql 删除后缀表_mysql批量删除指定前缀或后缀表
  15. Java基础01(常量、变量)
  16. 从Bus Hound开始学USB之U盘
  17. SM2258XT错误代码及中文翻译
  18. 史上最全的自动驾驶研究报告(上)
  19. 经常手误怎么办?Delete键旁边是电源键
  20. 利用感应加热原理,3秒即可烧红铁棒!

热门文章

  1. list index out of range
  2. Windows 7的应用程序兼容性和絮叨的应用程序兼容性助手
  3. 2023五一旅游必备物品清单!快记到手机待办APP里
  4. js + css 做出网易云音乐的轮播图
  5. 怎样在家远程访问单位的电脑 如何利用远程桌面进行远程办公 3款软件测评
  6. 2020年中国儿童家具行业产量、市场规模发展现状及儿童家具企业竞争格局分析[图]
  7. C++大作业 商品库存管理系统
  8. 艾利特代理商—艾利特EC63机器人安装教程
  9. 推荐几个英语学习网站
  10. RSA加密算法-非对称加密算法的使用