[英]Android make broadcast receiver secure
我正在嘗試實現一個“安全”廣播接收器,它只接收來自特定應用的廣播。 這是因為我想為我的應用程序制作一個插件,通過廣播觸發操作。 由於這個動作(部分)是合理的,因此檢查發送者是否真的是我的應用程序會很好。 據我所知,檢查發件人包是不可能的? 為此定義自定義權限是否安全? 如果是,我該怎么做? 有什么其他可能性來實現這一目標?
提前致謝!
為此定義自定義權限是否安全?
如果應用程序和插件都是由您編寫的,則android:protectionLevel="signature"
的自定義權限似乎是您問題的理想解決方案。 沒有應用程序將無法在未持有該權限的情況下向您的接收方發送廣播,這只能由同一簽名密鑰簽名的應用程序保留。 作為獎勵,用戶無需在安裝時同意該許可。
專業提示:在app和插件中定義<permission>
元素,因此這兩者的安裝順序無關緊要。
請注意, 自定義權限在Android 5.0之前存在安全漏洞 ,而在Android 5.0 +上,沒有兩個應用可以定義相同的權限,除非它們由相同的簽名密鑰簽名 。
在清單中定義自定義權限:
<permission android:name="com.example.myapp.permission.NAME"
android:protectionLevel="normal" />
在您的接收器上,添加權限屬性:
<receiver android:name="MyReceiver"
android:permission="com.example.myapp.permission.NAME" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.