NEWS
[Frage] Xiaomi Vacuum cleaner
-
Ob das dann auch schon mit der neuen FW so geht, wenn man den Token vorher nie hatte?
Gruß
ThePhantom
-
Ob das dann auch schon mit der neuen FW so geht, wenn man den Token vorher nie hatte?
Gruß
ThePhantom `
Jop, dafür ist es ja gedacht.MiHome brauch den Token ja zwingend zur Kommunikation, speichert ihn also.
Ich habe (leider) auch auf die neuste Firmware geupdatet, und es klappt, wie man sieht, einwandfrei.
-
iOS mit Jailbreak:
/var/mobile/Containers/Data/Application/514106F3-C854-45E9-A45C-119CB4FFC235/Documents/USERID_mihome.sqlite
Ohne Jailbreak klappt es über ein unverschlüsseltes iTunes Backup und z.B. mit der Free Version von http://www.imactools.com/iphonebackupviewer/ auch. DB unter RAW, com.xiaomi.home, USERID_mihome.sqlite
-
Männer, ihr seid Genies!
-
gerade getestet mit iphonebackupviewer! Klappt! ich habe die USERID_mihome.sqlite erst mit iphonebackupviewer gesichert und dann mit einem Texteditor geöffnet. Direkt hinter dem Gerätenamen, ohne Leerzeichen! (ich habe zwei Robbis) steht der Token (die folgenden 32 Zeichen). Sehr stark!
-
Bei mir klappt das nicht so richtig mit dem Backup.
Bin wie folgt vorgegangen:
1. MiToolkit downgeloaded und installiert unter c:\programme
2. Programm als administrator ausgeführt
3. Verbindung geprüft (Daten werden eingetragen)
4. Java geprüft (gefunden)
5. Token auslesen
6. Bestätigung am Handy
7. Fehlermeldung:
… Fehler aufgetreten... Backup ist viel zu klein.
Wenn ich manuell das gleiche probieren mit cmd funktioniert dies auch nicht.
Was mach ich falsch ?
-
Bei mir klappt das nicht so richtig mit dem Backup.
Bin wie folgt vorgegangen:
1. MiToolkit downgeloaded und installiert unter c:\programme
2. Programm als administrator ausgeführt
3. Verbindung geprüft (Daten werden eingetragen)
4. Java geprüft (gefunden)
5. Token auslesen
6. Bestätigung am Handy
7. Fehlermeldung:
… Fehler aufgetreten... Backup ist viel zu klein.
Wenn ich manuell das gleiche probieren mit cmd funktioniert dies auch nicht.
Was mach ich falsch ? `
Wie lange macht er das Backup? Sprich, schließt sich das Fenster auf dem Handy direkt nach dem Tipp auf Backup, oder dauert es ein paar Sekunden?Ist die MiHome App vorher auf, bevor sich das Backup Fenster öffnet?
-
ja, mihome app geht auf.
Das speichern geht sehr schnell, 1 Sekunde.
-
@markus-:{"id":29,"method":"miIO.config_router","params":{"country_domain":"sg","ssid":"WLANKENNUNG","uid":123456789,"gmt_offset":3600,"passwd":"geheim"}}
Wichtige Parameter:
ssid, passwd und uid. Die uid findest Du z.B. in der App. `
Was sing gültige Werte für "country_domain" und welche machen Sinn?"uid" - ist das "d" aus der Flole App Config oder die Xiaomi User ID?
Wird der Sauger danach ganz normal in der Xiaomi App sichtbar? `
Als country domain sind mir cn für China und sg für Singapore als zulässig bekannt. Andere gehen möglicherweise auch. Bedeutsam könnten sie für die Zeitzone sein (wobei es hier ja noch gut_offset gibt). uid ist die User ID von Xiaomi. Wenn der Vorgang geklappt hat, wird das Gerät in der App sichtbar. Das ist der Mechanismus aufgrund dessen man auch mehrere Apps nutzen kann.
Spannend ist, ob jemand den Login-Vorgang auf den Xiaomi-Servern belauschen kann, der https verschlüsselt ist. Hier hat die App wohl eine eigene ID. Würden wir diesen Vorgang verstehen, so könnten wir die Daten auch aus der Cloud holen. Vielleicht haben wir ja einen Spezialisten hierfür unter uns.
-
Spannend ist, ob jemand den Login-Vorgang auf den Xiaomi-Servern belauschen kann, der https verschlüsselt ist. Hier hat die App wohl eine eigene ID. Würden wir diesen Vorgang verstehen, so könnten wir die Daten auch aus der Cloud holen. Vielleicht haben wir ja einen Spezialisten hierfür unter uns. `
SSL? Haha, schön wärs…
Das einzige was man da noch sieht ist der Login Call und die Keys die zurück kommen, danach war's das.
Sowohl die Requests als auch die Responses sind bei Xiaomi verschlüsselt, gehasht und signiert.
Ohne den App Code zu verstehen kommen wir da leider nicht weiter -> javadecompilers.com/apk
Mir fehlt die Zeit dafür.
Etwas größere Chancen sehe ich beim Download der Maps.
Die liegen in der Xiaomi Cloud analog AWS S3, für deren Signatur es eventuell auch Doku gibt.
Da gilt es dann nur noch rauszufinden, mit welchem Key der Request signiert werden muss.
Naja, und anschließend noch das File Format der Maps...
-
Ist mir grundsätzlich klar. Soweit ich weiß kommt es auf die Implementierung an, ob man ein falsches ssl-Zertifikat seitens eines Fake-Servers unterschieben kann. Wenn die App das Zertifikat nicht prüft so könnte man eventuell die Kommunikation entziffern.
-
Soweit ich weiß kommt es auf die Implementierung an, ob man ein falsches ssl-Zertifikat seitens eines Fake-Servers unterschieben kann. Wenn die App das Zertifikat nicht prüft so könnte man eventuell die Kommunikation entziffern. `
Das ist nicht das Problem, soweit bin ich.
Was sie über HTTPS schicken wird durch die App selbst aber nochmal verschlüsselt, auch alles was zurückkommt ist verschlüsselt!
P.S.: https://github.com/ac-pm/SSLUnpinning_Cydia sollte helfen wenn du Android hast. Einfach mal nach SSL Unpinning suchen
-
Ob das dann auch schon mit der neuen FW so geht, wenn man den Token vorher nie hatte?
Gruß
ThePhantom `
Jop, dafür ist es ja gedacht.MiHome brauch den Token ja zwingend zur Kommunikation, speichert ihn also.
Ich habe (leider) auch auf die neuste Firmware geupdatet, und es klappt, wie man sieht, einwandfrei. `
So einmal tausend dank an blacksn0w, ich bin wieder online, waren knapp 10 sekunden Zeitaufwand. Tausend dank
-
Auch von mir echt ein fettes Danke Schön - jetzt kann es losgehen!
-
Komisch…...... Ich wollte gerade ein Update machen. Ich bekomme angezeigt, dass meine 3.36 die aktuelle ist.
Wurde die 3.39 wieder zurückgezogen?
Gesendet von meinem SM-N915FY mit Tapatalk
-
Wurde die 3.39 wieder zurückgezogen? `
war bei mir auch so. Nach ein paar Tagen wurde dann die neue Version wieder angeboten.
Das ist wohl ein Softwareverteilmechanismus
vG
-
Ich habe mir jetzt nicht alles durchgelesen (vielleicht hat das auch schon jemand beschrieben), aber ich habe eine einfachere Möglichkeit gefunden:
Die Beschreibung mit dem Reset spare ich mir jetzt mal.
Installation:
npm -g miio
dann:
miio --discover --sync
und warten auf:
Device ID: XXXXX Model info: Unknown Address: 192.168.8.1 Token: XXXXXXXXXXXXXXXXXXXXXXXXXX via auto-token Support: Unknown
Genauer ist das hier beschrieben:
-
Ich habe mir jetzt nicht alles durchgelesen (vielleicht hat das auch schon jemand beschrieben), aber ich habe eine einfachere Möglichkeit gefunden:
Die Beschreibung mit dem Reset spare ich mir jetzt mal.
Genauer ist das hier beschrieben:
https://www.npmjs.com/package/homebridg … bot-vacuum `
Klappt nicht für neue Firmwares.> 10\. Open Mi Home app and add the device as usual.
Und danach ist der Token aus Schritt 8 ungültig. -
Hat es schon mal jemand geschafft, ein Gerät direkt ohne MiHome App zu aktivieren?
Ich habe mal probiert, das WLAN bei einem bereits eingerichteten Luftreiniger zu wechseln.
Das klappt grundsätzlich, allerdings ist das Ding danach in der App nicht mehr erreichbar.
Die Ersteinrichtung eines AirPurifiers (mit MiHome nach Reset) für Referenzzwecke:
{"id":1,"method":"miIO.config_router","params":{"tz":"Europe\/Berlin","ssid":"[SSID]","uid":[UID],"gmt_offset":7200,"passwd":"[PASSWORD]"}} {"id":2,"method":"miIO.stop_diag_mode","params":""}
-
@markus-:Hat es schon mal jemand geschafft, ein Gerät direkt ohne MiHome App zu aktivieren?
Ich habe mal probiert, das WLAN bei einem bereits eingerichteten Luftreiniger zu wechseln.
Das klappt grundsätzlich, allerdings ist das Ding danach in der App nicht mehr erreichbar.
Die Ersteinrichtung eines AirPurifiers (mit MiHome nach Reset) für Referenzzwecke:
{"id":1,"method":"miIO.config_router","params":{"tz":"Europe\/Berlin","ssid":"[SSID]","uid":[UID],"gmt_offset":7200,"passwd":"[PASSWORD]"}} {"id":2,"method":"miIO.stop_diag_mode","params":""} ```` `
Ich hatte das bei einer früheren Firmware mal gemacht. Wenn dein Air nicht mehr in der Liste erscheint, hast Du es offensichtlich geschafft, dein Gerät anzumelden. Vermutlich hast Du das Gerät in einem anderen Nutzerkonto angelegt =falsche UID.