يوفر هذا المشروع ربطًا عكسيًا عبر adb
لنظام Android: فهو يسمح للأجهزة باستخدام اتصال الإنترنت الخاص بالكمبيوتر المتصل به. لا يتطلب أي وصول إلى الجذر (لا على الجهاز ولا على الكمبيوتر). وهو يعمل على أنظمة جنو/لينكس ، وويندوز ، وماك أو إس .
حاليًا، يقوم بترحيل TCP وUDP عبر حركة مرور IPv4، لكنه لا يدعم IPv6 (حتى الآن؟).
لم تعد تتم صيانة هذا المشروع بشكل نشط بعد الآن، حيث تم إصلاح العوائق الرئيسية فقط (مثل مشكلات البناء). ينبغي أن لا يزال يعمل، على أية حال.
يتوفر تطبيقان لـ Gnirehtet :
استخدم تطبيق الصدأ . يستهلك الثنائي الأصلي وحدة معالجة مركزية وذاكرة أقل، ولا يتطلب بيئة تشغيل Java .
تم تنفيذ خادم الترحيل الخاص بـ Gnirehtet في البداية فقط في Java. وكميزة، يتم تشغيل نفس "الثنائي" على كل نظام أساسي مثبت عليه وقت تشغيل Java 8 . لا يزال يتم الحفاظ عليه لتوفير بديل عملي في حالة حدوث مشكلات في إصدار Rust.
يتطلب تطبيق Android API 21 على الأقل (Android 5.0).
بالنسبة لإصدار Java فقط، يلزم وجود Java 8 (JRE) على جهاز الكمبيوتر الخاص بك. في التوزيعات المبنية على دبيان، قم بتثبيت الحزمة openjdk-8-jre
.
أنت بحاجة إلى إصدار حديث من adb (حيث يتم تطبيق adb reverse
، فهو يعمل مع الإصدار 1.0.36).
وهي متوفرة في أدوات النظام الأساسي Android SDK.
في التوزيعات المبنية على دبيان، يمكنك بدلاً من ذلك تثبيت الحزمة android-tools-adb
.
على نظام التشغيل Windows، إذا كنت بحاجة إلى adb
فقط لهذا التطبيق، فما عليك سوى تنزيل أدوات النظام الأساسي واستخراج الملفات التالية إلى دليل gnirehtet :
adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll
تأكد من تمكين تصحيح أخطاء adb على جهازك (أجهزتك).
إذا كنت تستخدم Homebrew، فسيكون الإعداد والتشغيل سريعًا جدًا. لتثبيت نسخة الصدأ:
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 نشطًا:
وبدلاً من ذلك، يمكنك تمكين التوصيل العكسي لجميع الأجهزة المتصلة (الحالية والمستقبلية) عن طريق الاتصال:
./gnirehtet autorun
يمكنك تنفيذ الإجراءات بشكل منفصل (قد يكون ذلك مفيدًا إذا كنت تريد عكس ربط عدة أجهزة في وقت واحد).
ابدأ تشغيل خادم الترحيل وأبقه مفتوحًا:
./gnirehtet relay
قم بتثبيت 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
(في باش )
اقرأ صفحة المطورين.
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.