📟 Доступ к adb из termux с телефона

Пару раз в год бывает необходимо какой-нибудь крутой программке выдать permissions, которые не получится найти в настройках. Делается это обычно через adb, командой вроде pm grant com.pittvandewitt.wavelet android.permission.DUMP. Можно, конечно, и до дома потерпеть, а потом шнурком подключиться и сделать что надо, но в случае с очень крутым эквалайзером Wavelet мне ждать не хотелось вовсе и я захотел выдать все разрешения на ходу.

Для начала стоит сказать, что существует несколько платных решений из Google Play Store, но они все в основном работали на предыдущих версиях Android, где доступы к системным функциям ещё не успели ограничить, сейчас даже Android Terminal работать не будет. В целом же вся функциональность этих программ сводится к одному: сделать adb connect и предоставить пользователю доступ к оболочке. Почесав репу, я совершенно внезапно вспомнил, что с появлением на моём телефоне Termux я практически полностью перестал пользоваться файловыми менеджерами и архиваторами: через консольку было попросту привычнее и удобнее. Так почему бы и не воспользоваться консольно-нативным adb?

Как оказалось, в репозитории termux уже есть нужный пакет, называется android-tools. Дело остаётся за малым: настроить подключение и зайти в шелл. Первым камнем преткновения оказалась сеть. Для доступа к Wireless Debugging андроиду нужен Wi-Fi, автономно эта штука работать не будет. Ну ок,подключились.

Далее я споткнулся об adb connect: в 11 андроиде просто так эта строка с хостом и портом работать не будет, нужен предварительный pairing. Делается он через тот же самый пункт меню, где включается Wireless Debugging(Pair device with pairing code); хитрость состоит в том, что адрес и код для спаривания доступны только кратковременно в небольшом окошке, если переключиться на Termux, адрес станет невалидным. Ну ладно, и это можно обойти: в андроиде из коробки есть split screen mode.

Итак, код получен, можно приступать к pairing: adb pair <host>:<port> (хост и порт указываем временные, из окошка), далее вбиваем пин-код. Если всё получилось, можно приступать к следующему шагу: adb connect <host>:<port> (здесь уже указываем то, что получили изначально в настройках Wireless debugging). И уже после этого можно нажать в термуксе заветный adb shell.

Вот и всё. Happy hacking!

Tue, 19 Oct 2021 18:02:59 +0200


RSS // Telegram // Статистика