Skip to content

Releases: raspberrypi/rpi-imager

v2.0.9

05 May 16:37

Choose a tag to compare

v2.0.9 Pre-release
Pre-release

What's changed

  • Pi Connect for Organisations:
    • New wizard flow for registering devices into a Pi Connect organisation
    • On-device key signing via ConnectDeviceRegistrar (HTTPS)
    • Track org enrolment tokens through ImageWriter
    • Register device identity with Connect after a Fastboot flash
  • CM5 / Secure Boot re-provisioning:
    • Rewrite SecureBootProvisioner for in-place re-provisioning
    • New CM5 re-provisioning pipeline in FirmwareManager
    • Add BootloaderImage TLV editor for pieeprom.bin
    • Bootfiles repacking (replaceEntry + writeToFile)
    • Add config-sig, RSA pubkey extraction, bootcode2712 signing
    • Debug toggles for force-secure-boot and signed Fastboot gadget
  • Fastboot:
    • Capture INFO/TEXT lines from OEM commands
    • Fix command truncation
    • Normalise custom gadget paths so local files can be used
    • Chunk file_server bulk transfers
    • Resolve cache before flash; pause drive scan during auto-bootstrap
    • Track naked rpiboot devices separately in the drive list
  • Cloud-init customisation:
    • Drop enable_ssh; use a systemctl runcmd instead
    • Use user: (singular) for user configuration
    • Fix up serial-if disabled handling
  • UI:
    • Reduced-motion option for users sensitive to animation
    • Make AppOptionsDialog scrollable; move Telemetry to the bottom
    • Align Secure Boot step container styling
  • Write reliability:
    • Drop the 512-byte alignment requirement
    • Better overflow handling for GPT, MBR, and FAT partition wrappers
    • Handle extremely large sectors_per_fat in the disk formatter
    • Better handling of long filenames in FAT partitions
    • Use a shared_ptr for the write ringbuffer to fix lifetime issues
    • Parse zstd headers to recover the extract size for local archives
    • Fix a TOCTOU on the cache directory existence check
  • Windows:
    • Advertise long-path, DPI awareness, and UTF-8 codepage support in the manifest
    • Propagate write errors through FileOperations
    • Geometric backoff for volume lock; wait for clean completion
    • Use secure memory erase for Wi-Fi credentials
    • Uninstaller now preserves user preferences while clearing cache and customisation
  • macOS:
    • Use secure memory erase for Wi-Fi credentials
  • Linux:
    • Prefer kreadconfig6 with a fallback to kreadconfig5; select via KDE_SESSION_VERSION
    • Use explicit paths in launchDetached and the suspend inhibitor's search paths
    • Use an explicit path for the embedded reboot command
    • Exclude libsystemd, libdbus-1, and libcap from Linux Desktop AppImages
  • Device telemetry:
    • Introduce reading of device IO limits
  • Licensing:
    • Add nghttp2, libusb, and yescrypt to the bundled licence list
  • i18n: Updated French, Turkish, and Irish translation dictionaries; stray-text fixes in French

PRs

New Contributors

Full Changelog: v2.0.8...v2.0.9

v2.0.8: Bugfixes, Fastboot improvements

08 Apr 16:02

Choose a tag to compare

What's changed

  • Fastboot:
    • Enumerate storage devices
    • Add mount, unmount, and custom gadget support
    • Rename stage to download
    • Retry on transient USB errors
  • OS Customisation:
    • Don't set any groups, leave it to the OS
    • Use explicit runcmds for passwordless sudo
    • Require active locale selection; no pre-filled defaults
  • UI:
    • Refresh clipboard status as text fields show
  • SSH:
    • Add state machine for handling PuTTY's multiline SSH keys
  • Linux:
    • Explicitly exclude libsystemd
  • Write Operations:
    • Increase watchdog stall timeout to 180s to match the async write timeout
    • Exclude final data sync from write watchdog to avoid false stalls on slow
      cards
  • i18n: Updated French, Slovak translation dictionaries
  • Documentation:
    • Add a screenshot of the interface

PRs

New Contributors

Full Changelog: v2.0.7...v2.0.8

v2.0.7

26 Mar 12:06

Choose a tag to compare

Release edit:

  • Earlier macOS DMG was built for Apple Silicon only. Replaced Fri 27 March 2026 @ 15:15 GMT

What's Changed

  • chore(release): v2.0.6 by @tdewey-rpi in #1477
  • feat(installer): Add windows installer dark mode support in rpi-imager.iss.in by @rc-chuah in #1480
  • fix(main): Add warning for log paths that are too long by @Ferdinaelectro1 in #1481
  • Add pt-br translation by @eduardoaddad in #1490
  • Update Turkish translations by @Sype0 in #1488
  • Added documentation clarifying the interaction between old versions of Imager and new versions of RPi OS by @lurch in #1497
  • Fix malformed rpi-imager_pt-BR.ts by @lurch in #1499
  • Move the development instructions to a separate CONTRIBUTING.md file by @lurch in #1508
  • QML: fix property name mismatch in ImFileDialog by @wallentx in #1505
  • 2.0.7: Remove legacy mountutils/drivelist, bugfixes by @tdewey-rpi in #1513
  • fix(debian): Add missing GUI library dependencies by @tdewey-rpi in #1517
  • 2.0.7: Improved combobox search, HK & Macau added, don't store experimental options by @tdewey-rpi in #1525
  • 2.0.7: Remove BLKDISCARD, gzip progress bars by @tdewey-rpi in #1528
  • Add "Clear saved customisation" button to App Options by @4RH1T3CT0R7 in #1501
  • fix(cloud-init): Make instance-id durable across reboots by @tdewey-rpi in #1529
  • fix(capital-cities): Update capital city entries and handling for Hong Kong by @tdewey-rpi in #1531
  • fix(ImFileDialog): allow typing/pasting full file paths in open mode by @4RH1T3CT0R7 in #1530
  • fix(ImComboBox): use PlatformHelper for scroll direction in closed ComboBox by @4RH1T3CT0R7 in #1534
  • Fix compile erorr in platformquirks_linux.cpp by @lurch in #1537
  • fix(beep): bundle fallback chime for Linux distros without freedesktop sounds by @4RH1T3CT0R7 in #1535
  • fix(polkit): use /etc/polkit-1/actions for policy on immutable distros by @4RH1T3CT0R7 in #1536
  • fix(wifi): prevent stale WiFi settings from being applied after Skip by @4RH1T3CT0R7 in #1540
  • 2.0.7 rollup 2: Fastboot, rpiboot, compute modules, text scaling, proxy support by @tdewey-rpi in #1548
  • fix(i18n): add missing French translations for saved customisation settings by @Ferdinaelectro1 in #1555
  • chore(.gitignore) : add .idea to .gitignore by @Ferdinaelectro1 in #1552
  • i18n: complete zh-CN translation by @ykla in #1554

New Contributors

Full Changelog: v2.0.6...v2.0.7

v2.0.7-rc2: UI polish, experimental features

17 Mar 15:51

Choose a tag to compare

What's Changed

  • chore(release): v2.0.6 by @tdewey-rpi in #1477
  • feat(installer): Add windows installer dark mode support in rpi-imager.iss.in by @rc-chuah in #1480
  • fix(main): Add warning for log paths that are too long by @Ferdinaelectro1 in #1481
  • Add pt-br translation by @eduardoaddad in #1490
  • Update Turkish translations by @Sype0 in #1488
  • Added documentation clarifying the interaction between old versions of Imager and new versions of RPi OS by @lurch in #1497
  • Fix malformed rpi-imager_pt-BR.ts by @lurch in #1499
  • Move the development instructions to a separate CONTRIBUTING.md file by @lurch in #1508
  • QML: fix property name mismatch in ImFileDialog by @wallentx in #1505
  • 2.0.7: Remove legacy mountutils/drivelist, bugfixes by @tdewey-rpi in #1513
  • fix(debian): Add missing GUI library dependencies by @tdewey-rpi in #1517
  • 2.0.7: Improved combobox search, HK & Macau added, don't store experimental options by @tdewey-rpi in #1525
  • 2.0.7: Remove BLKDISCARD, gzip progress bars by @tdewey-rpi in #1528
  • Add "Clear saved customisation" button to App Options by @4RH1T3CT0R7 in #1501
  • fix(cloud-init): Make instance-id durable across reboots by @tdewey-rpi in #1529
  • fix(capital-cities): Update capital city entries and handling for Hong Kong by @tdewey-rpi in #1531
  • fix(ImFileDialog): allow typing/pasting full file paths in open mode by @4RH1T3CT0R7 in #1530
  • fix(ImComboBox): use PlatformHelper for scroll direction in closed ComboBox by @4RH1T3CT0R7 in #1534
  • Fix compile erorr in platformquirks_linux.cpp by @lurch in #1537
  • fix(beep): bundle fallback chime for Linux distros without freedesktop sounds by @4RH1T3CT0R7 in #1535
  • fix(polkit): use /etc/polkit-1/actions for policy on immutable distros by @4RH1T3CT0R7 in #1536
  • fix(wifi): prevent stale WiFi settings from being applied after Skip by @4RH1T3CT0R7 in #1540
  • 2.0.7 rollup 2: Fastboot, rpiboot, compute modules, text scaling, proxy support by @tdewey-rpi in #1548

New Contributors

Full Changelog: v2.0.6...v2.0.7-rc2

v2.0.6: Fixup button width calculations, DE translation

22 Jan 17:11

Choose a tag to compare

What's Changed

  • Update de translations by @rejas in #1468
  • refactor(ImButton): Update implicit width calculation for better cont… by @tdewey-rpi in #1473

Full Changelog: v2.0.5...v2.0.6

v2.0.5

20 Jan 16:28

Choose a tag to compare

What's Changed

  • all platforms: CLI option added to help on GUI builds
  • macOS:
    • Add dark mode and Liquid Glass icon support with pre-compiled assets
    • Add icon compilation script for regenerating icon assets
  • UI:
    • Enhance update popup with version tracking functionality
    • Improve BaseDialog minimum height for better usability
    • Use indeterminate progressbar for local gzip files without size info
    • Fixup updatePopupRequested trigger
  • Local JSON Helper:
    • Add device capabilities support
    • Add OS capabilities support

PRs

Full Changelog: v2.0.4...v2.0.5

v2.0.4

16 Jan 10:14

Choose a tag to compare

What's new

  • Write Robustness:
    • Introduce WriteProgressWatchdog to monitor write progress and detect stalls
    • Implement recovery strategies for async I/O including queue depth reduction
      and sync fallback mechanisms
    • Standardize timeout handling for pending writes across all platforms
    • Add 5-minute emergency timeout as fallback for stalled operations
  • Performance:
    • Enhance recovery event handling and monitoring diagnostics
    • Capture SHA256 hash values in performance profiles for verification diagnostics
  • Image Handling:
    • Add support for parsing .gz files to extract uncompressed size information
    • Improve handling for files larger than 4GB
  • Disk Formatting:
    • Fix FAT32 formatting for large drives (>8GB)
    • Improve root directory handling based on sectors per cluster
  • Bug Fixes:
    • Fix external tools (runuser, xdg-open) failing in AppImage due to
      LD_LIBRARY_PATH conflicts causing PAM module loading errors
    • Improve thread safety for download cancellation
    • Enhance error handling for timeout conditions
    • Use Pathlib to generate file:// URIs in local JSON helper script
    • Use XDG-compliant canberra-gtk-play and PipeWire for audio notifications
      on Linux, fixing beep on Raspberry Pi OS which no longer ships PulseAudio control by default
  • Accessibility:
    • Bypass confirmation dialog timer when screen reader is active
  • Build:
    • Refactor Qt build scripts for improved POSIX compliance and consistency
    • Add macOS-specific optimizations for universal builds

PRs

New Contributors

Full Changelog: v2.0.3...v2.0.4

2.0.3: Performance, bugfixes

22 Dec 19:23

Choose a tag to compare

✨ Features

Performance

  • Implement bottleneck detection and real-time progress updates showing network, decompression, or write-bound status
  • Add detailed write timing breakdown for hypothesis testing and performance analysis
  • Skip periodic sync when direct I/O is enabled to improve throughput
  • Enhance async I/O support and configuration options across all platforms

Networking

  • Implement comprehensive network monitoring across all platforms to detect connectivity changes and automatically retry OS list fetching
  • Add automatic fallback and retry logic when network connection is restored
  • Introduce CurlFetcher and CurlNetworkConfig for improved network operations with better error handling
  • Add CA certificate bundle detection for AppImage compatibility on Linux distributions with non-standard CA paths
  • Enable file:// protocol support in curl configuration for local repository testing

Custom Repositories

  • Add rpi-imager:// URI scheme for deep-linking to custom OS repositories (e.g., rpi-imager://open?repo=https://example.com/repo.json)
  • Register .rpi-imager-manifest file type association on macOS (UTI), Windows (registry), and Linux (MIME)
  • Show custom repository host in window title bar with punycode encoding to prevent IDN homograph attacks
  • Add confirmation dialog with security delay for remote repository URLs

Drive Handling

  • Detect and handle counterfeit storage devices that may hang during I/O operations
  • Add timeout mechanism for critical operations like BLKDISCARD and writing to the end of the device
  • Add debug option to skip end-of-device operations for users with problematic cards
  • Add support for NVMe over Fabrics (BusTypeNvmeof) bus type on Windows
  • Enhance storage bus type recognition and device classification
  • Improve drive filtering and system identification logic on Linux

User Interface

  • Add sticky language preference that remembers user selection across sessions
  • Enhance title display with offline status indication in the main window
  • Improve text wrapping and marquee scrolling throughout the UI
  • Make DebugOptionsDialog height responsive to window size

Customisation

  • Enhance WiFi configuration for open networks using key_mgmt=NONE
  • Refine cloud-init user data and network configuration generation
  • Add initFormat parameter to CLI setImageCustomisation call

Windows

  • Enhance uninstallation to clean up old installation directories and registry entries left by previous installers
  • Improve user prompts during install/uninstall for detecting previous installations

CLI

  • Add note about using the --repo flag to load local os_list_local.json files
  • Fix error message displayed when CLI build is run without sudo
  • Use ANSI escape sequences for _clearLine for better terminal compatibility

🐛 Bug Fixes

  • Fix language selection on Desktop not persisting correctly
  • Fix button layout for permission warning dialog
  • Fix async write IDs overlapping with cancellation markers
  • Fix async cache hash not resetting on open, ensuring fresh computation
  • Fix unmounting logic and error handling during write operations
  • Fix hardware and software capability checks for case insensitivity
  • Fix display of customRepoHost in repository dialogs
  • Fix translation of permissions-message dialog (strings were being translated too early)
  • Fix macOS build configuration

🌍 Internationalisation

  • Updated Spanish translation
  • Updated Czech translation
  • Updated French translation (multiple updates)
  • Updated Russian translation
  • Updated Portuguese translation
  • Add new translations and error messages for multiple languages

📦 Dependencies

  • Update bundled library versions
  • Update timezone data version
  • Update capital cities database

2.0.2: Bugfixes & UI fixes

10 Dec 17:00

Choose a tag to compare

✨ Features

Performance

  • Add direct I/O bypass for Linux (O_DIRECT), macOS (F_NOCACHE), and Windows (FILE_FLAG_NO_BUFFERING) to reduce memory pressure during writes
  • Add zero-copy ring buffer for data transfer between download and write threads, reducing CPU overhead
  • Add asynchronous cache file writer to overlap download and disk I/O operations
  • Dynamically adjust write queue depth based on available system memory, tuned for more aggressive performance
  • Add sequential read hints (FADV_SEQUENTIAL, F_RDAHEAD) during verification for better prefetching
  • Track detailed performance metrics for network, decompression, and write phases
  • Use Windows IOCTLs (IOCTL_DISK_DELETE_DRIVE_LAYOUT) for faster disk preparation instead of diskpart
  • Add performance data analysis tool for debugging slow writes (Press CTRL + SHIFT + P, save the JSON, attach to a new Issue).

Drive Handling

  • Switch drive polling from fixed 1-second interval to adaptive mode (fast during selection, paused during writes)
  • Fix NVMe namespace detection on Linux to correctly identify NVMe drives by parsing /sys/class/nvme/
  • Suppress Windows "Insert a disk" error dialog when accessing empty removable drives
  • Fix macOS APFS volume handling to correctly identify child partitions
  • Allow virtual disks to be treated as 'system' drives on Windows & Linux (macOS was supported from 2.0.0)

User Interface

  • Add password field component with show/hide toggle button
  • Add type-to-search in combo boxes with backspace support to delete characters
  • Add Enter key to open combo box dropdown when focused
  • Show device and OS names with tooltips when text is truncated
  • Restructure countdown timer before write confirmation dialog can be accepted
  • Fix bottom padding in write confirmation dialog
  • Reintroduce multiple SSH key support

Accessibility

  • Add proper focus order and keyboard navigation for screen readers across all dialogs
  • Move accessibility description properties to centralized form label component

macOS

  • Add file type filter popup to native save dialogs (matching Finder behavior)
  • Request location permission asynchronously to avoid blocking the UI when detecting WiFi networks
  • Add dark mode, tinted and clear Liquid Glass icon variants using Icon Composer for proper menu bar appearance

Linux

  • Fix X11 authorization when running AppImage as root via xhost and proper XAUTHORITY handling
  • Install scalable SVG icon instead of fixed-size PNG for better HiDPI support

Windows

  • Migrate file dialogs from legacy GetOpenFileName API to modern IFileDialog COM interface
  • Fix file dialog filter string requiring double-null termination
  • Fix scroll direction on ImComboBox

Customization

  • Allow SSH public key authentication without requiring a username/password to be set
  • Fix missing user creation block when not enabling SSH

Networking

  • Add automatic fallback from HTTP/2 to HTTP/1.1 after repeated failures
  • Log HTTP protocol version used on successful downloads
  • Skip error dialogs when user cancels download mid-transfer
  • Properly close file handles when operations are cancelled

Other

  • Add file logging support (--log-file command line argument)
  • Re-use ring buffer memory for SHA256 verification instead of allocating new buffers
  • Validate init_format field in OS list JSON and log warnings for invalid entries
  • Extract clean version string (X.Y.Z) for telemetry instead of full build string
  • Add privilege escalation support for elevatable application bundles

🐛 Bug Fixes

  • Fix SSH key file dialog filter on Windows (was passing list instead of string)
  • Fix Italian translation inconsistencies
  • Fix icon installation path for Linux desktop integration
  • Fix cloud-init user-data generation for Pi Connect configuration
  • Remove O_SYNC flag from file operations (was causing unnecessary performance penalty)

🌍 Internationalization

  • Add Romanian translation
  • Add Italian translation
  • Add Czech translation
  • Updated Russian translation
  • Updated French translation
  • Update translations for new MacFile and NativeFileDialog strings
  • Add en-US translation

🎨 Icons

  • New Windows and Linux application icons
  • macOS icon with light/dark mode variants
  • Add scripts to regenerate platform icons from source SVG

What's Changed

New Contributors

Full Changelog: v2.0.1...v2.0.2

v2.0.0: A new Imager

24 Nov 13:03

Choose a tag to compare

Headline

What if we just changed...everything*?

https://www.raspberrypi.com/news/a-new-raspberry-pi-imager/

*(311 changed files with 79,315 additions and 17,156 deletions, to be more accurate)

What's Changed

  • New UI
  • New installer for Windows
  • New back-end writing algorithms
  • New download algorithms
  • Accessbility annotations throughout
  • Raspberry Pi Connect integration
  • Keyboard navigation
  • Enhanced guardrails
  • New CLI-only package
  • So, so much more.

New Contributors

Full Changelog: v1.9.6...v2.0.0