Hi! I tried to set the default USB connection mode to something else than “charge”, but the dialog does not accept a change.
Going to Settings>Developer Options>USB Configuration, a selection dialog shows Charge, MTP, PTP, RNDIS, Audio Source, MIDI. But when I tap anything other than Charge, it’s ignored. Sure, the touch is registered (the selected row darkens on tap), but the radio button group does not change, and the menu only shows “USB Configuration: Charge”.
This is FP2 with Google-free OS version “FP2-userdebug 6.0.1 FP2-sibon-18.04.1 release-keys”.
It’s a German Fairphone, so the English titles might be a little different.
Known Bug? Known Workaround?
NB: I can switch to MTP when I connect an USB cable, but I would like to avoid the need to do this manually every time, so I want to change the default.
Changing that setting only has effect when USB debugging is active. It is also not persistent - unplugging the device will reset it to ‘Charging’ only. As far as I know this is the Android default (and intended) behaviour.
This is a bit confusing here. USB debugging can only be activated if the developer options are made available by the user, which is not the case on every single FP2.
But these options on the connection should generally be available as soon as a (data) cable is connected.
The first post specifies that an attempt is made to change the default USB connection mode via the developer settings (as using the usual route gets tiresome as it has to be done every time). This FP2 has developer settings made available, and the setting being discussed is the one in the developer settings menu, as I gather from:
Changing this specific menu item only has effect when USB debugging is enabled, as far as I know. The usual route via the notification when USB is connected should* work regardless of USB debugging being active or not. Neither of these methods is persistent, unfortunately.
*Though some users report MTP not being available unless developer settings is on, so your mileage may vary.
…what is the use of a special setting which is forgotten immediately? The current behavior is to show a notification upon cable connection which allows to switch to MTP, PTP, etc. What additional benefit is a setting that has the same persistence (i.e., until unplugging) but is so much harder to reach? If “intended”, that seems an ill intention to me.
Also, the behavior of the Dialog is broken, it seems to me, not the persistency. The UI does not allow to switch the settings to MPT, PTP, etc. while connected. I’d assume that once the UI is fixed (i.e., the settings show MTP, PTP, etc. while connected), the persistency may turn out to be there.
Well, there is one thing to make “Charge only” the default for everyone and the other to have at the same time a developer option to change that default which - by what people wrote/observed here - effectively doesn’t do anything.
And I think it perfectly valid to call the latter “ill intended”
My guess is: this developer option should have been removed after the default USB behaviour changed in Android 6. If the intention was that even with developer options that behaviour must not be overridden.
The change was made by Google.
I have no insight into the Android development process.
I can’t find anything definitive either, but I can easily see how not giving away the phone’s content upon any random USB connection would improve security.
And if this was indeed the intention, then making the corresponding developer setting defunct is just consistent, since enabling the developer settings is no hurdle for anybody and given as advice all over the internet … If this setting still worked, I guess the change would be almost meaningless.
After a bit of internet searching this really is the most logical explanation.
This setting does not lead to a USB mode being used as a default persistently from Android 6 on, although mileage may still vary as phone vendors can customize their Android … but luckily they more and more refrain from doing that in favour of easy and timely security updates.
However, as long as this setting might serve as a workaround for certain problems (example), I wouldn’t hastily call for removing it.