Android4 4對於sdcard許可權的改動

2021-06-23 02:10:19 字數 1545 閱讀 6160

我們在公升級4.4的過程中,發現了部分第三方應用不能使用。檢視發現以下幾點要求:

1》 api 19以上現在強制要求android.permission.read_external_storage 和android.permission.write_external_storage 許可權了。

2》如果發現仍然可以在真機上面沒有加許可權也可以讀到sdcard的內容。請檢視手機是否是root過的。

原因如下:

這個問題在nexus5上用root能看到/storage/emulated/0,而是我

們的手機上看不到。這是因為在nexus5上我們得到root許可權是能過super su得到的,

而在我們的手機上是直接能adb root(因為我們是在userdebug版本上)。我們看

到的額外的/storage/emulated/0節點是被supersu的daemonsu程式mount出來的。

如果把我們的手機的user版本也越一下獄,在su底下看,結果是跟n5一模一樣的。

為了驗證,我們把n5上的supersu daemon殺死(killall daemonsu),然後重新用

strace跟蹤一下:

strace -s 200 -f /system/xbin/daemonsu --auto-daemon

當在另乙個終端裡執行adb shell->su->mount察看時,還是能看到

/storage/emulated/0,然後察看strace的輸出,它執行了/storage/emulated/0的

mount操作。strace的輸出見附件。

另外很有意思的一點,用su得到的shell,用ps $$察看這個程序的話,會發現它的

父程序是daemonsu。

3》注意: 當你manifest中定義的android:minsdkversion 和 android:targetsdkversion是3或者以下的話,這個許可權在api 19(android 4.4.2)的機器上是會強制給你附上這個讀寫sdcard的許可權的,如果你確定你的應用不需要讀寫sdcard的許可權的話,需要宣告targetsdkversion 大於等於4.。。。

android 4 4 讀寫問題

android 4.4 kitkat之後的版本不再支援使用者對外置sdcard secondary storage 的寫入等操作,自4.4開始,google引入saf框架 storage access framework 總的說是對許可權有了更加多的控制 但是可以遵循google要求,調整應用外卡的...

android 4 4刪除簡訊

public void deletesms null,null,null if null c c.movetofirst while c.movetonext catch exception e 但通過列印可以看到上述 的result是等於0的,即沒有刪除掉簡訊。檢查使用者設定許可權的函式是 che...

android4 4簡訊新特性

kitkat系統開放了簡訊許可權,增加了 預設簡訊 的概念,新特性如下 新增了兩個intent sms deliver action 和 wap push deliver action,分別對應新簡訊和新彩信的到來。在4.4之前,新簡訊和新彩信到來時的intent為 sms received act...