EDL is an interface of Qualcomm chipsets, used to flash fastboot ROMs. It is used for unbricking purposes so it is allowed on many phones but it's been locked down on most recent Android models.
The screen will appear black and it will appear that the device is turned off, but to verify that this is not the case, we need the tools in EDL mode. The most famous is QFIL (Qualcomm Flash Image Loader), a proprietary software, but on GitHub there are many alternative open source projects.
Before doing edl stuff it is important to know how to enable edl mode.
Enabling EDL mode using a combo is the easiest way of enabling edl. Here are some of the ways you can enable EDL:
While pressing the combo you must insert the cable. The screen should be black... if you have failed to enter EDL mode, your device will start charging...
this is also easy... while pressing the edl button insert the cable to the device, when inserted wait for 5 seconds and stop pressing the button, and after that the screen will turn black... It is fairly cheap in some places(in the Philippines it costs $2). You could also make a DIY cable using a spare microusb cable.
turn on debugging and type in the command adb reboot edl
this will make your device restart to edl mode
This isn't that useful if you are going to use edl for unbricking or jailbreak purposes.
this is a very risky method i will make a seperate page for this method.
This is also important to know.. Because if edl․py isn't working correctly you can't run python3 edl.py -loader [Loadername] -reset
which means you'll have to turn off edl mode manually.
Removing the battery will shutdown the device and exit edl mode. This is the easiest way to exit edl mode on devices with a removable battery like the Nokia 8110 4G.
On some devices there is a button combo to turn off edl mode. For example on the Nokia 800 Tough it is D-Pad Down + Power Key (Just pressing the power key does not work).
Refer to what Luxferre said here:
If you can't get the combo button to work, or you can't open the phone... Welp, last option is to wait for months for the battery to die.
The EDL tool we will be using through out this page is andybalholm's fork of plugburn's fork of bkerler's edl․py tool.
andybalholm's fork works great on Nokia Phones, this was also tested on Maxcom MK241, and Alcatel OT-4044x.
(Nokia 8110 4G tested by me,
Nokia 800 Tough by Discord user iGameEveryDay#2197,
Nokia 2720 Flip, Alcatel OT-44044x, Nokia 6300 and 8000 tested by Luxferre,
and Maxcom MK241 tested by Discord user Zagreous#6927)
plugburn's fork was made for the CAT B35 and also works on Alcatel 4044O.
(both tested by Luxferre)
bkerler's tool was tested on the Alcatel A405DL MyFlip.
(All tests were carried out by LiKiWii U (on Discord) and Yossi.)
Both plugburn and andybalholm's fork uses the same commands and requirements. If you would like to try out bkerler's edl tool visit the github page since it uses different commands.
Using EDL on linux is pretty easy...
git clone https://github.com/andybalholm/edl
.mbn
file to the edl folder.sudo -H pip3 install pyusb pyserial capstone keystone-engine
Additionally, if you're running Linux and having issues with device access:
blacklist qcserial
to /etc/modprobe.d/blacklist.conf
51-edl.rules
to /etc/udev/rules.d
50-android.rules
to /etc/udev/rules.d
Note: Replace
[loader.mbn]
with the filename of the loader you have(don't add the brackets).
This command lists down the partitions
python3 edl.py -loader [loader.mbn] -printgpt
You can also dump the raw partition table into a file with the command -gpt [filename]
option, like this:
`python3 edl.py -loader [loader.mbn]
-r [partname] [filename]
option, for example:python3 edl.py -loader [loader.mbn] -r recovery recovery.img
recovery.img
file.python3 edl.py -loader [loader.mbn] -e userdata
python3 edl.py -loader [loader.mbn] -w userdata userdata.img
python3 edl.py -loader [loader.mbn] -reset
Unfortunately, unlike Linux we have to install drivers to make edl․py work... after a few months of using edl․py i have finally learned how to do it properly.
This is the installation part... In Windows there's a lot of things to do....
the contents of the folder should look like this
this is the folder where you will put the loader/mbn file
Run the exe file as Admin
uncheck "Install launcher for all users" and check the "Add Python 3.9 to PATH"
Don't customize the installation
pip3 install pyusb pyserial capstone keystone-engine
Before we can use actual commands we have plug in our device properly, so that edl․py will detect the device.
For that we will be using Zadig 2.5
Note: Don't use the one inside the edl folder since that one seems to be outdated (in my experience it doesn't work)
as for me i have already installed the driver, but sometimes it would reset back to the default driver, I recommend checking it before doing edl stuff.
When Installing the driver for the first time a USB device not recognised usually pop up. To fix that you must disable edl mode manually and turn it on again, after that check if libusb0 is installed.
Now, after all of that let's now start...
Run a cmd prompt in the edl folder(Shift + Right Click)
Note: replace
[loader.mbn]
with the filename of your loader(don't add the brackets), if you are using Python 3.7 usepython
instead ofpy
. On Windows 10 command prompt is disabled by default, you can try using powershell or doingcd
in command prompt.
This command lists down the partitions
py edl.py -loader [loader.mbn] -printgpt
You can also dump the raw partition table into a file with the command -gpt [filename]
option, like this:
py edl.py -loader [loader.mbn] -gpt gpt.img
-r <partname> <filename>
option, for example:py edl.py -loader [loader.mbn] -r recovery recovery.img
recovery.img
file.-e [partname]
option, for example to erase "userdata":py edl.py -loader [loader.mbn] -e userdata
-w [partname] [filename]
option, for example to replace the userdata:py edl.py -loader [loader.mbn] -w userdata userdata.img
py edl.py -h
yourself if you need to do this.py edl.py -loader [loader.mbn] -reset
Tips: If you get any errors, disable and enable edl mode manually. Also use a proper USB cord and avoid moving it. AND PLEASE PLUG IT INTO A USB 2.0 PORT.