Raspberry Pi Imaging Utility
sudo apt update && sudo apt install rpi-imager.
The main code of the Imaging Utility is made available under the terms of the Apache license. See license.txt and files in "dependencies" folder for more information about the various open source licenses that apply to the third-party dependencies used such as Qt, libarchive, drivelist, mountutils and libcurl.
Install the build dependencies:
sudo apt install --no-install-recommends build-essential devscripts debhelper cmake git libarchive-dev libcurl4-openssl-dev \ qtbase5-dev qtbase5-dev-tools qtdeclarative5-dev libqt5svg5-dev qttools5-dev qt5-default libssl-dev \ qml-module-qtquick2 qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtgraphicaleffects
git clone --depth 1 https://github.com/raspberrypi/rpi-imager
cd rpi-imager debuild -uc -us
debuild will compile everything, create a .deb package and put it in the parent directory. Can install it with apt:
cd .. sudo apt install ./rpi-imager*.deb
It should create an icon in the start menu under "Utilities" or "Accessories". The imaging utility will normally be run as regular user, and will call udisks2 over DBus to perform privileged operations like opening the disk device for writing. If udisks2 is not functional on your Linux distribution, you can alternatively start it as "root" with sudo and similar tools.
Get the Qt online installer from: https://www.qt.io/download-open-source During installation, choose a Qt 5.x with Mingw32 32-bit toolchain and CMake.
If using the official Qt distribution that does NOT have schannel (Windows native SSL library) support, compile OpenSSL libraries ( https://wiki.qt.io/CompilingOpenSSLwithMinGW ) and copy the libssl/crypto DLLs to C:\qt\5.x\mingw7332\bin
For building installer get Nullsoft scriptable install system: https://nsis.sourceforge.io/Download
It is assumed you already have a proper code signing certificate, and signtool.exe from the Windows SDK installed. If NOT and are you only compiling for your own personal use, comment out all lines mentioning signtool from CMakelists.txt and the .nsi installer script.
Building can be done manually using the command-line, using "cmake", "make", etc., but if you are not that familar with setting up a proper Windows build environment (setting paths, etc.), it is easiest to use the Qt creator GUI instead.
Note: the CMake integration in Qt Creator is a bit flaky at times. If you made any custom changes to the CMakeLists.txt file and it subsequently gets in an endless loop where it never finishes the "configures" stage while re-processing the file, delete "buildrpi-imagersomeversion" directory and try again.
cd build-rpi-imager-Desktop_Qt_5_14_1_clang_64bit-Release/ codesign --deep --force --verify --verbose --sign "YOUR KEYID" --options runtime rpi-imager.app mv rpi-imager.app "Raspberry Pi Imager.app" create-dmg Raspberry\ Pi\ Imager.app mv Raspberry\ Pi\ Imager\ .dmg imager.dmg xcrun altool --notarize-app -t osx -f imager.dmg --primary-bundle-id="org.raspberrypi.imagingutility" -u YOUR-EMAIL-ADDRESS -p YOUR-APP-SPECIFIC-APPLE-PASSWORD -itc_provider TEAM-ID-IF-APPLICABLE xcrun stapler staple imager.dmg
On Linux and Mac the application will print debug messages to console by default if started from console. On Windows start the application with the command-line option --debug to let it open a console window.
If the application is started with "--repo [your own URL]" it will use a custom image repository. So can simply create another 'start menu shortcut' to the application with that parameter to use the application with your own images.