Android 3.2+ kods (netīšām?), kas novērš rakstīšanas piekļuvi ārējai krātuvei

Šķiet, ka Google ir kļūda AOSP kodā, kas tika ieviests ap operētājsistēmu Android 3.2, kas ietekmē to, kā OS apstrādā USB krātuvi, un var novērst rakstīšanas piekļuvi SD kartēm un USB zibatmiņām. XDA Elite atzītais izstrādātājs, vecākais moderators un Ziņu rakstnieksĶēdes uguns rezumē jautājumu savā emuāra ieraksts:

Agrāk lietotne pieprasījaWRITE_EXTERNAL_STORAGE" atļauja, kas piešķirtu rakstīšanas piekļuvi visi ārējās krātuves (lietotājs/grupa "sdcard_rw"). Acīmredzot tas ir mainīts, lai piešķirtu tikai rakstīšanas piekļuvi primārs ārējā atmiņa. Ir ieviesta otrā atļauja ar nosaukumu "WRITE_MEDIA_STORAGE", kas nodrošinātu piekļuvi citām ārējām krātuvēm (lietotājs/grupa "media_rw").

Problēma ir tāda, ka trešajai pusei šī atļauja faktiski netiks piešķirta; šī atļauja parasti tiek piešķirta tikai sistēmas lietotnēm un ierīces ražotāja nodrošinātajām lietotnēm. Ir izņēmumi, acīmredzot dažās ierīcēs trešo pušu lietotnēm tiks piešķirta šī atļauja, taču saskaņā ar AOSP avotiem tām noteikti nevajadzētu piešķirt.

Kad Chainfire izmeklēja problēmu, viņš saskārās ar kodu /system/vold/Volume.cpp kas skaidri nosaka:

 if (primaryStorage) {

// Īpašs gadījums primārā SD karte.

// Šim nolūkam mēs piešķiram rakstīšanas piekļuvi grupai SDCARD_RW.

gid = AID_SDCARD_RW;

} cits {

// Sekundārajai ārējai krātuvei mēs turam lietas bloķētas.

gid = AID_MEDIA_RW;

}

Daudzās ierīcēs iekšējā zibspuldze tiek uzskatīta par "primāro SD karti". The īsts Pēc tam SD karte kļūst par sekundāro ārējo krātuvi, un tā tiek bloķēta, un to aizsargā nesasniedzams.WRITE_MEDIA_STORAGE"atļauja.

Chainfire iesniedza savu jautājumu Android izstrādātāju darba laiks komanda, un viņi to apsprieda savā tiešraides Hangout sesija 11. aprīlī. Diemžēl Google inženieri, kas piedalījās Hangout sesijā, nevarēja sniegt īstas atbildes, jo šī ir sarežģīta problēma un jautājums tika uzdots tikai stundu pirms pārraides sākšanas. Tomēr viņi ir apsolījuši izskatīt šo problēmu un atgriezties pie Chainfire (un mums) vēlāk.

Arī saskaņā ar Chainfire, problēma faktiski pastāv arī SGS2 ICS versijās, lai gan Samsung "apstrādāja to, izmantojot ļoti neglītu atļauju uzlaušanu":

Šeit redzamais Samsung cūcība WRITE_MEDIA_STORAGE atļauju WRITE_EXTERNAL_STORAGE atļaujai, tāpēc lietotnēs nav aprakstīta problēma.

Tas, vai Google ir paredzējis, ka pievienotās SD kartes un USB atmiņas zibatmiņas ir paredzētas tikai lasāmām trešo pušu lietotnēm, vēl ir redzams. Tomēr tas rada satraucošu domu: Ko darīt, ja kods un pievienotās piezīmes ir Google pirmās ārējai krātuvei kaut kādas rakstīšanas aizsardzības ieviešanas posmus, tādējādi vēl vairāk ierobežojot mūsu mobilo tālruni brīvība? Mēs varam tikai cerēt, ka tā ir patiesa kļūda, jo brīvība ir viens no iemesliem, kādēļ mēs visi izvairāmies no tā Tumšā puse.

[Liels paldies Chainfire par uzmanību un palīdzību!]