Raspberry Pi Imager Utility 2020

The main code of Raspberry Pi Imager 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.

How To Rebuild?

Debian/Ubuntu Linux

Get Dependencies

  • 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 \
qml-module-qtquick2 qml-module-qtquick-controls2 qml-module-qt-labs-settings qml-module-qtquick-layouts qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtgraphicaleffects

  • Get the source

git clone –depth 1 https://github.com/raspberrypi/rpi-imager

  • Build the Debian package

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.

Also Read – Extended XSS Search : A Better Version Of My XSSFinder Tool

Windows

Get Dependencies

  • 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/Compiling_OpenSSL_with_MinGW ) and copy the libssl/crypto DLLs to C:\qt\5.x\mingw73_32\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

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.

  • Download source .zip from github and extract it to a folder on disk
  • Open CMakeLists.txt in Qt creator.
  • For builds you distribute to others, make sure you choose “Release” in the toolchain settings and not the debug flavour.
  • Menu “Build” -> “Build all”
  • Result will be in ../build_rpi-imager_someversion
  • Go to the BUILD folder, right click on the .nsi script “Compile NSIS script”, to create installer.

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 “build_rpi-imager_someversion” directory and try again.

Mac OS X

Get Dependencies

  • Get the Qt online installer from: https://www.qt.io/download-open-source During installation, choose a Qt 5.x edition and CMake.
  • For creating a .DMG for distribution you can use an utility like: https://github.com/sindresorhus/create-dmg
  • It is assumed you have an Apple developer subscription, and already have a “Developer ID” code signing certificate for distribution outside the Mac Store. (Privileged apps are not allowed in the Mac store)

Building

  • Download source .zip from github and extract it to a folder on disk
  • Start Qt Creator (may need to start “finder” navigate to home folder using the “Go” menu, and find Qt folder to start it manually as it may not have created icon in Applications), and open CMakeLists.txt
  • Menu “Build” -> “Build all”
  • Result will be in ../build_rpi-imager_someversion
  • For distribution to others: code sign the .app, create a DMG, code sign the DMG, submit it for notarization to Apple and staple the notarization ticket to the DMG.

E.g.:

–>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

Other Notes

Debugging

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.

Custom Repository

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.

R K

Recent Posts

Shadow-rs : Harnessing Rust’s Power For Kernel-Level Security Research

shadow-rs is a Windows kernel rootkit written in Rust, demonstrating advanced techniques for kernel manipulation…

1 week ago

ExecutePeFromPngViaLNK – Advanced Execution Of Embedded PE Files via PNG And LNK

Extract and execute a PE embedded within a PNG file using an LNK file. The…

2 weeks ago

Red Team Certification – A Comprehensive Guide To Advancing In Cybersecurity Operations

Embark on the journey of becoming a certified Red Team professional with our definitive guide.…

3 weeks ago

CVE-2024-5836 / CVE-2024-6778 : Chromium Sandbox Escape via Extension Exploits

This repository contains proof of concept exploits for CVE-2024-5836 and CVE-2024-6778, which are vulnerabilities within…

3 weeks ago

Rust BOFs – Unlocking New Potentials In Cobalt Strike

This took me like 4 days (+2 days for an update), but I got it…

3 weeks ago

MaLDAPtive – Pioneering LDAP SearchFilter Parsing And Security Framework

MaLDAPtive is a framework for LDAP SearchFilter parsing, obfuscation, deobfuscation and detection. Its foundation is…

3 weeks ago