Setup & Installation
Relevant source files
The following files were used as context for generating this wiki page:
ShadowCheck Mobile is an advanced Android application designed for network security, surveillance detection, and signals intelligence (SIGINT). The setup process involves configuring a specific development environment, obtaining necessary API keys for mapping and data integration services, and ensuring the target device meets strict hardware and permission requirements for radio scanning and augmented reality (AR) features.
Sources: README.md:1-10, app/src/main/kotlin/com/shadowcheck/mobile/rebuilt/ui/screens/SettingsScreen.kt:200-210
Development Environment Setup
The project is built using modern Android technologies, specifically Jetpack Compose for the UI and Kotlin for the logic layer. Developers must configure their environment to match the specifications required for building the reconstructed codebase.
Prerequisites
To build and run the application, the following software versions are required:
| Component | Required Version |
|---|---|
| Android Studio | Hedgehog or later |
| JDK | 17 |
| Android SDK | 34 (Target 35) |
| Gradle | 8.2+ |
| Min SDK | 26 (Android 8.0) |
Sources: README.md:20-25, app/src/main/AndroidManifest.xml:4-5
Build Process
The project utilizes the Gradle wrapper for consistent builds across different environments. On Windows systems, gradlew.bat handles the initialization of the Java executable and classpath setup.
The diagram above shows the initialization flow of the Windows Gradle wrapper script.
Sources: gradlew.bat:15-60, README.md:28-35
Application Configuration
Once the application is installed, several external services must be configured via the SettingsScreen to enable full functionality, particularly for mapping and data synchronization with WiGLE.
API Key Management
ShadowCheck relies on several third-party providers. API keys are stored securely using EncryptedSharedPreferences, which utilizes the AndroidX Security library and AES256 encryption.
| Provider | Purpose | Configuration Key |
|---|---|---|
| WiGLE | Upload and query wardriving data | wigle_api_key |
| Mapbox | Interactive network visualization | mapbox_api_key |
| Google Maps | Alternative map provider | google_maps_api_key |
Sources: app/src/main/kotlin/com/shadowcheck/mobile/rebuilt/ui/screens/SettingsScreen.kt:240-270, app/src/main/kotlin/com/shadowcheck/mobile/rebuilt/ui/screens/SettingsScreen.kt:315-325
Hardware and Software Features
The application requires specific hardware features to be present or optionally available on the device. These are defined in the manifest to ensure the OS can provide the necessary APIs.
- AR Core: Requires
com.google.ar.coreand a minimum APK version of242590000. - Camera: Used for AR network finding and media attachments.
- WiFi Hardware: Required for network scanning.
- OpenGL ES: Minimum version
0x30000(v3.0) required for map and AR rendering.
Sources: app/src/main/AndroidManifest.xml:27-32, app/src/main/AndroidManifest.xml:70-75, app/src/main/res/values-en-rGB/strings.xml:5-10
Permissions Requirements
ShadowCheck requires extensive system permissions due to its nature as a signals intelligence tool. These permissions must be granted for the background scanning service (CompleteScannerService) to operate correctly.
Critical Permissions Flow
The application logic depends on the user granting sensitive permissions at runtime.
The diagram illustrates the dependency of the scanning engine on location permissions.
Sources: app/src/main/AndroidManifest.xml:7-25, app/src/main/AndroidManifest.xml:50-52
Permission Summary Table
| Permission | Functionality Impact |
|---|---|
ACCESS_FINE_LOCATION | Precise network mapping and cellular tower identification. |
BLUETOOTH_SCAN | Discovery of Bluetooth Classic and BLE Beacons. |
CHANGE_WIFI_STATE | Initiating WiFi scans and managing connections. |
FOREGROUND_SERVICE_LOCATION | Allowing scans to continue while the app is in the background. |
CAMERA | Visualizing network nodes in Augmented Reality. |
Sources: app/src/main/AndroidManifest.xml:7-23, README.md:65-72
Installation Troubleshooting
During setup, developers or users may encounter issues related to the underlying service providers or environmental configurations.
- Google Play Services for AR: If AR features fail, ensure "Google Play Services for AR" is updated to the latest version via the Play Store.
- Gradle Sync Errors: Verify JDK 17 is correctly set in Android Studio (File -> Project Structure -> SDK Location).
- Map Rendering: If maps appear blank, verify that either
MAPBOX_ACCESS_TOKENis set in theAndroidManifest.xmlor provided via the app's internal settings.
Sources: app/src/main/res/values-en-rGB/strings.xml:5-10, app/src/main/AndroidManifest.xml:46-48, app/src/main/kotlin/com/shadowcheck/mobile/rebuilt/ui/screens/SettingsScreen.kt:250-260
Conclusion
Setting up ShadowCheck Mobile requires a combination of standard Android development practices and specific configuration for high-security signals intelligence. By ensuring the proper SDK versions, securing API keys via encrypted storage, and granting comprehensive location and radio permissions, the system can effectively perform real-time surveillance detection and network analysis.