Android 12.0 显示大小默认设置为“大”
要修改显示大小默认设置为“大”,首先需要知道设备在显示大小设置为“大”时的密度是多少,我们可以在将显示大小手动设置为“大”后通过adb命令来实现获取当前设备的密度大小,具体命令如下:
adb shell wm density
其中Override density就是当前屏幕的密度,获取到我们需要设置的显示大小的密度后的具体修改点如下:
将/vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xml中的def_display_density_forced值改为刚刚获取到的Override density
在/vendor/mediatek/proprietary/packages/apps/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java中作如下修改:
private void loadSecureSettings(SQLiteDatabase db) {
SQLiteStatement stmt = null;
try {
stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)"
+ " VALUES(?,?);");
// Don't do this. The SystemServer will initialize ADB_ENABLED from a
// persistent system property instead.
//loadSetting(stmt, Settings.Secure.ADB_ENABLED, 0);
// Allow mock locations default, based on build
loadSetting(stmt, Settings.Secure.ALLOW_MOCK_LOCATION,
"1".equals(SystemProperties.get("ro.allow.mock.location")) ? 1 : 0);
loadSecure35Settings(stmt);
//*/start
loadStringSetting(stmt, Settings.Secure.DISPLAY_DENSITY_FORCED,
R.string.def_display_density_forced);
//*/end
重新编译验证,修改生效, 显示的大小已经默认设置为“大”