Запуск Java-кода с привилегиями shell

Запуск Java кода с привилегиями shell

Introducing scrcpy — статья об утилите scrcpy, позволяющей в одну команду получить на экране ПК картинку с экрана телефона, с возможностью управления с помощью мыши и клавиатуры. Однако интересна статья не этим, а тем, что рассказывает, как эта утилита работает.

Рекомендуем к прочтению: Создание биткойн-майнера на Java

Чтобы получить картинку с экрана, scrcpy должна загрузить на смартфон и выполнить с правами adb shell код, который запустит процесс скринкастинга экрана и передачи видеопотока на комп. И утилита делает это весьма интересным образом. Код, запускаемый на смартфоне, написан на Java, но это не приложение для Android, а просто запакованный в jar файл DEX.

Разработчик scrcpy объясняет, как сделать такое «неприложение».

  1. Пишем приложение на Java (пример простейший):
  2. Собираем приложение:
  3. Перегоняем его в DEX:
  4. Запаковываем в jar:
  5. Закидываем на устройство и запускаем:

Вуаля, мы получили приложение, которое нет необходимости устанавливать и которое имеет права shell, то есть может выполнять многие привилегированные действия, недоступные обычным приложениям (signature level permission): бэкап, скринкастинг, снятие скриншотов, установку и удаление приложений.

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Пока оценок нет)
Загрузка...
Понравилась статья? Поделиться с друзьями:
Комментариев: 1
Добавить комментарий