Android - Default USB MTP for Android 6.0
Google changed the USB protocol for Marshmallow to always default to charge.
The reason for this change because they brought back the ability to make external storage (SD card) become internal storage. Creating a new storage type called "Adoptable Storage".
Originally google removed the ability to swap storages because they viewed it as a huge security vulnerability.
Adoptable storage
In order to achieve your end goal it looks like you might have to compile marshmallow from source. Find the MtpService.java
and then with updateDisabledStateLocked()
change mMtpDisabled
to false
.
MtpService.java
The best I found so far is an application named MTPEnabler: http://forum.xda-developers.com/android/apps-games/app-mtp-enbaler-t3263467