প্রকল্প সম্পর্কে

# Qualcomm Sahara / Firehose Attack Client / Diag Tools এটি Qualcomm Emergency Download (EDL) মোডে কাজ করার জন্য একটি অনানুষ্ঠানিক টুলসেট, যা Sahara এবং Firehose প্রোটোকল ব্যবহার করে ডিভাইস ডাম্প, ফ্ল্যাশ এবং ডিবাগ করার নিম্ন-স্তরের অ্যাক্সেস প্রদান করে। এটি GPLv3-এর অধীনে লাইসেন্সকৃত, বাণিজ্যিক ব্যবহারের জন্য অনুমতি ছাড়া অতিরিক্ত নিষেধাজ্ঞা সহ। ## মূল বৈশিষ্ট্য - **Sahara V3 সমর্থন**: নতুন Qualcomm ডিভাইসে চিপ তথ্য (MSM_ID, OEM_ID, MODEL_ID) পড়া যেত না, সেই সমস্যা সমাধান করা হয়েছে। বর্ধিত তথ্যের জন্য কমান্ড 0x0A (CHIP_ID_V3_READ) ব্যবহার করে। - **পার্টিশন ব্যবস্থাপনা**: eMMC এবং UFS ফ্ল্যাশ মেমোরিতে পার্টিশন ডাম্প, লেখা এবং পরিচালনা। - **লোডার অটোডিটেকশন**: HWID/MSM_ID/PKHash মিলিয়ে স্বয়ংক্রিয়ভাবে উপযুক্ত লোডার সনাক্ত ও ব্যবহার করে। - **ডায়াগ পোর্ট টুল**: NV ব্যাকআপ, EFS ডিরেক্টরি তালিকা ইত্যাদি ডায়াগনস্টিক অপারেশনের জন্য `qc_diag` অন্তর্ভুক্ত। - **স্ট্রিমিং মোড**: ডিভাইস মেমোরিতে/থেকে ডেটা স্ট্রিমিংয়ের সমর্থন। - **Raw XML কমান্ড**: উন্নত অপারেশনের জন্য কাস্টম XML স্ট্রিং পাঠানো। ## ইনস্টলেশন ### লিনাক্স (Debian/Ubuntu/Mint) ```bash sudo apt install adb fastboot python3-dev python3-pip liblzma-dev git sudo apt purge modemmanager sudo systemctl stop ModemManager sudo systemctl disable ModemManager git clone https://github.com/bkerler/edl.git cd edl git submodule update --init --recursive pip3 install -r requirements.txt ``` ### macOS ```bash brew install libusb git git clone https://github.com/bkerler/edl.git ``` ### উইন্ডোজ স্বয়ংক্রিয় PowerShell ইনস্টলার ব্যবহার করুন অথবা Python 3.10+, git এবং UsbDk দিয়ে ম্যানুয়াল সেটআপ করুন। ## ব্যবহারের উদাহরণ - `edl rl dumps --memory=ufs --lun=0 --skip=userdata,vendor_a` - lun0 থেকে সব পার্টিশন dumps ডিরেক্টরিতে ডাম্প করুন, userdata এবং vendor_a বাদ দিয়ে - `edl rs 0 15 data.bin` - সেক্টর 0 থেকে 15টি সেক্টর data.bin ফাইলে ডাম্প করুন - `edl w boot boot.img --memory=ufs --lun=4` - lun 4-এ boot পার্টিশনে boot.img লিখুন - `edl wl dumps --memory=ufs --lun=0` - dumps ফোল্ডার থেকে সব ফাইল পার্টিশনে লিখুন - `edl qfil rawprogram0.xml patch0.xml image_dir` - QFIL XML ফাইল ব্যবহার করে সম্পূর্ণ ইমেজ ফ্ল্যাশ করুন - `edl pokeqword 0x200000 0x400000` - মেমোরি অফসেটে q-word মান লিখুন - `edl secureboot` - secureboot ফিউজ দেখান (শুধুমাত্র EL3 লোডার) - `edl pbl pbl.bin` - PBL ডাম্প করুন (শুধুমাত্র EL3 লোডার) - `edl qfp qfp.bin` - QFPROM ফিউজ ডাম্প করুন (শুধুমাত্র EL3 লোডার) - `edl modules oemunlock enable` - config পার্টিশন থাকলে OEM আনলক করুন ## লোডার ব্যবস্থাপনা - লোডার স্বয়ংক্রিয়ভাবে git সাবমডিউল বা [Loaders রিপোজিটরি](https://github.com/bkerler/Loaders) থেকে আনা হয় - কাস্টম EDL লোডারকে স্বয়ংক্রিয় ব্যবহারের জন্য রূপান্তর করতে `fhloaderparse` ব্যবহার করুন - লোডার `Loaders` ডিরেক্টরিতে `msmid_pkhash[8 bytes].bin` নামকরণ নিয়মে সংরক্ষিত থাকে ## সমর্থিত ডিভাইস (আংশিক) - OnePlus 3T/5/6T/7T/8/8t/9/Nord CE/N10/N100 (শুধুমাত্র পঠনযোগ্য) - BQ X, BQ X5, BQ X2 - Gigaset ME Pure - ZTE MF210, MF920V - Sierra Wireless EM7455 - Netgear MR1100-10EUS, MR5100 - বিভিন্ন Xiaomi ডিভাইস (SM8350, SM8450, SM8550 দিয়ে পরীক্ষিত) ## সীমাবদ্ধতা - Xiaomi-তে SDM660 সহ সিকিউর লোডার এখনও সমর্থিত নয় (EDL অথেনটিকেশন) - VIP প্রোগ্রামিং সমর্থিত নয় - EFS ডিরেক্টরি লেখা এবং ফাইল পড়া এখনও বাস্তবায়িত হয়নি - কিছু অপারেশনের জন্য EL3 লোডার প্রয়োজন ## লাইসেন্স GPLv3 অতিরিক্ত নিষেধাজ্ঞা সহ: পূর্ব অনুমতি ছাড়া বাণিজ্যিক পণ্যে ব্যবহার নিষিদ্ধ। কম্পাইল করা আকারে যেকোনো ব্যবহারে আপনার কোড ওপেন-সোর্স করতে হবে।