Skip to content

Flash Samsung Firmware on Mac with Heimdall & JOdin3

Odin is Samsung’s official firmware flash tool. It’s easy to use because it has a simple and user-friendly interface. The only limitation is that Odin supports Windows only. If you are a Mac or Linux user, you can’t use Odin to flash Samsung firmware. Earlier, there used to be a Java-based version of Odin named JOdin3 that you could use to flash Samsung firmware without Odin. You can also use Heimdall to flash Samsung firmware binaries without Odin on Windows, Linux, and Mac.

In this tutorial, we’ll see how we can use JOdin3 and Heimdall suite to install Samsung firmware on Mac.

Flash Samsung Firmware on Mac with Heimdall

As I already mentioned above, Samsung Odin is the most convenient tool for flashing firmware. If you can manage a Windows PC somehow, I would still recommend doing that. However, if you have no other choice but to flash Samsung firmware on your Mac without Odin, you can go with Heimdall.

Heimdall Suite is a third-party tool that works on Mac, Linux, and Windows. The problem is it’s not straightforward to use and its developer Benjamin Dobell hasn’t released an update since 2017. This might result in compatibility issues with the new versions of the macOS.

  1. Download Heimdall for Mac from the official website.
  2. Download the Samsung firmware binaries BL, AP, CP, and CSC for your Samsung device. To learn about the difference between CSC and Home CSC, read my article. You can use Samloader to download Samsung firmware on Mac.
  3. You’ll also need the PIT file for your Samsung device. Here’s how you can extract PIT from Samsung Galaxy devices.
  4. Make sure your Samsung device’s charging level is 70% or above.

Install and Set up Heimdall on Mac

If you try to install the Heimdall-1.4.0.dmg on your Mac, you’ll get an error saying “Heimdall Suite 1.4.0.pkg can’t be opened because it is from an unidentified developer.” heimdall installation error on mac

 

Luckily, there’s a workaround to get Heimdall up and running on Mac. Follow the steps given below to set up and install Heimdall on Mac via Homebrew.

  1. Open the Mac Terminal on your computer. To do so, you can use Command + Space Mac keyboard shortcut, type “Terminal” and press the Enter or Return key.
  2. Now, copy and paste the following command in the Terminal window and press the Enter key.
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  3. You will be prompted to grant sudo privilege by entering your Mac user password. Type the password you use to log in to your Mac and press the Enter key. Please note that your password won’t be visible in the Terminal. Type it anyway and it’ll work.enter password to install homebrew on mac
  4. Let the Terminal do its job and wait for Homebrew to install.homebrew installed on mac
  5. When you get the ‘Installation successful‘ message as shown above, paste the following code using Command + V.
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
  6. Once you run the above command, brew commands will become available in the Mac Terminal.home brew command in mac terminal
  7. Finally, it’s time to install the Heimdall Suite on your Mac. Execute the following command for that.
    brew install --cask heimdall-suite

    install heimdal on mac with homebrew command

Heimdall will be installed on your Mac and you can now use it.

Don’t Miss: How to Use ADB and Fastboot on Mac

Using Heimdall to Flash Samsung Firmware on Mac

Now that you have installed Heimdall, you can flash Samsung firmware using your Mac via the Heimdall frontend and terminal commands.

I assume you have already downloaded the Samsung firmware zip file as instructed above. You need to extract this zip to get the firmware binaries.

  1. Open the firmware folder. You’ll find 5 files inside with .tar.md5 extension: AP, BL, CP, CSC, and Home CSC
  2. Remove the .md5 extension from all files using the Rename option.rename samsung firmware on mac
  3. Now that you have only .tar files left, extract each file one by one.extract samsung firmware binaries
  4. Each extracted folder will have several firmware components.
  5. Go to the CSC folder and open the PIT file with Notepad. Below is an example of what PIT looks like from the Samsung Galaxy S23 Ultra.

    Samsung PIT analysis

    Samsung PIT file analysis

  6. Here, you’ll see the name of all the partitions and firmware components for your Samsung phone. You will find the name of the file for each partition.
    • APNHLOS ➡ NON-HLOS.bin
    • VBMETA_SYSTEM ➡ vbmeta_system.img
    • METADATA ➡ metadata.img
    • MODEM ➡ modem.bin
    • EFS ➡ efs.img
    • BOOT ➡ boot.img
    • INIT_BOOT ➡ init_boot.img
    • RECOVERY ➡ recovery.img
    • VENDOR_BOOT ➡ vendor_boot.img
    • VM-BOOTSYS ➡ vm-bootsys.img
    • SUPER ➡ super.img
    • PRISM ➡ prism.img
    • OPTICS ➡ optics.img
    • CACHE ➡ cache.img
    • CARRIER ➡ carrier.img
    • OMR ➡ omr.img
    • SPU ➡ spu.img
    • DTBO ➡ dtbo.img
    • USERDATA ➡ userdata.img
    • TZ ➡ tz.mbn
  7. Create a new folder and move the firmware components you want to flash to it.
  8. Since we’ll flash these files using a command line, we need to include the name of the partitions with the file name in the command as shown below.
    heimdall flash --repartition --resume --pit DM3Q_EUR_OPENX.pit --BOOT boot.img --INIT_BOOT init_boot.img --MODEM modem.bin --APNHLOS NON-HLOS.bin --VBMETA_SYSTEM vbmeta_system.img --METADATA metadata.img --RECOVERY recovery.img --VENDOR_BOOT vendor_boot.img --VM-BOOTSYS vm-bootsys.img --SUPER super.img --PRISM prism.img --OPTICS optics.img --CACHE cache.img --CARRIER carrier.img --OMR omr.img --SPU spu.img --DTBO dtbo.img --TZ tz.mbn --EFS efs.img
  9. Now, boot your Samsung Galaxy phone into Download Mode.
  10. Launch the Mac Terminal from the folder where you have all firmware components.
  11. Type the following command to list all the functionality Heimdall supports.
    heimdall help
  12. You can execute the following command in the Terminal to know the names of the partitions you
    wish to flash.
    heimdall print-pit --no-reboot
  13. Since you used --no-reboot in the above command, you must include --resume as an argument in the next command to continue.
  14. It’s strongly suggested that you must customize the following command according to the partitions mentioned in the PIT file of your Samsung device.
    heimdall flash --repartition --resume --pit DM3Q_EUR_OPENX.pit --BOOT boot.img --INIT_BOOT init_boot.img --MODEM modem.bin --APNHLOS NON-HLOS.bin --VBMETA_SYSTEM vbmeta_system.img --METADATA metadata.img --RECOVERY recovery.img --VENDOR_BOOT vendor_boot.img --VM-BOOTSYS vm-bootsys.img --SUPER super.img --PRISM prism.img --OPTICS optics.img --CACHE cache.img --CARRIER carrier.img --OMR omr.img --SPU spu.img --DTBO dtbo.img --TZ tz.mbn --EFS efs.img
  15. When the above command is executed, the firmware flashing will initiate.
  16. Wait until the flashing is complete and reboot your phone manually using the power button.

That’s it! You have successfully flashed Samsung firmware with Heimdall on your Mac computer.

Flashing Samsung Firmware with Heimdall Frontend

You can also use the Heimdall Frontend on your Mac to install Samsung firmware.

heimdall frontend mac os

Please note that Heimdall cannot flash the Samsung firmware binaries with .tar.md5 extension. You must create a Heimdall firmware package that contains a firmware XML. I have created a sample firmware.xml which you can edit or customize according to the firmware you have downloaded for your Samsung Galaxy device.

<?xml version="1.0" encoding="UTF-8"?>
<firmware version="1">
<name>Test Firmware</name>
<version>1.1</version>
<platform>
<name>Android</name>
<version>13</version>
</platform>
<developers>
<name>Benjamin Dobell</name>
</developers>
<devices>
<device>
<manufacturer>Samsung</manufacturer>
<product>SM-S918B</product>
<name>Galaxy S23 Ultra</name>
</device>
<device>
<manufacturer>Samsung</manufacturer>
<product>SM-S918B</product>
<name>Galaxy S23 Ultra</name>
</device>
<device>
<manufacturer>Samsung</manufacturer>
<product>SM-S918B</product>
<name>Ultra</name>
</device>
</devices>
<pit>DM3Q_EUR_OPENX.pit</pit>
<repartition>0</repartition>
<noreboot>0</noreboot>
<files>
<file>
<id>0</id>
<filename>gq3276-boot.img</filename>
</file>
<file>
<id>24</id>
<filename>Uh3276-modem.bin</filename>
</file>
<file>
<id>22</id>
<filename>em3276-super.img</filename>
</file>
<file>
<id>11</id>
<filename>fl3276-prism.img</filename>
</file>
<file>
<id>21</id>
<filename>Xd3276-cache.img</filename>
</file>
<file>
<id>3</id>
<filename>if3276-tz.mbn</filename>
</file>
<file>
<id>6</id>
<filename>cr3276-spu.img</filename>
</file>
</files>
</firmware>

Steps to Create a Heimdall Firmware Package

  1. Download the appropriate Samsung firmware and extract the downloaded zip.
  2. Open the extracted folder and remove the .md5 extension from the AP, BL, CP, and CSC binaries one by one.
  3. Extract the 4 .tar files one by one.
  4. Create a new folder and rename it to “samsung-firmware“.
  5. Now, move the firmware components such as modem,bin, cache.img, super.img, prism.img, omr.img, tz.mbn, etc. to the newly created folder.
  6. Also, copy the ‘firmware.xml’ to the same folder.
  7. Ensure that you mention all firmware file names in the firmware.xml. You can add as many lines as you wish. The XML will tell Heimdall which files to flash.
  8. Finally, open the firmware folder, select all files, and compress it as a .tar.gz file.

You’ve created your Heimdall firmware package to flash on your Samsung device.

Flash Samsung Firmware on Mac

  1. Boot your Samsung device into the Download mode. and connect to your Mac using a USB cable.
  2. Now, launch Heimdall Frontend and click on the Browse button under the Load Packages tab and add the Heimdall firmware package you created.flash samsung firmware on mac using heimdall
  3. Heimdall will start decompressing and extracting the firmware package. You’ll see all firmware components listed in the Package Files box.
  4. Now, click the Flash tab on Heimdall, click on the Browse button, and add the PIT file from the CSC folder.heimdall frontend mac os
  5. Finally, click on the Start button to flash the firmware on your Samsung Galaxy phone or tablet.

Flash Samsung Firmware Using JOdin 3 Casual

JOdin3 was created by Adam Outler back in 2014 to help Mac users flash Samsung firmware without using Samsung Odin. The developer also released JOdin3 Online which worked in a web browser and could be used on any operating system. JOdin3 worked perfectly until Samsung completely changed its firmware structure. Since JOdin3 was not updated by the developer, it started throwing errors with new firmware.

If you somehow manage to run JOdin 3 on your Mac, you can try the following steps to flash Samsung firmware.

  1. Download JOdin3 for Mac: JOdin3CASUAL-0.9.0-osx-incl-JavaFX.zip
  2. Open JOdin3 and untick the Auto Reboot and Re-partition options.
  3. Turn off your Samsung phone and boot it into Download mode.
  4. Connect it to your Mac.
  5. Click on the Bootloader, PDA, Phone, and CSC buttons one by one and add the corresponding firmware binaries as shown below.
    BL Bootloader BL_S918BXXU1AWBD_S918BXXU1AWBD_MQB62300606_REV00_user_low_ship_MULTI_CERT.tar.md5
    AP PDA AP_S918BXXU1AWBD_S918BXXU1AWBD_MQB62300606_REV00_user_low_ship_MULTI_CERT_meta_OS13.tar.md5
    CP PHONE CP_S918BXXU1AWBD_CP23738904_MQB62300606_REV00_user_low_ship_MULTI_CERT.tar.md5
    CSC CSC CSC_OXM_S918BOXM1AWBD_MQB62300606_REV00_user_low_ship_MULTI_CERT.tar.md5
  6. Once you have added all 4 firmware binaries to JOdin3, click on the Start button.jodin3 mac

 

Read Next: 65 Useful Google Chrome Keyboard Shortcuts for Mac

2 thoughts on “Flash Samsung Firmware on Mac with Heimdall & JOdin3”

  1. I gave up on heimdall b/c of systemetic bootloop. I could not figure out what are the partitions to specify in the heimdall flash command. In the screenshot you show the content of the PIT files, what is the meaning of the partitions highlighted in green? How do you know these are the one you need? What would be the harm of flashing every partitions listed in the PIT file?

    Thanks in advance for any help

    1. Hi,
      You can flash all the partitions and the associated image and bin files listed in the PIT file. However, the files highlighted with green are the one’s you can’t miss if you want a successful flash.

      In any case, you need to add the entry for each file in the firmware.xml file.

      I hope it helps. Regards!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.