Android INJECT_EVENTS权限 (Android 13)

Android INJECT_EVENTS permission (Android 13)

提问人:kishan verma 提问时间:3/24/2023 最后编辑:kishan verma 更新时间:3/27/2023 访问量:1774

问:

我在尝试启动触摸事件时遇到问题

java.lang.SecurityException:注入输入事件需要调用方(或检测源,如果有)具有INJECT_EVENTS权限。

public static void injectEvent(MotionEvent e) {
        Instrumentation m_Instrumentation = new Instrumentation();
        m_Instrumentation.sendPointerSync(e); // getting exception here
    }

尝试签名 APK

android-studio 事件 android-permissions 注入

评论


答:

0赞 Dinux 3/24/2023 #1

您需要在清单文件中添加INJECT_EVENTS权限才能对 apk 进行签名。将以下权限添加到清单文件:

<uses-permission android:name="android.permission.INJECT_EVENTS"/>

然后,您必须使用与系统签名相同的签名来签署您的apk。

您必须运行您的应用程序,以便它获得对权限的访问权限。为此,请在模拟器终端中运行以下命令:/system

su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
cp /sdcard/APP.apk /system/app

如果要使用 adb,请执行以下操作:

adb remount
adb shell cp /sdcard/APP.apk /system/app

要执行上述操作,您的设备需要扎根。什么是有根设备?

要根植您的设备:生根设备

评论

0赞 kishan verma 3/24/2023
已经添加,这不起作用。
1赞 Dinux 3/24/2023
您是否使用系统签名对 apk 进行了签名?
0赞 kishan verma 3/24/2023
如何做到这一点?你是要我做一个签名的apk吗?
0赞 Dinux 3/24/2023
系统签名位于目录<android-source-tree>/build/target/product/security。您可以使用它们通过系统权限对应用程序进行签名。
1赞 Dinux 3/27/2023
根据谷歌的说法,只有系统应用程序被授予INJECT_EVENTS权限。第三方应用无法使用此权限。因此,您必须使您的应用程序成为系统应用程序,为此您必须根植您的设备。
1赞 Dinux 3/30/2023
权限阅读链接中的“签名权限”和“特殊权限”部分。