【问题标题】:Permission: INJECT_EVENTS for Instrumenation to other apps权限:INJECT_EVENTS 用于仪表到其他应用程序
【发布时间】:2013-01-02 20:53:33
【问题描述】:

我知道这不是关于此权限的第一个线程,但是其他的没有完成或不帮助我。

我需要的是使用 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 injection-commands 需要很长时间并且需要 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

【问题讨论】:

    标签: android permissions code-injection keyevent


    【解决方案1】:

    更新

    使用位于here的signtool,然后继续read on in my blog.

    好的,我得到了正确的平台键,它现在就像一个魅力!我使用http://forum.xda-developers.com/showthread.php?t=1125626 签名 并将signare文件夹中的testkeys替换为(将sign....重命名为testkey....)

    signapk-key.platform.x509.pem
    signapk-key.platform.pk8
    

    (谷歌为他们)

    还要确保 zipalign 然后复制到 /system/app。以正常方式安装 .apk 是不可能,因为它被标记为系统应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 2023-02-04
      相关资源
      最近更新 更多