WO2020149520A1 - 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체 - Google Patents

펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체 Download PDF

Info

Publication number
WO2020149520A1
WO2020149520A1 PCT/KR2019/016630 KR2019016630W WO2020149520A1 WO 2020149520 A1 WO2020149520 A1 WO 2020149520A1 KR 2019016630 W KR2019016630 W KR 2019016630W WO 2020149520 A1 WO2020149520 A1 WO 2020149520A1
Authority
WO
WIPO (PCT)
Prior art keywords
firmware
update
electronic device
partition area
files
Prior art date
Application number
PCT/KR2019/016630
Other languages
English (en)
French (fr)
Inventor
황태윤
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to US17/310,115 priority Critical patent/US20220100490A1/en
Publication of WO2020149520A1 publication Critical patent/WO2020149520A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/725Cordless telephones

Definitions

  • Various embodiments relate to a method for updating firmware, an electronic device and a storage medium therefor.
  • the electronic device may perform an update of a software package in use and a download service of new software.
  • the electronic device includes a display, at least one processor and memory, and the memory, when executed, includes the first firmware stored in the first partition area of the memory by the at least one processor.
  • Controlling the display to output information about a plurality of update files for updating, obtaining a selection associated with at least one first update file among the plurality of update files, and based on the selection, the first Instructions for storing the second firmware acquired based on at least a portion of the firmware and the at least one first update file in the second partition area of the memory may be stored.
  • a method for updating firmware in an electronic device includes outputting information about a plurality of update files for updating a first firmware stored in a first partition area of a memory of the electronic device, wherein Obtaining a selection associated with at least one first update file among a plurality of update files, and based on the selection, a second obtained based on at least a portion of the first firmware and the at least one first update file And storing the firmware in the second partition area of the memory.
  • the instructions are configured to cause the at least one processor to perform at least one operation when executed by at least one processor, wherein the at least one operation is , Outputting information about a plurality of update files for updating the first firmware stored in the first partition area of the memory of the electronic device, and selecting a selection associated with at least one of the plurality of update files Based on the acquiring operation and the selection, storing the second firmware obtained based on at least a portion of the first firmware and the at least one first update file in a second partition area of the memory may be included. have.
  • efficient firmware update may be possible by providing an optional firmware update function for items desired by the user.
  • the electronic device even if the electronic device is driven with a new version of the operating system using the updated firmware, it can be restored to its original state at any time until a final decision by the user, thereby enabling stable firmware update.
  • user convenience may be increased by establishing an environment in which an update item can be selected when updating a firmware in an electronic device (eg, a smart phone).
  • an electronic device eg, a smart phone
  • FIG. 1 is a block diagram of an electronic device in a network environment according to various embodiments of the present disclosure.
  • FIG. 2 is a system configuration diagram for updating firmware according to various embodiments of the present disclosure.
  • FIG. 3 is a diagram illustrating an example of detailed components of an electronic device for firmware update according to various embodiments of the present disclosure.
  • FIG 4 is an internal block diagram of an electronic device according to various embodiments of the present disclosure.
  • FIG 5 is an exemplary screen view for selecting an update file according to various embodiments of the present disclosure.
  • FIG. 6 is a diagram illustrating a configuration of a plurality of partition areas according to various embodiments of the present disclosure.
  • FIG. 7 is an operation flowchart for updating a firmware in an electronic device according to various embodiments of the present disclosure.
  • FIG. 8 is a screen example of a firmware update related item according to various embodiments of the present disclosure.
  • 9A is an operation flowchart for updating a firmware in an electronic device according to an embodiment.
  • FIG. 9B is an operation flowchart following the operation in FIG. 9A.
  • 10A is an operation flowchart for updating a firmware in an electronic device according to another embodiment.
  • FIG. 10B is an operation flowchart following the operation in FIG. 10A.
  • FIG. 11 is a diagram illustrating a configuration of a plurality of partition areas according to another embodiment.
  • 12A is an operation flowchart for updating a firmware in an electronic device according to another embodiment.
  • FIG. 12B is an operation flowchart following the operation in FIG. 12A.
  • FIG. 13 is an exemplary view showing contents of an update file provided from a server according to various embodiments of the present disclosure.
  • FIG. 14 is an exemplary view showing contents of an update file provided from a server according to various embodiments of the present disclosure.
  • the electronic device 101 communicates with the electronic device 102 through the first network 198 (eg, a short-range wireless communication network), or the second network 199. It may communicate with the electronic device 104 or the server 108 through (eg, a remote wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108.
  • the first network 198 eg, a short-range wireless communication network
  • the server 108 e.g, a remote wireless communication network
  • the electronic device 101 may communicate with the electronic device 104 through the server 108.
  • the electronic device 101 may include a processor 120, a memory 130, an input device 150, an audio output device 155, a display device 160, an audio module 170, a sensor module ( 176), interface 177, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196, or antenna module 197 ).
  • the components for example, the display device 160 or the camera module 180
  • the sensor module 176 eg, a fingerprint sensor, an iris sensor, or an illuminance sensor
  • the display device 160 eg, a display
  • the sensor module 176 eg, a fingerprint sensor, an iris sensor, or an illuminance sensor
  • the processor 120 executes software (eg, the program 140) to execute at least one other component (eg, hardware or software component) of the electronic device 101 connected to the processor 120. It can be controlled and can perform various data processing or operations. According to an embodiment, as at least a part of data processing or operation, the processor 120 may receive commands or data received from other components (eg, the sensor module 176 or the communication module 190) in the volatile memory 132. Loaded into, process instructions or data stored in volatile memory 132, and store result data in non-volatile memory 134.
  • software eg, the program 140
  • the processor 120 may receive commands or data received from other components (eg, the sensor module 176 or the communication module 190) in the volatile memory 132. Loaded into, process instructions or data stored in volatile memory 132, and store result data in non-volatile memory 134.
  • the processor 120 may include a main processor 121 (eg, a central processing unit or an application processor), and an auxiliary processor 123 (eg, a graphics processing unit, an image signal processor) that may be operated independently or together. , Sensor hub processor, or communication processor). Additionally or alternatively, the coprocessor 123 may be set to use lower power than the main processor 121, or to be specialized for a specified function. The coprocessor 123 may be implemented separately from the main processor 121 or as a part thereof.
  • a main processor 121 eg, a central processing unit or an application processor
  • an auxiliary processor 123 eg, a graphics processing unit, an image signal processor
  • the coprocessor 123 may be set to use lower power than the main processor 121, or to be specialized for a specified function.
  • the coprocessor 123 may be implemented separately from the main processor 121 or as a part thereof.
  • the coprocessor 123 may replace, for example, the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or the main processor 121 may be active (eg, execute an application) ) With the main processor 121 while in the state, at least one component of the components of the electronic device 101 (eg, the display device 160, the sensor module 176, or the communication module 190) It can control at least some of the functions or states associated with.
  • the coprocessor 123 eg, an image signal processor or communication processor
  • may be implemented as part of other functionally related components eg, the camera module 180 or the communication module 190). have.
  • the memory 130 may store various data used by at least one component of the electronic device 101 (eg, the processor 120 or the sensor module 176).
  • the data may include, for example, software (eg, the program 140) and input data or output data for commands related thereto.
  • the memory 130 may include a volatile memory 132 or a nonvolatile memory 134.
  • the program 140 may be stored as software in the memory 130, and may include, for example, an operating system 142, middleware 144, or an application 146.
  • the input device 150 may receive commands or data to be used for components (eg, the processor 120) of the electronic device 101 from outside (eg, a user) of the electronic device 101.
  • the input device 150 may include, for example, a microphone, mouse, keyboard, or digital pen (eg, a stylus pen).
  • the audio output device 155 may output an audio signal to the outside of the electronic device 101.
  • the audio output device 155 may include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback, and the receiver can be used to receive an incoming call.
  • the receiver may be implemented separately from the speaker, or as part thereof.
  • the display device 160 may visually provide information to the outside of the electronic device 101 (eg, a user).
  • the display device 160 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the device.
  • the display device 160 may include a touch circuitry configured to sense a touch, or a sensor circuit (eg, a pressure sensor) configured to measure the strength of the force generated by the touch. have.
  • the audio module 170 may convert sound into an electrical signal, or vice versa. According to an embodiment of the present disclosure, the audio module 170 acquires sound through the input device 150 or directly or wirelessly connects to the sound output device 155 or the electronic device 101 (for example, an external electronic device). Sound may be output through the electronic device 102 (eg, a speaker or headphones).
  • the audio module 170 acquires sound through the input device 150 or directly or wirelessly connects to the sound output device 155 or the electronic device 101 (for example, an external electronic device). Sound may be output through the electronic device 102 (eg, a speaker or headphones).
  • the sensor module 176 detects an operating state (eg, power or temperature) of the electronic device 101 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the detected state can do.
  • the sensor module 176 includes, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a biological sensor, It may include a temperature sensor, a humidity sensor, or an illuminance sensor.
  • the interface 177 may support one or more designated protocols that can be used for the electronic device 101 to directly or wirelessly connect to an external electronic device (eg, the electronic device 102).
  • the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card interface
  • audio interface audio interface
  • the connection terminal 178 may include a connector through which the electronic device 101 can be physically connected to an external electronic device (eg, the electronic device 102 ).
  • the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 179 may convert electrical signals into mechanical stimuli (eg, vibration or movement) or electrical stimuli that the user can perceive through tactile or motor sensations.
  • the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 180 may capture still images and videos. According to one embodiment, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 188 may manage power supplied to the electronic device 101.
  • the power management module 388 may be implemented, for example, as at least a part of a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • the battery 189 may supply power to at least one component of the electronic device 101.
  • the battery 189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
  • the communication module 190 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 101 and an external electronic device (eg, the electronic device 102, the electronic device 104, or the server 108). It can support establishing and performing communication through the established communication channel.
  • the communication module 190 operates independently of the processor 120 (eg, an application processor) and may include one or more communication processors supporting direct (eg, wired) communication or wireless communication.
  • the communication module 190 may include a wireless communication module 192 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (eg : Local area network (LAN) communication module, or power line communication module.
  • the corresponding communication module among these communication modules includes a first network 198 (for example, a short-range communication network such as Bluetooth, WiFi direct, or infrared data association (IrDA)) or a second network 199 (for example, a cellular network, the Internet, or It can communicate with external electronic devices through a computer network (eg, a telecommunication network, such as a LAN or WAN).
  • a wireless communication module 192 eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • LAN Local area network
  • the corresponding communication module among these communication modules includes a first network
  • the wireless communication module 192 uses a subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199.
  • IMSI International Mobile Subscriber Identifier
  • the antenna module 197 may transmit a signal or power to the outside (eg, an external electronic device) or receive it from the outside.
  • the antenna module may include a single antenna including a conductor formed on a substrate (eg, a PCB) or a radiator made of a conductive pattern.
  • the antenna module 197 may include a plurality of antennas. In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network 198 or the second network 199, is transmitted from the plurality of antennas by, for example, the communication module 190. Can be selected.
  • the signal or power may be transmitted or received between the communication module 190 and an external electronic device through the at least one selected antenna.
  • other components eg, RFIC
  • other than the radiator may be additionally formed as part of the antenna module 197.
  • peripheral devices for example, a bus, a general purpose input and output (GPIO), a serial peripheral interface (SPI), or a mobile industry processor interface (MIPI)
  • GPIO general purpose input and output
  • SPI serial peripheral interface
  • MIPI mobile industry processor interface
  • the command or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199.
  • Each of the electronic devices 102 and 104 may be the same or a different type of device from the electronic device 101.
  • all or some of the operations performed on the electronic device 101 may be performed on one or more external devices of the external electronic devices 102, 104, or 108.
  • the electronic device 101 when the electronic device 101 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 101 instead executes the function or service itself.
  • one or more external electronic devices may be requested to perform at least a portion of the function or the service.
  • the one or more external electronic devices receiving the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and deliver the result of the execution to the electronic device 101.
  • the electronic device 101 may process the result, as it is or additionally, and provide it as at least part of a response to the request.
  • cloud computing, distributed computing, or client-server computing technology can be used, for example.
  • FIG. 2 is a system configuration diagram 200 for updating firmware according to various embodiments of the present disclosure.
  • a system 200 for updating firmware may include an electronic device 201, a network 210, and a firmware over the air (FOTA) server 220.
  • FOTA firmware over the air
  • the electronic device 201 includes an operating system (OS) and a boot manager in charge of the overall operation of the electronic device 201, and the boot manager is started to operate an operating system to be used.
  • the operating system is operated through firmware, and an embedded application intended to be used in the electronic device 201, for example, an application program may be used in an environment in which the Android operating system is driven through firmware.
  • the firmware may mean a program that is used as hardware by storing major software that does not need to change data or information in memory, and a new version may be continuously developed for stable performance and bug fixes of the electronic device 201. . Accordingly, the firmware of the electronic device 201 may be updated with the new version of the firmware.
  • the firmware of the electronic device 201 may be updated in a wired or wireless manner.
  • An example of the update method is a wireless FOTA service.
  • the FOTA server 220 may provide an FOTA service that compares an existing firmware with a new version of firmware and provides only a portion to be updated corresponding to different parts. All versions of the firmware of the electronic device 201 may be uploaded and stored in the FOTA server 220 by an operator of a communication company or a manufacturer. Accordingly, the FOTA server 220 may generate an update file for updating the firmware of the electronic device 201 to the latest version of the firmware among all updateable versions and provide it to the electronic device 201.
  • the FOTA server 220 may notify the electronic device 201 when there is a new version of firmware and update the firmware.
  • the FOTA server 220 may obtain version information for the current firmware in the electronic device 201 in response to an update request from the electronic device 201, and whether there is an update file corresponding to the electronic device 201 You can search whether or not.
  • the FOTA server 220 may search for an update file newly changed since the current firmware in the electronic device 201.
  • the update file may be a file generated by extracting a delta, which is a difference between two firmwares, by comparing the current firmware of the electronic device 201 with the latest firmware provided by the FOTA server 220. Accordingly, the update file may be referred to as a delta file.
  • the delta representing the difference between the two firmware may be composed of different types of data.
  • update files may be classified according to what data type they have, and at least one of data type information for each update file and address information to which the update files will be installed may be separately displayed. It can contain one.
  • the classification of the update files may be classified according to the content as described above, but various classification criteria such as the role (or function) of the update file and the type of the update file may be applied, but may not be limited thereto.
  • different data types may correspond to a type of a patch file provided by an operator of a communication service provider or a manufacturer
  • the data type information may include, for example, an operating system upgrade or a new feature. It may be information for distinguishing the type of a patch file, such as a patch file indicating, a patch file for fixing a bug, or a patch file for security.
  • the FOTA server 220 can easily and quickly finalize the firmware of the electronic device 201 by a single update process even when there are multiple versions that need to be updated after the current version, that is, a plurality of update files. You can update to the version.
  • the electronic device 201 may receive at least one update file for updating the firmware from the FOTA server 220 through the network 210, and may update the existing firmware using the received update file.
  • the FOTA server 220 may check the updateable items of the firmware of the electronic device 201 and inform the user of the electronic device 201. Accordingly, the user of the electronic device 201 may check the updateable items and select only those items desired to be upgraded for the current firmware.
  • the FOTA server 220 may provide all items updateable for the current firmware, that is, a plurality of update files to the electronic device 201, or alternatively, items selected by a user of the electronic device 201, that is, a plurality It is also possible to provide only some of the update files of the electronic device 201.
  • the electronic device 201 may freely and selectively update the firmware using at least one update file according to a user's selection when there are multiple update files related to the current firmware.
  • the user when there are several update files that need to be updated after the current version of the firmware of the electronic device 201, the user can finally and quickly update the firmware with update files according to the user's selection, and finally the user You can update the firmware differently with various combinations of update files at any time until you confirm the update.
  • the current firmware can be updated using a plurality of update files in the user storage area, but a portion of the user storage area must be emptied in advance in order to download the plurality of update files.
  • the user storage area it is a storage area allocated to store user data such as photographs and videos, which are generated according to the use of the electronic device 201. In this case, a very large amount of space is required, which may cause limitations in utilizing the user storage area.
  • the electronic device 201 may download the update file to a separate partition area rather than a user storage area to update the firmware, and the firmware update process using the partition area will be described later in detail. .
  • FIG. 3 is a diagram 300 illustrating an example of detailed components of an electronic device for firmware update according to various embodiments of the present disclosure.
  • the electronic device 301 may include a boot loader 305, an operating system 310 including a plurality of operating systems, a kernel 320, and device hardware 330.
  • the operating system 310 may include a plurality of operating systems, for example, a first operating system 315 and a second operating system 317.
  • the operating system 310 may include one or more operating systems, and the first operating system 315 is a main operating system that operates when the electronic device is booted, and may be referred to as a host operating system, and a second operating system.
  • the operating system 317 may be referred to as a guest operating system.
  • the first operating system 315 may be an embedded environment intended for use in the electronic device 301, for example, an Android operating system, and may include a first application 316.
  • the second operating system 317 may include a second application 318.
  • the first application 316 is at least one application operable in the Android operating system, and may be referred to as an application program.
  • the first application 316 may correspond to various applications that can be operated based on the Android operating system, such as a video playback application and a web browser application.
  • the kernel 320 connects and manages the interactions between the physical components of the device hardware 330 and the individual middleware of the operating system 310, for example, the first operating system 315, thereby managing the resources of the electronic device 301.
  • Each can be assigned.
  • the kernel 320 may include a security function, a driver function for accessing components of the device hardware 330 of the electronic device 301, or a file system function for storing and managing files. It may include at least one.
  • the device hardware 330 may include various hardware devices.
  • the device hardware 330 may be devices coupled to a processor (for example, the processor 120 of FIG. 1) configured to perform various functions and operations.
  • the device hardware 330 includes at least one hardware component, and may include a processor (eg, CPU) and memory (eg, RAM).
  • the device hardware 330 may additionally include various other components and resources, such as an external storage device or an output device such as an audio device, speaker and/or display, other input devices such as a keyboard, mouse and/or touch screen. .
  • the boot loader 305 may initiate an operation.
  • the boot loader 305 may perform initialization of the CPU, RAM, and device hardware 330, and may perform a download role through the kernel 320.
  • the boot loader 305 may be included in the memory of the electronic device 301, the memory includes a boot area such as the boot loader 305, operating system information required to drive the system of the electronic device 301, It may include at least one of a user storage area for storing user data and a storage area for update files for updating firmware.
  • the operation of booting the electronic device 301 may include the following steps.
  • the electronic device 301 may be executed in response to a power-on signal of the electronic device 301 to obtain control of program execution. Subsequently, the electronic device 301 may drive the operating system by referring to the data of the partition in which the newly updated firmware is stored by the boot loader 305.
  • the boot loader 305 indicates the second partition with the newly updated firmware, not the first partition with the existing firmware, so that application programs of the operating system can be executed on the second partition.
  • the memory interior 340 of the electronic device 301 may be divided into a plurality of partition areas 350, 360, and 370 in addition to the user storage area 380.
  • the plurality of partition areas 350, 360, and 370 are largely the electronic device 301 as if the firmware is multiple, such as the first partition area 350 in which the current firmware is stored and the second partition area 360 in which the newly configured firmware is stored. ) May be an area set to be recognized.
  • each partition area (350, 360) and the second firmware 361 newly configured by the existing firmware 351, at least a portion 372 of the entire update file 371 according to the user selection The same data can be stored separately.
  • the newly configurable firmware may be two or more, such as the second firmware and the third firmware, according to a combinable number of update files.
  • the firmware of the first partition area 350 may not be deleted but may be set so that it cannot be referenced.
  • the new firmware is applied. You can return the state to the previous state. In this case, the firmware of the first partition area 350 may be referenced, and the firmware of the second partition area 360 may be deleted.
  • the downloaded update files are stored in the third partition area 370, when the user selects at least some of the update files again, the selected partial update file and the first firmware of the first partition area 350 are saved. It may be copied to the empty second partition area 360. As described above, it may be possible to update to a new firmware different from the previous version by applying (or overwriting) some selected update files to the first firmware copied to the second partition area 360.
  • FIG 4 is an internal block configuration diagram 400 of an electronic device according to various embodiments of the present disclosure.
  • the electronic device 401 is a device (eg, a smart phone or tablet computer) that controls the execution of firmware update, at least One processor 420 (eg, processor 120 of FIG. 1), memory 430 (eg, memory 130 of FIG. 1) and display 460 (eg, display device 160 of FIG. 1) It may include.
  • processor 420 eg, processor 120 of FIG. 1
  • memory 430 eg, memory 130 of FIG. 1
  • display 460 eg, display device 160 of FIG. 1
  • the electronic device 401 may be implemented by more or less components than those illustrated in FIG. 4.
  • the memory 430 may store instructions that, when executed, control the at least one processor 420 to perform various operations.
  • the memory 430 may include a boot area such as a boot loader for booting the electronic device 401 in the configuration of the electronic device 401.
  • the memory 430 stores at least one of operating system information required to drive the system of the electronic device 401, user information stored by the user, firmware update information, and security information necessary for security of the electronic device 401. It may include one storage area.
  • the interior of the memory 430 may be divided into a plurality of partition areas.
  • at least one of different programs and information may be separately stored in a plurality of partition areas.
  • the memory 430 may store first firmware used to prepare a system for loading an operating system.
  • the interior of the memory 430 may include a first partition area for storing the first firmware.
  • the first firmware may be existing firmware in the electronic device 401.
  • At least one partition area corresponding to at least one update file or a combination of update files for updating the first firmware may be generated.
  • the at least one update file may be classified according to different data types between the current firmware and the latest firmware of the electronic device 401, and may include at least one file classified according to the data type.
  • the at least one update file may include at least one of identification information enabling the electronic device 401 to display different data types separately, and address information to which the update files of the different data types are to be installed.
  • the update file may also be referred to as a delta file.
  • examples of update files that can be classified according to different data types include patch files provided by operators of operators or manufacturers, and identification information includes, for example, operating system upgrades or new functions ( feature), a patch file for fixing a bug, or information for distinguishing the type of a patch file such as a patch file for security.
  • the electronic device 401 may provide a user interface through which the user can select an update item when updating the first firmware.
  • the update item selected through the user interface that is, the selected data type
  • at least one Partition areas can be created. Accordingly, data on update items selectable by the user may be stored in at least one partition area of the plurality of partition areas to update the first firmware.
  • the processor 420 manages partitioning for firmware update and loads the updated firmware in a designated partition to load the updated firmware when the system boots.
  • the processor 420 may control the display 460 to output information about a plurality of update files for updating the first firmware stored in the first partition area of the memory 430. For example, upon receiving a plurality of update files consisting of at least one data type for updating the original first firmware, display information on the plurality of update files so that the user can select an item to update (460) Can be output via
  • the processor 420 when receiving a plurality of update files composed of at least one data type for updating the first firmware, downloads the received update files to the third partition area of the memory 430.
  • the third partition area is a different area from the user storage area, and may be created when any one of a plurality of partition areas is pre-allocated for downloading an update file or when an update file reception is required.
  • each partition area may be allocated with all resources necessary to operate as if it is an independent operating system such as a kernel, a framework, and an application.
  • the first partition area may store first firmware that supports and enables the construction and execution of the first firmware-based operating system.
  • the second firmware to which the update file is applied to the first firmware may be stored so that an operating system based on the second firmware that updates the first firmware can be built and executed.
  • the processor 420 may receive a selection associated with at least one update file among a plurality of update files output through the display 460.
  • Processor 420 is based on the user selection of at least one update file, the second firmware obtained based on at least a portion of the first firmware and the at least one update file is the second partition of the memory 430 You can store instructions to be stored in the region. For example, an update may be performed only by copying the at least one update file to all or part of the first firmware to the second partition.
  • the processor 420 When the processor 420 loads the updated firmware in the newly allocated partition area for firmware update, the updated firmware may be loaded when the system is booted. The processor 420 may perform a reboot of the system to activate the updated firmware.
  • the processor 420 may attempt to boot with the updated firmware stored in the partition designated so that the updated firmware replaces the original firmware. Accordingly, during the system reboot, a series of hardware initialization steps may occur until an operating system is loaded and system control is performed with power on.
  • the memory 430 may display the processor 420 to output information about a plurality of update files for updating the first firmware stored in the first partition area of the memory when executed.
  • Controlling 460 obtaining a selection associated with at least one first update file among the plurality of update files, and based on the selection, at least a portion of the first firmware and the at least one first update file It is possible to store instructions that allow the obtained second firmware to be stored in the second partition area of the memory.
  • the instructions may be set such that the processor 420 drives an operating system with reference to the second firmware stored in the second partition area after rebooting upon completion of the first firmware update.
  • the instructions may be set such that the processor 420 downloads the plurality of update files to a third partition area of the memory.
  • the instructions may cause the processor 420 to acquire a selection associated with a second update file of at least one of the plurality of update files, and at least a portion of the first firmware and the at least one
  • the third firmware acquired based on the second update file may be stored in the fourth partition area of the memory.
  • the instructions may be set such that the processor 420 drives the operating system with reference to the third firmware stored in the fourth partition area after rebooting upon completion of the first firmware update. have.
  • the at least one first update file may be configured as a combination corresponding to a user input for the selection among the plurality of update files.
  • the instructions, the processor 420 in response to a change request for the second firmware, acquires a selection associated with at least one third update file of the plurality of update files,
  • the second firmware stored in the second partition area of the memory may be replaced with the fourth firmware obtained based on at least a part of the first firmware and the at least one third update file.
  • the instructions are set such that the processor 420 drives an operating system with reference to the first firmware stored in the first partition area after rebooting, in response to a request to restore the first firmware. Can be.
  • information on a plurality of update files for updating the first firmware may include at least one of an operating system upgrade, a new feature addition, a bug fix, or a security fix. .
  • the instructions when the processor 420 receives an update request from a server providing the plurality of update files, receives information about the plurality of update files for updating the first firmware. It is output on the display, and based on the selection, it may be set to download the at least one first update file among the plurality of update files.
  • FIG 5 is an exemplary screen 500 for selecting an update file according to various embodiments of the present disclosure.
  • the electronic device receives firmware update from the user through the update file selection screen 510 displayed on the display (eg, the display 460 of FIG. 4 ). You can receive a selection for the items for.
  • the update file selection screen 510 selects a plurality of selectable update files 520, a description 530 for each update file, or a plurality of update files implemented in the form of a button. It may include at least one of the options (540).
  • a message asking whether to proceed with the firmware update is displayed on the display, and when the user selects the progress, a plurality of update files 521, 522, 523, and 524 classified into various data types for firmware update ) Can be displayed. At this time, a description 530 for each update file may be displayed together to help the user understand the plurality of update files.
  • update file 1 is a patch file indicating an operating system upgrade or a new feature
  • update file 2 is a patch file for fixing a bug of an existing function
  • update file 3 is a patch file for security
  • the update file N may be displayed as an N type patch file.
  • the user can select a desired update file among a plurality of update files. For example, as shown in FIG. 5, any one of a button 541 for selecting all update files, a button 542 for applying the selected update files, and a button 543 for always applying the selected options. Use to select the desired update file and choose whether to apply it.
  • various selection options for a plurality of update files may be implemented in addition to those shown in the button area 540.
  • the electronic device may perform firmware update using some selected update file.
  • FIG. 6 is a diagram 600 illustrating a configuration of a plurality of partition areas according to various embodiments.
  • FIG. 6 illustrates a memory composed of a plurality of partition areas capable of separating and storing existing firmware and new firmware.
  • the first to third partition areas 610, 620, and 630 are independent partitions, and the first partition 610 is the first operating system under the first firmware 611 corresponding to the firmware before the update, that is, the existing firmware.
  • the second partition 620 may be used to load the first operating system under the second firmware 621 corresponding to the firmware that updated the first firmware 611.
  • the first partition 610 is a partition for an operating system that was being used based on existing firmware
  • the second partition 620 is a partition for a newly configured operating system in which some update files 632 selected by a user are copied
  • the third partition 630 may be a download partition for a plurality of update files 631 for updating the first firmware.
  • the firmware may be stored in memory in different firmware forms, such as the current firmware in the electronic device and the updated firmware based on a combination of update files according to a user's selection, and any one firmware Based on the boot can be executed.
  • the second firmware 621 is a part of the first firmware 611 moved (or copied) from the first partition 610 to the second partition 620, and a plurality of updates of the third partition 630 It may be an updated firmware for the first firmware generated by applying some update files 632 moved (or copied) to the second partition 620 in response to a user's selection among the files 631.
  • the update may be performed only by copying at least a part of the first firmware 611 from the first partition 610 and some update files 632 from the third partition 630 to the second partition area 620. Can be.
  • the existing operating system 611 is loaded and used on the first partition 610, and a new operating system 621 that updates the existing operating system is loaded and used on the second partition 620.
  • the user since all update files 631 other than the combination 632 of the update file selected by the user are stored in the third partition area 630, the user finally uses the second firmware. Until it is determined, the existing first firmware may be updated to a new firmware different from the second firmware using a combination of new update files.
  • the second partition 620 may be configured by selecting new update files from among the update files 631 except for the file.
  • the user may request a change to the second firmware, and in response to the request to change the second firmware, the electronic device refers to the third partition 630 and stores all update files stored for user selection Information about 631 can be displayed on the screen. Subsequently, the electronic device may obtain a selection for at least one update file among all the stored update files 631 from the user. At this time, the selected at least one update file may include a file different from or different from the previous selection. In response to the selection, the electronic device may replace the second firmware 621 stored in the second partition area 620 with newly configured firmware by applying the selected at least one file to a part of the first firmware. That is, the second partition area 620 may be used for newly configured firmware.
  • the electronic device can be stored in the third partition area 630 even if the update file is not downloaded every time in a combination corresponding to the user selection.
  • the configuration of the second partition 620 for a new firmware corresponding to a combination of multiple update files may be possible using a plurality of stored update files.
  • FIG. 7 is an operation flowchart 700 for updating a firmware in an electronic device according to various embodiments of the present disclosure.
  • an operation method may include operations 705 to 715.
  • Each step/operation of the operation method includes an electronic device (for example, the electronic devices 101 and 401 of FIGS. 1 and 4, at least one processor of the electronic device (for example, the processors 120 of FIGS. 1 and 4)) 420)))))))))))))))))))))))))))))))))))))))))))))))))
  • the operations 705 to 715 may be omitted, the order of some operations may be changed, or another operation may be added.
  • the firmware update may be started in response to a request from a server providing an update file (eg, the FOTA server 220 of FIG. 2) or a request from the electronic device 401.
  • a server providing an update file eg, the FOTA server 220 of FIG. 2
  • a request from the electronic device 401 e.g., the FOTA server 220 of FIG. 2
  • the electronic device 401 In response to a request for a firmware update in operation 705, the electronic device 401 displays 460 to output information about a plurality of update files for updating the first firmware stored in the first partition area of the memory 430 ) Can be controlled.
  • the method may further include downloading the plurality of update files to a third partition area of the memory.
  • the electronic device 401 may download a plurality of update files for items that can be updated for the first firmware from the server and output information about the plurality of update files. For example, a plurality of update files may be analyzed through the information on the firmware to be downloaded from the server, and information indicating the type of the update file and an update for an item may be obtained for each update file.
  • after outputting information about a plurality of update files for example, it corresponds to a selection from a user from among items such as'later','install now', and'night install'
  • downloading of a plurality of update files may be performed.
  • the method may include the operation of receiving an update request from a server providing the plurality of update files, and the at least one first based on the selection of information about the output plurality of update files. It may further include an operation of downloading the update file.
  • a plurality of update files may be collectively downloaded, but upon receiving an update request from the server, the electronic device 401 may receive information about the plurality of update files for updating the first firmware.
  • the electronic device 401 may receive information about the plurality of update files for updating the first firmware.
  • the plurality of update files may be collectively downloaded to the third partition area of the memory 430.
  • the third partition area may be an area in which an empty storage area is allocated for download or a newly allocated area for download for firmware update, and may be an area other than the user storage area so that the use of the user storage area is not limited. .
  • information on a plurality of update files for updating the first firmware may include at least one of an operating system upgrade, a new feature addition, a bug fix, or a security fix. .
  • the electronic device 401 may acquire a selection associated with at least one first update file among the plurality of update files.
  • the at least one first update file may be configured as a combination corresponding to a user input for the selection among the plurality of update files. For example, after downloading a plurality of update files, information on updatable items may be displayed on the display 460 and a user's selection of at least one of the updatable items may be awaited.
  • the electronic device 401 may store the second firmware in which the at least one first update file is applied to a part of the first firmware in the second partition area of the memory based on the selection.
  • the second firmware obtained based on at least a portion of the first firmware and the at least one first update file may be stored in a second partition area of the memory.
  • the updated second firmware may be obtained through an operation of overwriting all or part of the first firmware in at least one first update file.
  • the overwrite operation is performed on the second partition area, and the second firmware generated through the overwrite operation may be stored in the second partition area.
  • the method may further include an operation of operating an operating system with reference to the second firmware stored in the second partition area after rebooting according to the completion of the first firmware update.
  • the operation of storing the second firmware in the second partition area of the memory may be based on the selection, wherein the at least one first of the plurality of update files downloaded to the third partition area is And obtaining the second firmware by copying the update file and the first firmware stored in the first partition area to the second partition area.
  • the electronic device 401 may drive an operating system (OS) with reference to the second firmware stored in the second partition area after rebooting according to the completion of the first firmware update.
  • OS operating system
  • the method is based on an operation of obtaining a selection associated with a second update file of at least one of the plurality of update files and at least a portion of the first firmware and the at least one second update file
  • the method may further include storing the obtained third firmware in the fourth partition area of the memory.
  • the method may further include an operation of operating an operating system with reference to the third firmware stored in the fourth partition area.
  • the electronic device 401 may display information on a plurality of update files downloaded on the screen, and the user From it, a selection associated with at least one second update file corresponding to another combination may be obtained.
  • a firmware update corresponding to the new combination may be performed in a fourth partition area different from the second partition area in which the second firmware is stored.
  • the firmware of the second partition area may be deleted, and the firmware of the fourth partition area may be maintained until the next update.
  • the method may include, in response to a change request for the second firmware, obtaining a selection associated with at least one third update file among the plurality of update files and at least the first firmware
  • the method may further include replacing the second firmware stored in the second partition area of the memory with a fourth firmware obtained based on a part and the at least one third update file.
  • the electronic device 401 may display information on a plurality of update files downloaded on the screen, and at least one corresponding to a different combination from the user A selection associated with the third update file can be obtained.
  • a new partition area may be configured, but the second partition area in which the second firmware is stored may be configured to be used for the new firmware.
  • the second firmware stored in the second partition area may be replaced with the updated fourth firmware by applying the at least one third update file.
  • the method may further include an operation of operating an operating system with reference to the first firmware stored in the first partition area after rebooting, in response to a request to restore the first firmware.
  • FIG. 8 is a screen example 800 of a firmware update related item according to various embodiments of the present disclosure.
  • the electronic device 401 may display a guide screen 810 for firmware update in response to a push message for firmware update from a server (eg, FOTA server 220).
  • a server eg, FOTA server 220
  • the update guide screen 810 may include updateable items 821, 822, 823, and 824 along with a message indicating that the latest firmware can be installed, and related descriptions for each update item (831, 832, 833, 834). Can.
  • the update guide screen 810 may be immediately displayed in response to a push message for updating the firmware, and is configured to notify the user that the firmware update is possible by being displayed in a preset cycle (eg, 1 day cycle, 1 week cycle). It may be.
  • a preset cycle eg, 1 day cycle, 1 week cycle. It may be.
  • the user may check items to be updated for the current firmware through the update guide screen 810 and select at least one item by, for example, a touch input using the check box 820.
  • corresponding to each update file for example, biometrics, S keyboard, system performance, S accounts, and the items to be updated (821, 822, 823, 824) to each item with a title
  • the description (831, 832, 833, 834) of what updates will be made is displayed.
  • items such as performance improvement and operating system upgrade of functions installed in the electronic device 401 are illustrated, but various items such as addition of new functions, bug fixes, or security fixes may be added.
  • the'select all' 841 button may be selected.
  • firmware update using update files corresponding to each item may be started.
  • the'apply items' 842 button may be selected. For example, if the user wants to update only the selected items, the'apply items' 842 button may be selected. For example, if the user does not like the content being updated while currently being used for the'S account' 824, only the update for the remaining items except the'S account' 824 can be selected. If it is determined to proceed with firmware update for some selected items, firmware update using update files corresponding to the selected items may be started.
  • the'always apply this option' 843 button may be selected.
  • the firmware update is performed only for the items of biometric recognition 821, S keyboard 822, and system performance 823
  • the update may be performed only on items previously selected, for example, biometric recognition 821, S keyboard 822, and system performance 823.
  • the above selection may be maintained as long as the user does not change the selection for the update item. Accordingly, it is possible to selectively upgrade only necessary parts of the firmware update, and it is also possible to maintain such a selection, so that a continuous update suitable for a user purpose may be possible.
  • FIG. 9A is an operation flowchart 900a for updating a firmware in an electronic device according to an embodiment
  • FIG. 9B is an operation flowchart 900b following the operation in FIG. 9A.
  • an operation method may include operations 905 to 980.
  • Each step/operation of the operation method includes an electronic device (for example, the electronic devices 101 and 401 of FIGS. 1 and 4, at least one processor of the electronic device (for example, the processors 120 of FIGS. 1 and 4)) 420)))
  • an electronic device for example, the electronic devices 101 and 401 of FIGS. 1 and 4, at least one processor of the electronic device (for example, the processors 120 of FIGS. 1 and 4)) 420)
  • at least one of the operations 905 to 980 may be omitted, the order of some operations may be changed, or another operation may be added.
  • the electronic device 401 may determine whether there is a firmware update request in operation 905. Operation 905 may be repeatedly performed until a firmware update request is received.
  • the firmware update request is in the form of a push message from a server providing an update file (for example, the FOTA server 220 of FIG. 2) through the display (eg, the display 460 of FIG. 4) for the firmware to be updated.
  • the request may be received, or may be the arrival of a preset update period (eg, 1 day period, 1 week period).
  • the electronic device 401 may access the server and request an update regarding the current firmware of the electronic device 401. At this time, the electronic device 401 may provide the server with information on the registered electronic device, such as version information of the current firmware and identification information of the electronic device 401, in order to receive an update file for the latest firmware from the server. have.
  • the server checks all items that can be updated for the firmware to be updated based on the information of the electronic device provided from the electronic device 401, and generates at least one update file corresponding to each item for every item that can be updated. It can be delivered to the electronic device 401 in the same way as push.
  • the at least one update file may be generated for each updateable item, for example, each data type. At this time, there may be more than one update file provided from the server for user selection of the update file.
  • the electronic device 401 may identify whether a plurality of update files for updating the first firmware stored in the first partition area, which is the firmware to be updated, is received from the server. If a plurality of update files are received, in operation 915, the electronic device 401 may download the plurality of update files in the third partition area.
  • the third partition area may be an area created for download or to allocate an empty storage area for download, not a user storage area.
  • a plurality of update files from the server may be received without user selection by a method such as push, pull, or polling, or alternatively, after waiting for user selection, the user When a selection is received, downloading of a plurality of update files may be performed.
  • the electronic device 401 may display a selection screen for a plurality of update files, and in operation 925, the electronic device 401 may identify whether at least one update file among the plurality of update files is selected.
  • the user can check update items corresponding to a plurality of update files displayed on the screen, and designate desired update items.
  • the electronic device 401 may store the updated firmware based on at least a portion of the first firmware and the selected at least one update file in the second partition area.
  • the existing firmware may be updated by overwriting (or copying) the update file in all or part of the existing firmware.
  • the first firmware of the first partition area may also be moved (or copied) to the second partition area to generate updated firmware having the same structure as the first firmware stored in the first partition area. All or part, that is, a part to be updated may be updated using the selected at least one update file.
  • the electronic device 401 may perform a reboot to drive an operating system based on the updated firmware of the second partition area.
  • the firmware update using a different combination of update files may be possible at any time without the user deciding whether to continuously use the updated firmware.
  • the electronic device 401 may identify whether a firmware change request is received. If there is no request to change the firmware, the operation returns to operation 905 and may operate based on the updated firmware, that is, the second firmware until the next firmware update is performed. On the other hand, when a firmware change request is made, for example, when the user determines that the currently updated firmware is not to be used, operation 950 of FIG. 9B may be performed.
  • the electronic device 401 may display a selection screen for the plurality of update files downloaded in the third partition area, and identify whether at least one update file is selected in operation 955. For example, the user may select update items corresponding to a plurality of update files displayed on the screen again.
  • the electronic device 401 may store the updated firmware in the second partition area based on at least a portion of the first firmware and at least one newly selected update file.
  • firmware update may be performed by simply copying at least a portion of the first firmware and at least one newly selected update file to the second partition area, and a reboot may be performed in operation 970 after the firmware update. Since operations 960 to 970 for such an update are the same as operations 930 to 945 of FIG. 9A, detailed description thereof will be omitted.
  • the electronic device 401 may identify whether a final confirmation for the updated firmware is obtained. If the final determination of the updated firmware is not obtained, the process proceeds to operation 945 of FIG. 9A, and the above-described operation may be repeatedly performed. On the other hand, when it is determined that the user will continue to use the updated firmware, it is no longer necessary to change the updated firmware, and thus, in operation 980, a plurality of update files in the third partition area may be deleted. In addition, since the first firmware in the first partition area is stored as it is, recovery may be possible at any time even if a problem occurs while downgrading to the previous version or using the updated firmware.
  • FIG. 10A is an operation flowchart 1000a for updating a firmware in an electronic device according to another embodiment
  • FIG. 10B is an operation flowchart 1000b following the operation in FIG. 10A.
  • an operation method may include 1005 to 1075 operations.
  • Each step/operation of the operation method includes an electronic device (for example, the electronic devices 101 and 401 of FIGS. 1 and 4, at least one processor of the electronic device (for example, the processors 120 of FIGS. 1 and 4)) 420)))
  • an electronic device for example, the electronic devices 101 and 401 of FIGS. 1 and 4, at least one processor of the electronic device (for example, the processors 120 of FIGS. 1 and 4)) 420)
  • the operations 1005 to 1075 may be omitted, the order of some operations may be changed, or another operation may be added.
  • the electronic device 401 may identify whether the firmware update is started. If the firmware update starts, in operation 1010, a selection screen for a plurality of update files may be displayed. The electronic device 401 may identify a combination of update files selected in operation 1015 in response to a user selection through the selection screen. Subsequently, in operation 1020, the electronic device 401 may generate at least one partition area corresponding to the combination number. For example, if there are 10 items to be updated but 3 items are desired by the user to be updated, partition regions corresponding to the combined number of 3 selected items may be generated.
  • the generated partition area can be a maximum of 7 combinations in consideration of the case where, for example, 1, 2, and 3 all are applied for each combination, and 1 partition area is added corresponding to 7 combinations. Two partition areas can be created. At this time, the seven partition regions are partition regions corresponding to each combination, and the other one may be a region for downloading all selected update files.
  • the electronic device 401 may download the selected update file to any one of the created partition areas at once.
  • the electronic device 401 may store each updated firmware in each partition area based on at least a portion of the first firmware and an update file of the combination. For example, the updated firmware may be obtained by copying update files of a corresponding combination for the first firmware for each created partition area.
  • FIG. 11 is a drawing 1100 illustrating a configuration of a plurality of partition areas according to another embodiment.
  • the existing firmware 1111 is stored in the first partition 1110, and when the number of items to be updated by the user is N, that is, when N update files are selected, N+1 Partitions 1120, 1130, 1140,..., 1150 may be newly created. For each partition area 1120, 1130, 1140,..., 1150 generated as described above, update files 1121, 1131, 1141, ..., 1151 of a corresponding combination may be copied.
  • the N+1 partition area 1150 may be a partition area for storing N update files.
  • the first combination 1121 is applied to a part of the existing firmware 1111 in the second partition area 1120 to perform firmware update, and the existing firmware 1111 is provided in the third partition area 1130.
  • the second combination 1131 is applied to a portion of the firmware update may be performed, and the third combination 1141 is applied to a portion of the existing firmware 1111 in the fourth partition area 1140 to perform firmware update.
  • the updated firmware in the second partition area 1120 to the fourth partition area 1140 may be different versions or different configurations of firmware. That is, when compared with the existing firmware, the updated items may be different firmware.
  • the partition area determined not to be used may be destroyed and incorporated into the user storage area 1160.
  • firmware may be updated differently for each partition. After the update is completed, the electronic device 401 may reboot in operation 1040.
  • New firmware generated by overwriting different combinations of update files for at least part of the existing firmware in each partition area may be stored. Accordingly, firmware updated differently for each partition area may be stored. At this time, since the user has not yet decided which firmware to use, the firmware update referring to the data of any one partition area is performed and the firmware update can be completed through a reboot.
  • step 1045 If the final determination of the updated firmware is obtained from the user in operation 1045, the partition area corresponding to the combination selected in operation 1050 is set as the main partition area, and the rest of the partition area except the main partition area You can delete them. On the other hand, if it is not determined in step 1045 that the user continues to use the updated firmware, operation 1055 of FIG. 10B may be used to identify whether a firmware change request is obtained.
  • the electronic device 401 may display a selection screen for a combination of update files in operation 1060, and obtain a selection for any one combination in operation 1065. If a selection for any one combination is obtained, the electronic device 401 may select the partition area corresponding to the combination selected in operation 1070 and update the firmware using data of the selected partition area. Subsequently, the electronic device 401 performs a reboot in operation 1075 to proceed to operation 1005 of FIG. 10A. In this way, if a partition area corresponding to each combination is allocated in advance, the time required to change to a new update file combination can be reduced.
  • FIG. 12A is an operation flowchart 1200a for updating a firmware in an electronic device according to another embodiment
  • FIG. 12B is an operation flowchart 1200b following the operation in FIG. 12A.
  • an operating method may include 1205 to 1265 operations.
  • Each step/operation of the operation method includes an electronic device (for example, the electronic devices 101 and 401 of FIGS. 1 and 4, at least one processor of the electronic device (for example, the processors 120 of FIGS. 1 and 4)) 420)))
  • an electronic device for example, the electronic devices 101 and 401 of FIGS. 1 and 4, at least one processor of the electronic device (for example, the processors 120 of FIGS. 1 and 4)) 420)
  • the operations 1205 to 1265 may be omitted, the order of some operations may be changed, or another operation may be added.
  • operations 1205 and 1210 are the same as operations 1005 and 1010 of FIG. 10A, and are identical to operations 910 and 920 of FIG. 9A, so detailed descriptions thereof will be omitted.
  • the electronic device 401 generates a third partition area corresponding to the update file selected in operation 1215 in response to the user selection while displaying an update guide screen including items for user selection for the plurality of update files. can do.
  • the electronic device 401 may designate a third partition area for the purpose of downloading the selected update file.
  • the electronic device 401 may download the selected update files in the third partition area.
  • the electronic device 401 may store the updated firmware based on at least a portion of the first firmware, which is the existing firmware, and the selected update file, in the second partition area, and reboot in operation 1235.
  • the electronic device 401 may identify whether a final confirmation for the update firmware is obtained in operation 1240.
  • the second partition area is set as the main partition area, and since the additional update is not required, the third partition area may be deleted to delete the downloaded update file.
  • the electronic device 401 may proceed to operation 1250 of FIG. 12B and identify whether a firmware change request is obtained in operation 1250. If there is a firmware change request, the electronic device 410 may identify whether to select returning to a previous state in operation 1255. If returning to the previous state is selected, in 1260, firmware recovery may be performed with the existing firmware stored in the first partition area, that is, the first firmware. In operation 1265, a reboot is performed to operate the existing firmware-based operating system. I can do it. Here, the return to the previous state may be performed in response to a user selection, but the electronic device 401 may internally return to the previous state in response to the occurrence of an event such as an error.
  • FIG. 13 is an exemplary view 1300 showing contents of an update file provided from a server according to various embodiments
  • FIG. 14 is an exemplary view 1400 showing a case where an update file provided from a server according to various embodiments is applied. .
  • FIG. 13 illustrates a schematic diagram of a data structure for an update item available in the electronic device 401, and the electronic device 401 through a server (eg, a FOTA server 220).
  • a server eg, a FOTA server 220.
  • the update file delivered to the file contains the modifications.
  • the Android operator side deals with security vulnerability details and function improvements affecting Android devices, and illustrates source code patches (1305, 1310) to fix security patch problems in devices. .
  • the update file produced in the form of a patch of the source code is for the'libpac' library 1315.
  • the above update file may be applied by replacing the'libpac' library file in the electronic device 401.
  • the electronic device 410 enters a recovery mode, mounts the currently used firmware and the update file, copies them to a new partition area, and reboots to apply the update file. Can be done. Accordingly, as illustrated in FIG. 14, it can be seen that the folder'libpac' library 1410 in the electronic device 401 has been updated with new content.
  • the electronic device 401 configures the currently installed firmware of the current version as an update item desired by the user Can be updated with the new version firmware. Moreover, even if the electronic device 401 is driven with a new version of the operating system using the updated firmware, it can be restored to the original state at any time until the final decision by the user or changed to the firmware of a combination of other update items to ensure stable firmware update. It may be possible.
  • the electronic device may be various types of devices.
  • the electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance device.
  • a portable communication device eg, a smart phone
  • a computer device e.g., a smart phone
  • a portable multimedia device e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a camera
  • a wearable device e.g., a smart watch
  • a home appliance device e.g., a smart bracelet
  • the electronic device is not limited to the aforementioned devices.
  • any (eg, first) component is referred to as “coupled” or “connected” to another (eg, second) component, with or without the term “functionally” or “communically” When referred to, it means that any of the above components can be connected directly to the other components (eg by wire), wirelessly, or through a third component.
  • module may include units implemented in hardware, software, or firmware, and may be used interchangeably with terms such as, for example, logic, logic blocks, components, or circuits.
  • the module may be an integrally configured component or a minimum unit of the component or a part thereof performing one or more functions.
  • the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • Various embodiments of the present disclosure may include one or more instructions stored in a storage medium (eg, internal memory 136 or external memory 138) readable by a machine (eg, electronic device 101). It may be implemented as software (e.g., program 140) that includes.
  • a processor eg, processor 120
  • the one or more instructions may include code generated by a compiler or code executable by an interpreter.
  • the storage medium readable by the device may be provided in the form of a non-transitory storage medium.
  • a signal eg, electromagnetic waves
  • a method according to various embodiments disclosed in this document may be provided as being included in a computer program product.
  • Computer program products can be traded between sellers and buyers as products.
  • the computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store (eg Play Store TM ) or two user devices ( For example, it can be distributed directly between smartphones) and online (eg, downloaded or uploaded).
  • a portion of the computer program product may be stored at least temporarily on a storage medium readable by a device such as a memory of a manufacturer's server, an application store's server, or a relay server, or may be temporarily generated.
  • each component (eg, module or program) of the above-described components may include a singular or a plurality of entities.
  • one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added.
  • a plurality of components eg, modules or programs
  • the integrated component may perform one or more functions of each component of the plurality of components the same or similar to that performed by the corresponding component among the plurality of components prior to the integration. .
  • operations performed by a module, program, or other component may be executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations may be executed in a different order, or omitted. , Or one or more other actions can be added.
  • the instructions are configured to cause the at least one processor to perform at least one operation when executed by at least one processor, wherein the at least one operation is , Outputting information about a plurality of update files for updating the first firmware stored in the first partition area of the memory of the electronic device, and selecting a selection associated with at least one of the plurality of update files Based on the acquiring operation and the selection, storing the second firmware obtained based on at least a portion of the first firmware and the at least one first update file in a second partition area of the memory may be included. have.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

다양한 실시 예에 따르면, 전자 장치는, 디스플레이, 프로세서 및 메모리를 포함하며, 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 메모리의 제1 파티션 영역에 저장된 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보를 출력하도록 상기 디스플레이를 제어하고, 상기 복수의 업데이트 파일들 중 적어도 하나의 제1 업데이트 파일과 연관된 선택을 획득하고, 상기 선택에 근거하여, 상기 제1 펌웨어의 일부에 상기 적어도 하나의 제 1 업데이트 파일을 적용한 제2 펌웨어가 상기 메모리의 제2 파티션 영역에 저장되도록 하는 인스트럭션들을 저장할 수 있다. 다른 실시 예가 가능하다.

Description

펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체
다양한 실시 예는 펌웨어를 업데이트하기 위한 방법, 이를 위한 전자 장치 및 저장 매체에 관한 것이다.
스마트 폰(smart phone)과 같은 전자 장치의 이동통신 네트워크와 프로세서의 처리 속도가 빨라지면서 다양한 개방형 운영 체제와 신규 서비스를 탑재한 스마트 폰들이 등장하고 있다. 이러한 전자 장치는 제조사에 의해 시중에 유통될 때 탑재된 운영 체제와 같은 소프트웨어 패키지에 대해 새로운 특징을 추가하거나 에러 및 결함을 수정하기 위해 때때로 업데이트를 수행할 수 있다. 이에 따라 전자 장치는 무선 네트워크를 통해 변경된 전체 소프트웨어 패키지를 모두 다운로드 받아 업데이트할 수 있으나, 유선을 통한 업데이트 방식과는 달리 속도의 한계로 인하여 업데이트 시간이 증가하고 상황에 따라 제조사 또는 사용자에게 과금되는 상황이 발생할 수 있다. 따라서 대용량의 소프트웨어 패키지의 경우에는 업데이트를 이용하여 새로운 패키지 전체를 전송하고 인스톨하는 것은 불편하거나 비효율적일 수 있다.
이를 해결하기 위해 업데이트를 위한 데이터량을 최소화하는 다양한 방법들이 시도되고 있다. 예를 들어, 이전 소프트웨어에서 변경된 부분만을 업데이트하는 차등 업데이트(differential update)하는 방법이 있다. 이에 따라 제조사에 의해 전자 장치가 버그 픽스(bug fix), 기능 향상과 같은 펌웨어 업데이트를 수행하는 경우, 새로운 펌웨어를 다운로드 받아 저장 공간에 저장할 수 있다.
상기한 바와 같이 전자 장치는 다양한 서비스를 지원하기 위해 기존에 사용 중이던 소프트웨어 패키지에 대한 업데이트 및 신규 소프트웨어의 다운로드 서비스를 수행할 수 있다.
하지만, 펌웨어 업데이트 과정에서 문제가 발생하는 경우 예를 들어, 수정된 소프트웨어가 불완전하게 동작하거나 전혀 동작하지 않는 경우 이전 펌웨어를 복구용 펌웨어로 사용할 수 있으나, 이전 펌웨어와 새로운 펌웨어를 위해 많은 양의 저장 공간이 필요할 수 있으며, 저장 공간을 활용하는 데 한계가 있을 수 있다. 게다가 최근에는 제조사의 버그 수정, 운영 체제 제공자의 버그 수정, 보안 수정 사항, 운영 체제 업그레이드와 같이 여러 가지가 복합적으로 구성된 사항들이 한꺼번에 업데이트되고 있다.
따라서 상기한 바를 고려하여 펌웨어 업데이트 시 문제가 발생하더라도 복구가 정상적으로 이루어질 수 있도록 펌웨어 업데이트에 따라 발생하는 문제를 최소화할 수 있으면서도, 안정적인 펌웨어 업데이트가 가능한 방법이 필요할 것이다.
다양한 실시 예에 따르면, 전자 장치는, 디스플레이, 적어도 하나의 프로세서 및 메모리를 포함하며, 상기 메모리는, 실행 시에, 상기 적어도 하나의 프로세서가, 상기 메모리의 제1 파티션 영역에 저장된 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보를 출력하도록 상기 디스플레이를 제어하고, 상기 복수의 업데이트 파일들 중 적어도 하나의 제1 업데이트 파일과 연관된 선택을 획득하고, 상기 선택에 근거하여, 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제1 업데이트 파일에 기반하여 획득된 제2 펌웨어를 상기 메모리의 제2 파티션 영역에 저장되도록 하는 인스트럭션들을 저장할 수 있다.
다양한 실시 예에 따르면, 전자 장치에서 펌웨어를 업데이트하기 위한 방법은, 상기 전자 장치의 메모리의 제1 파티션 영역에 저장된 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보를 출력하는 동작, 상기 복수의 업데이트 파일들 중 적어도 하나의 제1 업데이트 파일과 연관된 선택을 획득하는 동작 및 상기 선택에 근거하여, 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제1 업데이트 파일에 기반하여 획득된 제2 펌웨어를 상기 메모리의 제2 파티션 영역에 저장하는 동작을 포함할 수 있다.
다양한 실시 예에 따르면, 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 전자 장치의 메모리의 제1 파티션 영역에 저장된 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보를 출력하는 동작, 상기 복수의 업데이트 파일들 중 적어도 하나의 제1 업데이트 파일과 연관된 선택을 획득하는 동작 및 상기 선택에 근거하여, 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제1 업데이트 파일에 기반하여 획득된 제2 펌웨어를 상기 메모리의 제2 파티션 영역에 저장하는 동작을 포함할 수 있다.
다양한 실시 예에서는, 전자 장치가 펌웨어 업데이트를 위해 새로운 펌웨어를 다운받을 때 사용자가 원하는 사항들에 대한 선택적 펌웨어 업데이트 기능을 제공함으로써 효율적인 펌웨어 업데이트가 가능할 수 있다.
다양한 실시 예에서는, 전자 장치가 업데이트된 펌웨어를 이용한 운영 체제의 새 버전으로 구동되더라도 사용자에 의한 최종 결정이 있기 전까지는 언제든지 원상태로 복구될 수 있어 안정적인 펌웨어 업데이트가 가능할 수 있다.
다양한 실시 예에서는, 전자 장치(예: 스마트 폰)에서 펌웨어 업데이트 시 업데이트 항목을 선택할 수 있는 환경을 구축함으로써 사용자 편리성을 높일 수 있다.
도 1은 다양한 실시 예에 따른 네트워크 환경 내의 전자 장치의 블럭도이다.
도 2는 다양한 실시 예에 따른 펌웨어를 업데이트하기 위한 시스템 구성도이다.
도 3은 다양한 실시 예에 따른 펌웨어 업데이트를 위한 전자 장치의 상세 구성 요소들의 일 예를 나타낸 도면이다.
도 4는 다양한 실시 예에 따른 전자 장치의 내부 블록 구성도이다.
도 5는 다양한 실시 예에 따른 업데이트 파일을 선택하기 위한 화면 예시도이다.
도 6은 다양한 실시 예에 따른 복수의 파티션 영역의 구성을 예시한 도면이다.
도 7은 다양한 실시 예에 따른 전자 장치에서 펌웨어 업데이트를 위한 동작 흐름도이다.
도 8은 다양한 실시 예에 따른 펌웨어 업데이트 관련 항목에 대한 화면 예시도이다.
도 9a는 일 실시 예에 따른 전자 장치에서 펌웨어 업데이트를 위한 동작 흐름도이다.
도 9b는 상기 도 9a에서의 동작에 이어지는 동작 흐름도이다.
도 10a는 다른 실시 예에 따른 전자 장치에서 펌웨어 업데이트를 위한 동작 흐름도이다.
도 10b는 상기 도 10a에서의 동작에 이어지는 동작 흐름도이다.
도 11은 다른 실시 예에 따른 복수의 파티션 영역의 구성을 예시한 도면이다.
도 12a는 또 다른 실시 예에 따른 전자 장치에서 펌웨어 업데이트를 위한 동작 흐름도이다.
도 12b는 상기 도 12a에서의 동작에 이어지는 동작 흐름도이다.
도 13은 다양한 실시 예에 따른 서버로부터 제공되는 업데이트 파일의 내용을 보여주는 예시도이다.
도 14는 다양한 실시 예에 따른 서버로부터 제공되는 업데이트 파일의 내용을 보여주는 예시도이다.
본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 일반적으로 사용되는 사전에 정의된 용어들은 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미를 가지는 것으로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 발명의 실시 예들을 배제하도록 해석될 수 없다.
도 1은, 다양한 실시 예에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시 예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 어떤 실시 예에서는, 이 구성 요소들 중 일부들은 하나의 통합된 회로로 구현될 수 있다. 예를 들면, 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)은 표시 장치(160)(예: 디스플레이)에 임베디드된 채 구현될 수 있다
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시 예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시 예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서(123)은 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시 예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성 요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성 요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(150)는, 예를 들면, 마이크, 마우스, 키보드, 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 장치(155)는, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있고, 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시 예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
표시 장치(160)는 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 표시 장치(160)는, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시 예에 따르면, 표시 장치(160)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서)를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시 예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시 예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시 예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시 예에 따르면, 연결 단자(178)은, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시 예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시 예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시 예에 따르면, 전력 관리 모듈(388)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급할 수 있다. 일 실시 예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시 예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)으로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시 예에 따르면, 안테나 모듈은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 하나의 안테나를 포함할 수 있다. 일 실시 예에 따르면, 안테나 모듈(197)은 복수의 안테나들을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시 예에 따르면, 방사체 이외에 다른 부품(예: RFIC)이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시 예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시 예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치들(102, 104, or 108) 중 하나 이상의 외부 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 다양한 실시 예에 따른 펌웨어를 업데이트하기 위한 시스템 구성도(200)이다.
도 2를 참조하면, 펌웨어를 업데이트하기 위한 시스템(200)은 전자 장치(201), 네트워크(210) 및 FOTA(firmware over the air) 서버(220)를 포함할 수 있다.
전자 장치(201)는 전자 장치(201)의 전반적인 동작을 담당하는 운영체제(operating system: OS) 및 부트 매니저(boot manager)를 포함하며, 부트 매니저가 기동되어 사용하고자 하는 운영체제가 구동될 수 있다. 운영체제는 펌웨어(firmware)를 통해 운영되며, 전자 장치(201)에서 사용하도록 의도된 임베디드 환경 예를 들어, 펌웨어를 통해 안드로이드 운영체제가 구동된 환경 하에서 응용 프로그램이 사용될 수 있다.
펌웨어는 데이터나 정보를 변경할 필요가 없는 주요한 소프트웨어를 메모리에 저장하여 하드웨어처럼 사용되는 프로그램을 의미할 수 있고, 전자 장치(201)의 안정된 성능과 버그 수정을 위해 지속적으로 새로운 버전이 개발될 수 있다. 이에 따라 새로운 버전의 펌웨어로 전자 장치(201)의 펌웨어가 업데이트될 수 있다. 전자 장치(201)의 펌웨어는 유선 또는 무선 방식으로 업데이트될 수 있는데, 업데이트 방식 중의 한 예로 무선 방식의 FOTA 서비스가 있다.
FOTA 서버(220)는 기존 펌웨어와 새로운 버전의 펌웨어를 비교하여 서로 다른 부분에 해당하는 업데이트해야 할 부분만을 제공하는 FOTA 서비스를 제공할 수 있다. FOTA 서버(220)에는 통신 사업자 또는 제조사의 운용자에 의해 전자 장치(201)의 펌웨어에 관한 모든 버전들이 업로드되어 저장될 수 있다. 이에 따라 FOTA 서버(220)는 업데이트 가능한 모든 버전 중 전자 장치(201)의 펌웨어를 최신 버전의 펌웨어로 업데이트하기 위한 업데이트 파일을 생성하여 전자 장치(201)로 제공할 수 있다.
FOTA 서버(220)는 새로운 버전의 펌웨어가 있는 경우 전자 장치(201)로 이를 알리고 펌웨어를 업데이트하도록 할 수 있다. 또한, FOTA 서버(220)는 전자 장치(201)로부터의 업데이트 요청에 대응하여 전자 장치(201) 내의 현재 펌웨어에 대한 버전 정보를 획득할 수 있으며, 전자 장치(201)에 대응되는 업데이트 파일이 있는지의 여부를 검색할 수 있다. FOTA 서버(220)는 전자 장치(201) 내의 현재 펌웨어 이후로 새롭게 변경된 업데이트 파일이 있는지를 검색할 수 있다.
다양한 실시 예에 따르면, 업데이트 파일은 전자 장치(201)의 현재 펌웨어와 FOTA 서버(220)에서 제공 가능한 최신 펌웨어를 비교하여 두 펌웨어 간의 차이인 델타를 추출하여 생성한 파일일 수 있다. 이에 따라 업데이트 파일은 델타 파일이라고 칭할 수 있다. 이때, 두 펌웨어 간의 차이를 나타내는 델타는 서로 다른 유형의 데이터들로 구성된 것일 수 있다. 예를 들어, 어떠한 내용을 가지는 데이터 유형인지에 따라 업데이트 파일들을 분류할 수 있는데, 이러한 업데이트 파일들을 구분하여 표시할 수 있도록 각 업데이트 파일들마다 데이터 유형 정보, 상기 업데이트 파일들이 설치될 주소 정보 중 적어도 하나를 포함할 수 있다. 업데이트 파일들에 대한 분류는 상기한 바와 같이 내용에 따라 분류할 수도 있지만, 업데이트 파일의 역할(또는 기능), 업데이트 파일의 종류와 같이 다양한 분류 기준이 적용될 수 있으며, 이에 한정되지 않을 수 있다.
한 실시 예에 따르면, 서로 다른 데이터 유형들은 통신 사업자 또는 제조사의 운용자에 의해 제공되는 패치(patch) 파일의 종류에 대응할 수 있으며, 데이터 유형 정보는 예를 들어, 운영체제 업그레이드 또는 새로운 기능(feature)을 나타내는 패치 파일, 버그 수정을 위한 패치 파일, 또는 보안을 위한 패치 파일과 같은 패치 파일의 종류를 구분하기 위한 정보일 수 있다.
상기한 바와 같이 FOTA 서버(220)는 전자 장치(201)의 펌웨어에 관해 현재 버전 이후에 업데이트해야 하는 여러 버전들 즉, 복수의 업데이트 파일들이 있는 경우에도 한 번의 업데이트 과정에 의해 간편하고 신속하게 최종 버전으로 업데이트시킬 수 있다.
전자 장치(201)는 네트워크(210)를 통해 FOTA 서버(220)로부터 펌웨어를 업데이트하기 위한 적어도 하나의 업데이트 파일을 수신할 수 있으며, 수신된 업데이트 파일을 이용하여 기존의 펌웨어를 업데이트할 수 있다. 다양한 실시 예에 따르면, FOTA 서버(220)는 전자 장치(201)의 펌웨어에 대해 업데이트 가능한 사항들을 확인하여 전자 장치(201)의 사용자에게 알릴 수 있다. 이에 따라 전자 장치(201)의 사용자는 업데이트 가능한 사항들을 확인하여 현재 펌웨어에 대해 업그레이드하기를 원하는 사항들만을 선택할 수 있다. FOTA 서버(220)는 현재 펌웨어에 대해 업데이트 가능한 모든 항목들 즉, 복수의 업데이트 파일들을 전자 장치(201)로 제공할 수 있으며, 다르게는 전자 장치(201)의 사용자에 의해 선택된 항목들 즉, 복수의 업데이트 파일들 중 일부 파일만을 전자 장치(201)로 제공할 수도 있다.
이에 따라 전자 장치(201)는 현재 펌웨어에 관한 업데이트 파일이 복수 개일 경우 사용자 선택에 따라 적어도 하나의 업데이트 파일을 이용하여 자유롭게 선택적으로 펌웨어를 업데이트할 수 있다.
다양한 실시 예에 따르면, 전자 장치(201)의 펌웨어에 관해 현재 버전 이후에 업데이트해야 하는 여러 업데이트 파일들이 있는 경우 사용자의 선택에 따른 업데이트 파일들로 간편하고 신속하게 펌웨어를 업데이트하면서도 사용자가 최종적으로 펌웨어 업데이트 사항에 대해 확정하기 전까지는 언제든지 업데이트 파일들의 다양한 조합으로 펌웨어를 다르게 업데이트할 수 있다.
이를 위해 펌웨어 업데이트를 위한 복수의 업데이트 파일의 경우 사용자 저장 영역에 모두 다운로드될 수 있다. 이에 따라 사용자 저장 영역의 복수의 업데이트 파일을 이용하여 현재 펌웨어를 업데이트할 수 있으나, 복수의 업데이트 파일의 다운로드를 위해서는 항상 사용자 저장 영역의 일부를 미리 비워둔 채로 유지해야 한다. 하지만 사용자 저장 영역의 경우 전자 장치(201)의 사용에 따라 생성되는 데이터 예를 들어 촬영한 사진, 동영상과 같은 사용자 데이터를 저장하기 위해 할당된 저장 영역이므로, 오랫동안 펌웨어 업데이트를 수행하지 않은 경우까지 대비할 경우 매우 많은 공간이 필요하게 되어 사용자 저장 영역을 활용하는 데 한계가 생길 수 있다.
따라서 다양한 실시 예에 따른 전자 장치(201)는 업데이트 파일을 사용자 저장 영역이 아닌 별도의 파티션 영역에 다운로드 하여 펌웨어를 업데이트할 수 있으며, 파티션 영역을 이용한 펌웨어 업데이트 과정은 하기에서 구체적으로 후술하기로 한다.
도 3은 다양한 실시 예에 따른 펌웨어 업데이트를 위한 전자 장치의 상세 구성 요소들의 일 예를 나타낸 도면(300)이다.
도 3을 참조하면, 전자 장치(301)는 부트로더(boot loader)(305), 복수의 운영체제를 포함하는 운영체제(310), 커널(320) 및 디바이스 하드웨어(330)를 포함할 수 있다. 상기 운영체제(310)는 복수의 운영체제를 포함할 수 있으며, 예를 들어, 제1 운영체제(315) 및 제2 운영체제(317)를 포함할 수 있다.
한 실시 예에 따르면, 운영체제(310)는 하나 이상의 운영체제를 포함할 수 있으며, 제1 운영체제(315)는 전자 장치가 부팅되면 동작하는 메인 운영체제로, 호스트(host) 운영체제라고 칭할 수 있으며, 제2 운영체제(317)는 게스트(guest) 운영체제라고 칭할 수 있다. 예를 들어, 제1 운영체제(315)는 전자 장치(301)에서 사용하도록 의도된 임베디드 환경 예를 들어, 안드로이드 운영체제일 수 있으며, 제1 어플리케이션(316)을 포함할 수 있다. 또한 제2 운영체제(317)는 제2 어플리케이션(318)을 포함할 수 있다. 여기서, 제1 어플리케이션(316)은 안드로이드 운영체제에서 동작 가능한 적어도 하나의 어플리케이션으로, 어플리케이션 프로그램으로 지칭될 수 있다. 예를 들어, 제1 어플리케이션(316)은 동영상 재생 어플리케이션, 웹 브라우저 어플리케이션과 같은 안드로이드 운영체제를 기반으로 동작 가능한 다양한 어플리케이션들이 해당될 수 있다.
커널(320)은 디바이스 하드웨어(330)의 물리적 구성요소들과 운영체제(310) 예를 들어, 제1 운영체제(315)의 개별 미들웨어 사이의 상호 작용을 연결 및 관리함으로써 전자 장치(301)의 리소스들을 각각 할당할 수 있다. 예를 들어, 커널(320)은 보안 기능, 전자 장치(301)의 디바이스 하드웨어(330)의 구성 요소들에 접근하기 위한 드라이버 기능, 또는 파일 저장 및 파일을 관리하는 파일 시스템(file system) 기능 중 적어도 하나를 포함할 수 있다.
디바이스 하드웨어(330)는 다양한 하드웨어 디바이스를 포함할 수 있다. 디바이스 하드웨어(330)는 다양한 함수와 연산을 수행하도록 구성되는 프로세서(예: 도 1의 프로세서(120))에 결합된 디바이스들일 수 있다. 다양한 실시 예에 따르면, 디바이스 하드웨어(330)는 적어도 하나의 하드웨어 구성 요소를 포함하며, 프로세서(예: CPU), 메모리(예: RAM)를 포함할 수 있다. 디바이스 하드웨어(330)는 추가적으로 키보드, 마우스 및/또는 터치 스크린과 같은 다른 입력 디바이스, 오디오 디바이스, 스피커 및/또는 디스플레이와 같은 출력 디바이스 또는 외부 저장 장치와 같이 다양한 다른 컴포넌트들 및 리소스들을 포함할 수 있다.
전자 장치(301)에서 운영체제(310)의 로딩을 위해 우선 부트로더(305)가 동작을 개시할 수 있다. 부트로더(305)는 CPU, RAM, 디바이스 하드웨어(330)의 초기화를 수행하고, 커널(320)을 통한 다운로드 역할을 수행할 수 있다. 일 실시 예에 따르면, 부트로더(305)는 전자 장치(301)의 메모리에 포함될 수 있으며, 메모리는 부트로더(305)와 같은 부팅 영역, 전자 장치(301)의 시스템을 구동하는데 필요한 운영체제 정보, 사용자 데이터를 저장하는 사용자 저장 영역, 펌웨어를 업데이트하기 위한 업데이트 파일에 대한 저장 영역 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에 따라 전자 장치(301)를 부팅하는 동작은 하기와 같은 단계들을 포함할 수 있다. 전자 장치(301)는 프로그램 실행의 제어를 획득하기 위해 전자 장치(301)의 전원 온 신호에 응답하여 실행될 수 있다. 이어, 전자 장치(301)는 부트로더(305)에 의해 새롭게 업데이트된 펌웨어가 저장되어 있는 파티션의 데이터를 참조하여 운영체제를 구동시킬 수 있다. 부트로더(305)는 기존의 펌웨어가 있는 제1 파티션이 아닌 새롭게 업데이트된 펌웨어가 있는 제2 파티션을 지시하여, 제2 파티션 상에서 운영체제의 응용 프로그램들이 실행될 수 있다.
다양한 실시 예에 따르면, 전자 장치(301)의 메모리 내부(340)는 사용자 저장 영역(380) 이외에 복수의 파티션 영역(350, 360, 370)으로 구분될 수 있다. 복수의 파티션 영역(350, 360, 370)은 크게 현재 펌웨어가 저장되는 제1 파티션 영역(350), 새롭게 구성된 펌웨어가 저장되는 제2 파티션 영역(360)과 같이 펌웨어가 여러 개인 것처럼 전자 장치(301)가 인식할 수 있도록 설정된 영역일 수 있다. 일 실시 예에 따르면, 각각의 파티션 영역(350, 360)은 기존의 펌웨어(351), 사용자 선택에 따라 전체 업데이트 파일(371)의 적어도 일부(372)에 의해 새롭게 구성된 제2 펌웨어(361)와 같은 데이터를 각각 구분하여 저장할 수 있다.
이때, 제1 파티션 영역(350) 및 제2 파티션 영역(360)은 각각 격리되어 운영되기 때문에 어느 하나의 파티션 영역(350, 360)의 펌웨어를 기반으로 운영 체제가 구동될 수 있는 환경을 제공할 수 있다. 일 실시 예에 따르면, 새롭게 구성 가능한 펌웨어는 업데이트 파일의 조합 가능한 수에 따라 제2 펌웨어, 제3 펌웨어와 같이 둘 이상일 수 있다.
예를 들어, 제2 파티션 영역(360)의 펌웨어를 기반으로 운영 체제가 구동된 경우에는 제1 파티션 영역(350)의 펌웨어는 삭제되지는 않으나 참조될 수 없도록 설정될 수 있다. 다만, 전자 장치(301)가 제2 파티션 영역(360)의 새로운 펌웨어를 기반으로 운영 체제가 구동된 상태에서 사용자가 전자 장치(301)의 어플리케이션을 이용하는 도중에 문제가 발생하는 경우에는 새로운 펌웨어를 적용한 상태를 이전 상태로 되돌릴 수 있다. 이러한 경우 제1 파티션 영역(350)의 펌웨어가 참조될 수 있으며, 제2 파티션 영역(360)의 펌웨어는 삭제될 수 있다.
또한, 제3 파티션 영역(370)에는 다운로드한 업데이트 파일들이 저장되어 있기 때문에, 업데이트 파일들 중 적어도 일부를 사용자가 다시 선택할 경우, 선택된 일부 업데이트 파일과 제1 파티션 영역(350)의 제1 펌웨어를 비어 있는 제2 파티션 영역(360)에 복사할 수 있다. 이와 같이 제2 파티션 영역(360)으로 복사된 제1 펌웨어에 선택된 일부 업데이트 파일을 적용(또는 덮어쓰기)함으로써 이전 버전과는 다른 새로운 펌웨어로 업데이트하는 것이 가능할 수 있다.
도 4는 다양한 실시 예에 따른 전자 장치의 내부 블록 구성도(400)이다.
도 4를 참조하면, 다양한 실시 예에 따른 전자 장치(401)(예: 도 1의 전자 장치(101))는 펌웨어 업데이트의 실행을 제어하는 장치(예: 스마트 폰, 또는 태블릿 컴퓨터)로서, 적어도 하나의 프로세서(420)(예: 도 1의 프로세서(120)), 메모리(430)(예: 도 1의 메모리(130)) 및 디스플레이(460)(예: 도 1의 표시 장치(160))를 포함할 수 있다. 여기서, 도 4에 도시된 모든 구성 요소가 전자 장치(401)의 필수 구성 요소인 것은 아니며, 도 4에 도시된 구성 요소보다 많거나 적은 구성 요소에 의해 전자 장치(401)가 구현될 수도 있다.
메모리(430)는, 실행 시에, 상기 적어도 하나의 프로세서(420)가 각종 동작들을 수행하도록 제어하는 인스트럭션들을 저장할 수 있다.
메모리(430)는 전자 장치(401)의 구성에 있어 전자 장치(401)를 부팅시키는 부트 로더(boot loader)같은 부팅 영역을 포함할 수 있다. 또한 메모리(430)는, 전자 장치(401)의 시스템을 구동하는데 필요한 운영체제 정보, 사용자에 의해 저장된 사용자 정보, 펌웨어 업데이트 정보, 전자 장치(401)의 보안에 필요한 보안 정보 중 적어도 하나를 저장하는 적어도 하나의 저장 영역을 포함할 수 있다.
다양한 실시 예에 따르면, 메모리(430)의 내부는 복수의 파티션 영역으로 구분될 수 있다. 여기서 복수의 파티션 영역에는 서로 다른 프로그램, 정보 중 적어도 하나를 각각 구분하여 저장할 수 있다.
다양한 실시 예에 따르면, 메모리(430)는 운영체제를 로딩하는 시스템을 준비하는데 사용되는 제1 펌웨어를 저장할 수 있다. 일 실시 예에서, 메모리(430)의 내부는 제1 펌웨어를 저장하는 제1 파티션 영역을 포함할 수 있다. 여기서, 제1 펌웨어는 전자 장치(401) 내의 기존 펌웨어일 수 있다.
다양한 실시 예에 따르면, 제1 펌웨어를 업데이트하기 위한 적어도 하나의 업데이트 파일 또는 업데이트 파일의 조합에 대응하는 적어도 하나의 파티션 영역이 생성될 수 있다.
다양한 실시 예에 따르면, 적어도 하나의 업데이트 파일은 전자 장치(401)의 현재 펌웨어와 최신 펌웨어 간의 서로 다른 데이터 유형에 따라 분류될 수 있으며, 데이터 유형에 따라 분류된 적어도 하나의 파일을 포함할 수 있다. 적어도 하나의 업데이트 파일은 전자 장치(401)에서 서로 다른 데이터 유형들을 구분하여 표시할 수 있도록 하는 식별 정보, 상기 서로 다른 데이터 유형의 업데이트 파일이 설치될 주소 정보 중 적어도 하나를 포함할 수 있다. 일 실시 예에 따르면, 업데이트 파일은 델타 파일이라고 칭할 수도 있다.
다양한 실시 예에 따르면, 서로 다른 데이터 유형에 따라 분류 가능한 업데이트 파일의 예로는 통신 사업자 또는 제조사의 운용자에 의해 제공되는 패치(patch) 파일이 있으며, 식별 정보는 예를 들어, 운영체제 업그레이드 또는 새로운 기능(feature)을 나타내는 패치 파일, 버그 수정을 위한 패치 파일, 또는 보안을 위한 패치 파일과 같은 패치 파일의 종류를 구분하기 위한 정보일 수 있다.
예를 들어, 전자 장치(401)에서 제1 펌웨어 업데이트 시 사용자가 업데이트 항목을 선택할 수 있는 사용자 인터페이스를 제공할 수 있는데, 사용자 인터페이스를 통해 선택된 업데이트 항목 즉, 선택된 데이터 유형에 대응하여, 적어도 하나의 파티션 영역이 생성될 수 있다. 이에 따라 복수의 파티션 영역 중 적어도 하나의 파티션 영역에 상기 제1 펌웨어를 업데이트하기 위해 사용자 선택이 가능한 업데이트 항목들에 대한 데이터를 저장할 수 있다.
프로세서(420)는 펌웨어 업데이트를 위한 파티셔닝을 관리하고 지정된 파티션에 업데이트된 펌웨어를 로딩하면 시스템이 부팅될 때 업데이트된 펌웨어를 로딩할 수 있다.
프로세서(420)는 메모리(430)의 제1 파티션 영역에 저장된 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보를 출력하도록 상기 디스플레이(460)를 제어할 수 있다. 예를 들어, 원래의 제1 펌웨어를 업데이트하기 위한 적어도 하나의 데이터 유형으로 구성된 복수의 업데이트 파일 수신 시, 사용자가 업데이트를 원하는 항목을 선택할 수 있도록 복수의 업데이트 파일들에 대한 정보를 디스플레이(460)를 통해 출력할 수 있다.
다양한 실시 예에 따르면, 프로세서(420)는 상기 제1 펌웨어를 업데이트하기 위한 적어도 하나의 데이터 유형으로 구성된 복수의 업데이트 파일 수신 시, 수신되는 업데이트 파일을 메모리(430)의 제3 파티션 영역에 다운로드할 수 있다. 여기서, 제3 파티션 영역은 사용자 저장 영역과는 상이한 영역으로, 복수의 파티션 영역 중에서 어느 하나가 업데이트 파일 다운로드용으로 미리 할당되거나, 업데이트 파일 수신이 요구되는 상황이 발생할 경우에 생성될 수 있다.
일 실시 예에 따르면, 각각의 파티션 영역은 커널, 프레임워크, 어플리케이션과 같은 독립적인 운영체제인 것처럼 동작하는 데 필요한 모든 리소스가 할당될 수 있다. 예를 들어, 제1 파티션 영역에는 제1 펌웨어 기반의 운영체제를 구축하여 실행하는 것을 지원하고 가능하게 하는 제1 펌웨어가 저장될 수 있다. 또한 제2 파티션 영역에는 제1 펌웨어를 업데이트한 제2 펌웨어 기반의 운영체제를 구축하여 실행될 수 있도록 제1 펌웨어에 대해 업데이트 파일을 적용한 제2 펌웨어가 저장될 수 있다.
다양한 실시 예에 따르면, 프로세서(420)는 디스플레이(460)를 통해 출력되는 복수의 업데이트 파일들 중 적어도 하나의 업데이트 파일과 연관된 선택을 수신할 수 있다. 프로세서(420)는 적어도 하나의 업데이트 파일에 대한 사용자 선택에 근거하여, 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 업데이트 파일에 기반하여 획득된 제2 펌웨어가 상기 메모리(430)의 제2 파티션 영역에 저장되도록 하는 인스트럭션들을 저장할 수 있다. 예를 들어, 상기 제2 파티션으로 상기 제1 펌웨어 전체 또는 일부에 상기 적어도 하나의 업데이트 파일을 복사하는 동작만으로 업데이트가 수행될 수 있다.
프로세서(420)는 펌웨어 업데이트를 위해 새롭게 할당된 파티션 영역에 업데이트된 펌웨어를 로딩하면, 시스템이 부팅될 때 업데이트된 펌웨어가 로딩될 수 있다. 프로세서(420)는 업데이트된 펌웨어를 활성화하기 위해 시스템의 리부트를 수행할 수 있다.
프로세서(420)는 시스템 리부트 동안에는 업데이트된 펌웨어가 원래의 펌웨어를 대체하도록 지정된 파티션에 저장된 업데이트된 펌웨어로 부팅을 시도할 수 있다. 이에 따라 시스템 리부트 동안에는 전원 온과 함께 운영체제가 로딩되어 시스템 제어가 이루어질 때까지 일련의 하드웨어 초기화 단계가 발생할 수 있다.
다양한 실시 예에 따르면, 상기 메모리(430)는 실행 시에 상기 프로세서(420)가 상기 메모리의 제1 파티션 영역에 저장된 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보를 출력하도록 상기 디스플레이(460)를 제어하고, 상기 복수의 업데이트 파일들 중 적어도 하나의 제1 업데이트 파일과 연관된 선택을 획득하고, 상기 선택에 근거하여, 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제 1 업데이트 파일에 기반하여 획득된 제2 펌웨어가 상기 메모리의 제2 파티션 영역에 저장되도록 하는 인스트럭션들을 저장할 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서(420)가, 상기 제1 펌웨어 업데이트 완료에 따른 재부팅 후, 상기 제2 파티션 영역에 저장된 상기 제2 펌웨어를 참조하여 운영체제를 구동하도록 설정될 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서(420)가, 상기 복수의 업데이트 파일들을 상기 메모리의 제3 파티션 영역에 다운로드 하도록 설정될 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서(420)가, 상기 복수의 업데이트 파일들 중 적어도 하나의 제2 업데이트 파일과 연관된 선택을 획득하고, 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제2 업데이트 파일에 기반하여 획득된 제3 펌웨어가 상기 메모리의 제4 파티션 영역에 저장되도록 할 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서(420)가, 상기 제1 펌웨어 업데이트 완료에 따른 재부팅 후, 상기 제4 파티션 영역에 저장된 상기 제3 펌웨어를 참조하여 상기 운영체제를 구동하도록 설정될 수 있다.
다양한 실시 예에 따르면, 상기 적어도 하나의 제1 업데이트 파일은, 상기 복수의 업데이트 파일들 중 상기 선택을 위한 사용자 입력에 대응하는 조합으로 구성될 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서(420)가, 상기 제2 펌웨어에 대한 변경 요청에 대응하여, 상기 복수의 업데이트 파일들 중 적어도 하나의 제3 업데이트 파일과 연관된 선택을 획득하고, 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제3 업데이트 파일에 기반하여 획득된 제4 펌웨어로 상기 메모리의 제2 파티션 영역에 저장된 상기 제2 펌웨어를 교체하도록 할 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서(420)가, 상기 제1 펌웨어로의 복원 요청에 대응하여, 재부팅 후 상기 제1 파티션 영역에 저장된 상기 제1 펌웨어를 참조하여 운영체제를 구동하도록 설정될 수 있다.
다양한 실시 예에 따르면, 상기 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보는, 운영체제 업그레이드, 새로운 기능(feature)의 추가, 버그 수정, 또는 보안 수정 사항 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서(420)가, 상기 복수의 업데이트 파일들을 제공하는 서버로부터 업데이트 요청 수신 시, 상기 제1 펌웨어를 업데이트하기 위한 상기 복수의 업데이트 파일들에 대한 정보를 상기 디스플레이 상에 출력하며, 상기 선택에 근거하여, 상기 복수의 업데이트 파일들 중 상기 적어도 하나의 제1 업데이트 파일을 다운로드 하도록 설정될 수 있다.
도 5는 다양한 실시 예에 따른 업데이트 파일을 선택하기 위한 화면 예시도(500)이다.
도 5를 참조하면, 전자 장치(예: 도 4의 전자 장치(401))는 디스플레이(예: 도 4의 디스플레이(460))에 표시되는 업데이트 파일 선택 화면(510)을 통해 사용자로부터 펌웨어 업데이트를 위한 항목들에 대한 선택을 수신할 수 있다.
도 5에 도시된 바와 같이, 업데이트 파일 선택 화면(510)은 선택 가능한 복수의 업데이트 파일들의 리스트(520), 각 업데이트 파일에 대한 설명(530) 또는 버튼 형태로 구현되는 복수의 업데이트 파일에 대한 선택 옵션들(540) 중 적어도 하나를 포함할 수 있다.
예를 들어, 디스플레이 상에 펌웨어 업데이트를 진행할 것인지를 묻는 메시지를 표시하고, 사용자가 진행을 선택하는 경우, 펌웨어 업데이트를 위한 다양한 데이터 유형으로 분류된 복수의 업데이트 파일들(521, 522, 523, 524)을 표시할 수 있다. 이때, 복수의 업데이트 파일들에 대한 사용자 이해를 돕기 위해 각 업데이트 파일에 대한 설명(530)이 함께 표시될 수 있다.
예를 들어, 업데이트 파일 1은 운영체제 업그레이드 또는 새로운 기능(feature)을 나타내는 패치 파일이며, 업데이트 파일 2는 기존 사용 중이던 기능의 버그 수정을 위한 패치 파일이며, 업데이트 파일 3은 보안을 위한 패치 파일이며, 업데이트 파일 N은 N type 패치 파일이라는 설명이 표시될 수 있다. 이러한 설명(530)을 참조하여 사용자는 복수의 업데이트 파일들 중 원하는 업데이트 파일을 선택할 수 있다. 예를 들어, 도 5에 도시된 바와 같이 모든 업데이트 파일을 선택하기 위한 버튼(541), 선택된 업데이트 파일을 적용하기 위한 버튼(542), 선택된 옵션을 항상 적용하기 위한 버튼(543) 중 어느 하나를 이용하여 원하는 업데이트 파일을 선택하고, 적용 여부를 선택할 수 있다. 여기서, 버튼 영역(540)에 도시된 바 이외에 복수의 업데이트 파일에 대한 다양한 선택 옵션들이 구현될 수 있다.
상기한 바와 같이 사용자의 선택에 대응하여, 전자 장치는 선택된 일부 업데이트 파일을 이용한 펌웨어 업데이트를 수행할 수 있다.
도 6은 다양한 실시 예에 따른 복수의 파티션 영역의 구성을 예시한 도면(600)이다.
도 6에서는 기존 펌웨어와 새로운 펌웨어를 분리하여 저장할 수 있는 복수의 파티션 영역으로 구성된 메모리를 예시하고 있다. 제1 파티션 영역 내지 제3 파티션 영역(610, 620, 630)은 각각 독립적인 파티션으로, 제1 파티션(610)은 업데이트 이전 펌웨어 즉, 기존 펌웨어에 해당하는 제1 펌웨어(611) 하에서 제1 운영체제를 로딩하는 데 사용되며, 제2 파티션(620)은 제1 펌웨어(611)를 업데이트한 펌웨어에 해당하는 제2 펌웨어(621) 하에서 제1 운영체제를 로딩하는 데 사용될 수 있다.
예를 들어, 제1 파티션(610)은 기존 펌웨어를 기반으로 사용 중이던 운영체제용 파티션이며, 제2 파티션(620)은 사용자에 의해 선택된 일부 업데이트 파일(632)이 복사되어 새롭게 구성된 운영체제용 파티션이며, 제3 파티션(630)은 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들(631)에 대한 다운로드용 파티션일 수 있다.
다양한 실시 예에 따라 펌웨어는 크게 전자 장치에서의 현재 펌웨어와, 사용자의 선택에 따른 업데이트 파일의 조합을 기반으로 한 업데이트된 펌웨어와 같은 서로 다른 펌웨어 형태로 메모리에 저장될 수 있으며, 어느 하나의 펌웨어를 기반으로 부팅이 실행될 수 있다.
여기서, 제2 펌웨어(621)는 제1 파티션(610)으로부터 제2 파티션(620)으로 이동된(또는 복사된) 제1 펌웨어(611)의 일부에, 제3 파티션(630)의 복수의 업데이트 파일들(631) 중에서 사용자의 선택에 대응하여 제2 파티션(620)으로 이동된(또는 복사된) 일부 업데이트 파일들(632)을 적용함으로써 생성된 제1 펌웨어에 대한 업데이트된 펌웨어일 수 있다. 또는 제1 파티션(610)으로부터의 제1 펌웨어(611)의 적어도 일부와 상기 제3 파티션(630)으로부터 일부 업데이트 파일들(632)을 제2 파티션 영역(620)으로 복사하는 동작만으로도 업데이트가 수행될 수 있다.
이에 따라 제1 파티션(610) 상에서는 기존 운영체제(611)가 로딩되어 사용되며, 제2 파티션(620) 상에서는 기존 운영체제를 업데이트한 새로운 운영체제(621)가 로딩되어 사용될 수 있다.
한편, 도 6에 도시된 바와 같이 제3 파티션 영역(630)에는 사용자가 선택한 업데이트 파일의 조합(632) 이외의 모든 업데이트 파일(631)들이 저장되어 있으므로, 사용자가 최종적으로 제2 펌웨어에 대한 사용을 확정하기 전까지는 새로운 업데이트 파일의 조합을 이용하여 기존 제1 펌웨어를 제2 펌웨어와는 다른 새로운 펌웨어로 업데이트할 수 있다.
예를 들어, 사용자가 선택한 업데이트 파일의 조합(632)에 의한 펌웨어 업데이트 시 중간에 일부 업데이트 파일의 오류로 인해 업데이트가 중단되거나 업데이트 이후에 프로세싱이 강제 종료되는 상황이 발생할 경우, 문제가 발생한 일부 업데이트 파일을 제외하고 업데이트 파일(631)들 중에서 다시 새로운 업데이트 파일들을 선택하여 제2 파티션(620)을 구성할 수 있다.
예를 들어, 사용자는 제2 펌웨어에 대한 변경을 요청할 수 있으며, 제2 펌웨어에 대한 변경 요청에 대응하여, 전자 장치는 제3 파티션(630)을 참조하여 사용자 선택이 가능하도록 저장된 모든 업데이트 파일들(631)에 대한 정보를 화면 상에 표시할 수 있다. 이어, 전자 장치는 사용자로부터 상기 저장된 모든 업데이트 파일들(631) 중 적어도 하나의 업데이트 파일에 대한 선택을 획득할 수 있다. 이때, 선택되는 적어도 하나의 업데이트 파일은 이전 선택과 다르거나 일부 중복되는 파일을 포함할 수 있다. 이러한 선택에 대응하여, 전자 장치는 제1 펌웨어의 일부에 상기 선택된 적어도 하나의 파일을 적용하여 새롭게 구성된 펌웨어로 제2 파티션 영역(620)에 저장된 제2 펌웨어(621)를 교체할 수 있다. 즉, 제2 파티션 영역(620)은 새롭게 구성된 펌웨어를 위해 이용될 수 있다.
상기한 바와 같이 복수의 업데이트 파일들을 사용자 저장 영역이 아닌 제3 파티션 영역(630)에 저장함으로써, 전자 장치는 사용자 선택에 대응하는 조합으로 업데이트 파일을 매번 다운로드 하지 않아도 제3 파티션 영역(630)에 저장되어 있는 복수의 업데이트 파일들을 이용하여 여러 업데이트 파일들에 대한 조합에 대응하는 새로운 펌웨어를 위한 제2 파티션(620)의 구성이 가능할 수 있다.
도 7은 다양한 실시 예에 따른 전자 장치에서 펌웨어 업데이트를 위한 동작 흐름도(700)이다.
도 7을 참조하면, 동작 방법은 705 내지 715 동작들을 포함할 수 있다. 동작 방법의 각 단계/동작은, 전자 장치(예: 도 1 및 도 4의 전자 장치(101)(401), 전자 장치의 적어도 하나의 프로세서(예: 도 1 및 도 4의 프로세서(120)(420)) 중 적어도 하나에 의해 수행될 수 있다. 일 실시예에 따르면, 705 내지 715 동작들 중 적어도 하나가 생략되거나, 일부 동작들의 순서가 바뀌거나, 다른 동작이 추가될 수 있다.
도 7을 참조하면, 펌웨어 업데이트는 업데이트 파일을 제공하는 서버(예: 도 2의 FOTA 서버(220))로부터의 요청 또는 전자 장치(401)로부터의 요청에 대응하여 시작될 수 있다.
705 동작에서 펌웨어 업데이트에 대한 요청에 대응하여, 전자 장치(401)는 메모리(430)의 제1 파티션 영역에 저장된 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보를 출력하도록 디스플레이(460)를 제어할 수 있다.
다양한 실시 예에 따르면, 상기 방법은, 상기 복수의 업데이트 파일들을 상기 메모리의 제3 파티션 영역에 다운로드 하는 동작을 더 포함할 수 있다.
일 실시 예에 따르면, 전자 장치(401)는 서버로부터 제1 펌웨어에 대해 업데이트 가능한 사항들에 대한 복수의 업데이트 파일을 다운로드한 후 복수의 업데이트 파일들에 대한 정보를 출력할 수 있다. 예를 들어, 서버로부터 다운로드될 펌웨어에 대한 정보를 통해 복수의 업데이트 파일들을 분석할 수 있으며, 각 업데이트 파일마다 업데이트 파일의 종류와 어떠한 항목에 대한 업데이트인지를 알려주는 정보를 획득할 수 있다.
일 실시 예에 따르면, 복수의 업데이트 파일들에 대한 정보를 출력한 후 예를 들어, '나중에', '지금 설치', '야간 설치'와 같은 항목들 중 사용자로부터의 어느 하나에 대한 선택에 대응하여, 복수의 업데이트 파일들에 대한 다운로드가 수행될 수도 있다.
다양한 실시 예에 따르면, 상기 방법은, 상기 복수의 업데이트 파일들을 제공하는 서버로부터 업데이트 요청을 수신하는 동작 및 상기 출력되는 복수의 업데이트 파일들에 대한 정보 중 상기 선택에 근거하여 상기 적어도 하나의 제1 업데이트 파일을 다운로드 하는 동작을 더 포함할 수 있다.
예를 들어, 복수의 업데이트 파일들을 일괄적으로 다운로드할 수도 있으나, 상기 서버로부터 업데이트 요청 수신 시, 전자 장치(401)는 상기 제1 펌웨어를 업데이트하기 위한 상기 복수의 업데이트 파일들에 대한 정보를 상기 디스플레이(460) 상에 출력한 후에, 사용자 선택에 근거하여, 상기 복수의 업데이트 파일들 중 상기 적어도 하나의 제1 업데이트 파일만을 다운로드할 수도 있다. 이에 따라, 복수의 업데이트 파일들 중에서 사용자가 선택한 일부 업데이트 파일들만 다운로드할 수도 있으며, 선택된 일부 업데이트 파일들만 별도의 파티션 영역에 저장될 수 있다.
다양한 실시 예에 따르면, 상기 복수의 업데이트 파일들은 상기 메모리(430)의 제3 파티션 영역에 일괄적으로 다운로드될 수 있다. 또한, 사용자가 일부 업데이트 파일들에 대한 다운로드를 선택한 경우에는 제3 파티션 영역에 일부 선택된 업데이트 파일들만 다운로드될 수 있다. 여기서, 제3 파티션 영역은 펌웨어 업데이트를 위해 비어있는 저장 영역을 다운로드용으로 할당하거나 다운로드를 위해 새롭게 할당된 영역일 수 있으며, 사용자 저장 영역의 사용이 제한되지 않도록 사용자 저장 영역이 아닌 영역일 수 있다.
다양한 실시 예에 따르면, 상기 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보는, 운영체제 업그레이드, 새로운 기능(feature)의 추가, 버그 수정, 또는 보안 수정 사항 중 적어도 하나를 포함할 수 있다.
710 동작에서 전자 장치(401)는 상기 복수의 업데이트 파일들 중 적어도 하나의 제1 업데이트 파일과 연관된 선택을 획득할 수 있다. 여기서, 적어도 하나의 제1 업데이트 파일은, 상기 복수의 업데이트 파일들 중 상기 선택을 위한 사용자 입력에 대응하는 조합으로 구성될 수 있다. 예를 들어, 복수의 업데이트 파일을 다운로드한 후 디스플레이(460)를 통해 업데이트 가능한 사항들에 대한 정보를 표시할 수 있으며, 업데이트 가능한 항목들 중에 적어도 하나에 대한 사용자의 선택을 대기할 수 있다.
715 동작에서 전자 장치(401)는 상기 선택에 근거하여, 상기 제1 펌웨어의 일부에 상기 적어도 하나의 제 1 업데이트 파일을 적용한 제2 펌웨어를 상기 메모리의 제2 파티션 영역에 저장할 수 있다. 또는 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제1 업데이트 파일에 기반하여 획득된 제2 펌웨어를 상기 메모리의 제2 파티션 영역에 저장할 수 있다.
여기서, 적어도 하나의 제 1 업데이트 파일을 상기 제1 펌웨어 전체 또는 일부에 덮어쓰기 하는 동작을 통해 업데이트된 제2 펌웨어가 획득될 수 있다. 이러한 덮어쓰기 동작은 제2 파티션 영역 상에서 이루어지는 것이며, 제2 파티션 영역에 덮어쓰기 동작을 통해 생성된 제2 펌웨어가 저장될 수 있다.
다양한 실시 예에 따르면, 상기 방법은, 상기 제1 펌웨어 업데이트 완료에 따른 재부팅 후, 상기 제2 파티션 영역에 저장된 상기 제2 펌웨어를 참조하여 운영체제를 구동하는 동작을 더 포함할 수 있다.
다양한 실시 예에 따르면, 상기 제2 펌웨어를 상기 메모리의 제2 파티션 영역에 저장하는 동작은, 상기 선택에 근거하여, 제3 파티션 영역에 다운로드된 상기 복수의 업데이트 파일들 중 상기 적어도 하나의 제1 업데이트 파일과 상기 제1 파티션 영역에 저장된 상기 제1 펌웨어를 상기 제2 파티션 영역으로 복사함으로써 상기 제2 펌웨어를 획득하는 동작을 포함할 수 있다.
이에 따라 전자 장치(401)는 상기 제1 펌웨어 업데이트 완료에 따른 재부팅 후, 상기 제2 파티션 영역에 저장된 상기 제2 펌웨어를 참조하여 운영체제(OS)를 구동시킬 수 있다. 이와 같이 다양한 실시 예에 따르면, 사용자 선택에 대응하는 업데이트 파일의 조합을 기반으로 한 펌웨어 업데이트가 가능하며, 만일 사용자가 업데이트된 펌웨어를 기반으로 한 어플리케이션을 이용하는 도중 에러가 발생하거나 사용상 불편함이 있는 경우 다른 업데이트 파일의 조합으로 다시 현재 이용 중이던 펌웨어를 다른 구성으로 업데이트하는 것이 가능할 수 있다.
다양한 실시 예에 따르면, 상기 방법은, 상기 복수의 업데이트 파일들 중 적어도 하나의 제2 업데이트 파일과 연관된 선택을 획득하는 동작 및 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제2 업데이트 파일에 기반하여 획득된 제3 펌웨어를 상기 메모리의 제4 파티션 영역에 저장하는 동작을 더 포함할 수 있다.
다양한 실시 예에 따르면, 상기 방법은, 상기 제1 펌웨어 업데이트 완료에 따른 재부팅 후, 상기 제4 파티션 영역에 저장된 상기 제3 펌웨어를 참조하여 운영체제를 구동하는 동작을 더 포함할 수 있다.
예를 들어, 사용자가 상기 제2 펌웨어에 대한 변경을 요청하거나 다른 업데이트 파일들의 조합을 원하는 경우, 전자 장치(401)는 화면 상에 다운로드한 복수의 업데이트 파일들에 정보를 표시할 수 있으며, 사용자로부터 다른 조합에 해당하는 적어도 하나의 제2 업데이트 파일과 연관된 선택을 획득할 수 있다. 이러한 경우 제2 펌웨어가 저장되어 있는 제2 파티션 영역과는 별개로 다른 제4 파티션 영역에서 새로운 조합에 해당하는 펌웨어 업데이트가 수행될 수 있다. 이때, 사용자가 제4 파티션 영역 상에 새롭게 구성된 펌웨어를 계속해서 사용하겠다는 최종 확인을 선택할 경우, 제2 파티션 영역의 펌웨어는 삭제될 수 있으며, 제4 파티션 영역의 펌웨어는 다음 업데이트 전까지 유지될 수 있다.
다양한 실시 예에 따르면, 상기 방법은, 상기 제2 펌웨어에 대한 변경 요청에 대응하여, 상기 복수의 업데이트 파일들 중 적어도 하나의 제3 업데이트 파일과 연관된 선택을 획득하는 동작 및 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제3 업데이트 파일에 기반하여 획득된 제4 펌웨어로 상기 메모리의 제2 파티션 영역에 저장된 상기 제2 펌웨어를 교체하는 동작을 더 포함할 수 있다.
예를 들어, 사용자가 상기 제2 펌웨어에 대한 변경을 요청할 경우 전자 장치(401)는 화면 상에 다운로드한 복수의 업데이트 파일들에 정보를 표시할 수 있으며, 사용자로부터 다른 조합에 해당하는 적어도 하나의 제3 업데이트 파일과 연관된 선택을 획득할 수 있다. 이때, 상기 적어도 하나의 제3 업데이트 파일과 연관된 선택에 근거하여, 새롭게 파티션 영역이 구성될 수도 있으나, 제2 펌웨어가 저장되어 있는 제2 파티션 영역이 새로운 펌웨어를 위해 이용되도록 구성될 수도 있다. 이러한 경우 제2 파티션 영역에 저장된 제2 펌웨어가 상기 적어도 하나의 제3 업데이트 파일을 적용함으로써 업데이트된 제4 펌웨어로 교체될 수 있다.
다양한 실시 예에 따르면, 상기 방법은, 상기 제1 펌웨어로의 복원 요청에 대응하여, 재부팅 후 상기 제1 파티션 영역에 저장된 상기 제1 펌웨어를 참조하여 운용체제를 구동하는 동작을 더 포함할 수 있다.
도 8은 다양한 실시 예에 따른 펌웨어 업데이트 관련 항목에 대한 화면 예시도(800)이다.
도 8을 참조하면, 전자 장치(401)는 서버(예: FOTA 서버(220))로부터의 펌웨어 업데이트를 위한 푸시 메시지에 대응하여 펌웨어 업데이트를 위한 안내 화면(810)을 표시할 수 있다.
업데이트 안내 화면(810)은 최신 펌웨어를 설치할 수 있다는 안내 메시지와 함께 업데이트 가능한 항목들(821, 822, 823, 824)과 각 업데이트 항목에 대한 관련 설명(831, 832, 833, 834)을 포함할 수 있다.
이러한 업데이트 안내 화면(810)은 펌웨어 업데이트를 위한 푸시 메시지에 대응하여 즉시 표시될 수 있으며, 미리 설정된 주기로(예컨대, 1일 주기, 일주일 주기)로 표시되어 사용자에게 펌웨어 업데이트가 가능한 상태임을 알려주도록 구성될 수도 있다.
사용자는 업데이트 안내 화면(810)을 통해 현재의 펌웨어에 대해 업데이트 대상이 되는 항목들을 확인하고 예컨대, 체크 박스(820)를 이용한 터치 입력으로 적어도 하나의 항목을 선택할 수 있다. 도 8에서는 각 업데이트 파일에 대응하여 예를 들어, 생체 인식, S 키보드, 시스템 성능, S 계정과 같이 업데이트 대상이 되는 항목들(821, 822, 823, 824)에 대한 제목과 함께 각 항목들에 대해 어떠한 업데이트가 이루어질 것인지에 대한 설명(831, 832, 833, 834)이 표시되고 있다. 도 8에서는 전자 장치(401)에 설치된 기능의 성능 개선, 운영체제 업그레이드와 같은 항목들을 예시하나, 새로운 기능의 추가, 버그 수정, 또는 보안 수정 사항과 같이 다양한 항목들이 추가될 수 있다.
일 실시 예에 따르면, 사용자가 모든 항목들에 대해 업데이트를 원하는 경우에는 'select all'(841) 버튼을 선택할 수 있다. 모든 항목들에 대해 펌웨어 업데이트를 진행하는 것으로 결정된 경우에는, 각 항목들에 대응하는 업데이트 파일들을 이용한 펌웨어 업데이트가 시작될 수 있다.
예를 들어, 사용자가 선택된 항목들에 대해서만 업데이트를 원하는 경우에는 'apply items'(842) 버튼을 선택할 수 있다. 예를 들어, 사용자가 'S 계정'(824)에 대해 현재 이용 중인 상태에서 업데이트되는 내용이 마음에 들지 않을 경우 'S 계정'(824)을 제외한 나머지 항목들에 대한 업데이트만 선택할 수 있다. 일부 선택된 항목들에 대해 펌웨어 업데이트를 진행하는 것으로 결정된 경우에는, 선택된 항목들에 대응하는 업데이트 파일들을 이용한 펌웨어 업데이트가 시작될 수 있다.
일 실시 예에 따르면, 사용자가 다음 펌웨어 업데이트 시에도 선택된 항목들에 대해서만 업데이트를 원하는 경우에는 'always apply this option'(843) 버튼을 선택할 수 있다. 예를 들어, 'always apply this option'(843) 버튼을 선택함으로써 생체 인식(821), S 키보드(822), 시스템 성능(823) 항목들에 대해서만 펌웨어 업데이트가 이루어진 상태일 경우, 다음 펌웨어 업데이트 시에는 이전 선택된 항목들 예컨대, 생체 인식(821), S 키보드(822), 시스템 성능(823) 항목에 대해서만 업데이트가 수행될 수 있다. 이와 같이 사용자가 업데이트 항목에 대한 선택을 변경하지 않는 한 상기와 같은 선택이 유지될 수 있다. 이에 따라 펌웨어 업데이트에서 필요한 부분만 선택적으로 업그레이드할 수 있을 뿐만 아니라 이러한 선택의 유지도 가능하므로, 사용자 목적에 맞는 지속적인 업데이트가 가능할 수 있다.
도 9a는 일 실시 예에 따른 전자 장치에서 펌웨어 업데이트를 위한 동작 흐름도(900a)이며, 도 9b는 상기 도 9a에서의 동작에 이어지는 동작 흐름도(900b)이다.
도 9a 및 도 9b를 참조하면, 동작 방법은 905 내지 980 동작들을 포함할 수 있다. 동작 방법의 각 단계/동작은, 전자 장치(예: 도 1 및 도 4의 전자 장치(101)(401), 전자 장치의 적어도 하나의 프로세서(예: 도 1 및 도 4의 프로세서(120)(420)) 중 적어도 하나에 의해 수행될 수 있다. 한 실시 예에서, 905 내지 980 동작들 중 적어도 하나가 생략되거나, 일부 동작들의 순서가 바뀌거나, 다른 동작이 추가될 수 있다.
다양한 실시 예에 따르면, 전자 장치(401)는 905 동작에서 펌웨어 업데이트 요청이 있는지를 판단할 수 있다. 펌웨어 업데이트 요청이 수신되기 전까지 905 동작을 반복 수행할 수 있다. 펌웨어 업데이트 요청은 업데이트 대상 펌웨어에 대해 디스플레이(예: 도 4의 디스플레이(460))를 통한 사용자의 업데이트 요청, 업데이트 파일을 제공하는 서버(예: 도 2의 FOTA 서버(220))로부터 푸시 메시지 형태로 수신되는 요청, 또는 미리 설정된 업데이트 주기(예: 1일 주기, 일주일 주기)의 도래일 수 있다.
만일 펌웨어 업데이트 요청이 수신되면, 상기 펌웨어 업데이트 요청의 수신에 대응하여, 전자 장치(401)는 서버에 접속하여 전자 장치(401)의 현재 펌웨어에 관한 업데이트를 요청할 수 있다. 이때, 전자 장치(401)는 서버로부터 최신 펌웨어에 대한 업데이트 파일을 제공받기 위해 예컨대, 현재 펌웨어의 버전 정보, 전자 장치(401)의 식별 정보와 같은 등록된 전자 장치의 정보를 서버에 제공할 수 있다.
상기 서버는 전자 장치(401)로부터 제공된 전자 장치의 정보를 기반으로 업데이트 대상 펌웨어에 대해 업데이트 가능한 모든 항목들을 확인하여, 업데이트 가능한 모든 항목별로 각각의 항목들에 대응하는 적어도 하나의 업데이트 파일을 생성할 수 있으며, 푸시와 같은 방식으로 전자 장치(401)로 전달할 수 있다. 여기서 적어도 하나의 업데이트 파일은 각각의 업데이트 가능한 항목 예를 들어, 데이터 유형별로 생성된 것일 수 있다. 이때, 업데이트 파일에 대한 사용자 선택을 위해 서버로부터 제공되는 업데이트 파일은 둘 이상일 수 있다.
910 동작에서 전자 장치(401)는 서버로부터 업데이트 대상 펌웨어인 제1 파티션 영역에 저장된 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일이 수신되는지를 식별할 수 있다. 만일 복수의 업데이트 파일이 수신되는 경우 915 동작에서 전자 장치(401)는 제3 파티션 영역에 복수의 업데이트 파일들을 다운로드할 수 있다. 여기서, 제3 파티션 영역은 사용자 저장 영역이 아닌 비어 있는 저장 영역을 다운로드용으로 할당하거나 다운로드를 위해 생성된 영역일 수 있다.
일 실시 예에 따르면, 서버로부터 복수의 업데이트 파일은 푸시(push), 풀(pull), 또는 폴링(polling)과 같은 방식에 의해 사용자 선택 없이 수신될 수 있으며, 다르게는 사용자 선택을 대기한 후에 사용자 선택이 수신되는 경우에 복수의 업데이트 파일에 대한 다운로드가 수행될 수도 있다.
920 동작에서 전자 장치(401)는 복수의 업데이트 파일들에 대한 선택 화면을 표시할 수 있으며, 925 동작에서 전자 장치(401)는 복수의 업데이트 파일들 중 적어도 하나의 업데이트 파일이 선택되는지를 식별할 수 있다. 예를 들어, 사용자는 화면 상에 표시되는 복수의 업데이트 파일들에 해당하는 업데이트 항목들을 확인할 수 있으며, 원하는 업데이트 항목들을 지정할 수 있다.
적어도 하나의 업데이트 파일에 대한 선택에 대응하여, 930 동작에서 전자 장치(401)는 제1 펌웨어의 적어도 일부와 선택된 적어도 하나의 업데이트 파일을 기반으로 업데이트된 펌웨어를 제2 파티션 영역에 저장할 수 있다. 이와 같이 기존 펌웨어 전부 또는 일부에 업데이트 파일을 덮어쓰기(또는 복사) 하는 방식으로 기존 펌웨어가 업데이트될 수 있다. 이때, 제1 파티션 영역에 저장된 제1 펌웨어와 동일한 구조를 가지는 업데이트된 펌웨어를 생성하기 위해 제1 파티션 영역의 제1 펌웨어도 제2 파티션 영역으로 이동(또는 복사)될 수 있으며, 제1 펌웨어의 전부 또는 일부 즉, 업데이트 대상이 되는 부분을 상기 선택된 적어도 하나의 업데이트 파일을 이용하여 업데이트할 수 있다.
이어, 940 동작에서 전자 장치(401)는 재부팅을 수행하여 제2 파티션 영역의업데이트된 펌웨어를 기반으로 한 운영체제를 구동시킬 수 있다. 이때, 사용자가 업데이트된 펌웨어를 지속적으로 사용할 것인지를 결정하지 않은 상태에서는 언제든지 다른 조합의 업데이트 파일을 이용한 펌웨어 업데이트가 가능할 수 있다.
이에 따라 945 동작에서 전자 장치(401)는 펌웨어 변경 요청이 수신되는지를 식별할 수 있다. 만일 펌웨어 변경 요청이 없는 경우에는 905 동작으로 되돌아가 다음 펌웨어 업데이트가 수행되기 전까지 업데이트된 펌웨어 즉, 제2 펌웨어를 기반으로 동작할 수 있다. 반면, 펌웨어 변경 요청이 있는 경우 예를 들어, 사용자가 현재 업데이트된 펌웨어를 사용하지 않는 것으로 결정한 경우 도 9b의 950 동작을 수행할 수 있다.
950 동작에서 전자 장치(401)는 제3 파티션 영역에 다운로드 해놓은 복수의 업데이트 파일에 대한 선택 화면을 표시할 수 있으며, 955 동작에서 적어도 하나의 업데이트 파일이 선택되는지를 식별할 수 있다. 예를 들어, 사용자는 화면 상에 표시되는 복수의 업데이트 파일들에 해당하는 업데이트 항목들을 다시 선택할 수 있다.
이어, 960 동작에서 전자 장치(401)는 제1 펌웨어의 적어도 일부와 새롭게 선택된 적어도 하나의 업데이트 파일을 기반으로 업데이트된 펌웨어를 제2 파티션 영역에 저장할 수 있다. 이와 같이 제1 펌웨어의 적어도 일부와 새롭게 선택된 적어도 하나의 업데이트 파일을 제2 파티션 영역으로 복사시키는 것만으로도 펌웨어 업데이트가 이루어질 수 있으며, 펌웨어 업데이트 후 970 동작에서 재부팅을 수행할 수 있다. 이러한 업데이트를 위한 960 동작 내지 970 동작은 도 9a의 930 내지 945 동작과 동일하므로, 그 구체적인 설명은 생략하기로 한다.
이어, 975 동작에서 전자 장치(401)는 업데이트된 펌웨어에 대한 최종 확정이 획득되는지를 식별할 수 있다. 만일 업데이트된 펌웨어에 대한 최종 확정이 획득되지 않는 경우 도 9a의 945 동작으로 진행하여, 전술한 동작을 반복 수행할 수 있다. 반면, 사용자에 의해 업데이트된 펌웨어를 계속 사용하겠다고 결정된 경우에는 업데이트된 펌웨어를 더 이상 변경하지 않아도 되므로 980 동작에서 제3 파티션 영역의 복수의 업데이트 파일들을 삭제할 수 있다. 또한 제1 파티션 영역의 제1 펌웨어는 그대로 저장되어 있기 때문에 이전 버전으로 다운그레이드를 원하거나 업데이트된 펌웨어를 이용하는 도중에 문제가 발생하더라도 언제든지 복구가 가능할 수 있다.
도 10a는 다른 실시 예에 따른 전자 장치에서 펌웨어 업데이트를 위한 동작 흐름도(1000a)이며, 도 10b는 상기 도 10a에서의 동작에 이어지는 동작 흐름도(1000b)이다.
도 10a 및 도 10b를 참조하면, 동작 방법은 1005 내지 1075 동작들을 포함할 수 있다. 동작 방법의 각 단계/동작은, 전자 장치(예: 도 1 및 도 4의 전자 장치(101)(401), 전자 장치의 적어도 하나의 프로세서(예: 도 1 및 도 4의 프로세서(120)(420)) 중 적어도 하나에 의해 수행될 수 있다. 한 실시 예에서, 1005 내지 1075 동작들 중 적어도 하나가 생략되거나, 일부 동작들의 순서가 바뀌거나, 다른 동작이 추가될 수 있다.
1005 동작에서 전자 장치(401)는 펌웨어 업데이트가 시작되는지를 식별할 수 있다. 만일 펌웨어 업데이트가 시작되면, 1010 동작에서 복수의 업데이트 파일에 대한 선택 화면을 표시할 수 있다. 전자 장치(401)는 선택 화면을 통한 사용자 선택에 대응하여, 1015 동작에서 선택된 업데이트 파일의 조합을 식별할 수 있다. 이어, 1020 동작에서 전자 장치(401)는 조합 수에 대응하는 적어도 하나의 파티션 영역을 생성할 수 있다. 예를 들어, 업데이트 대상 항목이 10개이지만 사용자가 업데이트를 원하는 항목이 3개인 경우, 선택된 항목 3개를 조합한 수에 대응하는 파티션 영역들을 생성할 수 있다. 여기서, 생성되는 파티션 영역은 조합별로 예를 들어, 1개씩, 2개씩, 3개 모두를 적용한 경우를 고려했을 때 최대 7개의 조합이 가능하며 7개의 조합에 대응하여 1개의 파티션 영역을 추가한 8개의 파티션 영역이 생성될 수 있다. 이때, 7개의 파티션 영역은 각 조합에 대응하는 파티션 영역이며, 나머지 하나의 영역은 선택된 업데이트 파일들을 모두 다운로드 하기 위한 용도의 영역일 수 있다.
1025 동작에서 전자 장치(401)는 선택된 업데이트 파일을 생성된 파티션 영역들 중 어느 하나에 한꺼번에 다운로드할 수 있다. 전자 장치(401)는, 1030 동작에서 제1 펌웨어의 적어도 일부와 해당 조합의 업데이트 파일을 기반으로 각각 업데이트된 펌웨어를 각 파티션 영역에 저장할 수 있다. 예를 들어, 생성된 각 파티션 영역마다 제1 펌웨어에 대해 해당 조합의 업데이트 파일들을 복사함으로써 업데이트된 펌웨어를 획득할 수 있다.
이를 구체적으로 설명하기 위해 다른 실시 예에 따른 복수의 파티션 영역의 구성을 예시한 도면(1100)인 도 11을 참조하기로 한다.
도 11에 도시된 바와 같이 제1 파티션(1110)에는 기존 펌웨어(1111)가 저장되어 있으며, 사용자가 업데이트 하고자 하는 항목의 수가 N개인 경우 즉, N 개의 업데이트 파일을 선택했을 경우, N+1 개의 파티션(1120, 1130, 1140,…, 1150)이 새롭게 생성될 수 있다. 이와 같이 생성된 각 파티션 영역(1120, 1130, 1140,…, 1150)마다 해당 조합의 업데이트 파일들(1121, 1131, 1141,…, 1151)을 복사할 수 있다. 여기서, N+1 파티션 영역(1150)은 N 개의 업데이트 파일들을 저장하는 용도의 파티션 영역일 수 있다. 예를 들어, 제2 파티션 영역(1120)에는 기존 펌웨어(1111)의 일부에 제1 조합(1121)이 적용되어 펌웨어 업데이트가 수행될 수 있으며, 제3 파티션 영역(1130)에는 기존 펌웨어(1111)의 일부에 제2 조합(1131)이 적용되어 펌웨어 업데이트가 수행될 수 있으며, 제4 파티션 영역(1140)에는 기존 펌웨어(1111)의 일부에 제3 조합(1141)이 적용되어 펌웨어 업데이트가 수행될 수 있다. 이에 따라 제2 파티션 영역(1120) 내지 제4 파티션 영역(1140) 내의 업데이트된 펌웨어는 서로 다른 버전 또는 서로 다른 구성의 펌웨어일 수 있다. 즉, 기존 펌웨어와 비교했을 때, 업데이트된 항목들이 서로 다른 펌웨어일 수 있다.
이때, 사용자 저장 영역(1160)이 아닌 저장 영역 상에 파티션 영역들이 생성되는 것이므로, 사용하지 않겠다고 확정된 파티션 영역은 파기되어 사용자 저장 영역(1160)으로 편입될 수도 있다.
상기한 바와 같이 각 파티션마다 서로 다르게 펌웨어가 업데이트될 수 있는데, 업데이트 완료 후 전자 장치(401)는 1040 동작에서 재부팅을 수행할 수 있다.
각 파티션 영역마다 기존 펌웨어의 적어도 일부에 대해 서로 다른 조합의 업데이트 파일을 덮어쓰기 함으로써 생성된 새로운 펌웨어들이 저장될 수 있다. 이에 따라 각 파티션 영역마다 서로 다르게 업데이트된 펌웨어가 저장될 수 있다. 이때, 아직 사용자가 어떠한 펌웨어를 사용할 것인지를 최종적으로 결정하지 않은 상태이기 때문에 어느 하나의 파티션 영역의 데이터를 참조한 펌웨어 업데이트가 수행되어 재부팅을 통해 펌웨어 업데이트가 완료될 수 있다.
만일 1045 동작에서 전자 장치(401)는 사용자로부터 업데이트된 펌웨어에 대한 최종 확정이 획득되면, 1050 동작에서 선택된 조합에 해당하는 파티션 영역을 메인 파티션 영역으로 설정하고, 상기 메인 파티션 영역을 제외한 나머지 파티션 영역들을 삭제할 수 있다. 반면, 1045 동작에서 사용자가 업데이트된 펌웨어를 계속 쓰겠다는 결정이 획득되지 않는 경우, 도 10b의 1055 동작으로 진행하여 펌웨어 변경 요청이 획득되는지를 식별할 수 있다.
1055 동작에서 펌웨어 변경 요청이 획득되면, 전자 장치(401)는 1060 동작에서 업데이트 파일의 조합에 대한 선택 화면을 표시할 수 있으며, 1065 동작에서 어느 하나의 조합에 대한 선택을 획득할 수 있다. 만일 어느 하나의 조합에 대한 선택이 획득되면, 전자 장치(401)는 1070 동작에서 선택된 조합에 대응하는 파티션 영역을 선택하여 선택된 파티션 영역의 데이터를 이용하여 펌웨어를 업데이트할 수 있다. 이어, 전자 장치(401)는 1075 동작에서 재부팅을 수행하여, 도 10a의 1005 동작으로 진행할 수 있다. 이와 같이 미리 각 조합에 대응하는 파티션 영역을 할당해놓을 경우 새로운 업데이트 파일의 조합으로 변경하는 데 소요되는 시간을 줄일 수 있다.
도 12a는 또 다른 실시 예에 따른 전자 장치에서 펌웨어 업데이트를 위한 동작 흐름도(1200a)이며, 도 12b는 상기 도 12a에서의 동작에 이어지는 동작 흐름도(1200b)이다.
도 12a 및 도 12b를 참조하면, 동작 방법은 1205 내지 1265 동작들을 포함할 수 있다. 동작 방법의 각 단계/동작은, 전자 장치(예: 도 1 및 도 4의 전자 장치(101)(401), 전자 장치의 적어도 하나의 프로세서(예: 도 1 및 도 4의 프로세서(120)(420)) 중 적어도 하나에 의해 수행될 수 있다. 한 실시 예에서, 1205 내지 1265 동작들 중 적어도 하나가 생략되거나, 일부 동작들의 순서가 바뀌거나, 다른 동작이 추가될 수 있다.
도 12a를 참조하면, 1205 동작 및 1210 동작은 도 10a의 1005 동작 및 1010 동작과 동일하며, 도 9a의 910 동작 및 920 동작과도 동일하므로 그 구체적인 설명은 생략하기로 한다.
전자 장치(401)는 복수의 업데이트 파일들에 대한 사용자 선택을 위한 항목들을 포함하는 업데이트 안내 화면을 표시하는 상태에서, 사용자 선택에 대응하여 1215 동작에서 선택된 업데이트 파일에 대응하는 제3 파티션 영역을 생성할 수 있다. 예를 들어, 전자 장치(401)는 선택된 업데이트 파일을 다운로드 하기 위한 용도로 제3 파티션 영역을 지정할 수 있다.
1220 동작에서 전자 장치(401)는 제3 파티션 영역에 선택된 업데이트 파일들을 다운로드할 수 있다.
1230 동작에서 전자 장치(401)는 기존 펌웨어인 제1 펌웨어의 적어도 일부와 선택된 업데이트 파일을 기반으로 업데이트된 펌웨어를 제2 파티션 영역에 저장할 수 있으며, 1235 동작에서 재부팅을 수행할 수 있다.
이어, 전자 장치(401)는 1240 동작에서 업데이트 펌웨어에 대한 최종 확정이 획득되는지를 식별할 수 있다. 업데이트 펌웨어에 대한 최종 확정이 획득되는 경우에는 1245 동작에서 제2 파티션 영역을 메인 파티션 영역으로 설정하고, 추가적인 업데이트가 필요하지 않으므로 다운로드해놓은 업데이트 파일을 삭제하기 위해 제3 파티션 영역을 삭제할 수 있다.
반면, 업데이트 펌웨어에 대한 최종 확정이 획득되지 않는 경우에는 전자 장치(401)는 도 12b의 1250 동작으로 진행하여, 1250 동작에서 펌웨어 변경 요청이 획득되는지를 식별할 수 있다. 만일 펌웨어 변경 요청이 있는 경우에는 전자 장치(410)는 1255 동작에서 이전 상태로의 복귀를 선택하는지를 식별할 수 있다. 만일 이전 상태로의 복귀가 선택되는 경우, 1260 동작에서 제1 파티션 영역에 저장된 기존 펌웨어 즉, 제1 펌웨어로 펌웨어 복구를 수행할 수 있으며, 1265 동작에서 재부팅을 수행하여 기존 펌웨어 기반의 운영체제로 구동시킬 수 있다. 여기서, 이전 상태로의 복귀는 사용자 선택에 대응하여 수행될 수도 있지만, 전자 장치(401) 내부적으로 에러 발생과 같은 이벤트 상황 발생에 대응하여 이전 상태로의 복귀가 이루어질 수도 있다.
도 13은 다양한 실시 예에 따른 서버로부터 제공되는 업데이트 파일의 내용을 보여주는 예시도(1300)이며, 도 14는 다양한 실시 예에 따른 서버로부터 제공되는 업데이트 파일이 적용된 경우를 보여주는 예시도(1400)이다.
도 13 및 도 14를 참조하면, 도 13에서는 전자 장치(401)에서 이용 가능한 업데이트 항목에 대한 데이터 구조의 개략도를 예시하고 있으며, 서버(예: FOTA 서버(220))를 통해 전자 장치(401)로 전달되는 업데이트 파일은 수정 사항을 포함한다는 점을 알 수 있다. 예를 들어, 안드로이드 운용자 측에서는 안드로이드 기기에 영향을 미치는 보안 취약성 세부 정보 및 기능 개선에 대해 다루고 있으며, 기기의 보안 패치에 문제가 발생한 경우 이를 해결하기 위한 소스 코드 패치(1305, 1310)를 예시하고 있다. 도 13에서는 이러한 소스 코드 패치 형태로 제작되는 업데이트 파일은 'libpac' 라이브러리(1315)에 대한 내용임이 명시되어 있다.
상기와 같은 업데이트 파일은 전자 장치(401) 내의 'libpac' 라이브러리 파일을 대체하여 적용될 수 있다. 이러한 업데이트 파일의 적용을 위해 전자 장치(410)는 리커버리(recovery) 모드로 진입하게 되고, 현재 이용 중인 펌웨어와 상기 업데이트 파일을 각각 마운트하여 이를 새로운 파티션 영역에 복사한 후 재부팅함으로써 업데이트 파일의 적용이 완료될 수 있다. 이에 따라 도 14에 도시된 바와 같이 전자 장치(401) 내의 'libpac' 라이브러리(1410) 폴더는 새로운 내용으로 업데이트되었음을 확인할 수 있다.
상기한 바와 같이 다양한 실시 예에 따르면, 신규 펌웨어와 기존의 펌웨어에서 차이가 나는 부분만을 추출한 델타 파일을 사용함으로써, 전자 장치(401)는 기존에 설치된 현재 버전의 펌웨어를 사용자가 원하는 업데이트 항목으로 구성되는 새로운 버전의 펌웨어로 업데이트할 수 있다. 게다가 전자 장치(401)가 업데이트된 펌웨어를 이용한 운영 체제의 새 버전으로 구동되더라도 사용자에 의한 최종 결정이 있기 전까지는 언제든지 원상태로 복구되거나 다른 업데이트 항목의 조합의 펌웨어로 변경될 수 있어 안정적인 펌웨어 업데이트가 가능할 수 있다.
본 문서에 개시된 다양한 실시 예에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시 예 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시 예들로 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나","A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나" 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시 예는 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시 예에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
다양한 실시 예에 따르면, 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 전자 장치의 메모리의 제1 파티션 영역에 저장된 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보를 출력하는 동작, 상기 복수의 업데이트 파일들 중 적어도 하나의 제1 업데이트 파일과 연관된 선택을 획득하는 동작 및 상기 선택에 근거하여, 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제1 업데이트 파일에 기반하여 획득된 제2 펌웨어를 상기 메모리의 제2 파티션 영역에 저장하는 동작을 포함할 수 있다.
그리고 본 명세서와 도면에 발명된 본 발명의 실시 예들은 본 발명의 실시 예에 따른 기술 내용을 쉽게 설명하고 본 발명의 실시 예의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 실시 예의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 다양한 실시 예의 범위는 여기에 발명된 실시 예들 이외에도 본 발명의 다양한 실시 예의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 다양한 실시 예의 범위에 포함되는 것으로 해석되어야 한다.

Claims (15)

  1. 전자 장치에 있어서,
    디스플레이;
    적어도 하나의 프로세서; 및
    메모리를 포함하며,
    상기 메모리는, 실행 시에, 상기 적어도 하나의 프로세서가,
    상기 메모리의 제1 파티션 영역에 저장된 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보를 출력하도록 상기 디스플레이를 제어하고,
    상기 복수의 업데이트 파일들 중 적어도 하나의 제1 업데이트 파일과 연관된 선택을 획득하고,
    상기 선택에 근거하여, 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제 1 업데이트 파일에 기반하여 획득된 제2 펌웨어가 상기 메모리의 제2 파티션 영역에 저장되도록 하는 인스트럭션들을 저장하는 전자 장치.
  2. 제1항에 있어서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 제1 펌웨어 업데이트 완료에 따른 재부팅 후, 상기 제2 파티션 영역에 저장된 상기 제2 펌웨어를 참조하여 운영체제를 구동하도록 설정된, 전자 장치.
  3. 제1항에 있어서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 복수의 업데이트 파일들을 상기 메모리의 제3 파티션 영역에 다운로드하고,
    상기 복수의 업데이트 파일들 중 적어도 하나의 제2 업데이트 파일과 연관된 선택을 획득하고,
    상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제2 업데이트 파일에 기반하여 획득된 제3 펌웨어가 상기 메모리의 제4 파티션 영역에 저장되도록 하는, 전자 장치.
  4. 제3항에 있어서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 제1 펌웨어 업데이트 완료에 따른 재부팅 후,
    상기 제4 파티션 영역에 저장된 상기 제3 펌웨어를 참조하여 운영체제를 구동하도록 설정된, 전자 장치.
  5. 제1항에 있어서, 상기 적어도 하나의 제1 업데이트 파일은,
    상기 복수의 업데이트 파일들 중 상기 선택을 위한 사용자 입력에 대응하는 조합으로 구성된, 전자 장치.
  6. 제3항에 있어서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 제2 펌웨어에 대한 변경 요청에 대응하여, 상기 복수의 업데이트 파일들 중 적어도 하나의 제3 업데이트 파일과 연관된 선택을 획득하고,
    상기 제1 펌웨어의 일부와 상기 적어도 하나의 제3 업데이트 파일에 기반하여 획득된 제4 펌웨어로 상기 메모리의 제2 파티션 영역에 저장된 상기 제2 펌웨어를 교체하도록 하는, 전자 장치.
  7. 제1항에 있어서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 제1 펌웨어로의 복원 요청에 대응하여, 재부팅 후 상기 제1 파티션 영역에 저장된 상기 제1 펌웨어를 참조하여 운영체제를 구동하도록 설정된, 전자 장치.
  8. 제1항에 있어서, 상기 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보는,
    운영체제 업그레이드, 새로운 기능(feature)의 추가, 버그 수정, 또는 보안 수정 사항 중 적어도 하나를 포함하는, 전자 장치.
  9. 제1항에 있어서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 복수의 업데이트 파일들을 제공하는 서버로부터 업데이트 요청 수신 시, 상기 제1 펌웨어를 업데이트하기 위한 상기 복수의 업데이트 파일들에 대한 정보를 상기 디스플레이 상에 출력하며,
    상기 선택에 근거하여, 상기 복수의 업데이트 파일들 중 상기 적어도 하나의 제1 업데이트 파일을 다운로드 하도록 설정된, 전자 장치.
  10. 전자 장치에서 펌웨어를 업데이트하기 위한 방법에 있어서,
    상기 전자 장치의 메모리의 제1 파티션 영역에 저장된 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보를 출력하는 동작;
    상기 복수의 업데이트 파일들 중 적어도 하나의 제1 업데이트 파일과 연관된 선택을 획득하는 동작; 및
    상기 선택에 근거하여, 상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제 1 업데이트 파일에 기반하여 획득된 제2 펌웨어를 상기 메모리의 제2 파티션 영역에 저장하는 동작을 포함하는, 펌웨어를 업데이트하기 위한 방법.
  11. 제10항에 있어서,
    상기 제1 펌웨어 업데이트 완료에 따른 재부팅 후, 상기 제2 파티션 영역에 저장된 상기 제2 펌웨어를 참조하여 운영체제를 구동하는 동작을 더 포함하는, 펌웨어를 업데이트하기 위한 방법.
  12. 제10항에 있어서,
    상기 복수의 업데이트 파일들을 상기 메모리의 제3 파티션 영역에 다운로드하는 동작;
    상기 복수의 업데이트 파일들 중 적어도 하나의 제2 업데이트 파일과 연관된 선택을 획득하는 동작;
    상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제2 업데이트 파일에 기반하여 획득된 제3 펌웨어를 상기 메모리의 제4 파티션 영역에 저장하는 동작;
    상기 제1 펌웨어 업데이트 완료에 따른 재부팅 후, 상기 제4 파티션 영역에 저장된 상기 제3 펌웨어를 참조하여 운영체제를 구동하는 동작을 더 포함하는, 펌웨어를 업데이트하기 위한 방법.
  13. 제11항에 있어서,
    상기 제1 펌웨어로의 복원 요청에 대응하여, 재부팅 후 상기 제1 파티션 영역에 저장된 상기 제1 펌웨어를 참조하여 운영체제를 구동하는 동작을 더 포함하는, 펌웨어를 업데이트하기 위한 방법.
  14. 제12항에 있어서,
    상기 제2 펌웨어에 대한 변경 요청에 대응하여, 상기 복수의 업데이트 파일들 중 적어도 하나의 제3 업데이트 파일과 연관된 선택을 획득하는 동작; 및
    상기 제1 펌웨어의 적어도 일부와 상기 적어도 하나의 제3 업데이트 파일에 기반하여 획득된 제4 펌웨어로 상기 메모리의 제2 파티션 영역에 저장된 상기 제2 펌웨어를 교체하는 동작을 더 포함하는, 펌웨어를 업데이트하기 위한 방법.
  15. 제10항에 있어서, 상기 제1 펌웨어를 업데이트하기 위한 복수의 업데이트 파일들에 대한 정보는,
    운영체제 업그레이드, 새로운 기능(feature)의 추가, 버그 수정, 또는 보안 수정 사항 중 적어도 하나를 포함하는, 펌웨어를 업데이트하기 위한 방법.
PCT/KR2019/016630 2019-01-18 2019-11-28 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체 WO2020149520A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/310,115 US20220100490A1 (en) 2019-01-18 2019-11-28 Firmware updating method, and electronic apparatus and storage media for same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0007025 2019-01-18
KR1020190007025A KR20200090010A (ko) 2019-01-18 2019-01-18 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체

Publications (1)

Publication Number Publication Date
WO2020149520A1 true WO2020149520A1 (ko) 2020-07-23

Family

ID=71613367

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/016630 WO2020149520A1 (ko) 2019-01-18 2019-11-28 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체

Country Status (3)

Country Link
US (1) US20220100490A1 (ko)
KR (1) KR20200090010A (ko)
WO (1) WO2020149520A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672257A (zh) * 2021-08-05 2021-11-19 深圳市道通智能汽车有限公司 一种微控制单元软件升级方法、电子设备及存储介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7316078B2 (ja) * 2019-03-29 2023-07-27 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および機能実行方法
KR102448453B1 (ko) * 2020-11-11 2022-09-28 주식회사 엘지유플러스 전자 디바이스 및 펌웨어 업데이트 방법
KR102464892B1 (ko) * 2021-04-29 2022-11-09 엘아이지넥스원 주식회사 유도 비행체의 운영 프로그램을 업데이트하기 위한 장치 및 그 방법
WO2023101294A1 (ko) * 2021-11-30 2023-06-08 삼성전자 주식회사 저장 공간을 관리하기 위한 전자 장치 및 전자 장치의 동작 방법
CN114936037B (zh) * 2022-07-21 2022-12-09 天津七一二移动通信有限公司 一种兼容多型号铁路cir程序升级的夹具实现方法
CN117667129A (zh) * 2022-08-24 2024-03-08 中兴通讯股份有限公司 配置文件更新方法、装置、电子设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100010761A (ko) * 2008-07-23 2010-02-02 삼성전자주식회사 휴대 단말기의 펌웨어 갱신 방법
KR20110025416A (ko) * 2009-09-04 2011-03-10 엘지전자 주식회사 네트워크 tv의 펌웨어 분할 업데이트 방법
US20170286094A1 (en) * 2014-09-02 2017-10-05 Gemalto M2M Gmbh Method for adapting firmware of a wireless communication device
KR20180131840A (ko) * 2017-06-01 2018-12-11 한국전자통신연구원 펌웨어 업데이트 지원 장치 및 그 방법
US20180357058A1 (en) * 2017-06-09 2018-12-13 Rockwell Automation Technologies, Inc. Devices and revisions templates for managing firmware standards

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8869138B2 (en) * 2011-11-11 2014-10-21 Wyse Technology L.L.C. Robust firmware update with recovery logic
US20150143070A1 (en) * 2013-11-19 2015-05-21 Samsung Electronics Co., Ltd. Nonvolatile storage and operating methods of computing devices including the nonvolatile storage
US20190364036A1 (en) * 2018-05-24 2019-11-28 Simtek, Inc. Systems, apparatus, and methods for low-power, intermittently-connected, security devices and other devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100010761A (ko) * 2008-07-23 2010-02-02 삼성전자주식회사 휴대 단말기의 펌웨어 갱신 방법
KR20110025416A (ko) * 2009-09-04 2011-03-10 엘지전자 주식회사 네트워크 tv의 펌웨어 분할 업데이트 방법
US20170286094A1 (en) * 2014-09-02 2017-10-05 Gemalto M2M Gmbh Method for adapting firmware of a wireless communication device
KR20180131840A (ko) * 2017-06-01 2018-12-11 한국전자통신연구원 펌웨어 업데이트 지원 장치 및 그 방법
US20180357058A1 (en) * 2017-06-09 2018-12-13 Rockwell Automation Technologies, Inc. Devices and revisions templates for managing firmware standards

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672257A (zh) * 2021-08-05 2021-11-19 深圳市道通智能汽车有限公司 一种微控制单元软件升级方法、电子设备及存储介质
CN113672257B (zh) * 2021-08-05 2024-05-28 深圳市塞防科技有限公司 一种微控制单元软件升级方法、电子设备及存储介质

Also Published As

Publication number Publication date
US20220100490A1 (en) 2022-03-31
KR20200090010A (ko) 2020-07-28

Similar Documents

Publication Publication Date Title
WO2020149520A1 (ko) 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체
WO2014209078A1 (en) Method and apparatus for updating application
WO2019190277A1 (ko) 데이터를 처리하기 위한 방법 및 이를 지원하는 전자 장치
WO2020171427A1 (ko) 어플리케이션을 프리페치하는 전자 장치 및 방법
WO2021075736A1 (en) Electronic device and method for sharing voice command thereof
WO2020032510A1 (en) Electronic device including electronic pen and method of controlling communication connection between electronic device and electronic pen
WO2019164128A1 (en) Method and apparatus for multimodal operation of near field communications circuitry
WO2017084051A1 (zh) 外接设备的管理方法、装置、系统以及存储器、无人机
WO2019083271A1 (ko) 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법
WO2019059596A1 (ko) 전자 장치의 소프트웨어의 업데이트를 관리하기 위한 장치 및 방법
WO2017014587A1 (en) Electronic device and method for managing object in folder on electronic device
WO2021025497A1 (en) Electronic device and method for sharing data thereof
WO2020027413A1 (ko) 팩토리 데이터 리셋 기능에 의해 제거된 어플리케이션을 복원하는 장치 및 방법
WO2020080767A1 (en) Method for controlling execution of heterogeneous operating systems and electronic device and storage medium therefor
WO2016183721A1 (zh) 一种终端设备刷机方法、装置和设备
WO2019182335A1 (ko) 전자 장치 및 전자 장치의 업데이트 제어 방법
WO2021187818A1 (ko) 전자 장치 및 전자 장치의 테마를 부분적으로 운용하는 방법
WO2020101351A1 (en) Electronic device and method for transceiving control signal
WO2020218805A1 (en) Electronic device and method of controlling thereof
EP3803585A1 (en) Electronic device for executing multiple operating systems and method of controlling same
WO2020218743A1 (en) Method for controlling execution of application, electronic device and storage medium for the same
WO2020171465A1 (en) Electronic device and application managing method thereof
WO2020106019A1 (en) Electronic device and method for providing in-vehicle infotainment service
WO2020180045A1 (en) Electronic device and method for utilizing memory space thereof
WO2022265364A1 (ko) 소프트웨어 커스터마이징 방법, 이를 위한 전자 장치 및 저장 매체

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19910720

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19910720

Country of ref document: EP

Kind code of ref document: A1