定位上篇
Android 5.1 - 7.1 系统(framework)定制、修改、移植、总结 - 上篇
目录
3:Android frameworks去掉熄屏前先变暗的功能
16:Android系统移除在user版本的时候adb权限验证
24:修复Android5.1 ListPreference.java 数组溢出
26:Android启动桌面时多个Home属性APK时,默认某个应用优先,不弹出选择提示
1:Android系统将位置信息模式默认设置为高精确度
GPS位置信息模式默认为“仅限设备”, 应客户的需求,需要默认为“高精确度”
请把 /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">gps,network</string>
2:Android 5.1 关闭通知栏通能
修改点:\frameworks\base\core\java\android\app\NotificationManager.java
/** * Post a notification to be shown in the status bar. If a notification with * the same id has already been posted by your application and has not yet been canceled, it * will be replaced by the updated information. * * @param id An identifier for this notification unique within your * application. * @param notification A {@link Notification} object describing what to show the user. Must not * be null. */ public void notify(int id, Notification notification) { boolean close=false; if(close) { notify(null, id, notification); } }
3:Android frameworks去掉熄屏前先变暗的功能
设置>显示:这里可以设置自动休眠超时时间。
当设置为30s时,到24s左右屏幕会先变暗,告知用户屏幕快熄灭了,6s以后才会真正熄屏。
现在需要去掉这个功能,在PowerManagerService里可以看到
private int getScreenDimDurationLocked(int screenOffTimeout) { return Math.min(SCREEN_DIM_DURATION, (int)(screenOffTimeout * MAXIMUM_SCREEN_DIM_RATIO)); }
30S是系统里最短的超时时间,也就是说其他screenOffTimeout乘以0.2是比6要大的,所以就不用考虑了。
要想去掉DIM这个Feature,直接把SCREEN_DIM_DURATION设为0,这样getScreenDimDurationLocked()的返回值也就是0,这样就不再有屏幕先变暗这个步骤了。实测可行。
4.屏蔽掉下拉通知栏和状态栏
修改点:frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBarView.java
@Override public void addPanel(PanelView pv) { super.addPanel(pv); // if (pv.getId() == R.id.notification_panel) { // mNotificationPanel = pv; // } else if (pv.getId() == R.id.settings_panel){ // mSettingsPanel = pv; // } pv.setRubberbandingEnabled(!mFullWidthNotifications); }
5 .android 修改MTP在PC端显示的制造商信息
1. 修改build/tools/buildinfo.sh中的 ro.product.manufacturer 2.frameworks\av\media\mtp\MtpServer.cpp 的doGetDeviceInfo() property_get("ro.product.manufacturer", prop_value, "unknown manufacturer"); string.set(prop_value); 修改此处的prop_value
6:高通8909 驱动修改充电电流限制[kernel]
定位文件:kernel/arch/arm/boot/dts/qcom/msm-pm8909.dtsi
pm8909_chg: qcom,charger { .... qcom,ibatsafe-ma = <1000>; // 1000 1A qcom,thermal-mitigation = <1000 720 630 0>; //1000A //qcom,ibatsafe-ma = <1440>; // 1.5A //qcom,thermal-mitigation = <1440720 630 0>; //1.5A qcom,cool-bat-decidegc = <100>; qcom,warm-bat-decidegc = <450>; qcom,cool-bat-mv = <4100>; ....
或者直接修改
kernel/drivers/power/qpnp-linear-charger.c
return rc; } #define QPNP_LBC_IBATMAX_MIN 90 #define QPNP_LBC_IBATMAX_MAX 1000 //最大充电电流限制 /* * Set maximum current limit from charger * ibat = System current + charging current */ static int qpnp_lbc_ibatmax_set(struct qpnp_lbc_chip *chip, int chg_current) {
6 .android 系统源码修改系统默认开机自动转屏
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml index ff30452..c49b89e 100755 --- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml +++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml @@ -150,7 +150,7 @@ <bool name="def_accessibility_display_magnification_auto_update">true</bool> <!-- Default for Settings.System.USER_ROTATION --> - <integer name="def_user_rotation">0</integer> + <integer name="def_user_rotation">-1</integer> <!-- Default for Settings.Secure.DOWNLOAD_MAX_BYTES_OVER_MOBILE. <=0 if no limit --> <integer name="def_download_manager_max_bytes_over_mobile">-1</integer>
7 .android 系统源码修改MEID 返回IMEI
diff --git a/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMAPhone.java b/frameworks/opt/telephony/src/ index b791460..3e764c3 100644 --- a/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMAPhone.java +++ b/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMAPhone.java @@ -503,7 +503,7 @@ public class CDMAPhone extends PhoneBase { @Override public String getMeid() { - return mMeid; + return mImei; } //returns MEID or ESN in CDMA
6 .开机去掉没有插入SIM卡
diff --git a/vendor/qcom/proprietary/qrdplus/Extension/apps/PhoneFeatures/src/com/qualcomm/qti/phonefeature/SimDetector.java b/vendor/qcom/proprietary/qrdplus/Extension/apps/PhoneFeatures/src/com/qualcomm/qti/phonefeature/SimDetector.j index bf8bdf8..f622291 100755 --- a/vendor/qcom/proprietary/qrdplus/Extension/apps/PhoneFeatures/src/com/qualcomm/qti/phonefeature/SimDetector.java +++ b/vendor/qcom/proprietary/qrdplus/Extension/apps/PhoneFeatures/src/com/qualcomm/qti/phonefeature/SimDetector.java @@ -331,7 +331,11 @@ public class SimDetector extends Handler implements OnClickListener, OnDismissLi mNoSIMDialog.getWindow().setType( WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG); mNoSIMDialog.setOnDismissListener(this); - mNoSIMDialog.show(); + + // add by guojianyong - remove no simcar tip dialog + if(false){ + mNoSIMDialog.show(); + } } public void onClick(DialogInterface dialog, int which) {
7 .单双卡设置
--- a/vendor/qcom/proprietary/qrdplus/Extension/config/default.prop +++ b/vendor/qcom/proprietary/qrdplus/Extension/config/default.prop @@ -11,8 +11,8 @@ persist.radio.restore_mode_pref=1 # hide internal OOS for 5s when modem is camping persist.radio.ignore_dom_time=5 -#set default multisim config to dsds -persist.radio.multisim.config=dsds +#set default multisim config to ssss +persist.radio.multisim.config=ssss # enable face beautification persist.ts.postmakeup=true
8. 根据不同的通道adb 命令播放声音
mm-audio-ftm高通的工厂测试命令
mm-audio-ftm -tc 8 -c /system/etc/ftm_test_config -v 80 -file /system/etc/mmi/qualsound.wav
这条命令可以直接配通道
查看通道配置信息 /system/etc/ftm_test_config
mm-audio-ftm -tc 8 -c /system/etc/ftm_test_config -v 80 -file /system/etc/mmi/qualsound.wav
-tc 8 表示使用ftm_test_config的配置8
9. 修改状态栏信号强度不正确
diff --git a/frameworks/base/telephony/java/android/telephony/SignalStrength.java b/frameworks/base/telephony/java/android/telephony/SignalStrength.java old mode 100644 new mode 100755 index c20764a..ea7ed82 --- a/frameworks/base/telephony/java/android/telephony/SignalStrength.java +++ b/frameworks/base/telephony/java/android/telephony/SignalStrength.java @@ -856,7 +856,10 @@ public class SignalStrength implements Parcelable { * associated with LTE RSRP and the bars associated with the LTE * RS_SNR */ - return (rsrpIconLevel < snrIconLevel ? rsrpIconLevel : snrIconLevel); + + //xg change to fix the 4g signal strength not correct - 20190907 + //return (rsrpIconLevel < snrIconLevel ? rsrpIconLevel : snrIconLevel); + return (rsrpIconLevel > snrIconLevel ? rsrpIconLevel : snrIconLevel); } if (snrIconLevel != -1) return snrIconLevel;
10. Android7.1 默认不开启锁屏
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml old mode 100644 new mode 100755 index a7bf39a..847e4f0 --- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml +++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml @@ -83,7 +83,7 @@ <string name="def_trusted_sound" translatable="false">/system/media/audio/ui/Trusted.ogg</string> <string name="def_wireless_charging_started_sound" translatable="false">/system/media/audio/ui/WirelessChargingStarted.ogg</string> - <bool name="def_lockscreen_disabled">false</bool> + <bool name="def_lockscreen_disabled">true</bool> <bool name="def_device_provisioned">false</bool> <integer name="def_dock_audio_media_enabled">1</integer> @@ -299,5 +299,5 @@ --> <string name="def_enable_input_methods" translatable="false"></string> <!-- Default for Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED --> - <integer name="def_captive_portal_detection_enabled" translatable="false">1</integer> + <integer name="def_captive_portal_detection_enabled" translatable="false">0</integer> </resources>
11.Android 7.1 去掉桌面上的谷歌搜索框
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 3b5cd02…7e20bf8 100755
— a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -1315,6 +1315,7 @@ public class Launcher extends Activity
mWorkspace = (Workspace) mDragLayer.findViewById(R.id.workspace);
mQsbContainer = mDragLayer.findViewById(mDeviceProfile.isVerticalBarLayout()
? R.id.workspace_blocked_row : R.id.qsb_container);
mDragLayer.removeView(mQsbContainer);
mWorkspace.initParentViews(mDragLayer);
mLauncherView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
diff --git a/src_config/com/android/launcher3/config/FeatureFlags.java b/src_config/com/android/launcher3/config/FeatureFlags.java index ed35fda…5b8089b 100755 — a/src_config/com/android/launcher3/config/FeatureFlags.java +++ b/src_config/com/android/launcher3/config/FeatureFlags.java @@ -32,7 +32,7 @@ public final class FeatureFlags { public static boolean LAUNCHER3_ALL_APPS_PULL_UP = true; // Feature flag to enable moving the QSB on the 0th screen of the workspace. 1 public static final boolean QSB_ON_FIRST_SCREEN = true; public static final boolean QSB_ON_FIRST_SCREEN = false; // When enabled the all-apps icon is not added to the hotseat. public static final boolean NO_ALL_APPS_ICON = false; // When enabled fling down gesture on the first workspace triggers search.
12.Android 5.1 屏幕偏移
diff --git a/frameworks/base/services/java/com/android/server/wm/WindowManagerService.java b/frameworks/base/services/java/com/android/server/wm/WindowManagerService.java index 2847f6e..5a1881c 100755 --- a/frameworks/base/services/java/com/android/server/wm/WindowManagerService.java +++ b/frameworks/base/services/java/com/android/server/wm/WindowManagerService.java @@ -7051,8 +7051,10 @@ public class WindowManagerService extends IWindowManager.Stub try { mActivityManager.updateConfiguration(null); + } catch (RemoteException e) { } + setOverscan(0,11,0,0,0); }
13:Android 7.1.1 插入耳机图标显示
在Android手机上插入耳机后,状态栏会显示耳机图标,之前手机都是在手机最上面状态栏右边的区域显示,在Android 7.1.1上,插入耳机后不会显示这个图标,而是在最左边有个耳机的通知,这个通知是在下面的类中监听耳机插入或拔出的广播来显示或取消插入耳机的通
packages/services/Telecomm/src/com/android/server/telecom/TtyManager.java @Override public void onWiredHeadsetPluggedInChanged(boolean oldIsPluggedIn, boolean newIsPluggedIn) { Log.v(this, "onWiredHeadsetPluggedInChanged"); updateCurrentTtyMode(); if (newIsPluggedIn