### Create Examples Directory and Parse Loaders Source: https://github.com/bkerler/edl/blob/master/README.md Create a directory for examples and then parse all loaders within it, automatically detecting and renaming them. ```bash mkdir examples ``` ```bash fhloaderparse examples Loaders ``` -------------------------------- ### Example: Set OpenCND Password Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Example of setting a specific password 'A710' for OpenCND. ```text AT!SETCND="A710" ``` -------------------------------- ### Examples: Add New Bands Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Examples demonstrating how to add specific LTE bands (B28, B1, B3, B7, B8) to the modem configuration. ```text AT!BAND=03,"LTE B28 700",0,8000000 AT!BAND=04,"LTE B1 2100",0,1 AT!BAND=05,"LTE B3 1800",0,4 AT!BAND=06,"LTE B7 2600",0,40 AT!BAND=07,"LTE B8 900",0,80 ``` -------------------------------- ### Run EDL TCP/IP Server Source: https://github.com/bkerler/edl/blob/master/README.md Start an EDL TCP/IP server on a specified port for remote interaction. A client example is available in tcpclient.py. ```bash edl server --memory=ufs --tcpport=1340 ``` -------------------------------- ### Clone Repository and Install Dependencies Source: https://github.com/bkerler/edl/blob/master/README.md This snippet demonstrates how to clone the repository and install its dependencies using git and pip. Ensure submodules are updated. ```bash git clone https://github.com/bkerler/edl cd edl git submodule update --init --recursive pip3 install -r requirements.txt ``` -------------------------------- ### Basic EDL API Usage Example Source: https://github.com/bkerler/edl/blob/master/API_README.md A comprehensive example demonstrating the typical workflow: instancing, setting arguments, initializing, executing commands, reinitializing with modified arguments, and finally resetting the device. ```python from edlclient.Library.api import * # Step 1 e = edl_api() e.set_arg("--debugmode", True) if (e.init() == 1): exit(1) # Step 2 e.peek(0x100000, 80, "peek1.bin") # Step 3 e.reset_arg("--debugmode") if (e.reinit() == 1): exit(1) # Step 4 e.peek(0x100080, 80, "peek2.bin") # Step 5 e.reset() ``` -------------------------------- ### Manually Install EDL Drivers on Linux Source: https://github.com/bkerler/edl/blob/master/README.md Manually installs EDL drivers on Linux by making a script executable, running it, and then installing the package using pip. ```bash chmod +x ./install-linux-edl-drivers.sh bash ./install-linux-edl-drivers.sh pip3 install . ``` -------------------------------- ### Install EDL on macOS Source: https://github.com/bkerler/edl/blob/master/README.md Installs necessary dependencies (libusb, git) using Homebrew, clones the EDL repository, updates submodules, and installs the package using pip. ```bash brew install libusb git git clone https://github.com/bkerler/edl.git cd edl git submodule update --init --recursive pip3 install . ``` -------------------------------- ### V3 Output Example for Chip Info Source: https://github.com/bkerler/edl/blob/master/README.md This example shows the expected output format when reading extended chip information using the V3 protocol. It details various chip identifiers and hashes. ```text Reading Chip Info : OK - Sahara version : 3 - Chip Serial Number : 4971f38f - Chip Identifier V3 : 5a040000 - MSM HWID : 0x28c0e1 | model_id:0xa012 | oem_id:0051 OPPO - OEM PKHASH : 3cceb55b6d88a0bea0e24d9641500fa239738b42575031188d3aaf92349b3b14 - HW_ID : 0028c0e10051a012 ``` -------------------------------- ### Install EDL on Gentoo Source: https://github.com/bkerler/edl/blob/master/README.md Installs required packages for EDL on Gentoo Linux. This command should be run as root. ```bash # Gentoo (run as root!) emerge -aq dev-util/android-tools dev-vcs/git dev-python/pip ``` -------------------------------- ### Install EDL on Fedora/CentOS Source: https://github.com/bkerler/edl/blob/master/README.md Installs required packages for EDL on Fedora/CentOS systems using dnf. ```bash # Fedora/CentOS/etc sudo dnf install adb fastboot python3-devel python3-pip xz-devel git ``` -------------------------------- ### Automatic EDL Installation on Windows 10/11 Source: https://github.com/bkerler/edl/blob/master/README.md Installs EDL on Windows 10 and later using PowerShell. This method downloads and executes an installation script. ```powershell curl.exe -O https://raw.githubusercontent.com/bkerler/edl/master/install_edl_win10_win11.ps1; .\install_edl_win10_win11.ps1 ``` -------------------------------- ### Install Dependencies Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Installs the necessary Python packages for the sierrakeygen tool. Ensure you have Python 3.6 or later installed. ```bash ~> pip3 install -r requirements.txt ``` -------------------------------- ### Flash Firmware using qmi-utils Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Update modem firmware using the qmi-firmware-update tool. Requires installation of qmi-glib packages and specifying the correct USB VID/PID. ```bash ~ > sudo apt install libqmi-glib5 libqmi-proxy libqmi-utils -y ~ > qmi-firmware-update --update -d 1199:9091 firmware.cwe firmware.nvu 1199:9091 is usb vid/pid ``` -------------------------------- ### Get Firmware Details Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Retrieve detailed firmware information from the modem using the ATI and AT!PACKAGE? commands. ```text ATI AT!PACKAGE? ``` -------------------------------- ### Get Partition Info Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Display information about the modem's partitions using the AT!PARTINFO? command. ```text AT!PARTINFO? ``` -------------------------------- ### Example: Remove Band 03 Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Example of removing band with index 03 from the modem configuration. ```text AT!BAND=03,"",0,0 ``` -------------------------------- ### Dump Sectors with Response Source: https://github.com/bkerler/edl/blob/master/README.md Dump a specified number of sectors from a starting sector to a file, acknowledging the phone's response. ```bash edl rs 0 15 data.bin ``` -------------------------------- ### Install EDL on Debian/Ubuntu/Mint Source: https://github.com/bkerler/edl/blob/master/README.md Installs necessary system packages for EDL on Debian-based systems. It also includes steps to stop and disable ModemManager, which can interfere with EDL. ```bash # Debian/Ubuntu/Mint/etc sudo apt install adb fastboot python3-dev python3-pip liblzma-dev git sudo apt purge modemmanager ``` -------------------------------- ### Install EDL on Arch/Manjaro Source: https://github.com/bkerler/edl/blob/master/README.md Installs necessary packages for EDL on Arch Linux and its derivatives using pacman. It also includes steps to remove ModemManager. ```bash # Arch/Manjaro/etc sudo pacman -S android-tools python python-pip git xz sudo pacman -R modemmanager ``` -------------------------------- ### Dump UFS Sectors to File Source: https://github.com/bkerler/edl/blob/master/README.md Dumps a specified number of sectors from a starting sector on a UFS LUN to a binary file. ```bash edl rs 0 15 data.bin --memory=ufs --lun=0 ``` -------------------------------- ### Print GPT on EMMC Device Source: https://github.com/bkerler/edl/blob/master/README.md Display the GUID Partition Table (GPT) information from a device using EMMC flash. ```bash edl printgpt ``` -------------------------------- ### Print GPT on UFS Lun Source: https://github.com/bkerler/edl/blob/master/README.md Prints the GPT (GUID Partition Table) for a specific UFS Logical Unit Number (LUN). ```bash edl printgpt --memory=ufs --lun=0 ``` -------------------------------- ### Set Preferred Modem Image Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Specify the preferred modem image using AT!IMPREF. Also shows how to list, delete, or get image information. ```text AT!IMPREF="GENERIC" AT!IMAGE=? AT!IMAGE=[,[,[,"",""]]] op - 0:delete 1:list 2:get max num images type - 0:FW 1:CONFIG slot - FW slot index - none implies all slots AT!IMAGE?[[,]] AT!IMAGE=0,0,1 Op=0 (Delete), Type=0 (FW), Slot Index=1 ``` -------------------------------- ### Get Signal Info Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Retrieve current signal status information from the modem using the AT!GSTATUS? command. ```text AT!GSTATUS? ``` -------------------------------- ### Get Challenge for Modem Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Obtains a challenge string from the Sierra Wireless modem using AT commands. Use the appropriate command based on the task (unlock, MEP, or CND). ```bash AT!OPENLOCK? ``` ```bash AT!OPENMEP? ``` ```bash AT!OPENCND? ``` -------------------------------- ### Get Flash Memory Info Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Obtain information about the modem's flash memory, including bad blocks, using AT!FMBADBLOCKS? and AT!BSINFO. ```text AT!FMBADBLOCKS? AT!BSINFO ``` -------------------------------- ### Reset API Argument and Reinitialize Source: https://github.com/bkerler/edl/blob/master/API_README.md Use `reset_arg()` to revert an option to its default value. Reinitialize the API using `reinit()` for the changes to take effect. This is necessary to modify options after the initial setup. ```python e.reset_arg("--debugmode") if (e.reinit() == 1): exit(1) ``` -------------------------------- ### Switch to QC Download Mode Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Initiate Qualcomm download mode on the modem using AT!BOOTHOLD followed by AT!QPSTDLOAD. ```text AT!BOOTHOLD AT!QPSTDLOAD ``` -------------------------------- ### Display EDL Tool Help Source: https://github.com/bkerler/edl/blob/master/README.md Run this command to view all available options and commands for the EDL tool. ```bash edl -h ``` -------------------------------- ### QFIL Emulation for Flashing Source: https://github.com/bkerler/edl/blob/master/README.md Emulates QFIL flashing using rawprogram and patch XML files, and an image directory. ```bash edl qfil rawprogram0.xml patch0.xml image_dir ``` -------------------------------- ### Show Secure Boot Info Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Display Secure Boot configuration and PKHASH using AT!SECBOOTCFG? and AT!SECBOOTPKHASH?. ```text AT!SECBOOTCFG? Show Secure Boot config AT!SECBOOTPKHASH? Show Secure Boot PKHASH ``` -------------------------------- ### Initialize Git Submodules Source: https://github.com/bkerler/edl/blob/master/README.md Run this command to automatically fetch and initialize necessary git submodules, including loaders. ```bash git submodule update --init --recursive ``` -------------------------------- ### List Custom Settings Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Display all available custom settings on the modem using the AT!CUSTOM? command. ```text AT!CUSTOM? ``` -------------------------------- ### Show and Set Product Identifier Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Display the current product identifier (PRI) and set a new one using AT!PRIID? and AT!USBPID. ```text AT!PRIID? Show product identifier PRI Part Number: 9907344 Revision: 002.001 Customer: Generic-M2M Carrier PRI: 9999999_9907259_SWI9X50C_01.08.04.00_00_GENERIC_002.012_000 AT!USBPID="9907344","002.001","Generic-M2M" Set PartNr, Revision and Customer ``` -------------------------------- ### Show Product Info Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Retrieve product information, including USB product name and manufacturer, using AT!USBPRODUCT? and AT!USBMANUFACTURER?. ```text AT!USBPRODUCT? Sierra Wireless EM7565 Qualcomm® Snapdragon™ X16 LTE-A AT!USBMANUFACTURER? Sierra Wireless, Incorporated ``` -------------------------------- ### Import and Instance EDL API Source: https://github.com/bkerler/edl/blob/master/API_README.md Import the necessary library and create an instance of the EDL API. This is the first step before configuring or using any API functionalities. ```python from edlclient.Library.api import * e = edl_api() ``` -------------------------------- ### Write All Files from Directory to Partitions Source: https://github.com/bkerler/edl/blob/master/README.md Write all files from a specified directory to their corresponding partitions on the device. ```bash edl wl dumps ``` -------------------------------- ### Autoinstall EDL Drivers on Linux Source: https://github.com/bkerler/edl/blob/master/README.md Runs the autoinstall script to set up EDL drivers on a Linux system. This command should be run as root. ```bash ./autoinstall.sh ``` -------------------------------- ### View Possible Bands Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md List all possible bands that can be configured on the modem using the AT!BAND=? command. ```text AT!BAND=? ``` -------------------------------- ### Dump All UFS Partitions to Directory with XML Source: https://github.com/bkerler/edl/blob/master/README.md Dumps all partitions from all UFS LUNs to a directory and generates rawprogram XML files. ```bash edl rl dumps --memory=ufs --genxml ``` -------------------------------- ### Print GPT in Streaming Mode (Sierra Wireless) Source: https://github.com/bkerler/edl/blob/master/README.md Prints the partition table in streaming mode for Sierra Wireless modems after specific AT commands or script execution. ```bash edl --vid 1199 --pid 9070 --loader=loaders/NPRG9x35p.bin printgpt ``` -------------------------------- ### Set USB VID and PID Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Configure the USB Vendor ID (VID) and Product ID (PID) for the modem. PID can be set for application and boot modes. ```text AT!USBVID=1199 Set usb vid of 0x1199 AT!USBPID=9091,9090 Set usb pid (app=0x9091, boot=0x9090) ``` -------------------------------- ### Send XML File via Firehose Source: https://github.com/bkerler/edl/blob/master/README.md Use this command to send a specified XML configuration file to the device via the Firehose protocol. ```bash edl xml run.xml ``` -------------------------------- ### Write Image to Partition Source: https://github.com/bkerler/edl/blob/master/README.md Write an image file (e.g., 'boot.img') to a specific partition (e.g., 'boot_a') on the device. ```bash edl w boot_a boot.img ``` -------------------------------- ### Reset to Factory Settings Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Perform a factory reset on the modem using the AT!RMARESET=1 command. ```text AT!RMARESET=1 ``` -------------------------------- ### Print GPT in Streaming Mode (Netgear MR1100) Source: https://github.com/bkerler/edl/blob/master/README.md Prints the partition table for Netgear MR1100 after entering download mode and rebooting to 0x9008. ```bash edl printgpt --loader=Loaders/qualcomm/patched/mdm9x5x/NPRG9x55p.bin ``` ```bash edl printgpt ``` -------------------------------- ### Dump EFS Modem Partition Source: https://github.com/bkerler/edl/blob/master/README.md Dump the EFS Modem partition to a specified binary file. Requires VID, PID, and interface. ```bash qc_diag -vid 0x1234 -pid 0x5678 -interface 0 -efsread efs.bin ``` -------------------------------- ### Display Sierrakeygen Help Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Shows the help message for the sierrakeygen command-line tool, listing all available options and their usage. ```bash ~> sierrakeygen -h ``` -------------------------------- ### Enable ADB Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Enable ADB on the modem, typically for MC7304/AC810 models, after sending a valid openlock request. ```text AT!CUSTOM="ADBENABLE", 1 ``` -------------------------------- ### Initialize EDL API Source: https://github.com/bkerler/edl/blob/master/API_README.md Initialize the API after setting desired options. The `init()` method returns a status code (0 for success, 1 for error). Ensure initialization happens after setting arguments. ```python if (e.init() == 1): exit(1) ``` -------------------------------- ### Set Modem to Use All Bands Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Configure the modem to utilize all available bands by sending AT!BAND=00. ```text AT!BAND=00 ``` -------------------------------- ### Write UFS Files from Directory with Auto-detected LUN Source: https://github.com/bkerler/edl/blob/master/README.md Writes all files from a directory to their corresponding partitions, attempting to auto-detect the UFS LUN. ```bash edl wl dumps --memory=ufs ``` -------------------------------- ### Dump GPT and Generate XML Source: https://github.com/bkerler/edl/blob/master/README.md Dump GPT partition information to binary files and generate a rawprogram.xml file in the current directory. ```bash edl gpt . --genxml ``` -------------------------------- ### Run EDL with Specific Serial Port Name Source: https://github.com/bkerler/edl/blob/master/README.md Use this command to initiate EDL mode by specifying the exact serial port name. ```bash edl --portname \\.\\COM1 ``` -------------------------------- ### Dump Multiple Partitions Source: https://github.com/bkerler/edl/blob/master/README.md Dump multiple specified partitions to corresponding output files. ```bash edl r boot_a,boot_b boot_a.img,boot_b.img ``` -------------------------------- ### Send Raw XML String Source: https://github.com/bkerler/edl/blob/master/README.md Send a custom XML string directly to the device. Ensure the XML is properly formatted. ```bash edl rawxml "" ``` -------------------------------- ### Send Diagnostic Info Source: https://github.com/bkerler/edl/blob/master/README.md Use this command to send diagnostic information (cmd "00") to the device. Requires VID, PID, and interface. ```bash qc_diag -vid 0x1234 -pid 0x5678 -interface 0 -info ``` -------------------------------- ### Run Sierrakeygen with Specific Challenge and Device Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Generates a response using the sierrakeygen tool by providing a specific challenge and the device generation. Use -l for AT!OPENLOCK, -m for AT!OPENMEP, and -c for AT!OPENCND. ```bash ~> sierrakeygen -l BE96CBBEE0829BCA -d MDM9200 ``` -------------------------------- ### Reboot Modem and Save Settings Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Reboot the modem and ensure all current settings are saved using the AT!RESET command. ```text AT!RESET ``` -------------------------------- ### Write GPT Partition Table Source: https://github.com/bkerler/edl/blob/master/README.md Write a new GPT partition table from an image file to the first sector of the device. ```bash edl w gpt gpt.img ``` -------------------------------- ### Dump Whole Flash from EMMC Device Source: https://github.com/bkerler/edl/blob/master/README.md Create a complete backup of the device's flash memory to a file named 'flash.bin'. ```bash edl rf flash.bin ``` -------------------------------- ### Dump Specific UFS Partition to File Source: https://github.com/bkerler/edl/blob/master/README.md Dumps a specific partition (e.g., 'boot_a') from a UFS LUN to a specified filename. ```bash edl r boot_a boot.img --memory=ufs --lun=4 ``` -------------------------------- ### Backup NV Items Source: https://github.com/bkerler/edl/blob/master/README.md Backup all NV items from the device to a JSON structured file. Requires VID, PID, and interface. ```bash qc_diag -vid 0x1234 -pid 0x5678 -interface 0 -nvbackup backup.json ``` -------------------------------- ### Dump Single Partition Source: https://github.com/bkerler/edl/blob/master/README.md Dump a specific partition (e.g., 'boot_a') to a file with a specified filename (e.g., 'boot.img'). ```bash edl r boot_a boot.img ``` -------------------------------- ### Perform Another Peek Command Source: https://github.com/bkerler/edl/blob/master/API_README.md Execute the `peek` command again with different offset parameters after reinitializing the API. ```python e.peek(0x100080, 80, "peek2.bin") ``` -------------------------------- ### Connect via ADB over TCP Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Connect to the modem using ADB over TCP after enabling ADB. Assumes ADB is running on port 5555. ```bash adb tcpip 5555 adb connect 192.168.1.1 ``` -------------------------------- ### Dump UFS GPT and Generate XML Source: https://github.com/bkerler/edl/blob/master/README.md Dumps GPT main and backup files and generates rawprogram XML files to the current directory for UFS devices. ```bash edl gpt . --genxml --memory=ufs ``` -------------------------------- ### Dump All UFS LUNs to Binary Files Source: https://github.com/bkerler/edl/blob/master/README.md Dumps the content of all UFS LUNs and saves them as individual binary files (e.g., lun0_flash.bin, lun1_flash.bin). ```bash edl rf flash.bin --memory=ufs ``` -------------------------------- ### Enable OEM Unlock Source: https://github.com/bkerler/edl/blob/master/README.md Unlocks OEM if the 'config' partition exists. Fastboot OEM unlock is still required afterwards. ```bash edl modules oemunlock enable ``` -------------------------------- ### Dump Partitions with Skipping Userdata Source: https://github.com/bkerler/edl/blob/master/README.md Dump all partitions to a directory named 'dumps', skipping the 'userdata' partition, and generate a rawprogram.xml file. ```bash edl rl dumps --skip=userdata --genxml ``` -------------------------------- ### Convert Sniffed Data to EDL Loader Source: https://github.com/bkerler/edl/blob/master/README.md Convert sniffed USB data into an EDL loader format using the provided binary file. ```bash beagle_to_loader sniffeddata.bin ``` -------------------------------- ### Write UFS Files from Directory to Partitions Source: https://github.com/bkerler/edl/blob/master/README.md Writes all files from a specified directory to their corresponding partitions on a UFS LUN. ```bash edl wl dumps --memory=ufs --lun=0 ``` -------------------------------- ### Dump UFS Lun to Binary File Source: https://github.com/bkerler/edl/blob/master/README.md Dumps the entire content of a UFS Logical Unit Number (LUN) to a binary file. ```bash edl rf lun0.bin --memory=ufs --lun=0 ``` -------------------------------- ### Add a New Band Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Add a new band to the modem's configuration. Replace '[index]' and '[name]' with appropriate values. ```text AT!BAND=[index],"[name]",0,8000000 ``` -------------------------------- ### Execute Peek Command Source: https://github.com/bkerler/edl/blob/master/API_README.md Call API methods corresponding to EDL commands. The `peek` command requires offset, length, and filename as arguments. ```python e.peek(0x100000, 80, "output.bin") ``` -------------------------------- ### Display Secureboot Fuses Source: https://github.com/bkerler/edl/blob/master/README.md Displays secure boot fuses. This command is only supported on EL3 loaders. ```bash edl secureboot ``` -------------------------------- ### Dump PBL Source: https://github.com/bkerler/edl/blob/master/README.md Dumps the PBL (Primary Bootloader). This command is only supported on EL3 loaders. ```bash edl pbl pbl.bin ``` -------------------------------- ### Write UFS GPT Partition Table Source: https://github.com/bkerler/edl/blob/master/README.md Writes a GPT partition table from an image file to a specified UFS LUN. ```bash edl w gpt gpt.img --memory=ufs --lun=4 ``` -------------------------------- ### Send Hex Command Source: https://github.com/bkerler/edl/blob/master/README.md Send a specific command as a hex string to the device. Requires VID, PID, and interface. ```bash qc_diag -vid 0x1234 -pid 0x5678 -interface 0 -cmd 00 ``` -------------------------------- ### Write UFS Partition from Image File Source: https://github.com/bkerler/edl/blob/master/README.md Writes an image file to a specified partition on a UFS LUN. ```bash edl w boot boot.img --memory=ufs --lun=4 ``` -------------------------------- ### List EFS Directory Source: https://github.com/bkerler/edl/blob/master/README.md Display the directory listing of a specified path within the EFS filesystem. Requires VID, PID, and interface. ```bash qc_diag -vid 0x1234 -pid 0x5678 -interface 0 -efslistdir / ``` -------------------------------- ### Run Diag Port Info Source: https://github.com/bkerler/edl/blob/master/README.md Retrieves information from a device using the diag port, specifying VID, PID, and interface. ```bash qc_diag -vid 0x05c6 -pid 0x676c -interface 0 -info ``` -------------------------------- ### Run EDL with Serial Port Autodetection Source: https://github.com/bkerler/edl/blob/master/README.md Use this command to initiate EDL mode when the serial port can be automatically detected. ```bash edl --serial ``` -------------------------------- ### Dump UFS Crypto Footer Source: https://github.com/bkerler/edl/blob/master/README.md Dumps the crypto footer from a UFS device to a specified file. ```bash edl footer footer.bin --memory=ufs ``` -------------------------------- ### Enable Telnet Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Enable Telnet access on the modem after sending a valid openlock request. The specific command may vary by model. ```text at!custom="TELNETENABLE",1 ``` -------------------------------- ### Dump UFS Partitions to Directory with Skip Source: https://github.com/bkerler/edl/blob/master/README.md Dumps specified partitions from a UFS LUN to a directory, skipping certain partitions. ```bash edl rl dumps --memory=ufs --lun=0 --skip=userdata,vendor_a ``` -------------------------------- ### Set USB Composition Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Configure the USB composition mode for the modem, such as diag, nmea, modem, or mbim. ```text AT!USBCOMP=1,3,0000100D ``` -------------------------------- ### Enable Telnet on MR1100 Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Enable Telnet on the MR1100 model by first enabling RD and Telnet, then rebooting. ```text AT!TELEN=1 AT!CUSTOM="RDENABLE", 1 AT!CUSTOM="TELNETENABLE", 1 ``` -------------------------------- ### Parse EDL Loaders from a Directory Source: https://github.com/bkerler/edl/blob/master/README.md Use this command to parse EDL loaders from a specified directory and organize them. ```bash fhloaderparse newstuff Loaders ``` -------------------------------- ### Dump Crypto Footer Source: https://github.com/bkerler/edl/blob/master/README.md Extract and save the crypto footer from Android devices using EMMC flash to a file. ```bash edl footer footer.bin ``` -------------------------------- ### Enable Enhanced Commands Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Enables enhanced AT commands on the modem. The generic password is 'A710'. Other known passwords for specific devices are also listed. ```bash AT!ENTERCND=A710 ``` -------------------------------- ### Print GPT of All UFS LUNs Source: https://github.com/bkerler/edl/blob/master/README.md Prints the GPT for all available UFS Logical Unit Numbers (LUNs) on the device. ```bash edl printgpt --memory=ufs ``` -------------------------------- ### Memory Dump (0x900E Mode) Source: https://github.com/bkerler/edl/blob/master/README.md Initiates a memory dump when the device is in 0x900E mode. ```bash edl memorydump ``` -------------------------------- ### Dump Multiple UFS Partitions to Multiple Files Source: https://github.com/bkerler/edl/blob/master/README.md Dumps multiple specified partitions from UFS to corresponding specified filenames. ```bash edl r boot_a,boot_b boot_a.img,boot_b.img --memory=ufs ``` -------------------------------- ### Set Password for OpenCND Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Set a password for OpenCND using the AT!SETCND command. Replace "[pwd]" with the desired password. ```text AT!SETCND="[pwd]" ``` -------------------------------- ### Send Generated Response to Modem Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Sends the response generated by sierrakeygen back to the Sierra Wireless modem using the appropriate AT command. The command depends on whether you are unlocking, setting MEP, or setting CND. ```bash AT!OPENLOCK=[response from generator] ``` ```bash AT!OPENMEP=[response from generator] ``` ```bash AT!OPENCND=[response from generator] ``` -------------------------------- ### Dump Sectors without Response Source: https://github.com/bkerler/edl/blob/master/README.md Dump a specified number of sectors to a file, ignoring the phone's ACK response. Useful for unstable connections. ```bash edl rs 0 15 data.bin --skipresponse ``` -------------------------------- ### Reset and Deinitialize API Source: https://github.com/bkerler/edl/blob/master/API_README.md Use the `reset()` command to restart the Android device. The `deinit()` method can be called explicitly to free the API, or it will be handled automatically upon instance destruction or program exit. ```python e.reset() ``` -------------------------------- ### Enable EDL Debug Mode Source: https://github.com/bkerler/edl/blob/master/README.md Enable verbose debug mode for the EDL tool. Use this only when necessary as it generates extensive output. ```bash edl [anycommand] --debugmode ``` -------------------------------- ### Clone Repository and Update Submodules (Linux) Source: https://github.com/bkerler/edl/blob/master/README.md Clones the EDL repository and updates its submodules on a Linux system. Note that --recurse-submodules is not used here. ```bash git clone https://github.com/bkerler/edl.git # do NOT use --recurse-submodules cd edl git submodule update --init --recursive ``` -------------------------------- ### Write UFS Raw Image to Flash Source: https://github.com/bkerler/edl/blob/master/README.md Writes a raw image file to the flash of a UFS LUN. ```bash edl wf dump.bin --memory=ufs --lun=0 ``` -------------------------------- ### Set API Arguments Source: https://github.com/bkerler/edl/blob/master/API_README.md Use the `set_arg()` method to configure EDL options, such as enabling debug mode. The method returns the full arguments dictionary or an error message if the key is invalid. ```python e.set_arg("--debugmode", True) ``` -------------------------------- ### Run Sierrakeygen for Automatic Unlock Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Executes the sierrakeygen tool with the -u flag for an automatic unlock process. This is a simplified way to generate the necessary response. ```bash ~> sierrakeygen -u ``` -------------------------------- ### Display Memory Qword Source: https://github.com/bkerler/edl/blob/master/README.md Displays an 8-byte (qword) value from a specified memory offset. ```bash edl peekqword 0x200000 ``` -------------------------------- ### Set New Password After Unlock Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Sets a new password for enhanced commands using AT!SETCND after successfully unlocking the modem with AT!OPENLOCK. This is useful if the original password is unknown. ```bash AT!SETCND="pwd" ``` -------------------------------- ### Dump QFPROM Fuses Source: https://github.com/bkerler/edl/blob/master/README.md Dumps QFPROM fuses. This command is only supported on EL3 loaders. ```bash edl qfp qfp.bin ``` -------------------------------- ### Dump Specific UFS Partition with Auto-detected LUN Source: https://github.com/bkerler/edl/blob/master/README.md Dumps a specific partition to a filename, automatically detecting the UFS LUN. ```bash edl r boot_a boot.img --memory=ufs ``` -------------------------------- ### Set SELinux to Permissive Mode Source: https://github.com/bkerler/edl/blob/master/README.md Temporarily sets SELinux to permissive mode to avoid potential permission issues. This is often needed on RedHat-like systems. ```bash sudo setenforce 0 ``` -------------------------------- ### Dump Memory Region to File Source: https://github.com/bkerler/edl/blob/master/README.md Dumps a specified number of bytes from a memory offset to a binary file. ```bash edl peek 0x200000 0x10 mem.bin ``` -------------------------------- ### Set Modem to Use Only LTE Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Restrict the modem to use only LTE bands by sending the AT!SELRAT=06 command. ```text AT!SELRAT=06 ``` -------------------------------- ### Write Memory from Binary File Source: https://github.com/bkerler/edl/blob/master/README.md Writes the content of a binary file to a specified memory offset. ```bash edl poke 0x200000 mem.bin ``` -------------------------------- ### Write Raw Image Dump to Flash Source: https://github.com/bkerler/edl/blob/master/README.md Write a raw image dump file directly to the device's flash memory. ```bash edl wf dump.bin ``` -------------------------------- ### Reboot the Phone Source: https://github.com/bkerler/edl/blob/master/README.md Command to reboot the connected device. ```bash edl reset ``` -------------------------------- ### Send SPC Source: https://github.com/bkerler/edl/blob/master/README.md Send a Service Programming Code (SPC) to the device. The SPC is provided as a hex string. ```bash qc_diag -vid 0x1234 -pid 0x5678 -interface 0 -spc 303030303030 ``` -------------------------------- ### Write Memory Qword Source: https://github.com/bkerler/edl/blob/master/README.md Writes an 8-byte (qword) value to a specified memory offset. ```bash edl pokeqword 0x200000 0x400000 ``` -------------------------------- ### Read NV Item Source: https://github.com/bkerler/edl/blob/master/README.md Display a specific Non-Volatile (NV) item from the device. The item is specified by its hexadecimal address. ```bash qc_diag -vid 0x1234 -pid 0x5678 -interface 0 -nvread 0x55 ``` -------------------------------- ### Dump Memory Region as Hex String Source: https://github.com/bkerler/edl/blob/master/README.md Dumps a specified number of bytes from a memory offset and displays them as a hex string. ```bash edl peekhex 0x200000 0x10 ``` -------------------------------- ### Stop and Disable ModemManager on OpenRC Source: https://github.com/bkerler/edl/blob/master/README.md Commands to stop and disable the ModemManager service on Linux distributions using OpenRC. This command should be run as root. ```bash # For OpenRC distros (run as root!) rc-update del modemmanager default boot sysinit rc-service modemmanager stop ``` -------------------------------- ### Lenovo Laptop Whitelist Bypass Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Commands to bypass Lenovo laptop whitelist restrictions, including disabling fast enumeration and forcing USB2 mode. ```text AT!ENTERCND="A710" AT!CUSTOM="FASTENUMEN",2 Disable fast enumeration and only show up after init AT!PCOFFEN=2 Ignore W_DISABLE pin AT!USBSPEED=0 Force usb2 mode AT!RESET ``` -------------------------------- ### Access Serial Port via TCP Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md For specific modem models (AC785/AC790/AC810/MR1100), access the serial port using Telnet over TCP. Ensure the HostName and Port are correctly configured. ```text HostName: 192.168.1.1 Port: 5510 ConnectionType: Telnet ``` -------------------------------- ### Stop and Disable ModemManager on Systemd Source: https://github.com/bkerler/edl/blob/master/README.md Commands to stop and disable the ModemManager service on Linux distributions using systemd. ```bash # For systemd distros sudo systemctl stop ModemManager sudo systemctl disable ModemManager ``` -------------------------------- ### Remove a Band Source: https://github.com/bkerler/edl/blob/master/sierrakeygen_README.md Remove a previously added band from the modem's configuration by specifying its index. ```text AT!BAND=[index],"",0,0 ``` -------------------------------- ### Erase Partition Source: https://github.com/bkerler/edl/blob/master/README.md Erase the contents of a specified partition (e.g., 'misc') on EMMC flash. ```bash edl e misc ``` -------------------------------- ### Erase UFS Partition Source: https://github.com/bkerler/edl/blob/master/README.md Erases a specified partition on a UFS LUN. ```bash edl e misc --memory=ufs --lun=0 ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.