An application for Flipper Zero to identify, manage, and clean up duplicate *.sub files from Sub-GHz storage.
| Main Menu | Groups View | File Management |
|---|---|---|
![]() |
![]() |
![]() |
Tip: Capture these screenshots using the "Remote" tab in qFlipper.
This project uses a standard Makefile for local development on your host machine (Linux/macOS).
gcc,make,clang-format,cppcheck.
make test: Run unit tests for the core logic on your computer.make format: Automatically format code usingclang-format.make linter: Run static analysis withcppcheckto ensure code safety.make prepare: Links your local project directory into the Flipper Zero firmwareapplications_userfolder.make fap: Builds the.fapbinary usingfbt(requires firmware repo).make clean: Cleans local build artifacts.
- Clone the official Flipper Zero Firmware.
- Set the
FLIPPER_FIRMWARE_PATHin yourMakefileto point to your local firmware directory. - Run
make fapfrom this project's directory. This command will:- Prepare the source code (symlink).
- Clean previous builds.
- Compile the binary using
fbt.
| File | Responsibility |
|---|---|
logic.h / logic.c |
Pure domain logic: CRC32, duplicate detection, record removal. No Flipper SDK dependency, testable with plain gcc. |
app_state.h |
App state struct, view enums, shared constants (SCAN_DIR, FULL_PATH_LEN). |
storage_helper.h / .c |
File I/O: directory scanning, file hashing, file deletion. |
ui.h / ui.c |
UI callbacks, rendering, view setup. |
main.c |
App lifecycle orchestration: alloc, setup, run, free. |
version.h |
App version, auto-updated by release-please. |
This project includes GitHub Actions workflows:
-
CI (
ci.yml): Runs on every push and pull request.- Linter (static analysis with
cppcheck). - Format check (style enforcement with
clang-format). - Unit tests (logic validation).
- Linter (static analysis with
-
Release (
release.yml): Runs on push tomain.- Runs CI checks.
- release-please creates a release PR with auto-generated changelog.
- On release, builds the
.fapbinary withufbtand uploads it as a GitHub Release asset.
Author: Endika GitHub: github.com/endika/flipper-sub-dup


