Android 3.2+-kod (av misstag?) Förhindrar skrivåtkomst till extern lagring

click fraud protection

Det verkar som att Google har en bugg i sin AOSP-kod som introducerades kring Android 3.2, vilket påverkar hur operativsystemet hanterar USB-lagring och kan förhindra skrivåtkomst till SD-kort och USB-minnen. XDA Elite Erkänd utvecklare, Senior Moderator och NyhetsskribentKedjeeld sammanfattar frågan i sin blogginlägg:

Tidigare skulle en app begära "WRITE_EXTERNAL_STORAGE" behörighet, som skulle ge skrivåtkomst till Allt externa lagringar (användare/grupp "sdcard_rw"). Detta har tydligen ändrats för att bara ge skrivåtkomst till primär extern lagring. En andra tillstånd har införts som heter "WRITE_MEDIA_STORAGE", vilket skulle ge åtkomst till de andra externa lagringarna (användare/grupp "media_rw").

Problemet är att en tredje part faktiskt inte kommer att beviljas denna behörighet, endast systemappar och appar som tillhandahålls av enhetstillverkaren kommer normalt att beviljas denna behörighet. Det finns undantag, uppenbarligen på vissa enheter kommer tredjepartsappar att beviljas detta tillstånd, men enligt AOSP-källorna ska de verkligen inte göra det.

När Chainfire undersökte problemet kom han över kod i /system/vold/Volume.cpp som uttryckligen säger:

 if (primaryStorage) {

// Specialfall den primära SD-kort.

// För detta ger vi skrivåtkomst till gruppen SDCARD_RW.

gid = AID_SDCARD_RW;

} annat {

// För sekundär extern lagring håller vi saker inlåsta.

gid = AID_MEDIA_RW;

}

På många enheter anses den interna blixten vara det "primära SD-kortet". De verklig SD-kortet blir då det sekundära externa minnet och låses nedskyddat av det ouppnåeliga "WRITE_MEDIA_STORAGE" lov.

Chainfire skickade sin fråga till Android-utvecklare kontorstider team, och det slutade med att de diskuterade det i deras live hangout den 11 april. Tyvärr kunde inte Googles ingenjörer som var närvarande i hangouten ge några riktiga svar, eftersom detta är en komplicerad fråga och frågan ställdes bara en timme innan programmet gick live. De har dock lovat att gå till botten med denna fråga och återkomma till Chainfire (och oss) vid ett senare tillfälle.

Även enligt Chainfire finns problemet faktiskt på ICS-byggen för SGS2, även om Samsung "löste det med ett mycket fult tillståndshack":

Det du ser här är Samsung piggybacking behörigheten WRITE_MEDIA_STORAGE till behörigheten WRITE_EXTERNAL_STORAGE, så att appar inte upplever det beskrivna problemet.

Huruvida Google avsett att anslutna SD-kort och USB-minnen ska begränsas till att vara skrivskyddade för appar från tredje part återstår att se. Det föder dock en oroande tanke: Tänk om koden och medföljande anteckningar är Googles första steg för att implementera något slags skrivskydd för extern lagring, och därmed ytterligare begränsa vår mobil frihet? Vi kan bara hoppas att detta är en äkta bugg, eftersom frihet är en av anledningarna till att vi alla undviker det Mörk sida.

[Enormt tack till Chainfire för uppmärksamhet och hjälp!]