问题标签 [open-mobile-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
185 浏览

android - 智能卡异常 内部传输执行

在我的 android 应用程序中,我使用了使用 OpenMobileAPI 的智能卡。

创建通道后,当我发送命令 APDU 时,经常会收到如下异常:

这个例外是什么意思?我应该怎么办?

0 投票
3 回答
2489 浏览

android - Android 与 SIM javacard 2.x 小程序交互

我开始了一个项目,我必须使用 APDU 接口或 OTA 接口发送命令,从我的 android 项目到手机 SIM 上的 JavaCard 小程序。我有 AID 和几个突击队员开始测试 Android 应用程序,但我不知道如何选择卡上的小程序,也不知道如何在 android 上发送命令。

通过搜索,我找到了这个Seek for Android。但是我读到我需要获取 Android 操作系统并使用此 api 构建它并将其推送到设备。这不会让我的应用程序无法在没有这个“自定义”Android 操作系统的设备上运行吗?

是否有任何 Android 或 java lib 允许我与小程序通信,允许我的应用程序可用而无需构建“被黑”的 Android 操作系统?还是我对 Seek for Android 的工作方式有误?

感谢您提供任何可能的帮助。在过去的 3 天里,我一直在为此烦恼。

0 投票
1 回答
2106 浏览

java - 使用 Samsung Galaxy S3 为 Android 设置 SEEK

这里有一些背景第一:

我正在尝试做一个概念验证的 Android 应用程序,它将检查我是否可以将一些 APDU 命令发送到 SIM 卡小程序并处理响应。

我使用SEEK for Android作为 Open Mobile API 的参考实现。

该应用程序应该可以在带有 Open Mobile API 的三星 Galaxy S3 智能手机上运行,​​如此所述。

我不允许使用自定义 ROM,也不允许对 Android 源代码进行任何修改。

到目前为止我做了什么:

  1. 我已经下载了带有 Open Mobile API 和 Open Mobile API 包的 Android API lvl 18。
  2. 我创建了一个示例应用程序,它应该尝试访问我的 SIM 卡上的小程序,如此所述。
  3. 单击按钮时,我收到 SecurityException

    /li>
  4. 我有 org.simalliance.openmobileapi.jar 作为依赖项:

  5. 我有权限:

    /li>
  6. 我在 SIM 卡上有 3 个小程序,我正在尝试调用 AID 下的那个F9 F4 0F 65 18 C9 54 1E CD AD

这是我正在使用的粗略代码模板:

我相信我的 SIM 卡上没有设置有关小程序访问的内容,但由于那部分不是我的域,我不知道该怎么做才能解决这个问题。

我在 Google Groups 上遇到过这个与我的困境相似的讨论,但我不知道如何解释它。

任何帮助表示赞赏!

0 投票
2 回答
746 浏览

android - Javacard 小程序 RPDU 从 seek-for-android 访问时不包含任何数据

我有一个复杂的 Javacard 小程序,它是针对普通智能卡(例如 NXP J3E145,T=1)开发和测试的。现在我必须在手机的 UICC 中使用它,并从我的 Android 应用程序中访问它。UICC 使用 T=0 协议。

当我从普通读卡器(Omnikey 5321)与 SIM 卡通信时,小程序工作正常。

但是,当我将它移到我的手机(Sony Xperia S)并通过 seek-for-android API 发送 APDU 时,一些 RPDU 不包含任何数据部分,只有状态字 0x9000 并且缺少数据部分!

这些 APDU 失败:

这些 APDU 没问题:

会不会是超时问题(处理时间总是<1s)?还是一些 T=0 的怪事?

我的 Android 应用程序代码非常简单:

打开移动 API,4.4.2 (19)。

任何帮助都会很好,我花了两天时间解决这个问题。请救救我。

沃伊塔

编辑 我的访问规则:

在上面的列表中,我只过滤了 APDU 规则(而 NFC 规则根本没有写下来)。

我的小程序有 AID F06D617073616D2E617070 我的颁发者安全域是 A0000000871002FF33FFFF8901010100。

我认为这些规则不会影响我的 APDU,没有带有标题和掩码的真正过滤器......

0 投票
0 回答
991 浏览

android - UICC 命令 SEND TERMINAL PROFILE 在通过 seek-for-android 使用时返回 6E00

我是SIM卡新手...

我开发了一个 JavaCard 小程序并尝试在 UICC 上运行它。我的小程序进行了一些重要的计算,例如椭圆曲线密码学、CMAC ......这就是为什么它的性能是一个关键问题。

我做了一点实验,发现在选择 USIM 并发送终端配置文件(所有字节 0xFF)后,我的小程序在普通智能卡读卡器中运行得更快。我承认我实际上不知道为什么会发生这种情况......

然后我尝试在智能手机中运行我的小程序。我通过 seek-for-android API 访问我的小程序。我认为插入 SIM 卡后,OS(Android)会自动完成 USIM 选择和发送终端配置文件。但是性能很差,似乎没有执行选择USIM和发送终端配置文件的“神奇程序”......所以我尝试通过seek-for-android API在智能卡读卡器上发送我自己的终端配置文件。USIM 选择以 0x9000 响应。然后我得到对 SEND TERMINAL PROFILE 命令的 0x6E00 响应,尽管这个 APDU 在普通的智能卡读卡器中工作正常。

你能解释一下吗,这是怎么回事?我应该在哪里寻找信息?

为什么此过程(USIM 和终端配置文件)会提高性能?

这是由我智能手机中的操作系统自动完成的吗?

如果没有,我可以以某种方式以编程方式提高我的小程序的性能吗?

为什么我通过 seek-for-android 收到对 SEND TERMINAL PROFILE 命令的 6E00 响应?

非常感谢!

0 投票
2 回答
927 浏览

java - 带有 NFC 的 GSM 手机 SIM 卡上的应用程序连接到 Android 应用程序

我们需要设计一个简单的应用程序,它必须驻留在带有 NFC 的 GSM 手机的 SIM 卡上,并且应该连接到 Android 手机应用程序。有没有人能提供这方面的链接?到目前为止,我们已经在 Android 上安装了应用程序,但我们需要连接到 SIM 卡或手机上的 NFC。我们应该怎么做?在此先感谢您的帮助。

0 投票
1 回答
695 浏览

android - Android手动安装OpenMobileApi

我正在开发一个应用程序OpenMobileApi,我在清单中添加了以下内容:

它在 GS3 上成功安装,但在 nexus 3 上不会,主要是因为required=true, 因为当我删除它时,它安装得很好。

现在我想知道我是否可以OpenMobileApi在nexus3上安装,我不想使用external JAR它,有没有办法可以做到这一点?

谢谢

0 投票
0 回答
223 浏览

android - 访问 Galaxy S3 中的安全元素

我有一部三星 Galaxy S3 手机。我想要实现的是,我想访问 Galaxy S3 内的 SIM 卡或安全元件。我在这里有几个问题:-

  1. 我们如何在商业 sim 卡上安装小程序?
  2. Galaxy s3 中的安全元件是否可以访问?

我提到的一些链接,没有真正的成功 https://code.google.com/p/seek-for-android/wiki/UsingSmartCardAPI http://www.usmile.at/blog/seek-galaxys3

Javacard 小程序 RPDU 从 seek-for-android 访问时不包含任何数据

@vojta 请帮忙

编辑:我已经解决了这个问题。它不能在商业 sim 上。但是您需要知道密钥的智能卡请回复,谢谢

0 投票
0 回答
55 浏览

android - OpenMobileAPI,GetData 命令返回显示的值,没有 PIN

seek-for-android用来连接SecureElementSIM card.

我可以使用Get Data命令获取数据,例如卡号、cvc、..,例如卡号如下1111 **** **** 1111 WITH THE ACTUAL * CHARS

现在我想得到完整的数字,所以我运行一个Verify Pin AND一个Get Data命令,数据正确显示,如1111 1111 1111 1111

问题:现在每次我尝试Get Data命令时,它都会返回一个清晰的(显示的)卡号,就像1111 1111 1111 1111即使我不发送Verify Pin命令一样,仅供参考,我在每个命令之后都会关闭通道,所以显然不是这样。

注意:当我发送不正确的 PIN 码时,它会开始向我返回隐藏的卡号

有什么建议么?谢谢你 !!

0 投票
0 回答
229 浏览

java - ICC 引脚加密 (VISA)

我正在通过 OpenMobileAPI 访问智能卡。

我使用GetProtectedData (80 D8 01 00 00)成功读取了 PAN(当然是隐藏值) ,通过获取模数 (80 CA DF 07 00) / exponent(80 CA DF 05 00)值,并创建公钥和很快。

现在我需要阅读visible data(完整的盘号、有效期……)。

我知道我需要做一个VerifyPasscode。我创建了public key模数/指数(与以前相同),并使用 RSA(7F + 引脚块 + 不可预测的数字 + 填充)对引脚数据进行加密,并使用VerifyPasscode 命令(00 20)发送它。但我得到的响应是(69 84:引用的数据被可逆地阻止(无效))。

所以我相信我的加密不正确。

有任何想法吗 ?

谢谢