RiskWatch is a comprehensive Android application that analyzes the privacy risks of installed applications on your device. It provides users with detailed insights into app permissions, tracking libraries, and overall privacy scores through an intuitive heatmap interface.
- Color-coded risk assessment: Visual heatmap with red/yellow/green risk indicators
- Filter chips: Quick filtering by risk level (High/Medium/Low) and tracker presence
- App list: Scrollable list of all installed apps with privacy scores
- Real-time scanning: Automatic analysis of installed applications
- Circular progress gauge: Visual representation of privacy risk score (0-100)
- Dual-tab interface:
- Permissions tab: List of dangerous permissions with plain-language explanations
- Trackers tab: Identified tracking libraries and their purposes
- Direct settings access: One-tap navigation to app permission settings
- Export functionality: Generate and share privacy reports
- Side-by-side comparison: Compare privacy profiles of two apps
- Permission checklist: Visual comparison of critical permissions
- Privacy score comparison: Easy identification of safer alternatives
- Chronological alert feed: Timeline of privacy-related events
- Alert types:
- High-risk app detection
- New app installations
- Permission changes
- Tracker detection
- Direct navigation: Tap alerts to view detailed app information
- Scanning preferences: Configure automatic new app scanning
- Periodic scans: Set up background privacy monitoring
- Offline mode: Disable tracker detection for offline usage
- About section: Information about scoring methodology and privacy policy
- Multiple formats: Text (.txt) and PDF export options
- Detailed analysis: Comprehensive privacy assessment reports
- Easy sharing: Direct sharing capabilities for privacy reports
app/src/main/
โโโ java/com/riskwatch/privacy/
โ โโโ data/
โ โ โโโ models/ # Data models (AppInfo, PermissionInfo, TrackerInfo)
โ โ โโโ AppScanner.kt # Core app analysis engine
โ โโโ ui/
โ โ โโโ dashboard/ # Main heatmap interface
โ โ โโโ details/ # App details with tabs
โ โ โโโ compare/ # App comparison view
โ โ โโโ alerts/ # Privacy alerts timeline
โ โ โโโ settings/ # Configuration screen
โ โโโ MainActivity.kt # Main navigation host
โโโ res/
โโโ layout/ # UI layouts for all screens
โโโ values/ # Colors, strings, themes
โโโ drawable/ # Icons and graphics
โโโ menu/ # Toolbar menus
โโโ navigation/ # Navigation graph
- Language: Kotlin
- UI Framework: Material Design 3
- Architecture: MVVM with LiveData
- Navigation: Navigation Component with Safe Args
- Async Operations: Coroutines
- Permissions Analysis: Android PackageManager APIs
- Tracker Detection: Simulated (extensible for Exodus Privacy API)
- UI Binding: View Binding
- Progress Visualization: Custom circular progress indicators
The app calculates privacy scores based on:
- Dangerous Permissions (60% weight): Each dangerous permission adds 10 points
- Tracking Libraries (40% weight): Trackers contribute additional risk points
- Risk Levels:
- ๐ข Low Risk: 0-39 points
- ๐ก Medium Risk: 40-74 points
- ๐ด High Risk: 75-100 points
- Android Studio Arctic Fox (2020.3.1) or newer
- Android SDK API level 24 (Android 7.0) or higher
- Kotlin 1.9.20 or newer
-
Clone the Repository
git clone <repository-url> cd riskwatch-android
-
Open in Android Studio
- Launch Android Studio
- Select "Open an existing project"
- Navigate to the cloned directory
-
Sync Dependencies
./gradlew build
-
Configure Permissions The app requires the
QUERY_ALL_PACKAGESpermission for comprehensive app scanning. This permission needs to be declared in the manifest and may require special handling on Android 11+. -
Run the Application
- Connect an Android device or start an emulator
- Click "Run" in Android Studio or use:
./gradlew installDebug
-
Generate Signed APK
./gradlew assembleRelease
-
Create App Bundle (recommended for Play Store)
./gradlew bundleRelease
dependencies {
// Core Android
implementation 'androidx.core:core-ktx:1.12.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
// Navigation
implementation 'androidx.navigation:navigation-fragment-ktx:2.7.6'
implementation 'androidx.navigation:navigation-ui-ktx:2.7.6'
// Architecture Components
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.7.0'
// Async Operations
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3'
// UI Components
implementation 'com.github.lzyzsd:circleprogress:1.2.1'
// API Integration (for future Exodus Privacy integration)
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
}<!-- Essential for app scanning -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<!-- Network access for tracker detection -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />- Real Exodus Privacy API Integration: Replace simulated tracker detection
- Machine Learning Risk Assessment: Enhanced scoring with ML models
- Privacy Trends: Historical privacy score tracking
- Community Reports: Crowdsourced privacy insights
- Advanced Filtering: Custom filter creation and saved searches
- Notification System: Real-time privacy alerts
- Backup/Restore: Settings and preferences sync
- All app analysis performed locally on device
- No user data transmitted without explicit consent
- Optional offline mode for enhanced privacy
- Transparent data collection policies
- Follow Material Design 3 principles
- Maintain MVVM architecture patterns
- Write comprehensive unit tests
- Use meaningful commit messages
- Document new features thoroughly
- Kotlin coding conventions
- 4-space indentation
- Descriptive variable and function names
- Comprehensive inline documentation
This project is licensed under the MIT License - see the LICENSE file for details.
For issues, feature requests, or questions:
- Create an issue in the GitHub repository
- Follow the issue template for bug reports
- Include device information and Android version for technical issues
RiskWatch analyzes app permissions and metadata stored locally on your device. The app does not collect or transmit personal information without explicit user consent. All privacy analysis is performed locally to protect user data.
RiskWatch - Empowering users with transparent privacy insights ๐ก๏ธ