我知道这不是关于此权限的第一个主题,但是其他主题没有完成或者没有帮助我。
我需要的是使用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
注入命令需要很长时间,并且需要SuperUser。我很乐意使用Instrumentation做到这一点,或者我还应该尝试其他的东西吗?
固件不是我写的,所以我没有平台密钥。
感谢您的帮助!
编辑:获得平台密钥(开发人员使用普通的Google密钥),签名并对齐,然后将apk推送到/ system / app。还在我的清单中添加了android:sharedUserId="android.uid.system"
。在启动时,不再有logcat消息。但是,当我想发送keysync时,我仍然会抓住SecurityException
。有什么想法吗?
EDIT2:以下是ps
的摘录。似乎包没有列为系统
u0_a108 5241 2399 492044 48968 ffffffff 40113ab0 S com.mypackage
答案 0 :(得分:3)
好的,我得到了正确的平台键,它现在就像一个魅力!我使用http://forum.xda-developers.com/showthread.php?t=1125626签名 并用
替换(重命名为sign .... to testkey ....)signare文件夹中的testkeyssignapk-key.platform.x509.pem
signapk-key.platform.pk8
(谷歌为他们)
还要确保zipalign然后复制到/ system / app。正常方式安装.apk NOT ,因为它被标记为系统应用程序。