В прошлом, если вы хотели изменить привязку с Linux на Android, вам приходилось использовать IP-таблицы, мостовые соединения и другие чрезмерно сложные инструменты. Однако благодаря кропотливой работе разработчика обратная привязка стала проще.
Представляем Gniretet! Это экспериментальная программа, которая работает в качестве фоновой службы для создания работающей системы обратного подключения USB, позволяющей переключать привязку с Linux на Android.
Примечание: прежде чем пытаться следовать этому руководству, убедитесь, что ваше устройство Android имеет root-доступ. Без рут-доступа многие операции, необходимые Gniretet, не будут работать правильно.
Получить root-доступ на Android стало проще, чем когда-либо, и для многих устройств есть подробные пошаговые инструкции. Посетите форумы XDA для получения дополнительной информации.
Оглавление
Установить инструменты Android
Обратный модем с GNirehtet работает благодаря инструментам разработки Android. Прежде чем продолжить работу с этим руководством, вы должны установить его в Linux. К счастью, большинство дистрибутивов Linux упрощают этот процесс. Откройте терминал и следуйте инструкциям в зависимости от вашей операционной системы.
Ubuntu
sudo apt install android-tools
Debian
sudo apt-get install android-tools
Arch Linux
sudo pacman -S android-tools
Fedora
sudo dnf install android-tools
OpenSUSE
sudo zypper in android-tools
Общий Linux
Google очень хорошо поддерживает платформу Linux, и в результате доступен набор инструментов Android SDK. Чтобы установить его в вашей операционной системе, перейти на официальную страницу. Распакуйте скачанный архив и следуйте инструкциям внутри!
Установить Gnirehtet
Gnirehtet доступен на Github. Исходный код доступен для скачивания и готов к компиляции. Однако гораздо проще просто перейти на страницу выпуска и загрузить предварительно скомпилированную версию программного обеспечения. На странице релиза есть версия для Java и версия для Rust. Для простоты использования мы рекомендуем скачать версию Rust, так как она не требует установки Java Runtime Environment.
Примечание: решили использовать версию Java? Вам нужно будет установить Среда выполнения Java в Linux.
Чтобы загрузить последнюю версию Gnirehtet, откройте терминал и используйте инструмент wget.
wget https://github.com/Genymobile/gnirehtet/releases/download/v2.2.1/gnirehtet-rust-linux64-v2.2.1.zip
Вы также можете загрузить версию Java с:
wget https://github.com/Genymobile/gnirehtet/releases/download/v2.2.1/gnirehtet-java-v2.2.1.zip
После загрузки Gnirehtet используйте инструмент распаковки, чтобы извлечь содержимое Zip-архива.
unzip gnirehtet-rust-linux64-v2.2.1.zip
или же
unzip gnirehtet-java-v2.2.1.zip
Откройте файловый менеджер, перейдите в папку «Gnirehtet». Скопируйте файл gnirehtet.apk на свое устройство Android и установите его.
Откройте терминал и используйте команду CD, чтобы перейти в извлеченную папку Gnirehtet.
cd ~/gnirehtet-*
Настройте Android для модема
Инструмент Gnirehtet не будет работать без некоторых настроек операционной системы Android. Начните с открытия «Настройки». Перейдите в «О телефоне» и нажимайте номер сборки, пока не появится уведомление с надписью «Теперь вы разработчик».
Перейдите к параметрам разработчика, найдите отладку «USB» и включите ее.
Откройте терминал и запустите сервер Adb.
su -
или же
sudo -s
adb start server
Разблокируйте свое устройство Android и установите флажок, чтобы «всегда принимать» подключения ADB. Затем вернитесь к терминалу, на котором запущен сервер ADB, и убейте его.
adb kill-server
Использование Gnirehtet
Gnirehtet работает, создавая соединение между вашим ПК с Linux и устройством Android через USB. Чтобы начать соединение, откройте терминал и получите корневую оболочку.
su -
или же
sudo -s
С помощью корневой оболочки приложение Gnirehtet может без проблем работать с системой Linux и обмениваться данными через ADB с устройством Android. На этом этапе запустите соединение:
./gnirehtet autorun
После запуска соединения с Gnirehtet на вашем устройстве Android появится новое приглашение для подключения к VPN. Разблокируйте его и примите соединение.
После принятия VPN-соединения Gnirehtet успешно начнет маршрутизацию интернет-соединения через USB прямо на устройство Android.
Повторное подключение
Иногда USB-кабели отключаются. В случае, если это произойдет во время работы службы Gnirehtet, соединение будет разорвано. К счастью, в программе есть функция, которую пользователи могут запустить, чтобы мгновенно восстановить потерянное соединение.
Чтобы восстановить соединение, откройте терминал, получите корневую оболочку с помощью su или запустите с помощью sudo.
cd ~/gnirehtet-*
Внутри папки Gnirehtet запустите программу с флагом перезапуска. Это перезапустит систему обратного модема.
sudo ./gnirehtet restart
Когда выполнение команды завершится, разблокируйте устройство Android и повторно примите VPN-соединение, чтобы завершить процесс перезапуска.
Остановить соединение
Обратный привязь можно отключить в любой момент. Для этого откройте новый терминал (оставьте существующий, на котором установлено соединение, открытым), и выполните следующие действия:
cd ~/gnirehtet-* sudo ./gnirehtet stop
Иногда выполнение команды остановки не всегда прерывает соединение обратного троса. Если это произойдет, вам нужно заставить Gnirehtet выйти.
Чтобы убить Gnirehtet, найдите идентификатор процесса с помощью pidof, затем остановите программу с помощью команды kill.
pidof ./gnirehtet sudo kill -9 processnumber