Es scheint, dass Google einen Fehler in seinem AOSP-Code hat, der um Android 3.2 herum eingeführt wurde, der sich darauf auswirkt, wie das Betriebssystem mit USB-Speichern umgeht und den Schreibzugriff auf SD-Karten und USB-Sticks verhindern kann. XDA Elite anerkannter Entwickler, Senior Moderator und NachrichtenautorKettenfeuer fasst das Thema in seinem zusammen Blogeintrag:
In der Vergangenheit forderte eine App das „WRITE_EXTERNAL_STORAGE"-Berechtigung, die Schreibzugriff gewähren würde alle externe Speicher (Benutzer/Gruppe "sdcard_rw"). Dies wurde offenbar geändert, um nur Schreibzugriff auf das zu gewähren primär externer Speicher. Es wurde eine zweite Erlaubnis mit dem Namen „WRITE_MEDIA_STORAGE", was den Zugriff auf die anderen externen Speicher (Benutzer/Gruppe " gewähren würde)media_rw").
Das Problem besteht darin, dass diese Berechtigung nicht wirklich einem Dritten erteilt wird, sondern normalerweise nur System-Apps und Apps, die vom Gerätehersteller bereitgestellt werden, diese Berechtigung erhalten. Es gibt Ausnahmen, offenbar wird auf einigen Geräten Apps von Drittanbietern diese Berechtigung erteilt, aber den AOSP-Quellen zufolge ist dies auf keinen Fall der Fall.
Als Chainfire das Problem untersuchte, stieß er auf Code im /system/vold/Volume.cpp Darin heißt es ausdrücklich:
if (primaryStorage) {
// Sonderfall the primäre SD-Karte.
// Hierfür gewähren wir Schreibzugriff auf die Gruppe SDCARD_RW.
gid = AID_SDCARD_RW;
} anders {
// Für sekundären externen Speicher halten wir die Dinge unter Verschluss.
gid = AID_MEDIA_RW;
}
Bei vielen Geräten gilt der interne Flash als „primäre SD-Karte“. Der real Die SD-Karte wird dann zum sekundären externen Speicher und ist durch den unerreichbaren „Schutz“ gesperrt.WRITE_MEDIA_STORAGE" Erlaubnis.
Chainfire übermittelte seine Frage an die Bürozeiten für Android-Entwickler Team, und am Ende diskutierten sie es in ihrem Live-Hangout am 11. April. Leider konnten die im Hangout anwesenden Google-Ingenieure keine wirklichen Antworten geben, da es sich um ein kompliziertes Thema handelt und die Frage erst eine Stunde vor Live-Schaltung der Show gestellt wurde. Sie haben jedoch versprochen, dieser Angelegenheit auf den Grund zu gehen und zu einem späteren Zeitpunkt auf Chainfire (und uns) zurückzukommen.
Laut Chainfire ist das Problem tatsächlich auch bei ICS-Builds für SGS2 vorhanden, obwohl Samsung „Ich habe es mit einem sehr hässlichen Berechtigungs-Hack umgangen":
Was Sie hier sehen, ist Samsung Huckepack Die Berechtigung WRITE_MEDIA_STORAGE wird durch die Berechtigung WRITE_EXTERNAL_STORAGE ersetzt, sodass bei Apps das beschriebene Problem nicht auftritt.
Es bleibt abzuwarten, ob Google beabsichtigt hat, angeschlossene SD-Karten und USB-Sticks auf den Lesezugriff für Drittanbieter-Apps zu beschränken. Es bringt jedoch einen beunruhigenden Gedanken hervor: Was wäre, wenn der Code und die dazugehörigen Notizen Googles erste wären? Phasen der Implementierung einer Art Schreibschutz für externen Speicher und damit eine weitere Einschränkung unserer mobilen Nutzung Freiheit? Wir können nur hoffen, dass es sich hierbei um einen echten Fehler handelt, denn Freiheit ist einer der Gründe, warum wir ihn alle meiden Dunkle Seite.
[Vielen Dank an Chainfire für den Hinweis und die Hilfe!]