From 014ca770519c5e15ce6c031efbbaf7ad27619589 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Fri, 29 Jul 2022 19:51:17 +0300 Subject: [PATCH] update docs --- .github/actions/docker/action.yml | 11 - .github/assets/Born2bSportyV2.ttf | Bin 55532 -> 0 bytes .github/assets/latest-firmware-template.png | Bin 19684 -> 0 bytes .github/workflows/build.yml | 214 -------------------- .github/workflows/build_toolchain.yml | 46 ----- .github/workflows/check_submodules.yml | 17 -- .github/workflows/lint_c.yml | 62 ------ .github/workflows/lint_python.yml | 36 ---- .github/workflows/reindex.yml | 15 -- documentation/NRF24.md | 3 + documentation/SentrySafe.md | 2 +- 11 files changed, 4 insertions(+), 402 deletions(-) delete mode 100644 .github/actions/docker/action.yml delete mode 100644 .github/assets/Born2bSportyV2.ttf delete mode 100644 .github/assets/latest-firmware-template.png delete mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/build_toolchain.yml delete mode 100644 .github/workflows/check_submodules.yml delete mode 100644 .github/workflows/lint_c.yml delete mode 100644 .github/workflows/lint_python.yml delete mode 100644 .github/workflows/reindex.yml diff --git a/.github/actions/docker/action.yml b/.github/actions/docker/action.yml deleted file mode 100644 index 3608f96e6..000000000 --- a/.github/actions/docker/action.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: 'Run in docker' -inputs: - run: # id of input - description: 'A command to run' - required: true - default: '' -runs: - using: 'docker' - image: '../../../docker/Dockerfile' - args: - - ${{ inputs.run }} diff --git a/.github/assets/Born2bSportyV2.ttf b/.github/assets/Born2bSportyV2.ttf deleted file mode 100644 index 02001782191bb61a6e111d0c10cae154ef9a298f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55532 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 diff --git a/.github/assets/latest-firmware-template.png b/.github/assets/latest-firmware-template.png deleted file mode 100644 index 7f400ca4f2e95463e7eac6f64257b4339374f712..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19684 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

Mpg7N5(kH`?0 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 $GITHUB_ENV - echo "DIST_SUFFIX=${SUFFIX}" >> $GITHUB_ENV - echo "::set-output name=artifacts-path::${BRANCH_OR_TAG}" - echo "::set-output name=suffix::${SUFFIX}" - echo "::set-output name=short-hash::${SHA}" - echo "::set-output name=default-target::${DEFAULT_TARGET}" - - - name: 'Bundle scripts' - if: ${{ !github.event.pull_request.head.repo.fork }} - run: | - tar czpf artifacts/flipper-z-any-scripts-${{steps.names.outputs.suffix}}.tgz scripts - - - name: 'Build the firmware in docker' - uses: ./.github/actions/docker - with: - run: | - set -e - for TARGET in ${TARGETS} - do - ./fbt TARGET_HW=`echo ${TARGET} | sed 's/f//'` --with-updater updater_package ${{ startsWith(github.ref, 'refs/tags') && 'DEBUG=0 COMPACT=1' || '' }} - done - - - name: 'Move upload files' - if: ${{ !github.event.pull_request.head.repo.fork }} - uses: ./.github/actions/docker - with: - run: | - set -e - for TARGET in ${TARGETS} - do - mv dist/${TARGET}-*/* artifacts/ - done - - - name: 'Bundle self-update package' - if: ${{ !github.event.pull_request.head.repo.fork }} - uses: ./.github/actions/docker - with: - run: | - set -e - for UPDATEBUNDLE in artifacts/*/ - do - BUNDLE_NAME=`echo $UPDATEBUNDLE | cut -d'/' -f2` - echo Packaging ${BUNDLE_NAME} - tar czpf artifacts/flipper-z-${BUNDLE_NAME}.tgz -C artifacts ${BUNDLE_NAME} - rm -rf artifacts/${BUNDLE_NAME} - done - - - name: 'Bundle resources' - if: ${{ !github.event.pull_request.head.repo.fork }} - run: | - tar czpf artifacts/flipper-z-any-resources-${{steps.names.outputs.suffix}}.tgz -C assets resources - - - name: 'Bundle core2 firmware' - if: ${{ !github.event.pull_request.head.repo.fork }} - uses: ./.github/actions/docker - with: - run: | - ./fbt copro_dist - tar czpf artifacts/flipper-z-any-core2_firmware-${{steps.names.outputs.suffix}}.tgz -C assets core2_firmware - - - name: 'Upload artifacts to update server' - if: ${{ !github.event.pull_request.head.repo.fork }} - uses: burnett01/rsync-deployments@5.1 - with: - switches: -avzP --delete --mkpath - path: artifacts/ - remote_path: "${{ secrets.RSYNC_DEPLOY_BASE_PATH }}${{steps.names.outputs.artifacts-path}}/" - remote_host: ${{ secrets.RSYNC_DEPLOY_HOST }} - remote_port: ${{ secrets.RSYNC_DEPLOY_PORT }} - remote_user: ${{ secrets.RSYNC_DEPLOY_USER }} - remote_key: ${{ secrets.RSYNC_DEPLOY_KEY }} - - - name: 'Trigger update server reindex' - if: ${{ !github.event.pull_request.head.repo.fork }} - uses: wei/curl@master - with: - args: -X POST -F 'key=${{ secrets.REINDEX_KEY }}' ${{ secrets.REINDEX_URL }} - - - name: 'Find Previous Comment' - if: ${{ !github.event.pull_request.head.repo.fork && github.event.pull_request }} - uses: peter-evans/find-comment@v1 - id: fc - with: - issue-number: ${{ github.event.pull_request.number }} - comment-author: 'github-actions[bot]' - body-includes: 'Compiled firmware for commit' - - - name: 'Create or update comment' - if: ${{ !github.event.pull_request.head.repo.fork && github.event.pull_request}} - uses: peter-evans/create-or-update-comment@v1 - with: - comment-id: ${{ steps.fc.outputs.comment-id }} - issue-number: ${{ github.event.pull_request.number }} - body: | - **Compiled firmware for commit `${{steps.names.outputs.short-hash}}`:** - - [📦 Update package](https://update.flipperzero.one/builds/firmware/${{steps.names.outputs.artifacts-path}}/flipper-z-${{steps.names.outputs.default-target}}-update-${{steps.names.outputs.suffix}}.tgz) - - [📥 DFU file](https://update.flipperzero.one/builds/firmware/${{steps.names.outputs.artifacts-path}}/flipper-z-${{steps.names.outputs.default-target}}-full-${{steps.names.outputs.suffix}}.dfu) - - [☁️ Web updater](https://my.flipp.dev/?url=https://update.flipperzero.one/builds/firmware/${{steps.names.outputs.artifacts-path}}/flipper-z-${{steps.names.outputs.default-target}}-update-${{steps.names.outputs.suffix}}.tgz&channel=${{steps.names.outputs.artifacts-path}}&version=${{steps.names.outputs.short-hash}}) - edit-mode: replace - - compact: - if: ${{ !startsWith(github.ref, 'refs/tags') }} - runs-on: [self-hosted,FlipperZero] - steps: - - name: 'Cleanup workspace' - uses: AutoModality/action-clean@v1 - - - name: 'Decontaminate previous build leftovers' - run: | - if [ -d .git ] - then - git submodule status \ - || git checkout `git rev-list --max-parents=0 HEAD | tail -n 1` - fi - - - name: 'Checkout code' - uses: actions/checkout@v2 - with: - fetch-depth: 0 - submodules: true - ref: ${{ github.event.pull_request.head.sha }} - - - name: 'Build docker image' - uses: ./.github/actions/docker - - - name: 'Generate suffix and folder name' - id: names - run: | - REF=${{ github.ref }} - if [[ ${{ github.event_name }} == 'pull_request' ]]; then - REF=${{ github.head_ref }} - fi - BRANCH_OR_TAG=${REF#refs/*/} - SHA=$(git rev-parse --short HEAD) - - if [[ "${{ github.ref }}" == "refs/tags/"* ]]; then - SUFFIX=${BRANCH_OR_TAG//\//_} - else - SUFFIX=${BRANCH_OR_TAG//\//_}-$(date +'%d%m%Y')-${SHA} - fi - - echo "WORKFLOW_BRANCH_OR_TAG=${BRANCH_OR_TAG}" >> $GITHUB_ENV - echo "DIST_SUFFIX=${SUFFIX}" >> $GITHUB_ENV - - - name: 'Build the firmware in docker' - uses: ./.github/actions/docker - with: - run: | - set -e - for TARGET in ${TARGETS} - do - ./fbt TARGET_HW=`echo ${TARGET} | sed 's/f//'` --with-updater updater_package DEBUG=0 COMPACT=1 - done diff --git a/.github/workflows/build_toolchain.yml b/.github/workflows/build_toolchain.yml deleted file mode 100644 index 452dfbee6..000000000 --- a/.github/workflows/build_toolchain.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: 'Build toolchain Docker image' - -on: - push: - branches: - - dev - tags: - - '*' - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Docker meta - id: meta - uses: docker/metadata-action@v3 - with: - images: flipperdevices/flipperzero-toolchain - flavor: latest=${{ startsWith(github.ref, 'refs/tags/') && !endsWith(github.ref, 'rc')}} - tags: | - type=ref,event=branch - type=ref,event=tag - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push - id: docker_build - uses: docker/build-push-action@v2 - with: - context: docker/ - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - platforms: linux/amd64,linux/arm64 - cache-from: type=registry,ref=flipperdevices/flipperzero-toolchain:buildcache - cache-to: type=registry,ref=flipperdevices/flipperzero-toolchain:buildcache,mode=max diff --git a/.github/workflows/check_submodules.yml b/.github/workflows/check_submodules.yml deleted file mode 100644 index b02f9a8d0..000000000 --- a/.github/workflows/check_submodules.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: 'Check submodules' - -on: - pull_request: - -jobs: - protobuf: - runs-on: ubuntu-latest - steps: - - name: 'Checkout code' - uses: actions/checkout@v2 - - name: 'Check submodule commit branch' - uses: jtmullen/submodule-branch-check-action@v1 - with: - path: assets/protobuf - branch: dev - fetch_depth: 50 diff --git a/.github/workflows/lint_c.yml b/.github/workflows/lint_c.yml deleted file mode 100644 index f834586d3..000000000 --- a/.github/workflows/lint_c.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: 'Lint C/C++ with clang-format' - -on: - push: - branches: - - dev - - "release*" - tags: - - '*' - pull_request: - -env: - TARGETS: f7 - -jobs: - lint_c_cpp: - runs-on: [self-hosted,FlipperZero] - steps: - - name: 'Cleanup workspace' - uses: AutoModality/action-clean@v1 - - - name: 'Decontaminate previous build leftovers' - run: | - if [ -d .git ] - then - git submodule status \ - || git checkout `git rev-list --max-parents=0 HEAD | tail -n 1` - fi - - - name: 'Checkout code' - uses: actions/checkout@v2 - with: - fetch-depth: 0 - submodules: true - - - name: 'Docker cache' - uses: satackey/action-docker-layer-caching@v0.0.11 - continue-on-error: true - with: - key: docker-cache-${{ hashFiles('docker/**') }}-{hash} - restore-keys: docker-cache-${{ hashFiles('docker/**') }}- - - - name: 'Build docker image' - uses: ./.github/actions/docker - - - name: 'Check code formatting' - id: syntax_check - uses: ./.github/actions/docker - with: - run: SET_GH_OUTPUT=1 ./fbt lint - - - name: Report code formatting errors - if: failure() && steps.syntax_check.outputs.errors && github.event.pull_request - uses: peter-evans/create-or-update-comment@v1 - with: - issue-number: ${{ github.event.pull_request.number }} - body: | - Please fix following code formatting errors: - ``` - ${{ steps.syntax_check.outputs.errors }} - ``` - You might want to run `docker compose exec dev make format` for an auto-fix. diff --git a/.github/workflows/lint_python.yml b/.github/workflows/lint_python.yml deleted file mode 100644 index e665378b1..000000000 --- a/.github/workflows/lint_python.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: 'Python Lint' - -on: - push: - branches: - - dev - - "release*" - tags: - - '*' - pull_request: - -jobs: - lint_python: - runs-on: ubuntu-latest - steps: - - name: 'Cleanup workspace' - uses: AutoModality/action-clean@v1 - - - name: 'Decontaminate previous build leftovers' - run: | - if [ -d .git ] - then - git submodule status \ - || git checkout `git rev-list --max-parents=0 HEAD | tail -n 1` - fi - - - name: 'Checkout code' - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: 'Setup python' - uses: actions/setup-python@v2 - - - name: 'Check python code with black' - uses: psf/black@20.8b1 diff --git a/.github/workflows/reindex.yml b/.github/workflows/reindex.yml deleted file mode 100644 index 78f9cbead..000000000 --- a/.github/workflows/reindex.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: 'Reindex' - -on: - release: - types: [prereleased,released] - -jobs: - reindex: - name: 'Reindex updates' - runs-on: [self-hosted,FlipperZero] - steps: - - name: Trigger reindex - uses: wei/curl@master - with: - args: -X POST -F 'key=${{ secrets.REINDEX_KEY }}' ${{ secrets.REINDEX_URL }} diff --git a/documentation/NRF24.md b/documentation/NRF24.md index d3c617901..9d6e7c60a 100644 --- a/documentation/NRF24.md +++ b/documentation/NRF24.md @@ -11,6 +11,9 @@ An [NRF24](https://www.sparkfun.com/datasheets/Components/SMD/nRF24L01Pluss_Prel - Select Address and open badusb file - Done +# Demo (YouTube) +[![YouTube](https://img.youtube.com/vi/C5hbyAjuU4k/0.jpg)](https://www.youtube.com/watch?v=C5hbyAjuU4k) + ## Warning These apps are for **educational purposes** only. Please use this code responsibly and only use these apps on your own equipment. diff --git a/documentation/SentrySafe.md b/documentation/SentrySafe.md index ba90186f2..7c55ef22d 100644 --- a/documentation/SentrySafe.md +++ b/documentation/SentrySafe.md @@ -4,7 +4,7 @@ Flipper zero exploiting vulnerability to open any Sentry Safe and Master Lock electronic safe without any pin code. -[Vulnerability described here](https://github.com/H4ckd4ddy/bypass-sentry-safe) +[Demo and Vulnerability described here](https://github.com/H4ckd4ddy/bypass-sentry-safe) ### Usage