Compare commits

..

64 commits
v0.1 ... fix

Author SHA1 Message Date
cmclark00
182e9b91ae longshot 2025-03-19 21:26:32 -04:00
cmclark00
34089867a1 bump version to 0.5 and update Qt6 and MinGW64 root paths to use environment variables, work on nested menu integration. 2025-02-27 01:50:52 -05:00
cmclark00
45e5dc35ec undo fix 2025-02-25 21:14:41 -05:00
cmclark00
f84a7244dd fix CMakeLists.txt 2025-02-25 20:55:29 -05:00
cmclark00
3b6363aaba
Update os_list.json 2024-12-01 01:34:52 -05:00
cmclark00
028f5ef9f9
Update os_list.json 2024-11-28 22:06:26 -05:00
cmclark00
31c7760ccc
Update os_list.json 2024-11-28 21:26:03 -05:00
cmclark00
01a49182b2
Update os_list.json 2024-11-27 14:06:43 -05:00
cmclark00
2342facc6e
Update os_list.json 2024-11-26 22:03:22 -05:00
cmclark00
7fdbab9138
Update os_list.json 2024-11-26 21:50:17 -05:00
cmclark00
59536ddd9b fixing banner and migrating to onedev 2024-11-26 20:10:20 -05:00
cmclark00
e343b26b7b trying to fix all the broken jank 2024-11-26 19:53:06 -05:00
cmclark00
8b74f8a2b2 updating artwork 2024-10-15 23:31:53 -04:00
cmclark00
aaae987b5b telemetry updates 2024-10-15 21:58:29 -04:00
cmclark00
11d73edee3 Update config.h 2024-10-15 21:44:46 -04:00
cmclark00
325268a692
Update README.md 2024-10-15 20:48:04 -04:00
cmclark00
7d301d0ac9
Update build-arm64-mac.yml 2024-10-15 14:33:56 -04:00
cmclark00
ead346ca84
Update build-arm64-mac.yml 2024-10-15 14:29:43 -04:00
cmclark00
66aa39d797
Update build-arm64-mac.yml 2024-10-15 14:14:29 -04:00
cmclark00
559ba61943
Update build-arm64-mac.yml 2024-10-15 14:04:19 -04:00
cmclark00
ebb3338e25
Update build-arm64-mac.yml 2024-10-15 14:02:06 -04:00
cmclark00
3405c77f18
Update build-arm64-mac.yml 2024-10-15 13:55:52 -04:00
cmclark00
857df7ae10
Rename arm64mac.yml to build-arm64-mac.yml 2024-10-15 13:55:09 -04:00
cmclark00
6f70363cbf test# Please enter the commit message for your changes. Lines starting 2024-10-15 13:53:58 -04:00
cmclark00
bf21358db3 Merge branch 'dev' of https://github.com/cmclark00/retro-imager into dev 2024-10-15 13:53:21 -04:00
cmclark00
6a093f1684 test workflow 2024-10-15 13:52:20 -04:00
cmclark00
0c87c0aefd
Update README.md 2024-10-15 13:51:35 -04:00
cmclark00
5e72c3db45 Create arm64mac.yml 2024-10-15 13:50:14 -04:00
cmclark00
143e152d18 fix 335xxh path and info 2024-10-15 13:00:46 -04:00
cmclark00
306adec9a7
Update os_list.json 2024-10-15 10:15:58 -04:00
cmclark00
d20dc58343 idk 2024-10-14 20:02:06 -04:00
cmclark00
1e83623ed7 again 2024-10-14 19:58:44 -04:00
cmclark00
0e0acd28f1 update os list path 2024-10-14 19:56:39 -04:00
cmclark00
b62868db9b ugh 2024-10-14 19:49:13 -04:00
cmclark00
75c55de133 asfa 2024-10-14 19:35:55 -04:00
cmclark00
fc46eb7546 egh 2024-10-14 19:29:57 -04:00
cmclark00
84e7f55045 updating config.h 2024-10-14 19:26:15 -04:00
cmclark00
4efce3223b typo 2024-10-14 19:25:19 -04:00
cmclark00
01d92c05b2 try this again 2024-10-14 19:24:46 -04:00
cmclark00
4e1bbfa1a6 ugh 2024-10-14 09:37:13 -04:00
cmclark00
cb5f862cef i think i got it! 2024-10-14 09:30:56 -04:00
cmclark00
2e4241adab fixing os_list 2024-10-14 09:20:17 -04:00
cmclark00
aabb284f60 more typos 2024-10-14 00:47:20 -04:00
cmclark00
2f260cf516 another typo 2024-10-14 00:41:08 -04:00
cmclark00
cfc177555c fixed spacing 2024-10-14 00:36:33 -04:00
cmclark00
eadcc42be9 another typo 2024-10-14 00:16:53 -04:00
cmclark00
e1f90d5929 add preliminary support for xu mini m 2024-10-14 00:03:46 -04:00
cmclark00
f5654cc436 fixed a typo 2024-10-14 00:01:43 -04:00
cmclark00
9edd65d91a add rocknix devices 2024-10-13 23:50:57 -04:00
cmclark00
ca7b93c911 adding rocknix logo 2024-10-13 22:40:40 -04:00
cmclark00
0a248c9a53 updated windows build 2024-10-13 22:30:07 -04:00
cmclark00
db97aa68ac more name changes 2024-10-13 20:53:32 -04:00
cmclark00
6760ba778f some name changes 2024-10-13 20:33:13 -04:00
cmclark00
4d008ac052 fixed logo 2024-10-12 21:37:50 -04:00
cmclark00
a0550b0fd9 lgog path 2024-10-12 20:46:54 -04:00
cmclark00
937cec710f typo 2024-10-12 20:44:52 -04:00
cmclark00
dfb4e027f4 update logo path 2024-10-12 20:41:53 -04:00
cmclark00
ff30fdc01c add muos logo 2024-10-12 20:39:12 -04:00
cmclark00
be9c7ab930 almost got it 2024-10-12 20:33:17 -04:00
cmclark00
1422abc6e4 blegh 2024-10-12 20:30:00 -04:00
cmclark00
87310d5392 df 2024-10-12 20:27:08 -04:00
cmclark00
0f8d1f1e44 sdfsdf 2024-10-12 20:12:29 -04:00
cmclark00
d30adb496f dsdf 2024-10-12 20:05:19 -04:00
cmclark00
096e640852 logo work 2024-10-12 20:00:30 -04:00
108 changed files with 1891 additions and 530 deletions

47
.github/workflows/build-arm64-mac.yml vendored Normal file
View file

@ -0,0 +1,47 @@
name: Build Retro-Imager for ARM64 Macs
on:
push:
branches:
- dev
pull_request:
branches:
- dev
jobs:
build:
name: Build on macOS ARM64
runs-on: macos-13
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Dependencies
run: |
brew update
brew install cmake qt@6
- name: Verify Qt Installation Path
run: |
echo "Qt is installed at: $(brew --prefix qt@6)"
ls -la $(brew --prefix qt@6)
- name: Configure and Build Retro-Imager
run: |
mkdir -p build
cd build
cmake -DCMAKE_PREFIX_PATH=$(brew --prefix qt@6) ../src
make
- name: Archive Build Artifacts
if: success()
run: |
mkdir -p build_artifacts
tar -czvf build_artifacts/retro-imager-arm64-mac.tar.gz build/
- name: Upload Build Artifacts
uses: actions/upload-artifact@v3
with:
name: retro-imager-arm64-mac
path: build_artifacts/retro-imager-arm64-mac.tar.gz

View file

@ -1,46 +0,0 @@
name: Windows x64 Build
on:
push:
branches:
- boogaloo
pull_request:
branches:
- boogaloo
jobs:
build:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Qt
uses: jurplel/install-qt-action@v3
with:
version: '6.7.3'
host: 'windows'
target: 'desktop'
arch: 'win64_msvc2019_64'
- name: Install CMake
run: |
choco install cmake --installargs '"ADD_CMAKE_TO_PATH=System"' --yes
- name: Install Visual Studio Build Tools
run: |
choco install visualstudio2019buildtools --version=16.11.9 --yes
choco install visualstudio2019-workload-vctools --yes
- name: Configure CMake
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
cmake -S src -B build -G "NMake Makefiles" -DCMAKE_PREFIX_PATH:PATH="%Qt5_DIR%"
- name: Build the project
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
cmake --build build --config Release

197
README.md
View file

@ -1,154 +1,65 @@
# Raspberry Pi Imager
# Retro-Imager
Raspberry Pi Imaging Utility
**Retro-Imager** is a fork of the official Raspberry Pi Imager, specially tailored for retro gaming handhelds and the custom firmwares that power them. This project simplifies the process of flashing custom firmware images to your retro handheld devices, allowing you to quickly get set up and start gaming.
- To install on Raspberry Pi OS, use `sudo apt update && sudo apt install rpi-imager`.
- Download the latest version for Windows, macOS and Ubuntu from the [Raspberry Pi downloads page](https://www.raspberrypi.com/software/).
## Supported Devices & Custom Firmwares
## How to use Raspberry Pi Imager
At present, **Retro-Imager** supports:
**muOS** and **Rocknix**.
More devices and firmwares will be added in future releases!
Please see our [official documentation](https://www.raspberrypi.com/documentation/computers/getting-started.html#raspberry-pi-imager).
## Features
- **Easy-to-use interface**: Retro-Imager retains the familiar look and feel of Raspberry Pi Imager, making it accessible to anyone.
- **Handheld Focus**: Tailored specifically for retro handheld gaming devices, eliminating unnecessary options for general-purpose single-board computers.
- **Custom Firmware Support**: Flash custom OS images like muOS and Rocknix quickly and easily.
- **Firmware Recommendations**: The top-most firmware option for each device is our recommended choice, ensuring optimal performance and compatibility.
## Getting Started
### Prerequisites
- A computer running Linux (x86_64) or Windows (x86_64)
- A microSD card reader
- A microSD card (at least 8GB, though larger is recommended)
### Installation
1. Download the most recent release from the [GitHub releases page](https://github.com/cmclark00/retro-imager/releases).
2. Extract the files (if necessary) and run the application on your system:
- For Linux: Make the file executable and run it.
```bash
chmod +x retro-imager.AppImage
./retro-imager.AppImage
```
- For Windows: Double-click the `.exe` file.
### Using Retro-Imager
1. Launch Retro-Imager.
2. Select your device from the list (e.g., RG35XX Plus, RG28XX, RGB30).
3. Choose the custom firmware you would like to install. The top-most option is the recommended firmware for your selected device.
4. Insert your microSD card into your computer.
5. Select the correct device from the list and click "Write".
6. Safely remove the microSD card and insert it into your retro gaming handheld.
## Contributing
### Linux
We welcome contributions! Whether you're improving code, fixing bugs, or expanding firmware support, your help is appreciated.
#### Get dependencies
To contribute:
- Install the build dependencies (Debian used as an example):
```sh
sudo apt install --no-install-recommends build-essential cmake git libgnutls28-dev
```
- Get the Qt online installer from: https://www.qt.io/download-open-source
- During installation, choose Qt 6.7, CMake and Qt Creator.
#### Get the source
```sh
git clone --depth 1 https://github.com/raspberrypi/rpi-imager
```
#### Build the AppImage
Modify appimagecraft.yml:
- First, you _must_ set Qt6_ROOT (as a extra_variables item under build/cmake) to the root of your Qt6 installation. eg: `/opt/Qt/6.7.2/gcc_arm64/`
- Second, you _must_ set QMAKE (as a raw_environment variable of the linuxdeploy plugin) to the full path of qmake inside that Qt6 installation. eg: `/opt/Qt/6.7.2./gcc_arm64/bin/qmake`
Now, use AppImageCraft to build your AppImage:
```sh
cd rpi-imager
export LD_LIBRARY_PATH=${your_Qt6_install_path}/lib
./${your_platform_appimagecraft}.AppImage
```
Now mark the AppImage as executable, and run it:
```sh
chmod +x ./Raspberry_Pi_Imager-*.AppImage
./Raspberry_Pi_Imager-*.AppImage
```
### Windows
#### Get dependencies
- Get the Qt online installer from: https://www.qt.io/download-open-source
During installation, choose Qt 6.7 with Mingw64 64-bit toolchain, CMake and Qt Creator.
- For building the installer, get Nullsoft scriptable install system: https://nsis.sourceforge.io/Download
- It is assumed you already have a valid code signing certificate, and the Windows 10 Kit (SDK) installed.
#### Building
Building Raspberry Pi Imager on Windows is best done with the Qt Creator GUI.
- Download source .zip from github and extract it to a folder on disk
- Open src/CMakeLists.txt in Qt Creator.
- Use Qt Creator to set the MINGW64_ROOT CMake variable to your MingGW64 installation path, eg `C:\Qt\Tools\mingw64`
- For builds you distribute to others, make sure you choose "Release" in the toolchain settings and not the Debug configuration.
- 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.
### macOS
#### Get dependencies
- Get the Qt online installer from: https://www.qt.io/download-open-source
During installation, choose Qt 6.7, CMake and Qt Creator.
- It is assumed you have an Apple developer subscription, and already have a "Developer ID" code signing certificate for distribution outside the Mac Store.
#### Building
- Download source .zip from github and extract it to a folder on disk
- Start Qt Creator and open src/CMakeLists.txt
- Use Qt Creator to set the Qt6_ROOT CMake variable to your Qt6 installation path, eg `/opt/Qt6/6.7.2/gcc_arm64`
- Menu "Build" -> "Build all"
- Result will be in build_rpi-imager_someversion
- For distribution to others:
- Use the IMAGER_SIGNED_APP flag to enable Application signing
- Use the IMAGER_SIGNING_IDENTITY string to specify the Developer ID certificate Common Name
- Use the IMAGER_NOTARIZE_APP flag to enable notarization as part of the build
- Use the IMAGER_NOTARIZE_KEYCHAIN_PROFILE string to specify the name of the keychain item containing your Apple ID credentials for notarizing.
### Linux embedded (netboot) build
The embedded build runs under a minimalistic Linux distribution compiled by buildroot.
To build:
- You must be running a Linux system, and have the buildroot dependencies installed as listed in the buildroot manual: https://buildroot.org/downloads/manual/manual.html#requirement
- Run:
```sh
cd rpi-imager/embedded
./build.sh
```
The result will be in the "output" directory.
The files can be copied to a FAT32 formatted SD card, and inserted in a Pi for testing.
If you would like to build a (signed) netboot image there are tools for that at: https://github.com/raspberrypi/usbboot/tree/master/tools
## Other notes
### 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.
### Telemetry
In order to understand usage of the application (e.g. uptake of Raspberry Pi Imager versions and which images and operating systems are most popular) when using the default image repository, the URL, operating system name and category (if present) of a selected image are sent along with the running version of Raspberry Pi Imager, your operating system, CPU architecture, locale and Raspberry Pi revision (if applicable) to https://rpi-imager-stats.raspberrypi.com by downloadstatstelemetry.cpp.
This web service is hosted by [Heroku](https://www.heroku.com) and only stores an incrementing counter using a [Redis Sorted Set](https://redis.io/topics/data-types#sorted-sets) for each URL, operating system name and category per day in the `eu-west-1` region and does not associate any personal data with those counts. This allows us to query the number of downloads over time and nothing else.
The last 1,500 requests to the service are logged for one week before expiring as this is the [minimum log retention period for Heroku](https://devcenter.heroku.com/articles/logging#log-history-limits).
On Windows, you can opt out of telemetry by disabling it in the Registry:
```pwsh
reg add "HKCU\Software\Raspberry Pi\Imager" /v telemetry /t REG_DWORD /d 0
```
On Linux, run `rpi-imager --disable-telemetry` or add the following to `~/.config/Raspberry Pi/Imager.conf`:
```ini
[General]
telemetry=false
```
On macOS, disable it by editing the property list for the application:
```sh
defaults write org.raspberrypi.Imager.plist telemetry -bool NO
```
1. Fork the repository.
2. Create a new branch:
```bash
git checkout -b feature/YourFeature
3. Commit your changes:
```bash
git commit -m "Add some feature"
4. Push to the branch:
```bash
git push origin feature/YourFeature
5. Open a Pull Request.
### License
The main code of the Imaging Utility is made available under the terms of the Apache license.
See license.txt and files in "src/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.
For the embedded (netboot) build see also "embedded/legal-info" for more information about the extra system software included in that.
This project is licensed under the MIT License. See the LICENSE file for details.

View file

@ -1,8 +1,8 @@
version: 1
project:
name: org.raspberrypi.rpi-imager
version: 1.9.2
name: org.coreymclark.retro-imager
version: 0.3.0
build:
cmake:

16
minimal_test.json Normal file
View file

@ -0,0 +1,16 @@
{
"os_list": [
{
"name": "Test OS 1",
"description": "A test OS for verifying functionality",
"icon": "icons/erase.png",
"url": "internal://format"
},
{
"name": "Test OS 2",
"description": "Another test OS",
"icon": "icons/erase.png",
"url": "internal://format"
}
]
}

552
os_list.json Normal file
View file

@ -0,0 +1,552 @@
{
"os_list": [
{
"name": "muOS 2410.1 Banana for RG35XX Plus",
"description": "muOS 2410.1 Banana firmware optimized for Anbernic RG35XX Plus.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/logo.png?raw=true",
"url": "https://dl.muos.dev/RELEASE/2410.1/muOS-RG35XX-PLUS-2410.1-BANANA-d1bae326.img.gz",
"release_date": "2024-10-12",
"image_download_size": 2151537628,
"extract_size": 4504682496,
"extract_sha256": "62c492047923e3e8709e0b015760b7f1e0db2ccab40e741fe067b49d96957624",
"devices": [
"rg35xx_plus"
]
},
{
"name": "muOS 2410.1 Banana for RG28XX",
"description": "muOS 2410.1 Banana firmware optimized for Anbernic RG28XX.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/logo.png?raw=true",
"url": "https://dl.muos.dev/RELEASE/2410.1/muOS-RG28XX-2410.1-BANANA-d1bae326.img.gz",
"release_date": "2024-10-12",
"image_download_size": 2158432397,
"extract_size": 4504682496,
"extract_sha256": "62c492047923e3e8709e0b015760b7f1e0db2ccab40e741fe067b49d96957624",
"devices": [
"rg28xx"
]
},
{
"name": "muOS 2410.1 Banana for RG35XXH",
"description": "muOS 2410.1 Banana firmware optimized for Anbernic RG35XXH.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/logo.png?raw=true",
"url": "https://dl.muos.dev/RELEASE/2410.1/muOS-RG35XX-H-2410.1-BANANA-a10951c4.img.gz",
"release_date": "2024-10-12",
"image_download_size": 2118435484,
"extract_size": 4504682496,
"extract_sha256": "a84a1386de3b046aea05c75a4ccc8da0fbc2ee42f89b7b78a720cf657f45d3d2",
"devices": [
"rg35xxh"
]
},
{
"name": "muOS 2410.1 Banana for RG35XXSP",
"description": "muOS 2410.1 Banana firmware optimized for Anbernic RG35XXSP.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/logo.png?raw=true",
"url": "https://dl.muos.dev/RELEASE/2410.1/muOS-RG35XX-SP-2410.1-BANANA-d1bae326.img.gz",
"release_date": "2024-10-12",
"image_download_size": 2176694960,
"extract_size": 4504682496,
"extract_sha256": "9a529d2f089bba6616615026c6ec16e282d622adbc6ae97172b7ab73d32092c4",
"devices": [
"rg35xx_sp"
]
},
{
"name": "muOS 2410.1 Banana for RG35XX24",
"description": "muOS 2410.1 Banana firmware optimized for Anbernic RG35XX24.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/logo.png?raw=true",
"url": "https://dl.muos.dev/RELEASE/2410.1/muOS-RG35XX-2024-2410.1-BANANA-d1bae326.img.gz",
"release_date": "2024-10-12",
"image_download_size": 2151137645,
"extract_size": 4504682496,
"extract_sha256": "fc0da5aa0dcda244be8dec28115210200fe259c374bb7b25d6d26f4db812d351",
"devices": [
"rg35xx_2024"
]
},
{
"name": "muOS 2410.1 Banana for RG40XXH",
"description": "muOS 2410.1 Banana firmware optimized for Anbernic RG40XXH.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/logo.png?raw=true",
"url": "https://dl.muos.dev/RELEASE/2410.1/muOS-RG40XX-H-2410.1-BANANA-d1bae326.img.gz",
"release_date": "2024-10-12",
"image_download_size": 2132388103,
"extract_size": 4504682496,
"extract_sha256": "fe51f4f3a7f9e51c34eb78ef704a9a6af0233d6fdf87ccd070444034003afe5c",
"devices": [
"rg40xxh"
]
},
{
"name": "muOS 2410.1 Banana for RG40XXV",
"description": "muOS 2410.1 Banana firmware optimized for Anbernic RG40XXV.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/logo.png?raw=true",
"url": "https://dl.muos.dev/RELEASE/2410.1/muOS-RG40XX-V-2410.1-BANANA-d1bae326.img.gz",
"release_date": "2024-10-12",
"image_download_size": 2132476961,
"extract_size": 4504682496,
"extract_sha256": "aa2cd35010e1414c62b0460d8f193d7a3c56ebcf3f59a220aebe995ab93bb051",
"devices": [
"rg40xxv"
]
},
{
"name": "ROCKNIX 20241120 for Rockchip RK3326 devices, A image.",
"description": "ROCKNIX 20241120 firmware optimized for Rockchip RK3326 devices.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/rocknix.png?raw=true",
"url": "https://github.com/ROCKNIX/distribution/releases/download/20241120/ROCKNIX-RK3326.aarch64-20241120-a.img.gz",
"release_date": "2024-11-20",
"image_download_size": 1348717111,
"extract_size": 2197815296,
"extract_sha256": "8cc28cca1d4d88464cf156691a540111385c5b94f30aa067456cc80fcd12b747",
"devices": [
"rg351p",
"rg351m",
"rg351v",
"r33s",
"r35s",
"r36s",
"oga",
"ogs",
"xu10",
"v10",
"rgb10"
]
},
{
"name": "ROCKNIX 20241120 for Rockchip RK3326 devices, B image.",
"description": "ROCKNIX 20241120 firmware optimized for Rockchip RK3326 devices.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/rocknix.png?raw=true",
"url": "https://github.com/ROCKNIX/distribution/releases/download/20241120/ROCKNIX-RK3326.aarch64-20241120-b.img.gz",
"release_date": "2024-11-20",
"image_download_size": 1348619756,
"extract_size": 2197815296,
"extract_sha256": "e43ed5ea9c8c93408a180e57409e9a07d7594ecb1ffe46f21024655f46ea9050",
"devices": [
"xu_mini_m",
"rgb10x"
]
},
{
"name": "ROCKNIX 20241120 for Rockchip RK3399 devices",
"description": "ROCKNIX 20241120 firmware optimized for Rockchip RK3399 devices.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/rocknix.png?raw=true",
"url": "https://github.com/ROCKNIX/distribution/releases/download/20241120/ROCKNIX-RK3399.aarch64-20241120.img.gz",
"release_date": "2024-11-20",
"image_download_size": 1288581465,
"extract_size": 2198863872,
"extract_sha256": "53091696a540d693d99d515524816825a057823c0fe1f91a0b5e4837baeb24b9",
"devices": [
"rg552"
]
},
{
"name": "ROCKNIX 20241120 for Rockchip RK3566 devices",
"description": "ROCKNIX 20241120 firmware optimized for Rockchip RK3566 devices.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/rocknix.png?raw=true",
"url": "https://github.com/ROCKNIX/distribution/releases/download/20241120/ROCKNIX-RK3566.aarch64-20241120-Generic.img.gz",
"release_date": "2024-11-20",
"image_download_size": 1391749865,
"extract_size": 2198863872,
"extract_sha256": "4917f090e9364f47de5cf8663c0741eb79b8236c4b455a5ae4d3c8889744de27",
"devices": [
"rg353p",
"rg353m",
"rg353v",
"rg353vs",
"rg353ps",
"rg503",
"rg_arc_d",
"rg_arc_s",
"rk2023",
"rgb10_max_3",
"rgb30",
"rgb20sx"
]
},
{
"name": "ROCKNIX 20241120 for Powkiddy X55 devices",
"description": "ROCKNIX 20241120 firmware optimized for Powkiddy X55 devices.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/rocknix.png?raw=true",
"url": "https://github.com/ROCKNIX/distribution/releases/download/20241120/ROCKNIX-RK3566.aarch64-20241120-Powkiddy_x55.img.gz",
"release_date": "2024-11-20",
"image_download_size": 1391396234,
"extract_size": 2198863872,
"extract_sha256": "35391e0a49de413a2672893a07ed6ca116f90746baef620eebf8d3ab7b2ad5f7",
"devices": [
"x55"
]
},
{
"name": "ROCKNIX 20241120 for Hardkernel ODROID Go Ultra and Powkiddy RGB10 Max 3 Pro devices",
"description": "ROCKNIX 20241120 firmware optimized for ODROID Go Ultra and RGB10 Max 3 Pro devices.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/rocknix.png?raw=true",
"url": "https://github.com/ROCKNIX/distribution/releases/download/20241120/ROCKNIX-S922X.aarch64-20241120.img.gz",
"release_date": "2024-11-20",
"image_download_size": 1416924259,
"extract_size": 2185232384,
"extract_sha256": "86cd0a48d541e3e68582107748e2f77656c153d11f6efd14563fb65a0f9c5076",
"devices": [
"ogu",
"rgb10_max_3_pro"
]
},
{
"name": "ROCKNIX 20240815 for Hardkernel ODROID N2/N2+ devices",
"description": "ROCKNIX 20240815 firmware optimized for Hardkernel ODROID N2/N2+ devices.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/rocknix.png?raw=true",
"url": "https://github.com/ROCKNIX/distribution/releases/download/20240815/ROCKNIX-S922X.aarch64-20240815-Odroid_N2.img.gz",
"release_date": "2024-08-15",
"image_download_size": 1249723275,
"extract_size": 2185232384,
"extract_sha256": "7e5b56f4a0c0a9d9c64e7b1ba4472dd7e2dac9c28a23585098e16349f30c7fc9",
"devices": [
"on2",
"on2_plus"
]
},
{
"name": "ROCKNIX 20240815 for Hardkernel ODROID N2L devices",
"description": "ROCKNIX 20240815 firmware optimized for Hardkernel ODROID N2L devices.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/rocknix.png?raw=true",
"url": "https://github.com/ROCKNIX/distribution/releases/download/20240815/ROCKNIX-S922X.aarch64-20240815-Odroid_N2L.img.gz",
"release_date": "2024-08-15",
"image_download_size": 1249707786,
"extract_size": 2185232384,
"extract_sha256": "5af36c78b57dcb35c910bb72c2ed28208fe94c94d5b7fda83d73ef33a2419910",
"devices": [
"on2l"
]
},
{
"name": "ROCKNIX 20241120 for Rockchip RK3588 devices",
"description": "ROCKNIX 20241120 firmware optimized for Rockchip RK3588 devices.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/rocknix.png?raw=true",
"url": "https://github.com/ROCKNIX/distribution/releases/download/20241120/ROCKNIX-RK3588.aarch64-20241120.img.gz",
"release_date": "2024-11-20",
"image_download_size": 1451047021,
"extract_size": 2198863872,
"extract_sha256": "ec81027b7d9b757f09ccd78ce38c6993009e66ddd4b7e1a1206dc104ad739754",
"devices": [
"ace",
"orange_pi_5",
"orange_pi_5_plus",
"radxa_rock_5a",
"radxa_rock_5b",
"radxa_rock_5b_plus",
"radxa_rock_cm5",
"nova"
]
},
{
"name": "ROCKNIX 20241120 for Retroid Pocket Mini and Retroid Pocket 5 devices",
"description": "ROCKNIX 20241120 firmware optimized for Snapdragon 865 devices.",
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/rocknix.png?raw=true",
"url": "https://github.com/ROCKNIX/distribution/releases/download/20241120/ROCKNIX-SD865.aarch64-20241120.img.gz",
"release_date": "2024-11-20",
"image_download_size": 1404994449,
"extract_size": 2198863872,
"extract_sha256": "82f9336c27c9b733322e7e9f685bc1e98aa4eedb0c17f9ae297edb983ada6f39",
"devices": [
"rpmini",
"rp5"
]
}
],
"imager": {
"devices": [
{
"name": "Anbernic",
"subitems": [
{
"name": "Anbernic RG40XXH",
"tags": ["rg40xxh"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG40XX%20H.png?raw=true"
},
{
"name": "Anbernic RG40XXV",
"tags": ["rg40xxv"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG40XX%20V.png?raw=true"
},
{
"name": "Anbernic RG35XXH",
"tags": ["rg35xxh"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX%20H.png?raw=true"
},
{
"name": "Anbernic RG35XX Plus",
"tags": ["rg35xx_plus"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX%20-%20PLUS.png?raw=true"
},
{
"name": "Anbernic RG35XX SP",
"tags": ["rg35xx_sp"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX%20SP.png?raw=true"
},
{
"name": "Anbernic RG35XX 2024",
"tags": ["rg35xx_2024"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX%20-%202024.png?raw=true"
},
{
"name": "Anbernic RG28XX",
"tags": ["rg28xx"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG28XX.png?raw=true"
},
{
"name": "Anbernic RG351P",
"tags": ["rg351p"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Anbernic RG351M",
"tags": ["rg351m"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Anbernic RG351V",
"tags": ["rg351v"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Anbernic RG353P",
"tags": ["rg353p"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Anbernic RG353M",
"tags": ["rg353m"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Anbernic RG353V",
"tags": ["rg353v"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Anbernic RG353VS",
"tags": ["rg353vs"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Anbernic RG353PS",
"tags": ["rg353ps"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Anbernic RG503",
"tags": ["rg503"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Anbernic RG Arc-D",
"tags": ["rg_arc_d"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Anbernic RG Arc-S",
"tags": ["rg_arc_s"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
}
]
},
{
"name": "Game Console",
"subitems": [
{
"name": "Game Console R33S",
"tags": ["r33s"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Game Console R35S",
"tags": ["r35s"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Game Console R36S",
"tags": ["r36s"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
}
]
},
{
"name": "ODROID",
"subitems": [
{
"name": "ODROID Go Advance",
"tags": ["oga"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "ODROID Go Super",
"tags": ["ogs"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "ODROID N2",
"tags": ["on2"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "ODROID N2 Plus",
"tags": ["on2_plus"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "ODROID N2L",
"tags": ["on2l"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
}
]
},
{
"name": "MagicX",
"subitems": [
{
"name": "MagicX XU10",
"tags": ["xu10"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "MagicX XU Mini M",
"tags": ["xu_mini_m"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
}
]
},
{
"name": "Powkiddy",
"subitems": [
{
"name": "Powkiddy V10",
"tags": ["v10"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Powkiddy RGB10",
"tags": ["rgb10"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Powkiddy RK2023",
"tags": ["rk2023"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Powkiddy RGB10 Max 3",
"tags": ["rgb10_max_3"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Powkiddy RGB30",
"tags": ["rgb30"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Powkiddy RGB20SX",
"tags": ["rgb20sx"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Anbernic RG552",
"tags": ["rg552"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "ODROID Go Ultra",
"tags": ["ogu"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Powkiddy RGB10 Max 3 Pro",
"tags": ["rgb10_max_3_pro"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Powkiddy X55",
"tags": ["x55"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
}
]
},
{
"name": "Gameforce",
"subitems": [
{
"name": "Gameforce Ace (default)",
"tags": ["ace"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
}
]
},
{
"name": "Orange Pi",
"subitems": [
{
"name": "Orange Pi 5",
"tags": ["orange_pi_5"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Orange Pi 5 Plus",
"tags": ["orange_pi_5_plus"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
}
]
},
{
"name": "Radxa",
"subitems": [
{
"name": "Radxa Rock 5a",
"tags": ["radxa_rock_5a"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Radxa Rock 5b",
"tags": ["radxa_rock_5b"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Radxa Rock 5b Plus",
"tags": ["radxa_rock_5b_plus"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Radxa Rock CM5",
"tags": ["radxa_rock_cm5"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
}
]
},
{
"name": "Indiedroid",
"subitems": [
{
"name": "Indiedroid Nova (Must set dtb in extlinuix.conf)",
"tags": ["nova"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
}
]
},
{
"name": "Retroid",
"subitems": [
{
"name": "Retroid Pocket Mini",
"tags": ["rpmini"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
},
{
"name": "Retroid Pocket 5",
"tags": ["rp5"],
"icon": "https://github.com/cmclark00/retro-imager/blob/fix/src/icons/RG35XX.png?raw=true"
}
]
}
]
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,5 @@
QMAKE_PRL_TARGET = libqdarwinbluetoothpermission.a
QMAKE_PRL_CONFIG = static
QMAKE_PRL_VERSION = 6.8.2
QMAKE_PRL_LIBS = -F$$[QT_INSTALL_LIBS] -framework QtCore -framework IOKit -framework DiskArbitration -framework UniformTypeIdentifiers -framework Foundation -framework CoreBluetooth
QMAKE_PRL_LIBS_FOR_CMAKE = -F$$[QT_INSTALL_LIBS];-framework;QtCore;-framework IOKit;-framework DiskArbitration;-framework UniformTypeIdentifiers;-framework Foundation;-framework CoreBluetooth

Binary file not shown.

View file

@ -0,0 +1,5 @@
QMAKE_PRL_TARGET = libqdarwincalendarpermission.a
QMAKE_PRL_CONFIG = static
QMAKE_PRL_VERSION = 6.8.2
QMAKE_PRL_LIBS = -F$$[QT_INSTALL_LIBS] -framework QtCore -framework IOKit -framework DiskArbitration -framework UniformTypeIdentifiers -framework Foundation -framework EventKit
QMAKE_PRL_LIBS_FOR_CMAKE = -F$$[QT_INSTALL_LIBS];-framework;QtCore;-framework IOKit;-framework DiskArbitration;-framework UniformTypeIdentifiers;-framework Foundation;-framework EventKit

Binary file not shown.

View file

@ -0,0 +1,5 @@
QMAKE_PRL_TARGET = libqdarwincamerapermission.a
QMAKE_PRL_CONFIG = static
QMAKE_PRL_VERSION = 6.8.2
QMAKE_PRL_LIBS = -F$$[QT_INSTALL_LIBS] -framework QtCore -framework IOKit -framework DiskArbitration -framework UniformTypeIdentifiers -framework Foundation -framework AVFoundation
QMAKE_PRL_LIBS_FOR_CMAKE = -F$$[QT_INSTALL_LIBS];-framework;QtCore;-framework IOKit;-framework DiskArbitration;-framework UniformTypeIdentifiers;-framework Foundation;-framework AVFoundation

Binary file not shown.

View file

@ -0,0 +1,5 @@
QMAKE_PRL_TARGET = libqdarwincontactspermission.a
QMAKE_PRL_CONFIG = static
QMAKE_PRL_VERSION = 6.8.2
QMAKE_PRL_LIBS = -F$$[QT_INSTALL_LIBS] -framework QtCore -framework IOKit -framework DiskArbitration -framework UniformTypeIdentifiers -framework Foundation -framework Contacts
QMAKE_PRL_LIBS_FOR_CMAKE = -F$$[QT_INSTALL_LIBS];-framework;QtCore;-framework IOKit;-framework DiskArbitration;-framework UniformTypeIdentifiers;-framework Foundation;-framework Contacts

Binary file not shown.

View file

@ -0,0 +1,5 @@
QMAKE_PRL_TARGET = libqdarwinlocationpermission.a
QMAKE_PRL_CONFIG = static
QMAKE_PRL_VERSION = 6.8.2
QMAKE_PRL_LIBS = -F$$[QT_INSTALL_LIBS] -framework QtCore -framework IOKit -framework DiskArbitration -framework UniformTypeIdentifiers -framework Foundation -framework CoreLocation
QMAKE_PRL_LIBS_FOR_CMAKE = -F$$[QT_INSTALL_LIBS];-framework;QtCore;-framework IOKit;-framework DiskArbitration;-framework UniformTypeIdentifiers;-framework Foundation;-framework CoreLocation

View file

@ -0,0 +1,5 @@
QMAKE_PRL_TARGET = libqdarwinmicrophonepermission.a
QMAKE_PRL_CONFIG = static
QMAKE_PRL_VERSION = 6.8.2
QMAKE_PRL_LIBS = -F$$[QT_INSTALL_LIBS] -framework QtCore -framework IOKit -framework DiskArbitration -framework UniformTypeIdentifiers -framework Foundation -framework AVFoundation
QMAKE_PRL_LIBS_FOR_CMAKE = -F$$[QT_INSTALL_LIBS];-framework;QtCore;-framework IOKit;-framework DiskArbitration;-framework UniformTypeIdentifiers;-framework Foundation;-framework AVFoundation

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -8,10 +8,10 @@ OPTION (DRIVELIST_FILTER_SYSTEM_DRIVES "Filter System drives from displayed driv
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "Which macOS architectures to build for")
project(rpi-imager LANGUAGES CXX C)
set(IMAGER_VERSION_MAJOR 1)
set(IMAGER_VERSION_MINOR 9)
set(IMAGER_VERSION_PATCH 2)
project(retro-imager LANGUAGES CXX C)
set(IMAGER_VERSION_MAJOR 0)
set(IMAGER_VERSION_MINOR 5)
set(IMAGER_VERSION_PATCH 0)
set(IMAGER_VERSION_STR "${IMAGER_VERSION_MAJOR}.${IMAGER_VERSION_MINOR}.${IMAGER_VERSION_PATCH}")
set(IMAGER_VERSION_CSV "${IMAGER_VERSION_MAJOR},${IMAGER_VERSION_MINOR},${IMAGER_VERSION_PATCH},0")
add_definitions(-DIMAGER_VERSION_STR="${IMAGER_VERSION_STR}")
@ -21,10 +21,10 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
#add_link_options("-fsanitize=address")
# You _must_ set your Qt6 root for the build to progress.
set(Qt6_ROOT "/opt/Qt/6.7.2/gcc_arm64" CACHE PATH "Your Qt6 root path")
set(Qt6_ROOT "$ENV{QT6_ROOT}" CACHE PATH "Your Qt6 root path")
if (WIN32)
set(MINGW64_ROOT "" CACHE PATH "Your MinGW64 root path, likely provided by QtCreator")
set(MINGW64_ROOT "$ENV{MINGW64_ROOT}" CACHE PATH "Your MinGW64 root path, likely provided by QtCreator")
endif()
if (APPLE)
@ -384,12 +384,12 @@ if (WIN32)
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"${CMAKE_BINARY_DIR}/${PROJECT_NAME}.exe" "${CMAKE_BINARY_DIR}/dependencies/fat32format/fat32format.exe"
"${CMAKE_SOURCE_DIR}/../license.txt" "${CMAKE_SOURCE_DIR}/windows/rpi-imager-cli.cmd"
"${CMAKE_SOURCE_DIR}/../license.txt" "${CMAKE_SOURCE_DIR}/windows/retro-imager-cli.cmd"
"${CMAKE_BINARY_DIR}/deploy")
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/windows/rpi-imager.nsi.in"
"${CMAKE_CURRENT_BINARY_DIR}/rpi-imager.nsi"
"${CMAKE_CURRENT_SOURCE_DIR}/windows/retro-imager.nsi.in"
"${CMAKE_CURRENT_BINARY_DIR}/retro-imager.nsi"
@ONLY)
add_custom_command(TARGET ${PROJECT_NAME}
@ -402,7 +402,7 @@ if (WIN32)
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND "${WINDEPLOYQT}" --no-translations --qmldir "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_BINARY_DIR}/deploy/rpi-imager.exe")
COMMAND "${WINDEPLOYQT}" --no-translations --qmldir "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_BINARY_DIR}/deploy/retro-imager.exe")
# Remove excess files
add_custom_command(TARGET ${PROJECT_NAME}
@ -433,32 +433,30 @@ elseif(APPLE)
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND "${MACDEPLOYQT_EXECUTABLE}" "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.app" -qmldir="${CMAKE_CURRENT_SOURCE_DIR}")
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND mv "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.app" "${CMAKE_BINARY_DIR}/Raspberry\ Pi\ Imager.app")
# Don't rename the app bundle, use the project name consistently
# Sign the .app.
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND codesign -f --deep --digest-algorithm=sha1,sha256 -o runtime --timestamp -s "${IMAGER_SIGNING_IDENTITY}" "${CMAKE_BINARY_DIR}/Raspberry\ Pi\ Imager.app")
COMMAND codesign -f --deep --digest-algorithm=sha1,sha256 -o runtime --timestamp -s "${IMAGER_SIGNING_IDENTITY}" "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.app")
# Create the .dmg for distribution
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND hdiutil create -volname "Raspberry Pi Imager" -srcfolder "${CMAKE_BINARY_DIR}/Raspberry\ Pi\ Imager.app" -ov -format UDBZ "${CMAKE_BINARY_DIR}/Raspberry\ Pi\ Imager.dmg")
COMMAND hdiutil create -volname "${PROJECT_NAME}" -srcfolder "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.app" -ov -format UDBZ "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.dmg")
# Sign the .dmg for distribution, but do not initialise notarisation
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND codesign -f --digest-algorithm=sha1,sha256 -o runtime --timestamp -s "${IMAGER_SIGNING_IDENTITY}" "${CMAKE_BINARY_DIR}/Raspberry\ Pi\ Imager.dmg")
COMMAND codesign -f --digest-algorithm=sha1,sha256 -o runtime --timestamp -s "${IMAGER_SIGNING_IDENTITY}" "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.dmg")
if(IMAGER_NOTARIZE_APP)
if(IMAGER_NOTARIZE_KEYCHAIN_PROFILE)
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND xcrun notarytool submit "${CMAKE_BINARY_DIR}/Raspberry\ Pi\ Imager.dmg" --wait --keychain-profile "${IMAGER_NOTARIZE_KEYCHAIN_PROFILE}")
COMMAND xcrun notarytool submit "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.dmg" --wait --keychain-profile "${IMAGER_NOTARIZE_KEYCHAIN_PROFILE}")
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND xcrun stapler staple "${CMAKE_BINARY_DIR}/Raspberry\ Pi\ Imager.dmg")
COMMAND xcrun stapler staple "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.dmg")
else()
message(FATAL_ERROR "Notarization requested, but no keychain profile is supplied")
endif(IMAGER_NOTARIZE_KEYCHAIN_PROFILE)
@ -471,12 +469,12 @@ elseif(APPLE)
# Unsigned application
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND "${MACDEPLOYQT_EXECUTABLE}" "${CMAKE_BINARY_DIR}/Raspberry\ Pi\ Imager.app" -qmldir="${CMAKE_CURRENT_SOURCE_DIR}" -always-overwrite -no-strip -dmg)
COMMAND "${MACDEPLOYQT_EXECUTABLE}" "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.app" -qmldir="${CMAKE_CURRENT_SOURCE_DIR}" -always-overwrite -no-strip -dmg)
endif(IMAGER_SIGNED_APP)
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND "mv" "${CMAKE_BINARY_DIR}/Raspberry\ Pi\ Imager.dmg" "${CMAKE_BINARY_DIR}/Raspberry\ Pi\ Imager-${IMAGER_VERSION_STR}.dmg")
COMMAND "mv" "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.dmg" "${CMAKE_BINARY_DIR}/${PROJECT_NAME}-${IMAGER_VERSION_STR}.dmg")
else()
# UNIX, Linux systems
@ -494,7 +492,7 @@ else()
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
install(FILES "${CMAKE_CURRENT_LIST_DIR}/../debian/rpi-imager.png" DESTINATION share/icons/hicolor/128x128/apps)
install(FILES "linux/org.raspberrypi.rpi-imager.desktop" DESTINATION share/applications)
install(FILES "linux/org.coreymclark.retro-imager.desktop" DESTINATION share/applications)
install(FILES "${CMAKE_CURRENT_LIST_DIR}/../debian/rpi-imager.metainfo.xml" DESTINATION share/metainfo)
endif()

View file

@ -8,13 +8,13 @@
/* Repository URL */
#define OSLIST_URL "https://raw.githubusercontent.com/cmclark00/retro-imager/boogaloo/src/os_list.json"
#define OSLIST_URL "https://raw.githubusercontent.com/cmclark00/retro-imager/refs/heads/fix/src/os_list.json"
/* Time synchronization URL (only used on eglfs QPA platform, URL must be HTTP) */
#define TIME_URL "http://downloads.raspberrypi.org/os_list_imagingutility_v4.json?time_synchronization"
/* Phone home the name of images downloaded for image popularity ranking */
#define TELEMETRY_URL "https://rpi-imager-stats.raspberrypi.com/downloads"
#define TELEMETRY_URL "http://technerdguys.com/telemetry-endpoint"
/* Hash algorithm for verifying (uncompressed image) checksum */
#define OSLIST_HASH_ALGORITHM QCryptographicHash::Sha256

BIN
src/icons/banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

BIN
src/icons/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
src/icons/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

BIN
src/icons/rocknix.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Some files were not shown because too many files have changed in this diff Show more