我試圖實現只接收來自特定應用程序的廣播的「安全」廣播接收機。這是因爲我想爲我的應用製作插件,通過廣播觸發操作。由於這些行爲(部分)是明智的,因此檢查發件人是否真的是我的應用程序將會很好。據我所見,不可能檢查發件人包裹? 爲此定義自定義權限是否安全?如果是的話,我該怎麼做?還有什麼其他的可能性來實現這個目標?Android使廣播接收機安全
在此先感謝!
我試圖實現只接收來自特定應用程序的廣播的「安全」廣播接收機。這是因爲我想爲我的應用製作插件,通過廣播觸發操作。由於這些行爲(部分)是明智的,因此檢查發件人是否真的是我的應用程序將會很好。據我所見,不可能檢查發件人包裹? 爲此定義自定義權限是否安全?如果是的話,我該怎麼做?還有什麼其他的可能性來實現這個目標?Android使廣播接收機安全
在此先感謝!
定義自定義權限是否安全?
如果這兩個應用程序和插件是由你而寫的,用android:protectionLevel="signature"
自定義權限,似乎是你的問題的理想解決方案。沒有應用程序將不能發送廣播到您的接收器沒有持有該權限,只能由相同的簽名密鑰簽署的應用程序保持。作爲獎勵,用戶不必在安裝時同意該許可。
專業提示:在應用程序和插件中定義<permission>
元素,因此這兩者的安裝順序無關緊要。
請注意,custom permissions have a security flaw之前的Android 5.0,和on Android 5.0+ no two apps can define the same permission unless they are signed by the same signing key。
在你的清單定義自定義權限:
<permission android:name="com.example.myapp.permission.NAME"
android:protectionLevel="normal" />
接收器上,添加許可屬性:
<receiver android:name="MyReceiver"
android:permission="com.example.myapp.permission.NAME" />
'android:protectionLevel =「normal」'將允許任何應用程序持有該權限,但須經用戶批准。這可能是OP想要的,儘管它似乎不是基於這個問題。 – CommonsWare
謝謝,這似乎是理想的解決方案! :) – Fleckdalm
固體專業提示墨菲先生。謝謝! – worked
@worked:感謝您的評論,因爲它向我指出我需要更新此答案。 – CommonsWare