このプロジェクトは、Android 用のadb
介したリバース テザリングを提供します。これにより、デバイスは、接続されているコンピューターのインターネット接続を使用できるようになります。 rootアクセスは (デバイス上でもコンピューター上でも) 必要ありません。 GNU/Linux 、 WindowsおよびMac OS上で動作します。
現在、IPv4 トラフィック上で TCP と UDP を中継しますが、IPv6 は (まだ?) サポートしていません。
このプロジェクトは現在は積極的にメンテナンスされておらず、主要な障害 (ビルドの問題など) のみが修正されています。それでも動作するはずです。
Gnirehtetの 2 つの実装が利用可能です。
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 がなく、コンピューターからのみ制御することを目的としています。
1 つのデバイスに対してのみリバース テザリングを有効にしたい場合は、次のコマンドを実行するだけです。
./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]
シリアルパラメータは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
( Bashで)
開発者ページを読んでください。
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.