為什麼在豌豆莢里安裝的應用都會比原版程序多出『存儲/修改刪除SD卡中的內容』和『手機通話/讀取手機狀態和身份』這兩個許可權?


有實際的例子說明么?豌豆莢應用搜索整合了國內多家應用市場的內容,本身並不提供APK的存儲。所以請配合一下我們看看這個問題出在哪。

====3月16日分割線=====

豌豆莢的工程師跟蹤了一下這個問題。由豌豆莢這邊搜索出來的三家市場的安裝包,我們都用 aapt 程序進行解壓並反編譯了 manifest 文件,從中查看到的許可權申請與 Google Play 里看到的一致,所以證明安裝包本身是沒問題的。

目前工程師推測是 Android 自身許可權控制機制存在一些讓用戶誤解的地方,一個程序自己並沒有聲明許可權,但其可能調用到的系統服務或者第三方服務需要用到那兩個許可權,都有可能導致在安裝時提示給您。但這個推測我們還沒有得到權威的官方資料證明,我們的工程師還在研究這個事,一旦有進展我會在這裡 update 的。

=====16日第二次分割=====

經過豌豆莢工程師的調查,這個問題是由於 Android 系統對給任何一個將 targetSdkVersion 設為「4」以下,也是 Donut 版本以下的應用自動分配 WRITE_EXTERNAL_STORAGE 和 READ_PHONE_STATE 這兩個許可權。於是就導致了你的朋友所遇到的情況。

詳細的說明請移步 StackOverflow :http://stackoverflow.com/questions/1747178/android-permissions-phone-calls-read-phone-state-and-identity

感謝您報告的這個問題,請繼續支持豌豆莢。


很多情況下是原作者自己加的。

android軟體一般而言,要有個簽名,如果這個軟體你自己升級,那麼簽名不變,如果被別人改了,如果別人不擁有你的簽名,那麼簽名就改變了。

如果一個軟體已經在你手機上,你要安裝一個簽名改變的版本,那麼就會提示你需要刪除原軟體才能安裝,此時你就要注意了:很可能是被篡改的版本。

有少數情況下原作者也會更改簽名,不過如果這種情況發生,原作者都會明確聲明的。

如果對安全問題非常擔心的話,你至少首先把手機的 系統設置 | 應用程序 | 開發 | USB 調試 功能關掉,這玩意的許可權比你任何軟體的許可權都高。只要這玩意開著,你對軟體許可權的任何控制都是浮雲。


一些市場會提供一些數據統計的SDK,這些需要使用一些許可權,當然有些市場是不允許的,可能豌豆莢裝的是這類


安卓系統的許可權確實挺亂的。看見很多軟體需要的特殊的許可權有點怕怕的,比如監聽電話的許可權。建議樓主裝一個主動防禦軟體,把各個軟體的覺得不該有的許可權全限制了。


推薦閱讀:

搭建大型源碼閱讀環境——使用 OpenGrok
Android 源碼編譯後,怎麼發布到真機?
Xposed帶我用上真正的安卓機
MIUI主題製作賺錢嗎?
為什麼許多廠商喜歡魔改 AOSP?

TAG:手機 | 豌豆莢 | GooglePlay | Android | 許可權 |