Ever since I purchased my 2017 Ford Escape and found out there was an app that let me control it from my phone... I have been wanting to figure out how to control it with my computer. It is just the way I am, I want to automate and control my world from my laptop or phone whenever and wherever I may be. This is the story of how I figured out how to control and track my Ford Escape with my computer.
A few months ago I found a piece of software called mitmproxy. It allows you to intercept traffic between a device and whatever on the internet it is communicating with. This is not a tutorial on how to use that software there are plenty of good ones out there including the docs from the project itself. After setting it up on my laptop and installing a certificate and proxy on my phone, I was able to intercept and decrypt all the traffic the FordPass iOS application was sending to Ford's backend services.
After recording all the app traffic, I set out to make something that would let me control my vehicle. So I created ffpass - a small command line application that lets me issue commands to my vehicle and check a bunch of information about it... like the fuel level, the milege, and the GPS location. Now I have turned that into an NPM module by the same name ffpass. This package will allow anyone to add the functionality to their applications for controlling a FordPass enabled vehicle.
There is documentation in the Readme file in the repo on how to use both. I am including a link to a repo that uses this code for a novel purpose. It is called VehicleTracker. It uses ffpass to track a vehicle and alters a user in Telegram when the vehicle leaves a predefined area.