Android 3.2+ kood (kogemata?) Välisele salvestusruumile kirjutamise juurdepääsu takistamine

Näib, et Google'il on viga AOSP-koodis, mis võeti kasutusele Android 3.2 ümber, mis mõjutab seda, kuidas OS USB-mäluseadet käsitleb ja võib takistada SD-kaartidele ja USB-mälupulkadele kirjutamist. XDA Elite tunnustatud arendaja, vanemmoderaator ja Uudiste kirjutajaAheltuli võtab teema omas kokku ajaveebi postitus:

Varem taotles rakendusWRITE_EXTERNAL_STORAGE" luba, mis annaks kirjutamisõiguse kõik välismälu (kasutaja/grupp "sdcard_rw"). Seda on ilmselt muudetud, et anda ainult kirjutusõigus esmane väline salvestusruum. Kasutusele on võetud teine ​​luba nimega "WRITE_MEDIA_STORAGE", mis annaks juurdepääsu teistele välistele salvestustele (kasutaja/rühm "media_rw").

Probleem on selles, et kolmandale osapoolele seda luba tegelikult ei anta, tavaliselt antakse see luba ainult süsteemirakendustele ja seadme tootja pakutavatele rakendustele. On erandeid, ilmselt antakse mõnes seadmes kolmanda osapoole rakendustele see luba, kuid AOSP allikate kohaselt ei tohiks nad seda kindlasti teha.

Kui Chainfire probleemi uuris, avastas ta koodi /system/vold/Volume.cpp mis ütleb selgesõnaliselt:

 if (primaryStorage) {

// Erijuhtum the esmane SD-kaart.

// Selleks anname grupile SDCARD_RW kirjutamisõiguse.

gid = AID_SDCARD_RW;

} muu {

// Teisese välismälu jaoks hoiame asjad lukus.

gid = AID_MEDIA_RW;

}

Paljudes seadmetes peetakse sisemist välku "peamiseks SD-kaardiks". The päris SD-kaardist saab seejärel sekundaarne väline salvestusruum ja see lukustatakse kättesaamatu allkaitsega.WRITE_MEDIA_STORAGE"luba.

Chainfire esitas oma küsimuse Androidi arendajate lahtiolekuaeg meeskond ja nad arutasid seda oma grupis reaalajas hangout 11. aprillil. Kahjuks ei saanud hangoutis viibinud Google'i insenerid anda tõelisi vastuseid, kuna tegemist on keerulise probleemiga ja küsimus tõstatati alles tund enne saate otseülekande algust. Nad on aga lubanud selle probleemi põhjani jõuda ja hiljem Chainfire'i (ja meie) juurde tagasi pöörduda.

Ka Chainfire'i sõnul on probleem tegelikult olemas ka SGS2 jaoks mõeldud ICS-i järgudes, kuigi Samsung "töötas selle ümber, kasutades väga inetut lubade häkkimist":

See, mida siin näete, on Samsung piggybacking WRITE_MEDIA_STORAGE luba WRITE_EXTERNAL_STORAGE loaks, nii et rakendustel kirjeldatud probleem ei esine.

Seda, kas Google kavatses ühendatud SD-kaartide ja USB-mälupulkade jaoks piirata kolmandate osapoolte rakenduste jaoks kirjutuskaitstud kasutamist, jääb veel näha. See tekitab siiski häiriva mõtte: mis siis, kui kood ja kaasnevad märkmed on Google'i esimesed välise salvestusruumi kirjutuskaitse rakendamise etapid ja seega meie mobiiltelefoni veelgi piiramine vabadus? Jääb vaid loota, et tegemist on tõelise veaga, sest vabadus on üks põhjusi, miks me kõik seda väldime Tume pool.

[Suur tänu Chainfire'ile tähelepanu ja abi eest!]