一、默认是做为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 RotationSF_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:s0sys.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:s0ro.target.product  u:object_r:debug_prop:s0 exact stringpersist.sys.first_booting        u:object_r:debug_prop:s0drm.service.                   u:object_r:debug_prop:s0project 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

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

  1. Android 11源码 Framework修改默认usb连接模式为MTP模式

    Android 11源码 Framework修改默认usb连接模式为MTP模式 Android 11源码 Framework修改默认usb连接模式为MTP模式 修改Framework层源码 编译修改后 ...

  2. Android 11 Framework修改默认usb连接模式为MTP模式

    将USB默认选项改为MTP文件传输.修改文件为:frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.ja ...

  3. MTP模式与USB存储模式(MTP in Android)

    转载:http://bbs.meizu.cn/thread-4747416-1-1.html MTP in Android MTP的全称是Media Transfer Protocol(媒体传输协议) ...

  4. android usb存储模式,Android USB连接说明:MTP,PTP和USB大容量存储器

    为什么现代Android设备不支持USB海量存储 USB大容量存储(也称为" USB大容量存储设备类",USB MSC或UMS )是旧版Android将它存储暴露给计算机的方式,当 ...

  5. linux u盘插入事件,Linux 下监控USB设备拔插事件

    Linux 下监控USB设备拔插事件 发布时间:2018-01-29 00:00, 浏览次数:1111 , 标签: Linux USB * 使用Netlink来实现 这是一个特殊的socket,可以接 ...

  6. android 9.0 10.0 USB连接模式默认设为MTP

    在android系统中,UsbManager调用接口,会binder通信到UsbService.而UsbService又有两个实例,一个 UsbHostManager,一个UsbDeviceManag ...

  7. 手提电脑windows8.1 置 android手机usb连接,[Notes] Android手机轻松显示win10笔记本电脑而无需应用程序和USB连接...

    请记住,一个兄弟曾经对我说: "我们计算机上的Dongdong,99%的功能正在休眠,"我现在越来越同意这句话. 我仍然记得,在寒假期间,我花了很多精力在家里的古董电视上通过移动应 ...

  8. Linux 下监控USB设备拔插事件

    使用Netlink来实现 这是一个特殊的socket,可以接受来自内核的消息 代码如下: 运行结果如下: 当有USB设备插入时: 当有USB设备拔出时: 2.使用udev的规则来实现 自2.6 核心开 ...

  9. 默认连接电脑的模式为MTP

    Android L后默认的usb连接模式为"仅充电",而且不会随用户每次的选择而记住,假如需要修改默认的usb连接模式并且需要记住用户的选择,需要修改以下一些代码: 1.需要把mk ...

最新文章

  1. Adapter的getView
  2. graphql redux_如何在Redux应用程序中使用GraphQL
  3. Django 笔记1 -- 环境搭建
  4. php中时间轴,PHP时间轴函数
  5. win10连接烟台大学校园网
  6. 730阵列卡支持多大硬盘_730元/瓶的光瓶李渡酒销售过亿后,李渡还有哪些大招?...
  7. MySql(15)——Mysql在高并发情况下,防止库存超卖而小于0的解决方案
  8. 例子:10秒后同意按钮可点击
  9. DNS和DHCP之间有哪些区别
  10. HFS 2.3x 远程命令执行(抓鸡黑客末日)
  11. 分布式服务架构原理、设计
  12. html5都能干嘛种花,把这19种花种起来,整个家都能变成大花园!
  13. 微信公众号模板如何使用?公众号模板教程!
  14. Kubernetes资源平台--ratel
  15. 【一次过】左旋转字符串
  16. 尚硅谷《全套Java、Android、HTML5前端视频》
  17. Oracle redo 与 undo
  18. Android平台App进程优先级
  19. EPON和GPON的区别
  20. iOS客户端monkey测试

热门文章

  1. boot-repair 引导修复
  2. POJ - 3278抓牛牛
  3. 转载, 夏令时导致的时间问题
  4. 微信小程序NFC读写(我使用的是Ndef 标签其他的不会那个指令)
  5. 什么是脚本语言,shell脚本又是什么?
  6. softmax 导数推导
  7. JavaScript高级程序设计(第三章)
  8. 搭建属于自己的私有云Cloudreve+阿里云OSS+Windows服务器
  9. 【转载】 Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
  10. 五个人捕鱼和分鱼的计算