vysor如何在非root设备上创建触摸事件?

时间:2015-10-05 17:46:08

标签: android touch android-source

这是Vousor by Koushik Dutta的链接 - https://chrome.google.com/webstore/detail/vysor-beta/gidgenkbbabolejbgbpnhbimgjbffefm

它可让您通过PC控制Android设备。 然而,有一件事让我感到困惑,因为很长一段时间它就能在手机上创建触摸事件,即使它没有根据也是如此。

在对应用程序和chrome扩展程序进行一些修补之后,我意识到他使用以下方式创建了一个单独的进程 -

if welcome.lower() in ('hello', 'hey', 'hej'):

sh -c "CLASSPATH=/data/app/com.koushikdutta.vysor-1/base.apk /system/bin/app_process32 /system/bin com.koushikdutta.vysor.Main" 类包含通过反射将触摸事件传递给框架的代码。

上面的代码将Main类作为一个单独的进程执行,当执行该进程的用户有Main时。

据我所知,在您自己的应用之外创建触摸事件的唯一方法是,如果您是root用户。

有没有人对此有任何想法?

1 个答案:

答案 0 :(得分:11)

我已经明白了。

问题是shell用户也可以在整个屏幕上创建触摸事件。当您从PC上adb shell进行操作时,通过USB线连接手机,系统会自动为用户分配shell

他所做的是,然后他使用此Main用户作为单独的进程启动他的shell课程。现在,Main类中的Java代码具有与shell用户相同的权限(因为duh,它的linux)。

并且,在该课程中,他使用反射将触摸事件传递给Android框架。然后,框架会自动将触摸事件传播到窗口。

看一下我在自己的应用中实施的这两个课程 - Main.javaEventInput.java

但请记住,由于此Main类必须在单独的进程中运行,因此无法访问捆绑它的应用程序的内存。为此,我必须使用套接字机制来传输数据。甚至可以使用aidl。

相关问题