A non-transitory, computer readable tangible storage medium storing a computer program product for executing a rollback for a vehicle master device that includes a processor and is configured to acquire update data from outside and distribute the acquired update data to a target electronic control unit (ECU) having a non-volatile memory with one or more program storage banks, the computer program comprising instructions configured to, when executed, cause the processor to:
- determine whether a cancellation request is generated during program rewriting from an old program to a new program in response to distributing the update data to the rewrite target ECU;
- specify a rollback method for returning the target ECU to a state where writing of the update data to the target ECU has not yet started in accordance with a memory type of the non-volatile memory of the target ECU and a data type of the update data of a new program or an old program when the cancellation request is determined to be generated;
- and
- instruct the target ECU to execute a rollback according to the specified rollback method;
- and
- have the target ECU operate with the old program.