TWI533214B - 模組版本升級方法及終端裝置 - Google Patents

模組版本升級方法及終端裝置 Download PDF

Info

Publication number
TWI533214B
TWI533214B TW103132314A TW103132314A TWI533214B TW I533214 B TWI533214 B TW I533214B TW 103132314 A TW103132314 A TW 103132314A TW 103132314 A TW103132314 A TW 103132314A TW I533214 B TWI533214 B TW I533214B
Authority
TW
Taiwan
Prior art keywords
module
version
upgrade
file
terminal device
Prior art date
Application number
TW103132314A
Other languages
English (en)
Other versions
TW201612747A (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 TW103132314A priority Critical patent/TWI533214B/zh
Publication of TW201612747A publication Critical patent/TW201612747A/zh
Application granted granted Critical
Publication of TWI533214B publication Critical patent/TWI533214B/zh

Links

Landscapes

  • Stored Programmes (AREA)

Description

模組版本升級方法及終端裝置
本發明係指一種模組版本升級方法及終端裝置,尤指一種遠端升級並分區升級的模組版本升級方法及終端裝置。
隨著第四代(4G)行動寬頻網路時代的到來,行動終端將越來越普及。同時,相對應的應用功能也越來越複雜。為了擴展終端模組的功能及解決終端與基地台間相容性的問題,通常需要對終端模組進行軟體版本升級。對於終端模組的升級,傳統的方式是由廠商的服務人員到客戶架設終端裝置的現場來對所有終端逐一地進行升級操作。然而,這樣的方式將會非常耗費人力而且售後服務成本也太過龐大。再者,當設備數量很多時,整個升級所需工作週期也會過長。
另一種升級方式便是由終端模組的晶片廠商提供過一種空中韌體下載(Firmware Over The Air,FOTA)的方式來提供部分升級。但這種方式仍存在著許多缺陷,例如只能提供給終端模組的部分分區升級,並且升級分區分別管理而容易產生錯亂,此外,所進行的升級沒有保護措施,既沒有升級版本校驗,更沒有完整性校驗。
因此,如何進一步提昇升級作業效率與安全性並降低售後服務成本也就成為業界所努力的目標之一。
因此,本發明主要提供一種模組版本升級方法與相關終端裝置,以改善習知技術的缺點。
本發明揭露一種模組版本升級方法,用來升級一終端裝置之一第 一模組之軟體版本,包括:取得一模組升級版本檔案;檢查該模組升級版本檔案之完整性,檢查該模組升級版本檔案中之一版本資訊,並據以產生一檢查結果;根據該檢查結果對該模組升級版本檔案中之一下載檔案進行解密;以及利用解密後的該下載檔案對該第一模組之軟體分區執行一升級程序。
本發明另揭露一種終端裝置,包括:一第一模組;一獲取單元,用來取得一模組升級版本檔案;一檢查單元,用來檢查該模組升級版本檔案之完整性,檢查該模組升級版本檔案中之一版本資訊,並據以產生一檢查結果;一解密單元,用來根據該檢查結果對該模組升級版本檔案中之一下載檔案進行解密;以及一升級單元,用來利用解密後的該下載檔案對該第一模組之軟體分區執行一升級程序。
10‧‧‧行動終端裝置
102‧‧‧中央處理器
104‧‧‧記憶體
106‧‧‧通訊模組
108‧‧‧儲存模組
110‧‧‧WIFI模組
20‧‧‧版本伺服器
202、702‧‧‧獲取單元
204、704‧‧‧檢查單元
206、706‧‧‧解密單元
208、708‧‧‧升級單元
30‧‧‧流程
300、302、304、306、308、310、500、502、504、506、508、510、512、514、516、518、520、522、 524、526、528、530、532‧‧‧步驟
7042‧‧‧第一檢查單元
7044‧‧‧第二檢查單元
7046‧‧‧第三檢查單元
7048‧‧‧第四檢查單元
7082‧‧‧第一升級單元
7084‧‧‧第二升級單元
第1圖為本發明實施例一行動終端裝置與一版本伺服器之關係示意圖。
第2圖為本發明實施例一行動終端裝置之部份元件示意圖。
第3圖為本發明實施例一模組版本升級流程之示意圖。
第4圖為本發明實施例一模組升級版本檔案之組成內容示意圖。
第5圖與第6圖為本發明實施例一模組版本升級流程之另一示意圖。
第7圖為本發明實施例一行動終端裝置之另一部份元件示意圖
為了解決習知對行動終端裝置中相關模組版本升級時需要在現場對相關模組進行升級而造成高售後服務成本的問題,本發明提供一種利用遠端升級並透過分區分別管理升級的模組版本升級方法,如此一來,可有效節省相關的售後服務成本並提昇升級作業的效率。請參考第1圖,第1圖為本發明實施例一行動終端裝置10與一版本伺服器20之關係示意圖。行動終端裝置10包含有一中央處理器102、一記憶體104、一通訊模組106、一儲存模組108及一WIFI模組110,但不限於此,行動終端裝置10亦可包含其他 應用功能模組。通訊模組106係設置於行動終端裝置10中,通訊模組106本身也有作業系統並通過通訊介面(例如USB介面)來與行動終端裝置10進行連接與通信。版本伺服器20包含有一模組升級版本檔案。行動終端裝置10可透過有線或是無線的連接方式來取得版本伺服器20中的模組升級版本檔案。接著,行動終端裝置10會驗證所取得之模組升級版本檔案並以分區升級的方式來對相關應用功能模組的軟體進行升級。
進一步地,以下說明係以對通訊模組106的軟體進行升級為例來做說明,但並不以此為限。請參考第2圖,第2圖為本發明實施例一行動終端裝置10之部份元件示意圖。行動終端裝置10還包含有一獲取單元202、一檢查單元204、一解密單元206及一升級單元208。獲取單元202用來由版本伺服器20中取得該模組升級版本檔案。檢查單元204用來檢查該模組升級版本檔案的完整性以及檢查模組升級版本檔案中之版本資訊,以產生一檢查結果。解密單元206用來根據檢查結果對該模組升級版本檔案中之下載檔案進行解密。升級單元208用來利用解密後的下載檔案對通訊模組106之軟體以分區執行方式實現升級程序。
關於行動終端裝置10如何遠端升級相關功能模組之運作方式,可歸納為一模組版本升級流程30,如第3圖所示,模組版本升級流程30包含以下步驟:
步驟300:開始。
步驟302:取得模組升級版本檔案。
步驟304:檢查模組升級版本檔案之完整性且檢查模組升級版本檔案中之版本資訊,並據以產生檢查結果。
步驟306:根據檢查結果對模組升級版本檔案中之下載檔案進行解密。
步驟308:利用解密後的下載檔案對通訊模組之軟體分區執行升級程序。
步驟310:結束。
以下進一步對上述步驟作一詳細說明,首先,在步驟302中,當行動終端裝置10欲對通訊模組106的軟體進行升級時或是版本伺服器20對行動終端裝置10下達對通訊模組106的軟體進行升級的指令時,行動終端裝置10中之獲取單元202可透過有線或是無線的連接方式來下載取得版本伺服器20中的模組升級版本檔案。其中,如第4圖所示,模組升級版本檔案包括版本檔案與(解密前的)下載檔案,其中可透過檔案封裝方式將版本檔案與(解密前的)下載檔案打包成該模組升級版本檔案。進一步地,版本檔案包括版本資訊與分區資訊。其中,版本資訊包括模組型號、模組版本號、完整性校驗值(例如CRC校驗值(CRC checksum))、模組升級版本檔案的檔案大小、解密類型以及解密金鑰。其中分區資訊包括各分區的名稱或旗標、分區的大小,其中(解密前的)下載檔案是由相應於通訊模組106的軟體之各個分區升級檔案所組成,組成後再進行加密而成。
當下載取得版本伺服器20中的模組升級版本檔案之後,在步驟304中,行動終端裝置10會檢查模組升級版本檔案之完整性來確保資料是否齊全且完整無誤,同時也會檢查檢查模組升級版本檔案中之相關版本資訊,並據以產生相關檢查結果。舉例來說,如第5圖所示,檢查單元204會透過計算與比對版本資訊中之完整性校驗值來確認模組升級版本檔案在網路傳輸過程中是否保持完整(步驟504)。檢查單元204讀取版本資訊中的CRC校驗值,並檢查CRC校驗值與依據模組升級版本檔案所計算出來的校驗值是否一致。若檢查結果指示兩數值符合時,表示模組升級版本檔案的資料已完整接收,則進行步驟508;若檢查結果指示兩數值不符合時,表示模組升級版本檔案的資料丟失,則不繼續進行升級(步驟506)。也就是說,行動終端裝置10對模組升級版本檔案進行了完整性的校驗。
進一步地,檢查單元204檢查版本資訊中記載之模組型號是否符合通訊模組106之模組型號(步驟508)。若檢查結果指示型號正確,則進行 步驟510;若檢查結果指示型號不正確,則不繼續進行升級(步驟506)。檢查單元204檢查版本資訊中記載之模組版本號是否合法。若檢查結果指示模組版本號是合法的而允許繼續升級,則進行步驟512;若檢查結果指示模組版本號是不合法的,則不繼續進行升級(步驟506)。檢查單元204檢查模組升級版本檔案的檔案大小並據以檢查目前行動終端裝置10的存放空間是否足以存放模組升級版本檔案。若檢查結果指示儲存空間足夠,行動終端裝置10將模組升級版本檔案儲存在其相關儲存裝置中(步驟514),以備後續升級失敗時可以重新升級;若檢查結果指示儲存空間不足,則不繼續進行升級(步驟506)。
簡言之,在步驟304中,本發明對模組升級版本檔案的完整性進行驗證,以防止在遠端下載過程中資料丟失。同時,本發明也在對模組版本加入模組型號與模組版本號等相關版本資訊的查核,以防止下載錯誤版本,進而有利於版本的管理控制。
在步驟306中,當檢查單元204進行相關的檢查運作後,解密單元206根據前述檢查結果來對模組升級版本檔案中之(解密前的)下載檔案進行解密。如此一來,由於對組裝後的檔案進行加密措施,因此在版本升級時將可有效防止核心程式在傳輸過程中被不良分子截取。舉例來說,如第5圖與第6圖所示,當步驟504、508、510、512的檢查結果皆為符合的話,行動終端裝置10對通訊模組106下達一升級指令(步驟516),此時,通訊模組106會切換至一升級模式(步驟518)。例如行動終端裝置10通過一AT指令對通訊模組106發出fastboot指令,而通訊模組106需要切換到fastboot模式,同時也監聽來自行動終端裝置10的升級資料。接著,解密單元206讀取模組升級版本檔案中所記載之解密類型及解密金鑰,並據以對模組升級版本檔案中之(解密前的)下載檔案進行解密,以產生(解密後的)下載檔案(步驟520)。若解密失敗,則進入步驟522,不繼續進行升級,並提示解密失敗與刪除錯誤版本。
在步驟308中,於解密單元206產生解密後的下載檔案後,升級單元208根據分區狀態、分區旗標及分區大小對解密後的下載檔案進行分解,以切分出相應於該通訊模組106各分區的多個分區檔案,再利用該些分區檔案分別對通訊模組106之軟體的各分區進行升級。舉例來說,如第6圖所示,升級單元208對通訊模組106設置一升級旗標,當通訊模組106接收解密後的下載檔案時,設置旗標為1,並保存到記憶體中(步驟524)。如此一來,當升級過程中發生斷電等異常狀況時,通訊模組106在下次開機時會檢測該升級旗標的狀態,如果狀態為1,則自動停留在BOOT狀態,以待行動終端裝置10對通訊模組106重新升級。進一步地,升級單元208取得待升級分區的資訊,並在通訊模組106中清除該些待升級分區中原本的資料或是通知通訊模組106清除該些待升級分區中原本的資料(步驟526)。接著,升級單元208根據各待升級分區的分區旗標及大小,由解密後的下載檔案截取相應於各分區的下載檔案(步驟528)。接著,升級單元208分別將相應於各分區的下載檔案更新寫入到通訊模組106之軟體的各相應分區中(步驟530)。此外,可檢查其它分區是否還需要升級,如果尚有其它分區也需要升級,則再次執行步驟526至步驟530來升級相關分區。最後,當完成所有待升級分區的升級程序後,將升級旗標設置為0,重新啟動通訊模組106,並指示升級成功(步驟532)。
換言之,針對用於升級之模組升級版本檔案的結構框架,本發明在原有的模組版本基礎上增加了相關版本資訊並且對模組下載檔案進行加密保護。在進行模組升級時,行動終端裝置10實際會去掉版本資訊並將下載檔案的各分區升級到應用功能模組的各分區之中。
值得注意的是,上述的各流程與裝置係為本發明之一實施例,本領域具通常知識者當可據以做不同之變化或修飾,而不限於此。舉例來說,通訊模組106可以是一4G通訊模組、一3G通訊模組或是任何其他的通訊模組。本發明所述之軟體可以是相關於應用功能模組之韌體或是應用軟體。本 發明圖式中之流程圖所顯示出的步驟可在行動終端設備中自動執行。此外,在不違背本發明之精神下,第3、5或6圖之流程中的步驟可再增加其他的中間步驟、可將數個步驟合併成單一步驟或是可省略部分步驟,以做適當之變化。當然,假若可得到大致相同的結果,則第3、5或6圖中的之任一流程並非限定要依據第3、5或6圖中所示之順序來執行。
另一方面,行動終端裝置10可用各種元件配置方式來實現本案的模組版本升級流程。舉例來說,請參考第7圖,第7圖為本發明實施例一行動終端裝置10之另一部份元件示意圖。行動終端裝置10包括一獲取單元702、一檢查單元704、一解密單元706及一升級單元708。獲取單元702用來由版本伺服器20中取得該模組升級版本檔案。檢查單元704用來檢查所取得之模組升級版本檔案的完整性及檢查模組升級版本檔案中之版本資訊,以產生一檢查結果。檢查單元704包括一第一檢查單元7042、一第二檢查單元7044、一第三檢查單元7046、一第四檢查單元7048。該些檢查單元之間可以是並行連接關係或者串列連接關係。其中第一檢查單元7042用來校驗模組升級版本檔案之完整性來確保資料是否齊全且完整無誤。第二檢查單元7044用來檢查版本資訊中記載之模組型號是否與通訊模組106之模組型號一致。第三檢查單元7046用來檢查版本資訊中記載之模組版本號是否合法。第四檢查單元7048用來檢查模組升級版本檔案的檔案大小並據以判斷目前行動終端裝置10的存放空間是否足以存放模組升級版本檔案。解密單元706用來根據檢查結果對該模組升級版本檔案中之下載檔案進行解密。升級單元708用來利用解密後的下載檔案對通訊模組106之軟體分區執行升級程序。升級單元708包括一第一升級單元7082及一第二升級單元7084。第一升級單元7082用來根據分區狀態、分區旗標及分區大小對解密後的下載檔案進行分解以切分出多個分區檔案。第二升級單元7084用來利用該些分區檔案分別對通訊模組106之軟體的各分區進行升級。
綜上所述,相較於習知技術,本發明可遠端升級模組的軟體版本 且對模組升級版本檔案的完整性進行驗證,以防止在遠端下載過程中資料丟失而有利於網路傳輸安全。本發明也在對模組版本增加模組型號與模組版本號等版本資訊的查核,以加強版本控制來防止下載錯誤版本,而有利於版本的管理控制。同時本發明整合各分區為一個模組升級版本檔案,以增加版本的唯一性而有利於版本的管理控制。另外,本發明增加升級模式的狀態旗標來記錄當前升級狀態,則在升級過程中遭遇斷電時,可於重啟時重新進行升級而實現了升級時的斷電保護。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
30‧‧‧流程
300、302、304、306、308、310‧‧‧步驟

Claims (20)

  1. 一種模組版本升級方法,用來升級一終端裝置之一第一模組之軟體版本,包括:取得一模組升級版本檔案;檢查該模組升級版本檔案之完整性,檢查該模組升級版本檔案中之一版本資訊,並據以產生一檢查結果;根據該檢查結果對該模組升級版本檔案中之一下載檔案進行解密,該步驟包括:於該檢查結果指示該版本資訊中之模組型號符合該第一模組之模組型號、該版本資訊中之模組版本號是合法的以及該終端裝置的儲存空間足以存放該模組升級版本檔案等至少其中之一種情況時,該終端裝置對該第一模組下達一升級指令,且該第一模組切換至一升級模式;以及讀取該版本資訊中之一解密類型及一解密金鑰,並據以對該模組升級版本檔案中之該下載檔案進行解密,以產生解密後的該下載檔案;以及利用解密後的該下載檔案對該第一模組之軟體分區執行一升級程序。
  2. 如請求項1所述之方法,其另包括該終端裝置自一版本服務器取得該模組升級版本檔案。
  3. 如請求項1所述之方法,其中檢查該模組升級版本檔案之完整性之步驟包括:檢查該版本資訊中之一完整性校驗值是否與依據該模組升級版本檔案所計算出來的校驗值是否一致;當檢查結果為符合時,檢查該模組升級版本檔案中之該版本資訊。
  4. 如請求項1所述之方法,其中檢查該模組升級版本檔案中之該版本資訊之 步驟包括:檢查該模組升級版本檔案中之一模組型號、一模組版本號及一檔案大小之至少其中之一者。
  5. 如請求項4所述之方法,其另包括檢查該版本資訊中之該模組型號是否符合該第一模組之模組型號。
  6. 如請求項4所述之方法,其另包括檢查該版本資訊中之該模組版本號是否合法。
  7. 如請求項4所述之方法,其另包括檢查該版本資訊中之該檔案大小,並據以檢查該終端裝置的儲存空間是否足以存放該模組升級版本檔案。
  8. 如請求項1所述之方法,其另包括於該檢查結果指示該終端裝置儲存空間足夠時,該終端裝置儲存該模組升級版本檔案。
  9. 如請求項1所述之方法,其另包括於該終端裝置對該第一模組下達一升級指令時,利用設置一升級旗標來記錄當前升級狀態。
  10. 如請求項1所述之方法,其中根據利用解密後的該下載檔案對該第一模組之軟體分區執行該升級程序之步驟包括:根據該版本資訊中之一分區旗標及一分區大小對解密後的該下載檔案進行分解,以切分出多個分區檔案;以及利用該多個分區檔案分別對該第一模組之軟體的各分區進行升級。
  11. 一種終端裝置,包括:一第一模組;一獲取單元,用來取得一模組升級版本檔案;一檢查單元,用來檢查該模組升級版本檔案之完整性,檢查該模組升級版本檔案中之一版本資訊,並據以產生一檢查結果;一解密單元,用來根據該檢查結果對該模組升級版本檔案中之一下載檔案進行解密;以及一升級單元,用來利用解密後的該下載檔案對該第一模組之軟體分區執行 一升級程序;其中,於該檢查結果指示該版本資訊中之模組型號符合該第一模組之模組型號、該版本資訊中之模組版本號是合法的以及該終端裝置的儲存空間足以存放該模組升級版本檔案等至少其中之一種情況時,該終端裝置對該第一模組下達一升級指令且該第一模組切換至一升級模式,且該解密單元讀取該版本資訊中之一解密類型與一解密金鑰並據以對該模組升級版本檔案中之該下載檔案進行解密,以產生解密後的該下載檔案。
  12. 如請求項11所述之終端裝置,其中該獲取單元自一版本服務器取得該模組升級版本檔案。
  13. 如請求項11所述之終端裝置,其中該檢查單元檢查該版本資訊中之一完整性校驗值是否與依據該模組升級版本檔案所計算出來的校驗值是否一致,當檢查結果為符合時該檢查單元檢查該模組升級版本檔案中之該版本資訊。
  14. 如請求項11所述之終端裝置,其中該檢查單元檢查該模組升級版本檔案中之一模組型號、一模組版本號及一檔案大小之至少其中之一者。
  15. 如請求項14所述之終端裝置,其中該檢查單元檢查該版本資訊中之該模組型號是否符合該第一模組之模組型號。
  16. 如請求項14所述之終端裝置,其中該檢查單元檢查該版本資訊中之該模組版本號是否合法。
  17. 如請求項14所述之終端裝置,其中該檢查單元檢查該版本資訊中之該檔案大小,並據以檢查該終端裝置的儲存空間是否足以存放該模組升級版本檔案。
  18. 如請求項11所述之終端裝置,其中於該檢查結果指示該終端裝置儲存空間足夠時,該終端裝置儲存該模組升級版本檔案。
  19. 如請求項11所述之終端裝置,其另包括於該終端裝置對該第一模組下達 一升級指令時,該升級單元利用設置一升級旗標來記錄當前升級狀態。
  20. 如請求項14所述之終端裝置,其中該升級單元根據該版本資訊中之一分區旗標及一分區大小對解密後的該下載檔案進行分解以切分出多個分區檔案並利用該多個分區檔案分別對該第一模組之軟體的各分區進行升級。
TW103132314A 2014-09-18 2014-09-18 模組版本升級方法及終端裝置 TWI533214B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW103132314A TWI533214B (zh) 2014-09-18 2014-09-18 模組版本升級方法及終端裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103132314A TWI533214B (zh) 2014-09-18 2014-09-18 模組版本升級方法及終端裝置

Publications (2)

Publication Number Publication Date
TW201612747A TW201612747A (en) 2016-04-01
TWI533214B true TWI533214B (zh) 2016-05-11

Family

ID=56360885

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103132314A TWI533214B (zh) 2014-09-18 2014-09-18 模組版本升級方法及終端裝置

Country Status (1)

Country Link
TW (1) TWI533214B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11334655B2 (en) * 2019-11-19 2022-05-17 Micron Technology, Inc. Authenticating a device using a remote host
TWI758825B (zh) * 2020-08-18 2022-03-21 鴻海精密工業股份有限公司 壓縮資料之方法及設備、解壓縮資料之方法及設備
TWI823599B (zh) * 2022-10-06 2023-11-21 新唐科技股份有限公司 韌體更新方法、電子裝置及伺服器

Also Published As

Publication number Publication date
TW201612747A (en) 2016-04-01

Similar Documents

Publication Publication Date Title
CN103279372B (zh) 机顶盒软件升级方法及机顶盒
TWI518595B (zh) 軟體更新方法及系統以及行動裝置
KR101490578B1 (ko) 펌웨어 오버­디­에어 기술에 기초하여 펌웨어를 프로세싱하기 위한 방법, 장치 및 시스템
CN109639446B (zh) Fpga设备、基于fpga设备的云系统
EP2879327A1 (en) Encryption and decryption processing method, apparatus and device
CN111538517B (zh) 一种服务器固件升级方法、系统及电子设备和存储介质
WO2019062635A1 (zh) 升级方法和装置
WO2018045958A1 (zh) Wifi设备升级的方法及系统
CN104702631A (zh) 一种客户端软件的升级方法和系统
US20200097278A1 (en) Method for online updating firmware of complex programmable logic device
KR101688631B1 (ko) 스마트 기기 내부의 플래시메모리의 무결성을 보장하기 위한 포렌식 데이터 획득 장치 및 방법
CN105706099A (zh) 软件更新装置及软件更新程序
CN104484592A (zh) 移动设备工厂模式的启动方法及系统
CN105468393A (zh) 模块版本升级方法及终端装置
TWI533214B (zh) 模組版本升級方法及終端裝置
CN111641527A (zh) 一种嵌入式芯片软件远程升级备份方法
CN110879713A (zh) 一种android端强加密插件热更新管理方法
WO2022257927A1 (zh) 密钥烧录方法、装置、电子设备板卡及存储介质
CN110399150A (zh) 一种bios升级方法、系统、装置及计算机存储介质
WO2018036166A1 (zh) 一种读取升级包的方法及装置
CN107329787B (zh) 一种更新终端设备程序方法
CN102169445B (zh) 一种BootRom的安全升级方法
CN108874432B (zh) 无线固件升级系统
WO2020113382A1 (zh) 硬件升级方法、装置、设备和存储介质
CN106933637A (zh) 一种系统分区的修复方法及装置