V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liyafe1997
V2EX  ›  Android

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

  •  
  •   liyafe1997 · 2018-12-22 15:04:48 +08:00 · 11789 次点击
    这是一个创建于 2166 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原来在 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 插件?

    7 条回复    2018-12-23 09:35:11 +08:00
    diggerdu
        1
    diggerdu  
       2018-12-22 16:52:23 +08:00 via iPhone
    有点意思 好奇
    Cherish9527
        2
    Cherish9527  
       2018-12-22 16:55:40 +08:00
    这么一说 的确有点好奇
    orsweet
        3
    orsweet  
       2018-12-22 17:01:58 +08:00 via Android
    和厂家有 py 交易,到现在也没有小米可用的插件。
    nicevar
        4
    nicevar  
       2018-12-22 17:07:09 +08:00
    我记得官方说过的,是需要与厂商合作,否则只要 teamviewer 能做,其他的也能做
    UIXX
        5
    UIXX  
       2018-12-22 17:12:50 +08:00
    跟合作厂商协议->编写相应品牌的插件->插件接入底层使用高级权限(可以理解为 PY 交易)
    yrom
        6
    yrom  
       2018-12-23 00:13:52 +08:00
    理论上,如果你的程序能获得权限直接访问 /dev/input/eventX,比如通过 adb shell 这个命令执行你的程序,就可以通过 libevdev 找到屏幕设备并向它发各种事件
    aborigine
        7
    aborigine  
       2018-12-23 09:35:11 +08:00 via iPhone
    没有 py 交易的就不能控制,比如 pixel 之类的,据说 google 不鸟他们,在 teamviewer 论坛看到过
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3696 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 00:50 · PVG 08:50 · LAX 16:50 · JFK 19:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.