Giter VIP home page Giter VIP logo

esurge / qflipper Goto Github PK

View Code? Open in Web Editor NEW

This project forked from flipperdevices/qflipper

2.0 0.0 0.0 4.92 MB

qFlipper — desktop application for updating Flipper Zero firmware via PC

Home Page: https://update.flipperzero.one

License: GNU General Public License v3.0

Shell 0.83% C++ 64.95% Python 0.05% C 11.84% Nix 0.26% QML 18.45% QMake 1.74% NSIS 1.46% Batchfile 0.31% Dockerfile 0.12%

qflipper's Introduction

qFlipper

Graphical desktop application for updating Flipper Zero firmware via PC

qFlipper is completely open source and based on Qt framework. Runs on Windows, macOS, Linux.

qFlipper

Download

Download official qFlipper builds here: update.flipperzero.one

download qFlipper Button

Features

  • Update Flipper's firmware and supplemental data with a press of one button
  • Repair a broken firmware installation
  • Stream Flipper's display and control it remotely
  • Install firmware from a .dfu file
  • Backup and restore settings, progress and pairing data
  • Automatic self-update feature
  • Command line interface

Build from sources

Cloning

Make sure to clone the project together with submodules:

git clone https://github.com/flipperdevices/qFlipper.git --recursive

Windows

Build requirements:

  • MS Visual Studio 2019 or newer
  • Qt5 (MSVC build) >= 5.15.0 or Qt6 >= 6.3.0
  • NSIS (to generate the installer)

Edit build_windows.bat to adjust to your build environment and then run:

build_windows.bat

Note: STM32 Bootloader driver is not provided in this repository.

Linux

Docker build (AppImage, official)

Setup dev container by running:

docker-compose up -d

Compile qFlipper by running:

docker-compose exec dev ./build_linux.sh

Standalone build

Build requirements:

  • Qt5 >= 5.15.0 or Qt6 >= 6.3.0
  • libusb >= 1.0.16
  • zlib >= 1.2.0

Make sure to install the following Qt modules (the exact package names might differ slightly depending on your Linux distribution):

base, tools, serialport, declarative,  wayland, [quickcontrols2, graphicaleffects] (Qt5 only), qt5-compat (Qt6 only)

Then run:

mkdir build && cd build
qmake ../qFlipper.pro PREFIX=/path/to/install/dir -spec linux-g++ CONFIG+=qtquickcompiler && 
make qmake_all && make && make install

Caution: make installing to the system prefix is not recommended. Instead, use this method for building distro-specific packages. In this case, it is possible to disable the built-in application update feature by passing DEFINES+=DISABLE_APPLICATION_UPDATES to the qmake call.

MacOS

Build requirements:

If you want to sign binaries, set SIGNING_KEY environment variable:

export SIGNING_KEY="Your Developer Key ID"

Building, signing and creating package:

./build_mac.sh

Resulting image can be found in: build_mac/qFlipper.dmg

Run

Linux

./build/qFlipper-x86_64.AppImage

or just launch the file above from your favourite file manager. You will likely need to set up udev rules in order to use qFlipper as a normal user:

./qFlipper-x86_64.AppImage rules install [/optional/path/to/rules/dir]

Package managers support

See contrib for available options.

Project structure

  • application - The main graphical application, written mostly in QML.
  • cli - The command line interface, provides nearly all main application's functionality.
  • backend - The backend library, written in C++. Takes care of most of the logic.
  • dfu - Low level library for accessing USB and DFU devices.
  • plugins - Protobuf-based communication protocol support.
  • 3rdparty - Third-party libraries.
  • contrib - Contributed packages and scripts.
  • driver-tool - DFU driver installation tool for Windows (based on libwdi).
  • docker - Docker configuration files.
  • installer-assets - Supplementary data for deployment.

Reporting bugs

qFlipper is a project under active development. Please report any encountered bugs to make it better!

The (mostly) complete guide is located here.

Known bugs

  • Sometimes Flipper's serial port doesn't get recognised by the OS, which leads to firmware update errors. This is a firmware issue.
  • On some systems, there is noticeable flicker during opening, closing or resizing of the log area.
  • Release source archives are automatically generated by Github and are unsuitable for building as they do not contain submodules.

qflipper's People

Contributors

gsurkov avatar rusdacent avatar skotopes avatar zhovner avatar aprosvetova avatar richardsondev avatar sur5r avatar drunkbatya avatar hramrach avatar gncnpk avatar uberguidoz avatar alexwaibel avatar trn1ty avatar vanish125 avatar kavitate avatar kev009 avatar cab404 avatar wdoekes avatar yan0f avatar

Stargazers

 avatar D1N38H avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.