BREW Service: R-UIM&SIM -读书笔记

BREW对外提供了IRUIM接口用于提供RUIM服务

通过IRUIM接口:

1、可以检测RUIM 卡连接状态

2、获取卡的状态信息

3、更改和检测PIN码状态

4、更改和检测CHV(Card Holder Verification)

5、锁/解锁卡

IRUIM开放的接口:(AEERUIM.h)

 

基于RUIM设备介绍

在机卡一体系统中,使用ESN作为基站鉴权时CAVE算法(Cellular Authentication and Voice Encryption)的参数。而对于基于RUIM的设备,CAVE算法可以使用手机ESN或者RUIM ID。

RUIM卡的内容主要包含在三个文件中:

EF 6F38(ESN_ME):用于保存移动设备的ESN。移动设备在检测到新的R-UIM卡插入时将它的ESN发送到R-UIM卡的该文件中保存。

EF 6F31(UIM ID):保存R-UIM卡的ID。

EF 6F42(UIMID 指示器):用于指示CAVE算法中使用的是ESN_ME还是UIMID。值为0时表示使用ESN_ME,为1时使用UIMID进行CAVE算法。

虽然在BREW porting时有些鉴权需要使用UIMID,但是对于ESN关联的操作,必须使用ESN_ME。比如通过OEM_GetConfig()获取CFGI_DOWNLOAD时,或者通过OEM_GetConfigEx()获取AEE_DEVICEITEM_HWIDLIST时。

为了防止BREW应用的非法拷贝,BREW在下载应用的时候会对应用进行加密。一些设备特有的属性会用于加密该文件,比如HWID。BREW allows only valid and properly encrypted application devices。当应用被移动到另一个设备中或者这个设备的特性比如HWID在更换R-UIM卡后也改变了,那么这些应用会被标记为非法应用并从设备中自动删除。

BREW依赖于这样一个事实:当设备更换R-UIM卡后,该设备主要的HWID不会改变。而Subscriber ID(SID)在更换R-UIM卡后则允许改变。

在基于R-RUIM卡的设备中进行BREW Porting

在R-UIM based 设备中port BREW时,必须注意:

1、必须要包含OEMRUIM.c文件,所有在OEMRUIM.c文件中定义的函数必须支持。

2、必须支持所有address book函数。IAddrBook接口必须支持获取R-UIM卡中的addrbook。可以使用AEECLSID_ADDRBOOK_RUIM 。

3、在BREW 通过AEE_Init()初始化之后,当SID改变时,必须把这个新值通过IDOWNLOAD_SetSubscriberID()通知BREW。有可能在AEE_Init()初始化之后,R-UIM仍然没有完成初始化,那么这个设置SID的过程就需要等到R-UIM完全初始化之后。在SID改变后通知BREW非常重要,因为该信息还有其他的用途。一下代码必须在SID改变后调用以通知BREW:

4、通过OEM_GetConfig()获得的BREW 设置参数必须来自ME或者R-UIM。大多数参数来自ME,只有一下几个需要从R-UIM卡中获取:

CFGI_SUBSCRIBERID_LEN

CFGI_CARDIDp>

CFGI_CARDID_LEN

CFGI_GSM1X_IDENTITY_PARMS

CFGI_GSM1X_PRL

CFGI_GSM1X_RTRE_CONFIG

CFGI_GSM1X_SID_NID_PARAMS

CFGI_MOBILEINFO获取的AEEMobileInfo中的nCurrNAM、szMobileID

CFGI_DOWNLOAD获取的AEEDownloadInfo中的bAKey

 

5、确保DIF_SID_ENCODE没有设置。即当通过OEM_GetConfig()获取CFGI_DOWNLOAD时,必须确保

     AEEDownloadInfo机构中的wFlags没有设置为DIF_SID_ENCODE

 

6、确保通过OEM_GetConfig()获取CFGI_MOBILE_INFO时返回的ME ESN是正确的,通过OEM_GetConfigEx()获取AEE_DEVICEITEM_HWID时得到的HWID也是合法的

 

1、AEEMobileInfo结构中哦那个的dwESN必须是正确的ME ESN,并能唯一的标识该设备,如果没有分配ME ESN,则使用pESN

 

2、HWID必须保持固定,即使更换了R-UIM卡,HWID也不能改变。

 

3、HWID经常被开发者用于测试设备,所以必须允许开发者能获取设备的HWID

 

7、默认情况下,BREW允许运行没有签名的应用,即使在下载该应用的R-UIM卡更换后。

而经过签名的应用只能在其下载的设备中运行。如果要使所有的应用都只能在下载该应用的设备中运行,可以

在使用OEM_GetConfig()获取CFGI_DOWNLOAD时,设置AEEDownloadInfo结构的wFlags等于DIF_SID_VALIDATE_ALL。

设置该标识会导致R-UIM卡更换后,所有用该R-UIM下载的应用都不可用。

 

8、默认情况下,BREW只允许应用下载者删除其自己下载的应用。如果想要删除其他下载者(R-UIM)下载的应用,可以在OEM_GetConfig()获取的CFGI_DOWNLOAD的AEEDownloadInfo结构中设置wFlags等于DIF_RUIM_DEL_OVERRIDE

 

9、允许使用IAddrBook接口访问R-UIM卡中的电话本。BREW应用可以使用AEECLSID_ADDRBOOK_RUIM创建IAddrBook接口实例来访问R-UIM卡中的电话本。

 

10、提供访问移动台HWID的接口,这对于开发者创建基于HWID的测试签名很重要。

 

11、如果移动台的ESN无法分配给每台设备,必须保证通过AEEMobileInfo获取的dwESN成员在网络中是唯一的,强烈推荐使用pESN。

 

验证实现

可以使用以下方法验证是否成功porting BREW到基于R-UIM卡的设备上:

 

test1

1、下载签名和未签名的应用到R-UIM设备中。

2、更换设备的R-UIM卡。

应用应该保存完整并且没有被删除

 

如果设置了IDF_RUIM_DEL_OVERRIDE,则你可以删除应用,如果没有设置,则不能删除应用。

如果设置了IDF_SID_VALIDATE_ALL,你可以运行所有的应有,不管是签名的还是未签名的。如果没有设置,则只能运行未签名的应用。

nbsp;

test2

1、下载应用到R-UIM卡设备中。

2、更换R-UIM卡并重启设备

3、插入以前的R-UIM卡

此时,你可以运行和删除下载的BREW应用。

 

对于所有的中国联通手机,确保DIF_SID_VALIDATE_ALL和DIF_RUIM_DEL_OVERRIDE标识已设置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值