প্রকল্প সম্পর্কে
# 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 অতিরিক্ত নিষেধাজ্ঞা সহ: পূর্ব অনুমতি ছাড়া বাণিজ্যিক পণ্যে ব্যবহার নিষিদ্ধ। কম্পাইল করা আকারে যেকোনো ব্যবহারে আপনার কোড ওপেন-সোর্স করতে হবে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.