Remote ADB Shell — це термінальна програма, яка дозволяє підключатися до служби оболонки ADB інших пристроїв Android через мережу та виконувати команди терміналу. Це може бути корисно для віддаленого налагодження пристроїв Android (запуск таких інструментів, як top, logcat або dumpsys). Він підтримує кілька одночасних підключень до різних пристроїв і підтримує ці з’єднання, навіть коли програма працює у фоновому режимі. Для цієї програми не потрібен root на жодному пристрої, але root може бути корисним для налаштування цільових пристроїв. Якщо цільові пристрої не мають root-права, ви повинні використовувати комп’ютер із Android SDK і драйверами USB Google, щоб налаштувати їх (докладніше описано нижче).
Ця програма являє собою обгортку навколо оболонки, яка відкривається через ADB. Він підтримує історію команд з 15, доступ до якої можна отримати за допомогою довгого натискання на вікно команди. Тривале натискання на сам дисплей терміналу дасть можливість відправити Ctrl+C, перемкнути автоматичне прокручування або вийти з терміналу.
Це працює точно так само, як команда «adb shell» працює на комп’ютері. Оскільки ця програма використовує власну реалізацію протоколу ADB в Java, вона не вимагає root на будь-якому пристрої або будь-яких сторонніх програмах на цільовому пристрої. Пристрої просто розмовляють один з одним за тим самим протоколом, що й на комп’ютері з клієнтом ADB із Android SDK.
ВАЖЛИВО. Пристрої з ОС Android 4.2.2 і новіших версій використовують ключі RSA для автентифікації з’єднання ADB. У моєму тестуванні пристрої з версією 4.2.2 потрібно буде підключити до комп’ютера під час першого підключення (з кожного пристрою, на якому встановлено цю програму). Це дозволяє їм відображати діалогове вікно прийняття відкритого ключа, яке ви повинні прийняти (і встановити прапорець «Завжди дозволяти з цього комп’ютера»). Пристрої під керуванням Android 4.3 та 4.4, здається, не мають проблем з відображенням діалогового вікна без підключення до комп’ютера, тому схоже, що це обхідний шлях, характерний для Android 4.2.2.
Щоб налаштувати звичайну некореневу ціль, підключіть цільовий пристрій до комп’ютера, на якому встановлено Android SDK, і запустіть «adb tcpip 5555» з папки інструментів платформи Android SDK. Це почне прослуховування ADB порту 5555 на цільовому пристрої. Після цього пристрій можна від’єднати від мережі, і він залишиться налаштованим належним чином до перезавантаження.
Для пристроїв, які мають root-права (хоча це не обов’язково), ви можете встановити одну з кількох програм «ADB WiFi», щоб дозволити серверу ADB слухати через мережу. Пристрої зі спеціальним ПЗУ можуть мати можливість увімкнути ADB через мережу на панелі параметрів розробника налаштувань. Використання будь-якого з цих методів дозволить належним чином налаштувати ADB для доступу до мережі за допомогою цієї програми. Для початкового підключення все ще потрібен додатковий крок для версії 4.2.2.
Щоб підключитися до віддаленого пристрою Android, введіть IP-адресу пристрою та номер порту (5555 з прикладу вище) у Remote ADB Shell. Торкніться «Підключити», і він спробує підключитися до пристрою та запустити термінал.
Розробники: спеціальна бібліотека Java ADB, яку я написав для цієї програми, є відкритим вихідним кодом за ліцензією BSD на https://github.com/cgutman/AdbLib
Джерело для цієї програми доступне за ліцензією Apache: https:// github.com/cgutman/RemoteAdbShell