Apparatus and method for updating application package using delta and emulated application packages

The method generates a synthetic source application from target software using delta encoding and emulation, addressing OTA update failures due to corrupted source software, enabling efficient and reliable updates.

WO2026124812A1PCT designated stage Publication Date: 2026-06-18MERCEDES BENZ GROUP AG

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
MERCEDES BENZ GROUP AG
Filing Date
2025-09-26
Publication Date
2026-06-18

AI Technical Summary

Technical Problem

Existing Over-the-Air (OTA) update systems for vehicle ECUs fail when source software is corrupted due to cyclic redundancy check errors or signature mismatches, necessitating time-consuming full software updates or significant data transfers.

Method used

A method and apparatus that create a synthetic source application based on the target software, allowing updates even with corrupted source software, using delta encoding and emulation to generate a smaller update file, reducing dependency on intact source software.

🎯Benefits of technology

Enables reliable and efficient OTA updates by eliminating the need for intact source software, improving memory utilization and reducing data usage, and ensuring quicker software updates.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2025077631_18062026_PF_FP_ABST
    Figure EP2025077631_18062026_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments disclosed herein provide a method and system for updating an application package associated with a sub-system (106) of a vehicle (104). The method comprises receiving a package (312), the package (312) comprises (i) an update file indicative of updates in a target application package (306) corresponding to an existing application package, and (ii) a synthetic source file (308) pertaining to a synthetic source application (310). The synthetic source application (310) is an emulation of the existing application package. The method comprises generating a target application (320) based on the synthetic source file (308) pertaining to the synthetic source application (310). The method comprises generating the target application package based on the update file and the target application (320). The method comprises updating the application package by deploying the generated target application package.
Need to check novelty before this filing date? Find Prior Art

Description

Internal Ref.: 2024P02572WOTITLE OF THE INVENTION “APPARATUS AND METHOD FOR UPDATING APPLICATION PACKAGE USING DELTA AND EMULATED APPLICATION PACKAGES”Internal Ref.: 2024P02572WOTECHNICAL FIELD

[0001] The present disclosure generally relates to the field of software update systems for embedded devices, and more particularly relates to a method and an apparatus for updating a software version associated with a sub-system of a vehicle.BACKGROUND

[0002] The information disclosed in this background section is only for enhancement of understanding of the general background of the disclosure and should not be taken as an acknowledgement or any form of suggestion that this information forms the prior art already known to a person skilled in the art.

[0003] In automotive systems, an Over-the-Air (OTA) update system allows software updates to be wirelessly delivered to devices like vehicles and smartphones eliminating the need for physical connections. The OTA update system enables remote software updates for electronic control units (ECUs) enhancing functionality and fixing issues.

[0004] For updating software on ECUs, the OTA update system requires source software, target software and a delta file. The source software is the current version, the target version is the new software, and the delta file contains the differences needed for the update. To update from the source software to the target software, both the versions should be available on the server to create an update file (also referred hereinafter as an update file) which is then transmitted to the device. The device uses the existing source version to apply the delta and recreate the target version. However, if the source software is corrupted due to a cyclic redundancy check error or signature mismatch, then the delta update package may not be used, thereby, the OTA update fails. In such scenarios, the vehicle must be taken to a service center to perform a full software update via a wired connection, which is time consuming. In an alternate way, the entire target software needs to be transmitted to a device which consumes significant data and bandwidth.

[0005] One of the existing methods, disclosed in US8296535B2, provides a method of generating a delta file, the delta file including update instructions forInternal Ref.: 2024P02572WO causing a target processing device to transform a current memory image module into an updated memory image module. The method includes: incorporating a parametric representation of a first memory address in the delta file, the parametric representation being parametric with respect to at least one parameter; and incorporating parameter resolution instructions in the delta file, wherein the parameter resolution instructions are adapted to cause the target processing device to determine a value of said at least one parameter and to determine an address value of the first memory address from the parametric representation and the determined value of said at least one parameter.

[0006] Other method, disclosed in US20050022175A1, provides a method that efficiently delivers file updates in a self-contained package using delta compression to minimize size. The build mechanism creates the package with files and deltas, using a directed graph and minimum spanning tree computation to select the smallest file combination. Base files synthesize multiple files via deltas and can themselves be synthesized. A client extraction mechanism uses the package contents and manifest to synthesize target files.

[0007] Accordingly, there is a need to avoid dependency on source software version while updating software version.SUMMARY

[0008] The present disclosure also relates to a system for updating a vehicle, wherein the system comprises a server and a sub-system of the vehicle operatively coupled to the server. The sub-system comprises a control unit configured to receive a package, from the server. Further, the package comprises an update file indicative of a difference between an original target application to be updated at the sub-system of the vehicle and a synthetic source application. The synthetic source application represents adaptively compressed version of the original target application. The package further comprise a synthetic source file generated based on the original target application. The package is generated by the server by generating the synthetic source file based on the original target application. Further, the synthetic source application is generated based on the generated synthetic source file. Thereafter, the synthetic source application andInternal Ref.: 2024P02572WO the original target application are is compared, and, based on the comparison, the update file is generated. Furthermore, the synthetic source file, pertaining to the synthetic source application, is combined with the update file to generate the package. The synthetic source application is recreated based on the synthetic source file received in the package. Further, a target application is generated based on the update file and the recreated synthetic source application. The target application emulates the original target application. The sub-system is updated by deploying the generated target application.

[0009] The present disclosure relates to a method for updating a vehicle comprising a sub-system operatively coupled to a server. The sub-system comprises a control unit. The method comprising: receiving, by the control unit, a package, from the server, the package comprising: an update file indicative of a difference between an original target application to be updated at the subsystem of the vehicle and a synthetic source application, wherein the synthetic source application represents adaptively compressed version of the original target application; and a synthetic source file generated based on the original target application, wherein the package is generated by the server by:

[0010] generating the synthetic source file based on the original target application; generating the synthetic source application based on the generated synthetic source file; comparing the synthetic source application and the original target application; and generating, based on the comparison, the update file; and

[0011] combining the synthetic source file, pertaining to the synthetic source application, with the update file to generate the package; recreating, by the control unit, the synthetic source application based on the synthetic source file received in the package; generating, by the control unit, a target application based on the update file and the recreated synthetic source application, wherein the target application emulates the original target application; and updating, by the control unit, the sub-system by deploying the generated target application.

[0012] In an embodiment, there is a non-transitory computer readable medium including instructions stored thereon that when processed by at least one processor, causes the at least one processor to perform operations of receivingInternal Ref.: 2024P02572WO an input package, wherein the input package comprises (i) an update file indicative of updates in a target application package corresponding to an existing application package, and (ii) a synthetic source file pertaining to a synthetic source application, wherein the synthetic source application is an emulation of the existing application package; generating a final emulated application package based on the synthetic source file pertaining to the synthetic source application; generating the target application package based on the update file and the final emulated application package; and update the application package by deploying the generated target application package.

[0013] The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Features, aspects, and advantages of embodiments of the disclosure will be described below with reference to the accompanying drawings, in which reference numerals denote like elements, and wherein:

[0015] Features, aspects, and advantages of embodiments of the disclosure will be described below with reference to the accompanying drawings, in which reference numerals denote like elements, and wherein:

[0016] Fig. 1 illustrates a block diagram of an apparatus for updating an application package associated with a sub-system of a vehicle, in accordance with some embodiments of the present disclosure.

[0017] Fig. 2 illustrates a block diagram of a server communicatively coupled with the sub-system of the vehicle, in accordance with an embodiment of the present disclosure.

[0018] Fig. 3a illustrates a block diagram of a synthetic source application creating module of the server, in accordance with some embodiments of the present disclosure.Internal Ref.: 2024P02572WO

[0019] Fig. 3b illustrates a block diagram of a target application generating module of the sub-system, in accordance with some embodiments of the present disclosure.

[0020] Fig. 4 illustrates a schematic representation of creation of a synthetic source file and a synthetic source application by the synthetic source application creating module of the server, in accordance with some embodiments of the present disclosure.

[0021] Fig. 5 shows an exemplary flow chart illustrating method steps for updating an application package associated with a sub-system of a vehicle, in accordance with some embodiments of the present disclosure.

[0022] It should be appreciated by those skilled in the art that any block diagram herein represents conceptual views of illustrative systems embodying the principles of the present subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and executed by a computer or processor, whether or not such computer or processor is explicitly shown.DETAILED DESCRIPTION OF THE DISCLOSURE

[0023] The foregoing disclosure provides illustration and description but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations.

[0024] In general, update files are essential for applications where minimal data transfer and efficient memory usage are required, such as public safety communications and autonomous vehicle networks. Using update files allows for quicker, more efficient software updates without requiring a full software replacement. However, as stated earlier, in certain scenarios where the source software is corrupted, traditional update files are not usable. In such scenarios, a complete update or a visit to a service center is required, which is timeconsuming and resource intensive.Internal Ref.: 2024P02572WO

[0025] The methods and systems of the present disclosure solve a technical problem of performing updates even when the source software is corrupted. The smart source image creation method enables the system to derive synthetic source software from the target software, which leads to a smaller update file size ensuring software updates despite data corruption.

[0026] The present disclosure solves this technical problem as described in the embodiments below by creating synthetic source software based on the target software, allowing update files to be applied even when the source software is corrupted. The system further enhances memory efficiency by eliminating the need to store active source software. Furthermore, various embodiments disclosed herein also avoid the transfer of source software from other systems, thus reducing data transfer requirements. Therefore, the present disclosure suggests techniques for enabling reliable and efficient over-the-air updates without a dependency on intact source software.

[0027] Thus, the present disclosure enables a more robust and flexible OTA update process that can handle corrupted sources using a smart source image creation method. This improves memory utilization and reduces data usage.

[0028] Fig. 1 illustrates a block diagram of an apparatus 100 for updating an application package associated with a sub-system 106 of a vehicle 104, in accordance with some embodiments of the present disclosure.

[0029] As shown in FIG. 1, the apparatus 100 includes a server 102 communicatively coupled with the sub-system 106 of the vehicle 104. The server 102 maybe but is not limited to a cellular phone or smart phone, a pager, a laptop computer, a desktop computer, a wireless handset, a portable communication device, a portable computing device (e.g., a personal data assistant), or any other suitable computing device or other equipment / sensors including a wired or wireless communications interface. The sub-system 106 may be at least one of a electronic control unit (ECU), vehicle infotainment system, telematics control unit (TCU), electronic control unit, powertrain control unit, or any other subsystem capable of being updated or controlled within the vehicle. The application package may be at least one of a software update package,Internal Ref.: 2024P02572WO configuration file, firmware update package, calibration file or any other data package intended for updating, modifying, or controlling functionalities within the sub-system 106.

[0030] The server 102 includes a processor (not shown in FIG. 1), an input / output (VO) interface (not shown in FIG. 1), and a memory (not shown in FIG. 1). The memory stores one or more sequences of instructions, which, when executed by the processor causes updating the application package, as disclosed in the present disclosure. In some embodiments, the sub-system 106 may include an application that may be installed in Android-based devices, windows-based devices, or any such mobile operating system devices for updating the application package.

[0031] The processor of the server 102 is configured to create a synthetic source application (not shown in the present figure) (also referred hereinafter as an initial emulated application package) based on the target application package. The processor of the server 102 is configured to extract the synthetic source file pertaining to the synthetic source application. The processor of the server 102 is configured to compare the existing application package and the target application package. The processor of the server 102 is configured to generate the update file based on the comparison. The processor of the server 102 is configured to append the extracted synthetic source file, pertaining to the synthetic source application, with the update file to generate the input package.

[0032] The server 102 may send the input package to the sub-system 106 of the vehicle 104 via a network 110. The network 110 may be a wireless network or wired network. The network 110 is a combination of a wired network and a wireless network. In some embodiments, the network 110 is a direct interconnection, Local Area Network (LAN), Wide Area Network (WAN), Controller Area Network (CAN). The wireless network may be Bluetooth Low Energy (BLE), Near Field Communication (NFC), Bluetooth, Wi-Fi, the Internet and the like.

[0033] The sub-system 106 includes a processor (not shown in FIG. 1), an input / output (I / O) interface (not shown in FIG. 1), and a memory (not shown inInternal Ref.: 2024P02572WOFIG. 1). The memory stores one or more sequences of instructions, which, when executed by the processor causes updating the application package, as disclosed in the present disclosure.

[0034] The processor of the sub-system 106 is configured to receive the input package. The input package includes (i) the update file indicative of updates in the target application package corresponding to an existing application package, and (ii) a synthetic source file (also referred hereinafter as ‘source file’ for the sake of brevity) pertaining to the synthetic source application. The synthetic source application is an emulation of the existing application package. The processor of the sub-system 106 is configured to generate a final emulated application package using a target application generating module 108. The target application generating module 108 is configured to generate the final emulated application package based on the synthetic source file pertaining to the synthetic source application. The processor of the sub-system 106 is configured to generate the target application package based on the update file and the target application . The processor of the sub-system 106 is configured to update the application package by deploying the generated target application package.

[0035] Fig. 2 illustrates a block diagram of a server 102 communicatively coupled with the sub-system 106 of the vehicle 104, in accordance with an embodiment of the present disclosure.

[0036] With reference to FIG. 2, there is shown a block representation of the server 102. In an embodiment, the server 102 comprising a memory 200, a synthetic source application creating module 202, a synthetic source file extracting module 204, an existing application package and target application package comparison module 206, an update file generating module 208, and a synthetic source file and an update file appending module 210. The detailed description of the processor (not shown in FIG. 2), the memory 200, and the VO interface (not shown in FIG. 2), is already mentioned under the description of FIG. 1, therefore, the same is not included herein for the sake of brevity.

[0037] In an embodiment, the memory 200 may store an existing application package, a target application package, and one or more modules. The one orInternal Ref.: 2024P02572WO more modules may be configured to perform the steps of the present disclosure using the existing application package, the target application package, to update the application package. In an embodiment, each of the one or more modules may be a hardware unit which may be configured external to the memory 200 and coupled with the processor.

[0038] In an embodiment, the synthetic source application creating module 202 may be configured to create the synthetic source application based on the target application package. For example, the synthetic source application creating module 202 may receive the target application package and creates the synthetic source application by simulating the environment of the existing application package using a synthetic source generator.

[0039] In an embodiment, the synthetic source file extracting module 204 may be configured to extract the synthetic source file pertaining to the synthetic source application. For example, the synthetic source file extracting module 204 analyzes the synthetic source application by identifying predominant patterns, and indexing elements, machine-readable sequences, such as binary sequences, to extract the synthetic source file.

[0040] In an embodiment, the existing application package and target application package comparison module 206 may be configured to compare the existing application package and the target application package. For example, the differences between the existing application package and the target application package are determined by analyzing the existing application package and the target application package. The differences are the updates or changes between the existing application package and the target application package.

[0041] In an embodiment, the update file generating module 208 may be configured to generate the update file based on the comparison. For example, the differences that are obtained by the existing application package and target application package comparison module 206 are utilized to generate the update file. For example, the update file may optimize the data transfer requirements for efficient application package updating processes.Internal Ref.: 2024P02572WO

[0042] In an embodiment, the update file appending module 210 may be configured to append the extracted synthetic source file, pertaining to the synthetic source application, with the update file to generate the input package. For example, the appended update file and the extracted synthetic source file is transmitted to the sub-system 106 of the vehicle 104 for updating the application package.

[0043] A person skilled in the art will appreciate that the processor may be configured to perform the steps of the present disclosure using the existing application package, the target application package instead of the one or more modules, to update the application package.

[0044] A person skilled in the art will appreciate that any techniques other than the above-mentioned technique may be used to perform the steps performed by the synthetic source application creating module 202, the synthetic source file extracting module 204, the existing application package and target application package comparison module 206, the update file generating module 208, and the synthetic source file and an update file appending module 210.

[0045] Fig. 3a illustrates a block diagram of a synthetic source application creating module 202 of the server 102, in accordance with some embodiments of the present disclosure.

[0046] With reference to Fig. 3a, there is shown a block representation of the synthetic source application creating module 202 of the server 102. In an embodiment, the synthetic source application creating module 202 comprises a synthetic source file generating module 300, a synthetic source application generating module 302, and an update file generating module 304.

[0047] In an embodiment, the synthetic source file generating module 300 is configured to generate a synthetic source file 308 based on the original target application 306.

[0048] In an embodiment, the synthetic source application generating module 302 is configured to generate the synthetic source application 310 based on the generated synthetic source file 308. In some embodiments, the synthetic sourceInternal Ref.: 2024P02572WO application generating module 302 applies delta encoding on the synthetic source file 308 to generate the synthetic source application 310.

[0049] In an embodiment, the update file generating module 304 is configured to compare the synthetic source application 310 and the original target application 306. Further, the update file generating module 304 is configured to generate an update file (not shown in Fig. 3a) based on the comparison.

[0050] In an embodiment, upon generation of the update file, the synthetic source file 308, pertaining to the synthetic source application 310, is combined with the update file to generate a package 312. The update file generating module 304 generates the package 312, including the synthetic source file 308 and the update file, for transmitting the package 312 to the sub-system 106 of the vehicle 104.

[0051] In an embodiment, the synthetic source application creating module 202 may further comprise a machine-readable file conversion module (not shown), a predominant patterns determining module (not shown), a delta encoding module (not shown), and a delta encoded synthetic source file compressing module (not shown).

[0052] In an embodiment, in order to generate the synthetic source file 308 based on the original target application 306, the machine-readable file conversion module may be configured to convert the original target application 306 (also referred hereinafter as target application package 306) into a machine-readable file. For example, the original target application 306 may be converted to a machine-readable file and then read in chunks.

[0053] In an embodiment, the predominant patterns determining module may be configured to determine a set of predominant patterns indicative of an index of elements based on the machine-readable file. The set of predominant patterns comprises a plurality of machine-readable bits. For example, the predominant patterns determining module identifies the most frequent occurrences of machine-readable bits, such as binary zeros and binary ones, in each chunk of the machine-readable file.Internal Ref.: 2024P02572WO

[0054] In an embodiment, the synthetic source file generating module 300 may be configured to generate the synthetic source file 308 based on the set of predominant patterns. For example, the synthetic source file generating module 300 creates the synthetic source file 308 comprising the index of bytes with more binary ones than binary zeros.

[0055] In an embodiment, the delta encoding module may be configured to perform delta encoding on the synthetic source file 308. For example, a delta encoding method compresses the differences between the synthetic source file 308 and the current chunk.

[0056] In an embodiment, the delta encoded synthetic source file compressing module may be configured to compress the delta encoded synthetic source file. For example, Lempel-Ziv-Markov chain algorithm (LZMA) compression is used to reduce the delta encoded synthetic source file to generate a compressed synthetic source file. The compressed synthetic source file is then transmitted, by the server 102, to the sub-system 106, as indicated by the letter ‘A’ enclosed in a circle in Fig. 3a.

[0057] Fig. 3b illustrates a block diagram of a target application generating module 108 of the sub-system 106, in accordance with some embodiments of the present disclosure.

[0058] With reference to Fig. 3b, there is shown a block representation of the target application generating module 108 of the sub-system 106. In an embodiment, the target application generating module 108 comprises a synthetic source application generating module 314 of the sub-system 106, and a target application recreation module 316.

[0059] In an embodiment, the synthetic source application generating module 314 is configured to recreate the synthetic source application 310 based on the synthetic source file 308 received in the package 312. As indicated by the letter ‘A’ enclosed in a circle in Fig. 3b., the package 312 is received, by the synthetic source application generating module 314, the from the server 102.

[0060] In an embodiment, the target application recreation module 316 is configured to receive an update file 318, extracted from the package 312, andInternal Ref.: 2024P02572WO the recreated synthetic source application 310. Further, the target application recreation module 316 is configured to generate a target application 320 based on the update file 318 and the recreated synthetic source application 310. For example, the target application 320 emulates the original target application 306.

[0061] Subsequently, the sub-system 106 may be updated by deploying the generated target application 320. In an example, the generated target application 320 may be first deployed as an inactive bank. Further, upon completion of the installation, the target application 320 may be deployed as an active bank 322 onto the sub -system 106.

[0062] In an embodiment, the target application generating module 108 may further comprise a synthetic source file extraction module (not shown), a synthetic source file decompression module (not shown), a predominant patterns identifying module (not shown), and a hexadecimal format generating module (not shown).

[0063] In an embodiment, the synthetic source file extraction module may be configured to extract the synthetic source file 308 from the received package 318. For example, the compressed synthetic source file comprises data corresponding to generate the target application 320.

[0064] In an embodiment, the synthetic source file decompression module may be configured to decompress the synthetic source file. For example, the data corresponding to generate the target application 320 is determined by decompressing the synthetic source file.

[0065] In an embodiment, the predominant patterns identifying module may be configured to identify each of the set of predominant patterns indicative of the index of elements from the synthetic source file. The set of predominant patterns comprises the plurality of machine-readable bits.

[0066] For example, the decompressed synthetic source file is parsed to identify the patterns of binary data such as chunks of binary zeros and binary ones.

[0067] In an embodiment, the hexadecimal format generating module may be configured to generate a modified machine-readable file based on the identified set of predominant patterns. For example, the identified chunks of binary dataInternal Ref.: 2024P02572WO are converted into hexadecimal representation. In an embodiment, the machine- readable file comprises a binary file, the plurality of machine-readable bits comprises at least one of the binary ones and the binary zeros, and the modified machine-readable file comprises a hexadecimal file.

[0068] In an embodiment, the target application generating module may be configured to generating the target application 320 based on the hexadecimal file. For example, the converted hexadecimal chunks are used for creating synthetic existing application package.

[0069] Fig. 4 illustrates a schematic representation 400 of creation of a synthetic source file 308 and a synthetic source application 310 by the synthetic source application creating module 202 of the server 102, in accordance with some embodiments of the present disclosure.

[0070] In an embodiment, the machine-readable file conversion module, as described in the description of Fig. 3a, may be configured to convert the original target application 306 into a machine-readable file 402. For example, the machine-readable file 402 may be a modified or synthetic machine-readable file which is generated by reading a package file of the original target application 306 and determining the contents or a pattern of content of the package file of the original target application 306. Further, based on the machine-readable file 402, the predominant patterns determining module may be configured to determine a set of predominant patterns indicative of the index of elements. For example, the set of predominant patterns may include a plurality of machine- readable bits. For example, the predominant patterns determining module identifies the most frequent occurrences of machine-readable bits, such as binary zeros and binary ones, in each chunk of the machine-readable file.

[0071] In an embodiment, an initial information file based on the set of predominant patterns. For example, the initial information file is created base on an index of bytes with more binary ones than binary zeros.

[0072] In an embodiment, the delta encoding module may be configured to perform delta encoding on the initial information file to generate the deltaInternal Ref.: 2024P02572WO encoded synthetic source file 404. In some preferred embodiment, the delta encoded synthetic source file 404 is the synthetic source file 308.

[0073] In an embodiment, the delta encoded synthetic source file compressing module may be configured to compress the delta encoded synthetic source file 404 into a compressed synthetic source file 406. For example, Lempel-Ziv- Markov chain algorithm (LZMA) compression is used to reduce the delta encoded synthetic source file to generate the compressed synthetic source file 406. Subsequently, the compressed synthetic source file 406 may be transmitted, by the server 102, to the sub-system 106 of the vehicle 104 along in the package 312.

[0074] Fig. 5 shows an exemplary flow chart illustrating method steps for updating an application package associated with a sub-system of a vehicle, in accordance with some embodiments of the present disclosure.

[0075] The order in which the method 500 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method. Additionally, individual blocks may be deleted from the methods without departing from the scope of the subject matter described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof.

[0076] At step 502, an input package may be received. In an example, the input package includes (i) an update file indicative of updates in a target application package corresponding to an existing application package, and (ii) a synthetic source file pertaining to a synthetic source application. The synthetic source application is an emulation of the existing application package. For example, the update file comprises changes between a source software version (E50) and a target software version (E70).

[0077] At step 504, a target application 320 based on the synthetic source file pertaining to the synthetic source application may be generated. For example, a synthetic source generator uses the synthetic source file from the input package to recreate a synthetic source software version.Internal Ref.: 2024P02572WO

[0078] At step 506, the target application package based on the update file and the target application 320 may be generated. For example, the update file is applied to the synthetic source software version to create the target software version (E70).

[0079] At step 508, the application package by deploying the generated target application package may be updated. For example, once the target software version (E70) is generated at the sub-system, and upon rebooting, the updated software version becomes active.

[0080] In a preferred embodiment, the input package is generated, by a server communicatively coupled with the sub-system, by: creating the synthetic source application based on the target application package; extracting the synthetic source file pertaining to the synthetic source application; comparing the existing application package and the target application package; generating, based on the comparison, the update file; and appending the extracted synthetic source file pertaining to the synthetic source application with the update file to generate the input package.

[0081] In an alternate embodiment, the synthetic source file pertaining to the synthetic source application is created, by the server, by: converting the target application package into a machine-readable file; determining, based on the machine-readable file, a set of predominant patterns indicative of an index of elements comprising a plurality of at least one of binary ones and binary zeros; generating the synthetic source file based on the set of predominant patterns; performing delta encoding on the synthetic source file; and compressing the delta encoded synthetic source file.

[0082] In an alternate embodiment, to generate the target application 320, the processor is further configured to: extract the synthetic source file from the received input package; decompress the synthetic source file; identifying, from the synthetic source file, each of the set of predominant patterns indicative of the index of elements comprising the plurality of at least one of the binary ones and the binary zeros; generating a hexadecimal file based on the identified set ofInternal Ref.: 2024P02572WO predominant patterns; and generating the target application 320 based on the hexadecimal file.

[0083] In an embodiment [1], an apparatus for updating an application package associated with a sub-system of a vehicle, comprising a processor configured to: receive an input package, wherein the input package comprises (i) an update file indicative of updates in a target application package corresponding to an existing application package, and (ii) a synthetic source file pertaining to a synthetic source application, wherein the synthetic source application is an emulation of the existing application package; generate a target application 320 based on the synthetic source file pertaining to the synthetic source application; generate the target application package based on the update file and the target application 320; and update the application package by deploying the generated target application package.

[0084] In an embodiment [2], the input package is generated, by a server communicatively coupled with the sub-system, described in the embodiment [1], by: creating the synthetic source application based on the target application package; extracting the synthetic source file pertaining to the synthetic source application; comparing the existing application package and the target application package; generating, based on the comparison, the update file; and appending the extracted synthetic source file, pertaining to the synthetic source application, with the update file to generate the input package.

[0085] In an embodiment [3], the synthetic source file pertaining to the synthetic source application is created, by the server, described in the embodiment [2], by: converting the target application package in to a machine-readable file; determining, based on the machine-readable file, a set of predominant patterns indicative of an index of elements comprising a plurality of at least one of binary ones and binary zeros; generating the synthetic source file based on the set of predominant patterns; performing delta encoding on the synthetic source file; and compressing the delta encoded synthetic source file.

[0086] In an embodiment [4], wherein, to generate the target application 320, described in the embodiment [3], the processor is further configured to: extractInternal Ref.: 2024P02572WO the synthetic source file from the received input package; decompress the synthetic source file; identifying, from the synthetic source file, each of the set of predominant patterns indicative of the index of elements comprising the plurality of at least one of the binary ones and the binary zeros; generating a hexadecimal file based on the identified set of predominant patterns; and generating the target application 320 based on the hexadecimal file.

[0087] In an embodiment [5], a method for updating an application package associated with a sub-system of a vehicle, comprising: receiving an input package, wherein the input package comprises (i) an update file indicative of updates in a target application package corresponding to an existing application package, and (ii) a synthetic source file pertaining to a synthetic source application, wherein the synthetic source application is an emulation of the existing application package; generating a target application 320 based on the synthetic source file pertaining to the synthetic source application; generating the target application package based on the update file and the target application 320; and update the application package by deploying the generated target application package.

[0088] In an embodiment [6], the input package is generated, by a server communicatively coupled with the sub-system, described in the embodiment [5], by: creating the synthetic source application based on the target application package; extracting the synthetic source file pertaining to the synthetic source application; comparing the existing application package and the target application package; generating, based on the comparison, the update file; and appending the extracted synthetic source file, pertaining to the synthetic source application, with the update file to generate the input package.

[0089] In an embodiment [7], the synthetic source file pertaining to the synthetic source application is created, by the server, described in the embodiment [6], by: converting the target application package in to a machine-readable file; determining, based on the machine-readable file, a set of predominant patterns indicative of an index of elements comprising a plurality of at least one of binary ones and binary zeros; generating the synthetic source file based on the set ofInternal Ref.: 2024P02572WO predominant patterns; performing delta encoding on the synthetic source file; and compressing the delta encoded synthetic source file.

[0090] In an embodiment [8], wherein, to generate the target application 320, described in the embodiment [7], the processor is further configured to: extract the synthetic source file from the received input package; decompress the synthetic source file; identifying, from the synthetic source file, each of the set of predominant patterns indicative of the index of elements comprising the plurality of at least one of the binary ones and the binary zeros; generating a hexadecimal file based on the identified set of predominant patterns; and generating the target application 320 based on the hexadecimal file.

[0091] In an embodiment [9], a non-transitory computer-readable medium having program instructions stored thereon, executed by an apparatus for wireless communication, is disclosed. The program instructions may comprise: receiving an input package, wherein the input package comprises (i) an update file indicative of updates in a target application package corresponding to an existing application package, and (ii) a synthetic source file pertaining to a synthetic source application, wherein the synthetic source application is an emulation of the existing application package; generating a target application 320 based on the synthetic source file pertaining to the synthetic source application; generating the target application package based on the update file and the target application 320; and update the application package by deploying the generated target application package.

[0092] In a non-limiting embodiment of the present disclosure, one or more non- transitory computer-readable media may be utilized for implementing the embodiments consistent with the present disclosure.

Claims

Internal Ref.: 2024P02572WOCLAIMSI / WE Claim:We Claim:

1. A system (100) for updating a vehicle (104), comprising: a server (102); and a sub-system (106) of the vehicle (104) operatively coupled to the server (102), the sub-system (106) comprising: a control unit configured to: receive a package (312), from the server (102), the package (312) comprising: an update file indicative of a difference between an original target application (306) to be updated at the subsystem (106) of the vehicle (104) and a synthetic source application (310), wherein the synthetic source application (310) represents adaptively compressed version of the original target application (306); and a synthetic source file (308) generated based on the original target application (306), wherein the package (312) is generated by the server (102) by: generating the synthetic source file (308) based on the original target application (306); generating the synthetic source application (310) based on the generated synthetic source file (308); comparing the synthetic source application (310) and the original target application (306); and generating, based on the comparison, the update file; and combining the synthetic source file (308), pertaining to the synthetic source application (310), with the update file to generate the package (312);Internal Ref.: 2024P02572WO recreate the synthetic source application (310) based on the synthetic source file (308) received in the package (312); generate a target application (320) based on the update file (318) and the recreated synthetic source application (310), wherein the target application emulates the original target application (306); and update the sub-system (106) by deploying the generated target application (320).

2. The system (100) as claimed in claim 1, wherein, to extract the synthetic source file (308) pertaining to the synthetic source application (310), the server (102) is configured to: convert the original target application (306) in to a machine-readable file (402); determine, based on the machine-readable file (402), a set of predefined dominant patterns indicative of an index of elements comprising a plurality of machine-readable bits; generate the synthetic source file (308) based on the set of predominant patterns; perform delta encoding on the synthetic source file (308); and compress the delta encoded synthetic source file (308).

3. The system (100) as claimed in claim 2, wherein, to generate the synthetic source application (310), the processor is further configured to: extract the synthetic source file (308) from the received package (312); decompress the synthetic source file (308); identify, from the synthetic source file (308), each of the set of predominant patterns indicative of the index of elements comprising the plurality of machine-readable bits;Internal Ref.: 2024P02572WO generate a modified machine-readable file based on the identified set of predominant patterns; and generate the synthetic source application (310) based on the modified machine-readable file.

4. The system (100) as claimed in claim 3, wherein, the machine-readable file comprises a binary file, the plurality of machine-readable bits comprises at least one of the binary ones and the binary zeros, and the modified machine-readable file comprises a hexadecimal file.

5. A method for updating a vehicle (104) comprising a sub-system (106) operatively coupled to a server (102), the sub-system (106) comprising a control unit, the method comprising: receiving, by the control unit, a package (312), from the server (102), the package (312) comprising: an update file indicative of a difference between an original target application (306) to be updated at the sub-system (106) of the vehicle (104) and a synthetic source application (310), wherein the synthetic source application (310) represents adaptively compressed version of the original target application (306); and a synthetic source file (308) generated based on the original target application (306), wherein the package (312) is generated by the server (102) by: generating the synthetic source file (308) based on the original target application (306); generating the synthetic source application (310) based on the generated synthetic source file (308); comparing the synthetic source application (310) and the original target application (306); and generating, based on the comparison, the update file; andInternal Ref.: 2024P02572WO combining the synthetic source file (308), pertaining to the synthetic source application (310), with the update file to generate the package (312); recreating, by the control unit, the synthetic source application (310) based on the synthetic source file (308) received in the package (312); generating, by the control unit, a target application (320) based on the update file (318) and the recreated synthetic source application (310), wherein the target application (320) emulates the original target application (306); and updating, by the control unit, the sub-system (106) by deploying the generated target application (320).

6. The method as claimed in claim 5, wherein, for extracting the source file pertaining to the synthetic source application (310), the method further comprises: converting, by the control unit, the original target application (306) in to a machine-readable file; determine, by the control unit and based on the machine-readable file, a set of predefined dominant patterns indicative of an index of elements comprising a plurality of machine-readable bits; generating, by the control unit, the source file based on the set of predominant patterns; performing, by the control unit, delta encoding on the source file; and compressing, by the control unit, the delta encoded source file.

7. The method as claimed in claim 6, wherein, for generating the synthetic source application (310), the method further comprises: extracting, by the control unit, the source file from the received package (312); decompressing, by the control unit, the source file;Internal Ref.: 2024P02572WO identifying, by the control unit and from the source file, each of the set of predominant patterns indicative of the index of elements comprising the plurality of machine-readable bits; generating, by the control unit, a modified machine-readable file based on the identified set of predominant patterns; and generating, by the control unit, the synthetic source application (310) based on the hexadecimal file.

8. The method as claimed in claim 7, wherein, the machine-readable file comprises a machine-readable file, the plurality of machine-readable bits comprises at least one of the binary ones and the binary zeros, and the modified machine-readable file comprises a hexadecimal file.