이 프로젝트는 Android용 adb
통한 역방향 테더링을 제공합니다. 이를 통해 장치는 연결된 컴퓨터의 인터넷 연결을 사용할 수 있습니다. 장치나 컴퓨터 모두에서 루트 액세스가 필요하지 않습니다. GNU/Linux , Windows 및 Mac OS 에서 작동합니다.
현재 IPv4 트래픽을 통해 TCP 및 UDP를 중계하지만 IPv6는 (아직?) 지원하지 않습니다.
이 프로젝트는 더 이상 적극적으로 유지 관리되지 않으며 빌드 문제와 같은 주요 방해 요소만 수정되었습니다. 그래도 여전히 작동합니다.
Gnirehtet 의 두 가지 구현을 사용할 수 있습니다.
Rust 구현을 사용하세요. 기본 바이너리는 CPU와 메모리를 덜 소비하며 Java 런타임 환경이 필요하지 않습니다.
Gnirehtet 의 릴레이 서버는 처음에는 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
로 바꾸십시오.
애플리케이션에는 UI가 없으며 컴퓨터에서만 제어할 수 있습니다.
정확히 하나의 기기에 대해 역방향 테더링을 활성화하려면 다음을 실행하세요.
./gnirehtet run
역방향 테더링은 Ctrl+C를 누를 때까지 활성 상태로 유지됩니다.
Windows에서는 편의를 위해 대신 gnirehtet-run.cmd
두 번 클릭할 수 있습니다(터미널을 열 필요 없이 gnirehtet run
만 실행함).
처음 시작할 때 권한을 요청하는 팝업이 열려야 합니다.
Gnirehtet이 활성화될 때마다 상태 표시줄에 "키" 로고가 나타납니다.
또는 다음을 호출하여 연결된 모든 장치(현재 및 미래)에 대해 역방향 테더링을 활성화할 수 있습니다.
./gnirehtet autorun
작업을 개별적으로 실행할 수 있습니다(여러 장치를 동시에 테더링을 취소하려는 경우 유용할 수 있음).
릴레이 서버를 시작하고 열어 둡니다.
./gnirehtet relay
Android 기기에 apk
설치하세요.
./gnirehtet install [serial]
다른 터미널에서 각 클라이언트에 대해 다음을 실행합니다.
./gnirehtet start [serial]
클라이언트를 중지하려면:
./gnirehtet stop [serial]
터널을 재설정하려면(gnirehtet이 활성화된 동안 장치를 분리했다가 다시 연결했을 때 연결을 다시 얻는 데 유용합니다):
./gnirehtet tunnel [serial]
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.