Android 7.1 系統 部分功能修改 彙總

1.修改藍牙爲從端 

device/qcom/msmxxx/system.prop
//設置成從模式
persist.service.bt.a2dp.sink=true
persist.service.bt.hfp.client=true


device/qcom/msmxxx/overlay/packages/apps/Bluetooth/res/values/config.xml

<?xml version="1.0" encoding="utf-8"?>
 <resources>
     <bool name="profile_supported_a2dp_sink">true</bool>
     <bool name="profile_supported_avrcp_controller">true</bool>
     <bool name="profile_supported_hfpclient">true</bool>
     <bool name="profile_supported_pbapclient">true</bool>
 </resources>

2.修改默認的睡眠超時和屏幕關閉超時 

device/qcom/msmxxx/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml

    <integer name="def_screen_off_timeout">2147483647</integer>
    <integer name="def_sleep_timeout">2147483647</integer>

3.配置液晶屏密度

device/qcom/common/rootdir/etc/init.qcom.early_boot.sh


function set_density_by_fb() {
    #put default density based on width
    if [ -z $fb_width ]; then
        setprop ro.sf.lcd_density 320
    else
        if [ $fb_width -ge 1920 ]; then
           setprop ro.sf.lcd_density 320 # 1920x1080
        elif [ $fb_width -ge 1080 ]; then
           setprop ro.sf.lcd_density 480
        elif [ $fb_width -ge 1024 ]; then
           setprop ro.sf.lcd_density 160 # 1024x600
        elif [ $fb_width -ge 720 ]; then
           setprop ro.sf.lcd_density 320 #for 720X1280 resolution
        elif [ $fb_width -ge 480 ]; then
            setprop ro.sf.lcd_density 240 #for 480X854  resolution
        else
            setprop ro.sf.lcd_density 160
        fi
    fi
}

4.刪除導航欄並鎖定屏幕方向橫向

device/qcom/msmxxx/overlay/frameworks/base/core/res/res/values/config.xml

   <bool name="config_cameraDoubleTapPowerGestureEnabled">false</bool>
   <bool name="config_supportAutoRotation">false</bool>
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

 //addNavigationBar();


frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java

boolean updateOrientationFromAppTokensLocked(boolean inTransaction) {
    .    .........    
        //int req = getOrientationLocked();
         int req = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
        .............
}

5.刪除no_sim和new_sim對話框

vendor/qcom/proprietary/qrdplus/Extension/apps/PhoneFeatures/res/values/configs.xml

 <bool name="feature_new_sim">false</bool>
<bool name="feature_no_sim">false</bool>

6.adb設備序列號爲空

kernel/msm-3.18/drivers/usb/gadget/android.c

// #if defined(CONFIG_DEBUG_ATOMIC_SLEEP)
//    id=0;
// #else 
    id = usb_string_id(cdev);
// #endif

7.增加自定義系統按鍵

device/qcom/common/base.mk
KEYPAD += aaaaa.kl


device/qcom/msm8953_64/AndroidBoard.mk

include $(CLEAR_VARS)
LOCAL_MODULE       := aaaaa.kl
LOCAL_MODULE_TAGS  := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES    := $(LOCAL_MODULE)
LOCAL_MODULE_PATH  := $(TARGET_OUT_KEYLAYOUT)
include $(BUILD_PREBUILT)


device/qcom/msmxxx/aaaaa.kl

key 0x17b   BACK_CAMERA
key 0x21e   ILL_LIGHT
key 0x74    POWER
frameworks/native/include/input/InputEventLabels.h
    
    DEFINE_KEYCODE(BACK_CAMERA),
    DEFINE_KEYCODE(ILL_LIGHT),


frameworks/native/include/android/keycodes.h

    AKEYCODE_BACK_CAMERA = 284,
    AKEYCODE_ILL_LIGHT = 285


frameworks/base/core/res/res/xml/global_keys.xml

 <key keyCode="KEYCODE_BACK_CAMERA" component="com.quectel.multicamera/.CustomActivity" />



frameworks/base/core/res/res/values/attrs.xml

   <enum name="KEYCODE_BACK_CAMERA" value="284" />
   <enum name="KEYCODE_ILL_LIGHT" value="285" />


frameworks/base/core/java/android/view/KeyEvent.java
   public static final int KEYCODE_BACK_CAMERA = 284;
   public static final int KEYCODE_ILL_LIGHT = 285;
   //private static final int LAST_KEYCODE = KEYCODE_SYSTEM_NAVIGATION_RIGHT;
    private static final int LAST_KEYCODE = KEYCODE_ILL_LIGHT;


    case KeyEvent.KEYCODE_BACK_CAMERA:
    case KeyEvent.KEYCODE_ILL_LIGHT:

8. user  支持 fastboot

bootable/bootloader/lk/makefile

#ifeq ($(TARGET_BUILD_VARIANT),user)
#  CFLAGS += -DDISABLE_FASTBOOT_CMDS=1
#endif

9.修改Telephony.getDeviceId 返回IMEI

frameworks/base/telephony/java/android/telephony/TelephonyManager.java

    /*public String getDeviceId(int slotId) {
        android.util.SeempLog.record_str(8, ""+slotId);
        // FIXME this assumes phoneId == slotId
        try {
            IPhoneSubInfo info = getSubscriberInfo();
            if (info == null)
                return null;
            return info.getDeviceIdForPhone(slotId, mContext.getOpPackageName());
        } catch (RemoteException ex) {
            return null;
        } catch (NullPointerException ex) {
            return null;
        }
    }*/
    public String getDeviceId(int slotId) {
        ITelephony telephony = getITelephony();
        if (telephony == null) return null;

        try {
            return telephony.getImeiForSlot(slotId, getOpPackageName());
        } catch (RemoteException ex) {
            return null;
        } catch (NullPointerException ex) {
            return null;
        }
    }

10.修改開機提示無網絡問題 或者網絡圖標問題

frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java

    //private static final String DEFAULT_HTTPS_URL     = "https://www.google.com/generate_204";
    //private static final String DEFAULT_HTTP_URL      =
    //        "http://connectivitycheck.gstatic.com/generate_204";
    //private static final String DEFAULT_FALLBACK_URL  = "http://www.google.com/gen_204";
    private static final String DEFAULT_HTTPS_URL     = "https://www.qualcomm.cn/generate_204";
    private static final String DEFAULT_HTTP_URL      =
              "http://www.qualcomm.cn/generate_204";
    private static final String DEFAULT_FALLBACK_URL  = "http://www.qualcomm.cn/generate_204";

11 .刪除檢查com.google.android.gms

frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java

  private int getAllowedUid(int userHandle) {

        //String allowedPackage = mContext.getResources()
        //        .getString(R.string.config_persistentDataPackageName);
        //PackageManager pm = mContext.getPackageManager();
        int allowedUid = -1;
        /*try {
            allowedUid = pm.getPackageUidAsUser(allowedPackage,
                    PackageManager.MATCH_SYSTEM_ONLY, userHandle);
        } catch (PackageManager.NameNotFoundException e) {
            // not expected
            Slog.e(TAG, "not able to find package " + allowedPackage, e);
        }*/

        return allowedUid;
    }

11 .在啓動時啓動警告消息服務

packages/apps/Settings/src/com/android/settings/FallbackHome.java

    private void maybeFinish() {
        if (getSystemService(UserManager.class).isUserUnlocked()) {
            final Intent homeIntent = new Intent(Intent.ACTION_MAIN)
                    .addCategory(Intent.CATEGORY_HOME);
            final ResolveInfo homeInfo = getPackageManager().resolveActivity(homeIntent, 0);
            if (Objects.equals(getPackageName(), homeInfo.activityInfo.packageName)) {
                Log.d(TAG, "User unlocked but no home; let's hope someone enables one soon?");
                mHandler.sendEmptyMessageDelayed(0, 500);
            } else {
                Log.d(TAG, "User unlocked and real home found; let's go!");
                
               //add code
                
                Intent warningIntent = new Intent();
                warningIntent.setPackage("com.pvetec.warningmessage");
                warningIntent.setAction("pvetec.intent.action.boot.disclaimer.service.start");
                startService(warningIntent);
               //add code

                getSystemService(PowerManager.class).userActivity(
                        SystemClock.uptimeMillis(), false);
                finish();
            }
        }
    

12 .用emmc和usbotg掛載路徑

system/vold/PublicVolume.cpp

    idx = msyspath.find("2-1.2");
    if(idx == std::string::npos){

    } else {
        stableName = "usbotg-2-1.2";
    }

    idx = msyspath.find("mmc1:0002");
    if(idx == std::string::npos){

    } else {
        stableName = "mmc1-0002";
    }

13 .usb3.0和usb2.0設備安裝路徑

system/vold/PublicVolume.cpp

  idx = msyspath.find("xhci-hcd.0.auto/usb");
    if(idx == std::string::npos){

    } else {
        stableName = "usbotg-2-1.2";
    }

    idx = msyspath.find("mmc1:");
    if(idx == std::string::npos){

    } else {
        stableName = "mmc1-0002";
    }

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章