今天應用層的說是apk沒法在外置SDCARD寫數據,豌豆莢也建立不了,我仔細在adb下看了SDCARD的權限,如圖:android
我要說的是EXTSD(sdcard是系統從nand分配的內存),擁有者是SYStem,media_rw爲用戶組,擁有者是沒有讀寫權限的,而media_rw是可讀可寫可執行的,其餘用戶是沒有寫的權限(因而可知該APK所屬其餘用戶),這個問題我嘗試這在init.rc中用chmod 777 /mnt/extsd 來增長權限,可是惋惜的是在系統啓動的時候經過串口ll查看確實是改過來了 ,可是等android徹底跑起來以後,經過ADB查看,仍是原樣的075的權限;web
緣由是在VOLD的檢測到外置SDCARD的時候又從新分配了權限;安全
怎麼解決呢?this
第一是:spa
修改源碼system/vold/Volume.cpp
if (primaryStorage) {
// Special case the primary SD card.
// For this we grant write access to the SDCARD_RW group.
gid = AID_SDCARD_RW;
} else {
// For secondary external storage we keep things locked up.
gid = AID_MEDIA_RW;
}
改成
if (1) {
// Special case the primary SD card.
// For this we grant write access to the SDCARD_RW group.
gid = AID_SDCARD_RW;
} else {
// For secondary external storage we keep things locked up.
gid = AID_MEDIA_RW;
}
orm
方法二:xml
在android/out/target/product/wing-k70/system/etc/permissions目錄下的platform.xml內存
若是沒有源碼的話,就下個ES,修改一樣是修改system/etc/permissions目錄下的platform.xmlci
將
get
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>
改成
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
<group gid="media_rw" />
</permission>
保存,重啓。全部的應用都可以打開extsd卡上文件並修改保存,pptv也能把下載地址設置爲extsd。另外360手機助手也能直接操做extsd卡上的內容進行刪除。
在到/mnt下ll,如圖:
extsd的權限已改成777;
這樣作只是能保證咱們的APK能讀寫外置SDCARD,可是有沒有安全的問題,有待發現!