Affiliate links on Android Authority may earn us a commission. Learn more.
Firmware vs software: What's the difference?
If you’ve ever dabbled with manually installing an Android OS update, you might have come across the term ‘firmware’. When flashing an OS update, the software has to be built for device-specific firmware or hardware. This difference is part of why it can take so long to roll out the latest version of Android to all devices. To that end, let’s discuss the firmware vs software debate and understand what they’re each meant to do.
Firmware vs software
It’s not immediately clear, but there’s a critical distinction between firmware and software, the latter of which is probably a much more familiar term. In a nutshell, firmware sits very close to your device’s hardware, while software sits on top of the firmware.
Both firmware and software are snippets of code running on the hardware inside your phone and other gadgets. The key distinction is what they’re designed to do, where they are saved, and how easy they are to update and change.
Software is generally considered a program or piece of code designed for user interaction. It’s the “top-level” of code that enables users to do what they need to. This could be an app on your smartphone, a home screen widget, and just below that, even the Android OS itself. Software is usually written in a high-level language, such as Java, with lots of libraries and pre-made functions to ease development.
Software generally refers to interactive applications that execute on a device's hardware
Pieces of software communicate with the CPU and other main processors, making use of RAM and flash storage to save and load data. Another key point is that software can be changed without having to adjust any hardware, making it simple to update. With some exceptions, software is designed to be as hardware-agnostic as possible. In other words, the same app can be installed on virtually any Android device.
By comparison, firmware isn’t designed to be directly interacted with by a user. Instead, it’s the hidden “lowest level” of code that runs on your device. That said, there can be different levels of firmware, just as we can consider different levels of software. Rather than running on the main CPU, firmware often runs on smaller, dedicated pieces of hardware. For example, this could include a memory controller connected to your phone’s flash memory. Firmware is typically written in a low-level language, like C, with little external support as the code is highly tailored for individual devices.
Firmware refers to low-level code that controls and communicates with device-specific hardware
Firmware is code that configures how hardware should work and provides for its basic functions. It’s the essential backbone that ensures hardware works and can be accessed by higher-level software. Some examples of hardware that rely on firmware include flash memory chips, CPUs, and displays. It can be a bit trickier to update firmware, as software running on top depends on it. This is why you don’t need to restart your phone after updating an app, but sometimes need to when installing a major Android version update.
Keeping your smartphone running
The firmware vs software battle runs inside your smartphone. In fact, both are essential for keeping everything running smoothly. You’ll never interact with the firmware directly, but it performs a number of important functions.
For example, the firmware inside your smartphone includes code running inside the camera module. This handles image collection and early processing, before handing data off to the ISP and other processing components. Likewise, the display will also have its own tiny microprocessor, complete with firmware, to handle color data, brightness, gamma, and other settings. Even the SoC has its own firmware in the form of a low-level kernel to optimize task scheduling, clock speeds, and power consumption.
Smartphone software includes the Android operating system and then the apps running on top of that. So all of your apps are software, including Facebook, Chrome, Gmail, and the Play Store. Firmware, meanwhile, remains firmly in the background.