{"id":20857108,"url":"https://github.com/flipperdevices/qflipper","last_synced_at":"2025-04-08T09:11:30.888Z","repository":{"id":37370552,"uuid":"367434816","full_name":"flipperdevices/qFlipper","owner":"flipperdevices","description":"qFlipper — desktop application for updating Flipper Zero firmware via PC","archived":false,"fork":false,"pushed_at":"2024-06-11T13:05:35.000Z","size":5175,"stargazers_count":1150,"open_issues_count":29,"forks_count":154,"subscribers_count":39,"default_branch":"dev","last_synced_at":"2024-10-29T19:08:57.669Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://update.flipperzero.one","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flipperdevices.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-14T17:26:35.000Z","updated_at":"2024-10-28T23:41:51.000Z","dependencies_parsed_at":"2024-11-18T04:36:18.855Z","dependency_job_id":"e9b1efa8-46b2-4ade-8e0a-689a2c7e2bd2","html_url":"https://github.com/flipperdevices/qFlipper","commit_stats":null,"previous_names":[],"tags_count":81,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flipperdevices%2FqFlipper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flipperdevices%2FqFlipper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flipperdevices%2FqFlipper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flipperdevices%2FqFlipper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flipperdevices","download_url":"https://codeload.github.com/flipperdevices/qFlipper/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247809964,"owners_count":20999816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T04:36:10.123Z","updated_at":"2025-04-08T09:11:30.841Z","avatar_url":"https://github.com/flipperdevices.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## qFlipper\n\n### Graphical desktop application for updating [Flipper Zero](https://flipperzero.one/) firmware via PC\nqFlipper is completely open source and based on [Qt](https://www.qt.io/) framework. Runs on Windows, macOS, Linux.\n\n\u003cimg alt=\"qFlipper\" width=\"450\" src=\"https://cdn.flipperzero.one/qflipper_logo_with_connected_flipper.png\" /\u003e\n\n## Download\n\nDownload official qFlipper builds here: [update.flipperzero.one](https://update.flipperzero.one/)\n\n\u003ca href=\"https://update.flipperzero.one\"\u003e\u003cimg width=\"300\" alt=\"download qFlipper Button\" src=\"https://cdn.flipperzero.one/download_qFlipper_button.png\" /\u003e\u003c/a\u003e\n\n\n## Features\n* Update Flipper's firmware and supplemental data with a press of one button\n* Repair a broken firmware installation\n* Stream Flipper's display and control it remotely\n* Install firmware from a `.dfu` file\n* Backup and restore settings, progress and pairing data\n* Automatic self-update feature\n* Command line interface\n\n## Build from sources \n### Cloning\nMake sure to clone the project together with submodules: \n```sh\ngit clone https://github.com/flipperdevices/qFlipper.git --recursive\n```\n### Windows\n\nBuild requirements:\n- MS Visual Studio 2019 or newer\n- Qt5 (MSVC build) \u003e= 5.15.0 or Qt6 \u003e= 6.3.0\n- NSIS (to generate the installer)\n\nEdit `build_windows.bat` to adjust to your build environment and then run:\n```cmd\nbuild_windows.bat\n```\n\nNote: STM32 Bootloader driver is not provided in this repository.\n\n### Linux\n#### Docker build (AppImage, official)\n\nSetup dev container by running:\n```sh \ndocker compose up -d\n```\nCompile qFlipper by running:\n```sh\ndocker compose exec dev ./build_linux.sh\n```\n\n#### Standalone build\nBuild requirements:\n- Qt5 \u003e= 5.15.0 or Qt6 \u003e= 6.3.0\n- libusb \u003e= 1.0.16\n- zlib \u003e= 1.2.0\n\nMake sure to install the following Qt modules (the exact package names might differ slightly depending on your Linux distribution): \n```\nbase, tools, serialport, declarative,  wayland, [quickcontrols2, graphicaleffects] (Qt5 only), qt5-compat (Qt6 only)\n```\nThen run:\n```sh\nmkdir build \u0026\u0026 cd build\nqmake ../qFlipper.pro PREFIX=/path/to/install/dir -spec linux-g++ CONFIG+=qtquickcompiler \u0026\u0026 \nmake qmake_all \u0026\u0026 make \u0026\u0026 make install\n```\n**Caution:** `make install`ing to the system prefix is not recommended. Instead, use this method for building distro-specific packages. \nIn this case, it is possible to disable the built-in application update feature by passing `DEFINES+=DISABLE_APPLICATION_UPDATES` to the `qmake` call.\n\n### MacOS\n\nBuild requirements:\n\n- Xcode or command line tools\n- Qt6 6.3.1 static universal from [Flipper brew tap](https://github.com/flipperdevices/homebrew-flipper)\n- libusb 1.0.24 universal from [Flipper brew tap](https://github.com/flipperdevices/homebrew-flipper)\n- [dmgbuild](https://pypi.org/project/dmgbuild/) \u003e= 1.5.2\n\nIf you want to sign binaries, set `SIGNING_KEY` environment variable:\n\n\texport SIGNING_KEY=\"Your Developer Key ID\"\n\nBuilding, signing and creating package:\n\n\t./build_mac.sh\n\nResulting image can be found in: `build_mac/qFlipper.dmg`\n\n## Run\n\n### Linux\n```sh\n./build/qFlipper-x86_64.AppImage\n```\n\nor just launch the file above from your favourite file manager.\nYou will likely need to set up udev rules in order to use qFlipper as a normal user:\n```sh\n./qFlipper-x86_64.AppImage rules install [/optional/path/to/rules/dir]\n```\n\n#### Package managers support\nSee [contrib](./contrib) for available options.\n\n## Project structure\n- `application` - The main graphical application, written mostly in QML.\n- `cli` - The command line interface, provides nearly all main application's functionality.\n- `backend` - The backend library, written in C++. Takes care of most of the logic.\n- `dfu` - Low level library for accessing USB and DFU devices.\n- `plugins` - Protobuf-based communication protocol support.\n- `3rdparty` - Third-party libraries.\n- `contrib` - Contributed packages and scripts.\n- `driver-tool` - DFU driver installation tool for Windows (based on `libwdi`).\n- `docker` - Docker configuration files.\n- `installer-assets` - Supplementary data for deployment.\n\n## Reporting bugs\nqFlipper is a project under active development. Please report any encountered bugs to make it better!\n\nThe (mostly) complete guide is located [here](./.github/ISSUE_TEMPLATE/bug_report.md).\n\n## Known bugs\n\n* Sometimes Flipper's serial port doesn't get recognised by the OS, which leads to firmware update errors. This is a firmware issue.\n* On some systems, there is noticeable flicker during opening, closing or resizing of the log area.\n* Release source archives are automatically generated by Github and are unsuitable for building as they do not contain submodules.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflipperdevices%2Fqflipper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflipperdevices%2Fqflipper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflipperdevices%2Fqflipper/lists"}