是否可以出于 dev/testing 目的向应用授予 INJECT_EVENTS 权限

Is it possible to grant INJECT_EVENTS permission to an app for dev/testing purposes

我正在开发一个安装到 system/app 中的应用程序(apk 被交付给包含在系统映像中的 phone 制造商)。

我想执行一些需要向应用程序添加 INJECT_EVENTS 权限的概念验证实验。 AFAIK,为了让应用程序获得此权限 a) 它需要是系统应用程序并且 b) 它需要使用系统证书进行签名。

a) 没问题,因为这是应用程序最终会去的地方,而且我也在使用已获得 root 权限的设备。

但是我没有b)的系统证书。

为了在应用程序交付给 phone 制造商之前对其进行开发和测试,我有没有办法向应用程序授予此权限?

adb shell pm grant "app package" android.permission.INJECT_EVENTS 结果:

Operation not allowed: java.lang.SecurityException: Permission android.permission.INJECT_EVENTS is not a changeable permission type

adb shell 不是 SU 用户。使用 RunTime 将 shell 命令作为 SU 注入。使用任何工具授予你SU权限,然后执行你的命令

Process suProcess = Runtime.getRuntime().exec("su pm grant 'app package' android.permission.INJECT_EVENTS");
suProcess.waitFor();

转到开发人员选项和 USB 调试(安全设置)...INJECT_EVENTS 错误将得到解决