A powerful command-line tool for analyzing Flutter Android apps to discover security issues, secrets, API endpoints, and more. FlutterGuard runs completely offline on your machineβno cloud services, no tracking, just local analysis.
FlutterGuard CLI analyzes Flutter app APK files and extracts:
- π Secrets & API Keys β Finds hardcoded passwords, tokens, and credentials
- π Network Details β Extracts URLs, domains, API endpoints, and Firebase configs
- π¦ Dependencies β Lists all Flutter packages with direct links to pub.dev
- π App Metadata β Package name, version, SDK info, and permissions
- π Third-Party Services β Detects bundled SDKs, CDNs, and analytics libraries
- π Certificate Info β Analyzes signing certificates and flags self-signed ones
- π Complete Breakdown β Organized assets, resources, and full decompiled source code
One-line install for Linux/macOS:
curl -sSL https://raw.githubusercontent.com/flutterguard/flutterguard-cli/main/install.sh | bashOne-line install for Windows (PowerShell):
irm https://raw.githubusercontent.com/flutterguard/flutterguard-cli/main/install.ps1 | iexThe script will automatically detect your OS/architecture, download the latest release, and install it to your PATH.
Option 1: Download Pre-Built Binary
Step 1: Download from Releases:
| Platform | Download Link |
|---|---|
| Linux (x64) | flutterguard-cli-linux-amd64 |
| Linux (ARM64) | flutterguard-cli-linux-arm64 |
| macOS (Intel) | flutterguard-cli-darwin-amd64 |
| macOS (Apple Silicon) | flutterguard-cli-darwin-arm64 |
| Windows (x64) | flutterguard-cli-windows-amd64.exe |
Step 2: Install it on your system:
Linux/macOS:
# Make executable
chmod +x flutterguard-cli-*
# Install to PATH
sudo mv flutterguard-cli-* /usr/local/bin/flutterguard-cli
# Verify
flutterguard-cli --versionWindows:
- Rename the downloaded file to
flutterguard-cli.exe - Move it to a directory in your PATH (e.g.,
C:\Windows\System32) - Or keep it anywhere and add that directory to your PATH
# Verify
flutterguard-cli.exe --versionOption 2: Build From Source
Requirements:
- Go 1.24+ (Download Go)
- Git
Steps:
# Clone the repository
git clone https://github.com/flutterguard/flutterguard-cli.git
cd flutterguard-cli
# Build
go build -o flutterguard-cli
# Install (optional)
sudo mv flutterguard-cli /usr/local/bin/
# Verify
flutterguard-cli --versionOption 3: Package Managers (Coming Soon)
We're working on adding support for popular package managers:
- Homebrew (macOS/Linux):
brew install flutterguard-cli - Snap (Linux):
snap install flutterguard-cli - Chocolatey (Windows):
choco install flutterguard-cli - AUR (Arch Linux):
yay -S flutterguard-cli - Scoop (Windows):
scoop install flutterguard-cli
Stay tuned for updates!
FlutterGuard works standalone, but these tools provide richer analysis:
- AAPT2 β Enhanced APK metadata extraction
- Linux:
sudo apt install aapt - macOS: Included with Android SDK
- Windows: Download from Android SDK
- Linux:
- JADX β Advanced Java decompilation
- Download: github.com/skylot/jadx/releases
- Or via Homebrew:
brew install jadx
- OpenSSL β Detailed certificate inspection (usually pre-installed on Linux/macOS)
Analyze a Flutter app APK and save organized results to a directory:
flutterguard-cli --apk app.apk --outDir ./resultsThis creates a folder named after the app's package (e.g., results/com.example.app/) containing all findings, assets, and decompiled code.
Add --verbose to see real-time progress updates:
flutterguard-cli --apk app.apk --outDir ./results --verboseJSON format (default, good for automation):
flutterguard-cli --apk app.apk --format jsonText format (human-readable summary):
flutterguard-cli --apk app.apk --format textStructured directory (most comprehensive):
flutterguard-cli --apk app.apk --outDir ~/my-analysisBy default, FlutterGuard runs completely offline. Enable network features for:
- Domain DNS validation
- pub.dev package information enrichment
flutterguard-cli --apk app.apk --outDir ./results --enable-network-and-dns-checksWhen using --outDir, FlutterGuard creates an organized directory structure:
results/
βββ com.example.app/
βββ summary.md β Start here! Overview with clickable links
βββ analysis.json β Full structured data (JSON)
βββ emails.txt β Email addresses found
βββ domains.txt β Domain names and hosts
βββ urls.txt β All URLs discovered
βββ api_endpoints.txt β API endpoints with HTTP methods
βββ packages.txt β Flutter packages with pub.dev links
βββ permissions.txt β Android permissions (β οΈ = dangerous)
βββ services.txt β Third-party SDKs detected
βββ hardcoded_keys.txt β Potential secrets and API keys
βββ assets/ β App resources by file type
β βββ json/
β βββ png/
β βββ xml/
β βββ ttf/
β βββ ...
βββ decompiled/ β Complete APK contents
βββ AndroidManifest.xml
βββ classes.dex
βββ lib/ β Native libraries (.so files)
βββ res/ β App resources
βββ assets/ β Embedded assets
βββ META-INF/ β Signing certificates
Tip: Open summary.md in any markdown viewerβit includes a table of contents with links to all findings.
FlutterGuard is written in Go rather than Dart because:
- Single Compiled Binary: Users get a standalone executable with zero dependenciesβjust download and run, no runtime required.
- Cross-Platform Distribution: Go compiles easily to Windows, macOS, and Linux with a single codebase, making it simpler for users across different systems.
- Performance: Go offers native compilation speed and efficiency ideal for analyzing large APK files and intensive security scanning operations.
- CLI Excellence: Go is purpose-built for command-line tools with strong standard library support for file I/O, process execution, and signal handling.
- Ecosystem: Direct access to powerful tools like JADX and aapt2 without the overhead of a UI framework designed for mobile apps.
While Dart excels at building Flutter mobile and web apps, Go is the better choice for a developer tool that needs to be lightweight, fast, and dependency-free.
Contributions are welcome! Whether it's bug fixes, new features, or documentation improvements.
# Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/flutterguard-cli.git
cd flutterguard-cli
# Download dependencies
go mod download
# Build the project
go build -o build/flutterguard-cli
# Run tests
go test ./...- π New detection patterns for secrets and suspicious code
- π οΈ Integration with additional analysis tools
- π New report formats (HTML, PDF, CSV)
- π Bug fixes and performance improvements
- π Documentation and examples
- π Internationalization support
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes with clear commit messages
- Add tests for new functionality
- Run
go test ./...andgo vet ./... - Submit a pull request with a clear description
- Follow standard Go formatting (
gofmt,go vet) - Use descriptive names for functions and variables
- Comment exported functions and complex logic
- Keep functions focused and reasonably sized
- Write tests for new features
Found a bug? Open an issue with:
- Description of what you tried to do
- What happened vs. what you expected
- Your OS, Go version, and FlutterGuard version
- Steps to reproduce (if possible)
MIT License - see the LICENSE file for details.
Built for the Flutter and Android security community
