Giter Club home page Giter Club logo

gm-onstar-probe's Introduction

gm-onstar-probe

Remote Start Script for GM/OnStar vehicles. Needs credentials for a working OnStar account (working mobile iOS/Android app). Tested with 2014 Chevy Volt

To get it working, populate the placeholder variables at the top (device_id, username, password, pin, vin_number)

Please share credit if used elsewhere - reverse engineering this was non-trivial.

NOTES:

  • I am not responsible if you get your OnStar account banned for whatever unforseen reason.
  • Nonce algorithm is loosely based on reverse engineered Android app for compatibility - no crypto lectures plz.
  • The oauth handshake seems to fail periodically for no obvious reason with an "invalid_request" response - this is not handled by the script and will cause it to crash. Perhaps due to a rate-limiting function. Be smart and don't use this frivolously. Will investigate, but no promises.
  • Works great with OpenHAB Exec binding - tell Alexa to remote start your car!

Python stuff:

  • Tested with latest Python 2.7.x.
  • Libraries: jwcrypto, requests

Usage:

  • pip install jwcrypto and requests
  • Edit variables on line 19-24 with your onstar creds
  • Execute with Python and watch for successful output stating remote start in progress.
  • If you get an error for invalid client id or bad key, check back here and get a new version. GM Probably revoked the keys from the old app. I usually catch this within a week or two and post updates. Happens once every 6-8 months.

Changelog:

June 24, 2018 - Updated with new client IDs and JWT signing key. Old ones are not working any more.

Dec 6, 2018 - Updated with new client IDs and JWT signing key. Old ones are not working any more.

Aug 5, 2019 - Updated with new client IDs and JWT signing key. Old ones are not working any more. Thanks @sradner13

gm-onstar-probe's People

Contributors

mikenemat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gm-onstar-probe's Issues

Client not recognise anymore

Hi,
The gm-onstar-probe does not seams to work anymore. When I use the script, I get this error:

RESPONSE_AUTH 400: {"error":"invalid_client"}

I assume that the client_id is not valid anymore.

Other API Functions

has anyone mapped the other API functions? Lock/Unlock, Vehicle Status, Location?

Don't need to know VIN

First... thank you for this. I'm a C# developer who reverse engineered most of the protocol a couple of years ago but got stuck with the secret key, thank you for finding it!

Plugged it into my old code, and sure enough from my username, password & PIN I can start my car :)

One improvement you could make, is to a GET on https://api.gm.com/api/v1/account/vehicles as it will return a list of your vehicles, rather than requiring you to know the VIN up front.

Also, I do not believe triggering commands/connect is needed in order to start the vehicle, though that is a common step in the app.

How to refresh keys?

"Updated with new client IDs and JWT signing key" <-- How did you derive these? Open to chatting offline as well, but really want to understand where these come from and how to refresh them should the need arise. Love this project!

Python 3.8

Works fine in Python 2.7 but support for that will cease in Jan 2020 so I am seeing.

Doesnt work in 3.7 or 3.8. Errors out with syntax for print needing parenthesis and the crypto crashes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.