Récupérer le token et l’encryptor de ses appareils Xiaomi avec Mi Home Vevs

Nous allons voir ici comment récupérer les précieux sésames de nos appareils Xiaomi qui sont le token et l’encryptor.

Cette méthode s’adapte seulement sur du matériel Android.

Mi Home VEVS.

Qu’est-ce que Mi Home Vevs ?

Mi Home Vevs est une application Mi Home modifiée, par une équipe russe, présente sur Home Assistant, permettant de pouvoir mettre n’importe quels appareils sur n’importe quels serveurs Xiaomi. En gros le matériel Xiaomi destiné à la chine peut marcher sur les serveurs France, cela veut dire qu’il y a moins de latence lors de la connexion des équipements.

Elle permet aussi, dans notre cas, de récupérer les clés encryptor, les tokens, etc etc.

NOTA : Si vous n’avez pas confiance vous pouvez créer un compte Mi Home bidon, que vous connectez à une tablette ou smartphone qui ne vous sert plus.

Récupérer et installer l’application.

Pour commencer, il faut récupérer la version modifiée de Mi Home sur le site Officiel (En permanence à jour) ou sur le Google Drive (peut ne pas être la dernière version).

Une fois récupérée il faudra désinstaller votre application existante (et sûrement perdre vos automatisations créer sur Mi Home) puis installer la nouvelle.

NOTA : Si vous l’installez sur un autre appareil, pas besoin de supprimer votre application.

Une fois installée,

  • Ouvrez l’application
  • Connectez vous
  • Supprimer les capteurs dont vous voulez récupérer l’encryptor (car c’est à l’appairage que l’encryptor est échangé).

Allez maintenant dans votre application de gestion de fichiers préférée. (Gestionnaire de fichiers + ou ES Explorer par exemple).
Allez à la racine de votre stockage puis créer à la racine, un dossier vevs. A l’intérieur créer un dossier logs.

Retournez dans Mi Home Vevs puis ajoutez votre capteur.

Une fois votre capteur ajouté, retournez dans votre gestionnaire de fichier puis dans le dossier logs, misc , il doit y avoir un fichier devices.txt.

Vous avez toutes les informations de vos devices comme l’adresse MAC, le token et le “Bindkey” (encryptor) à l’intérieur.

Infos encryptor

NOTA : Faites-les un par un, cela vous permettra de récupérer les adresses MAC de vos capteurs.

Conclusion

Voila.

Vous pouvez garder cette application au lieu de remettre l’officielle, il faudra simplement lors des mises à jour, retourner sur le site pour télécharger la dernière version et l’installer, mais cette fois vous ne perdrez pas vos automatisations créées avec Mi Home Vevs.

To Do List

  • Ajout méthode Apple.

Mise A Jour

  • *04/12/2020 V1 Création @McFly
4 « J'aime »

Hello,

J’ai trouvé ce projet également qui marche très bien car il va récupérer les token directement dans le cloud xiaomi.

2 « J'aime »

J’avoue que la méthode semble plus simple :+1:

:warning: Mais ne fournie pas l’encryptor !

@Makai, tu peux nous en parler un peu plus (fonctionnement, captures), pour franciser le truc ?

Oui sans souci.

C’est super simple à utiliser. Je n’ai pas windows donc je n’ai pas testé le .exe.

Sur Linux (j’ai fais ça sur un Pi avec Raspberrypi OS) :

  1. Installer les dépendances :
pip3 install setuptools
pip3 install pycryptodome 
pip3 install pybase64 requests
  1. Télécharger le script :
wget https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/raw/master/token_extractor.py
python3 token_extractor.py
  1. Exécuter le script :
python3 token_extractor.py
  1. Entrer les infos nécessaires : email/mot de passe du compte Xiaomi, pas besoin de mettre un pays
Username (email or user ID):
mon_mail@mail.com
Password:
mon_mot_de_passe
Country (one of: ru, us, tw, sg, cn, de) Leave empty to check all available:


Logging in...
Logged in.

Devices found for country "cn":
   ---------
   NAME:  Mi Hub
   ID:    xxxxxxxxxxx
   IP:    xxxxxxxxxxx
   TOKEN: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
   MODEL: lumi.gateway.v3
   ---------

Devices found for country "de":
   ---------
   NAME:  Nestor
   ID:    xxxxxxxxxxx
   IP:    xxxxxxxxxxx
   TOKEN: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
   MODEL: roborock.vacuum.s5
   ---------

No devices found for country "us".
No devices found for country "ru".
No devices found for country "tw".
No devices found for country "sg".

Press ENTER to finish

Et voilà ! Les tokens sont en plus déjà au bon format, pas de conversion à prévoir.

2 « J'aime »

Quel méthode ? La mienne ou celle de @Makai ?

Merci pour le partage elle peut être intéressant pour les utilisateurs iOS après la méthode li home vevs est accessible à tout le monde.

Je préfère la méthode de @Makai personnellement.

Il est simple de faire une machine virtuelle et il est pour moi hors de question de mettre un apk modifié sur mon téléphone :scream:

Et comme dans les deux solutions il faut donner le couple identifiant/mot de passe, je préfère un fichier .py qui est facilement analysable…

1 « J'aime »

Ce n’est pas simple pour tout le monde les commandes linux lol

Moi je ne me sert pas de Xiaomi home alors je n’ai pas peur lol et en plus c’est une équipe très présente sur HA donc pas de doute sur l’envoi de données

On ne sais jamais !

C’est pour ça que le mot que j’ai utilisé est en italique.

Et @Makai a mis les commandes.

Et surtout, pour les novices, il y a une application Windows, qui pareil peut être mis dans une vm.

Mais en écrivant, la solution la plus simple et sécurisée pour moi, est en fait l’application Android dans un emulateur…

Je vais faire ça tiens ! Et peut être posterais je les étapes :+1:

Sur iOS ça se fait aussi. On installe l’application xiaomi home, on y met le robot, on fait un backup non chiffré sur un ordi et ensuite avec une app genre iExplorer sur Mac on navigue dans le backup jusqu’à récupérer la BDD. On l’ouvre avec une autre app, on récupère le token, on le converti et voilà.

Personnellement les commandes Linux c’est plus simple et bien moins long :smile:

1 « J'aime »

Comme tu le dit personnellement lol car j’en connais qui galère déjà avec une commande ssh alors ben hahaha

Pour la méthode avec l’Application Windows :

Si vous avez le message Protection Windows (car pas d’éditeur) :

Cliquez sur Informations complémentaires, puis Exécuter quand même

Dans la fenêtre de l’application :

  1. Renseignez votre identifiant, puis validez avec la touche Entrée :

    image

  2. Renseignez votre mot de passe, puis validez avec la touche Entrée :

  3. Pour les serveurs, laissez vide et validez avec la touche Entrée :


  4. Attendez jusqu’à voir, la ligne Press ENTER to finish

:warning: N’appuyez pas sur la touche Entrée !

  1. Cliquez sur l’icône de la fenêtre, puis Modifier et Sélectionner tout. Tout le texte passe alors en noir sur fond blanc indiquant sa sélection.

  2. Cliquez ensuite, à l’intérieur de la fenêtre sur le clique droit de votre souris (le clique droit correspond à la commande Copier).
    Vous avez dans le presse papier, tout le contenu de la fenêtre, ouvrez l’application notepad et faites Edition -> Coller :

    animate

C’est fini :+1:
Un grand merci à @Makai pour la découverte du Git :+1:

3 « J'aime »

Juste déjà à quoi ça sert de récup les token ? J ai pris une raspbee c est utile de le faire ?

c’est seulement pour certain matériels comme l’aspirateur ou les derniers thermomètre avec écran carre

@McFly , @Makai :

Pouvez vous tester cette version :

C’est un fork du lien de @Makai, avec la récupération de tous les items disponibles et la création d’un fichier log contenant les informations affichées dans la console.

Le fichier .py ou .exe (les deux sont à jour).

@Makai, Tétonnes pas de pas voir ton mot de passe :wink:

Je vous demande de tester car je souhaites juste savoir, si ça peux récupérer l’encrytor, et comme je n’ai aucun matériel avec encryptor, je peux pas tester…

Tenez moi au courant !

Merci :+1:

1 « J'aime »

Testé ici, intéressant de voir toutes les infos qu’ils ont :slight_smile:

Qu’est-ce que tu appelles encryptor ?

lis le premier post :wink:


Pas d’encryptor dans les informations extraites. A quoi sert cet encrytor ? Jamais eu besoin.

@mycanaletto l’explique Ici

PS: @mycanaletto, le titre de l’article semble avoir subit une correction orthographique de ton appareil :wink:

Merci. Du coup n’ayant pas d’équipement BLE de Xiaomi je ne sais pas si c’est normal ou pas…