我知道这不是关于此权限的第一个线程,但是其他的还没有完成或不帮助我。
我需要的是使用 Instrumentation 为 KeyEvents 充气。这很好用,而且比 shell(“input keyevent”)方法快得多。但如果我想注入其他应用程序,我会捕获一个 SecurityException。这并没有让我感到惊讶,所以我添加<uses-permission android:name="android.permission.INJECT_EVENTS" />
到我的清单中。Eclipse 停止调试,告诉我只有系统应用程序才能使用此权限。所以我使用签名的 apk 工具编译并将该 apk 推送到 /system/app。重新启动,你猜怎么着
W/PackageManager( 3499): Not granting permission android.permission.INJECT_EVENTS to package com.<....> (protectionLevel=2 flags=0x8be45)
该应用程序仅针对一种特殊设备。所以我知道所有的规格,它是植根的。但是 su
注入命令需要很长时间并且需要超级用户。我很想用 Instrumentation 来做到这一点,或者我应该尝试其他什么?
固件不是我写的,所以我没有平台密钥。
谢谢你的帮助!
编辑:获得平台密钥(开发人员使用普通的谷歌密钥),签名并对齐,然后将 apk 推送到 /system/app. 也添加android:sharedUserId="android.uid.system"
到我的清单中。在启动时不再有 logcat 消息。但是,当我想发送 keysync 时,我仍然会收到SecurityException
. 有任何想法吗?
EDIT2:这是摘录自ps
. 似乎该软件包未列为系统
u0_a108 5241 2399 492044 48968 ffffffff 40113ab0 S com.mypackage