Skip to content

Diagnostics, Local Reports & Privacy ​

Macrion is designed with a strict privacy-first philosophy. This page explains how local crash diagnostics operate, how data is sanitized, the lifecycle of error reports, and how to inspect diagnostics before submitting a bug report.


The Privacy Guarantee ​

Macrion is open-source software licensed under the GNU General Public License v3.0.

  • Zero Background Telemetry: Macrion contains no silent telemetry, analytics trackers, or profiling SDKs.
  • 100% On-Device Vision: All screen frames, color evaluations, template matches (OpenCV), and neural OCR text scans (NCNN) execute strictly in device memory. No screen content is ever saved to disk or streamed externally.
  • Zero Cloud Dependence: The core automation engine operates fully offline without requiring an internet connection.

Local-First Crash Reporting ​

If an unexpected crash or runtime exception occurs, Macrion does not automatically upload a crash dump to a remote server. Instead, it generates a local crash report saved securely on your device.

text
┌────────────────────────────────────────────────────────┐
│               Uh-oh, Macrion crashed                   │
│                                                        │
│  A technical report was saved on this device.          │
│  Nothing is sent unless you choose Send report.        │
│                                                        │
│  [ Review ]      [ Copy ]      [ Dismiss ]     [ Send ]│
└────────────────────────────────────────────────────────┘

Report Data & Sanitization ​

Crash reports generated by CrashDiagnostics contain only the technical information required to diagnose software faults:

  • Stack Trace & Error Cause: The exact line of code and exception type that triggered the failure.
  • App Version & ABI: Application release version (e.g. v0.3.0) and target architecture (e.g. arm64-v8a).
  • Device & OS Specs: Device manufacturer, model, and Android API level.
  • Sanitization: Personal information, scenario passwords, and file paths outside the application sandbox are scrubbed before presentation.

Data Retention Windows ​

  • Local Device Storage: Unsent crash reports expire and are automatically deleted from local storage after 7 days.
  • Sent Reports: If you explicitly authorize transmission via Send report, the report is stored securely for diagnostic analysis for up to 30 days.

User Controls in CrashReportsActivity ​

Inside Settings $\to$ Local crash reports, you have total control over every report:

  • Review: Open the full stack trace and system parameters to inspect every line before deciding what to do.
  • Copy: Copy the sanitized report text directly to your clipboard for private inspection or manual pasting into community forums.
  • Dismiss: Immediately purge the report from local device storage.
  • Send: Securely transmit the report directly to the developer for debugging.

Automated GitHub Bug Report Generator ​

When you tap Report a bug in Macrion Settings, the app constructs a pre-formatted GitHub issue URL using your device's exact specifications:

kotlin
private fun createBugReportUrl(): String = Uri.parse(BUG_REPORT_URL).buildUpon()
    .appendQueryParameter("template", BUG_REPORT_TEMPLATE)
    .appendQueryParameter("app-version", BuildConfig.VERSION_NAME)
    .appendQueryParameter("device-type", "${Build.MANUFACTURER} ${Build.MODEL}".trim())
    .appendQueryParameter("android-version", "${Build.VERSION.RELEASE} (API ${Build.VERSION.SDK_INT})")
    .build()
    .toString()

This ensures that when you file an issue on GitHub, the bug template is already pre-filled with the exact device model, manufacturer, and Android API level needed to reproduce the problem.


Internal State Dumps (Dumpable) ​

Core internal components in Macrion implement the Dumpable interface:

  • OverlayMenuPositionDataSource: Dumps landscape/portrait saved coordinates and lock states.
  • AndroidActionExecutor: Dumps active gesture dispatches and queued actions.
  • DumbDatabase / SmartDatabase: Dumps Room schema metadata and table counts.

When troubleshooting deep system interactions, these dumps provide clear, transparent state diagnostics without inspecting user databases or private scenarios.


Free and open source under the GNU GPL v3.0 License.