Fórumok
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?
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.
Ez egy bt rubik kocka kommunikacio decrypt, de hatha tudsz belole hasznositani toolingot:
https://medium.com/@juananclaramunt/xiaomi-mi-smart-rubik-cube-ff5a2254…
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.
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.
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:
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. )
Amivel olvashattam volna az eszközről, ilyet egyelőre nem csináltam.
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:
Innen kigyűjtve a Value értékeit, megkaptam az összes átküldött parancsot:
É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 ... ;)
Köszi!
Így már megy a Shell autó irányítása shell-ből is.
https://pastebin.com/2K9HQ1H2
subscribe
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
sub