Flipper Zero firmware source code
This report summarizes scanner evidence for flipperdevices/flipperzero-firmware, a C project with 16,809 GitHub stars. SynthScan examined 425,375 lines of code across 2546 source files, recording 1132 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 3.7 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 965 finding(s).
Are imports declared and package/API names verified? 78 finding(s).
Are wrappers, guards, and repeated structures necessary? 114 finding(s).
Which changes need focused human review? 1132 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1132 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | documentation/file_formats/SubGhzFileFormats.md | 301 | #Custom_preset_name: AM_2 | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 1 | # Doxyfile 1.10.0 | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 21 | # Use doxygen to compare the used configuration file with the template | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 41 | # project for which the documentation is generated. This name is used in the | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 61 | # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 81 | # and will distribute the generated files over these directories. Enabling this | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 101 | # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 121 | COMMENT | |
| LOW | documentation/doxygen/Doxyfile.cfg | 161 | # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 181 | FULL_PATH_NAMES = NO | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 201 | COMMENT | |
| LOW | documentation/doxygen/Doxyfile.cfg | 221 | # such as | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 241 | # to treat a multi-line C++ comment block as a detailed description. Set this | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 261 | COMMENT | |
| LOW | documentation/doxygen/Doxyfile.cfg | 281 | # "sideeffect=@par Side Effects:^^" | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 301 | COMMENT | |
| LOW | documentation/doxygen/Doxyfile.cfg | 321 | COMMENT | |
| LOW | documentation/doxygen/Doxyfile.cfg | 341 | # use: inc=Fortran f=C. | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 361 | MARKDOWN_SUPPORT = YES | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 381 | MARKDOWN_ID_STYLE = DOXYGEN | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 401 | # If you use Microsoft's C++/CLI language, you should set this option to YES to | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 421 | # The default value is: YES. | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 441 | # (for instance a group of public functions) to be put as a subgroup of that | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 461 | # with only public data fields or simple typedef fields will be shown inline in | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 481 | # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 501 | # encounter. Generating dot graphs in parallel is controlled by the | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 521 | # class members and static file members will be hidden unless the | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 541 | # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 561 | # This flag is only useful for Objective-C code. If set to YES, local methods, | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 581 | # The default value is: YES. | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 601 | COMMENT | |
| LOW | documentation/doxygen/Doxyfile.cfg | 621 | INTERNAL_DOCS = NO | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 641 | # their full class and namespace scopes in the documentation. If set to YES, the | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 661 | # the files that are included by a file in the documentation of that file. | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 681 | # The default value is: YES. | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 701 | # (brief and detailed) documentation of class members so that constructors and | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 721 | # be sorted only by class name, not including the namespace part. | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 741 | # The default value is: YES. | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 761 | COMMENT | |
| LOW | documentation/doxygen/Doxyfile.cfg | 781 | # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 801 | COMMENT | |
| LOW | documentation/doxygen/Doxyfile.cfg | 821 | # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 841 | # standard output by doxygen. If QUIET is set to YES this implies that the | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 861 | WARN_IF_UNDOCUMENTED = NO | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 881 | # documentation, but not about the absence of documentation. If EXTRACT_ALL is | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 901 | # like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined doxygen will not | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 921 | WARN_FORMAT = "$file:$line: $text" | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 961 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 981 | # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 1081 | # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 1101 | COMMENT | |
| LOW | documentation/doxygen/Doxyfile.cfg | 1121 | # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 1141 | # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 1161 | # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 1181 | # Minimum value: 7, maximum value: 10000, default value: 72. | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 1201 | # The default value is: NO. | COMMENT |
| LOW | documentation/doxygen/Doxyfile.cfg | 1221 | COMMENT | |
| LOW | documentation/doxygen/Doxyfile.cfg | 1241 | COMMENT | |
| LOW | documentation/doxygen/Doxyfile.cfg | 1261 | COMMENT | |
| LOW | documentation/doxygen/Doxyfile.cfg | 1281 | ALPHABETICAL_INDEX = YES | COMMENT |
| 809 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | …ons/system/js_app/examples/apps/Scripts/stringutils.js | 4 | print(lengthOfText); | CODE |
| HIGH⚡ | …ons/system/js_app/examples/apps/Scripts/stringutils.js | 9 | print(substringResult); | CODE |
| HIGH⚡ | …ons/system/js_app/examples/apps/Scripts/stringutils.js | 13 | print(result2); | CODE |
| HIGH⚡ | …ons/system/js_app/examples/apps/Scripts/stringutils.js | 16 | print(upperCaseText); | CODE |
| HIGH⚡ | …ons/system/js_app/examples/apps/Scripts/stringutils.js | 19 | print(lowerCaseText); | CODE |
| HIGH | …cations/system/js_app/examples/apps/Scripts/console.js | 1 | print("print", 1); | CODE |
| HIGH⚡ | …/system/js_app/examples/apps/Scripts/array_buf_test.js | 2 | print("len =", arr_1.buffer.byteLength); | CODE |
| HIGH⚡ | …/system/js_app/examples/apps/Scripts/array_buf_test.js | 5 | print("slice len =", arr_2.buffer.byteLength); | CODE |
| HIGH⚡ | …/system/js_app/examples/apps/Scripts/array_buf_test.js | 7 | print(arr_2[i]); | CODE |
| HIGH | …ons/system/js_app/examples/apps/Scripts/badusb_demo.js | 32 | print("USB is connected"); | CODE |
| HIGH | …ons/system/js_app/examples/apps/Scripts/badusb_demo.js | 58 | print("USB not connected"); | CODE |
| HIGH | …tions/system/js_app/examples/apps/Scripts/uart_echo.js | 9 | print("0x" + data_view[0].toString(16)); | CODE |
| HIGH | …plications/system/js_app/examples/apps/Scripts/load.js | 3 | print(result); | CODE |
| HIGH | …s/system/js_app/examples/apps/Scripts/uart_echo_8e1.js | 13 | print("0x" + data_view[0].toString(16)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 3 | print("math.abs(-5):", math.abs(-5)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 4 | print("math.acos(0.5):", math.acos(0.5)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 5 | print("math.acosh(2):", math.acosh(2)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 6 | print("math.asin(0.5):", math.asin(0.5)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 7 | print("math.asinh(2):", math.asinh(2)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 8 | print("math.atan(1):", math.atan(1)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 9 | print("math.atan2(1, 1):", math.atan2(1, 1)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 10 | print("math.atanh(0.5):", math.atanh(0.5)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 11 | print("math.cbrt(27):", math.cbrt(27)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 12 | print("math.ceil(5.3):", math.ceil(5.3)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 13 | print("math.clz32(1):", math.clz32(1)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 14 | print("math.cos(math.PI):", math.cos(math.PI)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 15 | print("math.exp(1):", math.exp(1)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 16 | print("math.floor(5.7):", math.floor(5.7)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 17 | print("math.max(3, 5):", math.max(3, 5)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 18 | print("math.min(3, 5):", math.min(3, 5)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 19 | print("math.pow(2, 3):", math.pow(2, 3)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 20 | print("math.random():", math.random()); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 21 | print("math.sign(-5):", math.sign(-5)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 22 | print("math.sin(math.PI/2):", math.sin(math.PI / 2)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 23 | print("math.sqrt(25):", math.sqrt(25)); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/math.js | 24 | print("math.trunc(5.7):", math.trunc(5.7)); | CODE |
| HIGH⚡ | …ations/system/js_app/examples/apps/Scripts/bad_uart.js | 8 | print("No CLI response"); | CODE |
| HIGH⚡ | …ations/system/js_app/examples/apps/Scripts/bad_uart.js | 16 | print("key:", serial.readln()); | CODE |
| HIGH⚡ | …ations/system/js_app/examples/apps/Scripts/bad_uart.js | 18 | print("uci cmd not found"); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/path.js | 3 | print("script has __dirname of" + __dirname); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/path.js | 4 | print("script has __filename of" + __filename); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/path.js | 6 | print("math.js exist here."); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/path.js | 8 | print("math.js does not exist here."); | CODE |
| HIGH⚡ | …ions/system/js_app/examples/apps/Scripts/event_loop.js | 5 | print("Hi after 1337 ms"); | CODE |
| HIGH⚡ | …ions/system/js_app/examples/apps/Scripts/event_loop.js | 10 | print("Counter two:", counter); | CODE |
| HIGH⚡ | …ions/system/js_app/examples/apps/Scripts/event_loop.js | 19 | print("Counter one:", counter); | CODE |
| HIGH | …ons/system/js_app/examples/apps/Scripts/interactive.js | 91 | print("If you're stuck here, something went wrong, re-run the script") | CODE |
| HIGH | …ons/system/js_app/examples/apps/Scripts/interactive.js | 93 | print("\n\nFinished correctly :)") | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/gpio.js | 14 | print("Commencing blinking (PC3)"); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/gpio.js | 21 | print("Commencing PWM (PA7)"); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/gpio.js | 28 | print("Press the button (PC1)"); | CODE |
| HIGH⚡ | …plications/system/js_app/examples/apps/Scripts/gpio.js | 30 | print("PC0 is at", pot.readAnalog(), "mV"); | CODE |
| HIGH⚡ | …cations/system/js_app/examples/apps/Scripts/storage.js | 4 | print("File exists:", storage.fileExists(path)); | CODE |
| HIGH⚡ | …cations/system/js_app/examples/apps/Scripts/storage.js | 6 | print("Writing..."); | CODE |
| HIGH⚡ | …cations/system/js_app/examples/apps/Scripts/storage.js | 11 | print("File exists:", storage.fileExists(path)); | CODE |
| HIGH⚡ | …cations/system/js_app/examples/apps/Scripts/storage.js | 17 | print("Reading..."); | CODE |
| HIGH⚡ | …cations/system/js_app/examples/apps/Scripts/storage.js | 21 | print(text); | CODE |
| HIGH⚡ | …cations/system/js_app/examples/apps/Scripts/storage.js | 23 | print("Removing...") | CODE |
| HIGH⚡ | …cations/system/js_app/examples/apps/Scripts/storage.js | 26 | print("Done") | CODE |
| HIGH⚡ | …lications/system/js_app/examples/apps/Scripts/delay.js | 1 | print("start"); | CODE |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | documentation/doxygen/Doxyfile.cfg | 2293 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | documentation/doxygen/Doxyfile.cfg | 2295 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | documentation/doxygen/Doxyfile.cfg | 2305 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | documentation/doxygen/Doxyfile.cfg | 2307 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 26 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 28 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 515 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 517 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 836 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 838 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 942 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 944 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 1185 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 1187 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 1272 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 1274 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 1292 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 1294 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 1958 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 1960 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2141 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2143 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2197 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2199 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2241 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2243 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2275 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2277 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2331 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2333 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2369 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2371 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2448 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2450 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2494 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 2496 | #--------------------------------------------------------------------------- | COMMENT |
| MEDIUM | applications/system/snake_game/snake_game.c | 414 | // ┌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┐ | COMMENT |
| MEDIUM | applications/system/snake_game/snake_game.c | 430 | // └╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┘ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/update.py | 258 | except Exception as e: | CODE |
| LOW | scripts/send_firebase_notification.py | 11 | except Exception as e: | CODE |
| LOW | scripts/send_firebase_notification.py | 22 | except Exception as e: | CODE |
| MEDIUM | scripts/send_firebase_notification.py | 7 | def __init__(self, service_account_file): | CODE |
| MEDIUM | scripts/send_firebase_notification.py | 15 | def send(self, title, body, condition): | CODE |
| LOW | scripts/selfupdate.py | 63 | except Exception as e: | CODE |
| LOW | scripts/hs.py | 119 | except Exception as e: | CODE |
| LOW | scripts/runfap.py | 98 | except Exception as e: | CODE |
| LOW | scripts/assets.py | 278 | except Exception as e: | STRING |
| LOW | scripts/storage.py | 18 | except Exception as e: | CODE |
| MEDIUM | scripts/storage.py | 19 | print(f"Error: {e}") | CODE |
| LOW | scripts/storage.py | 125 | except Exception: | CODE |
| MEDIUM | scripts/storage.py | 14 | def wrapper(*args, **kwargs): | CODE |
| LOW | scripts/slideshow.py | 37 | except Exception as e: | CODE |
| LOW | scripts/testops.py | 137 | except Exception as e: | CODE |
| LOW | scripts/sconsdist.py | 123 | except Exception as ex: | CODE |
| LOW | scripts/wifi_board.py | 52 | except Exception as e: | CODE |
| LOW | scripts/wifi_board.py | 75 | except Exception as e: | CODE |
| LOW | scripts/wifi_board.py | 173 | except Exception as e: | CODE |
| LOW | scripts/wifi_board.py | 204 | except Exception as e: | CODE |
| MEDIUM | scripts/wifi_board.py | 166 | def update(self): | CODE |
| LOW | scripts/fwflash.py | 255 | except Exception: | CODE |
| MEDIUM | scripts/fwflash.py | 251 | def _valid_ip(self, address): | CODE |
| LOW | scripts/fbt_tools/fbt_apps.py | 119 | except Exception: | CODE |
| LOW | scripts/fbt_tools/fbt_apps.py | 140 | except Exception as e: | CODE |
| MEDIUM | scripts/fbt_tools/fbt_apps.py | 113 | def LoadAppManifest(env, entry): | CODE |
| LOW | scripts/flipper/storage.py | 177 | except Exception: | CODE |
| LOW | scripts/flipper/storage.py | 220 | except Exception: | CODE |
| LOW | scripts/flipper/utils/openocd.py | 114 | except Exception as e: | CODE |
| LOW | scripts/flipper/utils/openocd.py | 123 | except Exception as e: | CODE |
| LOW | scripts/fbt/version.py | 29 | except Exception as e: | CODE |
| MEDIUM | scripts/fbt/version.py | 12 | def get_fast_git_version_id(): | CODE |
| LOW | scripts/fbt/appmanifest.py | 226 | except Exception as e: | CODE |
| LOW⚡ | scripts/debug/FreeRTOS/FreeRTOSgdb/Task.py | 30 | except Exception as exc: | CODE |
| MEDIUM⚡ | scripts/debug/FreeRTOS/FreeRTOSgdb/Task.py | 31 | print("Error Initializing Task Inspector: %s" % str(exc)) | CODE |
| LOW⚡ | scripts/debug/FreeRTOS/FreeRTOSgdb/Task.py | 38 | except Exception as exc: | CODE |
| LOW | scripts/debug/FreeRTOS/FreeRTOSgdb/List.py | 33 | except Exception as exc: | CODE |
| MEDIUM | scripts/debug/FreeRTOS/FreeRTOSgdb/List.py | 26 | def Assign(self, listObj): | CODE |
| LOW | scripts/debug/FreeRTOS/FreeRTOSgdb/QueueTools.py | 103 | except Exception as exc: | CODE |
| LOW | scripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py | 102 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/testops.py | 133 | except: | CODE |
| HIGH | scripts/guruguru.py | 40 | except KeyboardInterrupt: | CODE |
| HIGH | scripts/fbt_tools/openocd.py | 41 | except KeyError: | CODE |
| HIGH | scripts/fbt_tools/fwbin.py | 70 | except KeyError: | CODE |
| HIGH | scripts/debug/FreeRTOS/FreeRTOSgdb/List.py | 33 | except Exception as exc: | CODE |
| HIGH | scripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py | 53 | except: | CODE |
| HIGH | scripts/debug/PyCortexMDebug/cmdebug/svd.py | 413 | except ValueError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/fastfap.py | 70 | CODE | |
| LOW | scripts/imglint.py | 57 | CODE | |
| LOW | scripts/runfap.py | 45 | CODE | |
| LOW | scripts/assets.py | 118 | CODE | |
| LOW | scripts/storage.py | 148 | CODE | |
| LOW | scripts/testops.py | 76 | CODE | |
| LOW | scripts/sconsdist.py | 159 | CODE | |
| LOW | scripts/wifi_board.py | 166 | CODE | |
| LOW | scripts/fwflash.py | 166 | CODE | |
| LOW | scripts/infrared.py | 20 | CODE | |
| LOW | scripts/lint.py | 51 | CODE | |
| LOW | scripts/lint.py | 68 | CODE | |
| LOW | scripts/fbt_tools/fbt_extapps.py | 441 | CODE | |
| LOW | scripts/fbt_tools/fbt_extapps.py | 142 | CODE | |
| LOW | scripts/fbt_tools/pvsstudio.py | 28 | CODE | |
| LOW | scripts/flipper/utils/templite.py | 93 | CODE | |
| LOW | scripts/ufbt/site_init.py | 8 | CODE | |
| LOW | scripts/fbt/appmanifest.py | 417 | CODE | |
| LOW | scripts/fbt/sdk/collector.py | 107 | CODE | |
| LOW | scripts/fbt/sdk/cache.py | 170 | CODE | |
| LOW | scripts/debug/FreeRTOS/FreeRTOSgdb/List.py | 45 | CODE | |
| LOW | scripts/debug/FreeRTOS/FreeRTOSgdb/HandleRegistry.py | 50 | CODE | |
| LOW | scripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py | 118 | CODE | |
| LOW | scripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py | 165 | CODE | |
| LOW | scripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py | 208 | CODE | |
| LOW | scripts/debug/PyCortexMDebug/cmdebug/svd.py | 151 | CODE | |
| LOW | scripts/debug/PyCortexMDebug/cmdebug/svd.py | 258 | CODE | |
| LOW | site_scons/site_init.py | 11 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/fastfap.py | 43 | def serialize_relsection_data(data: dict[UniqueRelData, list[int]]) -> bytes: | CODE |
| LOW | scripts/wifi_board.py | 159 | def find_wifi_board_bootloader_port(self): | CODE |
| LOW | scripts/wifi_board.py | 162 | def find_wifi_board_bootloader_port_damn_windows(self): | CODE |
| LOW | scripts/fwflash.py | 218 | def blackmagic_find_networked(serial: str): | CODE |
| LOW | scripts/lint.py | 118 | def _apply_file_naming_convention(self, sources: list, dry_run: bool = False): | CODE |
| LOW | scripts/fbt_tools/fbt_extapps.py | 218 | def _configure_deps_and_aliases(self, app_artifacts: FlipperExternalAppInfo): | CODE |
| LOW | scripts/fbt_tools/fbt_extapps.py | 338 | def _embed_app_metadata_emitter(target, source, env): | CODE |
| LOW | scripts/fbt_tools/fbt_extapps.py | 368 | def generate_embed_app_metadata_actions(source, target, env, for_signature): | CODE |
| LOW | scripts/fbt_tools/fbt_resources.py | 10 | def __generate_resources_dist_entries(env): | CODE |
| LOW | scripts/fbt_tools/compilation_db.py | 61 | def changed_since_last_build_node(child, target, prev_ni, node): | CODE |
| LOW | scripts/fbt_tools/compilation_db.py | 77 | def emit_compilation_db_entry(target, source, env): | CODE |
| LOW | scripts/fbt_tools/compilation_db.py | 115 | def compilation_db_entry_action(target, source, env, **kw): | CODE |
| LOW | scripts/fbt_tools/fbt_sdk.py | 46 | def _api_amalgam_gen_origin_header(target, source, env): | CODE |
| LOW | scripts/fbt_tools/fbt_sdk.py | 186 | def _deploy_sdk_header_tree_action(target, source, env): | CODE |
| LOW | scripts/fbt_tools/fbt_sdk.py | 191 | def _deploy_sdk_header_tree_emitter(target, source, env): | CODE |
| LOW | scripts/flipper/utils/stm32wb55.py | 240 | def option_bytes_id_to_address(self, id: int) -> int: | CODE |
| LOW | scripts/flipper/utils/stm32wb55.py | 256 | def flash_dump_status_register(self): | CODE |
| LOW | scripts/fbt/version.py | 7 | def get_git_commit_unix_timestamp(): | CODE |
| LOW | scripts/fbt/appmanifest.py | 326 | def _check_if_app_target_supported(self, app_name: str): | CODE |
| LOW | scripts/fbt/appmanifest.py | 374 | def get_incompatible_ext_apps(self): | CODE |
| LOW | scripts/fbt/sdk/collector.py | 82 | def process_source_file_for_sdk(self, file_path: str): | CODE |
| LOW | scripts/fbt/sdk/collector.py | 93 | def stringify_array_dimension(size_descr): | CODE |
| LOW | site_scons/fbt_extra/util.py | 12 | def should_gen_cdb_and_link_dir(env, requested_targets): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/wifi_board.py | 63 | # Check if channel found | COMMENT |
| LOW | scripts/flipper/utils/stm32wb55.py | 145 | # Check if flash is already unlocked | COMMENT |
| LOW | scripts/flipper/utils/stm32wb55.py | 156 | # Check if flash is unlocked | COMMENT |
| LOW | scripts/flipper/utils/stm32wb55.py | 165 | # Check if options is already unlocked | COMMENT |
| LOW | scripts/flipper/utils/stm32wb55.py | 176 | # Check if options is unlocked | COMMENT |
| LOW | scripts/flipper/utils/stm32wb55.py | 185 | # Check if options is already locked | COMMENT |
| LOW | scripts/flipper/utils/stm32wb55.py | 196 | # Check if options is locked | COMMENT |
| LOW | scripts/flipper/utils/stm32wb55.py | 205 | # Check if flash is already locked | COMMENT |
| LOW | scripts/flipper/utils/stm32wb55.py | 216 | # Check if flash is locked | COMMENT |
| LOW | scripts/flipper/utils/stm32wb55.py | 241 | # Check if this option byte (dword) is mapped to a register | COMMENT |
| LOW | scripts/flipper/utils/programmer_openocd.py | 186 | # Check if this option byte (dword) is mapped to a register | COMMENT |
| LOW | scripts/flipper/utils/programmer_openocd.py | 212 | # Open file, check that it aligned to 8 bytes | COMMENT |
| LOW | scripts/fbt/fapassets.py | 81 | # Write files count | COMMENT |
| LOW | scripts/fbt/fapassets.py | 102 | # Write files | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/debug/FreeRTOS/FreeRTOS.py | 6 | # This file contains some python code that utilizes the GDB API | COMMENT |
| MEDIUM | scripts/debug/FreeRTOS/FreeRTOSgdb/Task.py | 6 | # This file contains the implementation of a class to use for | COMMENT |
| MEDIUM | scripts/debug/FreeRTOS/FreeRTOSgdb/List.py | 6 | # This file contains the class for inspecting | COMMENT |
| MEDIUM | scripts/debug/FreeRTOS/FreeRTOSgdb/EventGroup.py | 6 | # This file contains the implementation of a Event Group Inspector | COMMENT |
| MEDIUM | scripts/debug/FreeRTOS/FreeRTOSgdb/Types.py | 6 | # This file contains the implementation of some | COMMENT |
| MEDIUM | scripts/debug/FreeRTOS/FreeRTOSgdb/QueueTools.py | 6 | # This file contains the implementation of a Queue Inspector | COMMENT |
| MEDIUM | scripts/debug/FreeRTOS/FreeRTOSgdb/GDBCommands.py | 6 | # This file contains the implementation of some custom | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 343 | # Note: For files without extension you can use no_extension as a placeholder. | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 980 | # If the value of the INPUT tag contains directories, you can use the | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 1072 | # If the value of the INPUT tag contains directories, you can use the | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 1095 | # If the value of the EXAMPLE_PATH tag contains directories, you can use the | COMMENT |
| LOW | applications/services/gui/view.h | 202 | * @warning Don't forget to commit model changes | COMMENT |
| LOW | lib/drivers/bq27220.h | 21 | * - Don't forget to reset chip before writing new config. | COMMENT |
| LOW | lib/mjs/mjs_gc.c | 316 | * If we ever bring it back, don't forget to mark it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/debug/PyCortexMDebug/PyCortexMDebug.py | 0 | this file is part of pycortexmdebug pycortexmdebug is free software: you can redistribute it and/or modify it under the | STRING |
| HIGH | scripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py | 0 | this file is part of pycortexmdebug pycortexmdebug is free software: you can redistribute it and/or modify it under the | STRING |
| HIGH | scripts/debug/PyCortexMDebug/cmdebug/svd.py | 0 | this file is part of pycortexmdebug pycortexmdebug is free software: you can redistribute it and/or modify it under the | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/update.py | 12 | CODE | |
| LOW | scripts/serial_cli_perf.py | 4 | CODE | |
| LOW | scripts/assets.py | 4 | CODE | |
| LOW | scripts/testops.py | 7 | CODE | |
| LOW | scripts/power.py | 6 | CODE | |
| LOW | scripts/infrared.py | 3 | CODE | |
| LOW | scripts/infrared.py | 6 | CODE | |
| LOW | scripts/debug/FreeRTOS/FreeRTOS.py | 22 | CODE | |
| LOW | scripts/debug/FreeRTOS/FreeRTOS.py | 24 | CODE | |
| LOW | scripts/debug/FreeRTOS/FreeRTOSgdb/HandleRegistry.py | 12 | CODE | |
| LOW | scripts/debug/FreeRTOS/FreeRTOSgdb/GDBCommands.py | 14 | CODE | |
| LOW | scripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py | 22 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lib/nfc/protocols/mf_classic/mf_classic_poller.c | 1187 | // Step 1: Perform full authentication once | COMMENT |
| LOW | lib/nfc/protocols/mf_classic/mf_classic_poller.c | 1242 | // Step 2: Perform nested authentication multiple times | COMMENT |
| LOW | lib/nfc/protocols/mf_classic/mf_classic_poller.c | 1411 | // Step 1: Perform full authentication once | COMMENT |
| LOW | lib/nfc/protocols/mf_classic/mf_classic_poller.c | 1427 | // Step 2: Perform nested authentication a variable number of times to get nt_enc at a different PRNG offset | COMMENT |
| LOW | lib/nfc/protocols/mf_classic/mf_classic_poller.c | 1644 | // Step 1: Perform full authentication once | COMMENT |
| LOW | lib/nfc/protocols/mf_classic/mf_classic_poller.c | 1661 | // Step 2: Collect nested nt and parity | COMMENT |
| LOW | lib/mjs/common/str_util.h | 151 | * The purpose of this function is to parse comma separated string without | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lib/nfc/protocols/mf_classic/mf_classic_poller.c | 1187 | // Step 1: Perform full authentication once | COMMENT |
| LOW | lib/nfc/protocols/mf_classic/mf_classic_poller.c | 1242 | // Step 2: Perform nested authentication multiple times | COMMENT |
| LOW | lib/nfc/protocols/mf_classic/mf_classic_poller.c | 1411 | // Step 1: Perform full authentication once | COMMENT |
| LOW | lib/nfc/protocols/mf_classic/mf_classic_poller.c | 1427 | // Step 2: Perform nested authentication a variable number of times to get nt_enc at a different PRNG offset | COMMENT |
| LOW | lib/nfc/protocols/mf_classic/mf_classic_poller.c | 1644 | // Step 1: Perform full authentication once | COMMENT |
| LOW | lib/nfc/protocols/mf_classic/mf_classic_poller.c | 1661 | // Step 2: Collect nested nt and parity | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 1352 | # it is more robust and this tag (HTML_STYLESHEET) will in the future become | COMMENT |
| MEDIUM | documentation/doxygen/Doxyfile.cfg | 1362 | # standard style sheet and is therefore more robust against future updates. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/flipper/utils/openocd.py | 144 | CODE | |
| LOW | scripts/flipper/utils/openocd.py | 169 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | applications/system/js_app/examples/apps/Scripts/gui.js | 59 | text: "This is a very long string that demonstrates the TextBox view. Use the D-Pad to scroll backwards and forw | CODE |
| LOW | applications/system/js_app/examples/apps/Scripts/gui.js | 59 | text: "This is a very long string that demonstrates the TextBox view. Use the D-Pad to scroll backwards and forw | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/debug/flipperapps.py | 243 | def set_debug_mode(self, mode: bool) -> None: | CODE |