Nyilván megoldják, hogy adott app hozzáfér a fájlrendszer azon részeihez, amihez neki hozzá kell férnie. Egy mc esetében ez nyilván a teljes root lesz.
Ami szerintem (legalábbis desktopon) kényelmes és biztonságos lenne, ha alapból egy app se férne hozzá semmihez, csak a saját sandboxolt gyökeréhez. Ott tárolhat beállításokat, cache-t, mindent, ami kell neki.
Ha pedig az user cuccaival kell dolgoznia, a közösből betölteni valamit, vagy oda írni, akkor az usertől kellene hozzáférést kérnie egy rendszerszintű apin keresztül.
Teszem azt, egy böngésző az első letöltés megkezdése előtt meghívja az apit, hogy az user jelöljön ki egy mappát ahova a letöltések mennek. Az user kijelölhetne egy mappát, bepipálhatná, hogy ez az engedély tartós legyen, vagy csak amíg fut az app.
Vagy egy képszerkesztő a kép megnyitásakor meghív egy apit, hogy az user válasszon már ki egy fájlt. Aztán amíg az app fenntartja a referenciát ahhoz a fájlhoz, addig hozzáfér.
A különbség a mostani fájl megnyitás/mentés dialógusokhoz képest annyi lenne, hogy nem az alkalmazás intézné a fájlkiválasztás/jelölés részét, hanem egy rendszerkomponens, az app nem tudna a fájlrendszerről és a fájlokról semmit, csak arról, amihez majd hozzáférést kap. Megbízhatóbb lenne, mert csak azért nem kell az alkalmazásnak minden fájlt látni, hogy tudjon mutatni egy listát, hogy aztán te egyet kiválassz. Megbízhatóbb olyan szempontból is, hogy az app sunyiban nem tud más fájlokhoz nyúlkálni.
Egyébként androidon hasonló van már. A fejlesztők dolgoznak is ellene, inkább kérik a jogosultságot a teljes sd kártyához, mintsem az android fájl/mappaválasztójára hagyatkozzanak, csak mert... valahogy lopni kell az user adatait :) Vagy ios-en. Ott nincs olyan, hogy egy fájlrendszert lát minden app, mindegyik a sajátját látja, és ha egy képet tallóznál be, akkor hozzáférést kell adnod a camera roll-hoz.
Persze ez egy olyasmi amit a hardcore régi motorosoknak le kell nyelni, mert azért ez mégis csak egy plusz réteg korlátozás.