2011年12月15日 星期四

android 2.3.x /sdcard 到 /cache的問題


之前為了在2.3.x的android setting中顯示/sdcard下的資訊,發現system user並無權力可訪問/sdcard,查了網路是google不想讓系統使用者可以訪問普通使用者的個人sdcard,所以做這項措施,而要訪問必須更改system/vold/Volume.cpp中if (Fat::doMount(devicePath, "/mnt/secure/staging", false, false, 1000, 1015, 0702, true),將0702的7改動為相應的權限才行。
而最近又發現nvidia要ota必須要把update.zip寫入/cache中,而如果不改上面權限就會變成user可讀寫/sdcard,不能讀寫/cache,system user可讀寫/cache,但不能訪問/sdcard的窘狀。
但後來要改時又發現前人竟然是把/cache開放給使用者讀寫,讓ota程式只要使用者權限就行了,真是詭異阿。
不過以上到了3.x跟4.0系列就都沒問題了,google開放system user可以訪問主要/sdcard了,但secondary external storage還是被鎖起來就是了。
附註:從/sdcard移動到/cache也不能使用File:rename,最後只能靠FileInputStream 跟FileOutputStream的方式解決。


沒有留言:

張貼留言