5gsd / aicdm Goto Github PK
View Code? Open in Web Editor NEWAICDL collector services and modules
AICDL collector services and modules
Why does this require root, the previous version did not need this?
This thread is for developer commitments (only)!
If you are available to help contributing to the NG AICD development, please add a short comment below and what parts of the app you think you could or would like to contribute to.
Here is a short (incomplete) list of app areas to which we need contributors.
Functionality:
fix app permissions requests
fix and separate SignalStrengths and PhoneState listener functions
app background Services (main controller, RfApi, GPS)
Create data bundle handler for the collector services (to push data from listeners to DB handler)
Create the main analyzer loop thread, that iterate through all Detection Tests
Create DTn
test template
dt
(delta-t) for the time it takes to process the detectionCreate run test/submit function to be used in analyzer loop:
RunDT(Int n);
String error, Int score, Boolean isAttack, Real TS, Real dt
)IF (error=="ok"){...} else {Log.e(TAG, ":DT%n: FAILED with Error: " + error, n);}
SQL:
NOTE: This will be based on raw (Sqlite3) SQL queries only.
No external libraries or pre-fabricated Java plug-ins.
UI:
app controller/settings activity (cleanup of: saving settings, buttons, text)
app detailed info activity (from AIMSICD) showing:
add DB viewer (from AIMSICD) for:
EventLog
SmsData
, BtsLoc
, DBi_phy
MAP:
add map activity from AIMSICD to be accessible from Setting Activity:
add map only, no points
add map points from DBi_ext
(import) from local camera (bounding box), no logic, just points
add BTS point color-codes using DBe_ext
add long press on map, to add that location to the BtsLoc
DB table.
add long press pop-up to select:
Delete
: to delete the pointMove
: to move the point to new locationSector Count: 0,1,2,3,4
: to give a visible estimate of the number of sectorsThis is the current Database design structure (ER diagram).
UPDATES:
DBe_import
will be renamed to DBe_ext
for externally imported or created data.EvenLog
fields: LAC, CID, PSC, gpsd_*
will be replaced by Dbi_vol.id
.SmsData
fields: rat, lac, cid, gpsd_*
will be replaced by Dbi_vol.id
.defaultlocation
table, will be renamed DefLoc
.Here we propose show an idea of how we see the files and directories are organized and connected.
Eventually, there will also be a one-line description of each.
If you have suggestions for new items or a different structure, please post them below.
NOTE:
/collectors/
RfApi.java
GPS.java
/defend/
/detect/
DT1.java --
DT2.java --
...
DTn.java -- Empty Template
/map/
AddBts
/services/
./main/Analyzer.java
./sms/
./sim/
./ss7/
/ui/
./activities/
./drawer/
./fragments/
./widget/
/utils/
./anneal/
Logger
Main
Settings
This thread is for proposing new FAQ's.
Please focus on specific questions pertaining to development.
(Avoid general general about what it does and what's LTE etc.)
As this issue progress, they will be added to our Wiki.
Q: What detection methods do you plan to use?
A: The detection methods will essentially be the same as previous project,
but with the greatest difference that they will actually work and be much
easier to implement and understand. The reason for this is that each
detection test (DT-n
) will be made as a separate "module" and thus
free-standing. That way it is very easy to implement and test and will
not affect other modules. In addition, it allows us to work in parallel
on several tests and can implement pretty much any method we want. We
are open also for new ideas, not already covered. To be able to make
this happen we have changed the DB structure. Here you can find:
Q: How are the detections performed?
A: The collector
services continuously populate the DB with network measurements.
These measurements are then queried directly by SQL statements inside each test
module, called DT-1
, DT-2
to DT-n
. Where n is the number of each test.
The results of each query is then used in the analyzer loop and given a detection
score. When the sum of all scores reach a threshold a detection flag raised. That
is, one of the colored antenna symbols are shown as an alert.
Q: How can I help implement a new detection?
A: You first check that the detection doesn't already exist in our
Detection Table list.
If it does exists, you check it's status and related issues and join
the discussion from there, if you have something important to add.
If it does not exists, you first create a new issue
labeled Detection: <what it does>
. Here you try to describe in as much
detail you can, how the test works and how it helps detect fake base
stations. You can be as technical as you like, but try to be pedagogic
to allow other programmer understand how it work. Then, unless the test
is of trivial nature (which is very unlikely) we want you to accompany
the issue OP with a picture of a flow-chart describing the test you
propose. Once, we are all confident it will work..
You clone the repo, and under the /detect/
directory, you copy the file
called DT-n_template.java
to DT-n.java
. Then you go to the analyzer and
add your new test to the test loop, labeled ADD NEW Detection Tests HERE
.
Of course you need to check and make sure the n
you choose doesn't already
exist in our Detection Table. Once you feel this is working, you make
sure you have thoroughly documented the detection, and preferably accompanied
it with a flow chart picture. Once you got this, you make a PR with your new
code and wait for our wetting and test team to accept or reject the new test.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.