PiotrMachowski / Xiaomi-cloud-tokens-extractor

This tool/script retrieves tokens for all devices connected to Xiaomi cloud and encryption keys for BLE devices.
MIT License
3.23k stars 333 forks source link

Added CLI, improved printing of devices and added Makefile to setup venv #90

Closed jakob1379 closed 4 months ago

jakob1379 commented 1 year ago
$ python token_extractor.py
Username: +##########
Password:
Choose a server or leave empty to check them all [cn/de/us/ru/tw/sg/in/i2/all]: all
Logging in...
Logged in.

No homes found for server "cn".
Devices found for server "de" @ home "500001022301":
   ---------
┌───────────────────────┬────────────────────────────────────────────────────────┐
│ DID                   │ 33333333                                               │
│ UID                   │ 3333333333                                             │
│ TOKEN                 │ 3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e                       │
│ NAME                  │ Roborock S5 Max                                        │
│ PID                   │ 0                                                      │
│ LOCALIP               │ 192.168.1.1                                            │
│ MAC                   │ 33:ee:33:ee:33:ee                                      │
│ SSID                  │ WifiName                                               │
│ BSSID                 │ 33:ee:33:ee:33:ee                                      │
│ RSSI                  │ -33                                                    │
│ LONGITUDE             │ 0.00000000                                             │
│ LATITUDE              │ 0.00000000                                             │
│ SHOW_MODE             │ 1                                                      │
│ MODEL                 │ roborock.vacuum.s5e                                    │
│ PERMITLEVEL           │ 16                                                     │
│ ISONLINE              │ False                                                  │
│ SPEC_TYPE             │ urn:miot-spec-v2:device:vacuum:0000Aaa3:roborock-s5e:2 │
│ EXTRA_ISSETPINCODE    │ 0                                                      │
│ EXTRA_PINCODETYPE     │ 0                                                      │
│ EXTRA_FW_VERSION      │ 3.5.8_1340                                             │
│ EXTRA_ISSUBGROUP      │ False                                                  │
│ EXTRA_SHOWGROUPMEMBER │ False                                                  │
│ ORDERTIME             │ 1613544520                                             │
│ FREQFLAG              │ True                                                   │
│ HIDE_MODE             │ 0                                                      │
│ COMFLAG               │ 129                                                    │
└───────────────────────┴────────────────────────────────────────────────────────┘
   ---------

No devices found for server "us" @ home "500001006423".
No homes found for server "ru".
No homes found for server "tw".
No homes found for server "sg".
No homes found for server "in".
No homes found for server "i2".
Checking chosen servers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:08

(token_extractor) pi@raspberrypi:~/Xiaomi-cloud-tokens-extractor $ python token_extractor.py --help

 Usage: token_extractor.py [OPTIONS] [USERNAME] [PASSWORD]

╭─ Arguments ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│   username      [USERNAME]                                                                                                                                │
│   password      [PASSWORD]                                                                                                                                │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --server        TEXT  Choose a server or leave empty to check them all [default: cn, de, us, ru, tw, sg, in, i2]                                          │
│ --help                Show this message and exit.                                                                                                         │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

$ python token_extractor.py --help

 Usage: token_extractor.py [OPTIONS] [USERNAME] [PASSWORD]

╭─ Arguments ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│   username      [USERNAME]                                                                                                                                │
│   password      [PASSWORD]                                                                                                                                │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --server        TEXT  Choose a server or leave empty to check them all [default: cn, de, us, ru, tw, sg, in, i2]                                          │
│ --help                Show this message and exit.                                                                                                         │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯