關於外置SDCARD權限問題

今天應用層的說是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,可是有沒有安全的問題,有待發現!

相關文章
相關標籤/搜索