Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
flipper-template — Zig-Entwicklungsvorlage für Flipper Zero mit automatisiertem Build-Pipeline, SDK-Integration und Cross-Compilierung für ARM Cortex-M4. Unterstützt Sub-GHz-, NFC-, RFID- und Infrarot-Protokolle. | Kitploit
Tools/GitHubGitHub/nishantjoshi00/flipper-template
Embedded-System-SicherheitIoT-SicherheitScripting & AutomatisierungMobile SicherheitHardware-SicherheitDienstprogramme & FrameworksLernen & BildungFirmware-Analyse

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
nishantjoshi00/flipper-template

flipper-template

Zig-Entwicklungsvorlage für Flipper Zero mit automatisiertem Build-Pipeline, SDK-Integration und Cross-Compilierung für ARM Cortex-M4. Unterstützt Sub-GHz-, NFC-, RFID- und Infrarot-Protokolle.

Repository anzeigen
134334vor 4 MonatenVon Kitploit geprüft

Flipper Zero Zig Vorlage

Eine moderne, produktionsreife Vorlage für die Entwicklung von Flipper Zero-Anwendungen unter Verwendung der Programmiersprache Zig. Dieses Projekt bietet ein optimiertes Build-System, das Zig mit dem Flipper Zero SDK integriert und es Entwicklern ermöglicht, typsichere, speichersichere Anwendungen für die Flipper Zero-Plattform zu schreiben.

Überblick

Diese Vorlage verbindet die leistungsstarken Build-System- und Sprachfunktionen von Zig mit dem Flipper Zero Firmware-Entwicklungskit. Sie bewältigt die komplexe Integration zwischen Zigs ARM Cortex-M4 Cross-Kompilierung und dem Flipper SDK und bietet einen sauberen Ausgangspunkt für benutzerdefinierte Anwendungen.

Hauptmerkmale

  • Native Zig-Unterstützung: Schreiben Sie Flipper-Anwendungen vollständig in Zig und nutzen Sie dessen Compile-Zeit-Sicherheitsgarantien und C-Interoperabilität
  • Automatisierte Build-Pipeline: Nahtlose Integration mit ufbt (inoffizielles Build-Tool) zur Verpackung von FAP-Dateien
  • Plattformübergreifende Entwicklung: Funktioniert auf macOS, Linux und anderen von Zig unterstützten Plattformen
  • SDK-Integration: Vorkonfigurierte Include-Pfade und Compiler-Flags für das vollständige Flipper SDK (F7-Ziel)
  • Interaktive Einrichtung: Geführtes Initialisierungsskript zur Anpassung der App-Metadaten
  • Schnellstart: Integrierte Befehle zum Bauen, Verpacken und Bereitstellen auf Flipper-Geräten

Architektur

Die Vorlage verwendet einen zweistufigen Build-Prozess:

  1. Zig-Build-Phase: Kompiliert Zig-Quellcode in ARM Cortex-M4-Objektdateien (app.o)

    • Ziel: thumb-Architektur mit cortex-m4-CPU-Modell
    • ABI: eabihf (Embedded Application Binary Interface, Hard Float)
    • Optimierung: ReleaseSmall für minimale Binary-Größe
  2. UFBT-Paketierungsphase: Verknüpft Objektdateien mit dem SDK und verpackt sie im .fap-Format

    • Wird von der offiziellen Flipper-Build-Toolchain verwaltet
    • Produziert bereitstellbare Anwendungspakete

Voraussetzungen

Erforderliche Werkzeuge

  • Zig: Version 0.15.1 oder höher (Download)
  • UFBT: Inoffizielles Flipper-Build-Tool (Installationsanleitung)
  • Python 3: Erforderlich für die Ausführung von ufbt-Befehlen
  • Flipper Zero SDK: Wird automatisch von ufbt verwaltet (installiert unter ~/.ufbt)

Plattformspezifische Einrichtung

macOS

Die Vorlage ist vorkonfiguriert für ARM64 macOS mit dem ARM-Toolchain-Pfad:

~/.ufbt/toolchain/arm64-darwin/arm-none-eabi/include

Wenn Sie sich auf einer anderen Plattform befinden, müssen Sie möglicherweise den Pfad arm_libc_include in build.zig:31 an Ihren Toolchain-Standort anpassen.

Installation

  1. UFBT installieren:

    python3 -m pip install --upgrade ufbt
    ufbt update
    
  2. Diese Vorlage klonen oder herunterladen:

    git clone https://github.com/yourusername/flipper-template.git
    cd flipper-template
    
  3. Projekt initialisieren:

    zig build init
    

    Dieses interaktive Skript wird Sie nach Folgendem fragen:

    • App-ID (z.B. my_custom_app)
    • Anzeigename (wird im Flipper-Menü angezeigt)
    • Beschreibung
    • Autorenname
    • GitHub-Repository-URL

Verwendung

Anwendung bauen

Kompilieren Sie den Zig-Quellcode in eine Objektdatei:

zig build

Dies erstellt zig-out/bin/app.o mit dem gesamten kompilierten Anwendungscode.

Ein FAP-Paket erstellen

Bauen und verpacken Sie die vollständige Anwendung:

zig build fap

Dies führt die gesamte Pipeline aus:

  1. Kompiliert Zig-Quellcode in Objektdatei
  2. Ruft ufbt auf, um mit dem SDK zu verknüpfen
  3. Erzeugt .fap-Datei im dist/-Verzeichnis

Auf Flipper bereitstellen

Starten Sie die Anwendung direkt auf einem angeschlossenen Flipper Zero:

zig build launch

Dies baut, verpackt und überträgt die App per USB und startet sie dann automatisch.

Projektstruktur

flipper-template/
├── application.fam       # Flipper-App-Manifest (Metadaten, Einstiegspunkte)
├── build.zig            # Zig-Build-System-Konfiguration
├── build.zig.zon        # Zig-Paketmanifest
├── icon.png             # App-Symbol (10x10px empfohlen)
├── setup.sh             # Interaktives Projektinitialisierungsskript
├── src/
│   └── root.zig         # Hauptquellcode der Anwendung
└── zig-out/             # Build-Artefakte (generiert)
    └── bin/
        └── app.o        # Kompilierte Objektdatei

Wichtige Dateien

  • src/root.zig: Einstiegspunkt mit der start()-Funktion und der Anwendungslogik
  • application.fam: Flipper-spezifische Konfiguration (App-ID, Kategorie, Abhängigkeiten, Stack-Größe)
  • build.zig: Definiert Kompilierungsziele, SDK-Pfade und Build-Befehle

Entwicklungsleitfaden

Minimale Anwendungsstruktur

Die Vorlage enthält ein "Hello World"-Beispiel, das die Kern-Flipper-APIs demonstriert:

// Flipper-SDK-Funktionen importieren
const flipper = @cImport({
    @cInclude("furi.h");
    @cInclude("gui/gui.h");
    @cInclude("gui/canvas.h");
    @cInclude("gui/view_port.h");
});

// Anwendungseinstiegspunkt (muss "start" heißen)
export fn start(_: ?*anyopaque) callconv(.{ .arm_aapcs = .{} }) i32 {
    // GUI-Viewport initialisieren
    const gui = flipper.furi_record_open("gui");
    const view_port = flipper.view_port_alloc();

    // Callbacks und UI einrichten
    // ... (vollständige Implementierung siehe src/root.zig)

    // Ereignisschleife
    _ = flipper.furi_thread_flags_wait(1, flipper.FuriFlagWaitAny, flipper.FuriWaitForever);

    return 0;
}

SDK-Integration

Das Build-System konfiguriert automatisch Include-Pfade für:

  • Core SDK: FURI (Flipper Universal Runtime Interface)
  • HAL: Hardware-Abstraktionsschicht für STM32WB55
  • Standard-Bibliotheken: mbedTLS, nanopb, mlib
  • Protokoll-Bibliotheken: Sub-GHz, NFC, RFID, Infrarot
  • Peripherie-APIs: GPIO, SPI, I2C, UART

Alle Header sind über @cImport() in Ihrem Zig-Code verfügbar.

Hinweise zur Aufrufkonvention

Das Flipper SDK verwendet ARM-AAPCS-Aufrufkonventionen:

  • AAPCS: Standard-ARM-Prozeduraufruf (z.B. start()-Einstiegspunkt)
  • AAPCS-VFP: Mit Gleitkomma-/Vektor-Unterstützung (z.B. Callbacks)

Stellen Sie sicher, dass exportierte Funktionen der erwarteten Aufrufkonvention entsprechen:

export fn start(_: ?*anyopaque) callconv(.{ .arm_aapcs = .{} }) i32
export fn draw_callback(canvas: ?*Canvas, ctx: ?*anyopaque) callconv(.{ .arm_aapcs_vfp = .{} }) void

Umgang mit SDK-Importen

Einige SDK-Header enthalten Konstrukte, die Zigs C-Übersetzer nicht verarbeiten kann (z.B. Unions mit undurchsichtigen Typen in input/input.h). Deklarieren Sie in diesen Fällen externe Funktionen manuell:

extern fn view_port_input_callback_set(
    view_port: ?*flipper.ViewPort,
    callback: ?*const fn (?*anyopaque, ?*anyopaque) callconv(.{ .arm_aapcs_vfp = .{} }) void,
    context: ?*anyopaque
) callconv(.{ .arm_aapcs = .{} }) void;

Fehlerbehebung

Build-Fehler

Problem: Kann Header 'furi.h' nicht finden

  • Ursache: UFBT SDK nicht installiert oder ~/.ufbt-Pfad falsch
  • Lösung: Führen Sie ufbt update aus, um SDK-Header zu installieren

Problem: Undefinierter Verweis auf 'view_port_alloc'

  • Ursache: Objektdatei nicht ordnungsgemäß mit SDK verknüpft
  • Lösung: Verwenden Sie zig build fap anstelle von zig build, um die Verknüpfung abzuschließen

Bereitstellungsprobleme

Problem: Kein Flipper-Gerät gefunden

  • Ursache: Gerät nicht angeschlossen oder im DFU-Modus
  • Lösung: Per USB verbinden und sicherstellen, dass das Gerät im Hauptmenü entsperrt ist
Tool herunterladen