How sammyzi/warden works
Warden is a no-root Android firewall: Android sends app traffic through its local VPN, where the engine consults rules and either permits or blocks it; events then support on-device history and investigation screens. Users configure app/domain access, blocklists, and DNS, and inspect activity through the dashboard, app details, live log, and globe. The graph preserves these documented capabilities, but some subsystem links rely on README descriptions or indexed references because their implementation excerpts were not shown.
Main entry points: Shell.kt Navigation shell · Rules.kt Rule evaluation · AppDetail.kt App list and detail · WardenVpnService.kt Local VPN service
Components 23
App shell
- Activity entry
app/src/main/java/dev/warden/MainActivity.kt - Navigation shell
app/src/main/java/dev/warden/Shell.kt
VPN and rules
- Local VPN service
core-engine/src/main/java/dev/warden/engine/WardenVpnService.kt - Quick Settings tile
core-engine/src/main/java/dev/warden/engine/ProtectionTileService.kt - Network events
core-engine/src/main/java/dev/warden/engine/NetEvent.kt - Rule evaluation
core-rules/src/main/java/dev/warden/rules/Rules.kt - Per-app access
core-rules/src/main/java/dev/warden/rules/AppRules.kt - Blocklists and trackers
core-rules/src/main/java/dev/warden/rules/Blocklists.kt - DNS configuration
core-rules/src/main/java/dev/warden/rules/Dns.kt
On-device records
- History store
core-data/src/main/java/dev/warden/data/History.kt - System data usage
core-data/src/main/java/dev/warden/data/SystemUsage.kt
Firewall features
- Dashboard and data
feature-dashboard/src/main/java/dev/warden/dashboard/DashboardScreen.kt - App list and detail
feature-apps/src/main/java/dev/warden/apps/AppDetail.kt - Privacy report cards
feature-apps/src/main/java/dev/warden/apps/ReportCard.kt - Live log
feature-logs/src/main/java/dev/warden/logs/LogScreen.kt - Traffic globe
feature-map/src/main/java/dev/warden/map/MapScreen.kt - Country lookup
feature-map/src/main/java/dev/warden/map/Geo.kt - Globe rendering
feature-map/src/main/java/dev/warden/map/Globe.kt
Configuration
- Settings and rules
feature-settings/src/main/java/dev/warden/settings/SettingsScreen.kt
Other components
- Phone user
- Android traffic
- Internet
- List providers
Connections 33
- Phone user → Activity entry: opens app
app/src/main/java/dev/warden/MainActivity.kt - Activity entry → Navigation shell: starts shell
app/src/main/java/dev/warden/MainActivity.kt - Navigation shell → Dashboard and data: shows tab
app/src/main/java/dev/warden/Shell.kt - Navigation shell → App list and detail: shows tab
app/src/main/java/dev/warden/Shell.kt - Navigation shell → Live log: shows tab
app/src/main/java/dev/warden/Shell.kt - Navigation shell → Traffic globe: shows tab
app/src/main/java/dev/warden/Shell.kt - Navigation shell → Settings and rules: shows tab
app/src/main/java/dev/warden/Shell.kt - Phone user → Quick Settings tile: toggles protection
core-engine/src/main/java/dev/warden/engine/ProtectionTileService.kt - Quick Settings tile → Local VPN service: starts or stops
core-engine/src/main/java/dev/warden/engine/ProtectionTileService.kt - Android traffic → Local VPN service: routes traffic
README.md - Local VPN service → Rule evaluation: asks verdict
README.md - Rule evaluation → Per-app access: checks app rule
core-rules/src/main/java/dev/warden/rules/Rules.kt - Rule evaluation → Blocklists and trackers: checks lists
core-rules/src/main/java/dev/warden/rules/Rules.kt - Rule evaluation → DNS configuration: checks DNS
core-rules/src/main/java/dev/warden/rules/Rules.kt - Local VPN service → Internet: allows traffic
README.md - Local VPN service → Network events: records activity
README.md - Network events → History store: buffers and stores
core-data/src/main/java/dev/warden/data/History.kt - Dashboard and data → History store: reads summaries
feature-dashboard/src/main/java/dev/warden/dashboard/DashboardScreen.kt - Dashboard and data → System data usage: reads usage
- App list and detail → Network events: shows app activity
feature-apps/src/main/java/dev/warden/apps/AppDetail.kt - App list and detail → Per-app access: sets app access
feature-apps/src/main/java/dev/warden/apps/AppDetail.kt - App list and detail → Rule evaluation: sets domain rules
feature-apps/src/main/java/dev/warden/apps/AppDetail.kt - App list and detail → Privacy report cards: opens report
- Privacy report cards → History store: reads history
feature-apps/src/main/java/dev/warden/apps/ReportCard.kt - Live log → Network events: shows activity
feature-logs/src/main/java/dev/warden/logs/LogScreen.kt - Traffic globe → History store: reads connections
feature-map/src/main/java/dev/warden/map/MapScreen.kt - Traffic globe → Network events: filters events
feature-map/src/main/java/dev/warden/map/MapScreen.kt - Traffic globe → Globe rendering: renders globe
feature-map/src/main/java/dev/warden/map/MapScreen.kt - Globe rendering → Country lookup: uses country data
feature-map/src/main/java/dev/warden/map/Globe.kt - Settings and rules → Rule evaluation: edits rules
feature-settings/src/main/java/dev/warden/settings/SettingsScreen.kt - Settings and rules → Blocklists and trackers: configures lists
feature-settings/src/main/java/dev/warden/settings/SettingsScreen.kt - Settings and rules → DNS configuration: configures DNS
- Blocklists and trackers → List providers: downloads lists
core-rules/src/main/java/dev/warden/rules/Blocklists.kt