Mobile Network Geolocation: Obtaining the Cell IDs & the Signal Strength of Surrounding Towers From a GSM Modem & Triangulating Device Location

Mobile Network GeolocationTo perform basic triangulation of the client GSM device’s location, the GSM modem can be queried to return information about the towers in the area, including their unique Cell Ids, and the signal strength obtained from each.

Using this information, a circle can be drawn around each cell, with the circle size relative to the signal strength of each tower. The point where these circles intersect can be considered the client’s probable location.

Here we explore methods of communication with an internal GSM modem over a serial interface, some of the applicable Hayes or AT commands used to communicate with the hardware and how the information provided to us buy the modem can be used to determine the device’s location by triangulating it’s position against known cell tower locations.

Continue reading

Creating a Java Daemon (System Service) for Debian using Apache Commons Jsvc

Creating a Java Daemon for Debiandaemon is a computer program that runs as a background process, executing tasks on a predefined schedule or in response to particular events, or in response to requests for information or services from other programs.

To start up a Java program as a daemon using Jsvc, we’ll need to do a few things:

a) Implement the Apache Commons Daemon interface.

b) Install Jsvc by downloading and compiling the source (C) or via the command line with the sudo apt-get install jsvc command.

c) Create a bash shell script to launch the daemon and manage the basic set of daemon controls, namely: startstop restart. Others include reload status.

Continue reading