Aller au contenu
View in the app

A better way to browse. Learn more.

Forum Automobile Propre

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

API non officielle :)

Featured Replies

Posté(é)

Hello,

 

Après avoir pesté contre l'appli officielle iRemote qui prends ses 10 heures (ok j'abuse) pour charger les 5 information, je suis tombé sur le blog d'un gars qui a vais une étude de la discussion entre l'appli et les serveurs BMWi3.

 

Dommage que BMW n'ai pas laissé ouvert officiellement leur "hack the drive". Mais ca permet de faire des choses intéressantes comme :

Connection   : CONNECTED
Charge       : FINISHED_FULLY_CHARGED
updateReason : CHARGING_DONE
Dernière utilisation : 5km
Temps d'utilisation  : 9min
Vitesse moyenne      : 33.34km/h
Batterie  : 100%
Km restant: 103km
Essence   : 7.5L (83%) max 9L
Total km  : 3762

 

Attention pour utiliser ce code il faut savoir récupérer les clefs de l'appli iRemote (laissé comme un exercice, mais non je n'aiderais pas là dessus).

 

Tout est sur : https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/

  • 2 semaines plus tard...
Posté(é)

Super

je vais enfin pouvoir avoir plus de 3 programmation de mise en route du chauffage.

Posté(é)

bonjour . tu fais comment pour avoir l explication en français je comprends mieux...merci

Posté(é)
  • Auteur

@ninou:

1) il te faut un langage python sur une machine (linux, os x, sous windows peut-être - mais j'ai pas de windows)

2) il te faut récupérer via

- soit une décompilation de l'app iRemote

- soit via un Man In the Middle de ton choix (pour récupérer le traffic https en clair)

L'entête http : "Authorization: Basic a2V5OnNlY3JldA==" qui est utilisée lors de l'authentification (avec ton mail et mdp)

Après tu remplis ton fichier crédentials.json et tu peux jouer avec le code python.

 

Si tu sais developper en python tu peux y arriver avec le code, mais il faut savoir les choses suivantes :

 

1- l'authentification se fait via un oauth classic + l'header authorization basic ci-dessus

2- une fois que tu as récupéré ton token tu peux browser les json et faire ce qui est décris ci-dessus.

 

Par contre comme toute rétro-ingénierie d'application tu peux avoir des "soucis" :

- ne pas faire le bourrin au niveau des serveurs de bmw sinon tout le monde vas en pâtir

- il y a d'autres subtilité de protection que BMW aurais pu utiliser pour éviter ce genre de choses qui peuvent être mise en place.... (je ne vais pas les citer car j'ai pas envie de donner des idées à BMW).

Posté(é)

Bon ca fonctionne, non sans mal

 

mais je n'arrive pas à virer les warning suivants:

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.

SNIMissingWarning

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.

 

Vous avez aussi le problème ?

Posté(é)

ok merci , je vais voir pour mettre à jour

 

mais je n'arrive pas à faire de post en python (je suis nul dans ce langage) ... je voudrais pouvoir déclencher le chauffage.

Quelqu'un aurait fait un petit bout de code ?

Posté(é)

Faut il être informaticien pour conduire ou être propriétaire d'une i3 ?…

Account

Navigation

Rechercher

Rechercher

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.