Android 上的 Teamviewer Host 是如何实现控制的?

2018-12-22 15:04:48 +08:00
 liyafe1997

原来在 Android 上如果要实现控制(即模拟点击),需要 root 权限。似乎是从 Android5.0 还是哪个版本开始,Accessibility API 也能实现模拟点击了。 因此现有的能够模拟点击的 Android 程序,要么要求 Root 权限(比如 HiroMacro,一个类似于按键精灵的 App,可以录制屏幕点击然后“重放”),还有向日葵远程控制。 要么要求启用 Accessibility Service,比如 alpha vnc (一个 VNC Server for Android,如果要开启控制支持就要启用 Accessibility Service,ViewOnly 则不用),比如 Auto.js (类似按键精灵,模拟点击操作那些也是通过 Accessibility API 实现的)。

但是,Teamviewer 似乎两者都不需要,而且记得从 Android 2.x 那个时代就支持控制了,无需 root,但是要针对不同的手机品牌下载一个插件(也是一个普通的 APK,无需特殊权限)。

那么神奇的问题就来了,Teamviewer 到底是通过什么途经实现模拟点击的呢?是挖出了不同厂商系统的漏洞,用漏洞来实现?可是一个厂家有千万种型号,解决方案系统版本什么都不一样(比如有 MTK 的有高通的)。 或者是 Teamviewer 跟这些手机厂家都有 py 交易开后门?然后根据不同厂家得到的后门专门编写一个 apk 插件?

7685 次点击
所在节点    Android
7 条回复
diggerdu
2018-12-22 16:52:23 +08:00
有点意思 好奇
Cherish9527
2018-12-22 16:55:40 +08:00
这么一说 的确有点好奇
orsweet
2018-12-22 17:01:58 +08:00
和厂家有 py 交易,到现在也没有小米可用的插件。
nicevar
2018-12-22 17:07:09 +08:00
我记得官方说过的,是需要与厂商合作,否则只要 teamviewer 能做,其他的也能做
UIXX
2018-12-22 17:12:50 +08:00
跟合作厂商协议->编写相应品牌的插件->插件接入底层使用高级权限(可以理解为 PY 交易)
yrom
2018-12-23 00:13:52 +08:00
理论上,如果你的程序能获得权限直接访问 /dev/input/eventX,比如通过 adb shell 这个命令执行你的程序,就可以通过 libevdev 找到屏幕设备并向它发各种事件
aborigine
2018-12-23 09:35:11 +08:00
没有 py 交易的就不能控制,比如 pixel 之类的,据说 google 不鸟他们,在 teamviewer 论坛看到过

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520002

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX