Let's say I order this stuff and flash the firmware of my car. If there was a bug in comma ai program (like jerking the driving wheel and slam my car in the guard rail without giving me time to react) I guess I am liable? That sounds like a bad idea.
OpenPilot doesn't require you to flash anything to your car, everything is done using the same CAN messages that the stock ADAS system sends. Further, the microcontroller that communicates between OpenPilot and the vehicle is hardcoded to block any CAN messages OpenPilot sends that are deemed to be too fast to react to: https://github.com/commaai/openpilot/blob/a2ae18d1dbd1e59c38...
The safety.h you pointed to is using "int" for variable declaration instead of using stdints to control size. Is there are reason for that?
From safety.h, I tried to follow addr_allowed function parameters. I get here (https://github.com/commaai/openpilot/blob/c025b96e8a15640ee4...) and see this:
int addr = GET_ADDR(to_send); int bus = GET_BUS(to_send);
Where are GET_ADDR and GET_BUS macros declared? There are no header declaration to follow dependencies.