Как TeamViewer делает скриншоты и разрешает дистанционное управление без root?

Фон

TeamViewer позволяет удаленно управлять другими устройствами Android. он довольно медленный, но он выполняет эту работу.

для этого требуется установка 2 приложений. который управляет (ссылка здесь) и один для контроля (ссылка здесь).

Я не уверен, есть ли у него какие-либо альтернативы, но я хотел бы знать, можно ли сделать то же самое.

Проблема

Я не могу найти какое-либо специальное разрешение, используемое командой TeamViewer, и делает все это без root.

Это странно, так как я читал на многих местах, чтобы приложение могло сделать снимок экрана, оно должно иметь права на root (или быть подключенным к компьютеру и использовать ADB для снятия снимка экрана).

Вопрос

Как это могло быть? Что делает TeamViewer, что делает возможным?

Как вы можете сделать снимок экрана без специального разрешения? Это приложение даже не является системным приложением...

можно ли вообще делать какие-либо действия TeamViewer без root?

Есть ли альтернативы TeamViewer?

Предположим, что у меня есть root, как эффективно удалять удаленные элементы управления или потоковые снимки?

Ответ 1

Teamviewer НЕ поддерживает создание скриншотов или удаленное управление без рута. Единственные устройства Android, которым это удается, - на устройствах Samsung.

Обновление 2019, июнь: теперь он поддерживает множество различных производителей Android, помимо Samsung. Примечательно, что сам Google отсутствует (так что в серии Pixel нет пульта дистанционного управления, только разделение экрана)

Этот пресс-релиз Teamviewer показывает, как это было сделано. Это в основном устанавливает этот специфический для Samsung аддон из Play Store. В качестве фона, Samsung получил эту работу, чтобы противостоять Amazon Kindle Fire новую функцию под названием Mayday. Технически Samsung в основном предоставил Teamviewer набор специальных сертификатов и подписей псевдо-корневого уровня, чтобы приложение могло беспрепятственно работать для всех (благодаря доступу "рисовать поверх других приложений" и "делать взаимодействия с пользователями" через Accessibility). API по-видимому).

Вот как это выглядит на устройствах без прав доступа не-Samsung [слева] и как он запрашивает доступ суперпользователя на устройствах не-root [справа] (нажмите для просмотра оригинального разрешения):

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