Det ser ud til, at Google har en fejl i deres AOSP-kode, der blev introduceret omkring Android 3.2, som påvirker, hvordan OS håndterer USB Storage og kan forhindre skriveadgang til SD-kort og USB-sticks. XDA Elite anerkendt udvikler, seniormoderator og NyhedsskribentKædebål opsummerer spørgsmålet i sit blogindlæg:
Tidligere ville en app anmode om "WRITE_EXTERNAL_STORAGE" tilladelse, som ville give skriveadgang til alle eksterne lager (bruger/gruppe "sdcard_rw"). Dette er tilsyneladende blevet ændret til kun at give skriveadgang til primær ekstern lagring. En anden tilladelse er blevet indført kaldet "WRITE_MEDIA_STORAGE", som ville give adgang til de andre eksterne lager (bruger/gruppe "media_rw").
Problemet er, at en tredjepart faktisk ikke vil få denne tilladelse, kun systemapps og apps leveret af enhedsproducenten vil normalt få denne tilladelse. Der er undtagelser, på nogle enheder vil tredjepartsapps tilsyneladende få denne tilladelse, men ifølge AOSP-kilderne skal de bestemt ikke.
Da Chainfire undersøgte problemet, stødte han på kode i
/system/vold/Volume.cpp der udtrykkeligt siger:if (primaryStorage) {
// Særligt tilfælde den primære SD-kort.
// Til dette giver vi skriveadgang til SDCARD_RW-gruppen.
gid = AID_SDCARD_RW;
} andet {
// Til sekundær ekstern lagring holder vi tingene låst.
gid = AID_MEDIA_RW;
}
På mange enheder betragtes den interne flash som det "primære SD-kort". Det ægte SD-kort bliver så det sekundære eksterne lager og låses nedbeskyttet af det uopnåelige "WRITE_MEDIA_STORAGE"tilladelse.
Chainfire sendte sit spørgsmål til Kontortid for Android-udviklere hold, og de endte med at diskutere det i deres live hangout den 11. april. Desværre var Google-ingeniørerne til stede i hangoutet ikke i stand til at give nogle rigtige svar, da dette er et kompliceret spørgsmål, og spørgsmålet blev kun rejst en time før showet gik live. De har dog lovet at komme til bunds i dette spørgsmål og vende tilbage til Chainfire (og os) på et senere tidspunkt.
Også ifølge Chainfire er problemet faktisk også til stede på ICS builds til SGS2, selvom Samsung "løste det ved hjælp af et meget grimt tilladelseshack":
Det, du ser her, er Samsung piggybacking WRITE_MEDIA_STORAGE-tilladelsen til WRITE_EXTERNAL_STORAGE-tilladelsen, så apps oplever ikke det beskrevne problem.
Hvorvidt Google har til hensigt, at tilsluttede SD-kort og USB-sticks skal begrænses til at være skrivebeskyttet for tredjeparts-apps, er endnu uvist. Det afføder dog en foruroligende tanke: Hvad hvis koden og de tilhørende noter er Googles første stadier af implementering af en slags skrivebeskyttelse til ekstern lagring og dermed yderligere begrænsning af vores mobil frihed? Vi kan kun håbe, at dette er en ægte fejl, da frihed er en af grundene til, at vi alle undgår det Mørk side.
[Kæmpe tak til Chainfire for heads up og hjælp!]