V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
busier
V2EX  ›  Android

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

  •  
  •   busier · 2023-07-07 19:45:34 +08:00 · 8331 次点击
    这是一个创建于 506 天前的主题,其中的信息可能已经有所发展或是发生改变。
    苹果有个 LockDown 模式,可以禁用 USB 接口的一切数据传输能力,仅充电!

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

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

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

    考虑是不是可以在底层 Linux 内核或加载的模块中屏蔽 USB 控制器的驱动程序!或者用更好的方法?
    第 1 条附言  ·  2023-07-08 11:50:14 +08:00
    我的意思是,禁止 usb 一切数据传输能力,即使开发者模式打开了,也不能被利用!
    12 条回复    2023-07-08 20:02:02 +08:00
    yolee599
        1
    yolee599  
       2023-07-07 20:12:16 +08:00 via Android
    关闭开发者模式
    learningman
        2
    learningman  
       2023-07-07 21:38:20 +08:00   ❤️ 1
    换个 typec 口,除了供电的全断开
    vcn8yjOogEL
        3
    vcn8yjOogEL  
       2023-07-07 22:50:14 +08:00 via Android
    系统层或许可以用防水功能实现切断

    以及硬件不可信装什么都没用
    vcn8yjOogEL
        4
    vcn8yjOogEL  
       2023-07-07 22:51:51 +08:00 via Android
    不过直接不用 TPM 的话还是能有一定防护的,只要提前关机就行
    liyafe1997
        5
    liyafe1997  
       2023-07-08 08:55:47 +08:00 via Android
    你不开开发者模式不开 USB 调试怎么会连得上 adb 呢?如果别人没有你的密码也没法打开。
    flyqie
        6
    flyqie  
       2023-07-08 09:32:03 +08:00 via Android
    adb 的开启是你自己允许的啊。。

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

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

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

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

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

    如:Android 说我是 U 盘( USB Mass Storage 设备)那电脑就创建移动磁盘,如 Android 说我是 ADB (自定义设备)那电脑也载入相关驱动。如果需要做个类似“屏蔽” USB 的功能,那 Android Linux 内核需要根据外部设定回应“空设备”(只是个例子),应用层工具是控制不了的。
    busier
        11
    busier  
    OP
       2023-07-08 16:38:30 +08:00 via iPhone
    @kkocdko 如此说来 拆掉尾插 只用无线充电好了!至于攻击者再焊接这种情况无所谓,只要不是插拔个数据线这么轻易能做到的就行
    xurubin
        12
    xurubin  
       2023-07-08 20:02:02 +08:00 via Android   ❤️ 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2718 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 00:35 · PVG 08:35 · LAX 16:35 · JFK 19:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.