Re: [開發] 關於 app 權限

看板AndroidDev作者 (燒賣)時間9年前 (2014/07/30 01:58), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《gn00618777 (非常念舊)》之銘言: : ※ [本文轉錄自 Soft_Job 看板 #1Joxix8p ] : 作者: gn00618777 (非常念舊) 看板: Soft_Job : 標題: Fw: [開發] 關於 app 權限 : 時間: Sun Jul 20 20:51:05 2014 : ※ [本文轉錄自 Android 看板 #1Joxhchb ] : 作者: gn00618777 (非常念舊) 看板: Android : 標題: [開發] 關於 app 權限 : 時間: Sun Jul 20 20:49:38 2014 : 在網路上看到 : framework/base/core/res/AndroidManifest.xml 中定義了某些權限' : 包括name、protectionLevel等等.. : 他舉例了說即使你在 app 的 AndroidManifest.xml申請了某些權限 : 例如:android.permission.WRITE_SECURE_SETTINGS : Android 也不一定會給你App這個權限,因為 protectionLevel : protectionLevel有四種類型: : normal - 安裝即授予與權限,不需要確認 : dangerous - 危險的權限,需要用使用者確認 : signature - 安裝的app需要與聲明該權限的app有相同的signature : signatureOrSystem - 擁有相同的signature,或者放在system image中 : 最後面兩個不太懂耶.. 還有怎樣才會有signature阿..謝謝指教。 每一個 app 在 release build 的時候都需要 sign 一把 key (實際上 debug build 也 有,預設 ADT 會隨機產生一組放在 ~/.android/debug.keystore) protectionLevel=signature 就是指使用該 permission 的 app 需要和定義該 permissi on 的 app sign 一樣的 key,才能取得該 permission。 而 protectionLevel=signatureOrSystem 指使用該 permission 的 app 必須和定義該 p ermission 的 app sign 一樣的 key,或者該 app 必須是 system app - android 4.3 以前,指的是 /system/app 底下的 apk;android 4.4 開始必須是 /system/priv-app 底下的 apk 才算。 如果你開發數個 apk 發布到 Google Play Store,而這些 app 需要共用資料,於是你在 其中一個 app 寫了一個 ContentProvider,此時這個 ContentProvider 最適合使用 sig nature level 的 permission。如此一來只有你發布的 app 可以存取這個 ContentProvi der (因為這些 app 都是 sign 一把你才有的 key),但是其他人寫的 app 就不行。 -- Sent from my Android -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.24.103 ※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1406656682.A.FAA.html

07/31 20:49, , 1F
推~
07/31 20:49, 1F
文章代碼(AID): #1Jr-2g-g (AndroidDev)
文章代碼(AID): #1Jr-2g-g (AndroidDev)