Андроид 3.2+ код (Ненамерно?) Спречавање приступа писању спољној меморији

Чини се да Гоогле има грешку у свом АОСП коду која је уведена око Андроида 3.2, која утиче на то како ОС рукује УСБ меморијом и може спречити приступ писању на СД картице и УСБ стикове. КСДА Елите признати програмер, виши модератор и Невс ВритерЦхаинфире сумира то питање у свом блог пост:

У прошлости је апликација захтевала „ВРИТЕ_ЕКСТЕРНАЛ_СТОРАГЕ" дозволу, која би одобрила приступ за писање све спољне меморије (корисник/група "сдцард_рв"). Ово је очигледно промењено да би се одобрио приступ само за писање Примарна спољна меморија. Уведена је друга дозвола под називом "ВРИТЕ_МЕДИА_СТОРАГЕ", што би омогућило приступ другим спољним складиштима (корисник/група "медиа_рв").

Проблем је у томе што трећој страни заправо неће бити одобрена ова дозвола, већ ће се ова дозвола обично одобрити само системским апликацијама и апликацијама које је обезбедио произвођач уређаја. Постоје изузеци, очигледно ће на неким уређајима апликацијама трећих страна бити одобрена ова дозвола, али према изворима АОСП-а, сигурно не би требало.

Док је Цхаинфире истраживао проблем, наишао је на код у /system/vold/Volume.cpp који експлицитно каже:

 иф (примариСтораге) {

// Посебан случај тхе примарна СД картица.

// За ово дајемо приступ за писање групи СДЦАРД_РВ.

гид = АИД_СДЦАРД_РВ;

} остало {

// За секундарно спољно складиште ствари држимо закључаним.

гид = АИД_МЕДИА_РВ;

}

На многим уређајима, интерни блиц се сматра „примарном СД картицом“. Тхе прави СД картица тада постаје секундарна екстерна меморија и закључана је заштићена недостижним "ВРИТЕ_МЕДИА_СТОРАГЕ„дозволу.

Цхаинфире је послао своје питање Радно време Андроид Девелоперс тима, и на крају су о томе расправљали у свом ливе хангоут 11. априла. Нажалост, Гоогле инжењери присутни у хангоут-у нису били у могућности да дају праве одговоре, јер је ово компликовано питање и питање је постављено само сат времена пре него што је емисија почела уживо. Међутим, обећали су да ће доћи до дна овог питања и да ће се касније вратити Цхаинфиреу (и нама).

Такође, према Цхаинфире-у, проблем је заправо присутан и на ИЦС верзијама за СГС2, иако Самсунг "радили око тога користећи веома ружан хак за дозволе":

Оно што видите овде је Самсунг пиггибацкинг дозволу ВРИТЕ_МЕДИА_СТОРАГЕ до дозволе ВРИТЕ_ЕКСТЕРНАЛ_СТОРАГЕ, тако да апликације не доживљавају описани проблем.

Остаје да се види да ли је Гоогле намеравао да повезане СД картице и УСБ стицкови буду ограничени само за читање за апликације трећих страна. Међутим, то рађа узнемирујућу мисао: Шта ако су код и пратеће белешке први Гоогле фазе имплементације неке врсте заштите од писања за екстерно складиште, и тиме додатно ограничавање нашег мобилног телефона слобода? Можемо се само надати да је ово права грешка, јер је слобода један од разлога зашто је сви избегавамо Тамна страна.

[Велико хвала Цхаинфире-у на упозорењу и помоћи!]