• / 14
  • 下載費用:30 金幣  

一種為智能卡打補丁的方法和系統.pdf

關 鍵 詞:
一種 智能卡 打補丁 方法 系統
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201310710638.X

申請日:

2013.12.19

公開號:

CN103677933A

公開日:

2014.03.26

當前法律狀態:

駁回

有效性:

無權

法律詳情: 發明專利申請公布后的駁回IPC(主分類):G06F 9/445申請公布日:20140326|||實質審查的生效IPC(主分類):G06F 9/445申請日:20131219|||公開
IPC分類號: G06F9/445 主分類號: G06F9/445
申請人: 大唐微電子技術有限公司
發明人: 董翔; 樊兆均
地址: 100094 北京市海淀區永嘉北路6號
優先權:
專利代理機構: 北京安信方達知識產權代理有限公司 11262 代理人: 王丹;栗若木
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201310710638.X

授權公告號:

||||||

法律狀態公告日:

2018.04.20|||2014.04.23|||2014.03.26

法律狀態類型:

發明專利申請公布后的駁回|||實質審查的生效|||公開

摘要

本發明公開了一種實現智能卡軟件補丁的方法,包括:在平臺系統軟件中預留補丁代碼調用接口,在可擦寫存儲空間內預留補丁代碼運行空間;將補丁代碼下載到預留的可擦寫存儲空間內,向補丁代碼調用接口返回補丁代碼運行的入口地址;如平臺系統軟件檢測到所述補丁代碼調用接口包含補丁代碼運行的入口地址,則通過該補丁代碼調用接口運行該補丁代碼。本發明能便捷、高效地實現智能卡平臺軟件的適應性修改。本發明還公開了一種實現智能卡軟件補丁的方法,能夠便捷、高效地實現智能卡應用軟件的適應性修改。

權利要求書

權利要求書
1.  一種實現智能卡軟件補丁的方法,該方法包括:
在智能卡平臺系統軟件中預留補丁代碼調用接口,在智能卡上的可擦寫存儲空間內預留補丁代碼運行空間;
將補丁代碼下載到預留的可擦寫存儲空間內,向所述補丁代碼調用接口返回所述補丁代碼運行的入口地址;
如所述智能卡平臺系統軟件檢測到所述補丁代碼調用接口包含補丁代碼運行的入口地址,則通過該補丁代碼調用接口運行該補丁代碼。

2.  如權利要求1所述的方法,其特征在于:
所述智能卡是Java卡。

3.  如權利要求2所述的方法,其特征在于:
在智能卡平臺系統軟件中預留補丁代碼調用接口,包括:在智能卡平臺系統軟件的以下一種或多種處理流程中預留補丁代碼調用接口:a)中斷處理流程;b)設備驅動處理流程;c)命令分發處理流程。

4.  如權利要求2所述的方法,其特征在于:
在智能卡平臺系統軟件中預留補丁代碼調用接口,包括:
在智能卡平臺系統軟件中定義補丁函數指針,在系統初始化時設置此函數指針為空;
將補丁代碼下載到預留的可擦寫存儲空間內,向所述補丁代碼調用接口返回所述補丁代碼運行的入口地址,包括:
將補丁代碼下載到預留的可擦寫存儲空間,將所述補丁函數指針賦值為所述補丁代碼運行的入口地址;
如所述智能卡平臺系統軟件檢測到所述補丁代碼調用接口包含補丁代碼運行的入口地址,則通過該補丁代碼調用接口運行該補丁代碼,包括:
如智能卡平臺系統軟件運行時檢測到所述補丁函數指針不為空,則執行該補丁函數指針所指向的補丁代碼;如智能卡平臺系統軟件運行時檢測到所 述補丁函數指針為空,則執行原函數代碼。

5.  一種實現智能卡軟件補丁的方法,該方法包括:
應用軟件中需要考慮產品適應性的功能模塊采用服務端應用程序實現,應用軟件的主框架模塊采用客戶端應用程序實現;客戶端應用程序通過服務端應用程序的應用標識AID獲得相應服務端應用程序的服務;
為不可刪除的服務端應用程序打補丁時,直接下載并安裝新的服務端應用程序,并為新下載的服務端應用程序創建新的AID;客戶端應用程序查找所述新的AID,通過所述新的AID獲得新下載的服務端應用程序的服務。

6.  如權利要求5所述的方法,其特征在于:
所述智能卡是Java卡。

7.  如權利要求6所述的方法,其特征在于,還包括:
為可刪除的服務端應用程序打補丁時,刪除該服務端應用程序,重新下載新的服務端應用程序,并為新下載的服務端應用程序創建與被刪除的服務端應用程序相同的AID;客戶端應用程序通過原來的AID獲得新下載的服務端應用程序的服務。

8.  如權利要求6所述的方法,其特征在于:
所述AID包括版本號字段;
所述為新下載的服務端應用程序創建新的AID,包括:為新下載的服務端應用程序創建的AID的版本號比原來的服務端應用程序的AID的版本號高1號;
客戶端應用程序查找所述新的AID,包括:
客戶端應用程序從預定義的最高版本號的AID向低版本號的AID遍歷,如找到一個版本號比當前需要打補丁的服務端應用小程序的版本號高的服務端應用小程序,則該新找到的服務端應用小程序的AID是新的AID。

9.  如權利要求6所述的方法,其特征在于:
客戶端應用程序通過服務端應用程序的AID獲得相應服務端應用程序 的服務,包括:
客戶端應用程序調用Java卡標準API方法,通過指定服務端應用程序的AID和相應參數獲得該服務端應用程序提供的共享接口,使用該共享接口中的方法,獲得該服務端應用程序提供的服務。

10.  一種實現智能卡軟件補丁的系統,該系統包括:
預處理模塊,用于在智能卡平臺系統軟件中預留補丁代碼調用接口,在智能卡上的可擦寫存儲空間內預留補丁代碼運行空間;
下載模塊,用于將補丁代碼下載到預留的可擦寫存儲空間內,向所述補丁代碼調用接口返回所述補丁代碼運行的入口地址;
打補丁模塊,用于如所述智能卡平臺系統軟件檢測到所述補丁代碼調用接口包含補丁代碼運行的入口地址,則通過該補丁代碼調用接口運行該補丁代碼。

11.  如權利要求10所述的系統,其特征在于:
所述智能卡是Java卡。

12.  如權利要求11所述的系統,其特征在于:
預處理模塊,用于通過以下方式在智能卡平臺系統軟件中預留補丁代碼調用接口:
在智能卡平臺系統軟件的以下一種或多種處理流程中預留補丁代碼調用接口:a)中斷處理流程;b)設備驅動處理流程;c)命令分發處理流程。

13.  如權利要求11所述的系統,其特征在于:
預處理模塊,用于通過以下方式在智能卡平臺系統軟件中預留補丁代碼調用接口:在智能卡平臺系統軟件中定義補丁函數指針,在系統初始化時設置此函數指針為空;
下載模塊,用于通過以下方式將補丁代碼下載到預留的可擦寫存儲空間內,向所述補丁代碼調用接口返回所述補丁代碼運行的入口地址:將補丁代碼下載到預留的可擦寫存儲空間,將所述補丁函數指針賦值為所述補丁代碼 運行的入口地址;
打補丁模塊,用于如所述智能卡平臺系統軟件檢測到所述補丁代碼調用接口包含補丁代碼運行的入口地址,則通過該補丁代碼調用接口運行該補丁代碼,包括:如智能卡平臺系統軟件運行時檢測到所述補丁函數指針不為空,則執行該補丁函數指針所指向的補丁代碼;如智能卡平臺系統軟件運行時檢測到所述補丁函數指針為空,則執行原函數代碼。

14.  一種實現智能卡軟件補丁的系統,該系統包括:
應用程序創建模塊,用于應用軟件中需要考慮產品適應性的功能模塊采用服務端應用程序實現,應用軟件的主框架模塊采用客戶端應用程序實現;客戶端應用程序通過服務端應用程序的應用標識AID獲得相應服務端應用程序的服務;
打補丁模塊,用于為不可刪除的服務端應用程序打補丁時,直接下載并安裝新的服務端應用程序,并為新下載的服務端應用程序創建新的AID;客戶端應用程序查找所述新的AID,通過所述新的AID獲得新下載的服務端應用程序的服務。

15.  如權利要求14所述的系統,其特征在于:
所述智能卡是Java卡。

16.  如權利要求15所述的系統,其特征在于:
打補丁模塊,還用于為可刪除的服務端應用程序打補丁時,刪除該服務端應用程序,重新下載新的服務端應用程序,并為新下載的服務端應用程序創建與被刪除的服務端應用程序相同的AID;客戶端應用程序通過原來的AID獲得新下載的服務端應用程序的服務。

17.  如權利要求15所述的系統,其特征在于:
所述AID包括版本號字段;
打補丁模塊,用于采用以下的方式為新下載的服務端應用程序創建新的AID:為新下載的服務端應用程序創建的AID的版本號比原來的服務端應用 程序的AID的版本號高1號;
打補丁模塊,用于客戶端應用程序采用以下的方式查找所述新的AID:客戶端應用程序從預定義的最高版本號的AID向低版本號的AID遍歷,如找到一個版本號比當前需要打補丁的服務端應用小程序的版本號高的服務端應用小程序,則該新找到的服務端應用小程序的AID是新的AID。

18.  如權利要求15所述的系統,其特征在于:
應用程序創建模塊,用于客戶端應用程序通過服務端應用程序的AID獲得相應服務端應用程序的服務,包括:
客戶端應用程序調用Java卡標準API方法,通過指定服務端應用程序的AID和相應參數獲得該服務端應用程序提供的共享接口,使用該共享接口中的方法,獲得該服務端應用程序提供的服務。

說明書

說明書一種為智能卡打補丁的方法和系統
技術領域
本發明涉及智能卡領域,尤其涉及的是一種為智能卡打補丁的方法和系統。
背景技術
智能卡產品的生產模式決定了一次投片常常是生產成千上萬個的智能卡芯片。在智能卡生產過程中會將很多軟件代碼,包括平臺系統軟件代碼和部分應用軟件代碼,固化在智能卡的ROM中。由于ROM中的內容在卡生產完成后不能夠再被修改,因此固化在ROM中的軟件要盡量考慮周全各種用戶需求,功能實現正確,通過必要的測試。但在實際的智能卡產品市場應用過程里,智能卡里的軟件即使有充分的測試,還是有可能存在某些考慮不到的缺陷,另外,用戶需求往往有不可預測的變化。若不能適應這些產品化要求,就可能造成大量已經生產的智能卡(Java卡)不能再投入市場,賣給用戶,會給智能卡產品提供廠商造成相應的經濟損失。
對于后下載到智能卡的可擦寫存儲器中的應用軟件,如果需要更新,從技術上來講,遵照Java Card規范是可以將該應用軟件從卡上刪除,再下載完善后的新應用軟件到卡上的。但是,這種重新下載的方式具有下述缺陷:1)在刪除原應用軟件時會同時刪除該應用軟件所屬的數據,造成用戶使用過程中的數據丟失。2)即使對應用軟件很少的改動也需要較多的操作過程,包括刪除原來的應用軟件,重新下載新應用軟件,進行應用軟件的實例化、預個人化和個人化操作等,這就需要很長的維護時間。3)有些應用的數據可能出于安全的原因只能夠被初始化一次,否則卡片就要作廢。
因此,需要一種便捷、高效的方法解決智能卡產品化過程中的適應性需求,實現智能卡軟件的功能擴展和功能修改。
發明內容
本發明所要解決的技術問題是提供一種為智能卡打補丁的方法和系統,能夠便捷、高效地實現智能卡軟件的產品適應性修改。
為了解決上述技術問題,本發明提供了一種實現智能卡軟件補丁的方法,該方法包括:
在智能卡平臺系統軟件中預留補丁代碼調用接口,在智能卡上的可擦寫存儲空間內預留補丁代碼運行空間;
將補丁代碼下載到預留的可擦寫存儲空間內,向所述補丁代碼調用接口返回所述補丁代碼運行的入口地址;
如所述智能卡平臺系統軟件檢測到所述補丁代碼調用接口包含補丁代碼運行的入口地址,則通過該補丁代碼調用接口運行該補丁代碼。
進一步地,該方法還包括下述特點:
所述智能卡是Java卡。
進一步地,該方法還包括下述特點:
在智能卡平臺系統軟件中預留補丁代碼調用接口,包括:在智能卡平臺系統軟件的以下一種或多種處理流程中預留補丁代碼調用接口:a)中斷處理流程;b)設備驅動處理流程;c)命令分發處理流程。
進一步地,該方法還包括下述特點:
在智能卡平臺系統軟件中預留補丁代碼調用接口,包括:
在智能卡平臺系統軟件中定義補丁函數指針,在系統初始化時設置此函數指針為空;
將補丁代碼下載到預留的可擦寫存儲空間內,向所述補丁代碼調用接口返回所述補丁代碼運行的入口地址,包括:
將補丁代碼下載到預留的可擦寫存儲空間,將所述補丁函數指針賦值為所述補丁代碼運行的入口地址;
如所述智能卡平臺系統軟件檢測到所述補丁代碼調用接口包含補丁代碼運行的入口地址,則通過該補丁代碼調用接口運行該補丁代碼,包括:
如智能卡平臺系統軟件運行時檢測到所述補丁函數指針不為空,則執行該補丁函數指針所指向的補丁代碼;如智能卡平臺系統軟件運行時檢測到所述補丁函數指針為空,則執行原函數代碼。
為了解決上述技術問題,本發明還提供了一種實現智能卡軟件補丁的方法,該方法包括:
應用軟件中需要考慮產品適應性的功能模塊采用服務端應用程序實現,應用軟件的主框架模塊采用客戶端應用程序實現;客戶端應用程序通過服務端應用程序的應用標識AID獲得相應服務端應用程序的服務;
為不可刪除的服務端應用程序打補丁時,直接下載并安裝新的服務端應用程序,并為新下載的服務端應用程序創建新的AID;客戶端應用程序查找所述新的AID,通過所述新的AID獲得新下載的服務端應用程序的服務。
進一步地,該方法還包括下述特點:
所述智能卡是Java卡。
進一步地,該方法還包括下述特點:
為可刪除的服務端應用程序打補丁時,刪除該服務端應用程序,重新下載新的服務端應用程序,并為新下載的服務端應用程序創建與被刪除的服務端應用程序相同的AID;客戶端應用程序通過原來的AID獲得新下載的服務端應用程序的服務。
進一步地,該方法還包括下述特點:
所述AID包括版本號字段;
所述為新下載的服務端應用程序創建新的AID,包括:為新下載的服務端應用程序創建的AID的版本號比原來的服務端應用程序的AID的版本號高1號;
客戶端應用程序查找所述新的AID,包括:
客戶端應用程序從預定義的最高版本號的AID向低版本號的AID遍歷,如找到一個版本號比當前需要打補丁的服務端應用小程序的版本號高的服務端應用小程序,則該新找到的服務端應用小程序的AID是新的AID。
進一步地,該方法還包括下述特點:
客戶端應用程序通過服務端應用程序的AID獲得相應服務端應用程序的服務,包括:
客戶端應用程序調用Java卡標準API方法,通過指定服務端應用程序的AID和相應參數獲得該服務端應用程序提供的共享接口,使用該共享接口中的方法,獲得該服務端應用程序提供的服務。
為了解決上述技術問題,本發明還提供了一種實現智能卡軟件補丁的系統,該系統包括:
預處理模塊,用于在智能卡平臺系統軟件中預留補丁代碼調用接口,在智能卡上的可擦寫存儲空間內預留補丁代碼運行空間;
下載模塊,用于將補丁代碼下載到預留的可擦寫存儲空間內,向所述補丁代碼調用接口返回所述補丁代碼運行的入口地址;
打補丁模塊,用于如所述智能卡平臺系統軟件檢測到所述補丁代碼調用接口包含補丁代碼運行的入口地址,則通過該補丁代碼調用接口運行該補丁代碼。
進一步地,該系統還包括下述特點:
所述智能卡是Java卡。
進一步地,該系統還包括下述特點:
預處理模塊,用于通過以下方式在智能卡平臺系統軟件中預留補丁代碼調用接口:
在智能卡平臺系統軟件的以下一種或多種處理流程中預留補丁代碼調用接口:a)中斷處理流程;b)設備驅動處理流程;c)命令分發處理流程。
進一步地,該系統還包括下述特點:
預處理模塊,用于通過以下方式在智能卡平臺系統軟件中預留補丁代碼調用接口:在智能卡平臺系統軟件中定義補丁函數指針,在系統初始化時設置此函數指針為空;
下載模塊,用于通過以下方式將補丁代碼下載到預留的可擦寫存儲空間 內,向所述補丁代碼調用接口返回所述補丁代碼運行的入口地址:將補丁代碼下載到預留的可擦寫存儲空間,將所述補丁函數指針賦值為所述補丁代碼運行的入口地址;
打補丁模塊,用于如所述智能卡平臺系統軟件檢測到所述補丁代碼調用接口包含補丁代碼運行的入口地址,則通過該補丁代碼調用接口運行該補丁代碼,包括:如智能卡平臺系統軟件運行時檢測到所述補丁函數指針不為空,則執行該補丁函數指針所指向的補丁代碼;如智能卡平臺系統軟件運行時檢測到所述補丁函數指針為空,則執行原函數代碼。
為了解決上述技術問題,本發明還提供了一種實現智能卡軟件補丁的系統,該系統包括:
應用程序創建模塊,用于應用軟件中需要考慮產品適應性的功能模塊采用服務端應用程序實現,應用軟件的主框架模塊采用客戶端應用程序實現;客戶端應用程序通過服務端應用程序的應用標識AID獲得相應服務端應用程序的服務;
打補丁模塊,用于為不可刪除的服務端應用程序打補丁時,直接下載并安裝新的服務端應用程序,并為新下載的服務端應用程序創建新的AID;客戶端應用程序查找所述新的AID,通過所述新的AID獲得新下載的服務端應用程序的服務。
進一步地,該系統還包括下述特點:
所述智能卡是Java卡。
進一步地,該系統還包括下述特點:
打補丁模塊,還用于為可刪除的服務端應用程序打補丁時,刪除該服務端應用程序,重新下載新的服務端應用程序,并為新下載的服務端應用程序創建與被刪除的服務端應用程序相同的AID;客戶端應用程序通過原來的AID獲得新下載的服務端應用程序的服務。
進一步地,該系統還包括下述特點:
所述AID包括版本號字段;
打補丁模塊,用于采用以下的方式為新下載的服務端應用程序創建新的 AID:為新下載的服務端應用程序創建的AID的版本號比原來的服務端應用程序的AID的版本號高1號;
打補丁模塊,用于客戶端應用程序采用以下的方式查找所述新的AID:客戶端應用程序從預定義的最高版本號的AID向低版本號的AID遍歷,如找到一個版本號比當前需要打補丁的服務端應用小程序的版本號高的服務端應用小程序,則該新找到的服務端應用小程序的AID是新的AID。
進一步地,該系統還包括下述特點:
應用程序創建模塊,用于客戶端應用程序通過服務端應用程序的AID獲得相應服務端應用程序的服務,包括:
客戶端應用程序調用Java卡標準API方法,通過指定服務端應用程序的AID和相應參數獲得該服務端應用程序提供的共享接口,使用該共享接口中的方法,獲得該服務端應用程序提供的服務。
與現有技術相比,本發明提供的一種為智能卡打補丁的方法和系統,針對智能卡平臺系統軟件,通過將補丁代碼下載到智能卡的可擦寫永久存儲區,按需調用補丁代碼的函數,能夠便捷、高效地實現智能卡平臺軟件的適應性修改;針對應用軟件,應用軟件中需要考慮產品適應性的功能模塊以服務端應用程序實現,應用軟件中的主框架模塊以客戶端應用程序實現,客戶端應用程序通過服務端應用程序的AID獲得相應服務,完成打補丁,從而便捷、高效地實現智能卡應用軟件的適應性修改。
附圖說明
圖1為本發明實施例的一種為智能卡打補丁的方法(對平臺系統軟件打補丁)的流程圖。
圖2為本發明實施例的另一種為智能卡打補丁的方法(對應用軟件打補丁)的流程圖。
圖3為本發明實施例的一種為智能卡打補丁的系統的結構示意圖(對平臺系統軟件打補丁)。
圖4為本發明實施例的一種為智能卡打補丁的系統的結構示意圖(對應 用軟件打補丁)。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚明白,下文中將結合附圖對本發明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
如圖1所示,本發明實施例提供了一種實現智能卡軟件補丁的方法,該方法包括:
S10,在智能卡平臺系統軟件中預留補丁代碼調用接口,在智能卡上的可擦寫存儲空間內預留補丁代碼運行空間;
S20,將補丁代碼下載到預留的可擦寫存儲空間內,向所述補丁代碼調用接口返回所述補丁代碼運行的入口地址;
S30,如所述智能卡平臺系統軟件檢測到所述補丁代碼調用接口包含補丁代碼運行的入口地址,則通過該補丁代碼調用接口運行該補丁代碼。
該方法還可以包括下述特點:
較佳地,在智能卡平臺系統軟件中預留補丁代碼調用接口,包括:在智能卡平臺系統軟件的以下一種或多種處理流程中預留補丁代碼調用接口:a)中斷處理流程;b)設備驅動處理流程;c)命令分發處理流程;
較佳地,在智能卡平臺系統軟件中預留補丁代碼調用接口,包括:對功能需求容易出現變化的處理流程、或者在產品化階段需要進行功能擴展的處理流程、或者容易出現功能缺陷的處理流程,為這些處理流程預留補丁代碼調用接口。
較佳地,所述智能卡是Java卡。
其中,Java卡平臺系統軟件一般采用C語言+匯編語言(ASM)實現。但是,如果所述Java卡平臺系統軟件中還具有采用Java語言實現的處理流程,則需要先通過虛擬機native方法將該處理流程轉換為用C語言實現,然后在其C語言實現中再采用上面的打補丁方法。
較佳地,將補丁代碼下載到預留的可擦寫存儲空間內之前,將所述補丁代碼編譯為智能卡平臺系統軟件的函數庫。具體地,如補丁程序的實現不依賴智能卡平臺系統軟件里的函數功能,則直接將所述補丁程序編譯成函數庫。如補丁程序實現需要調用智能卡平臺系統軟件里的函數功能,則在編譯補丁程序時,需要導入固化在智能卡ROM里智能卡平臺系統軟件相應的編譯信息(如函數地址、全局變量地址等)。
較佳地,將補丁代碼下載到預留的可擦寫存儲空間內,包括:智能卡平臺系統軟件接收到智能卡外部設備通過應用協議數據單元(application protocol data unit,APDU)命令發送過來的補丁代碼后,將所述補丁代碼下載到預留的可擦寫存儲空間內。
較佳地,所述可擦寫存儲空間為EEPROM。
較佳地,具體實現時,可以在智能卡平臺系統軟件中定義補丁函數指針,該補丁函數指針與需要打補丁的原函數具有相同的定義(也即,參數類型和返回值類型相同),在系統初始化時設置此函數指針為空。將補丁代碼下載到預留的可擦寫存儲空間,將所述補丁函數指針賦值為所述補丁代碼運行的入口地址。在智能卡平臺系統軟件運行時,增加對此補丁函數指針的判斷,如所述補丁函數指針為空(即不存在補丁函數),則仍然執行原函數代碼,如果所述補丁函數指針不為空(即存在補丁函數),則執行該補丁函數指針所指向的補丁代碼。
較佳地,如圖2所示,本發明實施例還提供了一種實現智能卡軟件補丁的方法,該方法包括:
S10,應用軟件中需要考慮產品適應性的功能模塊采用服務端應用程序實現,應用軟件的主框架模塊采用客戶端應用程序實現;客戶端應用程序通過服務端應用程序的應用標識AID獲得相應服務端應用程序的服務;
S20,為不可刪除的服務端應用程序打補丁時,直接下載并安裝新的服務端應用程序,并為新下載的服務端應用程序創建新的AID;客戶端應用程序查找所述新的AID,通過所述新的AID獲得新下載的服務端應用程序的服務;
該方法還可以包括下述特點:
其中,所述智能卡是Java卡。
較佳地,每一個應用程序應用程序具有唯一的應用標識(AID);其中,AID可以包括標識字段和版本號字段。同一個功能模塊的各應用程序的AID,其標識字段相同,版本號字段不同;不同功能模塊的應用程序的AID的標識字段不同。比如,服務端應用程序的AID定義規則如下:AID由10位組成,前9個字節為0x112233445566778899,最后1個字節表示版本號,版本號從0到15。
較佳地,客戶端應用程序通過服務端應用程序的AID獲得相應服務端應用程序的服務,包括:
客戶端應用程序調用Java卡標準應用程序接口API方法getAppletShareableInterfaceObject(AID serverAID,byte parameter),通過指定服務端應用程序的AID和相應參數獲得該服務端應用程序提供的共享接口,使用該共享接口中的方法,獲得該服務端應用程序提供的服務。
較佳地,步驟S20中,為可刪除的服務端應用程序打補丁時,刪除該服務端應用程序,重新下載新的服務端應用程序,并為新下載的服務端應用程序創建與被刪除的服務端應用程序相同的AID;客戶端應用程序通過原來的AID獲得新下載的服務端應用程序的服務。
較佳地,所述為新下載的服務端應用程序創建新的AID,包括:為新下載的服務端應用程序創建的AID的版本號比原來的服務端應用程序的AID的版本號高1號;
客戶端應用程序查找所述新的AID,包括:客戶端應用程序從預定義的最高版本號的AID向低版本號的AID遍歷,如找到一個版本號比當前需要打補丁的服務端應用小程序的版本號高的服務端應用小程序,則該新找到的服務端應用小程序的AID是新的AID。
如圖3所示,本發明實施例還提供了一種實現智能卡軟件補丁的系統,該系統包括:
預處理模塊,用于在智能卡平臺系統軟件中預留補丁代碼調用接口,在 智能卡上的可擦寫存儲空間內預留補丁代碼運行空間;
下載模塊,用于將補丁代碼下載到預留的可擦寫存儲空間內,向所述補丁代碼調用接口返回所述補丁代碼運行的入口地址;
打補丁模塊,用于如所述智能卡平臺系統軟件檢測到所述補丁代碼調用接口包含補丁代碼運行的入口地址,則通過該補丁代碼調用接口運行該補丁代碼。
該系統還可以包括下述特點:
其中,所述智能卡是Java卡。
較佳地,預處理模塊,用于通過以下方式在智能卡平臺系統軟件中預留補丁代碼調用接口:在智能卡平臺系統軟件的以下一種或多種處理流程中預留補丁代碼調用接口:a)中斷處理流程;b)設備驅動處理流程;c)命令分發處理流程。
較佳地,預處理模塊,用于通過以下方式在智能卡平臺系統軟件中預留補丁代碼調用接口:在智能卡平臺系統軟件中定義補丁函數指針,在系統初始化時設置此函數指針為空;
下載模塊,用于通過以下方式將補丁代碼下載到預留的可擦寫存儲空間內,向所述補丁代碼調用接口返回所述補丁代碼運行的入口地址:將補丁代碼下載到預留的可擦寫存儲空間,將所述補丁函數指針賦值為所述補丁代碼運行的入口地址;
打補丁模塊,用于如所述智能卡平臺系統軟件檢測到所述補丁代碼調用接口包含補丁代碼運行的入口地址,則通過該補丁代碼調用接口運行該補丁代碼,包括:如智能卡平臺系統軟件運行時檢測到所述補丁函數指針不為空,則執行該補丁函數指針所指向的補丁代碼;如智能卡平臺系統軟件運行時檢測到所述補丁函數指針為空,則執行原函數代碼。
如圖4所示,本發明實施例還提供了一種實現智能卡軟件補丁的系統,該系統包括:
應用程序創建模塊,用于應用軟件中需要考慮產品適應性的功能模塊采用服務端應用程序實現,應用軟件的主框架模塊采用客戶端應用程序實現; 客戶端應用程序通過服務端應用程序的應用標識AID獲得相應服務端應用程序的服務;
打補丁模塊,用于為不可刪除的服務端應用程序打補丁時,直接下載并安裝新的服務端應用程序,并為新下載的服務端應用程序創建新的AID;客戶端應用程序查找所述新的AID,通過所述新的AID獲得新下載的服務端應用程序的服務。
該系統還可以包括下述特點:
其中,所述智能卡是Java卡。
較佳地,打補丁模塊,還用于為可刪除的服務端應用程序打補丁時,刪除該服務端應用程序,重新下載新的服務端應用程序,并為新下載的服務端應用程序創建與被刪除的服務端應用程序相同的AID;客戶端應用程序通過原來的AID獲得新下載的服務端應用程序的服務。
較佳地,所述AID包括版本號字段;
打補丁模塊,用于采用以下的方式為新下載的服務端應用程序創建新的AID:為新下載的服務端應用程序創建的AID的版本號比原來的服務端應用程序的AID的版本號高1號;
打補丁模塊,用于客戶端應用程序采用以下的方式查找所述新的AID:客戶端應用程序從預定義的最高版本號的AID向低版本號的AID遍歷,如找到一個版本號比當前需要打補丁的服務端應用小程序的版本號高的服務端應用小程序,則該新找到的服務端應用小程序的AID是新的AID。
較佳地,應用程序創建模塊,用于客戶端應用程序通過服務端應用程序的AID獲得相應服務端應用程序的服務,包括:客戶端應用程序調用Java卡標準API方法getAppletShareableInterfaceObject(AID serverAID,byte parameter),通過指定服務端應用程序的AID和相應參數獲得該服務端應用程序提供的共享接口,使用該共享接口中的方法,獲得該服務端應用程序提供的服務。
上述實施例提供的一種為智能卡打補丁的方法和系統,針對智能卡平臺 系統軟件,通過將補丁代碼下載到智能卡的可擦寫永久存儲區,按需調用補丁代碼的函數,能夠便捷、高效地實現智能卡平臺軟件的適應性修改;針對應用軟件,應用軟件中需要考慮產品適應性的功能模塊以服務端應用程序實現,應用軟件中的主框架模塊以客戶端應用程序實現,客戶端應用程序通過服務端應用程序的AID獲得相應服務,完成打補丁,從而便捷、高效地實現智能卡應用軟件的適應性修改。
本領域普通技術人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關硬件完成,所述程序可以存儲于計算機可讀存儲介質中,如只讀存儲器、磁盤或光盤等。可選地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現,相應地,上述實施例中的各模塊/單元可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。本發明不限制于任何特定形式的硬件和軟件的結合。
需要說明的是,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明所附的權利要求的保護范圍。

關于本文
本文標題:一種為智能卡打補丁的方法和系統.pdf
鏈接地址:http://www.pqsozv.live/p-6180507.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
钻石光影