Android 3.2+ kodas (netyčia?), neleidžiantis rašyti prieigos prie išorinės saugyklos

click fraud protection

Atrodo, kad „Google“ turi klaidą savo AOSP kode, kuris buvo pristatytas aplink „Android 3.2“, o tai turi įtakos tai, kaip OS tvarko USB atmintinę, ir gali neleisti rašyti prieigos prie SD kortelių ir USB atmintinių. XDA Elite pripažintas kūrėjas, vyresnysis moderatorius ir Naujienų rašytojasGrandininis ugnis apibendrina problemą savo tinklaraščio straipsnis:

Anksčiau programa prašydavo „WRITE_EXTERNAL_STORAGE“ leidimą, kuris suteiktų rašymo prieigą visi išorinės saugyklos (vartotojas / grupė "sdcard_rw"). Tai, matyt, buvo pakeista, kad būtų suteikta tik rašymo prieiga pirminis išorinė saugykla. Buvo įvestas antras leidimas, vadinamas "WRITE_MEDIA_STORAGE", kuri suteiktų prieigą prie kitų išorinių saugyklų (vartotojas / grupė "media_rw").

Problema ta, kad trečiajai šaliai šis leidimas iš tikrųjų nebus suteiktas, paprastai šis leidimas bus suteiktas tik sistemos programoms ir įrenginio gamintojo pateiktoms programėlėms. Yra išimčių, matyt, kai kuriuose įrenginiuose šis leidimas bus suteiktas trečiųjų šalių programoms, tačiau, remiantis AOSP šaltiniais, jos tikrai neturėtų.

Tirdamas problemą, Chainfire'as aptiko kodą /system/vold/Volume.cpp kuriame aiškiai nurodyta:

 if (primaryStorage) {

// Ypatingas atvejis pagrindinė SD kortelė.

// Tam suteikiame SDARD_RW grupei rašymo prieigą.

gid = AID_SDCARD_RW;

} Kitas {

// Antrinėje išorinėje saugykloje daiktus laikome užrakintus.

gid = AID_MEDIA_RW;

}

Daugelyje įrenginių vidinė blykstė laikoma „pirmine SD kortele“. The tikras Tada SD kortelė tampa antrine išorine saugykla ir užrakinama, nes apsaugo nuo nepasiekiamų dalykų.WRITE_MEDIA_STORAGE“ leidimas.

Chainfire'as pateikė savo klausimą „Android“ kūrėjų darbo valandos komanda, ir jie galiausiai tai aptarė savo tiesioginis „Hangout“. balandžio 11 dieną. Deja, „Hangout“ dalyvaujantys „Google“ inžinieriai negalėjo pateikti jokių realių atsakymų, nes tai sudėtinga problema ir klausimas buvo iškeltas tik likus valandai iki laidos pradžios. Tačiau jie pažadėjo išsiaiškinti šios problemos esmę ir vėliau grįžti į Chainfire (ir mus).

Be to, pasak Chainfire, problema iš tikrųjų yra ir SGS2 ICS versijose, nors „Samsung“apėjo tai naudodamas labai bjaurią leidimo nulaužimą":

Tai, ką matote čia, yra „Samsung“. piggyback WRITE_MEDIA_STORAGE leidimą į WRITE_EXTERNAL_STORAGE leidimą, todėl programoms nepatirs aprašytos problemos.

Nesvarbu, ar „Google“ numatė, kad prijungtoms SD kortelėms ir USB atmintinėms būtų leidžiama tik skaityti trečiųjų šalių programoms, dar reikia pamatyti. Tačiau tai sukelia nerimą keliančią mintį: ką daryti, jei kodas ir pridedami užrašai yra pirmieji „Google“ tam tikros išorinės saugyklos apsaugos nuo rašymo diegimo etapai ir taip dar labiau apribojami mūsų mobilieji telefonai laisvė? Galime tik tikėtis, kad tai tikra klaida, nes laisvė yra viena iš priežasčių, dėl kurių mes visi vengiame Tamsioji pusė.

[Didžiulis ačiū Chainfire už dėmesį ir pagalbą!]