A system, method, and computer program for managing device updates in a vehicle system.

The device management system addresses update challenges in vehicle systems by providing centralized, standardized, and efficient update management through over-the-air communication, ensuring consistency and compatibility across devices and users.

JP7854531B2Active Publication Date: 2026-05-01WOVEN BY TOYOTA INC
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
WOVEN BY TOYOTA INC
Filing Date
2025-01-21
Publication Date
2026-05-01

AI Technical Summary

Technical Problem

Existing vehicle systems face challenges in managing device updates due to the complexity and fragmentation of update processes, lack of centralized management, and difficulties in coordinating updates across multiple devices and users with different preferences, leading to inefficiencies and compatibility issues.

Method used

A device management system that enables centralized, standardized, and streamlined update management through over-the-air communication, allowing for efficient coordination among users and handling of both transient and non-transient updates, including temporary and non-temporary software updates, using a processor to configure deployments and utilizing a database for update distribution.

Benefits of technology

Enables efficient and effective management of device updates across multiple vehicles, ensuring consistency, compatibility, and correctable updates without manual intervention, while supporting multiple users and geographical locations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007854531000001
    Figure 0007854531000001
  • Figure 0007854531000002
    Figure 0007854531000002
  • Figure 0007854531000003
    Figure 0007854531000003
Patent Text Reader

Abstract

To provide a method in a vehicle system.SOLUTION: Provided are a method, a system and a device for managing one or more updates for one or more devices in a vehicle system. According to embodiments, the method may be implemented by at least one processor of a system and may include: obtaining information associated with the update; generating a message including information of the update; and configuring deployment of the update. The update comprises one of a temporary update and a non-temporary update.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Exemplary systems and methods consistent with embodiments of the present disclosure relate to vehicle systems, and more particularly, to managing one or more updates of one or more devices in one or more vehicle systems.

Background Art

[0002] Recent vehicles are equipped with a wide range of devices that form interconnected vehicle systems. The devices include, but are not limited to, electronic control units (ECUs), infotainment systems, sensors, actuators, telematics units, and communication modules. The devices operate with each other to provide essential functions such as propulsion, safety, entertainment, connectivity, advanced driver assistance, and the like. To ensure optimal performance, safety, and user experience, and to maintain functionality, safety, and compatibility with other systems, it is important to regularly and timely update the software and firmware of the devices in the vehicle system. However, with the development of vehicle technology and the introduction of complex functions, the management of device updates has become increasingly complex and cumbersome.

[0003] One of the main factors contributing to the difficulty of processing device updates is the continuous development in vehicle functions, which has led to a continuous and significant increase in the number and variants of devices in vehicle systems, ranging from conventional functions such as in-vehicle infotainment systems to new advanced functions such as Internet of Things (IoT) functions (e.g., vehicle-to-everything (V2X)).

[0004] Furthermore, advancements in software technologies such as virtualization and containerization have enabled various devices in vehicle systems (e.g., electronic control units (ECUs)) to be deployed in software form, drastically changing the deployment and management of devices in the automotive industry. As a result, the number of software components within vehicle systems is continuously and significantly increasing. This continuous increase in the number of software components in vehicle systems exacerbates the challenge of managing updates, making it a time-consuming and error-prone process.

[0005] In this regard, systems and methods for handling device updates in vehicle systems in related technologies are insufficient to effectively address the complexity and challenges, at least for the following reasons:

[0006] First, systems in related technologies lack a centralized management method for handling device updates. For example, in conventional vehicle systems, device updates are typically performed individually, requiring manual intervention for each device (e.g., the user must send the vehicle and / or associated devices to the vehicle manufacturer for updates, or a technician must physically visit the device and perform the update there). This method is time-consuming, error-prone, and inefficient, especially in scenarios where multiple devices within a vehicle system require simultaneous updates.

[0007] Furthermore, systems in related technologies often lack standardized and streamlined update processes. Each device has its own unique update mechanism, potentially requiring separate tools, procedures, and protocols. This fragmentation in the update process leads to inconsistencies, compatibility issues, and challenges when coordinating updates across different devices within a vehicle system.

[0008] Furthermore, systems in related technologies cannot provide efficient and effective coordination among users when managing device updates. Specifically, complex functions in vehicle-related systems often involve multiple users and stakeholders, and therefore, coordinating and managing device updates across various users can be difficult, especially when different users have different preferences, requirements, or usage patterns. Ensuring that all users have access to the latest updates and that updates do not interfere with each other's workflows or preferences presents a significant challenge. Consequently, the process of updating devices, such as updates to the device's operating system (OS) or firmware, can be complex, especially when updates (e.g., updated OS, updated firmware, etc.) are provided by users / stakeholders different from the user managing the device.

[0009] Furthermore, systems in related technologies cannot effectively handle different types of updates. In particular, temporary updates, often required for specific operations or scenarios, can be especially difficult to manage. For example, whenever a temporary update or change is needed for a device, the update / change may be applied to root software files (e.g., the root OS image file). Therefore, the root system image file can drift from a known point in time, and restoring the image file to its original state after the temporary update is no longer needed can be time-consuming and complex.

[0010] Taking at least the above into consideration, there is a need to provide improved systems, methods, devices, and the like for managing device updates in vehicle systems. [Overview of the project]

[0011] Exemplary embodiments consistent with this disclosure provide methods, systems, and apparatus for effectively and efficiently managing one or more updates of one or more devices in one or more vehicle systems.

[0012] According to the embodiment, a method for managing device updates in a vehicle system is provided. The method may be implemented by at least one processor of the system and may include: obtaining information associated with the update; generating a message containing the update information; and configuring the deployment of the update, the update may include one of transient updates and non-transient updates. Software files may include operating system (OS) files.

[0013] According to the embodiment, obtaining information associated with an update may include obtaining information from at least one of user equipment, a build system, and a database. Furthermore, configuring the deployment of an update may include providing a message to a device via over-the-air (OTA) communication to cause the device to configure the deployment of the update based on the message.

[0014] According to the embodiment, the device may include a remote device located in a geographical location different from the system. Furthermore, updates may be created by a first user located in a first geographical location. Information associated with the update may be obtained by a second user located in a second geographical location, and the first geographical location may be different from the second geographical location.

[0015] According to the embodiment, the update may include a temporary update to software files in the device. The device may include a lower layer containing software files, and the configuration for deploying the update may include providing a message to the device causing it to retrieve the update software file from a database, create a higher layer comprising the lower layer and software files based on the software files contained in the lower layer, replace the software files in the higher layer with the update software file, and remove the update software file from the higher layer after a certain period of time.

[0016] According to the embodiment, the update may include a non-temporary update of software files in the device, and the device may include a first partition and a second partition. The first and second partitions may contain software files, and the configuration for deploying the update may include providing a message to the device causing it to retrieve the update software file from a database, to replace the software file in one of the first and second partitions with the update software file, to configure the partition containing the update software file as a primary partition, and to restart the device to execute the update software file as primary software.

[0017] According to one embodiment, a system is provided for managing device updates in a vehicle system. The system may include memory storage for storing computer executable instructions, and at least one processor communicatively connected to the memory storage, wherein the at least one processor may be configured to execute instructions, retrieve information associated with an update, generate a message containing the update information, and configure the deployment of the update, and the update may include one of transient updates and non-transient updates. Software files may include operating system (OS) files.

[0018] According to the embodiment, at least one processor may be configured to obtain information associated with an update by executing instructions to retrieve information from at least one of user equipment, a build system, and a database. Furthermore, at least one processor may be configured to configure an update deployment by executing instructions to provide a message to a device via over-the-air (OTA) communication, causing the device to configure the deployment of the update based on the message.

[0019] According to the embodiment, the device may include a remote device located in a geographical location different from the system. Furthermore, updates may be created by a first user located in a first geographical location. Information associated with the update may be obtained by a second user located in a second geographical location, and the first geographical location may be different from the second geographical location.

[0020] According to the embodiment, the update may include a temporary update to software files in the device, the device may include a lower layer containing software files, and at least one processor may be configured to execute instructions and provide messages to the device to cause the device to retrieve an update software file from a database, create an upper layer containing a lower layer and software files based on the software files contained in the lower layer, replace the software files in the upper layer with the update software file, and remove the update software file from the upper layer after a certain period of time, thereby constituting the deployment of the update.

[0021] According to the embodiment, the update may include a non-temporary update of software files in the device, the device may include a first partition and a second partition, the first partition and the second partition may include software files, and at least one processor may be configured to execute instructions and provide messages to the device to cause the device to retrieve an update software file from a database, replace a software file in one of the first and second partitions with the update software file, configure the partition containing the update software file as a primary partition, and restart the device to execute the update software file as primary software, thereby configuring the deployment of the update.

[0022] According to the embodiment, a non-temporary computer-readable recording medium may be provided. The non-temporary computer-readable recording medium may record instructions executable by at least one processor of the system to cause the processor to perform a method for managing device updates in a vehicle system, the method including retrieving information associated with an update, generating a message containing the update information, and configuring the deployment of the update. The update may include one of a temporary update and a non-temporary update.

[0023] According to the embodiment, a non-transient computer-readable recording medium may record instructions that can be executed by at least one processor to perform the method, and the acquisition of information associated with the update may include acquiring information from at least one of user equipment, a build system, and a database. Furthermore, the non-transient computer-readable recording medium may record instructions that can be executed by at least one processor to perform the method, and the configuration for the deployment of the update may include providing a message to a device via over-the-air (OTA) communication to cause the device to configure the deployment of the update based on the message. Furthermore, the non-transient computer-readable recording medium may record instructions that can be executed by at least one processor to perform the method, and the device may include a remote device located in a geographical location different from the system.

[0024] Additional embodiments may be described in part in the following description and partially revealed therefrom, or may be realized by implementing the embodiments presented in this disclosure. [Brief explanation of the drawing]

[0025] The features, advantages, and importance of preferred embodiments of the present disclosure are described below with reference to the accompanying drawings, in which similar reference numerals indicate similar elements. [Figure 1]FIG. 1 shows a block diagram of an exemplary system architecture for managing one or more updates to one or more devices in a vehicle system according to one or more embodiments. [Figure 2] FIG. 2 shows a block diagram of exemplary components of a device management system according to one or more embodiments. [Figure 3] FIG. 3 shows a flowchart of an exemplary method for managing one or more updates to one or more devices in a vehicle system according to one or more embodiments. [Figure 4] FIG. 4 shows a block diagram of an exemplary system configuration for providing update distribution according to one or more embodiments. [Figure 5A] FIG. 5A shows a block diagram of a first configuration of an exemplary use case for deploying device updates according to one or more embodiments. [Figure 5B] FIG. 5B shows a block diagram of a second configuration of an exemplary use case for deploying device updates according to one or more embodiments. [Figure 6] FIG. 6 shows a block diagram of a configuration of an exemplary use case for deploying temporary device updates according to one or more embodiments. DETAILED DESCRIPTION OF THE INVENTION

[0026] The following detailed description of the preferred embodiments refers to the accompanying drawings. The above disclosure provides examples and explanations, but is not intended to be comprehensive or to limit the implementation aspects to the exact forms disclosed. Modifications and variations are possible in view of the above disclosure or may be obtained from the implementation of the implementation aspects. Further, one or more functions or components of one embodiment may be incorporated into or combined with another embodiment (or one or more features of another embodiment). Further, in the flowcharts and descriptions of operations provided below, it is understood that one or more operations may be omitted, one or more operations may be added, one or more operations may be performed (at least partially) simultaneously, and the order of one or more operations may be switched.

[0027] Where particular combinations of features are enumerated in the claims and / or disclosed herein, such combinations are not intended to limit the disclosure of possible implementations. In fact, many of these features can be combined in ways not specifically enumerated in the claims and / or disclosed herein. Each of the dependent claims listed below may depend directly on only one claim, but the disclosure of possible implementations includes each dependent claim combined with all other claims in the set of claims.

[0028] The elements, actions, or instructions used herein should not be construed as important or essential unless explicitly stated otherwise. Furthermore, the articles “a” and “an” used herein are intended to include one or more items and may be used interchangeably with “one or more.” When referring to only one item, the term “one” or similar terms should be used. Additionally, the terms “has,” “have,” “having,” “include,” “including,” or similar terms used herein are intended to be open-ended. Moreover, the phrase “based on” is intended to mean “at least partially based on” unless explicitly stated otherwise. Furthermore, expressions such as “at least one of [A] and [B]” or “at least one of [A] or [B]” should be understood as including only A, only B, or both A and B.

[0029] Throughout this specification, references to “one embodiment,” “embodiment,” “non-limiting preferred embodiment,” or similar terms mean that certain functions, structures, or features described in relation to the embodiments shown are included in at least one embodiment of the Solution. Therefore, throughout this specification, phrases such as “in one embodiment,” “in an embodiment,” “in a non-limiting preferred embodiment,” and similar terms may, but are not necessarily, refer to the same embodiment.

[0030] Furthermore, the functions, benefits, and features described herein may be combined in any preferred manner in one or more embodiments. Those skilled in the art will recognize, in view of the description herein, that the disclosure may be implemented without one or more of the specific functions or benefits of a particular embodiment. In other examples, additional functions and benefits may be recognized in certain embodiments, which may not be present in all embodiments of the disclosure.

[0031] In addition, as used herein, the term “vehicle” or similar may refer to any powered and / or mechanical machine capable of transporting or moving people and / or goods, such as cars, trucks, motorcycles, buses, bicycles, scooters, and similar vehicles.

[0032] Exemplary embodiments consistent with this disclosure provide methods, systems, and apparatus for managing one or more updates of one or more devices in one or more vehicle systems.

[0033] Specifically, exemplary embodiments provide a device management system (and a method of using the device management system) that can provide centralized management of device updates in a vehicle system. Thus, devices in a vehicle system, such as remote devices, can be updated effectively and efficiently without manual intervention or physical visits to the site.

[0034] Furthermore, the device management system of the exemplary embodiment can provide a standardized and streamlined update process, thereby ensuring the consistency and compatibility of device updates across different devices in a vehicle system. Moreover, the device management system of the exemplary embodiment can receive input from multiple users and manage device updates based on user input, thereby providing efficient and effective coordination among users when managing device updates. Furthermore, the device management system of the exemplary embodiment can ensure correctable updates by providing efficient and effective updates for different types of updates.

[0035] Ultimately, exemplary embodiments of this disclosure enable efficient and effective management of updates for a significant number of devices, thereby solving the problems in the systems of the related technologies described above.

[0036] The functions, advantages, and importance of the exemplary embodiments described herein are merely part of the disclosure and are not intended to be exhaustive or to limit the scope of the disclosure. Further descriptions of the functions, components, configurations, operations, and implementations of the exemplary embodiments of the disclosure, as well as the associated technical advantages and importance, are provided below.

[0037] Figure 1 shows a block diagram of an exemplary system architecture 100 for managing one or more updates of one or more devices in a vehicle system according to one or more embodiments. As shown in Figure 1, the system architecture 100 may include a device management system 110, a plurality of user equipment (UEs) 120-1 to 120-N, a plurality of devices 130-1, a database 140, and a network 150.

[0038] In general, the device management system 110 may be communicatively connected to a plurality of UEs 120-1 to 120-N and a database 140 via a network 150, and may be configured to interact with the UEs and database to manage one or more updates relating to a plurality of devices 130-1 to 130-N. The components that may be included in the device management system 110 are described below with reference to Figure 2, and the operations that may be performed by the device management system 110 are described below with reference to Figure 3.

[0039] Multiple UE120-1~120-N may include one or more systems, devices, and any other suitable equipment that can be utilized by one or more users associated with one or more of the devices 130-1~130-N. One or more users may include, but are not limited to, software developers who develop software / firmware associated with one or more of the devices 130-1~130-N, administrators of one or more of the devices 130-1~130-N, vehicle manufacturers / device vendors of one or more of the devices 130-1~130-N, drivers / users of one or more of the devices 130-1~130-N, and similar entities. One or more users may be located in different geographical locations.

[0040] Multiple UEs 130-1 to 130-N may be used by one or more associated users to access and utilize the device management system 110. Specifically, a user may access the device management system 110 via an associated UE to manage one or more device updates. For example, a user may use the device management system 110 via an associated UE to search for one or more available device updates, to schedule one or more device updates, to configure one or more device updates, to perform one or more device update deployments, to publish one or more device updates, and similar purposes. Furthermore, a user may also use the device management system 110 to retrieve (e.g., view, download, etc.) information associated with one or more device updates (e.g., device update content, device update type, device update creator, etc.).

[0041] According to one or more exemplary embodiments, one or more of the plurality of UE120-1 to 120-N may include computing devices (e.g., desktop computers, laptop computers, tablet computers, handheld computers, smart speakers, servers, etc.), mobile devices (e.g., smartphones, etc.), wearable devices (e.g., a pair of smart glasses or smartwatches), SIM-based devices, or any other suitable devices that can be associated with one or more users. Furthermore, the plurality of UE120-1 to 120-N may include, for example, workstations, test systems, software development systems, and the like.

[0042] According to one or more exemplary embodiments, at least a portion of the plurality of UE120-1 to 120-N may be located in different geographical locations. For example, a first portion of the plurality of UE120-1 to 120-N may be used by a first user (e.g., a developer of software updates for a first device), and the first user and associated UE may be located in a first location, while a second portion of the plurality of UE120-1 to 120-N may be used by a second user (e.g., an administrator of a first device), and the second user and associated UE may be located in a second location different from the first location.

[0043] According to one or more exemplary embodiments, devices 130-1 to 130-N may include one or more remote devices associated with a vehicle system. In this regard, the remote devices described herein may refer to electronic components, subsystems, and / or modules that are interconnected (e.g., via a network 150) and can communicate with one or more systems (e.g., a device management system 110) and one or more devices (e.g., UEs 120-1 to 120-N, a database 140, etc.). The devices are - Devices associated with control units in a vehicle, such as electronic control units (ECUs), transmission control units (TCUs), body control modules (BCMs), and similar devices. - Vehicle infotainment systems and functions such as audio / video entertainment systems, navigation systems, connectivity features, user interfaces, and similar devices. - Telematics devices such as components responsible for vehicle communication and remote monitoring, enabling services such as remote diagnostics, vehicle tracking, and emergency assistance. - Sensor devices such as devices that collect data from various sensors, including those related to ADAS (Advanced Driver-Assistance Systems) or environmental monitoring. This may include, but is not limited to, the following:

[0044] Furthermore, or alternatively, devices 130-1 to 130-N may include other types of devices within the vehicle system that require update management. Each of these devices may have embedded or incorporated software or firmware that, when performed by the device, performs one or more associated operations.

[0045] Furthermore, one or more of the devices 130-1 to 130-N may be one or more remote devices located in geographical locations different from the device management system 110, one or more of the UEs 120-1 to 120-N, and / or the database 140. These remote devices may be interconnected with the device management system 110, the database 140, and / or the UEs 120-1 to 120-N via the network 150, and their associated software / firmware may be remotely updated by the device management system 110 via over-the-air (OTA) update capabilities. Similarly, at least some of the devices 130-1 to 130-N may be located in geographical locations different from other parts of the devices 130-1 to 130-N.

[0046] Referring still to Figure 1, the database 140 may include a server, repository, or any suitable device that can be configured to store data or information associated with device updates. According to the embodiment, the database 140 may leverage the indexing and querying capabilities of a database (e.g., PostgreSQL) when storing and supplying device updates. Thus, the database 140 can efficiently manage and retrieve device updates (and / or associated data and information) based on various criteria such as device model, software version, schedule, planned release date, device location, and similar.

[0047] Network 150 may include one or more wired and / or wireless networks, which may be configured to connect a device management system 110, a plurality of UEs 120-1 to 120-N, a plurality of devices 120-1 to 120-N, and a database 140 to each other.

[0048] For example, network 150 may include cellular networks (e.g., fifth-generation (5G) networks, long-term evolution (LTE) networks, third-generation (3G) networks, code division multiple access (CDMA) networks, etc.), public land mobile networks (PLMN), local area networks (LANs), wide area networks (WANs), metropolitan area networks (MANs), telephone networks (e.g., public switched telephone networks (PSTNs)), private networks, ad hoc networks, intranets, the Internet, fiber optic-based networks, or similar, and / or combinations of these types or other types of networks.

[0049] According to one or more exemplary embodiments, the network 150 may include a virtual network, which may include one or more physical network components (e.g., Ethernet, WiFi modules, telecommunications network hardware, etc.) on which one or more virtualization network functions (e.g., a Control Area Network (CAN) bus, etc.) are implemented.

[0050] According to one or more exemplary embodiments, the network 150 may be utilized by the device management system 110 for OTA device updates on one or more of the devices 130-1 to 130-N. In this way, OTA communication between the device management system 110 and the devices 130-1 to 130-N enables efficient and secure device updates, thereby allowing the device management system 110 to securely and reliably manage and distribute device updates in the form of data packages, while enabling the device to receive updates in a timely manner.

[0051] Referring to Figure 1, the components and configurations included in the system architecture 100 described above are merely exemplary embodiments, and it can be understood that, without departing from the scope of this disclosure, the system architecture may include more or fewer components than those described, and / or the components included therein may be arranged in any way different from that described.

[0052] For example, according to one or more exemplary embodiments, the system architecture 100 may include one or more proxy servers connecting devices 130-1 to 130-N to a device management system 110 via a network 150 to manage incoming and / or outgoing network traffic and provide functions such as load balancing, routing, security, and observability; one or more network load balancers connecting devices 130-1 to 130-N to one or more proxy servers; and similar. Furthermore, the system architecture 100 may also include one or more virtual private networks (VPNs) connecting UEs 120-1 to 120-N to a device management system 110.

[0053] Next, referring to Figure 2, which shows a block diagram of exemplary components of a device management system 200 according to one or more embodiments. The device management system 200 may be similar to the device management system 110 in Figure 1.

[0054] As shown in Figure 2, the device management system 200 may include at least one communication interface 210, at least one storage 220, and at least one processor 230. According to the embodiment, the device management system 200 (or one or more components contained therein) may be deployed in a server (e.g., a cloud server, a hybrid cloud server, a server cluster, etc.).

[0055] The communication interface 210 may include transceiver-like components (e.g., transceivers, separate receivers and transmitters, buses, etc.) that enable the device management system 200 (or one or more components contained therein) to communicate with one or more components outside the device management system 200 via wired connections, wireless connections, or a combination of wired and wireless connections.

[0056] For example, the communication interface 210 may connect the device management system 200 (or one or more components contained therein) to multiple UEs (e.g., UE120-1 to 120-N in Figure 1), multiple devices (e.g., devices 130-1 to 130-N in Figure 1), and / or a database (e.g., database 140 in Figure 1), thereby enabling them to communicate with each other and operate in relation to one another. As another example, the communication interface 210 may enable the components of the device management system 200 to communicate with each other. For example, the communication interface 210 may connect the storage 220 to the processor 230, thereby enabling them to communicate with each other and operate in relation to one another.

[0057] The communication interface 210 may include hardware-based interfaces, such as bus interfaces, Ethernet interfaces, optical interfaces, coaxial interfaces, infrared interfaces, radio frequency (RF) interfaces, Universal Serial Bus (USB) interfaces, Wi-Fi interfaces, cellular network interfaces, software interfaces, or similar. According to embodiments, the communication interface 210 may include at least one controller area network (CAN) bus, which can be configured to connect components of the device management system 200 (e.g., storage 220, processor 230, etc.) to a plurality of UEs (e.g., UE120-1 to 120-N), a plurality of devices (e.g., devices 130-1 to 130-N), and / or a database 140 in a communicative manner. Furthermore or alternatively, the communication interface 210 may include software-based interfaces, such as application programming interfaces (APIs), virtualized network interfaces (e.g., virtualized CAN buses, etc.), or similar.

[0058] The communication interface 210 may be configured to receive information from one or more components outside the device management system 200 and provide such information to the processor 230 for further processing and / or to the storage 220 for storage. For example, the communication interface 210 may receive one or more user inputs from multiple UEs regarding the management of one or more device updates (e.g., browsing available updates, browsing device information, scheduling device update deployments, triggers for device update deployments, configuration or modification of device updates, etc.) and provide such user inputs to the processor 230 and / or storage 220. Similarly, the communication interface 210 may be configured to enable the processor 230 of the device management system 200 to provide one or more pieces of information to one or more components outside the device management system 200.

[0059] Still referring to Figure 2, at least one storage 220 may include one or more storage media suitable for internally storing data, information, and / or computer-readable / computer-executable instructions. According to embodiments, the storage 220 may include random-access memory (RAM), read-only memory (ROM), and / or other types of dynamic or static storage devices (e.g., flash memory, magnetic memory, and / or optical memory) for storing information and / or instructions for use by the processor 230.

[0060] Furthermore, or alternatively, storage 220 may include, along with a corresponding drive, hard disks (e.g., magnetic disks, optical disks, magneto-optical disks, and / or solid-state disks), compact discs (CDs), digital versatile discs (DVDs), floppy disks, cartridges, magnetic tapes, and / or other types of non-temporary computer-readable media.

[0061] The storage 220 may be configured to store information used by the processor 230 to perform one or more operations to manage one or more updates for one or more devices. For example, the storage 220 may be configured to store one or more device update deployment settings provided by one or more users, to store information associated with one or more users and / or update deployments associated with a device, to store information for one or more devices, to store device updates received from a database, and similar things.

[0062] At least one processor 230 may be configured to receive one or more signals (for example, via a communication interface 210, etc.) that define one or more instructions that perform one or more operations. Furthermore, the processor 230 may be implemented in hardware, firmware, or a combination of hardware and software. The processor 230 may include a central processing unit (CPU), an image processing unit (GPU), an accelerator processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and / or other types of processing or computing components.

[0063] At least one processor 230 may include one or more processors programmable to perform functions or operations that manage one or more device updates. For example, processor 230 may be configured to execute computer-readable instructions stored in memory storage (e.g., storage 220, etc.) to perform one or more actions or operations described herein.

[0064] Referring to Figure 2, the components and configurations of the device management system 200 described above are merely exemplary embodiments, and it can be understood that, without departing from the scope of this disclosure, the device management system 200 may include more or fewer components than those described, and / or the components included therein may be arranged in any way different from that described.

[0065] For example, according to one or more exemplary embodiments, the device management system 200 may include input modules (e.g., touchscreen displays, buttons, switches, microphones, sensors, keyboards, mice, joysticks, keypads, soft keys, etc.) and / or output modules (e.g., displays, speakers, bell devices, one or more light-emitting diodes (LEDs), LED-based displays, e.g., active-matrix organic light-emitting diode (AMOLED) displays, thin-film transistor (TFT) displays, liquid crystal displays, etc.) that can be configured to receive one or more user inputs from one or more users and / or output information to one or more users.

[0066] Next, referring to Figure 3, which shows a flowchart of an exemplary method 300 for managing one or more updates relating to one or more devices in a vehicle system according to one or more embodiments. One or more operations of method 300 may be performed by at least one processor of a device management system (e.g., processor 230) when a computer executable instruction stored in at least one storage medium (e.g., storage 220) is executed.

[0067] As shown in Figure 3, in operation S310, at least one processor of the device management system may be configured to retrieve information associated with one or more device updates (which may be referred to herein as “update information”). According to embodiments, at least one processor may retrieve update information from a user. Alternatively or further, at least one processor may retrieve update information from a database and / or build system. A description of exemplary use cases in which update information is received is provided below with reference to the exemplary use case in Figure 4.

[0068] Upon obtaining update information, method 300 may proceed to operation S320, in which at least one processor of the device management system may be configured to generate one or more messages associated with the update (which may be referred to herein as “update messages”) based on the obtained update information. For example, at least one processor may determine, based on the obtained update information, the type of update (e.g., temporary update, mandatory update, optional update, etc.), the importance of the update (e.g., urgent update, non-urgent update, update associated with safety function, etc.), and similar information. Thus, at least one processor may generate an update message based on the determined information. The update message may include update information, such as device identification information, the type of update (e.g., temporary update, non-temporary update, etc.), the importance / urgency of the update, the update version, the deployment schedule, the update's memory information, and similar information.

[0069] Therefore, in operation S330, at least one processor may configure the deployment of an update. For example, at least one processor may provide an update message to the device to be updated (which may be referred to herein as the “target device”), thereby instructing the target device to configure the deployment of an update. According to embodiments, at least one processor may be configured to generate and provide an update message to the target device in order to cause the target device to configure a non-temporary update (a description of exemplary use cases associated therewith is provided below with reference to Figures 5A-5B). According to embodiments, at least one processor may be configured to generate and provide an update message to the target device in order to cause the target device to configure a temporary update (a description of exemplary use cases associated therewith is provided below with reference to Figure 6).

[0070] Next, referring to Figure 4, which shows a block diagram of an exemplary system configuration 400 that provides update distribution according to one or more embodiments. As shown in Figure 4, the system configuration 400 may include a device management system 410, a build system 420, a device 430, and a database 440. The device management system 410 and the database 440 may be similar to those described herein with reference to other figures, the build system 420 may be similar to the UE described herein with reference to other figures, and the device 430 may be similar to the target device described herein with reference to other figures. Furthermore, one or more operations in Figure 4 may be similar to one or more operations in method 300 of Figure 3.

[0071] In the example in Figure 4, a first user (e.g., a software developer) may use the build system 420 (in operation S401) to create or build an update for device 430. Once a device update is built or created, the build system 420 may be configured to provide the update to the database 440 (e.g., via network 150), and the database 440 may be configured (in operation S402) to store the device update internally.

[0072] Therefore, a second user (e.g., an administrator of device 430) may access the device management system 410 (e.g., via an associated UE, direct access without a UE, etc.) to manage device updates (in operation S403), for example, by scheduling device update deployments, executing device update deployments, and similar actions. In this operation, the device management system 410 (or at least one processor contained therein) may receive update information from the second user. In this regard, the device management system 410 may be configured to generate and output one or more graphical user interfaces (GUIs) and output one or more GUIs to the second user (via an input / output module). Therefore, the device management system 410 may receive user input from the second user by determining user interaction with one or more GUIs.

[0073] Furthermore, or alternatively, the device management system 410 may (in an optional operation S403-1) obtain or receive update information from the build system 420, and / or (in an optional operation S403-2) obtain or receive update information from the database 440.

[0074] Upon acquiring update information, the device management system 410 (or at least one processor contained therein) may be configured to generate one or more update messages based on the update information. Thus, the update messages may be provided to the device 430 (in operation S404). One or more operations performed by the device management system, such as receiving update information and / or providing update messages, may be performed via OTA.

[0075] Upon receiving an update message from the device management system 410, device 430 may be configured to retrieve or obtain a device update from the database 440 based on the update message (in operation S405). Thus, device 430 may configure a device update deployment based on the retrieved device update and the update message. An exemplary use case of a device configuring a device update deployment is provided below with reference to Figures 5A to 56.

[0076] First, referring to Figure 5A, which shows a block diagram of a first configuration of an exemplary use case for deploying a device update according to one or more embodiments. In the example of Figure 5A, it is assumed that device 530 (which may be similar to device 430 in Figure 4) has received an update message from a device management system (e.g., device management 410 in Figure 4) and has determined that the type of update is a non-temporary update (e.g., a mandatory update, an optional update, etc.).

[0077] As shown in Figure 5A, device 530 may include a first part 531 and a second part 532, each of which may have a first version of software (indicated as “Software Version 1” in Figure 5A). In this regard, one of parts 531 and 532 may be configured to store the primary software that the device runs on, and the other of parts 531 and 532 may be configured to store a cloned version of the software for backup, redundancy, or any other preferred purpose. According to embodiments, the software may include an operating system (OS) image.

[0078] In this regard, device 530 may determine the required device update based on the update message and may retrieve the update from database 540 (which may be similar to database 440 in Figure 4). For example, assuming the update message indicates that the update is a non-temporary update that updates the software from "version 1" to "version 1.1", device 530 may retrieve the update (e.g., software version 1.1) from database 540 and deploy the update accordingly. For example, the device may overwrite or replace the software in one of the first part 531 and the second part 532 with software retrieved from database 540.

[0079] Next, referring to Figure 5B, which shows a block diagram of a second configuration of an exemplary use case for deploying a device update according to one or more embodiments. The components of Figure 5B may be the same as those described above with reference to Figure 5A.

[0080] In the example in Figure 5B, it is assumed that device 530 has acquired the device update “Software Version 1.1,” which overwrites or replaces the software in the second portion 532 (indicated as “Software Version 1” in Figure 5A). The device may then switch its primary software from the software in the first portion 531 (e.g., “Software Version 1”) to the updated software in the second portion 532 (e.g., “Software Version 1.1”). Next, device 530 may restart or resume to switch the running software to the new primary software.

[0081] It can be understood that device 530 may be configured to deploy non-transient device updates in any other preferred manner and / or in a similar manner, without departing from the scope of this disclosure.

[0082] Referring to Figure 6, which shows a block diagram of an exemplary use case configuration for deploying a temporary device update according to one or more embodiments. In the example of Figure 6, it is assumed that device 630 (which may be similar to device 440 in Figure 4) has received an update message from a device management system (e.g., device management 410 in Figure 4), has determined that the update type is a temporary update (e.g., a software beta version update, a temporary hotfix, or an update for testing purposes), and has retrieved the device update from a database (e.g., database 430 in Figure 4).

[0083] As shown in Figure 6, device 630 may include an overlay file system 631 which includes an upper layer 631-1 and a lower layer 631-2. These layers 631-1 and 631-2 may be contained in one or more of the first part 531 and the second part 532. Furthermore, each of layers 631-1 and 631-2 may contain the same software files, and the upper layer 631-1 and / or the software files contained therein may be temporarily created by device 630 based on the lower layer 631-2 and the software files contained therein.

[0084] Specifically, based on the determination from the update message provided by the device management system that the update is a temporary update, device 630 may create a reference or pointer to the software file in the lower layer 631-2, allowing device 630 to continue executing the software file in the lower layer 631-2 for normal operation without interruption.

[0085] Subsequently, device 630 may then begin creating a temporary copy of the software file and include the copied software file within the upper layer 631-1 to which the temporary update is applied. Thus, the temporary update is performed in the upper layer 631-1, ensuring that the original software file in the lower layer 631-2 remains intact and uninterrupted during the temporary update process. According to one embodiment, device 630 may be configured to remove the software file in the upper layer 631-1 after a certain period of time (for example, after a predetermined amount of time specified in the update message, or after device 630 has been restarted), thereby allowing device 630 to revert to its last known state.

[0086] Considering the above, software files in the upper layer 631-1 may be referred to as "read-write files," while software files in the lower layer 631-2 may be referred to as "read-only files." According to the embodiment, device 630 may utilize a copy-on-write (CoW) mechanism when managing the overlay file system 631. Thus, the transient update process can be more efficient and resource-friendly, ensuring minimal disruption to the normal operation of device 630. Furthermore, reversible updates are provided, thereby minimizing the risk of potential problems such as state drift of device 630.

[0087] To this end, exemplary embodiments of the present disclosure provide a device management system (and a method of utilizing such a device management system) that enables the effective and efficient management of one or more updates of one or more devices in a vehicle system, and then addresses the problems in the related technologies described above.

[0088] It is understood that any particular order or hierarchy of blocks in the processes / flowcharts disclosed herein is an example of exemplary technique. It is understood that any particular order or hierarchy of blocks in the processes / flowcharts may be rearranged based on design preferences. Furthermore, some blocks may be combined or omitted. The appended method claims present elements of various blocks in a sample order and are not intended to be limited to any particular order or hierarchy presented.

[0089] Some embodiments may relate to systems, methods, and / or computer-readable media at any possible level of technical detail of integration. Furthermore, as described herein, one or more of the above-described components may be implemented as instructions stored in a computer-readable medium and executable by at least one processor (and / or may include at least one processor). The computer-readable medium may include a computer-readable non-temporary storage medium (or medium(s)) having computer-readable program instructions to cause a processor to perform an operation.

[0090] A computer-readable storage medium can be a tangible device capable of holding and storing instructions for use by an instruction-executing device. A computer-readable storage medium may be, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any preferred combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes, namely, portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punched cards or grooved raised structures on which instructions are recorded, and any preferred combination thereof. The computer-readable storage media used herein should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmitting media (e.g., light pulses passing through optical fiber cables), or electrical signals transmitted through wires.

[0091] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device, or they may be downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within each computing / processing device.

[0092] The computer-readable program code / instructions that perform the operation may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, or similar, and procedural programming languages ​​such as the "C" programming language or similar programming languages. The computer-readable program instructions may be fully executed on the user's computer, partially executed on the user's computer, executed as a standalone software package, partially executed on the user's computer and partially executed on a remote computer, or fully executed on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or a connection to an external computer may be made (for example, via the Internet using an Internet service provider). In some embodiments, for example, an electronic circuit including a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer-readable program instructions by personalizing the electronic circuit using state information of computer-readable program instructions in order to perform a particular action or operation.

[0093] The computer-readable program instructions may be provided to a processor of a general-purpose computer, a dedicated computer, or other programmable data processing device to generate a machine, and as a result, the instructions executed via the processor of the computer or other programmable data processing device create means for implementing functions / actions specified in blocks or blocks of a flowchart and / or block diagram. The computer-readable program instructions may also be stored in a computer-readable storage medium that can instruct computers, programmable data processing devices, and / or other devices to function in a particular way, and as a result, the computer-readable storage medium in which the instructions are stored comprises a manufactured article containing instructions for implementing modes of functions / actions specified in blocks or blocks of a flowchart and / or block diagram.

[0094] Computer-readable program instructions can also be loaded onto a computer, other programmable data processing device, or other device to perform a series of operational steps on the computer, other programmable device, or other device, thereby generating a computer implementation process, the instructions executed on the computer, other programmable device, or other device, which implement the functions / actions specified in the blocks or blocks(s) of a flowchart and / or block diagram.

[0095] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer-readable media according to various embodiments. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction set comprising one or more executable instructions that implement a specified logical function. Methods, computer systems, and computer-readable media may include additional blocks, fewer blocks, different blocks, or blocks arranged differently compared to those depicted in the figures. In some alternative implementations, the functions described in the blocks may occur regardless of the order in which they are shown in the figures. For example, two consecutively shown blocks may actually be executed simultaneously or substantially simultaneously, or blocks may be executed in reverse order depending on the functions they relate to. It should also be noted that each block in a block diagram and / or flowchart, and combinations of blocks in a block diagram and / or flowchart, may be implemented by a dedicated hardware-based system that performs a specified function or action or executes a dedicated combination of hardware and computer instructions.

[0096] It will be apparent that the systems and / or methods described herein can be implemented in various forms of hardware, firmware, or combinations of hardware and software. The actual dedicated control hardware or software code used to implement the systems and / or methods is not a limitation of the implementation. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, and it is understood that software and hardware can be designed to implement the systems and / or methods based on the descriptions herein.

Claims

1. A method for managing device updates in a vehicle system, the method being implemented by at least one processor in the system, The processing performed by the aforementioned processor is: To obtain the information associated with the aforementioned update, To generate a message containing the aforementioned update information, To provide the aforementioned message to the device and to deploy the aforementioned update to the device, Includes, The aforementioned update comprises one of a temporary update and one of a non-temporary update. The processing performed by the aforementioned processor is: Based on the information obtained, determine the type of update that indicates a temporary update or a non-temporary update, To generate the message containing the determined type of update and the identification information of the device, Methods that include...

2. The acquisition of the information associated with the update is The method according to claim 1, comprising obtaining the information from at least one of user equipment, a build system, and a database.

3. To perform the aforementioned update and expand it, The method according to claim 1, comprising providing the message to the device via over-the-air (OTA) communication and causing the device to deploy the update based on the message.

4. The method according to claim 1, wherein the device is a remote device located in a geographical location different from the system.

5. The method according to claim 1, wherein the update is created by a first user located in a first geographical location, the information associated with the update is obtained from a second user located in a second geographical location, and the first geographical location is different from the second geographical location.

6. The update is a temporary update relating to software files in the device, the device comprising a lower layer containing the software files, and deploying the update is performed by The aforementioned message is provided to the device, and the device is told to The update software files are retrieved from the database. Create an upper layer comprising the lower layer and a software file based on the software file contained in the lower layer. The software file in the upper layer is replaced with the updated software file. The method according to claim 3, further comprising removing the update software file in the upper layer after a certain period of time.

7. The method according to claim 6, wherein the software file comprises an operating system (OS) file.

8. The update is a non-temporary update relating to software files in the device, wherein the device comprises a first partition and a second partition, the first partition and the second partition comprising the software files, and the deployment of the update is performed as follows: The aforementioned message is provided to the device, and the device is told to The update software files are retrieved from the database. Replace the software file in one of the first partition and the second partition with the updated software file. The partition containing the update software file is configured as a primary partition. The method according to claim 3, comprising restarting the device and executing the update software file as primary software.

9. A system for managing updates to devices in a vehicle system, wherein the system is Memory storage that stores executable computer instructions, At least one processor that is communicatively connected to the memory storage, The processor comprises the above, and the at least one processor executes the instructions, Obtain the information associated with the aforementioned update, A message containing the aforementioned update information is generated, The system is configured to provide the aforementioned message to the device and to deploy the aforementioned update to the device. The aforementioned update comprises one of a temporary update and one of a non-temporary update. The at least one processor executes the instruction, Based on the information obtained, determine the type of update indicating a temporary update or a non-temporary update. A system configured to generate the message containing the determined type of update and the identification information of the device.

10. The at least one processor executes the instruction, The system according to claim 9, configured to obtain information associated with the update by obtaining the information from at least one of user equipment, a build system, and a database.

11. The at least one processor executes the instruction, The system according to claim 9, configured to provide the message to the device via over-the-air (OTA) communication and to cause the device to deploy the update based on the message.

12. The system according to claim 9, wherein the device is a remote device located in a geographical location different from the system.

13. The system according to claim 9, wherein the update is created by a first user located in a first geographical location, the information associated with the update is obtained from a second user located in a second geographical location, and the first geographical location is different from the second geographical location.

14. The update is a temporary update relating to a software file in the device, the device comprising a lower layer including the software file, and the at least one processor executing the instruction, The aforementioned message is provided to the device, and the device is told to The update software files are retrieved from the database. Create an upper layer comprising the lower layer and a software file based on the software file contained in the lower layer. The software file in the upper layer is replaced with the updated software file. The system according to claim 11, configured to deploy the update by removing the update software file in the upper layer after a certain period of time.

15. The system according to claim 14, wherein the software file comprises an operating system (OS) file.

16. The update is a non-temporary update relating to software files in the device, wherein the device comprises a first partition and a second partition, the first partition and the second partition comprising the software files, and the at least one processor executing the instruction. The aforementioned message is provided to the device, and the device is told to The update software files are retrieved from the database. Replace the software file in one of the first partition and the second partition with the updated software file. The partition containing the update software file is configured as a primary partition. The system according to claim 11, wherein the update is deployed by restarting the device and executing the update software file as primary software.

17. A computer program that causes the processor to perform a method for managing the updating of devices in a vehicle system, wherein the method is: To obtain the information associated with the aforementioned update, To generate a message containing the aforementioned update information, To provide the aforementioned message to the device and to deploy the aforementioned update to the device, Includes, The aforementioned update comprises one of a temporary update and one of a non-temporary update. The aforementioned method, Based on the information obtained, determine the type of update that indicates a temporary update or a non-temporary update, To generate the message containing the determined type of update and the identification information of the device, A computer program that includes [this].

18. The acquisition of the information associated with the update is The computer program according to claim 17, comprising obtaining the information from at least one of user equipment, a build system, and a database.

19. To perform the aforementioned update and expand it, The computer program according to claim 17, comprising providing the message to the device via over-the-air (OTA) communication and causing the device to deploy the update based on the message.

20. The computer program according to claim 17, wherein the device is a remote device located in a geographical location different from the system.

Citation Information

Patent Citations

  • Gateway device, firmware update method, and control program

    JP2020173832A