Welcome to OP25
World's Cheapest P25 Receiver
Balint has done some excellent work to get the $20USD Realtek RTL2832 DVB-T stick working with GNURadio. Take a look at the video to see him use the Realtek receiver together with OP25 to get the cheapest APCO P25 receiver (with DES-OFB support) you're ever likely to find. You should also check out the RTL SDR page for more info.
Check out the new presentations page
We have added a new presentation page to collect some of OP25-related presentations, talks and stuff we've done at RUXCON and elsewhere.
OP25 is a not-for-profit project to bring together folks that are interested in implementing APCO P25 using a software-defined radio. Our goal is to build a software-defined analyzer for APCO P25 signals that is available under the GNU Public License (GPL).
APCO Project 25 is the digital communications standard used by many police and emergency services throughout the world. Most notably the US, Canada and Australia deploy systems based on P25. Compared to existing analogue systems P25 offers improved spectrum use, coverage and flexibility. Provision is made to ensure the confidentiality of traffic, to allow the use of trunking and the provision of data in addition to voice services.
Hardware scanners such as the Uniden BCD996T offer APCO P25 functionality but software-defined radio (SDR) offers significantly improved flexibility. For example, software radio approaches can receive many channels at once, handle both voice and data (including the trunking control channel), decrypt encrypted traffic when the key is known and log traffic to disk for later analysis. With the right software an SDR is a powerful analysis tool for debugging and monitoring of P25 networks.
That's the sales message. The reality is software-defined radio isn't yet as simple as the plug-and-play of hardware radios. You will need a lot of patience and a fair amount of software skills to get working. To get an idea of the work involved you can check outHardware for Your Software Radio By Stephen Cass. In that sense this really is an amateur radio project and requires the same kind of skill and dedication but we've a few people who will help out if you run into trouble. A project like this needs many different skills so even if you're not technical you maybe able to help in other ways.
A short video that demonstrates OP25 transmitting audio from a PC's microphone input, then to a USRP being received by a GRE scanner is available on Youtube.
From here we have a number of tasks that immediately suggest themselves. In increasing order of difficulty these are:
Understand P25, the physical layer and the messages being passed over the air. Implement a decoder which takes P25 signals and produces a message stream. Extend the WireShark sniffer to allow sniffing of P25 message. Analyzing the various security issues and demonstrating the insecurity of P25 systems. Implement an IMBE decoder to recover voice traffic. Provide a practical logging service for P25 monitors. Incorporate the use of both the C4FM demodulator and the "CQPSK" demodulator. P25 Trunking support - capture, track, and log traffic on a P25 trunked radio system. Re-engineering and re-factoring to support GNURadio 3.7 and later. Support for newer P25 Phase 2/TDMA systems(a receiver is implemented, as of March 2015)
- Create instructions for a "live CD" based OP25 instance running on GNUradio LiveCD (Ubuntu 14.04 LTS)
- Locate and track the locations of P25 mobile stations.
- Expose OP25 receive and transmit functionality to GRC via new hier blocks and XML
- Add P25 Phase 2 Tx support
- Add trunking transmit and receive to simulate a live P25 trunking system
- Add DES-OFB decryption support
- Add AES-256 decryption support
- Add RC4 (a.k.a. Motorola ADP) decryption support
- Investigate use of FPGAs, GPUs and CPUs for DES and ADP key recovery
- Port from WX to the new Qt GUI to allow for continued compatibility with future GNUradio versions
As all Wiki pages, this page is editable so these ideas are not fixed in stone. Developers can simply click on the "Edit this page" link at the bottom of the page (although it is worth familiarizing oneself with Wiki formatting beforehand).
Please realise that this is developmental software and it does take a fair degree of skill and understanding of hardware and software development under Linux to get it working. The mailing list op25-dev is there to help people that try to help themselves.
- Hardware -- The recommended hardware for this project.
- Software -- An overview of the project software.
- Install instructions -- How to install the current version of OP25.
- Decoder -- A GNURadio program that turns a P25 signal into an audio and message stream.
- Patching WireShark -- Patches to WireShark that allow for the sniffing of P25 traffic.
- Signal Scope -- Application for exploring signals.
- Repeater -- Repeater.
- Debugging -- Debugging GNU Radio Segmentation Faults
- P25 in UDP -- A protocol for transporting P25 frames over UDP
- Old build instructions page -- Obsolete page for instructions on building older OP25 version from SVN.
- Samples -- User-collected samples of P25 signals.
- Papers -- Papers relating to OP25.
- Presentations -- some videos, talks and interviews about OP25.
- FAQ -- Frequently asked questions and answers.
- op25-dev -- elist for the project.
- Project25 -- elist discussion forum for APCO Project 25 and related technologies.
OP25 depends on a number of free software projects:
- GNU Radio A framework for digital signal processing and software radio.
- Radio Rausch FSK4 demodulator A 4-level FSK demodulator from which our demodulator is derived.
A similar project has been undertaken by Project 54 at UNH
License for Wiki Contents
All wiki contents are provided under the terms of the Creative Commons Attribution-ShareAlike 3.0 license. Authors that wish to contribute to our wiki expressly agree that their contributions can be re-distributed on these terms. Redistributors must credit the OP25 project as the original source of any re-distributed material.