1、8.1 默认音量调整
frameworks\base\media\java\android\media\AudioSystem.java
修改 DEFAULT_STREAM_VOLUME 数组,最大值和最小值修改对应文件
frameworks\base\services\core\java\com\android\server\audio\AudioService.java
MIN_STREAM_VOLUME MAX_STREAM_VOLUME
媒体音量在 AudioService 中被初始化修改了,可以强制赋值
AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] = defaultMusicVolume;
或可以通过配置 ro.config.media_vol_default 修改
device\mediateksample\xxxx\system.prop
2、USB 连接图标修改
frameworks\base\core\res\res\drawable-nodpi\stat_sys_adb.xml
6.0 以前都一直使用小机器人图标,8.1 是 奥利奥图标,9.0 是 P图标,如果怀旧可以从 6.0 复制并覆盖
3、系统触摸提示音开启和关闭
vendor\mediatek\proprietary\packages\apps\SettingsProvider\res\values\defaults.xml
<!-- Default for UI touch sounds enabled -->
<bool name="def_sound_effects_enabled">true</bool>
java 代码中可通过
private void handleSoundEffects(boolean isOpen){
Settings.System.putInt(getContentResolver(),
Settings.System.SOUND_EFFECTS_ENABLED, isOpen ? 1 : 0);
final AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if (isOpen) {
am.loadSoundEffects();
} else {
am.unloadSoundEffects();
}
}
如要替换触摸提示音可至路径 frameworks\base\data\sounds\effects\Effect_Tick.ogg
4、修改系统默认字体大小
查看系统支持的字体大小范围
vendor\mediatek\proprietary\packages\apps\MtkSettings\res\values\arrays.xml
<string-array name="entryvalues_font_size" translatable="false">
<item>0.85</item>
<item>1.0</item>
<item>1.15</item>
<item>1.30</item>
</string-array>
以下三处地方的改动,请根据实际生效情况而定
1、frameworks\base\core\java\android\provider\Settings.java
public static final class System extends NameValueTable {
private static final float DEFAULT_FONT_SCALE = 1.0f;
2、frameworks\base\core\java\android\content\res\Configuration.java
public void setToDefaults() {
fontScale = 1;
mcc = mnc = 0;
3、vendor\mediatek\proprietary\packages\apps\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java
private void loadSystemSettings(SQLiteDatabase db) {
....
loadSetting(stmt, Settings.System.FONT_SCALE, 0.85f);
5、休眠时间增加永不息屏选项
vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values-zh-rCN/arrays.xml
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values-zh-rCN/arrays.xml
@@ -37,6 +37,7 @@
<item msgid="7489864775127957179">"5分钟"</item>
<item msgid="2314124409517439288">"10分钟"</item>
<item msgid="6864027152847611413">"30分钟"</item>
+ <item msgid="7149253832238213885">"永不息屏"</item>
</string-array>
<string-array name="dream_timeout_entries">
<item msgid="3149294732238283185">"永不"</item>
vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values/arrays.xml
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values/arrays.xml
@@ -48,6 +48,7 @@
<item>5 minutes</item>
<item>10 minutes</item>
<item>30 minutes</item>
+ <item>never</item>
</string-array>
<!-- Do not translate. -->
@@ -66,6 +67,8 @@
<item>600000</item>
<!-- Do not translate. -->
<item>1800000</item>
+ <!-- MAX. -->
+ <item>2147483647</item>
</string-array>
Android 8.1
vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/display/TimeoutPreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/display/TimeoutPreferenceController.java
@@ -111,7 +111,11 @@ public class TimeoutPreferenceController extends AbstractPreferenceController im
} else {
final CharSequence timeoutDescription = getTimeoutDescription(
currentTimeout, entries, values);
- summary = timeoutDescription == null
+ //cczheng add for show never sleep
+ if (currentTimeout == Integer.MAX_VALUE)
+ summary = entries[entries.length-1].toString();
+ else
+ summary = timeoutDescription == null
? ""
: mContext.getString(R.string.screen_timeout_summary, timeoutDescription);
}
Android6.0
packages\apps\Settings\src\com\android\settings\DisplaySettings.java
private void updateTimeoutPreferenceDescription(long currentTimeout) {
ListPreference preference = mScreenTimeoutPreference;
String summary;
if (currentTimeout < 0) {
// Unsupported value
summary = "";
} else {
final CharSequence[] entries = preference.getEntries();
final CharSequence[] values = preference.getEntryValues();
if (entries == null || entries.length == 0) {
summary = "";
} else {
int best = 0;
for (int i = 0; i < values.length; i++) {
long timeout = Long.parseLong(values[i].toString());
if (currentTimeout >= timeout) {
best = i;
}
}
//cczheng add for show never sleep
if (currentTimeout == Integer.MAX_VALUE)
summary = entries[best].toString();
else
summary = preference.getContext().getString(R.string.screen_timeout_summary,
entries[best]);
}
}
preference.setSummary(summary);
}
6、Launcher的 hotseat 自动上下跳动
vendor\mediatek\proprietary\packages\apps\Launcher3\src\com\android\launcher3\Launcher.java
注释onResume() 中的如下方法
@Override
protected void onResume() {
long startTime = 0;
....
/*if (shouldShowDiscoveryBounce()) {
mAllAppsController.showDiscoveryBounce();
}*/
7、非系统拨号应用呼叫紧急号码直接呼出,不跳转至Dialer
vendor\mediatek\proprietary\packages\services\Telecomm\src\com\android\server\telecom\NewOutgoingCallIntentBroadcaster.java
去除 mIsDefaultOrSystemPhoneApp 判断
@VisibleForTesting
public int processIntent() {
Log.v(this, "Processing call intent in OutgoingCallIntentBroadcaster.");
....
if (Intent.ACTION_CALL.equals(action)) {
if (isPotentialEmergencyNumber) {
//cczheng remove the default Dialer islaunched when call an EmergencyNumber
/*if (!mIsDefaultOrSystemPhoneApp) {
Log.w(this, "Cannot call potential emergency number %s with CALL Intent %s "
+ "unless caller is system or default dialer.", number, intent);
launchSystemDialer(intent.getData());
return DisconnectCause.OUTGOING_CANCELED;
} else {*/
callImmediately = true;
//}
}
} else if (Intent.ACTION_CALL_EMERGENCY.equals(action)) {
......