Basic requirements
Important: Please read through the instructions at least once before actually following them, so as to avoid any problems due to any missed steps!
- Make sure your computer has
adb
. Setup instructions can be found here. - Enable USB debugging on your device.
Preparing for installation
Samsung devices come with a unique boot mode called “Download mode”, which is very similar to “Fastboot mode” on some devices with unlocked bootloaders. Heimdall is a cross-platform, open-source tool for interfacing with Download mode on Samsung devices. The preferred method of installing a custom recovery is through Download Mode – rooting the stock firmware is neither necessary nor required.- Enable Developer Options by pressing the “Build Number” option in the “Settings” app within the “About” menu
- From within the Developer options menu, enable OEM unlock.
- Download and install the appropriate version of the Heimdall suite for your machine’s OS
- Windows: Extract the Heimdall suite zip and take note of the new directory containing
heimdall.exe
. You can verify Heimdall is functioning by opening a Command Prompt or PowerShell in that directory and runningheimdall version
. - If you receive an error, install the Microsoft Visual C++ 2015-2019 Redistributable Package (x86) on your computer.
- Linux: Extract the Heimdall suite zip and take note of the new directory containing
heimdall
. Now copyheimdall
into a directory in $PATH, a common one on most distros will be /usr/local/bin. For examplecp heimdall /usr/local/bin
. You can verify Heimdall is functioning by opening a Terminal and runningheimdall version
. - macOS: Mount the Heimdall suite DMG. Now drag
heimdall
down into the/usr/local/bin
symlink provided in the DMG. You can verify Heimdall is functioning by opening a Terminal and runningheimdall version
.
Note: These Heimdall suite distributions were built by LineageOS Developers Nolen Johnson (npjohnson) and Jan Altensen (Stricted), as the Heimdall suite executables distributed on the official Heimdall website were outdated and the repo mostly abandoned. Modifications were made to make it build and function on modern OSes. - Windows: Extract the Heimdall suite zip and take note of the new directory containing
- Power off the device, and boot it into download mode:
- With the device powered off, hold Volume Down + Home + Power.
- Now, click the button that the on screen instructions correlate to “Continue”, and insert the USB cable into the device.
- For Windows user only: install the necessary drivers. A more complete set of instructions can be found in the Zadig user guide.
- If nothing relevant appears, try uninstalling any Samsung related Windows software, like Samsung Windows drivers and/or Samsung Kies.
- Run
zadig.exe
found in your extracted Heimdall directory.
Note: For the interested, source and documentation for zadig.exe can be found here.- Choose Options » List all devices from the menu.
- Select Samsung USB Composite Device or MSM8x60 or Gadget Serial or Device Name from the drop down menu.
- Click Replace Driver, then selecting Install Driver from the drop down list built into the button.
- If you are prompted with a warning that the installer is unable to verify the publisher of the driver, select Install this driver anyway. You may receive two more prompts about security. Select the options that accept the warnings and allow you to carry on.
- On your machine, open a Command Prompt or PowerShell (Windows) window, or Terminal (Linux or macOS) window, and type:
heimdall print-pit
- If the device reboots that indicates that Heimdall is installed and working properly. If it does not, please refollow these instructions to verify steps weren’t missed, try a different USB cable, and a different USB port.
Installing a custom recovery using heimdall
- Download the custom recovery.
Tip: Ensure you download the
.img
file and not the .tar
or .tar.md5
versions.- Power off the device, and boot it into download mode:
- With the device powered off, hold Volume Down + Home + Power.
- Now, click the button that the on screen instructions correlate to “Continue”, and insert the USB cable into the device.
- On your machine, open a Command Prompt or PowerShell (Windows) window, or Terminal (Linux or macOS) window, and type:
heimdall flash --RECOVERY <recovery_filename>.img --no-reboot
Tip: The file may not be named identically to what stands in this command, so adjust accordingly. If the file is wrapped in a zip or tar file, extract the file first, because Heimdall is not going to do it for you. - A blue transfer bar will appear on the device showing the recovery image being flashed.
Note: The device will continue to display
Downloading... Do not turn off target!!
even after the process is complete. but When the status message in the top left of the devices’s display reports that the process is complete, you may proceed. - Unplug the USB cable from your device.
- Manually reboot into recovery, this may require pulling the device’s battery out and putting it back in, or if you have a non-removable battery, press the Volume Down + Power buttons for 8~10 seconds until the screen turns black & release the buttons immediately when it does, then boot to recovery:
- With the device powered off, hold Volume Up + Home + Power. but When the blue text appears, release the buttons.
Note: Be sure to reboot into recovery immediately after installing the custom recovery. If you don’t the stock ROM will overwrite the custom recovery with the stock recovery, and you’ll need to flash it again.
Installing PixelExperience from recovery
- Download the PixelExperience installation package that you would like to install or build the package yourself.
- If you are not in recovery, reboot into recovery:
- With the device powered off, hold Volume Up + Home + Power. When the blue text appears, release the buttons.
- Now tap Wipe.
- Now tap Format Data and continue with the formatting process. This will remove encryption and delete all files stored in the internal storage.
- Sideload the PixelExperience
.zip
package:- On the device, select “Advanced”, “ADB Sideload”, then swipe to begin sideload.
- On the host machine, sideload the package using:
adb sideload filename.zip
.Tip: If the process succeeds the output will stop at 47% and reportadb: failed to read command: Success/No error
.
- Once you have installed everything successfully, run ‘adb reboot’.