【问题标题】:How to send APDU commands to UICC using telephony manager?如何使用电话管理器向 UICC 发送 APDU 命令?
【发布时间】:2018-04-11 12:57:32
【问题描述】:

我正在尝试使用电话管理器类与我的 java 卡小程序进行通信。有人可以帮我吗? 基本上我想建立一个连接,然后向 UICC 发送 APDU 命令,反之亦然,为此我需要执行以下步骤(如果我错了,请纠正我):

  1. 将 google SDK IccOpenLogicalChannelResponse 与 applet 应用程序 ID 结合使用
  2. 从 IccOpenLogicalChannelResponse 获取打开状态和逻辑通道
  3. 通过 iccTransmitApduLogicalChannel 发送 apdu 并获取字符串响应
  4. Android 应用销毁必须通过 iccCloseLogicalChannel 关闭频道

PS - 我成功实现了“Seek for android” - org.simalliance.openmobileapi 并且我的目标已经实现,但是继续为 API 级别超过 21 的 android 设备提供支持,我需要在其中实现 Telephony Manager 类安卓。

有人可以帮助我了解 Telephony Manager 功能的代码级用法吗: iccOpenLogicalChannel, iccCloseLogicalChannel, iccTransmitApduLogicalChannel, iccTransmitApduBasicChannel。

提前致谢!

【问题讨论】:

  • 您知道您的应用需要MODIFY_PHONE_STATE 权限或运营商权限吗?
  • 是的,因为我得到的异常是: java.lang.SecurityException: No Carrier Privilege 在我的代码中的这一行 IccOpenLogicalChannelResponse response = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE).iccOpenLogicalChannel(some byte[]);
  • 这就是为什么 TelephonyManager 很少用于现实世界的应用程序(用于与 UICC 通信)。
  • 除了 TelephonyManager 之外还有其他方法吗?
  • 要绕过 No Carrier Privilege 例外,您必须使用与卡相同的签名来签署您的应用程序。您可以使用 Android Studio 为您的应用签名。例如:developer.android.com/studio/publish/app-signing.html。原因是Android 5.1引入了Carrier Privileges (source.android.com/devices/tech/config/uicc)

标签: android android-studio javacard telephonymanager apdu


【解决方案1】:

这很棘手,但有可能。 要访问您的自定义 AID,首先您需要在 ARA-M(或 ARA-F)设置权限,您需要在其中提供您的应用签名(SHA1 20 字节)和目标自定义 AID(可选或 0xFFFFFFFFFFFF)。这样做,您的移动应用程序将获得运营商特权(),然后您就可以开始了。

所以,步骤:

  1. 在您的智能卡或 SIM 卡中,手动移植一个空白 ARA-M(在 github 中提供)
  2. 创建 Android 项目(不要更改密钥库,因为必须维护签名)。获取签名 (256B) 的 SHA 1 (20B)。放松,这个签名不依赖于代码大小,而是你的开发环境。因此,调试、发布和部署的证书和签名会有所不同。
  3. 阅读器发送原始 APDU 以设置规则(GlobalPlatform 设备技术设备 API 访问控制 V1.0 或更高版本),使用计算得出的 SHA。通常由 MNO 的 OTA 完成
  4. 现在您的应用将获得运营商特权,您可以将 APDU 发送到卡。

祝你好运。

【讨论】:

    猜你喜欢
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多