Android 有没有可能屏蔽 USB 控制器

319 天前
 busier
苹果有个 LockDown 模式,可以禁用 USB 接口的一切数据传输能力,仅充电!

那么 Android 上有没有办法可以实现呢!

不要说插上数据线,弹出提示选“仅充电”,对于 ADB 调试无效,对于手机内置的美亚柏科 MFSocket 之类的,相信选仅充电也是没用。

需要的效果就是插上 USB 到电脑后,设备管理器中不会在 USB 控制器下面出现任何手机相关的设备

考虑是不是可以在底层 Linux 内核或加载的模块中屏蔽 USB 控制器的驱动程序!或者用更好的方法?
4669 次点击
所在节点    Android
12 条回复
yolee599
319 天前
关闭开发者模式
learningman
319 天前
换个 typec 口,除了供电的全断开
vcn8yjOogEL
319 天前
系统层或许可以用防水功能实现切断

以及硬件不可信装什么都没用
vcn8yjOogEL
319 天前
不过直接不用 TPM 的话还是能有一定防护的,只要提前关机就行
liyafe1997
318 天前
你不开开发者模式不开 USB 调试怎么会连得上 adb 呢?如果别人没有你的密码也没法打开。
flyqie
318 天前
adb 的开启是你自己允许的啊。。

android 默认不会自动开启 adb 这么危险的功能。。
busier
318 天前
我的意思是,禁止 usb 一切数据传输能力,即使开发者模式打开了,也不能被利用!
VDarker
318 天前
重新接下 usb 插口 飞线只连电池
kkocdko
318 天前
你的需求是冲突的,“既要不显示设备,又要手机上如何如何操作”本质上是主观地完全配合攻击者的同时,又要求不被攻击。这很可笑,ADB 是你自己开的,却要求攻击者无法使用。按照这个逻辑,苹果手机也可以手动关掉 USB LockDown 啊,这不是又被攻击了么?就算更进一步捣毁 USB 接口,攻击者也可以自己焊接一个上去啊?

我觉得你需要改进自己的问题描述。我猜测以下可能可以满足你的真实意图:

1. 开发者选项打开了,ADB 也不一定打开。ADB 是要在开发者选项里手动再次开启的。你可以只开启开发者选项,不开启 ADB 。如果你需要自己使用 ADB 功能,但是不让攻击者使用,那么其实 ADB 连接的时候手机会提示你选择是否允许被调试,选否就可以了。

2. 你也可以通过 shell script 实现,强制切换到 MTP/PTP 模式,我之前尝试过替换 MTP 驱动,由于是用户态 fuse 驱动,换起来比较容易。但是这同样无法实现你的“设备管理器中不会在 USB 控制器下面出现任何手机相关的设备”需求。
x77
318 天前
以前搞过 USB 驱动,理论上可以,不过得改内核。

USB 标准是 PnP (即插即用),Android 设备接入电脑时会有个“对话”过程,电脑问 Android 是啥 USB 设备啊、有哪些能力啊,这个时候 Android 驱动就会按照 USB 协议规范回复电脑,电脑根据 USB 的回复再设备管理器里动态创建逻辑设备。

如:Android 说我是 U 盘( USB Mass Storage 设备)那电脑就创建移动磁盘,如 Android 说我是 ADB (自定义设备)那电脑也载入相关驱动。如果需要做个类似“屏蔽” USB 的功能,那 Android Linux 内核需要根据外部设定回应“空设备”(只是个例子),应用层工具是控制不了的。
busier
318 天前
@kkocdko 如此说来 拆掉尾插 只用无线充电好了!至于攻击者再焊接这种情况无所谓,只要不是插拔个数据线这么轻易能做到的就行
xurubin
318 天前

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/954965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX