The device is actually quite complex and its design appears to be well thought through. Let's see what's inside...
Right after taking the cover off, we see the main board featuring:
CSR Bluetooth serial module close-up:
FPGA & DRAM close-up:
The opposite side of the board assembly features a GPS antenna and control buttons. Front horn sensor and laser sensor are visible on the left. Rear horn sensor is under the board in the top right corner.
There are actually 3 PCBs in the sandwich. Front and back detector horns are mounted on the middle board (blue). The opposite side of the main board features two Freescale/NXP Kinetis_L CPUs and a couple of serial flash chips (one with firmware that controls the FPGA and the other contains either FPGA firmware or Escort Defender database -- to be determined). The main CPU is MK20DX256VLQ10 (ARM Cortex-M4 @ 100MHz). The chip has almost no security features and it is easily accessible and customizable.
Main CPU close-up. Aux CPU is in the top-center of the picture. The two serial flash chips on the right store audio samples (25L6406) and antenna firmware (25L1606)
Five pieces of firmware are upgradeable in the device:
The main MQX firmware runs the following threads:
The Escort Detector Tools app lets you update detector firmware and perform Escort Defender database management functions. The tool itself is a rather heavy .net/C# application that communicates via SOAP with a service hosted at www.escortradar.com. A considerable amount of code in the tool is dedicated to covertly keeping track of sold detectors' serial numbers and their subsciption statuses as well as obfuscating web service communications. The number of hardcoded passwords, AES, and XTEA keys in the tool is in the dozens (let's not publish them here). Luckily, most, if not all obfuscations are pathetically easy to bypass.
Similarly to the Escort Detector Tools, Escort Live mobile app contains quite a bit of tracking code and collects location information and many other metrics from its users. That data, according to Escorts privacy policy, is retained forever and shared with marketers and others. By the way, if your Escort Live username happens to be "nbulatovic", you are out of luck. The app (at least the current Android version of it) has a kill switch that erases flash in your radar detector.
The BT protocol uses a fairly simple custom binary serial communications. It contains (again, easily bypassible) protection measures intended to restrict communications to only Escort-provided tools. Unfortunately, while Escort was spending time developing crazy bit-flipping and checksumming algorithms, they totally forgot to include any security features into their communication mechanism. This means that anybody within bluetooth range can pair and communicate with any Escort bluetooth-enabled device (which you can easily identify by their bluetooth address prefixes D8:76:0A and B0:B4:48). The BT protocol, by the way, contains flash erasing and updating functions. Bluetooth requests and responses use the following format:
F5 nn cc dd dd ... F5 is a start marker. All data packets start with it. The next byte (nn) is the lenght of the remander of the cata packet (following nn). cc is a command code. Detector suports about 50 commands (0x80..0xB4) dd is zero or more data bytesAs soon as you connect to the detector, it will send you a challenge that must be properly responded to in order to unlock further communications (challenge request looks like this: F5 0B A1 xx xx xx xx xx xx xx xx xx xx). The challenge/response mechanism uses two XTEA keys (one for detector and one for the client). You must re-encrypt and respond with a packet that the detector will then validate and allow other commands to be sent)
USB works similarly to Bluetooth. First, you must unlock comuications by requesting (via USB control transfer) an 8-byte challenge, encrypting it using the key derived from the detector's serial number, and sending the resose back (control transfer). Once unlocked, you can send requests (via USB bulk transfers) to the bootloader to write code shippets to the main CPU ram and execute them. Detector Tools downloads code snippets for your model of radar detector from escort's website. There is also a set of control transfer commands for setting device parameters, such as is serial number.
By our estimate, the total manufacturing cost of Escort Max 360 is approximately $150. After factoring in affiliate discounts and process expenses, it looks like Escort rakes in approximately $400 in profits from each Max 360 device sold.
Max360 is a great device and it is good at what it does. It could be much better though if Escort opened it a bit more. While the BT protocol is easy to reverse engineer, firmware customization without the source code is very limited. Open-sourcing the main firmware could allow Escort users to make the device infinitely more capable.