Android NFC Card Emulation 尝试模拟卡
Android NFC Card Emulation try to emulate a card
我正在尝试使用 NFC 来模拟卡片。
我期望的是,当我在 NFC reader 上传递 phone 时,reader 会读取数据(我以后会修改此数据)。
- 我正在使用这个示例项目:This sample project
- 我使用的是 Nexus 5。
- 我正在使用 ACS ACR128 reader:This reader
在 reader 上传递 phone,据我了解,入口点应该在 Java class CardService.java
。但是方法 processCommandApdu
从未被调用(我试图在那里插入一个断点,甚至是祝酒词,但该代码从未被调用)。
所以目前我无法理解的主要事情是:我做错了什么吗?这东西能做吗?
为了为传入的 APDU 命令调用方法 processCommandApdu()
,reader 需要先 select 您的应用程序。根据 ISO/IEC 8716-4:
使用 SELECT(通过 AID / DF 名称)命令完成选择
00 A4 04 00 <Lc> <AID> 00
其中 <Lc>
是 <AID>
的长度,<AID>
是为您的应用程序注册的应用程序标识符。
ISO/IEC8716-4 应用程序结构(即通过 SELECT(通过 AID)命令应用 select离子)是唯一的方法 Android 允许通过 HCE 与应用程序开始交互。因此,不可能 模拟使用不同机制的卡片(卡片应用程序)。 (至少在不修改 Android 系统本身的情况下;例如,通过自定义 ROM 或通过 Xposed。)
CardEmulation 示例应用程序的 AID 是通过示例项目中名为 res/xml/aid_list.xml
的文件注册的。在此文件中,您注册 AID 组,这些组又包含 AID 过滤器条目:
<aid-group android:description="@string/card_title" android:category="other">
<aid-filter android:name="F222222222"/>
</aid-group>
因此,示例应用程序中注册的默认 AID 是 F222222222
。因此,您可以使用以下 SELECT(字节 AID)命令来 select 应用程序:
00 A4 04 00 05 F2 22 22 22 22 00
我正在尝试使用 NFC 来模拟卡片。
我期望的是,当我在 NFC reader 上传递 phone 时,reader 会读取数据(我以后会修改此数据)。
- 我正在使用这个示例项目:This sample project
- 我使用的是 Nexus 5。
- 我正在使用 ACS ACR128 reader:This reader
在 reader 上传递 phone,据我了解,入口点应该在 Java class CardService.java
。但是方法 processCommandApdu
从未被调用(我试图在那里插入一个断点,甚至是祝酒词,但该代码从未被调用)。
所以目前我无法理解的主要事情是:我做错了什么吗?这东西能做吗?
为了为传入的 APDU 命令调用方法 processCommandApdu()
,reader 需要先 select 您的应用程序。根据 ISO/IEC 8716-4:
00 A4 04 00 <Lc> <AID> 00
其中 <Lc>
是 <AID>
的长度,<AID>
是为您的应用程序注册的应用程序标识符。
ISO/IEC8716-4 应用程序结构(即通过 SELECT(通过 AID)命令应用 select离子)是唯一的方法 Android 允许通过 HCE 与应用程序开始交互。因此,不可能 模拟使用不同机制的卡片(卡片应用程序)。 (至少在不修改 Android 系统本身的情况下;例如,通过自定义 ROM 或通过 Xposed。)
CardEmulation 示例应用程序的 AID 是通过示例项目中名为 res/xml/aid_list.xml
的文件注册的。在此文件中,您注册 AID 组,这些组又包含 AID 过滤器条目:
<aid-group android:description="@string/card_title" android:category="other">
<aid-filter android:name="F222222222"/>
</aid-group>
因此,示例应用程序中注册的默认 AID 是 F222222222
。因此,您可以使用以下 SELECT(字节 AID)命令来 select 应用程序:
00 A4 04 00 05 F2 22 22 22 22 00