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.
┌────────────────────────────────────────────────────────┐
│ 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:
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.
Related Documentation
- Settings Catalog — Reference table of all configuration options and DataStore keys.
- Screen Capture & Display Modes — In-depth breakdown of
MediaProjectionand display permissions. - Device Workarounds & Input Safety — Details on input unblocking, Volume Down emergency stop, and accidental stop confirmation.