Android 源码热门改动速查(持续更新.....)

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 代码中可通过

扫描二维码关注公众号,回复: 11099925 查看本文章
 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)) {
		......

发布了87 篇原创文章 · 获赞 157 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/u012932409/article/details/102514204