KR20080019454A - Firmware generating method and deltafile and firmware updating method for cell phone - Google Patents

Firmware generating method and deltafile and firmware updating method for cell phone Download PDF

Info

Publication number
KR20080019454A
KR20080019454A KR1020060081824A KR20060081824A KR20080019454A KR 20080019454 A KR20080019454 A KR 20080019454A KR 1020060081824 A KR1020060081824 A KR 1020060081824A KR 20060081824 A KR20060081824 A KR 20060081824A KR 20080019454 A KR20080019454 A KR 20080019454A
Authority
KR
South Korea
Prior art keywords
file
delta
block
firmware
compression
Prior art date
Application number
KR1020060081824A
Other languages
Korean (ko)
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 KR1020060081824A priority Critical patent/KR20080019454A/en
Publication of KR20080019454A publication Critical patent/KR20080019454A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

A method for generating a delta file for updating firmware of a mobile terminal and a firmware updating method using the same are provided to increase a patching speed by reducing the size of the delta file and replacing a block unit file of a previous version with a new version file in reference to block offset information in the delta file. A firmware updating device updating firmware of a mobile terminal checks a difference by comparing a previous version file with a new version file in a block unit based on a difference algorithm(S403). The firmware updating device compresses the new version file in the block unit by using a compression algorithm when the size of the compressed new version file is smaller than that of the uncompressed new version file(S405). The firmware updating device generates one delta block by including the compressed block unit file, compression data, and compressed/uncompressed size data(S407). The firmware updating device generates a delta file by collecting the delta blocks(S409).

Description

휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법과 델타파일 및 이를 이용한 펌웨어 업데이트 방법{firmware generating method and deltafile and firmware Updating method for cell phone}Delta file generation method for firmware update of mobile terminal and delta file and firmware update method using same {firmware generating method and deltafile and firmware Updating method for cell phone}

도 1은 종래의 휴대 단말기 펌웨어 업데이트를 위한 시스템을 나타내는 블록도1 is a block diagram showing a system for updating a conventional portable terminal firmware

도 2는 종래의 델타파일 구조를 나타내는 도면2 is a view showing a conventional delta file structure

도 3은 본 발명에 따른 펌웨어 업데이트 시스템을 나타내는 블록도3 is a block diagram illustrating a firmware update system according to the present invention.

도 4는 델타파일 생성방법을 나타내는 순서도4 is a flowchart illustrating a method of generating a delta file.

도 5은 본 발명에 따른 델파 파일의 구성을 나타내는 블록도5 is a block diagram showing the configuration of a Delphi file according to the present invention.

도 6은 휴대 단말기의 업데이트 방법을 나타내는 순서도6 is a flowchart illustrating a method of updating a mobile terminal.

본 발명은 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법과 델타파일 및 이를 이용한 펌웨어 업데이트 방법에 관한 것으로, 보다 상세하게는 업데이트용 파일의 크기를 축소하고 패치 속도가 향상되도록 한 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법과 델타파일 및 이를 이용한 펌웨어 업데이트 방법에 관한 것이다.The present invention relates to a method for generating a delta file for firmware update of a mobile terminal, a delta file and a firmware update method using the same, and more specifically, for updating a firmware of a mobile terminal such that the size of the update file is reduced and the patch speed is improved. The present invention relates to a delta file generation method and a delta file and a firmware update method using the same.

최근 전화, PDA 등의 휴대 단말기는 각종 정보를 용이하게 관리하고 다양한 응용프로그램을 사용할 수 있도록 기능이 지속적으로 향상되고 있으며, 이와 같이 휴대 단말기의 기능 향상은 메모리가 대용량이 되고 CPU의 속도가 향상되는 것과 함께 펌웨어의 업데이트를 통해서 달성되는데, 상기한 펌웨어는 휴대 단말기들을 운영하기 위한 운영체제들과, 기본적인 프로그램들 및 데이터들로 구성되어 휴대 단말기의 롬에 저장되고 실제 구동시에는 부팅을 통하여 램으로 로드된다.Recently, mobile terminals such as telephones and PDAs are continuously improving functions to easily manage various information and use various applications. As such, the functionalities of the portable terminals are increased in memory and CPU speed. This firmware is achieved by updating the firmware, which is composed of operating systems for operating the mobile terminals, basic programs and data, which are stored in the ROM of the mobile terminal and loaded into RAM by booting during actual operation. do.

이러한 펌웨어는 각종 프로그램 및 하드웨어의 개발로 인하여 새로운 기능들을 추가로 사용할 수 있도록 업데이트가 가능하게 구성되는데, 이러한 업데이트 파일은 대용량이므로, 업데이트를 위하여 종래에는 서비스센터를 찾거나, 컴퓨터에 다운로드 받은 후 컴퓨터와 휴대단말기를 유무선으로 연결하여 업데이트를 하였으며, 그 예를 하기에서 첨부된 도면을 참조하여 살펴본다.Such firmware is configured to be updated to use new functions additionally due to the development of various programs and hardware. Since such update files are large, they are usually found in a service center or downloaded to a computer. And updated by connecting the wireless terminal to the wired and wireless, and looks at the example with reference to the accompanying drawings.

도 1은 종래의 휴대 단말기 펌웨어 업데이트를 위한 시스템을 나타내는 블록도이다.1 is a block diagram showing a system for updating a conventional portable terminal firmware.

펌웨어 업데이트가 가능하도록 설계된 휴대 단말기(10)와, 인터넷이나 보조 저장매체 등을 통해 새로운 버전의 펌웨어 파일을 얻어 이를 해당 휴대 단말기(10)에 제공해 줄 수 있는 컴퓨터(20)와, 상기 컴퓨터(20)와 휴대 단말기(10)를 유무선으로 연결할 수 있는 수단(여기서는 유선 케이블)으로 구성된다.A portable terminal 10 designed to update firmware, a computer 20 which can obtain a new version of a firmware file through the Internet or an auxiliary storage medium, and provide the same to the portable terminal 10, and the computer 20 ) And means for connecting the mobile terminal 10 by wire or wireless (here, a wired cable).

이와 같이 구성된 시스템을 통해서 휴대 단말기(10)의 펌웨어는, 컴퓨터(20)에서 펌웨어 업데이트 전용 프로그램을 실행하여 연결된 휴대 단말기(10)를 원격 제어하면서 펌웨어 업데이트를 실시하거나 해당 휴대 단말기(10)의 운영체제에서 동작하는 전용 펌웨어 업데이트 프로그램 및 업데이트할 펌웨어 파일을 컴퓨터(20)에서 휴대 단말기(10)로 다운로드한 후 휴대 단말기(10)에서 해당 전용 펌웨어 업데이트 프로그램을 동작시켜, 펌웨어의 버전을 체크한 후 기존 버전을 소거하고 업데이트를 실시한다.Through the system configured as described above, the firmware of the portable terminal 10 executes a firmware update program on the computer 20 to perform firmware update while remotely controlling the connected portable terminal 10 or to operate the operating system of the portable terminal 10. After downloading the dedicated firmware update program and the firmware file to be updated from the computer 20 to the mobile terminal 10, the corresponding firmware update program is operated in the mobile terminal 10, and the firmware version is checked. Delete the version and perform the update.

그러나 이러한 업데이트 작업 시에 펌웨어 전체가 플래시 메모리에 기록되므로 사용자의 실수나 운영체제의 오류, 시스템 재부팅, 전원 부족, 전원 케이블 접촉 불량 등과 같은 상황이 발생되면 업데이트 과정을 새로하여야 하므로 시간이 낭비되는 문제점이 있었다.However, since the entire firmware is written to the flash memory during this update, if the user's mistake, operating system error, system reboot, power shortage, poor power cable contact, etc. occur, the update process must be renewed. there was.

이를 해결하기 위한 기술로 대한민국 공개특허 10-2006-0068558호에는 업데이트할 펌웨어의 버전이 롬에 기록된 펌웨어의 버전보다 높은 경우 업데이트를 실시하기 위한 펌웨어 바이너리 파일을 휴대 단말기의 램에 저장하고, 상기 램에 저장된 펌웨어 바이너리 파일과 롬에 기록된 이전 펌웨어의 바이너리 데이터를 비교하여 상이한 영역들의 위치정보와 상이한 데이터들을 별도의 테이블로 램의 일부에 저장한 후, 상기 테이블을 참조하여 업데이트를 위해 변경되어야 하는 데이터가 포함된 영역들을 소정 크기의 기록 단위로 소거 및 기록하는 과정을 반복하는 기술이 공개되어 있으나, 상기한 과정에서 펌웨어 업데이트용 바이너리 파일이 업그레이할 전체 프로그램을 기록하고 있으므로 파일 용량이 커서 업데이트에 시간이 오래 걸리는 문제점이 있을 뿐 아니라, 패치시에 휴대 단말기에 기록된 업데이트 파일 전체를 바이너리 단위로 비교하여야 하므로 패치 시간이 오래걸리는 문제점이 있었으 며, 휴대 단말기의 램 용량이 커야하는 제약이 있었다.As a technique for solving this problem, Korean Patent Laid-Open Publication No. 10-2006-0068558 discloses that a firmware binary file for performing an update is stored in a RAM of a mobile terminal when a firmware version to be updated is higher than a firmware version recorded in a ROM. The firmware binary file stored in the RAM and the binary data of the previous firmware recorded in the ROM are compared to store location information and different data in different areas in a part of the RAM as a separate table, and then changed for update by referring to the table. The technique of repeating the process of erasing and recording the area containing the data to a predetermined size recording unit is disclosed. However, since the binary file for firmware update records the entire program to be upgraded, the file size is large and is updated. There may be a problem that takes a long time In addition, since the entire update file recorded on the portable terminal should be compared in binary units at the time of patching, there was a problem that the patch took a long time, and the RAM capacity of the portable terminal had to be large.

그리고, 상기한 바와 같이 파일 전체를 다운로드하는 문제점을 해결하기 위한 기술로 대한민국 공개특허 10-2005-0106846호에는 이전버전과 새버전의 차이를 연산하여 생성된 델타파일을 다운로드 받아서 패치를 실행하는 기술이 공개되어 있으며, 상기한 델타파일은 도 2에 나타내는 바와 같이, 델타파일인지 아닌지를 판별하기 위한 델타파일 정보(511), 헤더의 무결성을 판단하기 위한 헤더 첵섬(512), 델타파일 자체의 무결성을 판단하기 위한 델타파일 첵섬(513), 기존 버전의 펌웨어인 베이스 파일의 길이(514), 새로운 버전의 펌웨어인 버전 파일의 길이(515), 베이스 파일을 더 짧은 길이의 값으로 변환하여 상징한 베이스 파일 해쉬값(516), 및 버전 파일을 더 짧은 길이의 값으로 변환하여 상징한 버전 파일 해쉬값(517)으로 구성된 헤더부분(510) 및 펌웨어 업데이트를 하기 위한 프로세스인 명령어 n(n=1,2,...N)들(520)로 구성된다.In addition, the technology for solving the problem of downloading the entire file as described above, the Republic of Korea Patent Publication No. 10-2005-0106846 has a technique for executing the patch by downloading the delta file generated by calculating the difference between the old version and the new version As shown in Fig. 2, the delta file includes the delta file information 511 for determining whether or not the delta file, the header checksum 512 for determining the integrity of the header, and the integrity of the delta file itself. Delta file checksum (513) to determine, the length of the base file of the previous version of the firmware (514), the length of the version file of the new version of the firmware (515), the base symbol by converting the base file into a shorter value Header portion 510 and firmware update comprising a file hash value 516, and a version file hash value 517 symbolized by converting a version file into a shorter value. Command n (n = 1,2, ... N) 520, which is a process for performing the data.

그러나, 상기한 기술 역시 델타파일과 휴대 단말기의 원본 파일을 일일이 비교하여 차이가 나는 부분이 같은 어드레스 영역인지를 확인한 후 패치를 실시하여야 하므로 패치에 시간이 오래 걸리는 문제점이 있었다.However, the above-described technique also has a problem in that the patch takes a long time since the patch must be performed after comparing the delta file and the original file of the mobile terminal to check whether the difference is the same address area.

상기한 문제점을 해결하기 위한 본 발명의 특징은 델타파일 생성시에 이전버전의 기존파일과 신규버전의 새파일을 블록 단위로 비교하고 차이가 발생되는 블록의 압축시에 압축된 파일과 원본파일의 크기를 비교하여 압축된 파일의 용량이 작아질 경우에만 압축을 수행하여 델타파일의 용량을 감소시키고, 델타파일 구성시에 블록의 옵셋정보를 포함시킴으로써 패치시에 해당 옵셋정보를 참조로 그에 대응되는 휴대 단말기의 이전버전의 블록 단위 파일을 교체할 수 있도록 하여 패치 속도를 향상시킨 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법과 델타파일 및 이를 이용한 펌웨어 업데이트 방법을 제공하는 데 있다.A feature of the present invention for solving the above problems is that when a delta file is generated, an existing file of a previous version and a new file of a new version are compared in units of blocks, and the compressed file and the original file are compressed at the time of compressing a block in which a difference occurs. Compare the size and reduce the size of delta file by compressing only when the compressed file size is small, and include the offset information of the block when constructing the delta file. The present invention provides a method of generating a delta file for updating a firmware of a mobile terminal having improved patch speed by replacing a block unit file of a previous version of the portable terminal, a delta file, and a firmware update method using the same.

상기한 목적을 달성하기 위한 본 발명의 특징은 이전버전의 기존파일과 신규 버전의 새 파일을 차이 알고리즘(DIFFERENCE ALGORITHM)을 통해 블록 단위로 비교하여 차이가 있는 블록을 압축 알고리즘을 통해서 선택적 즉 압축 후 사이즈가 압축전 사이즈보다 적을 경우에만 압축을 수행하며, 차이가 있는 블록의 옵셋(Offset) 정보와 압축 여부 및 압축 전/후 사이즈, 신규버전의 패치 데이터 등을 포함한 델타 블록을 생성하고, 생성된 델타블록들을 하나의 델타파일로 생성한 후, 해당 블록 옵셋 정보를 이용하여 휴대 단말기의 해당 블록을 업데이트하는 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법과 델타파일 및 이를 이용한 펌웨어 업데이트 방법을 실시하여 펌웨어 업데이트 속도를 향상시킨 것이다.A feature of the present invention for achieving the above object is to compare the existing file of the previous version and the new file of the new version in block units by using a difference algorithm (DIFFERENCE ALGORITHM) by the compression algorithm, that is, after the selective block compression Compression is performed only when the size is smaller than the size before compression, and a delta block including offset information of the difference block, whether or not it is compressed, the size before and after compression, and the patch data of the new version is generated. After the delta blocks are generated as one delta file, the delta file generation method for the firmware update of the mobile terminal updating the corresponding block of the mobile terminal using the block offset information, the delta file and the firmware update method using the same are performed to perform the firmware. The update speed has been improved.

상기한 구성에서 블록의 크기는 플래시 메모리의 섹터 단위 혹은 임의의 단위가 될 수 있다.In the above configuration, the block size may be a sector unit or an arbitrary unit of the flash memory.

이상과 같은 특징을 갖는 본 발명의 실시예를 하기에서 첨부된 도면을 참조하여 보다 상세하게 살펴본다.An embodiment of the present invention having the above characteristics will be described in more detail with reference to the accompanying drawings.

도 3은 본 발명에 따른 펌웨어 업데이트 시스템을 나타내는 블록도이다.3 is a block diagram illustrating a firmware update system according to the present invention.

본 발명에 따른 펌웨어 업데이트 시스템은, 펌웨어 제공 서버(미 도시)와 온라인으로 연결되거나 펌웨어가 기록된 기록매체로부터 펌웨어를 제공받아 델타파일 생성 알고리즘에 따라 델타파일을 생성하는 펌웨어 업데이트 장치(100)와, 상기한 펌웨어 업데이트 장치(100)와 유선 혹은 무선으로 연결되어 다운로드 받은 델파 파일을 델타파일 패치 알고리즘을 통해서 패치하여 기존파일을 새파일로 업데이트하는 휴대 단말기(200)로 구성되고, 상기한 펌웨어 업데이트 장치(100)는 통상의 컴퓨터를 사용하며, 컴퓨터와 휴대단말기는 USB, OTA등을 통해서 연결된다.The firmware update system according to the present invention includes a firmware update apparatus 100 connected online with a firmware providing server (not shown) or receiving firmware from a recording medium on which firmware is recorded to generate a delta file according to a delta file generation algorithm. In addition, the firmware update device 100 is connected to the wired or wireless connection to the downloaded Delphi file via a delta file patch algorithm consisting of a mobile terminal 200 for updating the existing file to a new file, the firmware update described above The device 100 uses a conventional computer, and the computer and the portable terminal are connected via USB, OTA, or the like.

도 4는 델타파일 생성방법을 나타내는 순서도이고, 도 5은 본 발명에 따른 델파 파일의 구성을 나타내는 블록도이다.4 is a flowchart illustrating a method of generating a delta file, and FIG. 5 is a block diagram illustrating a configuration of a delta file according to the present invention.

델타파일 생성은 컴퓨터의 델타파일 생성 알고리즘을 통해서 실시되는데, 우선 신규버전의 새파일과 이전버전의 기존파일(이하 원본파일 이라 함)을 선택하며, 이는 컴퓨터가 휴대 단말기와의 데이터 송/수신을 통해서 버전정보를 확인하여 자동으로 실행할 수도 있으며, 사용자가 컴퓨터의 입력수단을 통해서 선택할 수도 있다.(S401)Delta file generation is performed through the computer's delta file generation algorithm. First, a new version of the new file and an existing file of the previous version (hereinafter referred to as the original file) are selected. This allows the computer to transmit / receive data with the mobile terminal. The version information may be checked and executed automatically, or the user may select it through an input means of a computer (S401).

이와 같이 원본파일과 새파일을 선택하고, 각 파일의 검증값(CHECKSUM)을 계산하여 유효성을 확인한 후 델타 헤더를 구성하는데, 상기한 델타 헤더는 델타파일 식별자, 델타파일 전체의 크기, 원본파일 첵섬, 원본파일 사이즈, 새파일 첵섬, 새파일 사이즈를 포함한다.(S402)In this way, the original file and the new file are selected, and the validity is calculated by calculating the validation value (CHECKSUM) of each file, and the delta header is composed of the delta file identifier, the size of the entire delta file, and the original file checksum. , Original file size, new file checksum, and new file size (S402).

이후, 차이 알고리즘(Difference Algorithm)을 통해서 새파일과 원본파일의 상호 대응되는 블록의 바이트레벨 차이를 계산(S403)하여 대응되는 블록이 동일한지를 판단한다.(S404)Subsequently, a byte level difference between blocks corresponding to the new file and the original file is calculated through a difference algorithm (S403) to determine whether the corresponding blocks are the same (S404).

스텝 S404에서 대응되는 블록이 동일할 경우에는 다음 블록의 차이를 계산하고, 대응되는 블록이 다를 경우에는 그 차이를 델타 버퍼의 해시테이블에 저정한다. In step S404, if the corresponding blocks are the same, the difference of the next block is calculated. If the corresponding blocks are different, the difference is stored in the hash table of the delta buffer.

그리고 압축후의 사이즈를 연산하여 압축후의 사이즈가 압축전의 사이즈보다 큰지를 판단하여 압축을 수행할지 여부를 판단(S405)하여, 클 경우에는 압축을 수행하지 않고 델타블록을 생성(S406)하고, 작을 경우에는 압축 알고리즘을 통해서 압축을 수행(S407)하여 델타블록을 생성(S406)한다.After calculating the size after compression, it is determined whether the size after compression is larger than the size before compression (S405). If large, a delta block is generated without performing compression (S406). In operation S407, compression is performed using a compression algorithm to generate a delta block.

이때, 델타블록에는 해당 블록의 옵셋정보와 압축여부 데이터, 압축 전/후 데이터 사이즈, 패치할 신규 데이터 등이 포함된다.In this case, the delta block includes offset information of the corresponding block, whether data is compressed, data size before and after compression, and new data to be patched.

이와 같이 델타 블록을 생성한 후, 비교된 신규파일의 블록 사이즈를 합한 값(offset)과 새파일의 사이즈(newfilesize)를 비교(S408)하여 비교된 블록 사이즈를 합한값이 새파일의 사이즈보다 적을 경우에는 상기한 스텝 S403으로 과정을 귀환하여 차이알고리즘 수행과정부터 델타블록 생성 과정(S406)까지를 반복 수행하여 델타블록들을 계속해서 생성하고, 비교된 블록들의 파일 사이즈를 합하여 새파일의 사이즈와 동일할 경우에는 데이터를 인코딩(encoding)하여 델타파일을 생성한다.(S409)After the delta block is generated in this way, the combined block size of the compared new file (offset) and the size of the new file (newfilesize) are compared (S408) so that the combined block size is smaller than the size of the new file. In this case, the process is returned to the above step S403 to repeat the process from the difference algorithm to the delta block generation process (S406) to continuously generate the delta blocks, and the file size of the compared blocks is equal to the size of the new file. In this case, a delta file is generated by encoding data (S409).

이와 같이 생성된 델타파일은 비밀키를 이용하여 암호화과정을 수행한다.The delta file generated as described above is encrypted using a secret key.

상기한 델타파일 생성방법을 통해서 생성된 델타파일은 도 5 나타내는 바와 같이 델타헤더(310)와 델타바디(320)로 구성된다.The delta file generated through the delta file generation method includes a delta header 310 and a delta body 320 as shown in FIG. 5.

상기한 구성에서 델타헤더(310)는 델타식별자, 델타검증값, 델타사이즈 및 파일정보로 구성되는데, 델타 식별자는 5바이트로 구성되어 처음 1바이트는 다운로드 플래그로서 "1" 또는 "0"값을 갖고 있으며, 이는 델타파일 다운로드의 시작과 종료를 나타낸다. 이후 4바이트는 델타 식별자로서 바이너리 업데이트를 알리는 예약된 문자열이다. 그리고 델타 검증값은 암호화 값을 나타내고, 델타사이즈는 전체 다운로드 받은 델타 파일의 사이즈를 나타낸다. 파일정보는 신규버전 및 이전버전의 첵섬과 사이즈로 구성된다.In the above configuration, the delta header 310 is composed of a delta identifier, a delta verification value, a delta size, and file information. The delta identifier consists of 5 bytes, and the first 1 byte is a "1" or "0" value as a download flag. It indicates the start and end of the delta file download. The next 4 bytes are a delta identifier, which is a reserved string indicating the binary update. The delta verification value represents the encryption value and the delta size represents the size of the entire downloaded delta file. The file information consists of the size and size of the new and previous versions.

그리고, 델타바디는 신규버전파일과 이전버전파일을 블록별 차이 알고리즘을 통해서 생성된 델타 1에서 델타 N까지의 델타블록 및 종료 플래그를 포함하며, 각 델타블록은 해당 블록의 식별자인 블록 옵셋과, 압축여부를 나타내는 압축플래그, 압축파일의 경우 압축 데이터와 원본 데이터의 사이즈, 명령어 시작 플래그, MOD, INS, DEL, EQL 등의 명령어 코드, 상기한 명령어코드가 실행되어야 할 데이터 옵셋, 상기한 데이타 옵셋에 따라 실행되는 패치데이타로 구성된다.In addition, the delta body includes a delta block from the delta 1 to the delta N and an end flag generated between the new version file and the previous version file through a block-by-block difference algorithm, and each delta block includes a block offset, which is an identifier of the corresponding block, Compression flag that indicates whether to compress or not, compressed data and original data size in case of compressed file, command start flag, command code such as MOD, INS, DEL, EQL, data offset to be executed above command code, data offset It consists of patch data that is executed according to

이와 같이 구성된 델타파일을 이용한 휴대 단말기의 업데이트 과정은 도 6을 참고하여 설명한다.An update process of the mobile terminal using the delta file configured as described above will be described with reference to FIG. 6.

도 6은 휴대 단말기의 업데이트 방법을 나타내는 순서도이다.6 is a flowchart illustrating a method of updating a mobile terminal.

델타 파일을 이용하여 휴대 단말기를 업데이트하는 방법은 델파 파일을 지정 된 패킷 단위로 컴퓨터에서 휴대 단말기의 지정된 영역에 다운로드하고 암호화된 델타파일은 복호화하며 압축플래그에 따라 압축해제여부를 결정한다. 이후 델타블록의 옵셋정보를 이용하여 원본 파일의 업데이트가 필요한 블록만을 찾아 델타파일의 패치를 완료하고 패치가 완료되면 델타 파일의 다운로드 플래그를 "1"에서 "0"으로 변경한 후 휴대 단말기를 리셋한다.In the method of updating a mobile terminal using a delta file, the delta file is downloaded from a computer to a designated area of the mobile terminal in a designated packet unit, the encrypted delta file is decrypted, and the compression is determined according to the compression flag. After locating only the blocks that need updating of the original file by using the offset information of the delta block, the patch of the delta file is completed.When the patch is completed, the download flag of the delta file is changed from "1" to "0" and the mobile terminal is reset. do.

한편 상기한 업데이트 방법에서 업데이트를 수행한 블록의 옵셋정보는 휴대 단말기의 메모리에 백업되어 휴대 단말이 패치도중 리셋등의 이유로 다시 패치를 하여야 할 경우 해당 백업정보가 사용된다.On the other hand, in the update method, the offset information of the block that has been updated is backed up in the memory of the portable terminal so that the backup information is used when the portable terminal needs to patch again due to a reset during the patch.

이를 보다 상세하게 살펴보면, 우선 휴대 단말기의 델타 패치 알고리즘은 메모리에 기록된 백업정보를 확인해서 현재 진행중인 과정이 백업과정인지를 판단(S601)하는데, 백업과정이 아닌 경우는 델타파일과 원본파일의 첵섬을 검사하여 유효성을 검증(S602)(S603)한 후, 압축플래그를 통해서 압축여부를 판단(S604)하고 압축이 수행된 블록의 경우 압축해제(S605)를 수행한다.Looking at this in more detail, first, the delta patch algorithm of the mobile terminal checks the backup information recorded in the memory to determine whether the current process is a backup process (S601). After checking the validity (S602) (S603), it is determined whether or not the compression through the compression flag (S604), and in the case of a block in which compression is performed decompression (S605).

상기한 압축여부 판단 과정(S604)에서 압축을 하지 않은 블록은 그대로 패치(S606)되고 상기한 바와 같이 압축된 블록의 경우 압축해제(S605)를 완료한 후 패치(S606)를 수행하는데 이 과정에서 해당 블록의 옵셋정보에 따라 업데이트가 필요한 블록만을 찾아서 델타 패치 알고리즘이 패치를 실행한다. 이는 블록옵셋을 이용하여 플래시롬의 델타 어드레스에서 저장된 델타파일과 원본파일을 바이트(byte)단위로 비교하여 새로운 바이너리 파일을 생성하는 것이다.In the compression determination process (S604), the uncompressed block is patched as it is (S606), and in the case of the compressed block as described above, after the decompression (S605) is completed, the patch (S606) is performed. Based on the offset information of the block, only the block that needs to be updated is found and the delta patch algorithm executes the patch. This creates a new binary file by comparing the delta file stored at the delta address of FlashROM with the original file by byte unit using block offset.

그리고, 백업과정으로 판단될 경우에는 델타파일과 원본파일의 유효성 검증 을 하지 않고, 백업 정보를 불러(S607)와서 진행된 다음 블록의 압축 여부를 판단(S604)한 후 압축해제(S605)와 패치과정(S606)을 수행한다.If it is determined that the backup process is performed, the backup information is loaded without the validation of the delta file and the original file (S607), and then decompressed (S605) and the patch process is determined after the compression of the next block (S604). (S606).

이와 같은 과정을 패치한 블록까지의 모든 블록의 사이즈와 새파이의 사이즈를 비교(S608)하여 같아질 때까지 반복하여 전체 델타 파일을 업데이트한 후 업데이트된 파일의 유효성을 검증(S609)한 후, 델타파일의 첫번째 바이트를 "0"으로 변경하여 휴대 단말기를 리셋한다.After comparing the size of all blocks and the size of sapphire to the block that patched the above process (S608) and repeatedly updating the entire delta file until the same, and then validate the updated file (S609), Reset the mobile terminal by changing the first byte of the delta file to "0".

상기한 바와 같이 구성된 본 발명에 의하면 압축 알고리즘을 사용하여 불필요한 버퍼를 두지 않음으로써 델타 파일 사이즈를 줄여 다운로드 속도를 향상시키는 효과가 있다.According to the present invention configured as described above, there is an effect of improving the download speed by reducing the delta file size by not using an unnecessary buffer using a compression algorithm.

또한, 암호화 및 복호화를 통해 보안을 확보한다.In addition, security is secured through encryption and decryption.

그리고 업데이트를 블록 단위로 수행하여, 배터리를 제거하는 등의 이유로 도중에 실패하더라도, 이전 업데이트된 시점부터 계속 진행할 수 있으며, 블록 단위로 델타파일을 추출/생성하고, 블록 옵셋을 사용하여 동일한 블록 이후의 데이터 블럭을 업데이트할 수 있으므로 패치속도를 개선할 뿐 아니라 다운로드가 필요없는 블록의 비교과정을 생략하므로 패치속도를 개선한다. Even if the update is performed in units of blocks and the battery fails, for example, the battery can be removed, the process can be continued from the previous update point, and the delta file is extracted / created in units of blocks, and the block offset is used after the same block. Data blocks can be updated, which not only improves patch speed but also improves patch speed by eliminating the comparison process of blocks that do not require download.

또한, 패치완료시에 자동으로 휴대 단말기가 리셋되도록 하여 별도의 단말기 리셋없이 다운로드/업데이트가 이루어져 사용이 편리한 효과가 있다.In addition, since the portable terminal is automatically reset when the patch is completed, the download / update is performed without a separate terminal reset, thereby making it convenient to use.

Claims (7)

이전버전파일과 새로운버전 파일을 차이 알고리즘(DIFFERENCE ALGORITHM)을 통해 블록 단위로 비교하여 차이가 있는지 여부를 판단하는 비교과정과,A comparison process of determining whether there is a difference by comparing a previous version file and a new version file by a block unit through a difference algorithm (DIFFERENCE ALGORITHM), 상기한 비교과정에서 차이가 있는 파일의 경우 압축알고리즘에 의하여 압축된 파일과 압축하기 전의 파일(이하 원본파일이라 함)의 크기를 비교하여 압축된 파일의 용량이 작아질 경우에만 압축을 수행하고 압축된 파일의 용량이 원본파일보다 클 경우에는 압축을 하지 않는 압축 과정과,In case of a file having a difference in the comparison process, compression is performed only when the size of the compressed file becomes smaller by comparing the size of the compressed file with the compression algorithm and the file before compression (hereinafter referred to as the original file). If the file size is larger than the original file, the compression process is not performed. 상기한 압축 과정을 거친 블록단위의 파일과 압축여부 데이터와 압축전/후 사이즈 등의 데이터들을 하나의 델타 블록으로 생성하는 델타 블록 생성과정과, A delta block generation process of generating a file in the unit of block that has undergone the above compression process and data such as compression data and pre / post compression size into one delta block; 상기한 델타블록들을 하나의 델타파일로 생성하는 델타파일 생성과정으로 구성되고, It consists of a delta file generation process for generating the delta blocks as a delta file, 펌웨어 제공 서버 혹은 기록매체로부터 펌웨어를 제공받아 휴대 단말기와 무선 혹은 유선으로 연결되어 휴대 단말기의 펌웨어를 업데이트하는 펌웨어 업데이트 장치에서 상기한 과정이 수행되는 것을 특징으로 하는 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법.Generating a delta file for a firmware update of a mobile terminal, characterized in that the above process is performed in a firmware update apparatus that receives firmware from a firmware providing server or a recording medium and wirelessly or wiredly connects to the mobile terminal and updates the firmware of the mobile terminal. Way. 이전버전파일과 새로운버전 파일을 차이 알고리즘(DIFFERENCE ALGORITHM)을 통해 블록 단위로 비교하여 차이가 있는지 여부를 판단하는 비교과정과,A comparison process of determining whether there is a difference by comparing a previous version file and a new version file by a block unit through a difference algorithm (DIFFERENCE ALGORITHM), 상기한 비교과정에서 차이가 있는 파일을 압축하는 압축 과정과,A compression process of compressing a file having a difference in the comparison process; 상기한 압축 과정을 거친 블록단위의 파일을 해당 블록의 옵셋(Offset) 정보와 압축 전/후 사이즈, 패치 데이터 등이 하나로 구성된 델타 블록을 생성하는 델타블록 생성과정과, A delta block generation process of generating a delta block including a block unit file that has undergone the above-described compression process, including offset information of the corresponding block, pre / post compression size, and patch data; 상기한 델타블록들을 하나의 델타파일로 생성하는 델타파일 생성과정으로 구성되고, It consists of a delta file generation process for generating the delta blocks as a delta file, 펌웨어 제공 서버 혹은 기록매체로부터 펌웨어를 제공받아 휴대 단말기와 무선 혹은 유선으로 연결되어 휴대 단말기의 펌웨어를 업데이트하는 펌웨어 업데이트 장치에서 수행되는 것을 특징으로 하는 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법.A firmware update delta file generation method of a portable terminal, characterized in that the firmware is provided from a firmware providing server or a recording medium and is connected to the portable terminal wirelessly or by wire to update the firmware of the portable terminal. 이전버전파일과 새로운버전 파일을 차이 알고리즘(dIFFERENCE ALGORITHM)을 통해 블록 단위로 비교하여 차이가 있는지 여부를 판단하는 비교과정과,A comparison process of determining whether there is a difference by comparing a previous version file and a new version file by a block unit through a difference algorithm (dIFFERENCE ALGORITHM), 상기한 비교과정에서 차이가 있는 파일의 경우 압축알고리즘에 의하여 압축된 파일과 압축하기 전의 파일(이하 원본파일이라 함)의 크기를 비교하여 압축된 파일의 용량이 작아질 경우에만 압축을 수행하고 압축된 파일의 용량이 원본파일보다 클 경우에는 압축을 하지 않는 압축 과정과,In case of a file having a difference in the comparison process, compression is performed only when the size of the compressed file becomes smaller by comparing the size of the compressed file with the compression algorithm and the file before compression (hereinafter referred to as the original file). If the file size is larger than the original file, the compression process is not performed. 상기한 압축과정을 거친 블록단위의 파일 데이터와 해당 블록의 옵셋(Offset)정보와 압축여부 및 압축 전/후 사이즈, 패치 데이터 등이 하나로 구성된 델타 블록을 생성하는 델타블록 생성과정과,A delta block generation process of generating a delta block including file data in the unit of block that has undergone the above compression process, offset information of the corresponding block, whether compression is performed, pre / post compression size, and patch data; 상기한 델타블록들을 델타파일로 생성하는 델타파일 생성과정으로 구성되고, It consists of a delta file generation process for generating the delta blocks to a delta file, 펌웨어 제공 서버 혹은 기록매체로부터 펌웨어를 제공받아 휴대 단말기와 무선 혹은 유선으로 연결되어 휴대 단말기의 펌웨어를 업데이트하는 펌웨어 업데이트 장치에서 수행되는 것을 특징으로 하는 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법.A firmware update delta file generation method of a portable terminal, characterized in that the firmware is provided from a firmware providing server or a recording medium and is connected to the portable terminal wirelessly or by wire to update the firmware of the portable terminal. 다운로드 정보를 나타내는 델타식별자, 델타파일의 전체 사이즈를 나타내는 델타사이즈 및 신규버전파일과 이전버전 파일의 첵섬 및 사이즈를 포함하는 파일정보를 포함하여 구성되는 델타 헤더;A delta header including a delta identifier indicating download information, a delta size indicating the total size of the delta file, and file information including a checksum and size of the new version file and the previous version file; 신규버전파일과 이전버전파일을 블록별 차이 알고리즘을 통해서 생성된 델타 1에서 델타 N까지의 델타블록과 종료 플래그를 포함하며, 각 델타블록은 해당 블록의 식별자인 블록 옵셋과, 압축여부를 나타내는 압축플래그, 압축파일의 경우 압축 데이터와 원본 데이터의 사이즈, 명령어 시작 플래그, 명령어 코드, 상기한 명령어코드가 실행되어야 할 데이터 옵셋, 상기한 데이타 옵셋에 따라 실행되는 패치데이타를 포함하여 구성되는 델타 바디;The delta blocks from the delta 1 to the delta N are generated from the new version file and the previous version file through the block-by-block difference algorithm, and each delta block includes a block offset which is an identifier of the corresponding block and a compression indicating whether or not to be compressed. A flag, a delta body including a compressed data and a size of original data, a command start flag, a command code, a data offset to be executed by the command code, and patch data to be executed according to the data offset; 로 구성되는 것을 특징으로 하는 휴대 단말기의 펌웨어 업데이트용 델타파일.Delta file for firmware update of a mobile terminal, characterized in that consisting of. 청구항 4항의 델타파일을 휴대 단말기로 다운로드 받는 과정과,Downloading the delta file of claim 4 to a mobile terminal, 다운로드 받은 델타파일을 압축 여부 데이터에 따라 압축해제를 수행하는 과정과,Decompressing the downloaded delta file according to the compression data, and 블록옵셋을 이용하여 업데이트가 필요한 블록을 확인하여 해당 블록만 패치하는 패치과정을 포함하여 구성되는 것을 특징으로 하는 휴대단말기의 펌웨어 업데이트 방법.A firmware update method for a mobile terminal, comprising a patch process of checking a block that needs to be updated using a block offset to patch only a corresponding block. 제 5항에 있어서, 상기한 패치과정에서는 해당 패치블록의 옵셋정보가 백업되어 휴대 단말기의 패치 재시작과정에서 패치가 완료된 블록 이후의 블록부터 패치가 이루어지도록 하는 것을 특징으로 하는 휴대단말기의 펌웨어 업데이트 방법. The firmware update method of claim 5, wherein the patch information is backed up so that the offset information of the corresponding patch block is backed up so that the patch is performed from the block after the block in which the patch is completed. . 제 6항에 있어서, 패치가 완료된 후 휴대 단말기는 자동으로 리셋되는 것을 특징으로 하는 휴대단말기의 펌웨어 업데이트 방법.The method of claim 6, wherein the portable terminal is automatically reset after the patch is completed.
KR1020060081824A 2006-08-28 2006-08-28 Firmware generating method and deltafile and firmware updating method for cell phone KR20080019454A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060081824A KR20080019454A (en) 2006-08-28 2006-08-28 Firmware generating method and deltafile and firmware updating method for cell phone

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060081824A KR20080019454A (en) 2006-08-28 2006-08-28 Firmware generating method and deltafile and firmware updating method for cell phone

Publications (1)

Publication Number Publication Date
KR20080019454A true KR20080019454A (en) 2008-03-04

Family

ID=39394748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060081824A KR20080019454A (en) 2006-08-28 2006-08-28 Firmware generating method and deltafile and firmware updating method for cell phone

Country Status (1)

Country Link
KR (1) KR20080019454A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101286378B1 (en) * 2011-08-18 2013-07-15 웹싱크 주식회사 Method of synchronizing file and system for the same
KR101427755B1 (en) * 2013-04-26 2014-08-07 주식회사 코아로직 Device and method for firmware upgrade using usb
KR101533835B1 (en) * 2008-07-23 2015-07-03 삼성전자 주식회사 Method for firmware update of Portable Terminal
EP3866004A4 (en) * 2018-11-09 2021-11-03 Huawei Technologies Co., Ltd. Over-the-air upgrade method and related device
US11321079B2 (en) 2019-01-17 2022-05-03 Samsung Electronics Co., Ltd. Method and device for updating firmware using a modified delta file
WO2023132655A1 (en) * 2022-01-07 2023-07-13 엘지전자 주식회사 Management server for upgrading electronic device and method for upgrading electronic device
CN117407031A (en) * 2023-11-27 2024-01-16 深圳麦风科技有限公司 Patch package upgrade file generation method, device, equipment and storage medium
CN117421031A (en) * 2023-11-08 2024-01-19 上海时空奇点智能技术有限公司 GNSS receiver firmware upgrading method based on incremental updating algorithm

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101533835B1 (en) * 2008-07-23 2015-07-03 삼성전자 주식회사 Method for firmware update of Portable Terminal
KR101286378B1 (en) * 2011-08-18 2013-07-15 웹싱크 주식회사 Method of synchronizing file and system for the same
KR101427755B1 (en) * 2013-04-26 2014-08-07 주식회사 코아로직 Device and method for firmware upgrade using usb
EP3866004A4 (en) * 2018-11-09 2021-11-03 Huawei Technologies Co., Ltd. Over-the-air upgrade method and related device
JP2022506633A (en) * 2018-11-09 2022-01-17 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Wireless upgrade method and related equipment
US11947673B2 (en) 2018-11-09 2024-04-02 Huawei Technologies Co., Ltd. Over-the-air upgrade method and related apparatus
US11321079B2 (en) 2019-01-17 2022-05-03 Samsung Electronics Co., Ltd. Method and device for updating firmware using a modified delta file
US11797297B2 (en) 2019-01-17 2023-10-24 Samsung Electronics Co., Ltd. Method and device for updating firmware using a modified delta file
WO2023132655A1 (en) * 2022-01-07 2023-07-13 엘지전자 주식회사 Management server for upgrading electronic device and method for upgrading electronic device
CN117421031A (en) * 2023-11-08 2024-01-19 上海时空奇点智能技术有限公司 GNSS receiver firmware upgrading method based on incremental updating algorithm
CN117407031A (en) * 2023-11-27 2024-01-16 深圳麦风科技有限公司 Patch package upgrade file generation method, device, equipment and storage medium
CN117407031B (en) * 2023-11-27 2024-04-26 深圳麦风科技有限公司 Patch package upgrade file generation method, device, equipment and storage medium

Similar Documents

Publication Publication Date Title
KR20080019454A (en) Firmware generating method and deltafile and firmware updating method for cell phone
US7873956B2 (en) Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor
US7669195B1 (en) Electronic device network supporting compression and decompression in electronic devices and update generator
KR100880783B1 (en) Tri-phase boot process in electronic devices
EP2568639B1 (en) Method, apparatus and system for processing firmware based on firmware over the air technology
CN108027753B (en) In-vehicle control device, program update system, and storage medium storing program update software
CN101377744B (en) Method and apparatus for recovering terminal equipment software upgrade
US20070294686A1 (en) Program upgrade system and method for ota-capable device
US8726259B2 (en) System and method for preserving device parameters during a FOTA upgrade
CN111327454B (en) File upgrading method and device, computer equipment and storage medium
CN103713928A (en) Incremental file generating method, and application program installing file updating method and device
CN104520870A (en) Method and system for updating firmware of security module
WO2009157133A1 (en) Information processing device, information processing method, and computer program and integrated circuit for the realization thereof
CN101467129A (en) Program upgrade system and method for OTA-capable mobile terminal
KR20080037450A (en) System and method for processing update software run on mobile terminal platform
CN111008034B (en) Patch generation method and device
CN109495874B (en) Profile downloading method and device
CN111221682B (en) Method for mirroring storage system
CN114780128A (en) Embedded equipment firmware updating method, embedded equipment and development end equipment
CN111258621A (en) Differentiated firmware upgrading method
CN115421745A (en) Equipment remote upgrading method, device, terminal and storage medium
CN114143197A (en) OTA (over the air) upgrading method, device and equipment of Internet of things equipment and readable storage medium
CN109002710B (en) Detection method, detection device and computer readable storage medium
KR100606052B1 (en) System and method for recovering data error of mobile terminal
KR20010046714A (en) Software upgrade method and computer-readable medium therefor

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application