我的应用程序使用 android:protectionLevel="signature" 定义了一个权限。
<permission android:name="my.app.permission.EXAMPLE" android:protectionLevel="signature" />
我的目的是制作只能由我签名的应用程序启动的应用程序模块。这些应用程序模块在其活动中具有 android:permission。这工作正常。但是...第三方应用可以使用相同的权限名称并将保护级别更改为正常,就像这样
<permission android:name="my.app.permission.EXAMPLE" android:protectionLevel="normal" />
如果我的应用程序先安装,我可以防止其他应用程序覆盖权限。但是,如果有人卸载我的应用程序然后安装他的应用程序,它会重新定义权限。
是否可以阻止其他应用程序使用相同的权限名称,例如,给权限一个唯一的 id,如应用程序包?
虽然 Manifest 是加密的,但任何人在尝试启动需要此权限的活动时都可以读取 log cat 中的权限名称(抛出具有所需权限名称的异常)。