It is how you embrace J1939 that makes the difference. In a J1939 dataframe two data words are defined: one open, the other proprietary. The proprietary word can be, and is with JD's implementation, encrypted. Therefore, anything actuated by the proprietary word is operable iff you have the key.