Kód Android 3.2+ (neúmyselne?) Zabraňujúci prístupu k zápisu do externého úložiska

Zdá sa, že Google má chybu vo svojom kóde AOSP, ktorý bol predstavený okolo Androidu 3.2, čo ovplyvňuje spôsob, akým operačný systém narába s ukladacím priestorom USB a môže brániť prístupu k zápisu na SD karty a USB kľúče. XDA Elite uznávaný vývojár, hlavný moderátor a Spisovateľ správChainfire zhŕňa problém vo svojom príspevok v blogu:

V minulosti aplikácia požadovala „WRITE_EXTERNAL_STORAGE", ktoré by udelilo prístup na zápis všetky externé úložiská (používateľ/skupina "sdcard_rw"). Toto sa zrejme zmenilo tak, aby umožňovalo iba zápis na súbor primárny externé úložisko. Bolo zavedené druhé povolenie s názvom „WRITE_MEDIA_STORAGE", čo by umožnilo prístup k iným externým úložiskám (používateľ/skupina "media_rw").

Problém je v tom, že toto povolenie v skutočnosti nebude udelené tretej strane, toto povolenie zvyčajne dostanú iba systémové aplikácie a aplikácie poskytnuté výrobcom zariadenia. Existujú výnimky, na niektorých zariadeniach zrejme toto povolenie dostanú aplikácie tretích strán, ale podľa zdrojov AOSP to určite nemajú.

Keď Chainfire skúmal problém, narazil na kód v /system/vold/Volume.cpp ktorý výslovne uvádza:

 if (primaryStorage) {

// Špeciálny prípad primárna SD karta.

// Na tento účel udeľujeme skupine SDCARD_RW prístup na zápis.

gid = AID_SDCARD_RW;

} inak {

// Pre sekundárne externé úložisko uchovávame veci uzamknuté.

gid = AID_MEDIA_RW;

}

Na mnohých zariadeniach sa interný blesk považuje za „primárnu kartu SD“. The reálny SD karta sa potom stane sekundárnym externým úložiskom a je uzamknutá nadol chránená nedosiahnuteľnýmWRITE_MEDIA_STORAGE"povolenie.

Chainfire predložil svoju otázku na Pracovné hodiny pre vývojárov systému Android tímu a skončili tak, že o tom diskutovali vo svojom živé stretnutie dňa 11. apríla. Žiaľ, inžinieri spoločnosti Google prítomní na stretnutí neboli schopní poskytnúť žiadne skutočné odpovede, pretože ide o komplikovaný problém a otázka bola položená len hodinu pred spustením relácie. Sľúbili však, že sa dostanú k podstate tohto problému a vrátia sa k Chainfire (a nám) neskôr.

Podľa Chainfire je problém v skutočnosti prítomný aj v zostavách ICS pre SGS2, hoci Samsung.obišiel to pomocou veľmi škaredého hacku povolení":

To, čo tu vidíte, je Samsung navijak povolenie WRITE_MEDIA_STORAGE na povolenie WRITE_EXTERNAL_STORAGE, takže aplikácie nezaznamenajú popísaný problém.

To, či spoločnosť Google zamýšľala obmedziť pripojené SD karty a USB kľúče tak, aby boli iba na čítanie pre aplikácie tretích strán, sa ešte len uvidí. Zrodila sa však znepokojivá myšlienka: Čo ak kód a sprievodné poznámky sú prvé od Googlu etapy implementácie akejsi ochrany proti zápisu pre externé úložisko, a tým ďalšie obmedzenie nášho mobilu sloboda? Môžeme len dúfať, že ide o skutočnú chybu, pretože sloboda je jedným z dôvodov, prečo sa jej všetci vyhýbame Temná strana.

[Veľká vďaka Chainfire za pozornosť a pomoc!]