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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
- H04W8/24—Transfer of terminal data
- H04W8/245—Transfer 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
Description
도 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
이와 같이 구성된 시스템을 통해서 휴대 단말기(10)의 펌웨어는, 컴퓨터(20)에서 펌웨어 업데이트 전용 프로그램을 실행하여 연결된 휴대 단말기(10)를 원격 제어하면서 펌웨어 업데이트를 실시하거나 해당 휴대 단말기(10)의 운영체제에서 동작하는 전용 펌웨어 업데이트 프로그램 및 업데이트할 펌웨어 파일을 컴퓨터(20)에서 휴대 단말기(10)로 다운로드한 후 휴대 단말기(10)에서 해당 전용 펌웨어 업데이트 프로그램을 동작시켜, 펌웨어의 버전을 체크한 후 기존 버전을 소거하고 업데이트를 실시한다.Through the system configured as described above, the firmware of the
그러나 이러한 업데이트 작업 시에 펌웨어 전체가 플래시 메모리에 기록되므로 사용자의 실수나 운영체제의 오류, 시스템 재부팅, 전원 부족, 전원 케이블 접촉 불량 등과 같은 상황이 발생되면 업데이트 과정을 새로하여야 하므로 시간이 낭비되는 문제점이 있었다.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
그러나, 상기한 기술 역시 델타파일과 휴대 단말기의 원본 파일을 일일이 비교하여 차이가 나는 부분이 같은 어드레스 영역인지를 확인한 후 패치를 실시하여야 하므로 패치에 시간이 오래 걸리는 문제점이 있었다.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
도 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
상기한 구성에서 델타헤더(310)는 델타식별자, 델타검증값, 델타사이즈 및 파일정보로 구성되는데, 델타 식별자는 5바이트로 구성되어 처음 1바이트는 다운로드 플래그로서 "1" 또는 "0"값을 갖고 있으며, 이는 델타파일 다운로드의 시작과 종료를 나타낸다. 이후 4바이트는 델타 식별자로서 바이너리 업데이트를 알리는 예약된 문자열이다. 그리고 델타 검증값은 암호화 값을 나타내고, 델타사이즈는 전체 다운로드 받은 델타 파일의 사이즈를 나타낸다. 파일정보는 신규버전 및 이전버전의 첵섬과 사이즈로 구성된다.In the above configuration, the
그리고, 델타바디는 신규버전파일과 이전버전파일을 블록별 차이 알고리즘을 통해서 생성된 델타 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)
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)
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 |
-
2006
- 2006-08-28 KR KR1020060081824A patent/KR20080019454A/en not_active Application Discontinuation
Cited By (12)
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 |