tyn*_*ynn 15 permissions android broadcastreceiver android-permissions
考虑使用a BroadcastReceiver来实现简单目标的简单工具.因为这不应该被其他应用使用,它定义了与一个的ProtectionLevel许可signature或signatureOrSystem:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="any.test">
<permission
android:name="any.test.PERMISSION"
android:protectionLevel="signatureOrSystem" />
<application android:label="AnyTest">
<receiver
android:name=".Receiver"
android:exported="true"
android:permission="any.test.PERMISSION" />
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
现在我想通过发送广播来测试这个
adb shell am broadcast -n any.test/.Receiver
Run Code Online (Sandbox Code Playgroud)
从我的电脑.虽然这在模拟器上完全正常,但在设置此权限时,它在真实设备上根本不起作用.如果未设置权限,则一切都按预期工作.
那么如何定义或授予权限以便我可以在真实设备上测试所有这些ADB?
我想在调试模式下使这个导出的接收器更安全,所以如果有一个特殊的ADB使用权限或运行时测试只允许ADB我可以实现的调用Receiver.onReceive(Context, Intent),它也会有所帮助.接收器不必同时为ADB其他应用程序工作.
root shell 可以发送受任何权限保护的任何广播。
普通的 shell 也被授予了很多权限,请在 AOSP 源代码中检查此文件:frameworks\base\packages\Shell\AndroidManifest.xml。
any.test.PERMISSION将此文件中的保护级别替换为一项权限signatureOrSystem,例如android.permission.REAL_GET_TASKS。之后,您可以在 shell 中向该接收器发送广播,但其他第三个应用程序则不能。
| 归档时间: |
|
| 查看次数: |
3969 次 |
| 最近记录: |