
QCSuper هي أداة تتواصل مع الهواتف وأجهزة المودم القائمة على معالجات Qualcomm، مما يتيح التقاط إطارات الراديو الخام لشبكات 2G/3G/4G، من بين أمور أخرى.
QCSuper هي أداة تتواصل مع الهواتف وأجهزة المودم القائمة على Qualcomm، وتسمح بـالتقاط إطارات الراديو الخام لشبكات 2G/3G/4G (وبالنسبة لبعض الطرازات 5G)، من بين أشياء أخرى.
ستتيح لك إنشاء ملفات PCAP لالتقاطها باستخدام هاتف Android بصلاحيات الروت، أو دونغل USB، أو ملف التقاط موجود بتنسيق آخر.

بعد تثبيته، يمكنك توصيل هاتفك المجذّر عبر USB واستخدامه مع جهاز متوافق بكل بساطة كما يلي:```bash qcsuper --adb --wireshark-live
أو، إذا قمت بتمكين كشف منفذ Diag يدويًا على هاتفك (قد يختلف الإجراء المقابل اعتمادًا على مودم هاتفك والشركة المصنعة، انظر أدناه لمزيد من التوضيحات)، أو إذا قمت بتوصيل دونغل نطاق عريض متنقل:```bash
qcsuper --usb-modem auto --wireshark-live
يستخدم بروتوكول Qualcomm Diag، المعروف أيضًا باسم QCDM أو DM (Diagnostic Monitor)، للتواصل مع النطاق الأساسي لهاتفك.
هل ترغب في الإبلاغ عما إذا كان جهازك يعمل أم لا؟ يمكنك فتح مشكلة على GitHub.
الملاحق:
تدوينة/عرض توضيحي: تقديم QCSuper: أداة لالتقاط حركة مرور 2G/3G/4G عبر الأثير على هواتف Qualcomm
مزيد من الوثائق:
تم اختبار QCSuper مؤخرًا وتطويره على Ubuntu LTS 22.04+ كما استُخدم أيضًا على Windows 11. يعتمد على عدد من وحدات Python. يُنصح باستخدام لينكس لتوافق أفضل.
لاستخدامه، يجب أن يكون هاتفك متجذرًا (Root) أو يعرض منفذ خدمة diag عبر USB. للتحقق من التوافق مع هاتفك، ابحث عن طراز الهاتف على موقع مثل GSMArena وتحقق مما إذا كان يحتوي على معالج Qualcomm.
لفتح ملفات PCAP التي ينتجها QCSuper، يمكنك استخدام أي إصدار من Wireshark 2.x - 4.x لإطارات 2G/3G، لكنك تحتاج إلى Wireshark 2.5.x على الأقل لإطارات 4G (وإصدار 2.6.x لرسائل NAS الفردية التي تم فك تشفيرها من إطارات 4G). يوفر Ubuntu حاليًا إصدارًا حديثًا بما يكفي لجميع الإصدارات.
تم اختبار فك تشفير إطارات 5G باستخدام Wireshark 3.6.x والإصدارات الأحدث، وسيتم ذلك من خلال التثبيت التلقائي لملحق Lua الخاص بـ Wireshark (في %APPDATA%\Wireshark\plugins على ويندوز أو في ~/.local/lib/wireshark/plugins على لينكس وmacOS)، ويمكن تجنب ذلك عن طريق تعيين متغير البيئة DONT_INSTALL_WIRESHARK_PLUGIN=1 إذا كنت ترغب في تجنبه.
لتثبيت الإصدار الثابت من QCSuper على مستوى النظام من PyPI، يمكنك تشغيل هذه الأوامر:```bash
sudo apt install python3-pip wireshark
sudo pip3 install --upgrade qcsuper --break-system-packages
بعد ذلك، يمكنك فقط كتابة `qcsuper` في الطرفية لتشغيل QCSuper.
لتثبيت نسخة التطوير في مجلد معين، افتح الطرفية واكتب ما يلي:```bash
# Download QCSuper
git clone https://github.com/P1sec/qcsuper
cd qcsuper
# Install dependencies
sudo apt install python3-pip wireshark
sudo pip3 install --upgrade . --break-system-packages
ثم، قم بتشغيل QCSuper من المجلد qcsuper/ باستخدام الأمر ./qcsuper.py في الطرفية.
في لينكس، يمكنك تثبيت QCSuper باستخدام مدير الحزم uv الذي يُعد بديلًا حديثًا لـ PIP.
أولًا، قم بتشغيل أحد هذه الأوامر في الطرفية لتثبيت uv:```bash
sudo snap install --classic astral-uv # On Ubuntu
sudo dnf install -y uv # On Fedora
sudo pacman -S uv # On Archlinux, Manjaro
curl -LsSf https://astral.sh/uv/install.sh | sh # On Debian and others
ثم، قم بتشغيل هذا لتثبيت أحدث إصدار مستقر:```bash
uv tool install qcsuper
بدلاً من ذلك، يمكنك تثبيت أحدث إصدار تطويري باستخدام هذا الأمر:```bash uv tool install git+https://github.com/P1sec/qcsuper
يمكنك بعد ذلك فقط كتابة هذا في الطرفية الخاصة بك:```bash
qcsuper
ومع ذلك، إذا كنت بحاجة إلى تشغيل qcsuper كـ root، على سبيل المثال لأنك تقرأ بيانات من جهاز مودم، فقد لا يكون qcsuper في $PATH عند استخدام uv مع sudo، لذلك قد يتطلب الأمر القيام بشيء مثل:```bash
sudo env "PATH=$PATH" qcsuper
إذا كنت ترغب في المشاركة في تطوير الأداة، يمكنك استخدام هذه الأوامر من أجل تنزيل المصدر، ثم إنشاء روابط رمزية إلى QCSuper في `~/.local/bin` نحو دليل المصدر:```bash
git clone https://github.com/P1sec/qcsuper
cd qcsuper
uv sync # Create .venv in the current directory
uv tool install -e . # Create symlinks into ~/.local/bin
يمكن تشغيل QCSuper على ويندوز، ولكن يجب عليك مسبقًا التأكد من أن موجه ADB الخاص بجوجل يعمل بشكل صحيح على جهازك مع جهازك، كما يجب عليك أيضًا إنشاء عوامل تصفية libusb-win32 يدويًا (من خلال الأداة المتاحة في قائمة ابدأ بعد تثبيتها) في حال احتياج جهازك إلى الاتصال المباشر بمنفذ Diag عبر USB شبه تسلسلي.
(يرجى ملاحظة أنه إذا قمت بتبديل وضع جهازك، فقد تتغير معرفات USB PID/VID المرتبطة، وقد يتطلب الأمر إعادة ربط برامج التشغيل في أداة إنشاء عوامل تصفية libusb-win32 - و/أو في إدارة الأجهزة الطرفية في ويندوز حسب الحالة)
على ويندوز، قد تحتاج (بالإضافة إلى برامج تشغيل نواة ADB الخاصة بجوجل) إلى تنزيل وتثبيت برامج تشغيل USB الخاصة بهاتفك وفقًا لطراز هاتفك (قد يشمل ذلك برامج تشغيل USB العامة من Qualcomm). يرجى البحث في جوجل عن طراز هاتفك + "USB driver" أو "ADB driver" للحصول على الإرشادات.
بعد ذلك، تحتاج إلى التأكد من أنك تستطيع الوصول إلى جهازك باستخدام adb. يمكنك العثور على برنامج تعليمي حول كيفية تنزيل adb وإعداده هنا. يجب أن يعرض أمر adb.exe shell (أو أي مسار تنفيذي تستخدمه، توجد نسخة من ملف ADB التنفيذي في مجلد qcsuper/inputs/external/adb الخاص بـ QCSuper) موجه أوامر للمتابعة.
ثم اتبع هذه الروابط (تم اختبار الأداة مؤخرًا على ويندوز 11 - وهي غير مضمونة للعمل على ويندوز 7) بالترتيب التالي:
%PATH%.لتثبيت وحدات Python المطلوبة، افتح موجه الأوامر واكتب:```bash pip3 install --upgrade pyserial pyusb crcmod pycrate https://github.com/pyocd/libusb-package/archive/master.zip
بينما لا تزال في موجه الأوامر، انتقل إلى المجلد الذي يحتوي على QCSuper باستخدام الأمر `cd`. يمكنك بعد ذلك تنفيذ الأوامر (التي يجب أن تبدأ بـ `py qcsuper.py` أو `py3 qcsuper.py` إذا قمت بتثبيت Python 3 من المثبّت عبر الإنترنت، أو `python3.exe .\qcsuper.py` إذا قمت بتثبيته من متجر Windows).
كما ذُكر أعلاه، من الممكن أن تضطر إلى إضافة عامل تصفية `libusb-win32` من خلال الأداة المتاحة في قائمة ابدأ لضمان أن الواجهة المقابلة لمنفذ Diag مرئية لـ QCSuper على الجهاز المُبدَّل وضع تشغيله (من المفترض أن تؤدي المحاولة الفاشلة الأولى لتشغيل الأداة باستخدام علامة `--adb` إلى تبديل الوضع إذا كان برنامج تشغيل ADB يعمل وكان الجهاز مُجذَّرًا بشكل صحيح).
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/48811/e7aab43a3643cd941857febb8fcb8e2d7bf8c3638629a4e5591dc689afa48c07.png" alt="لقطة شاشة لإضافة عامل تصفية libusb-win32 لمنفذ Diag لهاتف Mi">
</p>
## البروتوكولات المدعومة
يدعم QCSuper التقاط عدد من بروتوكولات الراديو المحمول. تُوضع هذه البروتوكولات بعد ترويسة [GSMTAP](http://osmocom.org/projects/baseband/wiki/GSMTAP)، وهي ترويسة قياسية (مغلّفة داخل UDP/IP) تسمح بتحديد البروتوكول، وتوضع حزم GSMTAP في ملف [PCAP](https://wiki.wireshark.org/Development/LibpcapFileFormat) يمكن تحليله بالكامل باستخدام Wireshark.
يمكن تقسيم بروتوكولات 2G/3G/4G إلى عدد قليل من "الطبقات": الطبقة 1 تتعلق بتعديل الراديو الرقمي وتعدد الإرسال، والطبقة 2 تتعامل مع أمور مثل التجزئة والإقرار، والطبقة 3 هي الإشارات الفعلية أو بيانات المستخدم.
تتيح لك QCSuper غالبًا التقاط الطبقة 3، لأنها الأكثر عملية للتحليل باستخدام Wireshark، وهي ما يوفره بروتوكول Diag بشكل أصلي (وبعض المعلومات المثيرة للاهتمام موجودة هنا).
* 2G (GSM): الطبقة 3 وما فوق (RR/...)
* 2.5G (GPRS وEDGE): الطبقة 2 وما فوق (MAC-RLC/...) لإقرارات البيانات
* 3G (UMTS): الطبقة 3 وما فوق (RRC/...)
* بالإضافة إلى ذلك، يدعم إعادة تجميع SIBs (كتل معلومات النظام، البيانات التي تُبث لجميع المستخدمين) في إطارات GSMTAP منفصلة، لأن Wireshark لا يمكنه القيام بذلك بنفسه حاليًا: العلامة `--reassemble-sibs`
* 4G (LTE): الطبقة 3 وما فوق (RRC/...)
* بالإضافة إلى ذلك، يدعم وضع رسائل NAS المفكوكة تشفيرها، وهي رسائل مشفرة ومضمّنة داخل حزمة RRC، في إطارات إضافية: العلامة `--decrypt-nas`
بشكل افتراضي، لا يتم تضمين حركة مرور IP المرسلة من جهازك، فأنت ترى إطارات الإشارات فقط. يمكنك تضمين حركة مرور IP التي تولّدها باستخدام الخيار `--include-ip-traffic` (حيث تكون IP بالكاد الطبقة 3 لحركة بياناتك في 2G/3G/4G، مع تفصيل أن ترويساتها قد تكون مضغوطة (ROHC) وقد يُضمَّن ترويسة PPP صغيرة جدًا).
حركة البيانات التي ترسلها تستخدم قناة مختلفة عن حركة الإشارات، ويتم إعداد هذه القناة عبر حركة الإشارات؛ وبالتالي يجب أن تُظهر لك QCSuper كل التفاصيل ذات الصلة بكيفية بدء هذه القناة.
## ملاحظة الاستخدام
لاستخدام QCSuper، تحدّد مدخلًا واحدًا (مثل: `--adb` (هاتف Android)، `--usb-modem`) ووحدة أو أكثر (`--wireshark-live` لفتح Wireshark، `--pcap-dump` لكتابة الحركة إلى ملف PCAP، `--info` للحصول على معلومات عامة حول الجهاز...).
بعض الأوامر التي يمكنك كتابتها هي:```bash
# Open Wireshark directly, using a rooted Android phone as an input,
# for compatible phones:
$ qcsuper --adb --wireshark-live
# ^ this command is equivalent to (prefer this when running as root):
$ qcsuper --adb --pcap-dump - | wireshark -k -i -
# Same, but dump to a PCAP file instead of opening Wireshark directly
$ qcsuper --adb --pcap-dump /tmp/my_pcap.pcap
أو، إذا لم يكن بسيطًا بما يكفي للعمل:```bash
$ qcsuper --usb-modem auto --wireshark-live
$ lsusb (..) Bus 001 Device 076: ID 05c6:9091 Qualcomm, Inc. Intex Aqua Fish & Jolla C Diagnostic Mode $ qcsuper --usb-modem 1d6b:0003 --wireshark-live # With vendor ID:product ID... $ qcsuper --usb-modem 002:001 --wireshark-live # ...or with bus ID:device ID
$ lsusb -v (..) $ qcsuper --usb-modem 1d6b:0003:1:0 --wireshark-live # With vendor ID:product ID:configuration:interface... $ qcsuper --usb-modem 002:001:1:0 --wireshark-live # ...or with bus ID:device ID:configuration:interface
$ qcsuper --usb-modem /dev/ttyUSB2 --wireshark-live
$ qcsuper --usb-modem /dev/ttyHS2 --wireshark-live
فيما يلي إشعار الاستخدام الحالي لـ QCSuper:```
usage: qcsuper [-h] [--cli] [--efs-shell] [--efs-shell2] [-v] (--adb | --adb-wsl2 ADB_WSL2 | --tcp IP_ADDRESS:TCP_PORT | --usb-modem TTY_DEV | --dlf-read DLF_FILE |
--json-geo-read JSON_FILE) [--info] [--pcap-dump PCAP_FILE] [--wireshark-live] [--memory-dump OUTPUT_DIR] [--dlf-dump DLF_FILE] [--json-geo-dump JSON_FILE]
[--decoded-sibs-dump] [--reassemble-sibs] [--decrypt-nas] [--include-ip-traffic] [--start MEMORY_START] [--stop MEMORY_STOP]
A tool for communicating with the Qualcomm DIAG protocol (also called QCDM or DM).
options:
-h, --help show this help message and exit
--cli Use a command prompt, allowing for interactive completion of commands.
--efs-shell Spawn an interactive shell to navigate within the embedded filesystem (EFS) of the baseband device.
--efs-shell2 Spawn an interactive shell to navigate within the embedded filesystem (EFS) of the baseband device. Use the secondary filesystem known as "alternate".
-v, --verbose Add output for each received or sent Diag packet.
Input mode:
Choose an one least input mode for DIAG data.
--adb Use a rooted Android phone with USB debugging enabled as input (requires adb).
--adb-wsl2 ADB_WSL2 Unix path to the Windows adb executable. Equivalent of --adb command but with WSL2/Windows interoperability.
--tcp IP_ADDRESS:TCP_PORT
Connect to remote TCP service exposing DIAG interface.
--usb-modem TTY_DEV Use an USB modem exposing a DIAG pseudo-serial port through USB.
Possible syntaxes:
- "auto": Use the first device interface in the system found where the
following criteria is matched, by order of preference:
- bInterfaceClass=255/bInterfaceSubClass=255/bInterfaceProtocol=48/bNumEndpoints=2
- bInterfaceClass=255/bInterfaceSubClass=255/bInterfaceProtocol=255/bNumEndpoints=2
- usbserial or hso device name (Linux/macOS): "/dev/tty{USB,HS,other}{0-9}"
- COM port identifier (Windows): "COM{0-9}"
- "vid:pid[:cfg:intf]" (vendor ID/product ID/optional bConfigurationValue/optional
bInterfaceNumber) format in hexa: e.g. "05c6:9091" or "05c6:9091:1:0 (vid and pid
are four zero-padded hex digits, cfg and intf are canonical values from the USB
descriptor, or guessed using the criteria specified for "auto" above if not specified)
- "bus:addr[:cfg:intf]" (USB bus/device address/optional bConfigurationValue/optional
bInterfaceNumber) format in decimal: e.g "001:003" or "001:003:0:3" (bus and addr are
three zero-padded digits, cfg and intf are canonical values from the USB descriptor)
--dlf-read DLF_FILE Read a DLF file generated by QCSuper or QXDM, enabling interoperability with vendor software.
--json-geo-read JSON_FILE
Read a JSON file generated using --json-geo-dump.
Modules:
Modules writing to a file will append when it already exists, and consider it Gzipped if their name contains ".gz".
--info Read generic information about the baseband device.
--pcap-dump PCAP_FILE
Generate a PCAP file containing GSMTAP frames for 2G/3G/4G, to be loaded using Wireshark.
--wireshark-live Same as --pcap-dump, but directly spawn a Wireshark instance.
--memory-dump OUTPUT_DIR
Dump the memory of the device (may not or partially work with recent devices).
--dlf-dump DLF_FILE Generate a DLF file to be loaded using QCSuper or QXDM, with network protocols logging.
--json-geo-dump JSON_FILE
Generate a JSON file containing both raw log frames and GPS coordinates, for further reprocessing. To be used in combination with --adb.
--decoded-sibs-dump Print decoded SIBs to stdout (experimental, requires pycrate).
PCAP generation options:
To be used along with --pcap-dump or --wireshark-live.
--reassemble-sibs Include reassembled UMTS SIBs as supplementary frames, also embedded fragmented in RRC frames.
--decrypt-nas Include unencrypted LTE NAS as supplementary frames, also embedded ciphered in RRC frames.
--include-ip-traffic Include unframed IP traffic from the UE.
Memory dumping options:
To be used along with --memory-dump.
--start MEMORY_START Offset at which to start to dump memory (hex number), by default 00000000.
--stop MEMORY_STOP Offset at which to stop to dump memory (hex number), by default ffffffff.
تحديد - لتوجيه البيانات من الإدخال القياسي (stdin) أو نحو الإخراج القياسي (stdout) مدعوم (قد لا يتم اكتشاف المحتوى المضغوط gzip).
هذا الملف التمهيدي (README) ليس دليلاً حول كيفية تجذير هاتفك (الحصول على هاتف يمكنك من تشغيل أوامر مثل "su").
في معظم أجهزة أندرويد الحديثة، يجب عليك أولاً استخدام خيار "فتح قفل OEM/bootloader" الموجود في إعدادات المطورين بالهاتف لفتح قفل الـ bootloader، ثم يمكنك استخدام أداة مثل Magisk التي تمكنك من الحصول على صورة معدّلة (patched) لـ bootloader هاتفك، لتتمكن بعدها من تحميلها على هاتفك في نمط fastboot.
سيكون لدى QCSuper فرصة أكبر للعمل بسهولة على جهازك القائم على Qualcomm عندما يكون هاتفك مجذّرًا (rooted)، لكن غالبًا ما توجد طرق لتمكين وضع USB التشخيصي من Qualcomm (يُعرف أيضًا باسم "DM"، Diag Monitor) على هاتفك دون الحاجة إلى تجذير الهاتف. هذا يعتمد على الشركة المصنعة لهاتفك ويتم عبر، على سبيل المثال، كتابة مجموعة سحرية من الأرقام على لوحة مفاتيح الاتصال بالهاتف. يرجى الاطلاع على قسم "كيف أقوم بتمكين المنافذ التشخيصية يدويًا على هاتفي؟" أدناه لمزيد من التفاصيل.
قبل تجذير هاتفك، تذكر أنك قد ترغب أيضًا في تحميل صورة استرداد بديلة مثل TWRP على هاتفك المفتوح القفل من OEM لإجراء نسخ احتياطي للقسم (Partition) باستخدام أداة مثل TWRP (قد يكون الأمر ببساطة تحميل الصورة عبر Fastboot، ثم تفعيل رابط ADB في إعدادات TWRP، واستخدام adb pull على الأقسام المحددة في مجلد /dev/block/by-name).
للحصول على تفاصيل محددة حول تجذير أو تفعيل وضع Diag على طراز هاتفك، يمكنك البحث عن المعلومات في منتدى XDA-developers باستخدام كلمات مفتاحية مناسبة.
على أجهزة أندرويد القائمة على Qualcomm/MSM التي تحمل نواة Linux 4.9 أو إصدارًا أقدم (يشمل ذلك تقريبًا جزءًا من الأجهزة حتى Android 12 وجميع الأجهزة قبل Android 10)، تحتوي أجهزة أندرويد القائمة على Qualcomm عادةً على جهاز نظام يسمى /dev/diag يسمح بنقل البيانات إلى المنفذ التشخيصي لقاعدة البيانات الأساسية (Baseband).
على أجهزة أندرويد القائمة على Qualcomm/MSM التي تحمل نواة Linux 4.14 أو إصدارًا أحدث (يشمل ذلك تقريبًا جزءًا من الأجهزة بدءًا من Android 10 وجميع الأجهزة بدءًا من Android 13)، اختفى /dev/diag، لأن وحدة diagchar المقابلة معطّلة افتراضيًا في نوى AOSP/Linux الحديثة.
على الأجهزة التي تحمل نواة MSM لإصدار Linux 4.9 أو أقدم، عند استخدام الخيار --adb، ستحاول QCSuper الاتصال عبر ADB تلقائيًا، ثم ستحاول نقل أداة تنفيذية تتصل بجهاز /dev/diag، لتشغيلها بصلاحيات الجذر (root) باستخدام أمر مثل su -c /data/local/tmp/adb_bridge، ومن ثم نقل البيانات التشخيصية من الجهاز عبر TCP (مع إعادة توجيه منفذ TCP المقابل عبر ADB أيضًا).
على الأجهزة التي تحمل نواة MSM لإصدار Linux 4.14 أو أحدث، عند استخدام الخيار --adb، ستحاول QCSuper الاتصال عبر ADB تلقائيًا، ثم ستحاول تبديل نمط منفذ USB للهاتف باستخدام أمر مثل su -c 'setprop sys.usb.config diag,adb'، ثم تنفيذ ما يعادل الخيار --usb-modem auto (انظر أدناه).
يسمح الخيار --usb-modem <value> لـ QCSuper بالاتصال بمنفذ التشخيص الخاص بـ Qualcomm عبر منفذ تسلسلي افتراضي (pseudo-serial) فوق USB، بشكل مستقل عن ADB، وهي الطريقة الأكثر شيوعًا للاتصال ببروتوكول Qualcomm diag لهاتف قائم على أندرويد باستخدام جهاز خارجي.
لاستخدام الخيار --usb-modem <value>، يجب أن يكون منفذ التشخيص الخاص بـ Qualcomm مفعّلاً على الهاتف المقابل، وبعبارة أخرى يجب أن يكون الهاتف قد خضع لتبديل نمط USB مسبقًا.
الطريقة الأكثر شيوعًا لتبديل نمط USB لجهازك هي تنفيذ أمر مثل setprop sys.usb.config diag,adb بصلاحيات الجذر (root)، لكن قد توجد طرق أخرى (مع بعض الشركات المصنعة للهواتف) لتفعيل وضع Qualcomm التشخيصي عبر USB، انظر على سبيل المثال هذه الصفحة لمعرفة الطرق الممكنة، لبعض الأجهزة، لتفعيل Diag بدون جذر - وغالبًا ما يتضمن ذلك كتابة مجموعة سحرية من الأرقام على لوحة مفاتيح الاتصال بالهاتف.
في أجهزة أخرى، قد يكون من الممكن أيضًا استخدام ملف APK موقّع من الشركة المصنعة للهاتف وله صلاحيات متعلقة بالنظام (System) لتفعيل وضع Diag دون تجذير (ابحث عن APK باسم com.longcheertel.midtest لأجهزة Xiaomi على سبيل المثال).
بمجرد تبديل نمط جهازك بشكل صحيح، فإن تشغيل الأمر getprop sys.usb.config عبر ADB يجب أن يعرض سلسلة نصية تحتوي على diag.
على جهاز الكمبيوتر الخاص بك، بعد ذلك، يجب أن يعرض تشغيل lsusb (على Linux) سطرًا يشير إلى جهازك، على سبيل المثال:```
Bus 001 Device 076: ID 05c6:9091 Qualcomm, Inc. Intex Aqua Fish & Jolla C Diagnostic Mode
لاحظ `001:076` (مُعرّف فهرس الناقل/فهرس الجهاز)، ومعلومات `05c6:9091` (مُعرّف البائع/مُعرّف المنتج) الموجودة في هذا المخرَج.
بمجرد أن تتوفر لديك هذه المعلومات، **يمكنك محاولة استخدام علم مثل `--usb-modem 05c6:9091` أو `--usb-modem 001:076`** مع QCSuper (يرجى مراعاة حشو الأرقام).
إذا لم يكن ذلك حاسمًا، يمكنك استخدام الأمر `lsusb -v -d 05c6:9091`، الذي يجب أن يُنتج مخرجات مفصّلة، بما في ذلك إعدادات USB والواجهات ونقاط النهاية للجهاز USB المقابل:```
Bus 001 Device 027: ID 05c6:9091 Qualcomm, Inc. Intex Aqua Fish & Jolla C Diagnostic Mode
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.01
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x05c6 Qualcomm, Inc.
idProduct 0x9091 Intex Aqua Fish & Jolla C Diagnostic Mode
bcdDevice 5.04
iManufacturer 1 Xiaomi
iProduct 2 Mi 11
iSerial 3 d94f4341
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0086
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 4 Default composition
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 48
iInterface 0
[...]
يتيح لك QCSuper تحديد معرّفات التهيئة والواجهة التي ترغب في محاولة الاتصال بها على الجهاز المعني يدويًا (المعيّنة كـ bConfigurationValue و bInterfaceNumber في واصف USB الخام)، في حالة عدم اكتشافها بشكل صحيح. على سبيل المثال، العلم --usb-modem 05c6:9091:1:0 سيختار التهيئة 1 والواجهة 0 على الجهاز المعني على التوالي. وسيختار --usb-modem 05c6:9091:1:4 الواجهة 4 على التهيئة 1.
إذا لم يتم تحديد تفاصيل فهارس التهيئة والواجهة، فسيتم اختيار أول واصف واجهة على ناقل USB للنظام يتم العثور عليه مطابقًا للمعايير التالية، حسب ترتيب الأفضلية:
bInterfaceClass=255/bInterfaceSubClass=255/bInterfaceProtocol=48/bNumEndpoints=2bInterfaceClass=255/bInterfaceSubClass=255/bInterfaceProtocol=255/bNumEndpoints=2عند استخدام العلم --usb-modem auto، يتم اختيار أول جهاز يكشف واجهة USB متوافقة مع هذه المعايير، وعند الحاجة على لينكس، يتم تحديد جهاز الأحرف الأساسي /dev/ttyUSB* (وحدة usbserial) أو /dev/ttyHS* (وحدة hso) في حالة اكتشاف الجهاز وتثبيته بواسطة وحدة النواة (انظر قسم "استخدام QCSuper مع مودم USB" أدناه).
بدلاً من ذلك، على لينكس، قد يكون من الممكن أيضًا إنشاء نقاط نهاية /dev/ttyUSB* يدويًا المقابلة لواجهات جهاز USB معين، وستكون قادرًا على الاتصال باستخدام QCSuper مع علم مثل --usb-modem /dev/ttyUSB0 (قد يتطلب ذلك تشغيل QCSuper بصلاحيات الجذر)، باستخدام وحدة usbserial. للقيام بذلك، يمكنك استخدام أمر مثل:```
sudo rmmod usbserial
sudo modprobe usbserial vendor=0x05c6 product=0x9091
## استخدام QCSuper مع مودم USB
يمكنك استخدام QCSuper مع مودم USB يعرض منفذ Diag باستخدام الخيار `--usb-modem <device>`، حيث `<device>` هو اسم الجهاز شبه التسلسلي على لينكس (مثل `/dev/ttyUSB0`، `/dev/ttyHS2` واحتمالات أخرى) أو منفذ COM على ويندوز (مثل `COM2`، `COM3`).
يُرجى ملاحظة أنه في معظم الإعدادات، ستحتاج إلى تشغيل QCSuper كصلاحيات root لتتمكن من استخدام هذا الوضع، خاصةً للتعامل مع تعارض المنافذ التسلسلية.
إذا كنت لا تعرف أي الأجهزة داخل `/dev` تعرض منفذ Diag، فقد تحتاج إلى تجربة أكثر من واحد منها. يمكنك محاولة اكتشافه تلقائيًا بإيقاف خدمة ModemManager (`sudo systemctl stop ModemManager`)، ثم استخدام الأمر التالي: `sudo ModemManager --debug 2>&1 | grep -i 'port is QCDM-capable'` ثم اضغط Ctrl-C.
يُرجى ملاحظة أنه إذا لم تكن قادرًا على استخدام جهازك مع مثلًا ModemManager في المقام الأول، فمن المرجح أنه لم يتم إعداده بالكامل ولن يعمل أيضًا مع QCSuper. بعض الأخطاء الشائعة المحتملة هي:
* لم تطبّق أمر [تبديل الوضع](https://wiki.archlinux.org/index.php/USB_3G_Modem#Mode_switching) المناسب لجهازك.
* إذا اشتريت جهازًا كان يحتوي سابقًا على شريحة SIM من مشغل مختلف، فقد يكون جهازك مقفلاً بالشريحة. قد تحتاج إلى استخدام رمز الفتح من المشغل السابق وإدخاله إلى الجهاز، كما لو كان رمز PIN: `sudo mmcli -i 0 --pin=<your_unlock_code>`
إذا كان جهاز USB القائم على Qualcomm لا يعرض منفذ Diag افتراضيًا، فقد تحتاج إلى كتابة ما يلي عبر منفذ AT لتمكين منفذ Diag:```
AT$QCDMG
يرجى ملاحظة أنه يمكن لعميل واحد فقط التواصل مع منفذ Diag في نفس الوقت. ينطبق هذا على مثيلين من QCSuper، أو مثيلات QCSuper و ModemManager.
إذا كان ModemManager نشطًا على نظامك، فسيحاول QCSuper إضافة قاعدة udev ديناميكيًا لمنعه من الوصول إلى منفذ Diag وإعادة تشغيل الخفي الخاص به، حيث أن هذه هي أفضل طريقة حاليًا لتحقيق ذلك. وسيقوم بحذف هذه القاعدة عند الإغلاق.
تم اختبار QCSuper بنجاح مع:
ومع ذلك، فهو يهدف إلى أن يكون متوافقًا مع أوسع نطاق ممكن من الأجهزة المبنية على شرائح Qualcomm، بالنسبة لجزء الالتقاط.
الأجهزة الأخرى العاملة مدرجة في: https://github.com/P1sec/QCSuper/issues?q=label:"confirmed+working"
لا تتردد في الإبلاغ عما إذا كان جهازك يعمل بنجاح أم لا عبر فتح مشكلة على Github.
هناك عدد قليل من الأدوات المفتوحة الأخرى التي تنفذ أجزاءً من بروتوكول Diag، وتخدم أغراضًا مختلفة: