A tool designed to simplify the creation of OpenCore EFI
This report summarizes scanner evidence for lzhoang2801/OpCore-Simplify, a Python project with 7,532 GitHub stars. SynthScan examined 15,250 lines of code across 28 source files, recording 155 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 13.8 (Moderate 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.
Can maintainers explain intent, assumptions, and trade-offs? 109 finding(s).
Are imports declared and package/API names verified? 3 finding(s).
Are wrappers, guards, and repeated structures necessary? 73 finding(s).
Which changes need focused human review? 155 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 155 distinct pattern matches across 10 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 |
|---|---|---|---|---|
| HIGH | Scripts/dsdt.py | 55 | except: | CODE |
| HIGH | Scripts/dsdt.py | 70 | except: pass | CODE |
| HIGH | Scripts/run.py | 20 | except ValueError: | CODE |
| HIGH | Scripts/run.py | 50 | except Empty: pass | CODE |
| HIGH | Scripts/run.py | 56 | except Empty: pass | CODE |
| HIGH | Scripts/config_prodigy.py | 245 | except: | CODE |
| HIGH | Scripts/acpi_guru.py | 2921 | except ValueError as e: | CODE |
| HIGH | Scripts/acpi_guru.py | 2943 | except (ValueError, IndexError) as e: | CODE |
| HIGH | Scripts/acpi_guru.py | 379 | except: pass | CODE |
| HIGH | Scripts/acpi_guru.py | 476 | except: | CODE |
| HIGH | Scripts/acpi_guru.py | 768 | except: pass | CODE |
| HIGH | Scripts/acpi_guru.py | 613 | except: pass | CODE |
| HIGH | Scripts/utils.py | 28 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | updater.py | 73 | CODE | |
| LOW | updater.py | 133 | CODE | |
| LOW | OpCore-Simplify.py | 36 | CODE | |
| LOW | OpCore-Simplify.py | 134 | CODE | |
| LOW | OpCore-Simplify.py | 199 | CODE | |
| LOW | OpCore-Simplify.py | 363 | CODE | |
| LOW | Scripts/dsdt.py | 78 | CODE | |
| LOW | Scripts/dsdt.py | 272 | CODE | |
| LOW | Scripts/dsdt.py | 335 | CODE | |
| LOW | Scripts/dsdt.py | 547 | CODE | |
| LOW | Scripts/dsdt.py | 658 | CODE | |
| LOW | Scripts/report_validator.py | 242 | CODE | |
| LOW | Scripts/run.py | 99 | CODE | |
| LOW | Scripts/config_prodigy.py | 69 | CODE | |
| LOW | Scripts/config_prodigy.py | 240 | CODE | |
| LOW | Scripts/config_prodigy.py | 309 | CODE | |
| LOW | Scripts/config_prodigy.py | 430 | CODE | |
| LOW | Scripts/config_prodigy.py | 447 | CODE | |
| LOW | Scripts/config_prodigy.py | 505 | CODE | |
| LOW | Scripts/config_prodigy.py | 615 | CODE | |
| LOW | Scripts/smbios.py | 93 | CODE | |
| LOW | Scripts/smbios.py | 163 | CODE | |
| LOW | Scripts/kext_maestro.py | 31 | CODE | |
| LOW | Scripts/kext_maestro.py | 134 | CODE | |
| LOW | Scripts/kext_maestro.py | 449 | CODE | |
| LOW | Scripts/kext_maestro.py | 519 | CODE | |
| LOW | Scripts/kext_maestro.py | 547 | CODE | |
| LOW | Scripts/kext_maestro.py | 721 | CODE | |
| LOW | Scripts/gathering_files.py | 45 | CODE | |
| LOW | Scripts/gathering_files.py | 95 | CODE | |
| LOW | Scripts/gathering_files.py | 150 | CODE | |
| LOW | Scripts/acpi_guru.py | 118 | CODE | |
| LOW | Scripts/acpi_guru.py | 358 | CODE | |
| LOW | Scripts/acpi_guru.py | 407 | CODE | |
| LOW | Scripts/acpi_guru.py | 572 | CODE | |
| LOW | Scripts/acpi_guru.py | 646 | CODE | |
| LOW | Scripts/acpi_guru.py | 708 | CODE | |
| LOW | Scripts/acpi_guru.py | 963 | CODE | |
| LOW | Scripts/acpi_guru.py | 1225 | CODE | |
| LOW | Scripts/acpi_guru.py | 1641 | CODE | |
| LOW | Scripts/acpi_guru.py | 1813 | CODE | |
| LOW | Scripts/acpi_guru.py | 1844 | CODE | |
| LOW | Scripts/acpi_guru.py | 2905 | CODE | |
| LOW | Scripts/acpi_guru.py | 3035 | CODE | |
| LOW | Scripts/acpi_guru.py | 3237 | CODE | |
| LOW | Scripts/acpi_guru.py | 1237 | CODE | |
| LOW | Scripts/hardware_customizer.py | 11 | CODE | |
| LOW | Scripts/hardware_customizer.py | 117 | CODE | |
| LOW | Scripts/hardware_customizer.py | 192 | CODE | |
| LOW | Scripts/resource_fetcher.py | 158 | CODE | |
| LOW | Scripts/compatibility_checker.py | 95 | CODE | |
| LOW | Scripts/compatibility_checker.py | 256 | CODE | |
| LOW | Scripts/wifi_profile_extractor.py | 130 | CODE | |
| LOW | Scripts/wifi_profile_extractor.py | 211 | CODE | |
| LOW | Scripts/wifi_profile_extractor.py | 262 | CODE | |
| LOW | Scripts/wifi_profile_extractor.py | 288 | CODE | |
| LOW | Scripts/utils.py | 61 | CODE | |
| LOW | Scripts/utils.py | 172 | CODE | |
| LOW | Scripts/integrity_checker.py | 41 | CODE | |
| LOW | Scripts/github.py | 81 | CODE | |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | updater.py | 30 | except Exception as e: | CODE |
| MEDIUM⚡ | updater.py | 31 | print("Error reading current SHA version: {}".format(str(e))) | CODE |
| LOW⚡ | updater.py | 39 | except Exception as e: | CODE |
| MEDIUM⚡ | updater.py | 40 | print("Error fetching latest SHA version: {}".format(str(e))) | CODE |
| LOW | updater.py | 69 | except Exception as e: | CODE |
| LOW | updater.py | 107 | except Exception as e: | CODE |
| LOW | updater.py | 119 | except Exception as e: | CODE |
| LOW | updater.py | 129 | except Exception as e: | CODE |
| MEDIUM | updater.py | 123 | def save_latest_sha_version(self, latest_sha): | CODE |
| LOW | OpCore-Simplify.py | 309 | except Exception as e: | CODE |
| LOW | OpCore-Simplify.py | 444 | except Exception as e: | CODE |
| LOW | OpCore-Simplify.py | 469 | except Exception as e: | CODE |
| LOW | Scripts/dsdt.py | 257 | except Exception as e: | CODE |
| LOW | Scripts/dsdt.py | 301 | except Exception as e: | CODE |
| MEDIUM | Scripts/dsdt.py | 302 | print("An error occurred :(\n - {}".format(e)) | CODE |
| LOW | Scripts/dsdt.py | 375 | except Exception as e: | CODE |
| LOW | Scripts/report_validator.py | 233 | except Exception as e: | CODE |
| LOW | Scripts/acpi_guru.py | 1248 | except Exception as e: | STRING |
| LOW | Scripts/acpi_guru.py | 1260 | except Exception as e: | STRING |
| LOW | Scripts/resource_fetcher.py | 39 | except Exception as e: | CODE |
| LOW | Scripts/resource_fetcher.py | 56 | except Exception as e: | CODE |
| LOW⚡ | Scripts/resource_fetcher.py | 87 | except Exception as e: | CODE |
| LOW⚡ | Scripts/resource_fetcher.py | 92 | except Exception as e: | CODE |
| LOW⚡ | Scripts/resource_fetcher.py | 102 | except Exception as e: | CODE |
| MEDIUM⚡ | Scripts/resource_fetcher.py | 103 | print("Error parsing content as {}: {}".format(content_type, e)) | CODE |
| MEDIUM | Scripts/resource_fetcher.py | 32 | def create_ssl_context(self): | CODE |
| MEDIUM | Scripts/resource_fetcher.py | 44 | def _make_request(self, resource_url, timeout=10): | CODE |
| LOW | Scripts/wifi_profile_extractor.py | 165 | except Exception as e: | CODE |
| MEDIUM | Scripts/wifi_profile_extractor.py | 167 | print("Error processing network '{}': {}".format(ssid, str(e))) | CODE |
| LOW | Scripts/utils.py | 28 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Scripts/dsdt.py | 742 | def get_device_paths_with_hid(self, hid="ACPI000E", table=None): | CODE |
| LOW | Scripts/config_prodigy.py | 240 | def select_audio_codec_layout(self, hardware_report, config=None, controller_required=False): | CODE |
| LOW | Scripts/kext_maestro.py | 687 | def verify_kext_compatibility(self, kext_names, target_darwin_version): | CODE |
| LOW | Scripts/gathering_files.py | 45 | def fetch_latest_products_info(self, kexts, local_download_history): | CODE |
| LOW | Scripts/gathering_files.py | 95 | def move_bootloader_kexts_to_product_directory(self, product_name): | CODE |
| LOW | Scripts/acpi_guru.py | 407 | def enable_cpu_power_management(self): | CODE |
| LOW | Scripts/acpi_guru.py | 1504 | def add_intel_management_engine(self): | CODE |
| LOW | Scripts/acpi_guru.py | 1544 | def add_memory_controller_device(self): | CODE |
| LOW | Scripts/acpi_guru.py | 1592 | def add_system_management_bus_device(self): | CODE |
| LOW | Scripts/acpi_guru.py | 1813 | def findall_power_resource_blocks(self, table_lines): | CODE |
| LOW | Scripts/acpi_guru.py | 1836 | def is_method_in_power_resource(self, method, table_lines): | CODE |
| LOW | Scripts/acpi_guru.py | 1844 | def disable_unsupported_device(self): | CODE |
| LOW | Scripts/acpi_guru.py | 2762 | def surface_laptop_special_patch(self): | CODE |
| LOW | Scripts/acpi_guru.py | 2036 | def enable_backlight_controls(self): | STRING |
| LOW | Scripts/acpi_guru.py | 2948 | def process_embedded_control_region(self, table, start_idx): | STRING |
| LOW | Scripts/acpi_guru.py | 3321 | def customize_patch_selection(self): | STRING |
| LOW | Scripts/compatibility_checker.py | 26 | def _restrict_native_compatibility(self, compatibility): | CODE |
| LOW | Scripts/compatibility_checker.py | 228 | def check_sound_compatibility(self): | CODE |
| LOW | Scripts/compatibility_checker.py | 248 | def check_biometric_compatibility(self): | CODE |
| LOW | Scripts/compatibility_checker.py | 256 | def check_network_compatibility(self): | CODE |
| LOW | Scripts/compatibility_checker.py | 309 | def check_storage_compatibility(self): | CODE |
| LOW | Scripts/compatibility_checker.py | 368 | def check_bluetooth_compatibility(self): | CODE |
| LOW | Scripts/compatibility_checker.py | 386 | def check_sd_controller_compatibility(self): | CODE |
| LOW | Scripts/wifi_profile_extractor.py | 67 | def get_wifi_password_windows(self, ssid): | CODE |
| LOW | Scripts/wifi_profile_extractor.py | 189 | def get_preferred_networks_macos(self, interface): | CODE |
| LOW | Scripts/wifi_profile_extractor.py | 211 | def get_preferred_networks_windows(self): | CODE |
| LOW | Scripts/wifi_profile_extractor.py | 241 | def get_preferred_networks_linux(self): | CODE |
| LOW | Scripts/datasets/os_data.py | 20 | def get_latest_darwin_version(include_beta=True): | CODE |
| LOW | Scripts/datasets/os_data.py | 28 | def get_lowest_darwin_version(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Scripts/dsdt.py | 577 | # Check if our hex string is unique | COMMENT |
| LOW | Scripts/run.py | 122 | # Check if we have sudo | COMMENT |
| LOW | Scripts/acpi_guru.py | 138 | # Check if there's an ACPI directory within the passed | COMMENT |
| LOW | Scripts/acpi_guru.py | 601 | # Check if we retain the _HID here | COMMENT |
| LOW | Scripts/acpi_guru.py | 617 | # Check if just a filler line | COMMENT |
| LOW | Scripts/acpi_guru.py | 749 | # Check if we found the values | COMMENT |
| LOW | Scripts/acpi_guru.py | 1140 | # Check if we need to setup an RTC range correction | STRING |
| LOW | Scripts/acpi_guru.py | 1167 | # Check if we do not have an RTC device at all | STRING |
| LOW | Scripts/acpi_guru.py | 1240 | # Check if we have an IntObj or MethodObj | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Scripts/dsdt.py | 103 | # Create a temp dir and copy all files there | COMMENT |
| MEDIUM | Scripts/acpi_guru.py | 1408 | # Create the faked EC | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Scripts/run.py | 151 | # We only ran one command - just return that output | COMMENT |
| LOW | Scripts/acpi_guru.py | 178 | # If it loads fine - just return the path | COMMENT |
| LOW | Scripts/acpi_guru.py | 1123 | # AWAC device with no STAS, and no _STA - let's just add one | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Scripts/dsdt.py | 3 | CODE | |
| LOW | Scripts/resource_fetcher.py | 17 | CODE | |
| LOW | Scripts/integrity_checker.py | 3 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Scripts/acpi_guru.py | 541 | }""" | COMMENT |
| LOW | Scripts/acpi_guru.py | 1061 | val += "{} _CRS to XCRS".format(" and " if val else x["dev_name"]) | COMMENT |
| LOW | Scripts/acpi_guru.py | 1201 | #self.write_ssdt("SSDT-RTCAWAC",ssdt) | COMMENT |
| LOW | Scripts/acpi_guru.py | 1321 | #else: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Scripts/datasets/kext_data.py | 5 | CODE |