Android app that aims to detect flying drones and GPS interference outside urban areas
Drone Sound Alert is an Android-based monitoring tool designed for hobbyist use to acoustically detect drones and monitor the security of the GPS environment (jamming detection). The application is intended to be used primarily outside urban areas and in quiet environments where there is no significant noise pollution. This ensures the best possible accuracy in identifying drone motor sounds.
Simple case:
The use of multiple mobile devices and applications equipped with high-quality microphones and external power sources. The devices are operated in a low-noise environment. All observations are collected centrally, for example on an rsyslog server, enabling the formation of a comprehensive situational overview of the monitored area, as well as the execution of analyses and other follow-up actions.
Android Version: Android 8.0 (Oreo) or newer (API Level 26+).
Microphone: High-quality internal or external microphone is required for drone sound frequency analysis and AI-based detection.
GPS (GNSS): Required for location-based detection logging and for the GNSS Interference (Jamming) monitoring features
Camera: A camera with a flash is necessary if you wish to use the flashlight visual alert feature.
Good External power source
Connectivity:
Internet: Required for sending email alerts.
Bluetooth: Required if using external Bluetooth speakers, Microphones or SPP-compatible alert devices.
USB: Supports external USB microphones for improved detection range.
Acoustic Drone Detection
AI-Based Analysis
Utilizes TensorFlow Lite models to distinguish drone sounds from natural environmental noise. The application provides an option to use AI-based detection when the required uncompressed TensorFlow model file is included.
Fallback / Direct Audio Mode
As the TensorFlow model file is not included with the application, users can alternatively select direct microphone-based detection, enabling real-time audio analysis using the device’s built-in microphone.
Spectral Analysis (FFT)
Performs real-time frequency analysis to identify narrow-band frequency peaks characteristic of drone activity, regardless of whether AI-based or direct audio detection is used.
Background Monitoring: Operates as a continuous Android Foreground Service, allowing monitoring even when the screen is locked.
Smart Filtering: Adjustable consecutive detection thresholds to minimize false alarms in various environments.
Input Source: Choose between internal microphones, Bluetooth microphone/headsets, or a Local Audio File.
Audio File Mode: Select a .wav or .mp3 file to test detection logic in a loop.
GNSS (GPS) Interference Monitoring
Jamming Detection: Analyzes the quality of satellite signals and identifies active jamming using a multi-indicator scoring model.
Dynamic Baseline: Automatically learns the optimal signal level of the current location (10–60s mapping) and reacts to deviations.
Graphical Analysis: Includes real-time charts for signal level history and interference scores.
Visualizers: Choose between Spectrogram (waterfall history) or Oscilloscope (real-time wave peaks).
Multi-Channel Alarm System
When a drone or GPS interference is detected, the app can:
Play a selected alarm sound and vibrate the device.
Flash the camera LED (Strobe effect).
Send an SMS message with a Google Maps location link. (For now, due to Android security restrictions, this app cannot send SMS messages automatically when installed outside of the Google Play Store. )
Send email alerts
Send alerts to remote Rsyslog server.
Send a data string to a paired Bluetooth device (e.g., an external alert system)
1. System Architecture
Platform: Android (Min SDK 26 / Android 8.0, Target SDK 34 / Android 14).
Service Model: Runs as a high-priority Foreground Service. This ensures uninterrupted operation even when the device is locked or the CPU is in power-saving mode.
Runtime Permissions:
RECORD_AUDIO: For real-time audio analysis.
ACCESS_FINE_LOCATION: For reading satellite C/N0 values and coordinates.
BLUETOOTH_CONNECT / SCAN: For controlling external alert hardware.
CAMERA: For the camera LED strobe functionality.
SEND_SMS: For automated remote alerts. (For now, due to Android security restrictions, this app cannot send SMS messages automatically when installed outside of the Google Play Store. )
2. Acoustic Analysis Pipeline
The application processes audio data using two parallel methods:
TensorFlow Lite (AI)
Engine: TensorFlow Lite Interpreter v2.14.
Input: 44,100 Hz 16-bit PCM Mono audio stream.
Input Gain: Adjustable digital pre-amplification (0.1x – 4.0x) to capture weak signals.
'Analysis Window: Sliding window of 0.5s or 1.0s.
Confidence Smoothing: Results are smoothed by calculating a moving average (2–10 consecutive inferences).
Threshold: User-definable classification confidence (0.00 – 1.00).
Spectral Analysis (FFT)
Algorithm: JTransforms DoubleFFT_1D.
FFT Size: 4096 samples.
Detection: Searches for specific narrow-band frequency peaks typical of drone motors (within the 2kHz – 8kHz range, or user selected range).
3. GNSS (GPS) Jamming Detection
The app utilizes a multi-layered algorithm to detect GPS interference:
Scoring Model (Interference Points)
Points (0–10) are accumulated based on the following indicators:
Low C/N0 (+2 pts): Signal-to-noise ratio drops below the user-defined limit (default 18 dB-Hz).
Sudden Delta (+2 pts): Average power drops > 8dB within one second.
'Fix Lost (+2 pts): Satellite lock is lost or < 3 satellites are in use.
Multi-GNSS Drop (+2 pts): All active constellations (GPS, GLONASS, Galileo, Beidou) weaken simultaneously.
StdDev Deviation (+1 pt): Power variance between satellites decreases (a sign of noise injection).
Baseline Deviation (+2 pts): Current level deviates > 12dB from the learned background level.
Dynamic Baseline Mapping
Duration: Adjustable between 10 and 60 seconds.
Operation: Calculates the optimal ambient signal level during startup, preventing false alarms in areas with naturally poor coverage.
4. Alert and Integration Technologies
Bluetooth SPP: Sends an RF alert trigger to paired hardware (e.g., Arduino/ESP32) using the Serial Port Profile.
Rsyslog (RFC 5424): Supports both UDP and secure TLS logging. Allows importing TLS certificates (.crt) from the file system. Includes an automatic debug log for diagnostics.
SMTP or SendGrid API: Email delivery via secure SSL/TLS connection. Includes an automatic handshake debug log for diagnostics.
SMS Gateway: SmsManager integration including coordinates and a Google Maps link.
Play a selected alarm sound and/or vibrate the device.
Flash the camera LED (Strobe effect).
5. Data Management and Visualization
MPAndroidChart: Real-time LineChart and BarChart views for signal levels (C/N0) and interference scores.
Log Management: JSON-based storage in internal memory.
Clipboard Integration: All log data supports ClipData copying with a single touch.
Google Maps API: Enables instant navigation to the device's current location on the map.
6. User Interface (UI)
Dashboard: Dynamic status display (Mapping / Listening / WARNING).
Night Mode: AppCompatDelegate-based dark theme to preserve night vision and minimize light pollution.
Settings Segmentation: Split into "General" and "Alarm" modules for improved clarity and user experience.
Since Drone Sound Alert is a specialized hobbyist tool, it is distributed as an .apk file for manual installation (sideloading). Follow these steps to get it running on your Android device.
1. Download the Application
Download the installation package from the link below:
👉 Download Drone Sound Alert Application
Note: File is in a .zip format, use your phone's file manager to extract the .apk file first.
2. Enable "Install Unknown Apps"
For security, Android restricts installing apps from outside the Google Play Store by default. You need to grant permission to your browser or file manager:
Open Settings on your device.
Go to Apps (or Security).
Look for Special app access -> Install unknown apps.
Select the app you used to download the file (e.g., Chrome or Files/My Files).
Toggle the switch to Allow from this source
3. Install the APK
Open your File Manager app.
Navigate to your Downloads folder.
Tap on the DroneSoundAlert.apk file.
A prompt will appear asking if you want to install this application. Tap Install.
If "Play Protect" shows a warning, tap Install Anyway (this is common for custom-built hobbyist apps).
Grant Required Permissions
When you open the app for the first time, it will ask for several permissions necessary for its technical features:
Microphone: Required for acoustic drone detection.
Location: Required for GPS jamming monitoring and showing your position on the map.
Notifications: Required so the app can alert you while running in the background.
Please select "While using the app" or "Allow" for these prompts to ensure full functionality.
Ready to Use!
You can now start the detection from the main dashboard.
For best results: Ensure you are in a quiet environment outside urban noise.
Background Use: The app runs as a Foreground Service, meaning it will continue monitoring even if you lock your screen.
⚠️ Disclaimer: This app is provided for hobbyist use. Use it responsibly and according to local laws and regulations regarding privacy and radio frequency monitoring.
The source code is available at: https://github.com/123Remo/dronesoundalert
**Hobbyist Use Only:** This application is intended for hobbyist use in quiet environments outside urban areas. It is provided "as is", without warranty of any kind, express or implied.
**No Liability:** The developer is not responsible for any security failures, undetected drones, or interference caused by GNSS jamming.
**Compliance:** Users are responsible for complying with all local aviation, privacy, and radio frequency laws.
License
This project is licensed under the Source-available / non-commercial
Copyright (c) 2026 [123Remo]
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to use,
copy, modify, and distribute the Software, subject to the following conditions:
1. Non-Commercial Use Only
The Software may not be used for commercial purposes. This includes, but is
not limited to, selling the Software, sublicensing it for a fee, including it
in a paid product, or using it in a service that generates revenue.
2. Attribution
You must include the original copyright notice and this license in all copies
or substantial portions of the Software.
3. No Warranty
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
4. No Trademark Rights
This license does not grant permission to use the name, logo, or branding of
the author.
---
NOTE: This is NOT an open source license as defined by the Open Source Initiative (OSI).
Third-Party Attributions
This app uses several open-source libraries:
* [TensorFlow Lite](https://www.tensorflow.org/lite) (Apache 2.0)
* [MPAndroidChart](https://github.com/PhilJay/MPAndroidChart) (Apache 2.0)
* [JTransforms](https://github.com/wendykierp/JTransforms) (BSD-2-Clause)
* [Retrofit](https://square.github.io/retrofit/) (Apache 2.0)
* [Android-Mail](https://github.com/javaee/javamail) (CDDL/GPLv2)
You can send feedback to contact@dronesoundalert.com
If you find this project useful and would like to support its ongoing development, you are welcome to make a donation from PayPal icon below.