FlutterGuard security model

Effective date: 2026-10-30

FlutterGuard performs static analysis of Android APK artifacts on the device. It is a reading tool: it does not run, install, modify, or attack the applications it inspects. This document describes the boundaries it enforces and the limits you should assume.

Network boundary

The app declares no INTERNET permission. Without it the Android kernel denies socket creation to the app process, so no scanner result, report content, or secret can leave the device through FlutterGuard itself.

External documentation links open in another app only after an explicit tap. The destination app has its own permissions and privacy policy; FlutterGuard only hands it a URL.

What is read

Static parsers read the manifest, resources, DEX string tables, native library strings, archive entries, and signing blocks. Parsing is bounded: previews are capped, oversized entries are skipped, entry names are validated, and no archive path is ever extracted to the filesystem or executed.

What is never done

Secret handling

Findings that look like credentials are masked by default. A mask reveals only the length, never characters. Revealing a value is an explicit action, is restricted to the current visit, and marks the window secure for screenshots (FLAG_SECURE) while the value is visible.

Raw values are retained only in the memory of the scanning process. They are not serialized: a report reopened from disk can show its masked evidence but not the original value. To reveal values again, rescan the app.

Exports are redacted by default. Raw values are written only when you confirm the sensitive option for that specific file; turning the setting off removes the option entirely.

Storage and sharing

Anyone who can read the device's storage with root, debug access, or a backup mechanism can read stored reports. FlutterGuard disables Android backup for its data, but it cannot defend against a compromised device or a rooted OS.

Permission set

There is no storage, location, contacts, camera, microphone, or network permission in the manifest.

Known limitations

Reporting a vulnerability in FlutterGuard

Report security issues privately through the project repository at github.com/anasfik/FlutterGuard. Include the affected version, steps to reproduce, and the impact you observed. Please do not include real credentials or third-party user data in a report.