بروتوكول SAHARA في معالجات كوالكوم

 

ما هو Qualcomm Sahara؟

يُعد Qualcomm Sahara بروتوكولًا تستخدمه شرائح Qualcomm لتمكين الأجهزة الخارجية—مثل الحاسوب—من التواصل مع الشريحة وأداء مهام مختلفة. يُستخدم هذا البروتوكول بشكل أساسي في تفليش (Flashing) البرمجيات الثابتة والعمليات منخفضة المستوى على الأجهزة العاملة بمعالجات Qualcomm، مثل الهواتف والأجهزة اللوحية.

وبما أن بروتوكول Sahara بروتوكول مغلق المصدر وغير موثّق علنًا، فإن استخدامه مقتصر عادةً على الشركات المصنّعة ومراكز الصيانة المتخصصة، وليس موجّهًا للمستخدمين العاديين.

تدعم معالجات Qualcomm بروتوكولين مختلفين هما “Sahara” و”Firehose“. بروتوكول Sahara مدعوم داخل الـ ROM وهو متوفر دائمًا. أما بروتوكول Firehose فيتم تنفيذه داخل محمّلات قابلة للتحميل تأتي بصيغة ELF.

 

شرح موسّع للموضوع

 

🔹 1. مرحلة ROM Bootloader في معالجات Qualcomm

عند تشغيل أي جهاز Qualcomm:

  1. المعالج يبدأ بتنفيذ تعليمات من Primary Bootloader (PBL) الموجود داخل الـ ROM.

  2. الـ ROM بسيط جدًا، لكنه يحتوي على:

    • فحص التوقيعات الأمنيّة

    • كود للتعامل مع وضع EDL

    • دعم بروتوكول Sahara

بما أن ROM غير قابل للتعديل، فوجود Sahara دائم ومضمون.


🔹 2. بروتوكول Sahara

Sahara هو بروتوكول نقل معلومات وظيفته الأساسية:

  • استقبال ملف قابل للتنفيذ بامتداد ELF

  • تحميله إلى الذاكرة

  • تسليم التنفيذ له

إذن: Sahara ليس بروتوكول تفليش.
بل هو  بوابة انتقال (handoff protocol).

مهمته الرئيسية:

تحميل وتشغيل كود خارجي على المعالج في وضع EDL.


🔹 3. بروتوكول Firehose

بعد أن يقوم Sahara بتحميل ملف ELF (المعروف بالـ Firehose Loader):

  • يبدأ Firehose بالعمل

  • ويفتح قناة اتصال متقدمة مع الكمبيوتر

  • تسمح بعمليات مثل:

    • تفليش أقسام الذاكرة (partitions)

    • قراءة/كتابة EMMC/UFS مباشرة

    • فورمات الأقسام

    • إعادة بناء جداول GPT

 

 

🔥  تسلسل العملية فعليًا

1️⃣ Sahara لا يفلّش — فقط يحمل Loader

عند وصل الجهاز بوضع EDL:

  • الكمبيوتر يتعرّف على الجهاز عبر Qualcomm HS-USB QDLoader 9008

  • أول بروتوكول يتكلم معه هو Sahara

  • Sahara ينتظر منك:

    • إمّا طلب معلومات (HWID/hash)

    • أو تحميل Loader (ملف ELF)

Sahara → يحمل Loader → يسلم التنفيذ إليه
ثم ينتهي دوره تقريبًا.


2️⃣ لماذا Loader  مطابق للجهاز؟

لأن Loader يحتوي:

  • كود للتعامل مع نوع معين من الذاكرة (EMMC أو UFS)

  • دعم لتقسيمة الذاكرة الخاصة بجهاز معين

  • توقيعات أمنية تختلف بين الشركات

  • إعدادات PMIC واختلافات البورد

ولذلك:

  • Loader جهاز Samsung لا يعمل على Xiaomi

  • Loader Snapdragon 660 لا يعمل على Snapdragon 845

  • Loader EMMC لا يعمل على جهاز UFS

3️⃣ مشكلة Sahara 3.0 مع HWID و Hash

بعض الأجهزة تظهر:

Sahara version: 3
HWID query not supported

النتيجة:

  • لا يمكن معرفة HWID

  • لا يمكن معرفة hash

  • فتتردد أي Loader تستخدم


4️⃣ ما هو /qbc Quirk؟

في بعض أدوات EDL (خصوصًا edl.py):

  • الخاصية /qbc تعني Qualcomm Boot Config quirk

  • تُجبر Sahara على استخدام طريقة بديلة للتعرف على الجهاز

  • أو تتجاوز مرحلة الاستعلام وتستخدم Loader محدد يدويًا

وظيفته الأساسية:

  • “تخطي فشل HWID”

  • وإتمام Handshake مع Sahara

  • وتحميل Loader بشكل إجباري

🔹 5. لماذا تحتاج Qualcomm إلى بروتوكولين وليس واحدًا؟

لأن ROM يجب أن يكون:

  • صغير الحجم

  • بسيط

  • آمن

  • لا يحتوي وظائف حساسة أو معقدة

لذلك Sahara موجود دائمًا لأنه:

  • خفيف

  • ثابت

  • لا يملك وصول مباشر للذاكرة الفعلية

بينما Firehose:

  • كبير الحجم

  • يختلف من جهاز لآخر

  • يخضع لفحص توقيع أمني

  • يُحمّل فقط عند الحاجة


🔥 6. هل يمكن أن يعمل Firehose بدون Sahara؟

لا.
Firehose loader نفسه يتم نقله وتشغيله عبر Sahara، لذلك Sahara هو الأساس.

 

😊 إذا كنت بحاجة إلى أي مساعدة إضافية،

فلا تتردد في طرحها عبر الرابط التالي مع تحيات فريق حلب تك 😊

 

HT134

طلب خدمة من سيرفر حلب تك

📩 اتصل بنا عبر تلغرام او عبر وكلاء موقع حلب تك للشراء والتفعيل من أي مكان في العالم

⚠️ الرد خلال دقائق كحد أقصى

 

 

شكراً لمتابعتكم ❤️

دمتم في رعاية الله وحفظه

فريق حلب تك

© 2025 جميع الحقوق محفوظة | شروط الخدمة حلب تك

أكبر منصة عربية لحلول الهواتف الذكية

مقالات قد تهمك

 

اترك ردّاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Telegram Channel WhatsApp Channel Facebook Page YouTube Channel