Android 手机无法使用“android.se.omapi.Reader.isSecureElementPresent()”找到自定义 SIM 卡
Posted
技术标签:
【中文标题】Android 手机无法使用“android.se.omapi.Reader.isSecureElementPresent()”找到自定义 SIM 卡【英文标题】:Android phone can not find a custom SIM card using "android.se.omapi.Reader.isSecureElementPresent()" 【发布时间】:2020-06-25 01:55:01 【问题描述】:我发布这个问题是因为我找不到合适的地方来提问。
我正在使用智能卡开发自定义安全元素。
我成功连接了SEService
,并使用seservice.getReaders()
获得了Reader
实例。
但是,当我调用reader.isSecureElementPresent()
时,它返回false
。
当我尝试使用普通 SIM 卡时,我可以找到安全元素,当我调用 reader.isSecureElementPresent()
时它返回 true
。
所以我推断手机无法识别我的自定义 SIM 卡,即native smartcard
。实际上,我的原生智能卡可以在普通读卡器上正常工作,并且该卡支持ISO/IEC 7816-4
接口和T=0 protocol
。
当我尝试使用Java Card
时,手机能够找到卡,并成功获取 ATR。
因此,手机无法识别native smartcard
,而是识别javacard
。
对于在 android 上通过isSecureElementPresent()
方法找到安全元素是否有特定要求?
我浏览了Open Mobile API 3.3,但没有足够的关于isSecureElementPresent()
方法的解释。
我认为手机找不到我的原生智能卡可能是因为它没有实现GlobalPlatform Card Specification
,因为Open Mobile API 3.3 是由GlobalPlatform
组织创建的。实际上,Java Card 支持GlobalPlatform Card Specification
。这就是我为什么这么认为的原因。
【问题讨论】:
【参考方案1】:这是一个有趣的问题,虽然我没有答案,但我可以指出一种方法来获取我已经使用过的一些信息。
2 次猜测:
您的 SE 没有 SIM 卡文件系统,无法识别为 UICC 缺少运营商特权小程序(GP 安全元素访问规则),可能需要它如果这没有帮助,这里是进一步研究的来源的链接:
http://aosp.opersys.com/xref/android-10.0.0_r39/xref/frameworks/base/core/java/android/se/omapi/Reader.java
http://aosp.opersys.com/xref/android-10.0.0_r39/xref/frameworks/base/core/java/android/se/omapi/ISecureElementReader.aidl
不幸的是,AIDL 是内部的。在这种情况下,我所做的是使用Magisk,然后使用edXposed 框架。后者允许拦截系统调用,例如用于记录目的。我写了一个sample project 来取消屏蔽无线电日志的响应 APDU。这可以用于此建议和下一个建议。
在较低级别,查看交换的 APDU 也应该很有帮助。这应该可以通过使用logcat -b radio *:V
查看无线电日志来实现
最后,SIM 卡追踪器也非常有用,可以查看手机如何与您的 SE 交互,例如请参阅 APDU。如果某些命令返回错误,则表明您已经找到了一个候选人。这应该让您可以完全控制比较接受的 UICC 和您的解决方案。
我已经成功使用了以前版本的SIMTrace,但在旧手机上。如果这不可用,请寻找替代品,或者您有一位可以将某些东西焊接在一起的工程师。
【讨论】:
感谢您的回答。我不知道 edXposed 有 SIM 卡追踪器!我会尝试这种方法来读取 SE 和 Phone 之间的 APDU。 edXposed 不是 SIM 卡追踪器。它是一个系统调用拦截器。后面的部分将讨论示踪剂。 啊我弄错了。所以 SIMTrace 是一个硬件设备,我可以用它物理地敲击 APDU。那么有没有办法使用edXposed拦截APDU? 它可能也适用于 edXPosed。我在答案中添加了一个链接。以上是关于Android 手机无法使用“android.se.omapi.Reader.isSecureElementPresent()”找到自定义 SIM 卡的主要内容,如果未能解决你的问题,请参考以下文章
appcan平台中使用百度地图,在android手机上百度地图无法手势缩放