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?
4 Answers
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.
-
2
-
4@MartinTapankov Every computer does this. It's not a backdoor, it's already in the house. Especially sdcards, FAT32 offers no security protection, that is why the OS has the modify/delete permission in android to at least require apps to request this before it lets them modify the sdcard. which is more then any other OS does. Commented Mar 2, 2012 at 16:07
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
-
3The application should be able to write/delete anywhere on the external storage. FAT32 doesn't implement any kind of file permissions (and that's what external storage devices invariably use) so there's no way to restrict access to specific folders/files. It's good design to use your application's storage folder, but you definitely don't have to. Commented Mar 2, 2012 at 14:28
-
Although FAT32 does not have permission system, there is no reason that the OS (Android/Linux) OS cannot implement a sandbox shim around the file system access to ensure that apps only can access an authorized portion of the file system. It blows me away that Google did not implement something like this as its really quite simple to do for systems developers. Commented Feb 6, 2020 at 19:13
-
@Timothy It did: according to Android API reference this permission is not required to access application-specific directories. Commented Apr 9, 2022 at 13:07
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