7

Is there a way to disable all USB functionality except for charging? I don't really use MTP or PTP and would like to disable it if possible.

3 Answers 3

11

Go to Settings → Storage and tap on the overflow menu in the top right (on a device with a physical menu key, you may need to press that instead). This should bring up a menu item labeled "USB Computer Connection":

enter image description here

Tap on that, and it will give you a list with possible connection modes. Uncheck everything that you don't intend to use. On my N5/CM11 there are only two options on this page: MTP and PTP. Unchecking both causes the phone to simply charge when plugged into a PC. I have seen others that have an explicit "Charge Only" option, but I believe that is nonstandard.

7
  • Note also that PTP must be ticked for tethering to be offered, either via USB or Bluetooth. Commented Jun 6, 2014 at 12:46
  • @andybjackson That has not been my experience at all. I never use PTP, but I certainly use USB tethering from time to time. Also seems odd that tethering over Bluetooth (a wireless protocol) would somehow depend on PTP. Commented Jun 6, 2014 at 14:33
  • If I untick both, ADB stops working as well (LG P880 running CM11/Android 4.4). If one of them is ticked, I always get two popups on my PC when connecting the cable (asking to mount the MTP storage). Drives me crazy. Whish there were an explicit "charge only" as it was with "older versions".
    – Izzy
    Commented Nov 11, 2015 at 23:37
  • @Izzy They actually ended up adding "charge only" to AOSP in 6.0, and made it the default: androidcentral.com/inside-marshmallow-usb-connection-options Commented Nov 12, 2015 at 4:15
  • I'd be happy with that default actually (if it works, see: “adb devices” gives “no permission” when on charge-only) – but I agree the user should be able to chose what fits him/her best.
    – Izzy
    Commented Nov 12, 2015 at 9:07
11

The most device-compatible way to disable everything is to run this command at startup or set this in your build.prop:

setprop persist.sys.usb.config none

which is equivalent to charge-only on all Android devices.

That also disables adb. If you use adb regularly, then:

setprop persist.sys.usb.config adb

will allow adb when developer options are turned on/checked. If you don't use ADB often, I would not recommend it, because setting adb causes my S5 to still recognize in device manager, even when it is locked.

To restore original functionality,

setprop persist.sys.usb.config mtp,ptp,adb

allows all USB protocols.

Hope this helps anyone Googling for an answer.

4
  • Have you verified that these commands would work without root access?
    – Firelord
    Commented Feb 1, 2016 at 13:09
  • 1
    People who have custom recovery can apply a changed build.prop without root. Those who have locked bootloaders & no recovery will need root permissions. Commented Mar 21, 2016 at 0:19
  • 1
    On Android 5.1.1 (CyanogenOS 12 on a Wileyfox Swift), using setprop persist.sys.usb.config adb lets adb devices show ???????????? no permissions. Played with all combinations – no way to get "charge only + adb". Must be "x,adb" (with x=mtp or ptp) to work at all. To restore, in terminal I needed root. The notification menu just grayed out when I tried re-enabling MTP from there.
    – Izzy
    Commented May 18, 2016 at 0:59
  • even if it's not in startup it works, and it even persists between reboots. (becuase of the persist.xxx.yyy.zzz thanks
    – ransh
    Commented Feb 16, 2017 at 13:55
0
  • click 5 times on SETTINGS>ABOUT PHONE>MODEL NUBMER

  • then DEVELOPER OPTIONS will be added in main settings (in bottom). Enter there and choose USB SETTINGS> CHARGING|MTP.

(Source)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .