Files
imager/README.md

8.2 KiB
Raw Blame History

Armbian logo

Purpose of This Repository

Armbian Imager is the official tool for downloading and flashing Armbian OS images to single-board computers. It focuses on safe and reliable flashing of Armbian images, with board-aware guidance and verification.

Key features

  • Support for 300+ boards with smart filtering and board-aware metadata
  • Disk safety checks, checksum validation, and post-write verification
  • Native cross-platform builds for Linux, Windows, and macOS (x64 and ARM64)
  • Multi-language UI with automatic system language detection
  • Automatic application updates
  • Small binary size and minimal runtime dependencies

Armbian Imager

Testimonials

“A proper multi-platform desktop app that actually works, which is rarer than youd think.” — Bruno Verachten, Senior Developer Relations Engineer (source)

"The Upcoming Armbian Imager Tool is a Godsend for Non-Raspberry Pi SBC Owners" — Sourav Rudra, It's FOSS (source)

"According to Armbian, this results in less RAM and storage usage and a faster experience." — Jordan Gloor, HowtoGeek.com (source)

Download

macOS Windows Linux
Intel & Apple Silicon x64 & ARM64 x64 & ARM64
.dmg / .app.zip .exe / .msi .deb / .AppImage

macOS: First Launch

macOS may show a warning because the app is not signed with an Apple Developer certificate. To open it:

  1. Try to open the app (it will be blocked)
  2. Go to System SettingsPrivacy & Security
  3. Scroll down and click Open Anyway next to "Armbian Imager was blocked"
  4. Click Open in the confirmation dialog

This only needs to be done once.

How It Works

  1. Select Manufacturer — Choose from 70+ SBC manufacturers or load a custom image
  2. Select Board — Pick your board with real photos from armbian.com
  3. Select Image — Choose desktop/server, kernel variant, stable/nightly
  4. Flash — Download, decompress, write, and verify automatically

Platform Support

Platform Architecture Status Notes
macOS Intel x64 Full support
macOS Apple Silicon Native ARM64 + Touch ID
Windows x64 Run as Administrator
Windows ARM64 Native ARM64 build, run as Administrator
Linux x64 UDisks2 + pkexec for privileges
Linux ARM64 Native ARM64 build

Supported Languages

English, Italian, German, French, Spanish, Portuguese, Dutch, Polish, Russian, Chinese, Japanese, Korean, Ukrainian, Turkish, Slovenian

Development

Prerequisites

  • Node.js 20+nodejs.org
  • Rust 1.77+rustup.rs
  • Platform tools — Xcode (macOS), Visual Studio Build Tools (Windows), build-essential (Linux)

Quick Start

git clone https://github.com/armbian/imager.git armbian-imager
cd armbian-imager
npm install
npm run tauri:dev

Scripts

npm run dev              # Frontend only (Vite)
npm run tauri:dev        # Full app with hot reload
npm run build            # Build frontend for production
npm run tauri:build      # Build distributable
npm run tauri:build:dev  # Build with debug symbols
npm run lint             # ESLint
npm run clean            # Clean all build artifacts

Build Scripts

./scripts/build-macos.sh [--clean] [--dev]   # macOS ARM64 + x64
./scripts/build-linux.sh [--clean] [--dev]   # Linux x64 + ARM64
./scripts/build-all.sh   [--clean] [--dev]   # All platforms

Tech Stack

Layer Technology Why
UI React 19 + TypeScript Type-safe, component-based UI
Bundler Vite Lightning-fast HMR and builds
Framework Tauri 2 Native performance, tiny bundle
Backend Rust Memory-safe, blazing fast I/O
Async Tokio Efficient concurrent operations
i18n i18next 15 language translations

Why Tauri over Electron?

Metric Armbian Imager (Tauri) Typical Electron App
App Size ~15 MB 150-200 MB
RAM Usage ~50 MB 200-400 MB
Startup < 1 second 2-5 seconds
Native Feel Uses system webview Bundles Chromium

Project Structure

Click to expand
armbian-imager/
├── src/                          # React Frontend
│   ├── components/               # UI Components
│   │   ├── flash/                # Flash progress components
│   │   ├── layout/               # Header, HomePage
│   │   ├── modals/               # Board, Image, Device, Manufacturer modals
│   │   └── shared/               # Reusable components (UpdateModal, ErrorDisplay, etc.)
│   ├── hooks/                    # React Hooks (Tauri IPC, async data)
│   ├── config/                   # Badges, manufacturers, OS info
│   ├── locales/                  # i18n translations (15 languages)
│   ├── styles/                   # Modular CSS
│   ├── types/                    # TypeScript interfaces
│   ├── utils/                    # Utility functions
│   └── assets/                   # Images, logos, OS icons
│
├── src-tauri/                    # Rust Backend
│   ├── src/
│   │   ├── commands/             # Tauri IPC handlers
│   │   ├── config/               # Application configuration and constants
│   │   ├── devices/              # Platform device detection
│   │   ├── flash/                # Platform flash (macOS, Linux, Windows)
│   │   ├── images/               # Image management and filtering
│   │   ├── logging/              # Session logging
│   │   ├── paste/                # Log upload to paste.armbian.com
│   │   ├── utils/                # Shared utility functions
│   │   ├── download.rs           # HTTP streaming downloads
│   │   └── decompress.rs         # Decompression (XZ, GZ, ZSTD)
│   └── icons/                    # App icons (all platforms)
│
├── scripts/                      # Build scripts
└── .github/workflows/            # CI/CD

Data Sources

Data Source
Board List & Images github.armbian.com/armbian-images.json
Board Photos cache.armbian.com/images/272/{slug}.png
Vendor Logos cache.armbian.com/images/vendors/272/{vendor}.png
MOTD Tips raw.githubusercontent.com/armbian/os/main/motd.json
Log Upload paste.armbian.com

Acknowledgments


Made with ❤️ by the Armbian community