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 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设备拔插侦听相关推荐
- Android 11源码 Framework修改默认usb连接模式为MTP模式
Android 11源码 Framework修改默认usb连接模式为MTP模式 Android 11源码 Framework修改默认usb连接模式为MTP模式 修改Framework层源码 编译修改后 ...
- Android 11 Framework修改默认usb连接模式为MTP模式
将USB默认选项改为MTP文件传输.修改文件为:frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.ja ...
- MTP模式与USB存储模式(MTP in Android)
转载:http://bbs.meizu.cn/thread-4747416-1-1.html MTP in Android MTP的全称是Media Transfer Protocol(媒体传输协议) ...
- android usb存储模式,Android USB连接说明:MTP,PTP和USB大容量存储器
为什么现代Android设备不支持USB海量存储 USB大容量存储(也称为" USB大容量存储设备类",USB MSC或UMS )是旧版Android将它存储暴露给计算机的方式,当 ...
- linux u盘插入事件,Linux 下监控USB设备拔插事件
Linux 下监控USB设备拔插事件 发布时间:2018-01-29 00:00, 浏览次数:1111 , 标签: Linux USB * 使用Netlink来实现 这是一个特殊的socket,可以接 ...
- android 9.0 10.0 USB连接模式默认设为MTP
在android系统中,UsbManager调用接口,会binder通信到UsbService.而UsbService又有两个实例,一个 UsbHostManager,一个UsbDeviceManag ...
- 手提电脑windows8.1 置 android手机usb连接,[Notes] Android手机轻松显示win10笔记本电脑而无需应用程序和USB连接...
请记住,一个兄弟曾经对我说: "我们计算机上的Dongdong,99%的功能正在休眠,"我现在越来越同意这句话. 我仍然记得,在寒假期间,我花了很多精力在家里的古董电视上通过移动应 ...
- Linux 下监控USB设备拔插事件
使用Netlink来实现 这是一个特殊的socket,可以接受来自内核的消息 代码如下: 运行结果如下: 当有USB设备插入时: 当有USB设备拔出时: 2.使用udev的规则来实现 自2.6 核心开 ...
- 默认连接电脑的模式为MTP
Android L后默认的usb连接模式为"仅充电",而且不会随用户每次的选择而记住,假如需要修改默认的usb连接模式并且需要记住用户的选择,需要修改以下一些代码: 1.需要把mk ...
最新文章
- Adapter的getView
- graphql redux_如何在Redux应用程序中使用GraphQL
- Django 笔记1 -- 环境搭建
- php中时间轴,PHP时间轴函数
- win10连接烟台大学校园网
- 730阵列卡支持多大硬盘_730元/瓶的光瓶李渡酒销售过亿后,李渡还有哪些大招?...
- MySql(15)——Mysql在高并发情况下,防止库存超卖而小于0的解决方案
- 例子:10秒后同意按钮可点击
- DNS和DHCP之间有哪些区别
- HFS 2.3x 远程命令执行(抓鸡黑客末日)
- 分布式服务架构原理、设计
- html5都能干嘛种花,把这19种花种起来,整个家都能变成大花园!
- 微信公众号模板如何使用?公众号模板教程!
- Kubernetes资源平台--ratel
- 【一次过】左旋转字符串
- 尚硅谷《全套Java、Android、HTML5前端视频》
- Oracle redo 与 undo
- Android平台App进程优先级
- EPON和GPON的区别
- iOS客户端monkey测试