Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 有人知道PERM-AR-DO的细节吗?_Android_Specifications_Access Control_Sim Card_Globalplatform - Fatal编程技术网

Android 有人知道PERM-AR-DO的细节吗?

Android 有人知道PERM-AR-DO的细节吗?,android,specifications,access-control,sim-card,globalplatform,Android,Specifications,Access Control,Sim Card,Globalplatform,根据, AR-DO(E3)被扩展为包括PERM-AR-DO(DB),它是一个8字节位的掩码,表示64个独立的权限 有人知道PERM-AR-DO的规格吗 GlobalPlatform安全元素访问控制规范版本1.0和1.1不包含它。对于访问规则数据对象AR-DO(0xE3),只定义了标记0xD0和0xD1。数据对象PERM-AR-DO(标记0xDB),就像在上定义的其他数据对象(带有SHA-256和PKG-REF-DO的DeviceAppID REF DO)一样,是GP Secure Element

根据,

AR-DO(E3)被扩展为包括PERM-AR-DO(DB),它是一个8字节位的掩码,表示64个独立的权限

有人知道PERM-AR-DO的规格吗


GlobalPlatform安全元素访问控制规范版本1.0和1.1不包含它。对于访问规则数据对象AR-DO(0xE3),只定义了标记0xD0和0xD1。

数据对象PERM-AR-DO(标记0xDB),就像在上定义的其他数据对象(带有SHA-256和PKG-REF-DO的DeviceAppID REF DO)一样,是GP Secure Element访问控制规范的谷歌特定扩展。因此,您在GP规范中找不到关于这些DOs的任何信息

您链接的页面实际上提供了常见问题部分中问题的答案:

我们假设我们可以授予对所有基于运营商的权限的访问权,或者拥有更细粒度的控制权。那么,如何定义位掩码和实际权限之间的映射?每个类一个权限?每个方法有一个权限?从长远来看,64个单独的权限足够吗?

答:这是为将来保留的,我们欢迎提出建议

因此,答案是对PERM-AR-DO的解释还没有定义。这也反映在解析访问规则的Android源代码中(在中):

此外,在类
AccessRule
中,除了字段
accessType
之外还有一条注释,指示该字段“当前未使用”:

公共长访问类型;//此位当前未使用,但保留供将来使用。

嗨,迈克尔,谢谢你的回答。我没有提到DeviceAppID REF DO与SHA-256和PKG-REF-DO,因为它们似乎是可选的,我将DeviceAppID REF DO与SHA-1一起使用(也不推荐使用),并省略了PKG-REF-DO。一个开放性问题:如果我正确解释Android源代码,PERM-AR-DO标签似乎是必须授予运营商特权的。因此,如果访问规则中没有此标记,则无法获得运营商权限。对吗?如果是这样的话,在访问规则文件(ARF)PKCS#15文件中是否有一个等价物被识别为这样的文件based@AndyNullcouchAndroid中当前的实现似乎授予访问权限,而不管是否存在PERM-AR-DO。关于PKCS#15 ARF:如果我正确解释了实现,那么目前没有ARF的等价物。对于所有证书条目,
accessType
字段仅设置为0。我在ARA-M中创建了此规则:E222(REF-AR-DO)E1 18(REF-DO)4F 00 C1 14 ABCD92CBB156B280FA4E1429A6ECEEB6E5C1BFE4 E3 06 D0 01 D10101但测试应用程序(CtsCarrierApiTestCases.apk)正在显示异常junit.framework.AssertionFailedError:此测试要求SIM卡上有运营商特权规则。Cert hash:61ed377e85d386a8dfee6b864bd85b0bfaa5af81Late,但是一些可能有用的信息:它对某些设备不起作用的原因是ARA-M小程序没有安装多选择,因为CarrierPrivileges试图在SmartcardService完成之前选择小程序。(由于更多的日志记录和不同的计时,这在调试高模式下没有发生)我还得到了一个解释,对于ARF,我的SIM卡不工作,因为Google使用AC Main的硬编码值,而不是使用ARF中提到的文件ID。
    } else if (rule.startsWith(TAG_AR_DO)) {
        TLV arDo = new TLV(TAG_AR_DO); //E3
        rule = arDo.parse(rule, false);
        // Skip unrelated rules.
        if (!arDo.value.startsWith(TAG_PERM_AR_DO)) {
            return null;
        }
        TLV permDo = new TLV(TAG_PERM_AR_DO); //DB
        permDo.parse(arDo.value, true);
    } else  {
    long accessType = 0;
    [...]
    AccessRule accessRule = new AccessRule(IccUtils.hexStringToBytes(certificateHash),
                                           packageName, accessType);
    public long accessType;   // This bit is not currently used, but reserved for future use.