Van esélyem arra, hogy egy Shell Bluetooth matchboxot a laptopom bluetooth egységével vezéreljek?
Megpróbáltam felcsatlakozni a vezérlő app és az autó kommunikációjára, hátha visszafejthető, de úgy tűnik, ez csak külön hardverrel lehetséges.
Van valakinek ötlete, hogy külön hardver nélkül hogyan törhető fel a vezérlés kommunikációja?
- 1355 megtekintés
Hozzászólások
Meg kell szerezni az APK-t, be/fel kell tolni valami reveng toolba, és remélni, hogy a holland srácok trógerek voltak és nem obfuszkálták a kódot.
Ja meg hogy nem natív kódot használtak a BT kezelésére.
- A hozzászóláshoz be kell jelentkezni
Ez egy bt rubik kocka kommunikacio decrypt, de hatha tudsz belole hasznositani toolingot:
https://medium.com/@juananclaramunt/xiaomi-mi-smart-rubik-cube-ff5a2254…
- A hozzászóláshoz be kell jelentkezni
Dahaha ez nagyon jó. A drótcápa megeszi az androidos BT logokat OOtB. Nice!
Ja meg ahogy elnéztem ezt a shelles mókát is Unityben faragták.
- A hozzászóláshoz be kell jelentkezni
Ugyanezzel a módszerrel fejtettem vissza az Ikea Idasen állóasztal vezérlését. Androidon bt debug módba, gyári alkalmazás nyomogat (asztal fel, le, stop, stb..), debug log telefonról letölt, wiresharkban órákig nézeget, pythonban implementál, tesztel, örül.
Mondjuk ott annyiból egyszerűbb volt a helyzet, hogy csak a fel/le/stop payloadot kellett kibányászni (ez egy állóasztal, amit fel-le lehet mozgatni egy motorral), illetve az időzítéseket.
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ez nagyon sokat segített! Sikerült dekódolnom az irányítást.
Ha valaki hasonlóba kezdene, pár lépés, ami nekem segített.
Először a btsnoop.log bluetooth logfájl elkészítése a telefonon, ahol a vezérlő alkalmazás fut. (Nálam [Samsung Android 5] a /Android/data/ mappában volt a telefonon).
Majd fájl átmásolása a gépemre.
A Wireshark, ami gyönyörűen olvassa ezt a fájlt.
A RPI-BLE-toy-control project, ami más kisautókat irányít shell scriptekkel. Innen a "hcitool lescan" parancs, ami kilistázza a bluetooth MAC adresseket, bár a MAC address a logból is kideríthető a Wireshark segítségével. Valamint a gatttool parancs, amiből nekem a következőket kellett használnom:
gatttool -b $MAC --primary -u $UUID
Ahol a UUID-t a Wireshark segítségével kerestem meg, anélkül, hogy ismertem volna a bluetooth protokoll rejtelmeit. Ez a parancs visszaadta a tól-ig értékeket, amivel a szervizekre hivatkozhatom. ( Esetemben 0x0010 és 0x001c. )
gatttool -b $MAC --char-read -a 0x0010
Amivel olvashattam volna az eszközről, ilyet egyelőre nem csináltam.
gatttool -b $MAC --char-write-req -a 0x0012 -n $VALUE
Ahol a 0x0012 az a szolgáltatás, ami nálam az autót vezérelte, és a $VALUE tartalmazza azt az értéket, amit az autó csinál. Ezeket szintén a Wireshark-ból olvastam ki, bár a végén egy plain text exporttal egyszerűbb volt scripttel kikeresni az export fájlból.
A konkrét parancsok a TTA protokollal kerülnek átküldésre, ami az exportban a következő formában található meg:
Bluetooth Attribute Protocol
Opcode: Write Command (0x52)
Handle: 0x0012 (Unknown: Unknown)
Value: 025e695a48ff2a438ca680f83e04e45d
Innen kigyűjtve a Value értékeit, megkaptam az összes átküldött parancsot:
025e695a48ff2a438ca680f83e04e45d Alapállapotba állít
29609c664852cff1b0f0cbb98014bd2c Előre
e65567da8e6c560d09d3733a7f47ff06 Turbó előre
03209909ba9da1c8b986163c6d484655 Hátra
cec2ff1d7acc163cd13b7e6153ad5c45 Turbó hátra
9928e590dfe821485f414fbb633d5c4e Előre és balra
51382112135cccdb46cf8921b705499a Balra
0f2ce56662d4fd9d32a44f102bf20aa7 Előre és jobbra
98ce981d58d115afe11960bf4613925c Hátra és balra
1b5769cdf13e8ab627080ff3cefc3bc0 Jobbra
f2520fba3144fb11468fe080c6c2c23c Hátra és jobbra
592381c943a417ca1bc3b59400e0fc12 Turbó előre és balra
fb976fba04af87022226ec50ae82f8c4 Turbó előre és jobbra
d54ad55857d327745f141dd00d671595 Turbó hátra és balra
80dfb2165f3260f1d9837750f43a43da Turbó hátra és jobbra
Érdekes, hogy minden kombinációnak külön kódja van, de ezeket elküldve egymás után, az autó szépen halad.
Köszönöm mindenkinek a segítséget!
Ha sikerül, ennek segítségével majd ifjú titánok fognak közelebbről ismerkedni az informatika rejtelmeivel ... ;)
- A hozzászóláshoz be kell jelentkezni
Köszi!
Így már megy a Shell autó irányítása shell-ből is.
https://pastebin.com/2K9HQ1H2
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni
Sziasztok,
Hakkolt végül valaki saját szoftvert az autóhoz?
Én elkezdtem, de random időközönként bontódik a kapcsolat (10-50 mpn belül a csatlakozás után).
Csináltam btmon trace-t ebből az látszik, hogy a szétcsatlakozást a telefonom kezdeményezi és az oka:
Remote User Terminated Connection 0x13
https://forum.sailfishos.org/uploads/db4219/original/2X/b/babb44722fba1…
A HCI traffic logolásán kívül nincs most más gearem (amivel mondjuk a rádiós forgalmat lehetne sniffelni).
Próbáltam kézenfekvő dolgokat: másik telefon (másik kernellel), kisebb "poll rate", notificaiton-ök letiltása, stb. de semmi nem segített.
Ja BTW: az akkufeszt is felküldi az autó AES encoded formátumban:
https://gist.github.com/scrool/e79d6a4cb50c26499746f4fe473b3768
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni