IP Library Granted Patent US 12,455,789
Granted Patent B2
US 12,455,789 · App. 17/896,677 · Granted Oct 28, 2025

Software version rollback method, apparatus, and system

Inventor: Tao Ma (Beijing, CN)
Assignee: Shenzhen Yinwang Intelligent Technologies Co., Ltd.
G06F11/1433G06F8/658G06F8/71
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,455,789
App. No.
17/896,677
Granted
Oct 28, 2025
Kind
B2
Abstract

Example software version rollback methods, apparatuses, and systems are provided. One example method includes obtaining a differential update package of target software, where the differential update package includes a differential operation instruction, and the differential operation instruction is used to indicate a difference between a first version of the target software and a second version to which the target software is to be updated. A current version of the target software is updated by using the differential update package, where the current version of the target software is updated from a first version to a second version. When a rollback requirement for the target software is detected, the current version of the target software is rolled back to the first version.

Claims (58)

1. A software version rollback method, comprising:

obtaining, by an electronic control unit (ECU) of a vehicle, a differential update package of target software, wherein the target software is vehicle software for vehicle operations, the differential update package comprises a plurality of differential operation instructions, and a differential operation instruction of the plurality of differential operation instructions is used to indicate a difference between a first version of the target software and a second version to which the target software is to be updated;

updating, by the ECU of the vehicle, a current version of the target software by using the differential update package, wherein the current version of the target software is updated from the first version to the second version;

obtaining, by the ECU of the vehicle, a differential rollback package to roll back the target software from the second version to the first version, wherein the differential rollback package comprises a plurality of reverse differential operation instructions respectively corresponding, in reverse order, to the plurality of differential operation instructions comprised in the differential update package; and

rolling back, by the ECU of the vehicle, when a rollback requirement for the target software is detected, the second version of the target software to the first version by using the differential rollback package.

2. The method according to claim 1 , wherein the differential operation instruction comprises an instruction type and differential data, the instruction type indicates a type of a differential operation, and the differential data comprises at least one of a first address space or first data stored in the first address space in the first version, and at least one of second data or a second address space in the second version.

3. The method according to claim 2 , wherein the instruction type comprises one or more of the following types: ignoring, shift, insertion, deletion, or replacement.

4. The method according to claim 2 , wherein the instruction type comprises replacement, and the differential data comprises the first address space in the first version and the second data in the second version.

5. The method according to claim 2 , wherein:

a reverse differential operation instruction of the plurality of reverse differential operation instructions indicates performing a second differential operation according to the reverse differential operation instruction after a first differential operation is performed according to the differential operation instruction of the plurality of differential operation instructions, to roll back the target software to a state existing before the first differential operation is performed.

6. The method according to claim 5 , wherein:

the instruction type of the differential operation instruction is shift, the differential operation instruction is used to instruct to shift the first data from the first address space to the second address space, wherein the second address space is an address space other than the first address space in a first system; and

the reverse differential operation instruction corresponding to the differential operation instruction is to shift the first data in the second address space back to the first address space.

7. The method according to claim 5 , wherein:

the instruction type of the differential operation instruction is insertion, the differential operation instruction is used to instruct to add the second address space in a first system, and add the second data comprised in the differential operation instruction to the second address space; and

the reverse differential operation instruction corresponding to the differential operation instruction is to delete the second address space.

8. The method according to claim 5 , wherein:

the instruction type of the differential operation instruction is deletion, the differential operation instruction is used to instruct to delete the first address space and the first data stored in the first address space; and

the reverse differential operation instruction corresponding to the differential operation instruction is to add the first address space and add the first data to the first address space.

9. The method according to claim 5 , wherein the instruction type of the differential operation instruction is replacement, the differential operation instruction is used to instruct to replace the first data in the first address space with the second data; and

the reverse differential operation instruction corresponding to the differential operation instruction is to replace the second data in the first address space with the first data.

10. A software version rollback apparatus, comprising:

one or more processors; and

a non-transitory computer readable medium storing a program comprising instructions that, when executed by the one or more processors, cause the software version rollback apparatus to perform operations comprising:

obtaining a differential update package of target software, wherein the target software is vehicle software for vehicle operations, the differential update package comprises a plurality of differential operation instructions, and a differential operation instruction of the plurality of differential operation instructions is used to indicate a difference between a first version of the target software and a second version to which the target software is to be updated;

updating a current version of the target software by using the differential update package, wherein the current version of the target software is updated from the first version to the second version;

obtaining a differential rollback package to roll back the target software from the second version to the first version, wherein the differential rollback package comprises a plurality of reverse differential operation instructions respectively corresponding, in reverse order, to the plurality of differential operation instructions comprised in the differential update package; and

rolling back, when a rollback requirement for the target software is detected, the second version of the target software to the first version by using the differential rollback package.

11. The software version rollback apparatus according to claim 10 , wherein the differential operation instruction comprises an instruction type and differential data, the instruction type indicates a type of a differential operation, and the differential data comprises at least one of a first address space or first data stored in the first address space in the first version, and at least one of second data or a second address space in the second version.

12. The software version rollback apparatus according to claim 11 , wherein the instruction type comprises one or more of the following types: ignoring, shift, insertion, deletion, or replacement.

13. The software version rollback apparatus according to claim 11 , wherein the instruction type comprises replacement, and the differential data comprises the first address space in the first version and the second data in the second version.

14. The software version rollback apparatus according to claim 11 , wherein:

a reverse differential operation instruction of the plurality of reverse differential operation instructions indicates performing a second differential operation according to the reverse differential operation instruction after a first differential operation is performed according to the differential operation instruction of the plurality of differential operation instructions, to roll back the target software to a state existing before the first differential operation is performed.

15. The software version rollback apparatus according to claim 14 , wherein:

the instruction type of the differential operation instruction is shift, the differential operation instruction is used to instruct to shift the first data from the first address space to the second address space, wherein the second address space is an address space other than the first address space in a first system; and

the reverse differential operation instruction corresponding to the differential operation instruction is to shift the first data in the second address space back to the first address space.

16. The software version rollback apparatus according to claim 14 , wherein:

the instruction type of the differential operation instruction is insertion, the differential operation instruction is used to instruct to add the second address space in a first system, and add the second data comprised in the differential operation instruction to the second address space; and

the reverse differential operation instruction corresponding to the differential operation instruction is to delete the second address space.

17. The software version rollback apparatus according to claim 14 , wherein:

the instruction type of the differential operation instruction is deletion, the differential operation instruction is used to instruct to delete the first address space and the first data stored in the first address space; and

the reverse differential operation instruction corresponding to the differential operation instruction is to add the first address space and add the first data to the first address space.

18. The software version rollback apparatus according to claim 14 , wherein the instruction type of the differential operation instruction is replacement, the differential operation instruction is used to instruct to replace the first data in the first address space with the second data; and

the reverse differential operation instruction corresponding to the differential operation instruction is to replace the second data in the first address space with the first data.

19. A non-transitory computer-readable medium storing computer-executable instructions that, when executed by one or more processors, cause a device to:

obtain a differential update package of target software, wherein the target software is vehicle software for vehicle operations, the differential update package comprises a plurality of differential operation instructions, and a differential operation instruction of the plurality of differential operation instructions is used to indicate a difference between a first version of the target software and a second version to which the target software is to be updated;

update a current version of the target software by using the differential update package, wherein the current version of the target software is updated from the first version to the second version;

obtain a differential rollback package to roll back the target software from the second version to the first version, wherein the differential rollback package comprises a plurality of reverse differential operation instructions respectively corresponding, in reverse order, to the plurality of differential operation instructions comprised in the differential update package; and

roll back, when a rollback requirement for the target software is detected, the second version of the target software to the first version by using the differential rollback package.

20. A software version rollback system, comprising an update server and a software version rollback apparatus, wherein:

the update server is configured to send a differential update package of target software to the software version rollback apparatus, wherein the target software is vehicle software for vehicle operations; and

the software version rollback apparatus comprises:

one or more processors; and

a non-transitory computer readable medium storing a program comprising instructions that, when executed by the one or more processors, cause the software version rollback apparatus to:

obtain the differential update package of the target software from the update server, wherein the target software is vehicle software for vehicle operations;

update a current version of the target software by using the differential update package, wherein the current version of the target software is updated from a first version to a second version;

obtain a differential rollback package to roll back the target software from the second version to the first version, wherein the differential rollback package comprises a plurality of reverse differential operation instructions respectively corresponding, in reverse order, to a plurality of differential operation instructions comprised in the differential update package; and

roll back when a rollback requirement for the target software is detected, the second version of the target software to the first version by using the differential rollback package.

Assignments (3)
CHANGE OF NAME Recorded Apr 28, 2026
From: SHENZHEN YINWANG INTELLIGENT TECHNOLOGIES CO., LTD.
To: YINWANG INTELLIGENT TECHNOLOGIES CO., LTD.
Reel/Frame 075492/0796 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2024
From: HUAWEI TECHNOLOGIES CO., LTD.
To: SHENZHEN YINWANG INTELLIGENT TECHNOLOGIES CO., LTD.
Reel/Frame 069336/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2024
From: MA, TAO
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 068513/0761 →
Continuity (2)
Continuation PCTCN2020077294 · Feb 28, 2020
Related Publication 20230004381A1 · Jan 5, 2023
References Cited (55)
US 7107486B2 · Okada · 2006 [cited by examiner]
US 7664984B2 · Wang · 2010 [cited by examiner]
US 8645946B2 · Wookey · 2014 [cited by examiner]
US 9075693B2 · Sporkert · 2015 [cited by examiner]
US 10394548B2 · Fox · 2019 [cited by examiner]
US 10936304B2 · Fox · 2021 [cited by examiner]
US 11907698B2 · Harata · 2024 [cited by examiner]
US 20060004756A1 · Peleg et al. · 2006 [cited by applicant]
US 20060130046A1 · O'Neill · 2006 [cited by examiner]
US 20130067449A1 · Sannidhanam · 2013 [cited by examiner]
US 20140297516A1 · Brown · 2014 [cited by examiner]
US 20140344267A1 · LeBert · 2014 [cited by examiner]
US 20140372799A1 · Wei · 2014 [cited by examiner]
US 20150160940A1 · Hufnagel · 2015 [cited by examiner]
US 20160026452A1 · Dani · 2016 [cited by examiner]
US 20160291940A1 · Searle · 2016 [cited by examiner]
US 20160371076A1 · Moeller · 2016 [cited by examiner]
US 20170046152A1 · Shih · 2017 [cited by examiner]
US 20170195459A1 · e Costa · 2017 [cited by examiner]
US 20170242678A1 · Sangameswaran · 2017 [cited by examiner]
US 20170262277A1 · Endo · 2017 [cited by examiner]
US 20180018160A1 · Teraoka · 2018 [cited by examiner]
US 20180095745A1 · Mine · 2018 [cited by examiner]
US 20180246711A1 · Kurosawa · 2018 [cited by examiner]
US 20180276087A1 · Elron et al. · 2018 [cited by applicant]
US 20190034191A1 · Fox · 2019 [cited by examiner]
US 20190265965A1 · Acharya · 2019 [cited by examiner]
US 20200050378A1 · Sakurai · 2020 [cited by examiner]
US 20200081697A1 · Sillankorva · 2020 [cited by examiner]
US 20200159433A1 · Miyamura · 2020 [cited by examiner]
US 20200183676A1 · Sakurai · 2020 [cited by examiner]
US 20210173635A1 · Shin · 2021 [cited by examiner]
US 20230004381A1 · Ma · 2023 [cited by examiner]
US 20230120785A1 · Kaimal · 2023 [cited by examiner]
CN 1726476A · 2006 [cited by applicant]
CN 101420431A · 2009 [cited by applicant]
CN 101782934A · 2010 [cited by applicant]
CN 102609328A · 2012 [cited by applicant]
CN 105897863A · 2016 [cited by applicant]
CN 106293793A · 2017 [cited by applicant]
CN 106325892A · 2017 [cited by applicant]
CN 109804355A · 2019 [cited by applicant]
CN 110019050A · 2019 [cited by applicant]
CN 110321254A · 2019 [cited by applicant]
CN 110502317A · 2019 [cited by applicant]
JP 2008501180A · 2008 [cited by applicant]
JP 2020028121A · 2020 [cited by applicant]
WO 2016202000A1 · 2016 [cited by applicant]
WO 2019229091A1 · 2019 [cited by applicant]
Office Action in Chinese Appln. No. 202080002270.X, dated Mar. 2, 2022, 14 pages (with English translation). [cited by applicant]
Office Action in Chinese Appln. No. 202080002270.X, dated Sep. 14, 2022, 10 pages (with English translation). [cited by applicant]
Office Action in Chinese Appln. No. 202080002270.X, dated Feb. 11, 2023, 6 pages. [cited by applicant]
Extended European Search Report in European AppIn No. 20920851.1, dated Jan. 17, 2023, 11 pages. [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/CN2020/077294, mailed on Nov. 26, 2020, 19 pages (with English translation). [cited by applicant]
Office Action in Japanese AppIn. No. 2022-551726, mailed on Sep. 19, 2023, 7 pages (with English translation). [cited by applicant]