TWI634483B - 檔案合成方法、檔案還原方法以及使用此些方法的電子裝置 - Google Patents
檔案合成方法、檔案還原方法以及使用此些方法的電子裝置 Download PDFInfo
- Publication number
- TWI634483B TWI634483B TW106131621A TW106131621A TWI634483B TW I634483 B TWI634483 B TW I634483B TW 106131621 A TW106131621 A TW 106131621A TW 106131621 A TW106131621 A TW 106131621A TW I634483 B TWI634483 B TW I634483B
- Authority
- TW
- Taiwan
- Prior art keywords
- file
- header
- processed
- information
- compressed
- Prior art date
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明提出一種檔案合成方法,適於合成欲藉由電子裝置傳輸的至少一個原始檔案。所述檔案合成方法包括以下步驟:取得對應於欲傳輸各個原始檔案的壓縮資訊;依據各個原始檔案對應的壓縮資訊,產生各個原始檔案對應的經處理檔案,其中經處理檔案中包括通用標頭;依據所產生的至少一個經處理檔案產生一個合成標頭;以及依據至少一個經處理檔案以及合成標頭產生合成檔案。此外,一種對應的檔案還原方法以及使用此些方法的電子裝置亦被提出。
Description
本發明是有關於一種檔案合成方法、對應的檔案還原方法,以及使用此些方法的電子裝置。
傳統的嵌入式系統在更新其軔體時,常透過空中傳輸技術(Over-the-Air,OTA)來通過移動通信(GSM或CDMA)或無線網路來進行更新。當要更新多個韌體時,必須個別的接收更新檔案來進行更新。舉例而言,當嵌入式系統同時要更新微控制器韌體、全球定位系統(Global Positioning System,GPS)韌體以及無線網路(Wi-Fi)韌體時,例如會首先連線至遠端伺服器下載微控制器韌體,待微控制器韌體下載更新完畢之後再重新連線至遠端伺服器下載全球定位系統韌體,待全球定位系統韌體下載更新完畢之後再重新連線至遠端伺服器下載無線網路韌體。
因此,當同時有多個韌體或檔案需要更新時,重複的連線以及驗證手續將非常耗時。另一方面,在許多使用情境下,移動通信網路或無線網路並非是保持穩定。舉例而說,當使用者位於基地台分布不均的區域,或僅能使用部分區域的無線網路時,很可能便無法順利的完成多個檔案的更新。
有鑑於此,如何能夠提出一種良好的解決方案,能夠更友善的因應不同使用者的需求,是本領域技術人員所共同致力的目標。
本發明提供一種檔案合成方法、對應的檔案還原方法以及使用此些方法的電子裝置,能夠提升電子裝置間的檔案傳輸效率與方便性。
本發明提出一種檔案合成方法,適於合成欲藉由電子裝置所傳輸的至少一個原始檔案。所述檔案合成方法包括以下步驟:取得對應於欲傳輸各個原始檔案的壓縮資訊;依據各個原始檔案對應的壓縮資訊,產生各個原始檔案對應的經處理檔案,其中經處理檔案中包括通用標頭;依據所產生的至少一個經處理檔案產生一個合成標頭;以及依據至少一個經處理檔案以及合成標頭產生合成檔案。
從另一觀點來看,本發明提出一種用以合成所欲傳輸的至少一個原始檔案的電子裝置。此電子裝置包括處理器與耦接於處理器的傳輸元件。處理器用以取得對應欲傳輸各個原始檔案的壓縮資訊,並且依據各個原始檔案對應的壓縮資訊,產生各個原始檔案對應的經處理檔案,其中經處理檔案中包括通用標頭。此外,處理器更用以依據所產生的至少一個經處理檔案產生一個合成標頭,並且依據至少一個經處理檔案以及合成標頭產生合成檔案。傳輸元件用以傳輸合成檔案。
對應於上述的檔案合成方法,本發明提出一種檔案還原方法,適用於電子裝置並且包括以下步驟:接收合成檔案;將合成檔案拆解為至少一個經處理檔案,其中,各個經處理檔案包括一個通用標頭,並且各個通用標頭中包括壓縮資訊;以及依據各個通用標頭中的壓縮資訊,將所拆解的至少一個經處理檔案還原為至少一個原始檔案。
從另一觀點來看,本發明提出一種電子裝置,包括接收元件以及耦接於接收元件的處理器。接收元件用以接收合成檔案。處理器用以將合成檔案拆解為至少一個經處理檔案,各個經處理檔案包括一個通用標頭,且各個通用標頭中包括壓縮資訊。此外,處理器更用以依據各個通用標頭中的壓縮資訊,將所拆解的至少一個經處理檔案還原回至少一個原始檔案。
基於上述,本發明所提出的檔案合成方法、對應的檔案還原方法以及使用此些方法的電子裝置,藉由特別設計的通用標頭以及合成標頭,能夠在傳輸多個原始檔案時僅針對特定的原始檔案進行壓縮。如此一來,本發明所提供的方法與電子裝置提供更友善、更方便且更有效率的檔案傳輸機制。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
本發明實施例在傳輸檔案時,利用所提出的檔案合成方法將多個原始檔案打包為合成檔案來傳輸,且本發明實施例分別針對原始檔案與合成檔案設計了通用標頭以及合成標頭以在打包檔案時使用。使用本發明實施例中所設計的標頭,能夠在打包多個原始檔案時針對特定的原始檔案來進行壓縮。此外,本發明實施例亦提出了對應的檔案還原方法,用以分析標頭以將所接收到的合成檔案拆解還原為打包前的多個原始檔案。
圖1繪示本發明一實施例的檔案合成與還原方法的示意圖。
請參照圖1,在本實施例中,第一電子裝置100欲將第一原始檔案OF1(例如,處理器韌體更新檔)、第二原始檔案OF2(例如,全球定位系統韌體更新檔)以及第三原始檔案OF3(例如,無線網路韌體更新檔)透過空中傳輸技術(Over-the-Air,OTA)傳輸至第二電子裝置200,其中各個原始檔案對應於一個壓縮資訊,用以指示對應的原始檔案是否要先經過壓縮後再傳輸。
然而,本發明並不在此限制第一電子裝置100所傳輸的原始檔案的數目。在其他實施例中,第一電子裝置100亦可例如是傳輸一個、兩個、四個或更多個原始檔案至第二電子裝置200。
圖2A繪示本發明一實施例的第一電子裝置的概要方塊圖;圖2B繪示本發明一實施例的第二電子裝置的概要方塊圖。
請參照圖2A,第一電子裝置100例如包括處理器110以及傳輸元件130。處理器110例如是微控制器(micro-controller)、嵌入式控制器(embedded controller)、中央處理器(central processing unit, CPU)或類似的元件,本發明不在此限制處理器的種類。傳輸元件130耦接於處理器110,例如包括藍芽或無線網路等可用以傳輸資料的通訊模組。在本實施例中,處理器110會透過傳輸元件130來將打包後的合成檔案CF傳遞至第二電子裝置200。
在本實施例中,第一電子裝置100會依據第一原始檔案OF1、第二原始檔案OF2以及第三原始檔案OF3的壓縮資訊分別處理(例如,壓縮或不壓縮)後,分別附加上第一通用標頭、第二通用標頭以及第三通用標頭,以產生第一經處理檔案、第二經處理檔案以及第三經處理檔案。隨後,將各個經處理檔案串接後附加上合成標頭,便完成將第一原始檔案OF1、第二原始檔案OF2以及第三原始檔案OF3打包為合成檔案CF的流程。
請參照圖2B,第二電子裝置200例如包括處理器210以及接收元件230。處理器210例如是微控制器(micro-controller)、嵌入式控制器(embedded controller)、中央處理器(central processing unit, CPU)或類似的元件,本發明不在此限制處理器的種類。接收元件230耦接於處理器210,例如包括藍芽或無線網路等可用以接收資料的通訊模組。在本實施例中,接收元件230用以利用空中傳輸技術接收來自第一電子裝置100的合成檔案CF。
在本實施例中,第二電子裝置200在接收到合成檔案CF後會依據合成標頭來驗證所接收到的合成檔案CF的正確性,並且依據各個通用標頭來將合成檔案拆解為第一經處理檔案、第二經處理檔案以及第三經處理檔案。隨後,依據各個經處理檔案的通用標頭,來分別將其還原回第一原始檔案OF1、第二原始檔案OF2以及第三原始檔案OF3。
值得一提的是,藉由本實施例提供的檔案合成與還原方法,第二電子裝置200只需要在能夠連接網路的環境下接收到合成檔案CF之後,其他拆解、還原,甚至是更新或執行檔案的動作都能夠獨自在無須連接網路的單機環境中完成。
圖3繪示本發明一實施例的通用標頭的示意圖。
首先針對本發明實施例所設計的通用標頭進行說明。請參照圖3,本實施例的通用標頭GH具有多個欄位,用以填入包括識別碼資訊ID、驗證資訊VR、總長度資訊TL、標頭長度資訊HL、壓縮資訊CP、版本資訊VS以及檔名與路徑資訊NP等資訊。在本實施例中,通用標頭GH還包括保留欄位RE。然而,本發明並不限於此,所屬領域具備通常知識者當可依其需求來增加或減少通用標頭GH中的資訊或欄位。
在本實施例中,識別碼資訊ID是用以記錄檔案的唯一識別碼,不同的檔案對應於不同的識別碼資訊ID。因此,在一實施例中,識別碼資訊ID可用以分辨其所屬的標頭是合成標頭或通用標頭。在另一實施例中,識別碼資訊ID更可用以分辨其所屬的通用標頭是對應於何種原始檔案(例如,處理器韌體更新檔、全球定位系統韌體更新檔,或無線網路韌體更新檔等)。在本實施例中,通用標頭GH提供給識別碼資訊ID的欄位長度為16個位元組,但不限於此。
在本實施例中,驗證資訊VR例如為循環冗餘校驗子(Cyclic redundancy check,CRC),可用以驗證其所屬的通用標頭所對應的經處理檔案的正確性。在本實施例中,通用標頭GH提供給驗證資訊VR的欄位長度為4個位元組,但不限於此。本實施例中關於驗證資訊VR的產生方式將於以下說明中詳細介紹。
在本實施例中,總長度資訊TL是用以記錄其所屬的經處理檔案的檔案總長度。詳細來說,本實施例之經處理檔案包括通用標頭以及檔案內容,因此檔案總長度將為通用標頭的資料長度加上檔案內容的資料長度。在本實施例中,通用標頭GH提供給總長度資訊TL的欄位長度為4個位元組,但不限於此。
在本實施例中,標頭長度資訊HL是用以記錄其所屬的標頭(即,通用標頭GH)的資料長度。詳細來說,本實施例之通用標頭的資料長度為識別碼資訊ID的欄位長度、驗證資訊VR的欄位長度、總長度資訊TL的欄位長度、標頭長度資訊HL的欄位長度、壓縮資訊CP的欄位長度、版本資訊VS的欄位長度、檔名與路徑資訊NP的欄位長度以及保留欄位RE的欄位長度的總和。在本實施例中,通用標頭GH提供給標頭長度資訊HL的欄位長度為1個位元組,其中例如是記錄「0101000」,表示通用標頭GH總共使用了80個位元組,但本發明不限於此。
在本實施例中,壓縮資訊CP是用以記錄經處理檔案的檔案內容是否經過壓縮。詳細來說,每個原始檔案分別會對應一個壓縮資訊,以指示對應的原始檔案是否要先經過壓縮後再傳輸。因此,將壓縮資訊CP加入通用標頭中,能夠用以表示經處理檔案的檔案內容是原始檔案或是經壓縮後的原始檔案。在本實施例中,通用標頭GH提供給壓縮資訊CP的欄位長度為1個位元組,但不限於此。
在本實施例中,版本資訊VS是用以記錄所屬的通用標頭對應的原始檔案的版本。舉例而言,第一原始檔案OF1例如是處理器韌體更新檔,而第一原始檔案OF1的第一通用標頭中的版本資訊VS例如是記錄此處理器韌體更新檔的處理器韌體版本。如此一來,當第二電子裝置200取得第一經處理檔案時,可直接對第一通用標頭中的版本資訊VS與第二電子裝置200的處理器當前的韌體版本進行比較,以決定是否要還原此第一經處理檔案為第一原始檔案OF1來更新處理器韌體。在本實施例中,通用標頭GH提供給版本資訊VS的欄位長度為16個位元組,但不在此限。
在本實施例中,檔名與路徑資訊NP是用以記錄所屬的經處理檔案在還原成原始檔案後的檔案名稱,以及所要儲存的位址路徑。在一實施例中,檔名與路徑資訊NP可用以分辨其所屬的通用標頭是對應於何種原始檔案(例如,處理器韌體更新檔、全球定位系統韌體更新檔,或無線網路韌體更新檔等),但本發明並不限於此。如以上段落所述,在一實施例中,原始檔案的類型也可以是藉由識別碼資訊ID來分辨。在本實施例中,通用標頭GH提供給檔名與路徑資訊NP的欄位長度為32個位元組,但不限於此。
在本實施例中,保留欄位RE是保留了6個位元組的空間給可能的未來擴充使用,但本發明並不對保留欄位RE加以限制。
依據壓縮資訊來處理(例如,壓縮或不壓縮)原始檔案後,再附加上本發明實施例所介紹的通用標頭,便能夠產生原始檔案所對應的經處理檔案。在一實施例中,第一電子裝置100利用上述通用標頭產生多個經處理檔案後,將所產生的多個經處理檔案進行串接,再附加上合成標頭,便能夠合成用來傳遞至第二電子裝置200的合成檔案CF。以下接著針對本發明實施例所設計的合成標頭進行說明。
圖4繪示本發明一實施例的合成標頭的示意圖。
請參照圖4,本實施例的合成標頭UH具有多個欄位,用以填入包括識別碼資訊ID、驗證資訊VR、總長度資訊TL、標頭長度資訊HL、檔案數目資訊NUM以及版本資訊VS等資訊。在本實施例中,合成標頭UH更包括保留欄位RE。然而,本發明並不限於此,所屬領域具備通常知識者當可依其需求來增加或減少合成標頭UH中的資訊或欄位。
在本實施例中,類似於通用標頭GH的識別碼資訊ID,合成標頭UH的識別碼資訊ID也是用以記錄檔案的唯一識別碼,不同的檔案對應於不同的識別碼資訊ID。因此,在一實施例中,識別碼資訊ID可用以分辨其所屬的標頭是合成標頭或通用標頭。在本實施例中,合成標頭UH提供給識別碼資訊ID的欄位長度為16個位元組,但不限於此。
在本實施例中,類似於通用標頭GH的驗證資訊VR,合成標頭UH的驗證資訊VR例如為循環冗餘校驗子(Cyclic redundancy check,CRC),可用以驗證其所屬的合成標頭所對應的合成檔案CF的正確性。在本實施例中,合成標頭UH提供給驗證資訊VR的欄位長度為4個位元組,但不限於此。本實施例中關於驗證資訊VR的產生方式將於以下說明中詳細介紹。
在本實施例中,類似於通用標頭GH的總長度資訊TL,合成標頭UH的總長度資訊TL是用以記錄其所屬的合成檔案CF的檔案總長度。詳細來說,本實施例之合成檔案CF是包括合成標頭以及至少一個經處理檔案(例如,三個),因此檔案總長度將為合成標頭的資料長度加上所有經處理檔案的總資料長度。在本實施例中,合成標頭UH提供給總長度資訊TL的欄位長度為4個位元組,但不限於此。
在本實施例中,類似於通用標頭GH的標頭長度資訊HL,合成標頭UH的標頭長度資訊HL是用以記錄其所屬的標頭(例如,合成標頭)的資料長度。詳細來說,本實施例之合成標頭的資料長度為識別碼資訊ID的欄位長度、驗證資訊VR的欄位長度、總長度資訊TL的欄位長度、標頭長度資訊HL的欄位長度、檔案數目資訊NUM的欄位長度、版本資訊VS的欄位長度,以及保留欄位RE的欄位長度的總和。在本實施例中,合成標頭UH提供給標頭長度資訊HL的欄位長度為1個位元組,其中例如是記錄「00110000」,表示合成標頭GH總共使用了48個位元組,但不限於此。
在本實施例中,檔案數目資訊NUM是用以記錄所屬的合成檔案CF中所包括的經處理檔案的數目。在本實施例中,合成標頭UH提供給檔案數目資訊NUM的欄位長度為1個位元組,其中例如是記錄「00000011」,表示合成檔案CF中共包括3個經處理檔案,但不限於此。
在本實施例中,合成標頭UH的版本資訊VS例如是用以記錄所屬的合成檔案CF的版本。在本實施例中,合成標頭UH提供給版本資訊VS的欄位長度為16個位元組,但不在此限。
在本實施例中,保留欄位RE是保留了6個位元組的空間給可能的未來擴充使用,但本發明並不對保留欄位RE加以限制。
接著介紹第一電子裝置100應用本發明實施例的檔案合成方法來合成第一原始檔案OF1、第二原始檔案OF2,以及第三原始檔案OF3並傳遞至第二電子裝置200的步驟流程。
圖5繪示本發明一實施例的檔案合成方法的流程圖。
首先,第一電子裝置100的處理器110會取得對應各個原始檔案的壓縮資訊CP(S510)。在本實施例中,處理器110會取得對應第一原始檔案OF1的第一壓縮資訊CP1、對應第二原始檔案OF2的第二壓縮資訊CP2,以及對應第三原始檔案OF3的第三壓縮資訊CP3。
在一實施例中,第一電子裝置100更包括諸如鍵盤、滑鼠或觸控面板等輸入元件,並且藉由輸入元件來接收使用者對應各個原始檔案所設定的壓縮資訊CP。使用者可透過輸入元件,藉由設定壓縮資訊CP來自行決定欲傳輸的原始檔案中的哪些檔案要先經過壓縮再傳輸。在另一實施例中,處理器110是依據原始檔案的大小來產生的壓縮資訊CP。例如,處理器110可設定一個資料長度門檻值,當原始檔案的資料長度大於所設定的資料長度門檻值時,便藉由壓縮資訊CP來設定此原始檔案要先經過壓縮再傳輸。然而,本發明並不限於此,所屬領域具備通常知識者當可依其需求來選擇各原始檔案是否要經過壓縮再傳輸的設定方式。
隨後,處理器110會依據各個原始檔案所對應的壓縮資訊CP,來產生對應各個原始檔案的經處理檔案(S520)。
為了產生通用標頭,處理器110會首先依據原始檔案產生初始通用標頭,並依據原始檔案以及初始通用標頭來計算驗證資訊VR(S521),接著會依據所計算的驗證資訊與初始通用標頭,來產生通用標頭GH(S522)。初始通用標頭中帶有的資訊少於通用標頭GH中所帶有的資訊。在本實施例中,初始通用標頭與通用標頭GH具有相同的欄位,但是初始通用標頭在至少一個欄位中並不帶有資訊或沒有完整的資訊。
以第一原始檔案OF1為例,為了產生其所對應的通用標頭GH(例如,第一通用標頭),處理器110會依據第一原始檔案OF1來填入通用標頭GH中除了驗證資訊VR以外的各項資訊,並且將驗證資訊VR欄位填入0資料,以產生第一初始通用標頭。換言之,本實施例的第一初始通用標頭中並不包括驗證資訊VR。隨後,處理器110會計算第一原始檔案OF1附加上第一初始通用標頭之後的整體的第一驗證資訊(例如,CRC),再將所計算出的第一驗證資訊填入第一初始通用標頭的驗證資訊VR欄位中,以產生第一通用標頭。
特別是,以上述方式所產生的驗證資訊除了能夠驗證原始檔案的正確性之外,還能夠一併驗證初始通用標頭(即,除了驗證資訊VR欄位之外的通用標頭)是否正確。
隨後,處理器110會依據對應的壓縮資訊CP,來判斷原始檔案是否需要經過壓縮後再傳輸(S523)。若原始檔案不需要壓縮,則處理器110會直接將原始檔案附加上其所對應的通用標頭,以產生經處理檔案(S524)。若原始檔案是需要壓縮,則處理器110會先對此原始檔案進行壓縮以產生壓縮檔案,然後依據此壓縮檔案修改原始檔案所對應的通用標頭(S525),最後再將壓縮檔案附加上修改後的通用標頭,以產生經處理檔案(S526)。
同樣以第一原始檔案OF1為例,若第一原始檔案OF1對應的第一壓縮資訊指示第一原始檔案OF1是不需要經過壓縮後再傳輸,處理器110會直接將第一原始檔案OF1附加上第一通用標頭,即可產生第一原始檔案OF1所對應的第一經處理檔案。
反之,若第一壓縮資訊是指示第一原始檔案OF1是需要經過壓縮,處理器110會先將第一原始檔案OF1壓縮為第一壓縮檔案。由於壓縮後的第一壓縮檔案與第一原始檔案OF1的檔案長度並不相同,因此處理器110會先計算第一壓縮檔案的壓縮檔案長度,再依據所計算的第一壓縮檔案的壓縮檔案長度來修改第一通用標頭中的總長度資訊TL(例如,第一總長度資訊)。最後,再將第一壓縮檔案附加上修改後的第一通用標頭,來產生第一經處理檔案。
在本實施例中,依據類似的方式,處理器110也能夠依據第二原始檔案OF2的第二壓縮資訊來產生對應的第二經處理檔案,並且依據第三原始檔案OF3的第三壓縮資訊來產生對應的第三經處理檔案。如此一來,處理器110便能對所欲傳輸的所有原始檔案進行處理,以產生各原始檔案對應的經處理檔案。
值得一提的是,在本實施例中是先計算驗證資訊VR再對原始檔案進行壓縮,因此驗證資訊VR還能夠用以檢查壓縮或解壓縮的過程中是否出現錯誤。
接著,為了將所產生的經處理檔案打包成合成檔案CF,處理器110會先依據其所產生的所有經處理檔案,產生一個合成標頭UH(S530)。
類似於對原始檔案產生通用標頭GH的方式,為了產生合成標頭UH,處理器110會首先依據所有經處理檔案來產生初始合成標頭,並依據此些經處理檔案以及初始合成標頭來計算驗證資訊VR(S531),接著會依據所計算的驗證資訊與初始合成標頭,來產生合成標頭UH(S532)。
在本實施例中,處理器110會串接第一經處理檔案、第二經處理檔案以及第三經處理檔案為一個串接檔案。為了產生合成標頭UH,處理器110會依據此串接檔案來填入合成標頭UH中除了驗證資訊VR以外的各項資訊,並且將驗證資訊VR欄位填入0資料,以產生初始合成標頭。換言之,本實施例的初始合成標頭中並不包括驗證資訊VR。隨後,處理器110會計算串接檔案附加上初始合成標頭之後的整體的合成驗證資訊(例如,CRC),再將所計算出的合成驗證資訊填入初始合成標頭的驗證資訊VR欄位中,以產生合成標頭UH。
特別是,以上述方式所產生的驗證資訊除了能夠驗證合成檔案CF中的至少一個經處理檔案(即,串接檔案)的正確性之外,還能夠一併驗證初始合成標頭(即,除了驗證資訊VR欄位之外的合成標頭)是否正確。
在本實施例中,第一電子裝置100的處理器110最後會將至少一個經處理檔案(即,串接檔案)附加上合成標頭UH,以產生合成檔案CF(S540)以供傳輸至第二電子裝置200。
如此一來,藉由上述實施例所提出的檔案合成方法,第一電子裝置100能夠正確地將至少一個原始檔案打包成合成檔案CF,以傳輸至第二電子裝置200。
圖6繪示本發明一實施例的檔案還原方法的流程圖。
第二電子裝置200的接收元件230接收來自於第一電子裝置100的合成檔案CF(S610)。在接收到合成檔案CF之後,處理器210首先會對所接收到的合成檔案CF進行檢查程序(S620)。詳細來說,處理器210會先取出合成檔案CF的合成標頭UH,並且利用合成標頭UH的識別碼資訊ID來進行識別碼檢查操作(S621),以及利用合成標頭的驗證資訊VR來進行驗證資訊檢查操作(S622),以對所接收到的合成檔案CF進行驗證檢查。
在本實施例中,合成標頭UH的識別碼資訊ID例如是預設有固定的格式或態樣。處理器210會檢驗合成標頭UH中的識別碼資訊ID是否符合預設的格式或態樣,以判斷此識別碼資訊ID是否能夠通過檢查。
在本實施例中,在進行驗證資訊檢查操作時,處理器210會先記錄合成標頭中的驗證資訊VR,並且將合成標頭的驗證資訊欄位填入0資料以產生初始合成標頭。隨後,計算串接檔案附加上初始合成標頭的整體的驗證資訊(例如,CRC),再將計算後的結果與先前所記錄的驗證資訊VR進行比對,以判斷合成標頭中的驗證資訊VR是否能夠通過檢查。
在本實施例中,若上述識別碼檢查操作與驗證資訊檢查操作的至少其中之一沒有通過檢查,則處理器210便不會繼續處理此合成檔案CF。反之,若上述識別碼檢查操作與驗證資訊檢查操作皆能夠通過檢查,則處理器210會繼續將合成檔案CF拆解為至少一個經處理檔案,並且依據各個經處理檔案的通用標頭GH中的壓縮資訊CP,來將所拆解的至少一個經處理檔案還原為至少一個原始檔案(S630)。舉例來說,處理器210可依序地將合成檔案CF拆解並還原為第一原始檔案OF1、第二原始檔案OF2以及第三原始檔案OF3。值得一提的,如前述實施例所介紹,本實施例所拆解出的經處理檔案包括通用標頭GH以及檔案內容兩個部分,其中檔案內容可例如是原始檔案或是將原始檔案壓縮後所產生的壓縮檔案。
詳細而言,處理器210首先會從串接檔案中找出第一個通用標頭(例如,第一通用標頭),並且依據第一通用標頭中的總長度資訊TL(例如,第一總長度資訊)來從合成檔案CF中取出對應的經處理檔案(例如,第一經處理檔案)(S631)。
取出第一經處理檔案後,處理器210可例如對第一通用標頭中的識別碼資訊ID進行識別碼檢查操作(S632)。對通用標頭中的識別碼資訊ID進行識別碼檢查操作的方式類似於對合成標頭中的識別碼ID進行識別碼檢查操作的方式,在此不再贅述。換言之,識別碼檢查操作在實作時例如可以調用相同的函式來進行。
隨後,處理器210會依據第一通用標頭的壓縮資訊CP(例如,第一壓縮資訊)判斷第一經處理檔案的第一檔案內容是否經過壓縮(S633)。
在本實施例中,若判斷第一檔案內容並未經過壓縮,則處理器210會依據第一通用標頭的驗證資訊VR(例如,第一驗證資訊)對第一經處理檔案進行驗證資訊檢查操作(S635)。類似地,在進行驗證資訊檢查操作時,處理器210會先記錄第一通用標頭中的第一驗證資訊,並且將第一通用標頭的驗證資訊VR欄位填入0資料以產生第一初始通用標頭。隨後,計算第一檔案內容附加上第一初始通用標頭的整體的驗證資訊(例如,CRC),再將所計算的驗證資訊與先前所記錄的第一驗證資訊進行比對,以判斷第一初始通用標頭與第一檔案內容是否能夠通過驗證資訊檢查。處理器210會將通過驗證資訊檢查的第一檔案內容作為第一原始檔案OF1,並且依據第一通用標頭的檔名與路徑資訊NP(例如,第一檔名與路徑資訊)來儲存第一原始檔案OF1(S636)。
另一方面,若判斷第一檔案內容是經過壓縮,則處理器210會先解壓縮第一檔案內容。由於解壓縮後的第一檔案內容的檔案長度已經改變,因此處理器210會修改第一通用標頭中的總長度資訊TL(S634)。
隨後,處理器210會依據第一驗證資訊,來對修改後的第一通用標頭附加上解壓縮後的第一檔案內容的整體來進行驗證資訊檢查操作(S635)。詳細來說,處理器210會先記錄修改後的第一通用標頭中的第一驗證資訊,並且將此第一通用標頭的驗證資訊VR欄位填入0資料以產生第一初始通用標頭。隨後,計算解壓縮後的第一檔案內容附加上此第一初始通用標頭的整體的驗證資訊(例如,CRC),再將所計算的驗證資訊與先前所記錄的第一驗證資訊進行比對,以判斷第一初始通用標頭與解壓縮後的第一檔案內容是否能夠通過驗證資訊檢查。處理器210會將通過驗證資訊檢查的解壓縮後的第一檔案內容作為第一原始檔案OF1,並且依據第一通用標頭的檔名與路徑資訊NP(例如,第一檔名與路徑資訊)來儲存第一原始檔案OF1(S636)。
值得一提的是,由於本發明實施例中所設計的通用標頭與合成標頭分別的識別碼資訊ID、驗證資訊VR以及總長度資訊TL的欄位順序與長度皆相同,因此除了識別碼驗證操作之外,驗證資訊檢查操作在實作時,也能夠調用相同的函式來完成。
最後,處理器210會判斷合成檔案CF中是否還有未還原的經處理檔案(S637)。若是,則回到步驟S631,繼續從串接檔案中找出下一個通用標頭,並依據所找出的通用標頭中的總長度資訊TL來取出下一個經處理檔案。反之,則表示合成檔案CF中的所有經處理檔案都已經還原完成。
在本實施例中,處理器210會依據上述的流程依序地將第一經處理檔案、第二經處理檔案以及第三經處理檔案還原回第一原始檔案OF1、第二原始檔案OF2以及第三原始檔案OF3。如此一來,便能夠在任何時候存取第一原始檔案OF1、第二原始檔案OF2以及第三原始檔案OF3(例如,更新處理器韌體、全球定位系統韌體或無線網路韌體等)。
綜上所述,本發明實施例所提出的檔案合成方法、對應的檔案還原方法以及使用此些方法的電子裝置,藉由特別設計的通用標頭以及合成標頭,能夠在傳輸多個原始檔案時僅針對特定的原始檔案進行壓縮。除此之外,藉由本發明實施例所設計的流程,使得標頭中的驗證資訊不僅能夠用來驗證所傳輸的檔案內容,還能夠用來驗證標頭中除了驗證資訊以外的其他部分,以及用來驗證所傳輸的檔案在壓縮與解壓縮的過程中是否有錯誤等。如此一來,本發明實施例所提供的方法與電子裝置除了提供更友善、更方便且更有效率的檔案傳輸機制之外,也更加確保了檔案傳輸的正確性。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100‧‧‧第一電子裝置
110‧‧‧處理器
130‧‧‧傳輸元件
200‧‧‧第二電子裝置
210‧‧‧處理器
230‧‧‧接收元件
CF‧‧‧合成檔案
CP‧‧‧壓縮資訊
GH‧‧‧通用標頭
HL‧‧‧標頭長度資訊
ID‧‧‧識別碼資訊
NP‧‧‧檔名與路徑資訊
NUM‧‧‧檔案數目資訊
OF1‧‧‧第一原始檔案
OF2‧‧‧第二原始檔案
OF3‧‧‧第三原始檔案
RE‧‧‧保留欄位
S510、S520、S521、S522、S523、S524、S525、S526、S530、S531、S532、S540‧‧‧檔案合成方法的步驟
S610、S620、S621、S622、S630、S631、S632、S633、S634、S635、S636、S637‧‧‧檔案還原方法的步驟
TL‧‧‧總長度資訊
UH‧‧‧合成標頭
VR‧‧‧驗證資訊
VS‧‧‧版本資訊
110‧‧‧處理器
130‧‧‧傳輸元件
200‧‧‧第二電子裝置
210‧‧‧處理器
230‧‧‧接收元件
CF‧‧‧合成檔案
CP‧‧‧壓縮資訊
GH‧‧‧通用標頭
HL‧‧‧標頭長度資訊
ID‧‧‧識別碼資訊
NP‧‧‧檔名與路徑資訊
NUM‧‧‧檔案數目資訊
OF1‧‧‧第一原始檔案
OF2‧‧‧第二原始檔案
OF3‧‧‧第三原始檔案
RE‧‧‧保留欄位
S510、S520、S521、S522、S523、S524、S525、S526、S530、S531、S532、S540‧‧‧檔案合成方法的步驟
S610、S620、S621、S622、S630、S631、S632、S633、S634、S635、S636、S637‧‧‧檔案還原方法的步驟
TL‧‧‧總長度資訊
UH‧‧‧合成標頭
VR‧‧‧驗證資訊
VS‧‧‧版本資訊
圖1繪示本發明一實施例的檔案合成與還原方法的示意圖。 圖2A繪示本發明一實施例的第一電子裝置的概要方塊圖。 圖2B繪示本發明一實施例的第二電子裝置的概要方塊圖。 圖3繪示本發明一實施例的通用標頭的示意圖。 圖4繪示本發明一實施例的合成標頭的示意圖。 圖5繪示本發明一實施例的檔案合成方法的流程圖。 圖6繪示本發明一實施例的檔案還原方法的流程圖。
Claims (18)
- 一種檔案合成方法,適於合成欲藉由一電子裝置所傳輸之至少一原始檔案,所述檔案合成方法包括:取得對應該至少一原始檔案的至少一壓縮資訊;依據該原始檔案產生一初始通用標頭,並依據該原始檔案以及該初始通用標頭計算一驗證資訊;依據該驗證資訊與該初始通用標頭,產生一通用標頭;依據各該原始檔案對應的該壓縮資訊,產生各該原始檔案對應的一經處理檔案,其中該經處理檔案包括該通用標頭;依據該至少一經處理檔案產生一合成標頭;以及依據該至少一經處理檔案以及該合成標頭產生一合成檔案。
- 如申請專利範圍第1項所述的檔案合成方法,其中在依據該原始檔案以及該初始通用標頭計算該驗證資訊之後,更包括:依據對應的該壓縮資訊,判斷該原始檔案是否需要壓縮;若該原始檔案不需要壓縮,則將該原始檔案附加上該通用標頭以產生該經處理檔案;以及若該原始檔案需要壓縮,則壓縮該原始檔案以產生一壓縮檔案,依據該壓縮檔案修改該通用標頭,並且將該壓縮檔案附加上修改後的該通用標頭以產生該經處理檔案。
- 如申請專利範圍第2項所述的檔案合成方法,其中該通用標頭包括該驗證資訊、一總長度資訊以及該壓縮資訊,其中 依據該壓縮檔案修改該通用標頭包括:計算該壓縮檔案的一壓縮檔案長度;以及依據該壓縮檔案長度修改該通用標頭中的該總長度資訊。
- 如申請專利範圍第1項所述的檔案合成方法,其中依據該至少一經處理檔案產生該合成標頭包括:依據該至少一經處理檔案產生一初始合成標頭,並依據該至少一經處理檔案以及該初始合成標頭計算一驗證資訊;以及依據該驗證資訊以及該初始合成標頭,產生該合成標頭,其中該合成標頭包括該驗證資訊。
- 一種電子裝置,用以合成所欲傳輸之至少一原始檔案,所述電子裝置包括:一處理器,取得對應該至少一原始檔案的至少一壓縮資訊,依據該原始檔案產生一初始通用標頭,並依據該原始檔案以及該初始通用標頭計算一驗證資訊,依據該驗證資訊與該初始通用標頭,產生一通用標頭,依據各該原始檔案對應的該壓縮資訊產生各該原始檔案對應的一經處理檔案,其中該經處理檔案包括該通用標頭,該處理器依據該至少一經處理檔案產生一合成標頭,並且依據該至少一經處理檔案以及該合成標頭產生一合成檔案;以及一傳輸元件,耦接於該處理器,用以傳輸該合成檔案。
- 如申請專利範圍第5項所述的電子裝置,其中該處理器在依據該原始檔案以及該初始通用標頭計算該驗證資訊之後, 更依據對應的該壓縮資訊判斷該原始檔案是否需要壓縮,其中若該原始檔案不需要壓縮,則該處理器將該原始檔案附加上該通用標頭,以產生該經處理檔案,其中若該原始檔案需要壓縮,則該處理器壓縮該原始檔案以產生一壓縮檔案,依據該壓縮檔案修改該通用標頭,並且依據將壓縮檔案附加上修改後的該通用標頭,以產生該經處理檔案。
- 如申請專利範圍第6項所述的電子裝置,其中該通用標頭包括該驗證資訊、一總長度資訊以及該壓縮資訊,其中該處理器依據該壓縮檔案修改該通用標頭時,計算該壓縮檔案的一壓縮檔案長度,並且依據該壓縮檔案長度修改該通用標頭中的該總長度資訊。
- 如申請專利範圍第5項所述的電子裝置,其中該處理器依據該至少一經處理檔案產生該合成標頭時,依據該至少一經處理檔案產生一初始合成標頭,再依據該至少一經處理檔案以及該初始合成標頭計算一驗證資訊,並且依據該驗證資訊以及該初始合成標頭產生該合成標頭,其中該合成標頭包括該驗證資訊。
- 一種檔案還原方法,適於一電子裝置,所述檔案還原方法包括:接收一合成檔案;將該合成檔案拆解為至少一經處理檔案,其中各該經處理檔案包括一通用標頭,並且各該通用標頭包括一壓縮資訊;以及依據各該通用標頭中的該壓縮資訊,將該至少一經處理檔案 還原為至少一原始檔案。
- 如申請專利範圍第9項所述的檔案還原方法,其中該合成檔案包括一合成標頭,該合成標頭包括一驗證資訊,其中在接收該合成檔案之後更包括:依據該合成標頭的該驗證資訊,對該合成檔案進行一驗證資訊檢查操作。
- 如申請專利範圍第10項所述的檔案還原方法,其中各該經處理檔案更包括一檔案內容,其中各該通用標頭更包括一驗證資訊以及一總長度資訊,其中依據各該通用標頭中的該壓縮資訊,將該至少一經處理檔案還原為該至少一原始檔案包括:判斷該至少一經處理檔案的檔案內容是否經過壓縮;若是,解壓縮該至少一檔案內容以取得該至少一經處理檔案所對應的該原始檔案;以及若否,以該檔案內容作為該經處理檔案所對應的該原始檔案。
- 如申請專利範圍第11項所述的檔案還原方法,其中若該檔案內容並未經過壓縮,以該檔案內容作為該經處理檔案所對應的該原始檔案更包括:依據該通用標頭中的驗證資訊,對該經處理檔案進行該驗證資訊檢查操作。
- 如申請專利範圍第11項所述的檔案還原方法,其中若該至少一檔案內容經過壓縮,解壓縮該至少一檔案內容以取得該至少一經處理檔案所對應的該原始檔案包括: 依據解壓縮後的該至少一檔案內容,修改該至少一通用標頭的該至少一總長度資訊;依據修改後的該至少一通用標頭產生至少一初始通用標頭;以及依據該至少一驗證資訊,驗證該至少一初始通用標頭以及解壓縮後的該至少一檔案內容;以及以解壓縮後的該至少一檔案內容作為該至少一經處理檔案所對應的該原始檔案。
- 一種電子裝置,包括:一接收元件,用以接收一合成檔案;以及一處理器,耦接於該接收元件,該處理器將該合成檔案拆解為至少一經處理檔案,其中各該經處理檔案包括一通用標頭,並且各該通用標頭包括一壓縮資訊,該處理器更依據各該通用標頭中的該壓縮資訊,將該至少一經處理檔案還原為至少一原始檔案。
- 如申請專利範圍第14項所述的電子裝置,其中該合成檔案包括一合成標頭,該合成標頭包括一驗證資訊,其中該處理器在接收該合成檔案之後,依據該合成標頭的該驗證資訊,對該合成檔案進行一驗證資訊檢查操作。
- 如申請專利範圍第15項所述的電子裝置,其中各該經處理檔案更包括一檔案內容,其中各該通用標頭更包括一驗證資訊以及一總長度資訊,其中該處理器依據各該通用標頭中的該壓縮資訊,將該至少一經 處理檔案還原為該至少一原始檔案時,判斷該至少一經處理檔案的檔案內容是否經過壓縮,若是,該處理器更解壓縮該至少一檔案內容以取得該至少一經處理檔案所對應的該原始檔案,若否,該處理器更以該檔案內容作為該經處理檔案所對應的該原始檔案。
- 如申請專利範圍第16項所述的電子裝置,其中若該檔案內容並未經過壓縮,該處理器更依據該通用標頭中的該驗證資訊,對該經處理檔案進行該驗證資訊檢查操作。
- 如申請專利範圍第16項所述的電子裝置,其中若該第一檔案內容經過壓縮,則該處理器解壓縮該至少一檔案內容以取得該至少一經處理檔案所對應的該原始檔案時,更依據解壓縮後的該至少一檔案內容修改該至少一通用標頭的該至少一總長度資訊,依據修改後的該至少一通用標頭產生至少一初始通用標頭,再依據該至少一驗證資訊,驗證該至少一初始通用標頭以及該解壓縮後的該至少一檔案內容,以及以解壓縮後的該至少一檔案內容作為該至少一經處理檔案所對應的該原始檔案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106131621A TWI634483B (zh) | 2017-09-14 | 2017-09-14 | 檔案合成方法、檔案還原方法以及使用此些方法的電子裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106131621A TWI634483B (zh) | 2017-09-14 | 2017-09-14 | 檔案合成方法、檔案還原方法以及使用此些方法的電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI634483B true TWI634483B (zh) | 2018-09-01 |
TW201915722A TW201915722A (zh) | 2019-04-16 |
Family
ID=64452734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106131621A TWI634483B (zh) | 2017-09-14 | 2017-09-14 | 檔案合成方法、檔案還原方法以及使用此些方法的電子裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI634483B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200635306A (en) * | 2004-07-30 | 2006-10-01 | Nokia Corp | Point-to-point repair response mechanism for point-to-multipoint transmission systems |
TW200928980A (en) * | 2007-08-29 | 2009-07-01 | Ibm | Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives |
US7945698B2 (en) * | 2002-02-01 | 2011-05-17 | Codekko Software, Inc. | System and method for partial data compression and data transfer |
CN104714819A (zh) * | 2013-12-16 | 2015-06-17 | 中兴通讯股份有限公司 | 文件系统升级包制作方法、升级方法及装置、终端 |
US20150349797A1 (en) * | 2013-11-14 | 2015-12-03 | Cyborg Inc. | System and Method for Improved Data Transmission |
-
2017
- 2017-09-14 TW TW106131621A patent/TWI634483B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7945698B2 (en) * | 2002-02-01 | 2011-05-17 | Codekko Software, Inc. | System and method for partial data compression and data transfer |
TW200635306A (en) * | 2004-07-30 | 2006-10-01 | Nokia Corp | Point-to-point repair response mechanism for point-to-multipoint transmission systems |
TW200928980A (en) * | 2007-08-29 | 2009-07-01 | Ibm | Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives |
US20150349797A1 (en) * | 2013-11-14 | 2015-12-03 | Cyborg Inc. | System and Method for Improved Data Transmission |
CN104714819A (zh) * | 2013-12-16 | 2015-06-17 | 中兴通讯股份有限公司 | 文件系统升级包制作方法、升级方法及装置、终端 |
Also Published As
Publication number | Publication date |
---|---|
TW201915722A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104391728B (zh) | 软件升级差量包获取方法和相应的升级方法以及装置 | |
US7546492B2 (en) | Remotely repairing files by hierarchical and segmented cyclic redundancy checks | |
CN108650287B (zh) | 物联网中的终端设备的升级方法、设备及计算机可读介质 | |
US20080040713A1 (en) | Method for remotely upgrading the firmware of a target device using wireless technology | |
TWI602122B (zh) | 韌體更新方法 | |
JP2013073417A (ja) | 対象データの配置方法、対象データ配置システム、および、それらのサーバ装置、クライアント装置、プログラム | |
KR100847560B1 (ko) | 다운로드되는 펌웨어의 오류 정정을 위한 회로 및 방법 | |
CN104123149B (zh) | 软件升级方法、装置、客户端及系统 | |
CN112839003A (zh) | 数据校验方法及系统 | |
CN111857790A (zh) | 一种固件升级方法、装置及计算机设备 | |
CN111083214A (zh) | 一种更新应用软件的方法、装置、客户端、服务器及系统 | |
WO2022142153A1 (zh) | 电表升级方法、系统、智能电表及存储介质 | |
US7571374B2 (en) | Method for transmitting and processing command and data | |
TWI634483B (zh) | 檔案合成方法、檔案還原方法以及使用此些方法的電子裝置 | |
KR20080019454A (ko) | 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법과델타파일 및 이를 이용한 펌웨어 업데이트 방법 | |
CN113568785B (zh) | 一种基于区块链的数据备份方法、装置、设备及存储介质 | |
CN102999397A (zh) | 一种嵌入式软件升级校验的方法 | |
CN107015821B (zh) | 增量更新的方法和装置 | |
US20240106669A1 (en) | Methods and systems for streaming block templates with cross-references | |
KR20060073724A (ko) | 파일의 정보를 이용하여 중복된 파일을 저장하고다운로드하는 방법 및 장치 | |
JP2004326143A (ja) | Fpgaを具備するcpu装置とその初期化方法 | |
WO2021097704A1 (zh) | 一种数据传输方法、数据下载方法及终端 | |
WO2015035809A1 (zh) | 信令跟踪的处理方法及装置 | |
US20230421402A1 (en) | Methods and systems for compressing transaction identifiers | |
CN106021367B (zh) | 一种查找备份数据的方法及终端 |