14

Background

TeamViewer allows to remote control other android devices . it's quite slow, but it does the job.

it requires 2 apps being installed. one that controls (link here), and one for being controlled (link here) .

I'm not sure if it has any alternatives, but I would like to know if it's possible to do the same.

The problem

I can't find any special permission used by teamViewer, and it does it all without root.

This is weird, since I've read on so many places that in order for an app to take a screenshot, it must have root permission (or be connected to a computer and use ADB to take a screenshot).

The question

How could it be? What does TeamViewer has that makes it possible?

How can you take a screenshot without any special permission? This app isn't even a system app...

is it even possible to do any of the things TeamViewer does without root?

Are there alternatives to TeamViewer?

Suppose I do have root, how do I remote control or stream screenshots efficiently?

android developer
  • 114,585
  • 152
  • 739
  • 1,270
  • 3
    http://stackoverflow.com/questions/12462944/how-to-take-a-screenshot-of-other-app-programmatically-without-root-permission?rq=1 Good read! – petey Jul 30 '13 at 19:11
  • you mean this one : http://stackoverflow.com/a/14718588/878126 ? so how does teamViewer work? have they talked with all manufacturers and they have direct access to their drivers or something? – android developer Jul 30 '13 at 19:41

1 Answers1

9

Teamviewer does NOT support taking screenshots or remote control without root. The only Android devices it does manage to pull this off is on Samsung devices

Update 2019 June: Now it supports a slew of different Android OEMs beyond Samsung. Notably, Google itself is absent (So no remote control on Pixel series, just screensharing)

This Teamviewer press release shows how it's done. It basically installs this Samsung specific addon from the Play Store. As a background, Samsung got this working to counter Amazon's Kindle Fire's new feature called Mayday. Technically, Samsung basically gave Teamviewer a bunch of special pseudo-root-level certificates and signatures so the app can work seamlessly for everyone (by having draw-over-other-apps and make-interactions-on-users-behalf access via the Accessibility APIs presumably).

This is how it looks on non-Samsung non-rooted devices [left] and how it asks for Super User access on non-Samsung rooted devices [right] (Click through for original resolution):

Teamviewer Quicksupport asking for screenshots from end user Teamviewer Quicksupport asking for screenshots from end user

MyPreciousss
  • 186
  • 2
  • 10
  • interesting. so you say teamviewer works fine only on samsung devices and rooted devices? i wonder, then, how does the remote controlling (and not just the screenshot part) work for non-root devices ? – android developer Dec 05 '13 at 07:36
  • It doesn't. On non-rooted, non-Samsung devices it cannot perform remote control. It can ask for screenshots (like in the first screenshot) and can show the controller the list of WiFi networks, running apps and Disk Space utilization stats. Go ahead, try it out. – MyPreciousss Dec 05 '13 at 17:50
  • So it works well only for samsung devices, since samsung gave the right drivers and permissions ? how does the "monkey" tool of google work? is it only for emulators? maybe it could be added to real, rooted devices? – android developer Dec 05 '13 at 18:42
  • The [monkey](https://developer.android.com/tools/help/monkey.html) tool works on the emulator as well as the device too, but only via the ADB. And ADB, again, has special access to the device. And IIRC the device has to be connected via USB for ADB to work. So not really _remote_ then. – MyPreciousss Dec 05 '13 at 23:56
  • wait, so if the monkey tool is available via adb, and you can run adb via java, then it should be possible to simulate touches via an app , right? – android developer Dec 06 '13 at 09:16
  • ADB runs via java but not on the phone. It runs only on the computer. To simulate an app to control other app requires root access on the phone – MyPreciousss Dec 08 '13 at 00:06
  • ok, so if i have root, and run ADB via java, i could simulate real touches and all? – android developer Dec 08 '13 at 06:22
  • You might. I'm not an expert at this and it seems we're digressing. The ADB comments might be worth a separate SO Question. – MyPreciousss Dec 08 '13 at 19:02
  • interesting. i've posted a new question on this here : http://stackoverflow.com/questions/20457982/how-to-record-touches-and-emulate-them-later-on-real-devices-with-root-if-neede – android developer Dec 08 '13 at 19:32
  • Dear OP: +1. Please note that you can cause the images to be displayed smaller by a) replacing the Markdown image tags with ordinary HTML tags then b) setting the height and width in the usual way. – unforgettableidSupportsMonica Dec 11 '13 at 06:10
  • 2
    I've found a TeamViewer HTC Add-on in the Play Store and it basically does the same thing. WITHOUT root I managed to control my phone with a TeamViewer. – vincent163 Sep 25 '16 at 08:08