What does the
modify/delete USB storage contents permission really mean? Does it grant access for the application to read, modify and write all the data on my USB storage? Maybe it is this only limited to a subset of that data (e.g. only data written by the application itself)? Or does it mean something else entirely?
What does the
If you are familiar with the concepts of read and write permissions on various PC platforms, that is pretty much the same as what is going on here. You are giving the application write access to your "external storage" Which could be an SD card, or some storage space that comes with your device.
That permission indicates that the application is able to create, modify, or delete any files that reside on the SD card (or the non-removable storage space that the the OS treats most like an SD card).
So it could download a file from online and manually save it to your SD card.
It could generate its own image, text, audio etc.. file and save it to your SD card.
It could delete any file on your SD card.
It could find a file that already exists on your SD (even one with nothing to do with the app) and make changes to it.
It means that an application can read/write to the entire contents of your sdcard. Even if the application does not have this permission it will still be able to read from the contents of the sdcard. Giving it modify/write permissions will allow the application to create, edit, or delete files.
99.9% of the time this is so the application can do things like save data to the sdcard. For example this could be images from wallpaper app, or if the app is used to backup your sms messages for you, or even a podcast app needs to save the mp3 file to the sdcard.
There has been some "fuss" lately about ios having access to your pictures and other data on the device. You have to remember that these devices are not Phones, they are computers that make phone calls. It is no different if I install an application on Windows/Linux/OSX, the application will have access to every file on the system that I have access to.
If you don't trust an application to install it on your PC, you wouldn't install it. You should use the same thoughts with your Phone, but keep in mind that you may have even more personal information on the Phone then you would on your PC.
Each application has a specific storage folder. But, some folders are public, like the Pictures, Music and Ringtones folders. So, basically an application can write/delete files from a public folder and from it's own folder.
Take a look at this link for further details: http://developer.android.com/guide/topics/data/data-storage.html#SavingSharedFiles
SD card is an adoptable storage and can be mapped as internal storage (https://source.android.com/devices/storage/adoptable), but USB is a portable storage and only be treated as external storage , thus require different permission treatment