Этот проект обеспечивает обратную модемную связь через adb
для Android: он позволяет устройствам использовать подключение к Интернету компьютера, к которому они подключены. Для этого не требуется никакого root- доступа (ни на устройстве, ни на компьютере). Он работает в GNU/Linux , Windows и Mac OS .
В настоящее время он передает TCP и UDP через трафик IPv4, но не поддерживает IPv6 (пока?).
Этот проект больше не поддерживается активно, устраняются только основные блокирующие факторы (например, проблемы со сборкой). Однако это все равно должно работать.
Доступны две реализации Gnirehtet :
Используйте реализацию Rust . Собственный двоичный файл потребляет меньше ресурсов ЦП и памяти и не требует среды выполнения Java .
Ретрансляционный сервер Гниретета изначально был реализован только на Java. Преимущество заключается в том, что один и тот же «двоичный файл» работает на каждой платформе, на которой установлена среда выполнения Java 8 . Он по-прежнему поддерживается в качестве рабочей альтернативы в случае проблем с версией Rust.
Для приложения Android требуется API версии не ниже 21 (Android 5.0).
Только для версии Java на вашем компьютере требуется Java 8 (JRE). В дистрибутивах на основе Debian установите пакет openjdk-8-jre
.
Вам нужна последняя версия adb (где реализован adb reverse
, работает с 1.0.36).
Он доступен в инструментах платформы Android SDK.
В дистрибутивах на основе Debian вы также можете установить пакет android-tools-adb
.
В Windows, если вам нужен adb
только для этого приложения, просто загрузите инструменты платформы и извлеките следующие файлы в каталог gnirehtet :
adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll
Убедитесь, что вы включили отладку adb на своих устройствах.
Если вы используете Homebrew, приступить к работе можно очень быстро. Чтобы установить версию Rust:
brew install gnirehtet
Загрузите последнюю версию в нужном вам вкусе.
gnirehtet-rust-linux64-v2.5.1.zip
gnirehtet-rust-win64-v2.5.1.zip
gnirehtet-rust-macos64-v2.2.1.zip
(старая версия)Затем извлеките его.
Архивы Linux и MacOS содержат:
gnirehtet.apk
gnirehtet
Архив Windows содержит:
gnirehtet.apk
gnirehtet.exe
gnirehtet-run.cmd
gnirehtet-java-v2.5.1.zip
Затем извлеките его. В архиве содержатся:
gnirehtet.apk
gnirehtet.jar
gnirehtet
gnirehtet.cmd
gnirehtet-run.cmd
Примечание. В Windows замените ./gnirehtet
на gnirehtet
в следующих командах.
Приложение не имеет пользовательского интерфейса и предназначено для управления только с компьютера.
Если вы хотите активировать обратную модем только для одного устройства, просто выполните:
./gnirehtet run
Обратный модем остается активным до тех пор, пока вы не нажмете Ctrl+C .
В Windows для удобства вы можете вместо этого дважды щелкнуть gnirehtet-run.cmd
(он просто выполняет gnirehtet run
, не требуя открытия терминала).
При самом первом запуске должно открыться всплывающее окно с запросом разрешения:
Логотип «ключ» появляется в строке состояния всякий раз, когда Гниретет активен:
Альтернативно вы можете включить обратную модем для всех подключенных устройств (настоящих и будущих), вызвав:
./gnirehtet autorun
Вы можете выполнять действия отдельно (это может быть полезно, если вы хотите одновременно подключить несколько устройств).
Запустите сервер ретрансляции и оставьте его открытым:
./gnirehtet relay
Установите apk
на свое Android-устройство:
./gnirehtet install [serial]
В другом терминале для каждого клиента выполните:
./gnirehtet start [serial]
Чтобы остановить клиента:
./gnirehtet stop [serial]
Чтобы сбросить туннель (полезно для восстановления соединения, когда устройство отключено и снова подключено, когда gnirehtet активен):
./gnirehtet tunnel [serial]
Параметр последовательного порта требуется только в том случае, если adb devices
выводят более одного устройства.
Для дополнительных параметров вызовите ./gnirehtet
без аргументов, чтобы получить более подробную информацию.
Программа gnirehtet
предоставляет простой интерфейс командной строки, который выполняет команды нижнего уровня. Вместо этого вы можете вызвать их вручную.
Чтобы запустить сервер ретрансляции:
./gnirehtet relay
Чтобы установить APK:
adb install -r gnirehtet.apk
Чтобы запустить клиент:
adb reverse localabstract:gnirehtet tcp:31416
adb shell am start -a com.genymobile.gnirehtet.START
-n com.genymobile.gnirehtet/.GnirehtetActivity
Чтобы остановить клиента:
adb shell am start -a com.genymobile.gnirehtet.STOP
-n com.genymobile.gnirehtet/.GnirehtetActivity
ADB
определяет собственный путь к исполняемому файлу adb
:
ADB=/path/to/my/adb ./gnirehtet run
GNIREHTET_APK
определяет собственный путь к gnirehtet.apk
:
GNIREHTET_APK=/usr/share/gnirehtet/gnirehtet.apk ./gnirehtet run
rev <<< tethering
(в Баше )
Прочтите страницу разработчиков.
Copyright (C) 2017 Genymobile
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.