Repository Analysis

armbian/build

The official build framework for the Armbian Linux distribution. This repository contains the complete toolchain and scripts required to compile custom OS images from source, including kernel configuration, U-Boot handling, and board-specific tweaks for various ARM and ARM64 single-board computers.

24.7 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of armbian/build, a Shell project with 5,306 GitHub stars. SynthScan v2.0 examined 53,721 lines of code across 478 source files, recording 672 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 24.7 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

24.7
Adjusted Score
24.7
Raw Score
100%
Time Factor
2026-07-14
Last Push
5.3K
Stars
Shell
Language
53.7K
Lines of Code
478
Files
672
Pattern Hits
2026-07-14
Scan Date
0.01
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 6MEDIUM 294LOW 372

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 672 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Self-Referential Comments211 hits · 634 pts
SeverityFileLineSnippetContext
MEDIUMcompile.sh7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMtools/repository/repo.sh705 # Create a temp config pointing to the main DB (not isolated)COMMENT
MEDIUMtools/repository/repo.sh1330 # Create the isolated directory if it doesn't existCOMMENT
MEDIUMconfig/sources/mainline-kernel.conf.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUM…sources/vendors/mekotronics/mekotronics-rk3588.conf.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUM…sources/vendors/mekotronics/mekotronics-rk3588.conf.sh6# This file is SOURCED by the Mekotronics board files, and thus has the same restrictions as board files.COMMENT
MEDIUM…ources/vendors/mekotronics/mekotronics-rk3588.hooks.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/lvm.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/lvm.sh53 # Create the PV VG and VOLCOMMENT
MEDIUMextensions/jethub-burn.sh5# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/uwe5622-allwinner.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/uboot-binman-fix-pkg-resources.sh7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMextensions/allwinner-kernel-bump.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/image-output-oowow.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/syterkit-allwinner.sh3# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/mtkflash.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/rkdevflash.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/xorg-lima-serverflags.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/image-output-vhd-azure.sh3# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/gen-sample-extension-docs.sh101# This file is auto-generated from and by the build system itself.COMMENT
MEDIUMextensions/nicod-armbian-gaming.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/u-boot-menu.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/uboot-makefile-fix-itb-deps.sh7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMextensions/grub-with-dtb.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/uefi-edk2-rk3588.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/bluetooth-hciattach.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUM…s/initramfs-usb-gadget-ums/initramfs-usb-gadget-ums.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUM…itramfs-usb-gadget-ums/init-premount/usb-gadget-ums.sh5# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMextensions/cloud-init/cloud-init.sh4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUM…ages/bsp/usb-gadget-network/setup-usbgadget-network.sh30 # Create an usb gadet configurationCOMMENT
MEDIUM…s/bsp/common/usr/lib/armbian/armbian-led-state-save.sh5# This file is licensed under the terms of the GNU General PublicCOMMENT
MEDIUM…sp/common/usr/lib/armbian/armbian-led-state-restore.sh5# This file is licensed under the terms of the GNU General PublicCOMMENT
MEDIUM…mmon/etc/profile.d/armbian-check-first-login-reboot.sh5# This file is licensed under the terms of the GNU General PublicCOMMENT
MEDIUM…/bsp/common/etc/profile.d/armbian-check-first-login.sh5# This file is licensed under the terms of the GNU General PublicCOMMENT
MEDIUMpackages/bsp/common/etc/profile.d/armbian-ssh-title.sh5# This file is licensed under the terms of the GNU General PublicCOMMENT
MEDIUM…/etc/profile.d/armbian-activate-profile-sync-daemon.sh5# This file is licensed under the terms of the GNU General PublicCOMMENT
MEDIUMlib/library-functions.sh2# This file is/was autogenerated by lib/tools/gen-library.sh; don't modify manuallyCOMMENT
MEDIUMlib/library-functions.sh1134# This file is/was autogenerated by lib/tools/gen-library.sh; don't modify manuallyCOMMENT
MEDIUMlib/single.sh7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMlib/tools/autopatch-devicetree-makefile.py4# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMlib/tools/shellcheck.sh7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMlib/tools/aggregation.py7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMlib/tools/git-to-patches.py7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMlib/tools/shellfmt.sh7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMlib/tools/call-stack-analyze.py7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMlib/tools/patching.py7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMlib/tools/gen-library.sh7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMlib/tools/gen-library.sh24 # This file is/was autogenerated by ${0}; don't modify manuallyCOMMENT
MEDIUMlib/tools/gen-library.sh50 # This file is/was autogenerated by ${0}; don't modify manuallyCOMMENT
MEDIUMlib/tools/index-opensearch.py7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMlib/tools/index-opensearch.py32# Create the OpenSearch client.COMMENT
MEDIUMlib/tools/index-opensearch.py35# Create an index with non-default settings.COMMENT
MEDIUMlib/tools/oras.sh7# This file is a part of the Armbian Build FrameworkCOMMENT
MEDIUMlib/tools/info/userspace-inventory.py6# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMlib/tools/info/inventory-boards-csv.py6# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMlib/tools/info/repo-reprepro.py6# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMlib/tools/info/output-gha-matrix.py6# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMlib/tools/info/download-debs.py5# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMlib/tools/info/artifact-reducer.py6# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
MEDIUMlib/tools/info/output-gha-workflow.py6# This file is a part of the Armbian Build Framework https://github.com/armbian/build/COMMENT
151 more matches not shown…
Decorative Section Separators72 hits · 221 pts
SeverityFileLineSnippetContext
MEDIUMaction.yml260 # ── Configuration ────────────────────────────────────────────────────COMMENT
MEDIUMaction.yml316 # ── Loaders ──────────────────────────────────────────────────────────COMMENT
MEDIUMaction.yml362 # ── Filename parser ──────────────────────────────────────────────────COMMENT
MEDIUMaction.yml398 # ── URL composition ──────────────────────────────────────────────────COMMENT
MEDIUMaction.yml434 # ── Walk image dir, build manifest ───────────────────────────────────COMMENT
MEDIUMaction.yml503 # ── Main ─────────────────────────────────────────────────────────────COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini36# ---------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini39# ---------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini42# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini45# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini48# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini51# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini54# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini57# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini60# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini63# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini66# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini69# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini72# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini75# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini78# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini81# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini84# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini87# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini90# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini93# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini96# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini99# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini102# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini105# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini108# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini111# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini114# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini117# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini120# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini123# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini126# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini129# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini132# -----------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini138# ------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini145# ------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini158#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini162#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini171#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini174#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini178#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini187#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini190#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini194#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini200#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini203#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini207#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini214#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini219#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini223#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini229#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini232#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini236#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini242#------------------------------------------------------------------------------COMMENT
MEDIUMconfig/bootscripts/boot-odroid-xu4.ini245#------------------------------------------------------------------------------COMMENT
12 more matches not shown…
Over-Commented Block222 hits · 201 pts
SeverityFileLineSnippetContext
LOWcompile.sh1#!/usr/bin/env bashCOMMENT
LOWtools/repository/repo.sh561 fiCOMMENT
LOWtools/repository/repo.sh1021COMMENT
LOWtools/repository/cleanup-debs.sh1#!/usr/bin/env bashCOMMENT
LOWtools/repository/cleanup-debs.sh21# Usage:COMMENT
LOWconfig/bootenv/onecloud.txt1# console:COMMENT
LOWconfig/bootscripts/boot-odroid-xu4.ini41# setenv videoconfig "video=HDMI-A-1:1280x800@60"COMMENT
LOWconfig/bootscripts/boot-odroid-xu4.ini61# 1920x1080 50hz (1080P) without monitor data using generic information (1080p 50hz-noedid)COMMENT
LOWconfig/bootscripts/boot-odroid-xu4.ini81# -----------------------------------------------COMMENT
LOWconfig/bootscripts/boot-odroid-xu4.ini101# setenv videoconfig "video=HDMI-A-1:1280x720@60"COMMENT
LOWconfig/bootscripts/boot-odroid-xu4.ini121# 800x480 without monitor data using generic information (ODROID 7")COMMENT
LOWconfig/bootscripts/boot-odroid-xu4.ini141# - DVI Mode (disables sound over HDMI as per DVI compat)COMMENT
LOWconfig/bootscripts/boot-odroid-xu4.ini161#COMMENT
LOWconfig/bootscripts/boot-odroid-xu4.ini181# not.COMMENT
LOWconfig/bootscripts/boot-odroid-xu4.ini201setenv hdmi_tx_amp_lvl "31"COMMENT
LOWconfig/bootscripts/boot-odroid-xu4.ini221# TMDS data pre-emphasis level control.COMMENT
LOWconfig/bootscripts/boot-odroid-xu4.ini241# Hardkernel default hdmi_clk_amp_lvl = 31 (1410 mVdiff)COMMENT
LOWconfig/bootscripts/boot-odroid-n2.ini21setenv display_autodetect "true"COMMENT
LOWconfig/bootscripts/boot-odroid-n2.ini41# "2160p25hz" | 3840x2160 Progressive 25HzCOMMENT
LOWconfig/bootscripts/boot-odroid-n2.ini81 setenv max_freq_a53 "1908"COMMENT
LOWconfig/bootscripts/boot-odroid-c2.ini1ODROIDC2-UBOOT-CONFIGCOMMENT
LOWconfig/bootscripts/boot-odroid-c2.ini21setenv display_autodetect "true"COMMENT
LOWconfig/bootscripts/boot-odroid-c2.ini41setenv m "1080p60hz" # Progressive 60HzCOMMENT
LOWconfig/bootscripts/boot-odroid-c2.ini61# setenv m "800x600p60hz"COMMENT
LOWconfig/bootscripts/boot-odroid-c2.ini81# HDMI BPP ModeCOMMENT
LOWconfig/bootscripts/boot-odroid-c2.ini101COMMENT
LOWconfig/bootscripts/boot-odroid-c2.ini121# MicroSD Card Detection enable/disableCOMMENT
LOWconfig/bootscripts/boot-odroid-c2.ini141# setenv maxcpus "3"COMMENT
LOWextensions/lvm.sh1#COMMENT
LOWextensions/r8125-dkms.sh1# SPDX-License-Identifier: GPL-2.0COMMENT
LOWextensions/wayland-sessions-mask.sh1#!/usr/bin/env bashCOMMENT
LOWextensions/arm64-compat-vdso.sh1# Enable 32-bit compat vDSO for arm64 kernels with GCC or clang.COMMENT
LOWextensions/gateway-dk-ask.sh1#!/usr/bin/env bashCOMMENT
LOWextensions/uboot-binman-fix-pkg-resources.sh1#!/usr/bin/env bashCOMMENT
LOWextensions/mtkflash.sh1#COMMENT
LOWextensions/rkdevflash.sh1#COMMENT
LOWextensions/grub.sh261 if [[ "${SERIALCON}" != "tty1" && "${SERIALCON}" != "tty0" ]]; thenCOMMENT
LOWextensions/uboot-makefile-fix-itb-deps.sh1#!/usr/bin/env bashCOMMENT
LOWextensions/uboot-makefile-fix-itb-deps.sh21# - Radxa fork (next-dev-v2024.10): single-line ruleCOMMENT
LOWextensions/kernel-rust.sh1# Enable Rust support for Linux kernel compilation.COMMENT
LOWextensions/kernel-rust.sh21#COMMENT
LOWextensions/odin2-preset-firstrun.sh1function post_family_tweaks__preset_configs() {COMMENT
LOWextensions/grub-with-dtb.sh1#COMMENT
LOW…/config-nm/netplan/00-default-use-network-manager.yaml1# Added by ArmbianCOMMENT
LOWextensions/ccache-remote/ccache-remote.sh1# Extension: ccache-remoteCOMMENT
LOWextensions/ccache-remote/ccache-remote.sh21# ./compile.sh ENABLE_EXTENSIONS=ccache-remote CCACHE_REMOTE_DOMAIN="example.com" BOARD=...COMMENT
LOWextensions/ccache-remote/ccache-remote.sh41# CCACHE_SLOPPINESS - comma-separated list of sloppiness optionsCOMMENT
LOWextensions/ccache-remote/ccache-remote.sh61# 2. DNS-SD browse for _ccache._tcp on local network (avahi-browse)COMMENT
LOWextensions/ccache-remote/ccache-remote.sh81# # or for redis with auth:COMMENT
LOWextensions/ccache-remote/ccache-remote.sh201 # percent-encoding marker `%` would break URL parsing. TheCOMMENT
LOWextensions/cloud-init/cloud-init.sh1#COMMENT
LOWpatch/u-boot/v2026.04/board_helios64/board/helios64.c1// SPDX-License-Identifier: GPL-2.0+COMMENT
LOWpatch/u-boot/v2026.04/board_helios64/board/helios64.c21#include <asm/arch-rockchip/clock.h>COMMENT
LOWpatch/u-boot/v2026.04/board_helios64/board/sys_otp.c1#include <linux/types.h>COMMENT
LOWpatch/u-boot/v2024.10/0000.patching_config.yaml1config: # This is file 'patch/u-boot/v2024.10/0000.patching_config.yaml'COMMENT
LOWpatch/u-boot/v2026.01/board_helios64/board/helios64.c1// SPDX-License-Identifier: GPL-2.0+COMMENT
LOWpatch/u-boot/v2026.01/board_helios64/board/helios64.c21#include <asm/arch-rockchip/clock.h>COMMENT
LOWpatch/u-boot/v2026.01/board_helios64/board/sys_otp.c1#include <linux/types.h>COMMENT
LOW…kernel/archive/spacemit-6.18/0000.patching_config.yaml1config: # This is file 'patch/kernel/spacemit-legacy-6.1/0000.patching_config.yaml'COMMENT
LOW…kernel/archive/spacemit-6.18/0000.patching_config.yaml21 - { github: none, name: none, email: none, armbian-forum: none }COMMENT
162 more matches not shown…
Redundant / Tautological Comments56 hits · 85 pts
SeverityFileLineSnippetContext
LOWtools/repository/repo.sh108 # Check if there's an isolated database for this releaseCOMMENT
LOWtools/repository/repo.sh154 # Check if any .deb files exist in the directoryCOMMENT
LOWtools/repository/repo.sh276 # Check if snapshot is publishedCOMMENT
LOWtools/repository/repo.sh336 # Check if we have any packages to publishCOMMENT
LOWtools/repository/repo.sh344 # Check if this release was previously published for loggingCOMMENT
LOWtools/repository/repo.sh710 # Check if common snapshot exists in main DBCOMMENT
LOWtools/repository/repo.sh781 # Check if utils repo exists in isolated DBCOMMENT
LOWtools/repository/repo.sh817 # Check if this package is in the utils repo (isolated)COMMENT
LOWtools/repository/repo.sh820 # Check if package already exists in main DB repo to avoid conflictsCOMMENT
LOWtools/repository/repo.sh863 # Check if this package is in the desktop repo (isolated)COMMENT
LOWtools/repository/repo.sh866 # Check if package already exists in main DB repo to avoid conflictsCOMMENT
LOWtools/repository/repo.sh925 # Check if utils repo has packagesCOMMENT
LOWtools/repository/repo.sh945 # Check if desktop repo has packagesCOMMENT
LOWtools/repository/extract-repo.sh147 # Check if output is non-empty before feeding to mapfileCOMMENT
LOWtools/repository/extract-repo.sh274 # Check if file already exists and is identicalCOMMENT
LOWextensions/armbian-live-patch.sh74 # Check if installed key is oursCOMMENT
LOWextensions/armbian-live-patch.sh81 # Check if file is signed with Armbian keyCOMMENT
LOWextensions/preset-firstrun.sh3 # Set PRESET_NET_CHANGE_DEFAULTS to 1 to apply any network related settings belowCOMMENT
LOWextensions/odin2-preset-firstrun.sh3 # Set PRESET_NET_CHANGE_DEFAULTS to 1 to apply any network related settings belowCOMMENT
LOWextensions/ccache-remote/ccache-remote.sh78# Set CCACHE_REMOTE_DOMAIN to your domain, then create DNS records:COMMENT
LOWpackages/bsp/easepi/bt-hciattach.sh18# Check if already initialized by serdevCOMMENT
LOW…ages/bsp/usb-gadget-network/setup-usbgadget-network.sh63 # Check if there's an USB Device ControllerCOMMENT
LOWpackages/bsp/ayn-thor/LinuxLoader.cfg49# Set this to *true* if you are trying to boot a mainline kernel.COMMENT
LOWpackages/bsp/ayn-odin2/LinuxLoader.cfg49# Set this to *true* if you are trying to boot a mainline kernel.COMMENT
LOW…sp/common/usr/lib/armbian/armbian-led-state-restore.sh61 # Set it to default-on, then will be reset immediately to none to turn it offCOMMENT
LOWpackages/bsp/ayn-odin2portal/LinuxLoader.cfg49# Set this to *true* if you are trying to boot a mainline kernel.COMMENT
LOWpackages/bsp/ayn-odin2mini/LinuxLoader.cfg49# Set this to *true* if you are trying to boot a mainline kernel.COMMENT
LOWlib/tools/common/patching_utils.py448 # Check if the rejects exists:COMMENT
LOWlib/tools/common/patching_utils.py478 # Check if the exit code is not zero and bombCOMMENT
LOWlib/tools/common/patching_utils.py497 # Check if deleted, don't complain if so.COMMENT
LOWlib/tools/common/patching_utils.py837 # Check if the exit code is not zero and bombCOMMENT
LOWlib/tools/common/patching_utils.py867 content = f.read() # Read the file as bytesCODE
LOWlib/tools/common/patching_utils.py878 return f.read() # Read the file as bytesCODE
LOWlib/functions/configuration/main-config.sh166 # Check if the filesystem type is supported by the build host.COMMENT
LOWlib/functions/configuration/main-config.sh624 # Check if the filesystem is listed in /proc/filesystemsCOMMENT
LOWlib/functions/configuration/main-config.sh653 # Check if required configurations are setCOMMENT
LOWlib/functions/rootfs/qemu-static.sh141 # Check if binfmt_misc is loaded; if not, try to load it, but don't fail: it might be built in.COMMENT
LOWlib/functions/host/tmpfs-utils.sh95 # Check if the tmpfs is still mounted after all that trying, log error, show debug, and give up with errorCOMMENT
LOWlib/functions/host/docker.sh422 # Check if the base image is up to date.COMMENT
LOWlib/functions/host/docker.sh966 # Check if we need to updateCOMMENT
LOWlib/functions/host/docker.sh1014# Check if auto-pull cronjob is installed, and install if not or outdatedCOMMENT
LOWlib/functions/general/shellcheck.sh111 # Check if we have a cached version in a Docker image, and copy it over before possibly updating it.COMMENT
LOWlib/functions/general/extensions.sh529 # Check if "${newly_defined_function}" is already defined in the extension_function_info array, if not, add itCOMMENT
LOWlib/functions/general/bat-cat.sh66 # Check if we have a cached version in a Docker image, and copy it over before possibly updating it.COMMENT
LOWlib/functions/general/oci-oras.sh71 # Check if we have a cached version in a Docker image, and copy it over before possibly updating it.COMMENT
LOWlib/functions/cli/cli-docker.sh106 # Set globals to avoid:COMMENT
LOWlib/functions/image/partitioning.sh108 # Check if we need UEFI partitionCOMMENT
LOWlib/functions/image/partitioning.sh110 # Check if we need BIOS partitionCOMMENT
LOWlib/functions/image/partitioning.sh114 # Check if we need boot partitionCOMMENT
LOWlib/functions/image/partitioning.sh123 # Check if we need root partitionCOMMENT
LOWlib/functions/compilation/distcc.sh26 # Check if host_port is not empty, otherwise continue.COMMENT
LOWlib/functions/compilation/distcc.sh31 # Check if $cores is bigger than zero (0), otherwise continue.COMMENT
LOWlib/functions/logging/trap-logging.sh56 # Check if we have `zstdmt` at this stage; if not, use standard gzipCOMMENT
LOWlib/functions/logging/trap-logging.sh87 # Check if fd 13 is still open; close it and wait for tee to die. This is done again in discard_logs_tmp_dir()COMMENT
LOWlib/functions/logging/export-logs.sh187 # Check if the result_from_paste_server begin with https:// and the paste_server; if yes, it's a success, break the COMMENT
LOWlib/functions/logging/logging.sh201 # Check if fd 13 is still open; close it and wait for tee to die.COMMENT
AI Slop Vocabulary24 hits · 48 pts
SeverityFileLineSnippetContext
MEDIUMextensions/lvm.sh73 # (findmnt is a single util-linux call, robust to spaces and to multipleCOMMENT
MEDIUMextensions/uboot-makefile-fix-itb-deps.sh44 # Use Python for robust multi-line matching.COMMENT
MEDIUMlib/library-functions.sh459### lib/functions/compilation/patch/drivers-harness.shCOMMENT
MEDIUMlib/library-functions.sh460# shellcheck source=lib/functions/compilation/patch/drivers-harness.shCOMMENT
LOWlib/tools/patching.py188# If not, just use the whole file as a single patch.COMMENT
LOWlib/tools/info/mapper-oci-uptodate.py56 # we're not really checking, so just return a positive hitCOMMENT
LOWlib/tools/common/dt_makefile_patcher.py90 # much simpler. just add individual -y lines for each dt file to add directly to the end of the Makefile and hope for COMMENT
LOWlib/tools/common/dt_makefile_patcher.py147 # For incremental, we'll just use the parsed-from-Makefile list of .dts files...COMMENT
LOWlib/tools/common/patching_utils.py486 # if the patch failed to parse, this will be an empty list, so we'll just add all changes.COMMENT
LOWlib/tools/common/patching_utils.py665 # if no files were touched, just return an ?COMMENT
LOWlib/functions/artifacts/artifacts-obtain.sh159 # just use the single deb rel pathCOMMENT
MEDIUMlib/functions/artifacts/artifact-kernel.sh38 # - Get the drivers patch hash (given LINUXFAMILY and the vX.Z.Y version) - the harness can do this by hashing patches COMMENT
LOWlib/functions/rootfs/distro-specific.sh177 declare basedir="${3}" # @TODO: rpardini: this is SDCARD in all practical senses. Why not just use SDCARD?CODE
LOWlib/functions/host/host-utils.sh363 # if not on Linux, just return; "ps" shenanigans we use are not supportedCOMMENT
LOWlib/functions/general/extensions.sh153 # Extensions has its own work/tmp directory, defined by do_main_configuration, with build UUID. We just create it here,COMMENT
LOWlib/functions/general/countdown.sh50 # If not interactive, just return 0.COMMENT
LOWlib/functions/general/git.sh180 # when we work offline we simply return the sources to their original stateCOMMENT
LOWlib/functions/compilation/kernel-debs.sh410 # Lets check and warn if it isn't. If warns don't popup over time we remove and just use ARCHITECTURE later.COMMENT
MEDIUMlib/functions/compilation/uboot.sh575 [[ -n $atftempdir ]] && rm -rf "${atftempdir:?}" # @TODO: intricate cleanup; u-boot's pkg uses ATF's tempdir...CODE
MEDIUMlib/functions/compilation/armbian-kernel.sh17# To facilitate this, use the arrays opts_n/opts_y/opts_m and/or the opts_val dictionary.COMMENT
MEDIUMlib/functions/compilation/armbian-kernel.sh195# Enables comprehensive IPTABLES/NFTABLES support for advanced networking and firewall configurations.COMMENT
MEDIUMlib/functions/compilation/armbian-kernel.sh465# Enables Docker support by configuring a comprehensive set of kernel options required for Docker functionality.COMMENT
LOWlib/functions/compilation/distcc.sh56 # If not using distcc, just add "$CTHREADS" to the DISTCC_MAKE_J_PARALLEL array.COMMENT
LOWlib/functions/logging/traps.sh108 return 0 # No handlers set, just return.CODE
Hyper-Verbose Identifiers41 hits · 44 pts
SeverityFileLineSnippetContext
LOWtools/validate-board-config.py96def collect_inherited_assignments(path: Path, _visited: set[Path] | None = None) -> dict[str, str]:CODE
LOWlib/tools/git-to-patches.py73 def remove_tags_from_description(self, desc: str) -> (str, dict[str, str]):CODE
LOWlib/tools/info/output-gha-matrix.py24def resolve_gha_runner_tags_via_pipeline_gha_config(input: dict, artifact_name: str, artifact_arch: str):CODE
LOWlib/tools/info/output-gha-matrix.py106def generate_matrix_artifacts(info):CODE
LOWlib/tools/info/mapper-oci-uptodate.py51def check_oci_up_to_date_cache(oci_target: str, really_check: bool = False):CODE
LOWlib/tools/common/aggregation_utils.py28def calculate_potential_paths(root_dirs, relative_dirs, sub_dirs, artifact_file, initial_paths=None):CODE
LOWlib/tools/common/aggregation_utils.py43def process_common_path_for_potentials(potential_paths):CODE
LOWlib/tools/common/aggregation_utils.py50def get_all_potential_paths_packages():CODE
LOWlib/tools/common/aggregation_utils.py55def aggregate_packages_from_potential(potential_paths):CODE
LOWlib/tools/common/aggregation_utils.py85def aggregate_simple_contents_potential(potential_paths):CODE
LOWlib/tools/common/aggregation_utils.py135def remove_common_path_from_refs(merged):CODE
LOWlib/tools/common/aggregation_utils.py205def aggregate_all_debootstrap(artifact, aggregation_function=aggregate_packages_from_potential):CODE
LOWlib/tools/common/aggregation_utils.py222def join_refs_for_bash_single_string(refs):CODE
LOWlib/tools/common/aggregation_utils.py237def join_refs_for_markdown_single_string(refs):CODE
LOWlib/tools/common/aggregation_utils.py257def prepare_bash_output_array_for_list(CODE
LOWlib/tools/common/aggregation_utils.py302def prepare_bash_output_single_string(output_array_name, merged_list):CODE
LOWlib/tools/common/aggregation_utils.py321def encode_source_base_path_extra(contents_dict):CODE
LOWlib/tools/common/md_asset_log.py68def get_gh_pages_workflow_script():CODE
LOWlib/tools/common/armbian_utils.py70def show_incoming_environment():CODE
LOWlib/tools/common/armbian_utils.py125def armbian_parse_board_file_for_static_info(board_file, board_id, core_or_userpatched):CODE
LOWlib/tools/common/armbian_utils.py188def armbian_get_all_boards_list(boards_path):CODE
LOWlib/tools/common/armbian_utils.py253def read_one_distro_config_file(filename):CODE
LOWlib/tools/common/armbian_utils.py260def split_commas_and_clean_into_list(string):CODE
LOWlib/tools/common/armbian_utils.py269def get_desktop_inventory_for_distro(distro, armbian_paths):CODE
LOWlib/tools/common/armbian_utils.py330def armbian_get_all_userspace_inventory():CODE
LOWlib/tools/common/armbian_utils.py364def armbian_get_arch_for_family(family_name, armbian_src_path):CODE
LOWlib/tools/common/armbian_utils.py396def armbian_get_all_boards_inventory():CODE
LOWlib/tools/common/armbian_utils.py458def armbian_run_command_and_parse_json_from_stdout(exec_cmd: list[str], params: dict):CODE
LOWlib/tools/common/armbian_utils.py509def parse_log_lines_from_stderr(lines_stderr: str):CODE
LOWlib/tools/common/armbian_utils.py536def gather_json_output_from_armbian(command: str, targets: list[dict]):CODE
LOWlib/tools/common/dt_makefile_patcher.py307def auto_patch_all_dt_makefiles(autopatcher_params: AutoPatcherParams) -> list[AutomaticPatchDescription]:CODE
LOWlib/tools/common/gha.py105 def add_job_output_from_input(self, name: str, input: WorkflowJobInput) -> WorkflowJobOutput:CODE
LOWlib/tools/common/gha.py111 def add_job_input_from_needed_job_output(self, job_output: WorkflowJobOutput) -> WorkflowJobInput:CODE
LOWlib/tools/common/bash_declare_parser.py65 def armbian_value_parse_double_quoted(self, value: str):CODE
LOWlib/tools/common/bash_declare_parser.py72 def armbian_value_parse_single_quoted(self, value: str):CODE
LOWlib/tools/common/patching_utils.py240 def split_description_and_patch(full_message_text: str) -> tuple["str | None", str]:CODE
LOWlib/tools/common/patching_utils.py270def shorten_patched_file_name_for_stats(path):CODE
LOWlib/tools/common/patching_utils.py274def parse_patch_stdout_for_files(stdout_output: str):CODE
LOWlib/tools/common/patching_utils.py564 def commit_changes_to_git_grouped(self, all_files_to_add: list[str], repo: git.Repo):CODE
LOWlib/tools/common/patching_utils.py741 def apply_patch_date_to_files(self, working_dir, options):CODE
LOWlib/tools/common/patching_utils.py795def prepare_clean_git_tree_for_patching(repo: git.Repo, revision_sha: str, branch_name: str):CODE
Cross-Language Confusion5 hits · 32 pts
SeverityFileLineSnippetContext
HIGHlib/tools/info/repo-reprepro.py97 'reprepro -b "${REPO_LOCATION}" --delete clearvanished || echo "clearvanished failed"',CODE
HIGHlib/tools/info/repo-reprepro.py100 'reprepro -b "${REPO_LOCATION}" check || echo "initial check failed"'CODE
HIGHlib/tools/common/md_asset_log.py85 BRANCH_NAME: ${{ github.head_ref || github.ref_name }}CODE
HIGHlib/tools/common/md_asset_log.py95 - name: Run grip to gen ${{ github.head_ref || github.ref_name }}CODE
HIGHlib/tools/common/md_asset_log.py97 BRANCH_NAME: ${{ github.head_ref || github.ref_name }}CODE
Excessive Try-Catch Wrapping10 hits · 12 pts
SeverityFileLineSnippetContext
LOWaction.yml326 except Exception as e:CODE
LOWaction.yml344 except Exception as e:CODE
MEDIUMlib/tools/call-stack-analyze.py89 eprint("Error: line_parts length is not 4")CODE
MEDIUMlib/tools/call-stack-analyze.py177 eprint("Error: function not found in function_to_file: " + func)CODE
LOWlib/tools/patching.py198 except Exception as e:CODE
LOWlib/tools/patching.py218 except Exception as invalid_exception:CODE
LOWlib/tools/patching.py317 except Exception as e:CODE
LOWlib/tools/cli-oci-up2date.py33except Exception as e:CODE
LOWlib/tools/info/mapper-oci-uptodate.py108 except Exception as e:CODE
LOWlib/tools/common/patching_utils.py355 except Exception as e:CODE
Deep Nesting9 hits · 9 pts
SeverityFileLineSnippetContext
LOWpackages/bsp/clockworkpi-a06/temp_fan_daemon_a06.py43CODE
LOWpackages/bsp/clockworkpi-a06/temp_fan_daemon_a06.py91CODE
LOWpackages/bsp/clockworkpi-a06/temp_fan_daemon_a06.py107CODE
LOWlib/tools/info/targets-compositor.py70CODE
LOWlib/tools/info/mapper-oci-uptodate.py51CODE
LOWlib/tools/common/aggregation_utils.py55CODE
LOWlib/tools/common/armbian_utils.py396CODE
LOWlib/tools/common/armbian_utils.py536CODE
LOWlib/tools/common/dt_makefile_patcher.py217CODE
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHlib/tools/aggregation.py12# I wrote "prompt" comments and the whole thing was generated by Copilot.COMMENT
Slop Phrases6 hits · 8 pts
SeverityFileLineSnippetContext
LOWlib/functions/rootfs/distro-agnostic.sh596 return 0 # make sure to exit with successCODE
LOWlib/functions/general/chroot-helpers.sh61 target="$(realpath "$1")/" # normalize, make sure to have slash as last elementCODE
LOWlib/functions/main/rootfs-image.sh112 # Run the cleanup handler. @TODO: this already does the above, so can be simpler. @TODO: don't forget to split MOUNT/SDCOMMENT
LOWlib/functions/main/rootfs-image.sh112 # Run the cleanup handler. @TODO: this already does the above, so can be simpler. @TODO: don't forget to split MOUNT/SDCOMMENT
LOWlib/functions/logging/capture.sh11 # make sure to local with a value, otherwise they will appear in the list...COMMENT
LOWlib/functions/logging/display-alert.sh233 return 0 # make sure to exit with success, alwaysCODE
Verbosity Indicators3 hits · 7 pts
SeverityFileLineSnippetContext
LOWtools/repository/repo.sh1228 # Step 1: Build common (main) component onceCOMMENT
LOWtools/repository/repo.sh1231 # Step 2: Workers build release-specific components in parallel (isolated DBs)COMMENT
LOWtools/repository/repo.sh1237 # Step 3: Final merge to combine common component with release-specific componentsCOMMENT
Structural Annotation Overuse3 hits · 7 pts
SeverityFileLineSnippetContext
LOWtools/repository/repo.sh1228 # Step 1: Build common (main) component onceCOMMENT
LOWtools/repository/repo.sh1231 # Step 2: Workers build release-specific components in parallel (isolated DBs)COMMENT
LOWtools/repository/repo.sh1237 # Step 3: Final merge to combine common component with release-specific componentsCOMMENT
Example Usage Blocks4 hits · 6 pts
SeverityFileLineSnippetContext
LOWtools/repository/cleanup-debs.sh21# Usage:COMMENT
LOWextensions/ccache-remote/ccache-remote.sh10# Usage:COMMENT
LOWpackages/bsp/easepi/ir.sh5# Usage:COMMENT
LOWlib/functions/host/mktemp-utils.sh12# Usage:COMMENT
AI Structural Patterns3 hits · 3 pts
SeverityFileLineSnippetContext
LOWlib/tools/common/bash_declare_parser.py70CODE
LOWlib/tools/common/bash_declare_parser.py77CODE
LOWlib/tools/common/bash_declare_parser.py88CODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtools/validate-board-config.py30CODE
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWlib/functions/configuration/main-config.sh58 [[ -z $MAINTAINER ]] && MAINTAINER="John Doe" # deb signatureCODE