KR20080037299A - 역델타 파일 생성 방법 및 이를 이용한 펌웨어 복구 방법 - Google Patents

역델타 파일 생성 방법 및 이를 이용한 펌웨어 복구 방법 Download PDF

Info

Publication number
KR20080037299A
KR20080037299A KR1020060104185A KR20060104185A KR20080037299A KR 20080037299 A KR20080037299 A KR 20080037299A KR 1020060104185 A KR1020060104185 A KR 1020060104185A KR 20060104185 A KR20060104185 A KR 20060104185A KR 20080037299 A KR20080037299 A KR 20080037299A
Authority
KR
South Korea
Prior art keywords
file
delta
data
delta file
firmware
Prior art date
Application number
KR1020060104185A
Other languages
English (en)
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 KR1020060104185A priority Critical patent/KR20080037299A/ko
Publication of KR20080037299A publication Critical patent/KR20080037299A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 역델타 파일 생성 방법 및 이를 이용한 펌웨어 복구 방법에 관한 것으로, 델타파일을 이용하여 펌웨어 업데이트를 실시하는 과정에서 원본파일의 델타데이터와 대응되는 데이터를 해당 델타파일의 블록에 저장하여 역델타파일을 생성하고, 패치가 실패 혹은 취소되더라도 사용자가 희망할 경우 델타파일에 기록된 역델타파일을 이용하여 펌웨어를 원래의 상태로 복구시킬 수 있도록 하는 역델타 파일 생성방법 및 이를 이용한 펌웨어 업데이트 방법을 제공하여, 패치 실패시에도 용이하게 원본으로 복구가 가능하고 역델타파일 생성시에 저장공간을 효율적으로 활용할 수 있도록 한다.
펌웨어, 델타파일, 역델타, 옵셋, 블록

Description

역델타 파일 생성 방법 및 이를 이용한 펌웨어 복구 방법{inverse delta file creation method and firmware recovery method}
도 1은 종래의 휴대 단말기 펌웨어 업데이트를 위한 시스템을 나타내는 블록도
도 2는 본 발명에 따른 펌웨어 업데이트 시스템을 나타내는 블록도
도 3은 델타파일 생성방법을 나타내는 순서도
도 4는 펌웨어 업데이트 및 복구 방법을 나타내는 순서도
본 발명은 역델타 파일 생성 방법 및 이를 이용한 펌웨어 복구 방법에 관한 것으로, 보다 상세하게는 업데이트 과정에서 델타파일블록에 대응되는 원본파일블록을 델타파일에 기록하여 업데이트 중단시에 원본파일 복구가 가능하도록 하는 역델타파일 생성 방법 및 이를 이용한 펌웨어 복구 방법에 관한 것이다.
최근 전화, PDA 등의 휴대 단말기는 각종 정보를 용이하게 관리하고 다양한 응용프로그램을 사용할 수 있도록 기능이 지속적으로 향상되고 있으며, 이와 같이 휴대 단말기의 기능 향상은 메모리가 대용량이 되고 CPU의 속도가 향상되는 것과 함께 펌웨어의 업데이트를 통해서 달성되는데, 상기한 펌웨어는 휴대 단말기들을 운영하기 위한 운영체제들과, 기본적인 프로그램들 및 데이터들로 구성되어 휴대 단말기의 롬에 저장되고 실제 구동시에는 부팅을 통하여 램으로 로드된다.
이러한 펌웨어는 각종 프로그램 및 하드웨어의 개발로 인하여 새로운 기능들을 추가로 사용할 수 있도록 업데이트 가능하게 구성되는데, 이러한 업데이트 파일은 대용량이므로, 업데이트를 위하여 종래에는 서비스센터를 찾거나, 컴퓨터에 다운로드 받은 후 컴퓨터와 휴대단말기를 유무선으로 연결하여 업데이트를 하였으며, 그 예를 하기에서 첨부된 도면을 참조하여 살펴본다.
도 1은 종래의 휴대 단말기 펌웨어 업데이트를 위한 시스템을 나타내는 블록도이다.
펌웨어 업데이트가 가능하도록 설계된 휴대 단말기(10)와, 인터넷이나 보조 저장매체 등을 통해 새로운 버전의 펌웨어 파일을 얻어 이를 해당 휴대 단말기(10)에 제공해 줄 수 있는 컴퓨터(20)와, 상기 컴퓨터(20)와 휴대 단말기(10)를 유무선으로 연결할 수 있는 수단(여기서는 유선 케이블)으로 구성된다.
이와 같이 구성된 시스템을 통해서 휴대 단말기(10)의 펌웨어는, 컴퓨터(20)에서 펌웨어 업데이트 전용 프로그램을 실행하여 연결된 휴대 단말기(10)를 원격 제어하면서 펌웨어 업데이트를 실시하거나 해당 휴대 단말기(10)의 운영체제에서 동작하는 전용 펌웨어 업데이트 프로그램 및 업데이트할 펌웨어 파일을 컴퓨터(20)에서 휴대 단말기(10)로 다운로드한 후 휴대 단말기(10)에서 해당 전용 펌웨어 업데이트 프로그램을 동작시켜, 펌웨어의 버전을 체크한 후 기존 버전을 소거하고 업 데이트를 실시한다.
그러나 이러한 업데이트 작업 시에 펌웨어 전체가 플래시 메모리에 기록되므로 사용자의 실수나 운영체제의 오류, 시스템 재부팅, 전원 부족, 전원 케이블 접촉 불량 등과 같은 상황이 발생되면 업데이트 과정을 새로하여야 하므로 시간이 낭비되는 문제점이 있었다.
이를 해결하기 위한 기술로 본원 출원인이 선출원한 대한민국 특허출원 10-2006-0081824호에는 이전버전의 기존파일과 신규 버전의 새 파일을 차이 알고리즘(DIFFERENCE ALGORITHM)을 통해 블록 단위로 비교하여 차이가 있는 블록을 압축 알고리즘을 통해서 선택적 즉 압축 후 사이즈가 압축전 사이즈보다 적을 경우에만 압축을 수행하며, 차이가 있는 블록의 옵셋(Offset) 정보와 압축 여부 및 압축 전/후 사이즈, 신규버전의 패치 데이터 등을 포함한 델타 블록을 생성하고, 생성된 델타블록들을 하나의 델타파일로 생성한 후, 해당 블록 옵셋 정보를 이용하여 휴대 단말기의 해당 블록을 업데이트하는 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법과 델타파일 및 이를 이용한 펌웨어 업데이트 방법을 실시하여 펌웨어 업데이트 속도를 향상시킨 기술이 출원되었다.
그러나, 상기한 델타파일을 이용한 펌웨어 업데이트 방법에서 원본 바이너리 파일을 새로운 바이너리 파일로 덮어쓰기 때문에, 외부환경 또는 사용자의 요구, 바이너리 데이터의 오류 등에 의하여 업데이트가 정상적으로 종료되지 않고 실패 또는 취소되는 경우 원본 바이너리로 복구해야 하나, 특히 단순 취소의 경우에는 취소한 부분부터 복구가 가능하도록 프로그램이 개발되고 있으나, 실패하였을 경우 에는 펌웨어가 새로운 파일과 원본 파일이 혼재되어 있어서 복구가 불가능하므로, 프로그램을 처음부터 새로 설치하는 과정을 진행한 후 다시 업데이트를 실시하여야 하므로 설치시간이 오래 걸리는 문제점이 있었다.
상기한 문제점을 해결하기 위한 본 발명의 특징은 델타파일을 이용하여 펌웨어 업데이트를 실시하는 과정에서 원본파일 데이터를 해당 델타파일 데이터 블록에 저장하여 역델타파일을 생성하고, 패치가 실패 혹은 취소되더라도 사용자가 희망할 경우 역델타파일에 기록된 원본파일 데이터를 이용하여 펌웨어를 원래의 상태로 복구시킬 수 있도록 하는 역델타 파일 생성방법 및 이를 이용한 펌웨어 업데이트 방법을 제공하는 데 있다.
상기한 목적을 달성하기 위한 본 발명의 특징은 델타파일을 통하여 펌웨어를 업데이트하는 과정에서 블록별 델타 데이터에 대응되는 원본파일의 데이터를 임의의 버퍼에 저장하는 임시 저장 단계, 델타파일 블록의 새로운 바이너리 데이터를 해당 원본파일의 해당 블록에 기재하는 패치 단계, 패치 단계 완료 후 버퍼에 저장된 원본 데이터를 델타파일의 해당 블록에 기재하여 역델타 파일을 생성하는 역델타 파일 생성 단계로 구성되는 역델타파일 생성방법을 제공하는 데 있다.
그리고, 상기한 바와 같이 생성된 역델타파일을 이용하여, 펌웨어 업데이트가 종료될 경우 업데이트의 취소 혹은 실패 여부를 판단하는 단계와, 업데이트가 취소 혹은 실패일 경우 생성된 역델타 파일에서 역델타 데이터를 추출하여 임시 버 퍼에 저장하는 역델타 데이터 추출단계와, 원본파일에 쓰여진 델타 데이터를 역델타 파일의 해당 블록으로 복구하는 델타파일 복구단계와, 추출된 역델타 데이터를 원본파일의 해당 블록으로 복구시키는 원본파일 복구 단계로 구성되는 역델타 파일을 이용한 펌웨어 복구 방법을 제공하는데 다른 특징이 있다.
상기한 본 발명에서 역델타파일은 델타파일의 데이터가 기록되는 동일한 위치이 원본파일 데이터를 델타데이터 대신 포함하는 종래의 델타파일 구성과 동일한 구성의 파일을 말하는 것이다.
상기한 바와 같은 특징을 갖는 본 발명의 실시예를 하기에서 첨부된 도면을 참조하여 보다 상세하게 살펴본다.
도 2는 본 발명에 따른 펌웨어 업데이트 시스템을 나타내는 블록도이다.
본 발명에 따른 펌웨어 업데이트 시스템은, 펌웨어 제공 서버(미 도시)와 온라인으로 연결되거나 펌웨어가 기록된 기록매체로부터 펌웨어를 제공받아 델타파일 생성 알고리즘에 따라 델타파일을 생성하고 업데이트 과정에서 역델타파일 생성 알고리즘에 따라 역델타파일을 생성하는 펌웨어 업데이트 장치(100)와, 상기한 펌웨어 업데이트 장치(100)와 유선 혹은 무선으로 연결되어 다운로드 받은 델파 파일 혹은 역델타파일을 패치 알고리즘을 통해서 패치하여 기존파일을 새파일로 업데이트하거나 일부 업데이트된 파일을 기존파일로 복구하는 휴대 단말기(200)로 구성되고, 상기한 펌웨어 업데이트 장치(100)는 통상의 컴퓨터를 사용하며, 컴퓨터와 휴대단말기는 USB, OTA등을 통해서 연결된다.
도 3은 델타파일의 구성을 나타내는 블록도이다.
상기한 델타파일은 델타헤더(310)와 델타바디(320)로 구성된다.
상기한 구성에서 델타헤더(310)는 델타식별자, 델타검증값, 델타사이즈 및 파일정보로 구성되는데, 델타 식별자는 5바이트로 구성되어 처음 1바이트는 다운로드 플래그로서 "1" 또는 "0"값을 갖고 있으며, 이는 델타파일 다운로드의 시작과 종료를 나타낸다. 이후 4바이트는 델타 식별자로서 바이너리 업데이트를 알리는 예약된 문자열이다. 그리고 델타 검증값은 암호화 값을 나타내고, 델타사이즈는 전체 다운로드 받은 델타 파일의 사이즈를 나타낸다. 파일정보는 신규버전 및 이전버전의 첵섬과 사이즈로 구성된다.
그리고, 델타바디는 신규버전파일과 이전버전파일을 블록별 차이 알고리즘을 통해서 생성된 델타 1에서 델타 N까지의 델타블록 및 종료 플래그를 포함하며, 각 델타블록은 해당 블록의 식별자인 블록 옵셋과, 압축여부를 나타내는 압축플래그, 압축파일의 경우 압축 데이터와 원본 데이터의 사이즈, 명령어 시작 플래그, MOD, INS, DEL, EQL 등의 명령어 코드, 상기한 명령어코드가 실행되어야 할 데이터 옵셋, 상기한 데이타 옵셋에 따라 실행되는 패치데이타로 구성된다.
이와 같이 구성된 델타파일을 이용한 휴대 단말기의 펌웨어 업데이트 및 복구 과정은 도 4를 참고하여 설명한다.
도 4는 휴대 단말기의 업데이트 및 원본파일 복구 방법을 나타내는 순서도이 다.
델타 파일을 이용하여 휴대 단말기를 업데이트하는 방법은 델파 파일을 지정된 패킷 단위로 컴퓨터에서 휴대 단말기의 지정된 영역에 다운로드하고 암호화된 델타파일은 복호화하며 압축플래그에 따라 압축해제여부를 결정한다.
이후 델타블록의 옵셋정보를 이용하여 원본 파일의 업데이트가 필요한 블록만을 찾아 명령어코드에 따라 데이터의 수정, 삭제, 삽입 여부를 결정(S401)한 후, 삽입할 데이터의 길이만큼 원본파일 데이터를 읽어 임시버퍼에 저장하여 역델타 데이터를 생성(S402)한 후, 델타파일의 새로운 바이너리 데이터를 원본파일의 해당 위치에 저장하고 임시버퍼에 저장된 원본파일을 델타파일의 해당 블록에 저장하여 델타파일의 패치 및 역델타 파일을 생성(S403)한다.
이러한 과정을 블록단위로 하여 패치한 블록까지의 모든 블록의 사이즈와 새파일의 사이즈를 비교(S404)하여 같아질 때까지 반복한다.
이후, 상기한 새파일의 유효성을 검증하여 패치 과정이 성공적으로 이루어졌는지를 판단(S405)하여 성공적으로 이루어졌으면 과정을 종료하고, 성공적으로 이루어지지 않았을 경우에는 옵셋을 델타파일의 처음 블록에서부터 패치가 실패되어 중단됨 시점까지 증가시키면서 생성된 역델타 파일에서 역델타 데이터를 추출(S406)하고, 해당 델타 데이터를 델타파일로 복구(S407)한 뒤, 다시 역델타 데이터를 원본파일에 저장(S408)한다.
옵셋을 비교(S409)하여 패치가 실패되어 중단된 시점까지 상기한 스텝 S406-S409까지 반복하여 원본 파일의 복구를 완료한다.
이러한 과정을 완료한 후의 델타파일은 역델타 파일을 생성하기 전의 초기 델타파일과 동일하다.
한편, 생성된 역델타파일은 델타파일 구성에서 패치 데이터 대신 원본 파일의 데이터가 기록된 것만 상이하고 나머지 구성은 동일하다.
상기한 바와 같이 구성된 본 발명에 의하면 델파파일을 이용한 패치과정 중 패치취소 혹은 실패시에 원본파일로의 복구가 용이하고, 역델타파일의 생성시에 열델타파일이 델타파일과 같은 저장공간에 저장되므로 저장공간을 두개로 나누지 않아 저장공간의 효율을 높이는 효과가 있다.

Claims (2)

  1. 델타파일을 통하여 펌웨어를 업데이트하는 과정에서 블록별 델타 데이터에 대응되는 원본파일의 데이터를 임의의 버퍼에 저장하는 임시 저장 단계,
    델타파일 블록의 새로운 바이너리 데이터를 해당 원본파일의 해당 블록에 기재하는 패치 단계,
    패치 단계 완료 후 버퍼에 저장된 원본 데이터를 델타파일의 해당 블록에 기재하여 역델타 파일을 생성하는 역델타 파일 생성 단계로 구성되는 것을 특징으로 하는 역델타파일 생성방법.
  2. 제 1항을 통해서 생성된 역델타파일을 이용하여, 펌웨어 업데이트가 종료될 경우 업데이트의 취소 혹은 실패 여부를 판단하는 단계와,
    업데이트가 취소 혹은 실패일 경우 생성된 역델타 파일에서 역델타 데이터를 추출하여 임시 버퍼에 저장하는 역델타 데이터 추출단계와,
    원본파일에 쓰여진 델타 데이터를 역델타 파일의 해당 블록으로 복구하는 델타파일 복구단계와,
    추출된 역델타 데이터를 원본파일의 해당 블록으로 복구시키는 원본파일 복구 단계로 구성되는 것을 특징으로 하는 역델타 파일을 이용한 펌웨어 복구 방법.
KR1020060104185A 2006-10-25 2006-10-25 역델타 파일 생성 방법 및 이를 이용한 펌웨어 복구 방법 KR20080037299A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060104185A KR20080037299A (ko) 2006-10-25 2006-10-25 역델타 파일 생성 방법 및 이를 이용한 펌웨어 복구 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060104185A KR20080037299A (ko) 2006-10-25 2006-10-25 역델타 파일 생성 방법 및 이를 이용한 펌웨어 복구 방법

Publications (1)

Publication Number Publication Date
KR20080037299A true KR20080037299A (ko) 2008-04-30

Family

ID=39575313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060104185A KR20080037299A (ko) 2006-10-25 2006-10-25 역델타 파일 생성 방법 및 이를 이용한 펌웨어 복구 방법

Country Status (1)

Country Link
KR (1) KR20080037299A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120063456A (ko) * 2010-12-07 2012-06-15 삼성전자주식회사 기본 블록들을 이용하여 델타 파일을 생성하기 위한 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120063456A (ko) * 2010-12-07 2012-06-15 삼성전자주식회사 기본 블록들을 이용하여 델타 파일을 생성하기 위한 방법

Similar Documents

Publication Publication Date Title
KR101003888B1 (ko) 전자 장치에서의 3-단계 부팅 프로세스
EP1519268B1 (en) Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
KR100584338B1 (ko) 소프트웨어 업데이트 방법 및 시스템
CN101924607B (zh) 基于固件空中传输技术的固件处理方法、装置及系统
US20100325523A1 (en) Fault-tolerant method and apparatus for updating compressed read-only file systems
CN109086078B (zh) 安卓系统升级方法、装置、服务器及移动终端
GB2466685A (en) Fault tolerant updating of firmware
CN105094903A (zh) 对固件进行升级的方法及装置
KR20130138635A (ko) 단일 백업 블록 기록을 이용하는 결함 내성 포타 업데이트를 위한 방법 및 장치
KR20030071750A (ko) 정보의 업데이트 및 분산 시스템 및 방법
US20160170735A1 (en) Operating system updating method by using a checklist
KR20120063455A (ko) 펌웨어 업데이트 장치 및 방법
CN111008034B (zh) 一种补丁生成方法及装置
KR20080019454A (ko) 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법과델타파일 및 이를 이용한 펌웨어 업데이트 방법
CN111221682B (zh) 一种存储系统镜像的方法
CN111240722B (zh) 空中升级固件的方法及其所应用的终端、服务器及系统
CN112416406A (zh) 终端设备升级方法、装置、终端设备和介质
JP3864337B2 (ja) バージョンアップ方法
WO2015127730A1 (zh) 版本文件的运行方法及装置
CN107003876A (zh) 固件更新
CN106775874B (zh) 终端设备的系统升级方法
KR20080037299A (ko) 역델타 파일 생성 방법 및 이를 이용한 펌웨어 복구 방법
CN109002710B (zh) 一种检测方法、装置及计算机可读存储介质
JP2005215841A (ja) ソフトウエア修正機能付き携帯電話端末装置

Legal Events

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