2011-02-03 73 views
3

是否可以爲文件提供應用程序特定的安全性?我希望文件只能被所需的應用程序訪問,而不能被其他應用程序訪問。Android文件安全

回答

3

我假設你有記錄在SD卡上的文件,因爲存儲在內部文件系統中的文件默認受到保護。

您可以保護您的數據不受其他應用程序的唯一方式是使用某種加密。

Android爲每個應用程序提供了自己的用戶標識,然後標準的Linux文件系統訪問權限負責保護存儲在內部文件系統中的數據。您無需做任何事情即可充分利用此功能,因爲它是Android中整個安全模型的核心。

但是對於外部存儲器,如sd卡,Android正在使用FAT文件系統使卡與Windows兼容。這是一個很好的想法,但由於FAT文件系統缺乏訪問權限功能,所有存儲在SD卡上的內容都可用於所有應用程序。 (需要訪問SD卡的應用程序需要請求獲得許可。)

(這是Android的一個巨大的完整性問題,敏感信息不應該存儲在SD卡上,但所有拍攝的照片都存儲在那裏,可以訪問SD卡和互聯網的應用程序可以很容易地將所有照片上傳到服務器,而無需知道它。)

0

你可以在AndroidManifest.xml文件中聲明權限。正如Android開發者許可指南中所述:

例如,想要控制誰可以啓動它的活動之一,可以宣佈權限進行此操作如下應用:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.me.app.myapp" > 
    <permission android:name="com.me.app.myapp.permission.DEADLY_ACTIVITY" 
     android:label="@string/permlab_deadlyActivity" 
     android:description="@string/permdesc_deadlyActivity" 
     android:permissionGroup="android.permission-group.COST_MONEY" 
     android:protectionLevel="dangerous" /> 
    ... 
</manifest> 

您可以檢查webpage,如果你不明確,我們可以在這裏討論,在給出確切的答案之前,我必須先去。

編輯:同時檢查這post在這樣。

0

是的。一個簡單的解決方案是在安裝應用程序時使用/dev/urandom生成隨機加密密鑰,將密鑰存儲在本地存儲中(不在SD卡上),然後使用此密鑰加密存儲在SD卡上的文件。這會阻止其他應用程序讀取文件。

當然,這種方法的一個結果是,用戶將無法刪除SD卡,將其放入他們的PC,並將這些文件複製到他們的PC上。