gpt4 book ai didi

Android INJECT_EVENTS 权限

转载 作者:IT王子 更新时间:2023-10-29 00:00:09 37 4
gpt4 key购买 nike

我正在尝试创建一个应用程序,该应用程序将在后台运行一项服务,该服务能够将触摸屏事件注入(inject)到正在运行的任何 Activity 中。我可以通过调用 Instrumentation.sendPointerSync(motionEvent); 将事件注入(inject)到属于我的应用程序一部分的 Activity 中。但是,如果我在没有运行应用程序的 Activity 的情况下尝试执行此操作,我会收到一个权限错误,指出我没有 INJECT_EVENTS 权限。我已将此权限添加到我的 list 中,如下所示:<uses-permission android:name="android.permission.INJECT_EVENTS"></uses-permission>它仍然抛出相同的权限异常。经过一番搜索,我得到了答案,为了获得 INJECT_EVENTS 权限,您的应用程序必须使用与系统签名相同的签名。但是我不清楚这到底意味着什么。我将不得不找到一个自定义 rom 构建它并使用与应用程序签名相同的签名对其进行签名。然后在我的设备上安装自定义 rom,然后安装我的应用程序,我就可以正确注入(inject)触摸事件了?如果是这种情况,我最好从一个已经放在一起的自定义 rom 开始,比如一个 from this page还是我需要获取 android 项目的 git 副本并构建整个 myslef 的情况?无论哪种方式,有没有人知道你可以指出一个地方,让我朝着正确的方向努力以实现这一目标?

最佳答案

要将事件注入(inject)到一个单独的进程中,需要将您的应用程序安装到/system/app 并使用签名您的 APK系统证书。

1。向应用 list 添加权限

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

2。使用系统证书为您的 APK 签名

这需要您拥有 AOSP 源才能使用用于构建在手机上运行的系统的 google key 构建 keystore 。

鉴于您有一个 AOSP 目录,@Eli 出色地展示了如何使用名为“keytool-importkeypair”的漂亮脚本构建 keystore

以 IntelliJ 为例,从 Build 菜单中选择 Generate Signed APK..。找到上面创建的 keystore ,输入给定的密码(例如,android),如果需要,为 key 提供相同的密码。请注意,签名的 apk 被写入项目根目录 (!) 而不是典型位置 (./out/production//)。

3。安装到/system/app/

adb root
adb remount
adb push MyApp.apk /system/app

“安装”会自动进行。但是请注意,与正常的应用安装过程不同,您的 APK 中的任何 native 库不会复制到/system/lib/。如果您使用 NDK 构建和调用您自己的本地库,则需要手动执行此操作。

关于Android INJECT_EVENTS 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5383401/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com