Odin is the official tool by Samsung to flash its Galaxy line of smartphones and tablets. Unfortunately, the tool is available for Windows only. However, you can still flash your Samsung phone on Linux using Odin on Windows VM via a virtual machine named VirtualBox. Moreover, a recent leak has suggested, that Samsung has officially released Odin for Linux. In this tutorial, we’ll see how to use Odin on Linux to install the stock firmware or TWRP recovery.

Heimdall has indeed been there as an Odin alternative for Linux and macOS, but it doesn’t work efficiently with newer LZ4-encrypted Samsung firmware binaries and recent versions of macOS and Linux.

If you are a Linux user and want to use Samsung Odin, you aren’t out of luck. Follow the steps described below to install and set up VirtualBox on various Linux distributions like Oracle, Debian, Ubuntu, Fedora, etc. so that you can run Odin. Alternatively, you can download the official Odin v4 1.2.1 for Linux and install firmware on your device using commands.

Table of Content

Install VirtualBox and Create a Windows VM on Linux

Before you create a Windows virtual machine, you’ll need to install VirtualBox on your computer.

  1. Go to VirtualBox and download the package for your specific Linux distribution.
  2. When the installer package is downloaded, right-click on it, and select the Open with > Software Install option. If the Software Install option is unavailable on your computer, you should try a package manager like Synaptic or APT (Advanced Package Tool) to install it. Here are some commands to install VirtualBox on Debian, Fedora, RHEL, and CentOS-based Linux distributions.
    1. Debian-based Linux distributions: $ sudo apt install virtualbox -y
    2. Fedora-based Linux distributions: $ sudo dnf install virtualbox
    3. RHEL and CentOS-based Linux distributions: $ sudo yum install virtualbox
  3. If you get the “Kernel driver not installed” error while installing VirtualBox, try the tip given on askubuntu.com
  4. Now that you have installed VirtualBox, go to Microsoft’s download page and download Windows 10 ISO image.
  5. Launch VirtualBox and click New.Oracle virtual box manager
  6. Type Windows 10 in the Name field, select the Windows 10 installer image, and click on Next.installing windows 10 on linux via VM
  7. You’ll be prompted to enter your username and password.
  8. If you download the 32-bit version of Windows 10, set the RAM Memory Size to 1GB or 1024MB. However, for the 64-bit version, you’ll need to assign at least 2GB or 2048MB.select memory size for windows vm on linux
  9. Now, click the Create a virtual hard disk now button. assign hard disk for wondows vm installation on linux
  10. On the next screen, choose the VDI (VirtualBox Disk Image) as the hard disk type and click Next.
  11. Now, choose the size of the virtual hard disk and click the Create button. If your purpose of setting up the Windows VM on Linux is only to flash Samsung firmware using Odin, you can set the size between 25 and 50GB.file location size for windows 10 vm on linux
  12. Now, go to Settings > Storage, click Empty > CD icon in the Attributes section, and choose the Choose a Disk File option.choose a disk to install windows vm
  13. Navigate to the downloaded Windows ISO image and select it.
  14. Finally, click Open to initiate the installation of Windows 10 in the VM environment.
  15. The installation process will take some time and your computer will reboot a couple of times.

Go through the Windows setup process after the OS is installed and you are all set to run Odin on the Windows virtual machine.virtualbox windows vm on linux

Steps to Install and Use Odin Linux via Windows VM

Setting up USB Connection in Windows VM

Follow the steps below to make your VirtualBox Linux computer recognize your Samsung phone as a USB device.

  1. Launch VirtualBox, select Windows 10, and click Start.
  2. Download the latest Samsung USB drivers for Windows and install the downloaded EXE file.
  3. Turn off the Windows VM.
  4. Open the Linux Terminal and execute the following Bash command which unloads the ‘cdc_acm’ module. You can later load it by executing insmod cdc_acm command in the Terminal.
    sudo rmmod cdc_acm
  5. Make sure that the Windows VM is turned off and launch VirtualBox.
  6. Go to Settings > USB > Enable USB Controller, click on it and manually select 2.0 or 3.0 as USB controller.
  7. Now, close VirtualBox, open the Terminal and run the Bash command mentioned below.
    sudo usermod -a -G vboxusers $USER
  8. If you don’t find your Samsung devices listed under USB devices, execute the following command:
    sudo gpasswd -a myusername vboxusers
  9. Now, log out of your computer and log in again.
  10. Launch VirtualBox and click on Settings > USB.
  11. It’s time to boot your Samsung phone into the Download Mode so that you can add it as an authorized USB device.
  12. Connect your phone to your computer via a USB cable and click on the USB cable icon with a plus sign.
  13. You should see your Samsung device with its model number. Click on the box that displays your phone’s name. You’ll see your device showing up under USB Device Filters.
  14. Click OK, disconnect your phone, and hold the Volume down + Power buttons for about 7 seconds to exit the Download Mode.
How to Install Apps from Unknown Publishers on Windows 10/11

Using Samsung Odin on Windows VM

Finally, it’s time to reap the profit of your efforts. You are all set to use the Odin Flash tool on your Linux computer via Windows VM.

    1. Download the latest Samsung Odin and extract the downloaded zip.
    2. Right-click on Odin3_v3.14.4.exe and select the Run as administrator option.
    3. Boot your Samsung Galaxy device into the Download Mode and connect it to your computer.
    4. Download the Samsung firmware for your device and extract the zip.
    5. Click the BL, AP, CP, and CSC buttons in Odin and add the appropriate files to them. Click the Start button to install the firmware. samsung odin runnin on linux windows vm

Wait until the firmware is flashed and your Samsung device reboots.

Was this Article helpful?
YesNo