🇫🇷 

eNB Analytics

Location/identification of 4G/5G antennas and collection of logs

- Analysis via captured logs and MLS/OCID data
- Background log capture
- Radio monitoring
- Online logs share
- Export in NetMonster file format (logs)
- Export/share in CellTracker or CSV format (observations)

Android 8.0 minimum required.

Current release: - build

Play Store
Direct download  (local)
Direct download  (Google drive)
résultat d'une recherche avec eNB Analytics

Getting started


a. General information

The app generates for each eNB or gNB received an antenna location hypothesis based on the MLS data and the geolocated cells that you have captured. This hypothesis will be automatically recalculated as soon as there is new data: new cell captured, update of the position of a cell already received or MLS database updated.


b. Permissions

The application requires permissions Exact location and Phone call. Regarding the latter, it is actually permission READ_PHONE_STATE which is used to detect the number of SIM cards and their operator but also to detect 5G-NSA. This does not in any way give the possibility of making phone calls.

Starting with Android 13, permission for Notifications is also requested. It is highly recommended to accept it, because otherwise the notification will not appear while the app continues to run in the background and you risk forgetting about it!


c. Supported providers

■ France : Bouygues Telecom, Free, Orange, SFR, Manu'ia (SPT), Dauphin Télécom, Digicel, Free Caraïbe, GlobalTel, OPT Mobilis, Maoré Mobile, Vini (ONATI), Orange Caraïbes, Orange Réunion, Only (Outremer Télécom), PMT Vodafone, SPM Telecom, SRR, Telco OI, Viti, Zeop.
■ Monaco : Monaco Télécom.
■ Spain : Vodafone, Orange, Yoigo, Movistar.
■ Portugal : Vodafone, DIGI, NOS, MEO.
■ Others : can work in other countries if you produce and install the required databases yourself.


d. Databases

The application requires 3 different databases that can be generated by yourself in a specific format, making the application functional in your country/region for the provider(s) of your choice.

MLS and/or OpenCellId (optional)
The file should be named "MLS_MCC_‹MCC›.csv" where ‹MCC› represents the Mobile Country Code of your country which is 3-digit numbered. eg. 214 for Spain.
Each line must follow the format of an MLS/OCID export (comma-separated CSV). It must be generated using the grep command to limit the number of cells, otherwise the app will be significantly slowed down and will only contain LTE and NR cells.
Rule: one line per cell.
radio,MCC,MNC,TAC,Cell_ID,PCI,Longitude,Latitude,range,samples,1,created,updated,

Example of one line:
LTE,208,15,5909,104534845,375,2.8717006,50.1191406,15467,3844,1,1476514136,1703966408,

Cell Towers (required)
The file should be named "Towers_MCC_‹MCC›.csv" where ‹MCC› represents the Mobile Country Code of your country which is 3-digit numbered.
It must be a semicolon-separated CSV which must contain only one tower per line and per provider must respect the following format:

Sup_ID Adresse LAT LON Act Syst. 4G Activations 4G Syst. 5G Activations 5G PLMN Azimuths
443954 Cote de Delme 57590 XOCOURT 48.9119 6.36 1 1800,2600,2100 2018-07-17,2015-06-11, 3500 20815 0,120,240
99146 Casino Lisboa 38.7651 -9.1234 1 26803
Sup_ID : Unique support reference - Format INTEGER,
Address : tower name or address - Format TEXT UTF-8, without semicolon (;) and without double quote ("),
LAT : Latitude - Format REAL (-90.0 ... 90.0),
LON : Longitude - Format REAL (-180.0 ... 180.0),
Act : 0 if tower is inactive, 1 if emits minimally in LTE - Format INTEGER,
Syst. 4G : LTE system(s) (in MHz) on the tower - Format TEXT - [optional],
Activations 4G : LTE frequency activation dates - Format TEXT YYYY-MM-DD - [optional],
Syst. 5G : NR system(s) (in MHz) on the tower - Format TEXT - [optional],
Activations 5G : NR frequency activation dates - Format TEXT YYYY-MM-DD - [optional],
PLMN : MCC+MNC of the provider - Format INTEGER,
Azimuths : directions of the support antennas (in whole degrees and comma-separated) - Format TEXT - [optional]

Example of one line:
9587276;Rua Nova Lisboa, 2900-405;38.5374;-8.8927;1;;;;;26801;0,120,240

Existing database (optional but recommended)
If a database already exists, you can provide it to the application so that it can display the already identified eNBs (which will not prevent the application from doing its own analysis). The file should be named "NmEa_MCC_‹MCC›.ntm" where ‹MCC› represents the Mobile Country Code. The file essentially follows the NetMonster format (semicolon-separated CSV) but must contain only one row per eNB or gNB. The 4th column (CID) is not used and the 6th column must contain the eNB or gNB.
xG;MCC;MNC;‹unused›;TAC;eNB or gNB;PCI;Latitude;Longitude;tower name/address;

Example of one line:
4G;208;10;-1;46503;619608;28;48.8669;2.3501;215 R ST DENIS 75002 PARIS;

This database files must be put in the following directory (The directory tree is automatically created by the app on first launch; do not modify it!) :
/Android/data/fr.enb_analytics.enb4g/files/Databases/

Capture


As soon as the app is launched, cell capture begins, along with their geolocation; that is, for each recording, the GPS coordinates of the location where the signal reception was best are stored.

They are visible on the app's map as yellow markers. The idea is to capture as many as possible using the app during your various trips. The capture continues even if the app is in the background (the notification remains displayed).


The geolocated cells that you capture provide real added value by allowing you to identify a maximum number of sites, because not all of them are identifiable using the MLS database (lack of data, ambiguity, etc.).


To preserve battery life, the app automatically turns off GPS when the phone remains stationary for more than 30 seconds.

Analysis


The analysis screen is accessed via the Magnifying Glass icon available from the home screen, car/Discover modes for the eNB to which you are connected or via a cell in the Journal -> context menu -> Analyse eNB xxx.

Press the "+" button to access the different search methods available. If the result is correct, press the "Check" button to validate the identification. The different methods can be tested without fear: nothing happens until you save.

The "Magic Wand" button automatically tests the different search methods best suited to your situation.

The overflow menu open a dialog which permit, among others, to displau log infos, reset the map display, invalidate an identification or manage a bi-eNB support.

Note regarding dual-eNB supports: Some antennas transmit on two separate eNBs simultaneously. In this case, you should identify the first eNB in the traditional way. Then launch the analysis for the second eNB, and once the support is selected, go to the "3 dots" menu and select "Add as dual-eNB".


Interface d'anayse/identification de l'application eNB Analytics

Contribute


a. eNB Analytics project

You can upload your logs (cells) to our server. This data will be combined with the MLS & OCID databases. The number of identified antennas will then be greater and more reliable.
Simply go to the function Export/Share, Ensure that the "enb-analytics.fr" box is checked and then click the "cloud" button to send.

The most important data to share is the cell data. This is a basic ingredient that will be used for various processing steps. Identifications, on the other hand, should be prioritized for "difficult" towers that haven't been automatically identified. Processing them is complex (moderation, managing outdated antennas, etc.) and falls more under the purview of an indexing team; hence, they are not systematically taken into account.

The latest shared logs appear on this page. The data collected is not transmitted to third parties.

Exemple de contribution


b. Contribute whithout app ?

It's possible !

■ By feeding the OpenCellId database with the Tower Collector application. More details here.
Advantage: easy to implement,
Small drawback: the PCI is not returned in the available exports.


Backup / Data transfer


It is possible - and highly recommended - to recover data from the app to make a backup, a personal analysis or transfer it to another phone.
Concretely, there are 2 distinct things:
- cellules data (logs)
- lIdentifications

To do this, you need to go to the function Export/Share then via the submenu "Backup..." to do Export cells and Export identifications. This will generate files named ExportV5_xxxx_xxx.csv and Identifications_xxxx.csv (formerly Collection_xxx.csv) respectively.
The files are located in the folder /Android/data/fr.enb_analytics.enb4g/files/Exports. You can access them using the file explorer integrated into the app and then share them via Bluetooth or using a USB connection to a PC. Since Android 10, third-party applications no longer have access to the /Android/data/.. folder.

In the case of a transfer, it is then necessary :
- Copy the 2 files into the folder /Android/data/fr.enb_analytics.enb4g/files/  from the new phone,
- Go to the Journal function, tab Cells : menu > "Import cells" and then choose the file ExportV5_xxx.csv
- Function Journal, tab Identifications : menu > "Import Identifications" and then choose the file Identifications_xxx.csv

Remark: The 10 digits in the filenames correspond to a UNIX timestamp. When multiple exports are present, the most recent file will be the one with the highest number. The app displays the files in order, so the one at the bottom of the list will be the one to choose.


Advanced functions


a. TA traces

The app automatically records some measurements of the Timing Advance (TA), if available. This data is used to determine the distance between the phone and the antenna. It is possible to record additional points via the monitor when the data is displayed in blue: pressing it opens a menu with a recording option. It is possible to force the recording of points with the "Record TA tracks" option from the monitor menu, car mode and Local Map. Recording too many tracks can be counterproductive. For performance reasons, the app limits the analysis to the 40 most recent points per eNB.


TA points are displayed on the map as a blue dot with a number inside that corresponds to the TA value. Tapping on it displays a circle corresponding to the distance and which probably passes near the antenna in question.
If the circle often seems inconsistent, you will need to change the conversion unit in the app settings. By default, it is set to 1 TA = 78 meters. The setting 1 TA = 144 performs better on many phones.



If there are enough points, the app displays a colored "mapping" on the map that allows you to roughly locate the antenna.



b. Observations (Stumbler)

With the function EA Stumbler (to activate in the settings) l'appli permet d'enregistrer en continu des mesures radio tous les 70 mètres environ.
The map allows data to be displayed in different ways:
- Mozilla Stumbler (per default)
- Signal : affiche la force du signal
- e/gNB : one color per eNB or gNB
- e/gNB:CID : one color per cell
- Timing Advance : displays TA data

It is possible to filter by e/gNB, cell, TAC or PCI.

This data can be exported in CellTracker format or shared online to a custom server in MLS compatible format.

Remark: Data recorded by the EA Stumbler feature is not used by other features of the app.



d. External integration

The background service of the app can be driven from another app via Android intents:
fr.enb_analytics.enb4g.SERVICE_START   for starting,
fr.enb_analytics.enb4g.SERVICE_STOP   for stopping.



z. Known issues

- No radio data on Pixel 6/7 series and some Mediatek SoCs -> go to settings and change the "Radio Library" setting to "EA Telephony_NoCI". The downside of this setting is that background log capture will no longer work and the risk of inconsistencies is increased.