一種支持java卡補丁函數(shù)的智能卡的制作方法
【技術(shù)領域】
[0001]本發(fā)明涉及智能卡技術(shù)領域,特別是支持JAVA補丁函數(shù)的JAVA智能卡。
【背景技術(shù)】
[0002]隨著智能卡的普及,智能卡已經(jīng)廣泛應用于移動通信、電子商務、交通運輸、社保和金融等生活中的各個領域。
[0003]其中一種類型的智能卡為JAVA智能卡,參看圖1,它包括只讀存儲器1、非易失可擦除存儲器2和隨機存儲器3。只讀存儲器I中存儲JAVA卡操作系統(tǒng)11,還包括硬件功能單元12、JAVA卡虛擬機JCVM單元13、JAVA卡運行時環(huán)境JCRE單元14和JAVA卡系統(tǒng)API程序15。非易失性可擦除存儲器2存儲JAVA包表21、對象表22和對象數(shù)據(jù)23。
[0004]現(xiàn)有技術(shù)中,JAVA智能卡廠商先將操作系統(tǒng)文件代碼形成可執(zhí)行HEX文件。制造硬掩膜智能卡時,由半導體生產(chǎn)廠商將HEX文件掩膜形成在只讀存儲器I內(nèi),硬掩膜過程一般需要三個月的時間。制造軟掩膜智能卡時,智能卡廠商將HEX掩膜在非易失可擦除存儲器2中。掩膜完畢后,智能卡生產(chǎn)廠商再向隨機存儲器3和非易失可擦除存儲器2寫入變量數(shù)據(jù)和用戶的相關(guān)數(shù)據(jù)文件后即完成智能卡的制造。但是,掩膜在只讀存儲器I中的操作系統(tǒng)文件不能修改。一旦掩膜開始,即使智能卡生產(chǎn)廠商發(fā)現(xiàn)操作系統(tǒng)文件存在缺陷也不能修改,導致智能卡批量報廢,給智能卡生產(chǎn)廠商帶來巨大的損失。掩膜在非易失可擦除存儲器2中的操作系統(tǒng)雖然可以修改,但是重新軟掩膜操作系統(tǒng)同樣需要耗費較長的時間周期,大幅增加智能卡生產(chǎn)廠商的成本。
[0005]同時,現(xiàn)有技術(shù)中對于JAVA函數(shù)進行功能修正或升級處理,往往是將原有JAVA包刪除后重新下載整個新的包,此類方法將刪除包中已有的所有數(shù)據(jù),以及對應的APPLET的所有數(shù)據(jù)。這類方法的缺點是一方面重新下載整個包的時間往往較長,而與原有JAVA包的內(nèi)容并無多少差異;另一方面,與包相關(guān)的數(shù)據(jù)以及APPLET數(shù)據(jù)無法保留,有APPLET實例化的包在重新下載后還需要重新安裝應用,并對應用進行初始化與個人化,時間開銷也較大。
【發(fā)明內(nèi)容】
[0006]針對上述現(xiàn)有技術(shù)存在的不足,本發(fā)明的目的是提供一種支持JAVA卡補丁函數(shù)的智能卡。它可以支持JAVA智能卡掩膜之后進行功能修復或者升級處理,操作靈活簡單,具有占用空間小,運行速度快的特點。
[0007]為達到上述發(fā)明目的,本發(fā)明的技術(shù)方案以如下方式實現(xiàn):
一種支持JAVA卡補丁函數(shù)的智能卡,它包括只讀存儲器、非易失可擦除存儲器和隨機存儲器。所述只讀存儲器存儲JAVA卡操作系統(tǒng),只讀存儲器內(nèi)包括硬件功能單元、JAVA卡虛擬機JCVM單元、JAVA卡運行時環(huán)境JCRE單元和JAVA卡系統(tǒng)API程序。所述非易失性可擦除存儲器內(nèi)存儲JAVA包表、對象表和對象數(shù)據(jù)。所述隨機存儲器內(nèi)存儲變量數(shù)據(jù)。其結(jié)構(gòu)特點是,所述非易失可擦除存儲器中還包括JAVA補丁信息表和JAVA卡補丁數(shù)據(jù)。所述JAVA補丁信息表存儲JAVA函數(shù)補丁標記、JAVA函數(shù)補丁所屬包和JAVA函數(shù)補丁地址。JAVA卡系統(tǒng)API程序在執(zhí)行JAVA函數(shù)調(diào)用時通過JAVA補丁信息表轉(zhuǎn)至JAVA卡補丁數(shù)據(jù)的JAVA補丁函數(shù)。對于同一個包的JAVA補丁函數(shù)以另一個新的單獨的包的方式存儲在非易失可擦除存儲器中。
[0008]在上述智能卡中,所述非易失可擦除存儲器2采用電可擦可編程只讀存儲器EEPROM或者閃存。
[0009]本發(fā)明由于采用了上述結(jié)構(gòu),僅在執(zhí)行JAVA函數(shù)調(diào)用時查詢補丁函數(shù)的地址與補丁函數(shù)實現(xiàn)所屬的包,通過截獲函數(shù),并跳轉(zhuǎn)至補丁函數(shù)處繼續(xù)執(zhí)行,從而改變程序執(zhí)行順序,達到缺陷修復與升級的目的。同時,本發(fā)明在僅需下載補丁函數(shù),無需刪除原有包以及相關(guān)數(shù)據(jù)的情況下完成JAVA卡函數(shù)的功能修正或者升級處理,從而降低JAVA智能卡的生產(chǎn)成本。同現(xiàn)有技術(shù)相比,本發(fā)明結(jié)構(gòu)簡單,實現(xiàn)缺陷修復和功能升級不需要增加額外的代碼執(zhí)行時間開銷,具有結(jié)構(gòu)靈活、占用空間小、執(zhí)行速度快的特點。
[0010]下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步說明。
【附圖說明】
[0011]圖1為現(xiàn)有技術(shù)中JAVA智能卡的結(jié)構(gòu)TJK意圖;
圖2為本發(fā)明的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實施例中的缺陷修復流程圖;
圖4為本發(fā)明實施例中的正常功能函數(shù)調(diào)用示意圖;
圖5為本發(fā)明實施例中的補丁函數(shù)調(diào)用示意圖。
【具體實施方式】
[0012]參看圖2,本發(fā)明支持JAVA卡補丁函數(shù)的智能卡包括只讀存儲器1、非易失可擦除存儲器2和隨機存儲器3。只讀存儲器I存儲JAVA卡操作系統(tǒng)11。只讀存儲器I內(nèi)包括硬件功能單元12、JAVA卡虛擬機JCVM單元13、JAVA卡運行時環(huán)境JCRE單元14和JAVA卡系統(tǒng)API程序15。非易失性可擦除存儲器2內(nèi)存儲JAVA包表21、對象表22和對象數(shù)據(jù)23、JAVA補丁信息表24和JAVA卡補丁數(shù)據(jù)25。隨機存儲器3內(nèi)存儲變量數(shù)據(jù)。JAVA補丁信息表24存儲JAVA函數(shù)補丁標記、JAVA函數(shù)補丁所屬包和JAVA函數(shù)補丁地址。JAVA卡系統(tǒng)API程序15在執(zhí)行JAVA函數(shù)調(diào)用時通過查找JAVA補丁信息表24得到JAVA方法中對應的補丁方法地址與所屬包信息,然后將跳轉(zhuǎn)地址修正為補丁方法的地址,并更新其對應的包信息,之后繼續(xù)向下執(zhí)行。對于同一個包的JAVA補丁函數(shù)以另一個新的單獨的包的方式存儲在非易失可擦除存儲器2中。非易失可擦除存儲器2采用電可擦可編程只讀存儲器EEPROM或者其它的電子元件,如閃存等。
[0013]參看圖3,采用本發(fā)明執(zhí)行對智能卡缺陷修復的流程為:
1)首先確認需要修復的JAVA方法;
2)然后創(chuàng)建一個新的JAVA包,并在該包內(nèi)編寫補丁方法;
3)然后將該包下載至非易失可擦除存儲器2中;
4)再將補丁方法在包中偏移以及與對應被修正方法信息存儲在補丁信息表24中。
[0014]參見圖4,采用本發(fā)明執(zhí)行功能函數(shù)A調(diào)用功能函數(shù)C時,修復前的流程為: 1)查詢補丁信息表24,確認該函數(shù)沒有補丁函數(shù);
2)執(zhí)行功能函數(shù)C。
[0015]參見圖5,對功能函數(shù)C執(zhí)行補丁修復,修復后的流程為:
1)查詢補丁信息表24,確認該函數(shù)有補丁函數(shù);
2)跳轉(zhuǎn)至補丁數(shù)據(jù)25的補丁函數(shù);
3)執(zhí)行補丁函數(shù)。
[0016]以上所述,為本發(fā)明的一種【具體實施方式】。本發(fā)明的保護范圍并不局限于此,任何熟悉此技術(shù)領域的技術(shù)人員在本發(fā)明公開的技術(shù)范圍內(nèi),顯而易見得到的變換或者替換,都應該屬于本發(fā)明的保護范圍。
【主權(quán)項】
1.一種支持JAVA卡補丁函數(shù)的智能卡,它包括只讀存儲器(I)、非易失可擦除存儲器(2 )和隨機存儲器(3 );所述只讀存儲器(I)存儲JAVA卡操作系統(tǒng)(11),只讀存儲器(I)內(nèi)包括硬件功能單元(12)、JAVA卡虛擬機JCVM單元(13)、JAVA卡運行時環(huán)境JCRE單元(14)和JAVA卡系統(tǒng)API程序(15);所述非易失性可擦除存儲器(2)內(nèi)存儲JAVA包表(21)、對象表(22)和對象數(shù)據(jù)(23);所述隨機存儲器(3)內(nèi)存儲變量數(shù)據(jù);其特征在于,所述非易失可擦除存儲器(2)中還包括JAVA補丁信息表(24)和JAVA卡補丁數(shù)據(jù)(25),所述JAVA補丁信息表(24)存儲JAVA函數(shù)補丁標記、JAVA函數(shù)補丁所屬包和JAVA函數(shù)補丁地址JAVA卡系統(tǒng)API程序(15)在執(zhí)行JAVA函數(shù)調(diào)用時通過JAVA補丁信息表(24)轉(zhuǎn)至JAVA卡補丁數(shù)據(jù)(25)的JAVA補丁函數(shù),對于同一個包的JAVA補丁函數(shù)以另一個新的單獨的包的方式存儲在非易失可擦除存儲器(2)中。2.根據(jù)權(quán)利要求1所述的支持JAVA卡補丁函數(shù)的智能卡,其特征在于,所述非易失可擦除存儲器(2)采用電可擦可編程只讀存儲器EEPROM或者閃存。
【專利摘要】一種支持JAVA卡補丁函數(shù)的智能卡,涉及智能卡技術(shù)領域。本發(fā)明包括只讀存儲器、非易失可擦除存儲器和隨機存儲器。所述非易失性可擦除存儲器內(nèi)存儲JAVA包表、對象表、對象數(shù)據(jù)、JAVA補丁信息表和JAVA卡補丁數(shù)據(jù)。所述JAVA補丁信息表存儲JAVA函數(shù)補丁標記、JAVA函數(shù)補丁所屬包和JAVA函數(shù)補丁地址。JAVA卡系統(tǒng)API程序在執(zhí)行JAVA函數(shù)調(diào)用時通過JAVA補丁信息表轉(zhuǎn)至JAVA卡補丁數(shù)據(jù)的JAVA補丁函數(shù)。對于同一個包的JAVA補丁函數(shù)以另一個新的單獨的包的方式存儲在非易失可擦除存儲器中。同現(xiàn)有技術(shù)相比,本發(fā)明可以支持JAVA智能卡掩膜之后進行功能修復或者升級處理,操作靈活簡單,具有占用空間小,運行速度快的特點。
【IPC分類】G06F9/445, G06K19/067
【公開號】CN105631505
【申請?zhí)枴緾N201410620112
【發(fā)明人】張福璽, 吳杰, 路倩, 丁義民
【申請人】北京同方微電子有限公司
【公開日】2016年6月1日
【申請日】2014年11月7日