Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在根设备上插入\u事件权限_Android_Permissions_Instrumentation_Vnc - Fatal编程技术网

Android 在根设备上插入\u事件权限

Android 在根设备上插入\u事件权限,android,permissions,instrumentation,vnc,Android,Permissions,Instrumentation,Vnc,我试图在我的应用程序中实现一种vnc(基于oNaiPs的droid vnc服务器)。由于鼠标事件不适用于我的设备,我正在尝试以下操作:从本机vnc帧缓冲区服务器发送数据报,在服务中捕获它们,并使用指令插入的发送点同步。这就是需要许可的地方。 我听说,如果使用Root explorer、chmod和reset将.apk推到/system/app,您可以获得所需的所有权限,但在我的情况下,这不起作用,我仍然获得SecurityException。我还尝试手动编辑/data/system/packag

我试图在我的应用程序中实现一种vnc(基于oNaiPs的droid vnc服务器)。由于鼠标事件不适用于我的设备,我正在尝试以下操作:从本机vnc帧缓冲区服务器发送数据报,在
服务中捕获它们,并使用
指令插入
发送点同步
。这就是需要许可的地方。
我听说,如果使用Root explorer、chmod和reset将.apk推到
/system/app
,您可以获得所需的所有权限,但在我的情况下,这不起作用,我仍然获得
SecurityException
。我还尝试手动编辑
/data/system/packages.xml
文件

是否有其他方法获得许可(可能会降低其安全级别?因为我只需要此应用程序在我的设备上工作),或者可能有其他方法来完成我尝试完成的任务


谢谢

您是否在清单中添加了INJECT\u事件使用权限。

因此,经过几天的谷歌搜索和研究,我发现没有办法做到这一点(当然,除了创建自己的android版本以获取系统签名等显然不可能的事情),并设计了一种解决方法:vnc服务器(从代码> Droid VNC Server < /Cord> V.0.72)打开一个套接字并将所有指针事件写入它(类型和坐标);然后有一个服务从这个套接字读取并通过多个<代码> SunDeunt< /Cord>命令注入事件(我也可以从本地代码来执行它,但是由于我吸取了C++,所以我决定不去费心了).


这很好(令人惊讶!),但我并不完全满意,因为在不同的设备上有不同的常量(例如,事件类型、最小值和最大值等),我必须从
getevent-p
解析它们,或者指定一个配置文件。

那么您可能搜索得不够。是的,很遗憾Android默认不提供,但这并不意味着它不可行

唯一的问题是你需要根。因此,如果您有root用户,则可以将/dev/input/eventX文件的权限更改为可写

如果文件是可写的,则可以通过直接写入输入事件节点,将自定义按键和触摸事件注入任何应用程序

我已经编写了一个小型库,可以在这里以开源方式获得:


它只是这样做的:自动chmod设置输入dev的权限,并使用JNI连接本机文件。然后它公开了一个简单的Java接口,可以在Android项目中使用。

当然可以。我检查了一下,在我按下system/app并重置之后,启动时它仍然拒绝我的权限:`W/PackageManager(115):不授予权限android.permission.INJECT_EVENTS to package com.vnc.test(protectionLevel=2 flags=0xbe47)`此权限不是常规类型,因此将其添加到清单中几乎没有效果。要获得此工作许可,必须使用系统证书签署apk。不适用于普通开发人员,仅适用于平台制造商。