ICdetection
June 10, 2026 · View on GitHub
Forensic Cellular Monitoring InterfaceICdetection is a local-first Android tool for cellular-network auditing, anomaly analysis, and real-time radio telemetry visualization.
|
|
ICdetection — Open-Source Cellular Security Auditor
ICdetection is an open-source Android application focused on cellular-network auditing, heuristic anomaly detection, radio telemetry analysis, forensic logging, and local historical baseline learning.
It is designed for privacy-conscious users, mobile security enthusiasts, researchers, forensic experimentation, cellular infrastructure auditing, and GrapheneOS / Pixel users interested in radio-layer visibility.
ICdetection attempts to identify suspicious cellular behavior potentially associated with:
- rogue base stations
- fake BTS deployments
- IMSI-catcher-like activity
- downgrade attempts
- abnormal reselection behavior
- suspicious topology inconsistencies
- cellular infrastructure impersonation patterns
The application operates from Android userland without requiring root or direct baseband access.
Important: ICdetection is not an IMSI-catcher proof tool. It is a local-first cellular anomaly auditor. Alerts should be interpreted as signals that the cellular environment deserves closer attention, not as definitive proof of surveillance or interception.
Project Status
ICdetection v2.0 is currently considered stable and feature-complete within the limits of Android userland telemetry.
The project is intentionally entering a data-collection and observation phase. During this period, future work will focus on:
- bug fixes
- field validation
- false-positive analysis
- exported CSV review
- small targeted corrections discovered in real-world usage
No new detection claims should be assumed until they are validated against real-world data.
Table of Contents
- Development Disclosure
- Project Philosophy
- Technical Limitations
- Device & Hardware Compatibility
- Detection Engine
- Statistical and Historical Hardening
- Temporal Confidence
- Battery Optimization
- Telemetry & Visualization
- Infrastructure Verification
- Privacy & Networking
- Forensic Logging
- False Positives
- Security & Threat Model
- Related Research & Inspiration
- License
- Acknowledgements
Development Disclosure
This project was developed using an AI-assisted workflow.
The lead developer (Alexis Gomez Rodriguez) designed and directed:
- heuristic logic
- detection architecture
- threat scoring behavior
- forensic telemetry workflow
- validation methodology
- anomaly correlation logic
- false-positive reduction strategy
- project direction and operational philosophy
AI assistance, including Gemini, Claude, ChatGPT and DeepSeek, was used for:
- Kotlin implementation support
- Android API integration
- architectural iteration
- debugging assistance
- refactoring support
- documentation support
The code was written with AI assistance, but the system design, detection approach, heuristic selection, false-positive tradeoffs, validation decisions, and project direction were manually reviewed and directed by the developer.
I do not claim to be a Kotlin, Android, or telecommunications expert. This project is the result of focused self-study, field testing, careful iteration, and AI-assisted development under my direction.
Every heuristic and detection decision in this project is something I aim to understand, explain, and defend honestly.
Project Philosophy
ICdetection does not claim to provide definitive IMSI-catcher detection.
Instead, the application follows a probabilistic forensic approach based on:
- heuristic correlation
- anomaly scoring
- infrastructure consistency validation
- timing analysis
- local telemetry verification
- behavioral pattern analysis
- historical baseline learning
The primary goal is to provide visibility, anomaly awareness, forensic logging, infrastructure auditing, radio telemetry analysis, and local evidence for later review within the technical limits imposed by Android.
Technical Limitations
Modern Android devices do not expose the complete cellular protocol stack to third-party applications.
This means ICdetection cannot directly access:
- complete RRC signaling
- NAS messages
- full modem telemetry
- low-level baseband internals
- complete LTE/5G control-plane traffic
- cryptographic session details
- all identity-request events
- all ciphering state transitions
As a result, detection is heuristic in nature and should never be interpreted as definitive proof of surveillance or interception.
Sophisticated LTE/5G interception systems may emulate legitimate carrier infrastructure and remain difficult, or impossible, to distinguish from real towers using Android-only telemetry.
Device & Hardware Compatibility
ICdetection relies heavily on Android radio callbacks and telephony APIs. Hardware, firmware, modem implementation, Android version, and vendor HAL behavior significantly affect telemetry quality.
Recommended Environment
Google Pixel devices running:
- stock Android
- GrapheneOS
- near-AOSP Android environments
generally provide cleaner and more consistent Android telephony behavior than heavily customized OEM builds.
Advanced radio-security signals such as ciphering state, identifier disclosure events, or modem-level security callbacks remain highly dependent on:
- Android version
- modem firmware
- vendor HAL support
- exposed Android APIs
- required system permissions
- device-specific implementation details
If these signals are not exposed by the device, ICdetection marks or treats them as unavailable rather than assuming they are safe.
OEM Firmware Limitations
Manufacturers using heavily customized Android stacks, such as OneUI, MIUI, EMUI and similar systems, may modify or restrict radio HAL behavior.
This may:
- obfuscate radio metrics
- suppress Timing Advance visibility
- hide or alter signal-quality values
- limit telephony callback consistency
- prevent access to ciphering or identifier-disclosure information
The application may still function normally on these devices, but some advanced heuristics can become partially degraded or unavailable.
Android Support
- Android 14+: best practical support currently available in Android userland.
- Android 12 / 13: supported in heuristic-analysis mode.
- Android 10 / 11: may work depending on device telemetry support, but advanced behavior can be limited.
Detection Engine
ICdetection continuously performs multi-layer heuristic analysis during cell reselections, handovers, signal transitions, topology changes, mobility events, and observed changes in local radio behavior.
Current analysis layers include:
Isolated Cell Detection
Detects serving cells operating without coherent neighboring infrastructure. This can be useful against amateur rogue BTS deployments or isolated SDR configurations, but it can also occur in rural areas or unusual coverage environments.
Signal Dominance Analysis
Detects abnormal signal dominance deltas between the serving cell and neighboring cells, potentially indicating forced camping behavior. This is environment-sensitive and is softened in sparse or rural contexts to reduce false positives.
MCC Consistency Validation
Detects Mobile Country Code inconsistencies between nearby cells. This is a strong anomaly when observed in normal non-border environments, but still requires contextual interpretation.
Multi-MNC Density Analysis
Flags environments containing unusually high operator-code diversity. This is treated as weak evidence because MVNOs, roaming, transport hubs, and border regions can produce legitimate diversity.
TAC Regional Consistency
Validates Tracking Area Code coherence against surrounding infrastructure. TAC deviations can be meaningful, but operator maintenance and regional network changes can also produce unusual values.
Timing Advance Geometric Analysis
Attempts to correlate physical distance estimation using Timing Advance telemetry and tower-position validation when enough data is available. This is highly device-dependent and may be unavailable or unreliable on some hardware.
Ghost Neighbor Detection
Detects cases where the serving cell is very strong while all visible neighboring cells are extremely weak. This may indicate an artificially controlled RF environment, but can also occur in difficult radio conditions.
ARFCN / Frequency Sanity Validation
Performs frequency sanity checks against expected radio ranges and technology-specific limits. This is mostly a guard against impossible or malformed radio values, not a complete regional spectrum validator.
Ciphering Integrity Monitoring
ICdetection v2.0 does not claim direct null-cipher or IMSI-disclosure detection on standard Android installs.
Ciphering state is reported as unavailable unless the operating system exposes a supported and accessible signal. If the device does not expose this information, ICdetection treats it as N/A rather than PASSED or FAILED. It does not assume the network is safe simply because ciphering information cannot be read.
Anti Ping-Pong Analysis
Detects aggressive reselection loops and repetitive handover behavior while applying mobility-aware filtering to reduce false positives during vehicular movement.
Geographic Consistency Analysis
Validates Cell IDs against a local GPS-based historical database built from previous observations.
This can detect cases where the same Cell ID appears from physically inconsistent locations over time, which may be consistent with mobile rogue infrastructure cloning legitimate tower identifiers.
Because it is anchored to the device's own location history, this heuristic does not rely on public tower databases. Its scope is limited to cells for which prior history and a valid location fix already exist.
Signal Baseline Anomaly
Learns each cell's typical signal level at a given location from the device's own historical observations, then flags readings that are anomalously strong compared to that learned baseline.
A nearby transmitter impersonating a cell that is normally weaker at that location may appear far stronger than its own history.
Only the "stronger than usual" direction is treated as suspicious, since weaker-than-usual readings are commonly caused by obstruction, distance, congestion, or environmental changes.
Intra-LTE Band Downgrade Analysis
Detects suspicious shifts from high-frequency capacity bands to lower-frequency sub-GHz bands when the previous signal was strong and there is no evidence of progressive signal degradation.
This can be consistent with forced camping or rogue-cell behavior, but it is not treated as proof by itself.
RF Identity Stability Analysis
Inspects the device's own historical record for a given cell identity and flags cases where that identity has recently alternated between multiple persistent PCI values.
This can be consistent with a clone reusing a legitimate Cell ID with a different physical-layer identity. It complements geographic consistency because it can fire while the user is stationary.
The heuristic is intentionally conservative: a PCI is only treated as a genuine alternate identity when it appears repeatedly, represents a meaningful share of observations, and is still present within a recent time window.
Field testing showed that ARFCN is not reliable enough for this identity-stability decision because carrier aggregation can cause serving-cell ARFCN values to appear inconsistent. Therefore this heuristic deliberately focuses on PCI.
RF Quality Fingerprint
Complementing the signal-power baseline, the engine can learn each cell's signal-quality signature using RSRQ and SINR.
Because RSRQ and SINR are noisy, this check is deliberately strict. It requires many samples and a large deviation in both metrics simultaneously. It remains dormant until enough history accumulates.
Statistical and Historical Hardening
Beyond individual heuristics, the engine refines the quality of its evidence using the device's own accumulated history. These layers are fully offline and conservative by design.
Percentile-Based Baseline
In addition to mean and standard deviation, the per-cell power baseline stores high-percentile historical values. With sufficient samples, an anomaly must exceed the cell's own high historical range, making the check more robust against non-normal distributions and occasional legitimate strong readings.
Cell Reputation
Each cell earns a trust score derived from local history: observation volume, observations across distinct days, and the proportion of clean past scores.
This trust is used only to dampen the weight of noisy instantaneous heuristics on well-established cells. It never increases suspicion and does not suppress physics-anchored evidence such as geographic inconsistency, MCC mismatch, ciphering failure, or RF identity instability.
Context-Aware Scoring
Some heuristics are environment-sensitive. A strong isolated cell is much more suspicious in dense urban conditions than in a rural coverage area. ICdetection softens these weak signals based on neighbor density and local cell reputation.
Bayesian Threat Probability
The app includes a Bayesian-inspired scorer that estimates threat probability from failed heuristics. Correlated evidence groups are handled conservatively so that multiple symptoms of the same physical phenomenon do not inflate the result unfairly.
The values are expert-derived estimates, not scientifically measured likelihood ratios. They are used as a structured way to reason about uncertainty, not as a claim of mathematical certainty.
Temporal Confidence
Anomalies must persist across multiple analysis cycles before triggering a confirmed threat alert.
Transient heuristic failures are logged but do not immediately raise confirmed alarms. This reduces false-positive fatigue in dynamic RF environments and makes the app more useful during daily use.
Battery Optimization
ICdetection requires unoptimized battery settings to ensure reliable long-running monitoring.
The application runs a continuous foreground service that scans cells, registers telephony callbacks, and manages location fixes. Android battery optimization mechanisms such as Doze and App Standby may throttle this behavior when the phone is idle with the screen off.
Recommended setting:
Settings -> Apps -> ICdetection -> Battery -> Battery optimization -> Don't optimize
The app may guide the user toward the relevant settings screen, but the final exception grant is controlled by Android and the user.
Telemetry & Visualization
Forensic Terminal
Structured event-driven logging designed to preserve meaningful security and radio events while minimizing noisy output.
Real-Time Signal Graphs
Continuous signal visualization with contextual heuristic overlays.
Timing Advance Visualization
Timing Advance visualization for distance-behavior analysis when TA is exposed by the device.
Threat Scoring Engine
Dynamic multi-factor anomaly scoring with contextual correlation.
Persistent Telemetry History
Session-aware logging and local infrastructure observation tracking.
Infrastructure Verification
ICdetection can optionally cross-reference observed infrastructure using:
- OpenCellID
- WiGLE
These services are used to compare observed cells against publicly known crowdsourced databases.
Public tower databases are:
- incomplete
- community-maintained
- occasionally outdated
- uneven across regions and operators
A "not found" result does not imply malicious infrastructure.
External requests are only made when the user configures and enables infrastructure verification APIs.
Privacy & Networking
Local-First Design
The application follows a local-first privacy philosophy.
By default:
- no cloud synchronization exists
- no analytics are collected
- no advertising SDKs are included
- no hidden telemetry exists
- no user tracking exists
All historical telemetry is stored locally on the device unless the user explicitly exports it.
Optional SOCKS5 Routing
ICdetection supports optional SOCKS5 proxy routing for infrastructure-verification requests, including Tor / Orbot-style local proxy setups.
Forensic Logging
SQLite Event Storage
Telemetry and forensic events are stored locally on-device in SQLite.
CSV Export
CSV export is available for:
- external analysis
- mapping
- reporting
- research
- archival workflows
Exports may contain sensitive location and cellular metadata. Users should treat exported files as private forensic material.
False Positives
False positives are possible and expected.
Legitimate situations that may trigger heuristic alerts include:
- carrier maintenance
- roaming environments
- dense urban deployments
- indoor DAS systems
- femtocells
- NSA / 5G transitions
- temporary spectrum reconfiguration
- rural coverage gaps
- public transport routes
- tunnels, basements, elevators, and parking garages
- vendor-specific Android radio behavior
ICdetection should be interpreted as a forensic auditing tool, telemetry analyzer, anomaly detector, and local evidence collector, not as definitive proof of surveillance activity.
Security & Threat Model
ICdetection is primarily useful against:
- amateur rogue BTS deployments
- poorly configured SDR towers
- simple fake base stations
- aggressive downgrade attempts
- abnormal cellular behavior
- topology inconsistencies
- unstable Cell ID / PCI behavior
The application is less reliable against:
- sophisticated LTE/5G interception platforms
- carrier-grade rogue infrastructure
- systems that accurately emulate legitimate network parameters
- attacks that do not expose anomalies through Android APIs
- lawful intercept or surveillance occurring inside operator infrastructure
These limitations are inherent to Android userland restrictions.
Related Research & Inspiration
This project was inspired by public research involving:
- LTE security
- IMSI-catcher detection
- SDR rogue BTS analysis
- Android telephony limitations
- cellular anomaly detection
- radio-layer privacy research
Relevant public projects and research areas include:
- SnoopSnitch
- AIMSICD
- LTEInspector
- OWL
- academic LTE-security research
- SDR-based rogue BTS experimentation
License
Licensed under the GNU General Public License v3.0 (GPL-3.0).
You are free to:
- use
- study
- modify
- redistribute
- audit
the software under GPL terms.
Derivative works must remain open-source under GPL-compatible licensing.
Acknowledgements
Thank you to everyone who has followed the project through its many iterations.
ICdetection is now considered stable and feature-complete within the boundaries of what Android userland allows without root or direct baseband access.
Future updates will focus on bug fixes, field validation, false-positive analysis, and minor improvements discovered through real-world usage.
This is the first Android application I have ever built, and I put a lot of care into it.
I do not have formal telecommunications or Android-development training. This project is the result of focused self-study, field testing, and AI-assisted development under my direction. I designed the detection approach, selected and rejected heuristics, reviewed the logic, tested behavior in real conditions, and made the project decisions while AI tools helped with Kotlin/Android implementation.
If you have questions, find mistakes, or run into issues, please open an issue. I will review it honestly and fix what I can.
The current version is stable/frozen while I take a break and collect real-world data over the next few months. Future improvements will be based on observed behavior, false positives, and field data rather than adding features for their own sake.
Best regards,
Alexis
Carpe diem.