Android 3.2+ kód (véletlenül?) Megakadályozza az írási hozzáférést a külső tárhelyhez

click fraud protection

Úgy tűnik, hogy a Google-nak van egy hiba az Android 3.2 körül bevezetett AOSP-kódjában, amely hatással van arra, hogy az operációs rendszer hogyan kezeli az USB-tárolót, és megakadályozhatja az SD-kártyák és USB-meghajtók írási elérését. XDA Elite elismert fejlesztő, vezető moderátor és HíríróLánctűz foglalja össze a kérdést az övé blog bejegyzés:

A múltban egy alkalmazás kérte a "WRITE_EXTERNAL_STORAGE" engedélyt, amely írási hozzáférést adna minden külső tárolók (felhasználó/csoport "sdcard_rw"). Ez láthatóan megváltozott, hogy csak írási hozzáférést biztosítson a elsődleges külső tárhely. Bevezetésre került egy második engedély is: "WRITE_MEDIA_STORAGE", amely hozzáférést biztosít a többi külső tárolóhoz (felhasználó/csoport "media_rw").

A probléma az, hogy harmadik fél valójában nem kapja meg ezt az engedélyt, általában csak a rendszeralkalmazások és az eszköz gyártója által biztosított alkalmazások kapják meg ezt az engedélyt. Vannak kivételek, nyilván bizonyos eszközökön a harmadik féltől származó alkalmazások megkapják ezt az engedélyt, de az AOSP-források szerint biztosan nem.

Miközben Chainfire vizsgálta a problémát, kódra bukkant a /system/vold/Volume.cpp amely kifejezetten kimondja:

 if (primaryStorage) {

// Különleges eset a elsődleges SD-kártya.

// Ehhez írási jogosultságot adunk az SDARD_RW csoportnak.

gid = AID_SDCARD_RW;

} más {

// A másodlagos külső tárhelyhez zárva tartjuk a dolgokat.

gid = AID_MEDIA_RW;

}

Sok eszközön a belső vakut tekintik "elsődleges SD-kártyának". A igazi Az SD-kártya ezután másodlagos külső tárolóvá válik, és le van zárva, és az elérhetetlen védelem alatt áll.WRITE_MEDIA_STORAGE"engedély.

Chainfire benyújtotta kérdését a Android Developers irodai nyitvatartás csapat, és végül megvitatták a sajátjukban élő társalgó április 11-én. Sajnos a hangoutban jelenlévő Google mérnökei nem tudtak érdemi válaszokat adni, mivel ez egy bonyolult kérdés, és a kérdés csak egy órával a műsor indulása előtt merült fel. Megígérték azonban, hogy a probléma végére járnak, és egy későbbi időpontban visszatérnek a Chainfire-hez (és hozzánk).

Chainfire szerint a probléma valójában az SGS2 ICS buildjeinél is jelen van, bár a Samsung "egy nagyon csúnya engedélyes hack segítségével megkerülte":

Amit itt látsz, az a Samsung malacháton a WRITE_MEDIA_STORAGE engedélyt a WRITE_EXTERNAL_STORAGE engedélyre, így az alkalmazások nem tapasztalják a leírt problémát.

Az, hogy a Google a csatlakoztatott SD-kártyákat és USB-meghajtókat a harmadik féltől származó alkalmazások írásvédettségére korlátozza-e, még nem derül ki. Ez azonban egy nyugtalanító gondolatot szül: mi van, ha a kód és a kísérő megjegyzések a Google első szakaszaiban valamilyen írásvédelmet implementálunk a külső tárolóknál, és ezzel tovább korlátozzuk mobilunkat szabadság? Csak remélni tudjuk, hogy ez egy valódi hiba, mivel a szabadság az egyik oka annak, hogy mindannyian kerüljük Sötét oldal.

[Óriási köszönet Chainfire-nek a felvilágosításért és a segítségért!]