Android 5.1 - 7.1 系统(framework)定制、修改、移植、总结 - 下篇

这篇博客详细介绍了如何定制和修改Android 5.1到7.1系统的framework,包括改变位置信息模式、关闭通知栏、去除熄屏前的变暗功能、禁用下拉通知栏、修改MTP制造商信息、调整充电电流限制、开机自动转屏、修改MEID、禁止无SIM卡提示、单双卡设置、根据通道播放声音、修复状态栏信号强度错误等31个关键操作,涵盖了系统设置、驱动修改和用户界面等多个方面。
摘要由CSDN通过智能技术生成

 定位上篇

              Android 5.1 - 7.1 系统(framework)定制、修改、移植、总结 - 上篇

目录

1:Android系统将位置信息模式默认设置为高精确度

2:Android 5.1 关闭通知栏通能

3:Android frameworks去掉熄屏前先变暗的功能 

4.屏蔽掉下拉通知栏和状态栏 

5 .android 修改MTP在PC端显示的制造商信息 

6:高通8909 驱动修改充电电流限制[kernel]

6 .android 系统源码修改系统默认开机自动转屏

7 .android 系统源码修改MEID  返回IMEI

6 .开机去掉没有插入SIM卡

7 .单双卡设置

8. 根据不同的通道adb 命令播放声音

9. 修改状态栏信号强度不正确

 10. Android7.1 默认不开启锁屏

11.Android 7.1 去掉桌面上的谷歌搜索框

 12.Android 5.1 屏幕偏移

13:Android 7.1.1 插入耳机图标显示 

14: 修改adb设备端口序列号

15:高通系列adb使用需要特殊的密钥

16:Android系统移除在user版本的时候adb权限验证

17:高通8909在User版本生成中启用qfile服务

18:移除开机时SIM卡状态的弹窗 

19:移除低电量时的提醒弹窗

 20:将系统默认音量调至最大

 21:Android系统添加使用秘钥才能使用ADB

22:修复msm8909 4.4 音频忽大忽小问题 

23:屏蔽相关应用和启动Home首选项设置

24:修复Android5.1 ListPreference.java 数组溢出

25:Launcher2  第一次开机不显示用户指导

26:Android启动桌面时多个Home属性APK时,默认某个应用优先,不弹出选择提示

 27:5.1系统低电量闪灯和报警 播放声音

 28:Android的系统关adb安全验证 


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
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值