2022-08-29 AndroidR 修改默认usb连接模式为MTP(Media Transfer Protocol)),UsbDeviceManager.java里面处理OTG口usb设备拔插侦听

一、默认是做为adb 调试功能,实际测试修改persist.sys.usb.config 是没有用。

二、拔插usb设备默认的选项是No data transfer 

三、按下面的修改就可以修改默认usb连接模式为MTP。

 四、整个过程修改的内容。


project device/rockchip/common/
diff --git a/BoardConfig.mk b/BoardConfig.mk
index 7223d8c..38cda02 100755
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -204,6 +204,11 @@ TARGET_RECOVERY_DEFAULT_ROTATION ?= ROTATION_RIGHT
 # For Surface Flinger Rotation
 SF_PRIMARY_DISPLAY_ORIENTATION ?= 0
 
+ifeq ($(strip $(USB_FUNCTION_DEFAULT_MTP)), true)
+PRODUCT_PROPERTY_OVERRIDES += persist.sys.usb.mtp=true
+$(warning   usb port function is used as MTP(Media Transfer Protocol) by deafult)
+endif
+
 #Screen to Double, Single
 #YES: Screen to Double
 #NO: Screen to single
diff --git a/sepolicy/private/property_contexts b/sepolicy/private/property_contexts
old mode 100644
new mode 100755
index 8e00910..e7bad0c
--- a/sepolicy/private/property_contexts
+++ b/sepolicy/private/property_contexts
@@ -43,6 +43,7 @@ debug.hwui.renderer u:object_r:vendor_system_public_prop:s0
 sys.all.modules.ready                   u:object_r:vendor_system_public_prop:s0
 #vendor-init-settable|public-readable 
 persist.sys.usb.config        u:object_r:debug_prop:s0 exact string
+persist.sys.usb.mtp           u:object_r:debug_prop:s0
 ro.target.product  u:object_r:debug_prop:s0 exact string
 persist.sys.first_booting        u:object_r:debug_prop:s0
 drm.service.                   u:object_r:debug_prop:s0

project frameworks/base/
diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
index 31efdc7..0261b92 100755
--- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java
+++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
@@ -821,7 +821,10 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser
                                     && mScreenUnlockedFunctions != UsbManager.FUNCTION_NONE) {
                                 setScreenUnlockedFunctions();
                             } else {
-                                setEnabledFunctions(UsbManager.FUNCTION_NONE, false);
+                                if(SystemProperties.getBoolean("persist.sys.usb.mtp", false))
+                                  setEnabledFunctions(UsbManager.FUNCTION_MTP, false);
+                                else
+                                  setEnabledFunctions(UsbManager.FUNCTION_NONE, false);
                             }
                         }
                         updateUsbFunctions();
@@ -1011,7 +1014,10 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser
                         && mScreenUnlockedFunctions != UsbManager.FUNCTION_NONE) {
                     setScreenUnlockedFunctions();
                 } else {
-                    setEnabledFunctions(UsbManager.FUNCTION_NONE, false);
+                   if(SystemProperties.getBoolean("persist.sys.usb.mtp", false))
+                      setEnabledFunctions(UsbManager.FUNCTION_MTP, false);
+                   else
+                      setEnabledFunctions(UsbManager.FUNCTION_NONE, false);
                 }
                 if (mCurrentAccessory != null) {
                     mUsbDeviceManager.getCurrentSettings().accessoryAttached(mCurrentAccessory);

五、测试结果,电脑连接android设备的时候,PC可以读取设备里面的内容,adb 功能照样可以使用。

 六、frameworks\base\services\usb\java\com\android\server\usb\UsbDeviceManager.java里面处理OTG口usb设备拔插侦听,发送各种广播。

七、参考文章

Android 11源码 Framework修改默认usb连接模式为MTP模式_tracydragonlxy的博客-CSDN博客Android 11 Framework 修改默认usb连接模式为MTP模式 Android 11 Framework 修改默认usb连接模式为MTP模式修改Framework层源码编译修改后的源码更新到手机系统目标: 对Framework定制开发,修改Framework层代码,编译查看修改效果。本节我们修改USB默认选项,将USB默认充电模式改为默认MTP模式。效果图: 默认情况下USB选项为不进行数据传输:修改Framework层源码执行环境编译:cd ~/aospsource buhttps://blog.csdn.net/tracydragonlxy/article/details/118026048?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-118026048-blog-124830909.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-118026048-blog-124830909.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=2

猜你喜欢

转载自blog.csdn.net/qq_37858386/article/details/126559856