The Next Generation Android IMSI-Catcher Detector (AICD).
This is the AICD source-code repository, for the forward development branch of AIMSICDL. AICD is an extremely light weight re-implementation of the original AIMSICD design. It's code base is a complete re-write from the original, focusing on a minimalistic UI, functionality, ease of use and perhaps most importantly, portability/flexibility due to its modular design.
AICD collects and analyzes mobile radio data to make you aware of your mobile network security and to warn you about threats like fake base stations and IMSI-catchers, that are now commonly used by both criminals and various over-reaching government agencies. These are used for a range of purposes, from simple user-tracking (location and use) to various sophisticated network attacks such as phone interception, and direct device remote control, using over-the-air (OTA) updates and various Stagefright-like RCE vulnerabilities.
- Status: WIP
- Date:
2017-06-19
- All app functionality will be clearly and well documented
- All app functionality will be independently modularized (Data Collectors, Detection tests, Listeners, Services etc.)
- The app will have a bare-bone, ultra minimalistic structure and UI.
- Database will use SQLite3 with raw SQL queries only!
- Detection Tests will be based on SQL queries, unless otherwise necessary
- Detection Tests will be created independently without affecting rest of the code
- Detections are primarily instantaneous and secondarily retrospective
- Quality Assurance/Control for performance and correctness
- Minimum API support is 21 (Lollipop)
- Java 8
- AICD will offer partial support for non-rooted devices
- New Kotlin supported development
- No TABs, only 4 space tab-stops
- English only app UI (should be trivial)
- No RTL or i18 language support necessary
As few as possible!
❗- Kotlin (optional, if any)
HowTo: [WIP / TBA]
- Contribute (dev with skills)
- Contribute (dev as noob)
- File a useful bug report
- Build on AS (Linux)
- Run the app
- Collect LogCat debug info
- Post large/long debug outputs
- Deal with Detections
Useful GitHub Markdown Cheat-sheet
Installation of Android StudioHow to compile parser dependencies- Building and Signing the app (WIP)
Please please consult the Android documentation on how to set up the tools and perform a release build.
The following permissions are required to run SnoopSnitch:
[NEED UPDATE!]
ACCESS_SUPERUSER
: Open Qualcomm diagnosis interface to capture radio dataREAD_PHONE_STATE,
RECEIVE_SMS
: Generate mobile network traffic recorded in active testsGET_TASKS
: Retrieve state of helper processes interacting with diagnosis interfaceWAKE_LOCK
: Acquire CPU for long-running analysis stepsACCESS_FINE_LOCATION,
ACCESS_COARSE_LOCATION
: record location of IMSI catchers and security events if configuredINTERNET
: For performing connection tests and upload debug logs upon requestACCESS_NETWORK_STATE
: Postpone tests, up/downloads until network is available
In addition, the app require root privileges, which are only used to access the /dev/diag interface from which the baseband network information is read.
- Project Website: https://github.com/5GSD/AICDm/
- Public Git repository: https://github.com/5GSD/AICDm.git
- Mailing list: [TBA]
- Email: [email protected]
- PGP: 950B 7745 565A 4A48 1D66 D699 4923 6E35 27D8 F4E6
For all technical questions concerning the detection mechanism and its detailed functionality, please refer to our Wiki and FAQ pages. For development, maintenance and other security affairs, please us an email.
- Copyright (C) 2017 GPLv3 5GSD
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. See COPYING for details.
For the most recent list of bugs, please refer to the currently open GitHb issues.
For technical bugs, and limitations please refer to the GitHub Wiki article "Bugs and Limitations" (TBA).
EOF