2014-06-07 2 views
1

이 필드를 처음 접했을 때 Nexus S (CyanogenMod11 = Android Kitkat 4.4.2)가 나타납니다. 비접촉식 카드를 에뮬레이션하기 위해 HCE (Host-Based Card Emulation) 모드를 사용해야합니다.호스트 기반 카드 에뮬레이션, 모든 지침을 알려주십시오.

이 단계를 수행하기 위해 수행해야 할 단계 및 팁에 대한 안내가 있습니까? (시뮬레이트 된 보안 요소를 프로그램해야합니까?)

추신 : 다른 Android NfC 지원 전화에서 앱을 읽으므로 새 리더 모드를 사용해야합니다. NFC 판독기가 아닙니다.

감사합니다.

답변

2

CyanogenMod 11 이전에는 CyanogenMod가 자체 호스트 기반 카드 에뮬레이션 기능을 지원했습니다. android.nfc.tech.IsoPcdA 기술에 대해 foreground dispatch을 등록한 다음 IsoPcdA.transceive() 메서드를 사용하여 스마트 카드를 에뮬레이트 할 수 있습니다. 이 API를 사용하는 방법은 Nikolay Elenkov의 blog post을 참조하십시오.

그러나 CyanogenMod 11 source (specifically tht of the NFC service)을 탐색하면이 기능이 Android 4.4의 공식 HCE API를 사용하여 버전 11에서 삭제 된 것으로 보입니다.

공식 Android 4.4 HCE API를 사용하면 Android 서비스에서 비접촉식 스마트 카드 (ISO 14443-4 + ISO 7816-4 APDU)를 에뮬레이션 할 수 있습니다. 이 서비스는 애플리케이션에 대해 들어오는 모든 명령 APDU를 처리하고 적절한 응답 APDU를 생성합니다. HCE 서비스를 등록하는 방법에 대한 자세한 내용은 official API user guide을 참조하고 HCE 서비스에서 들어오는 명령 APDU를 처리하는 방법에 대해서는 this answer을 참조하십시오.

불행히도이 API는 하위 NFC 스택으로 libnfc-nxp를 사용하는 장치에서 사용할 수 없습니다 (CyanogenMod 11 소스 코드에서 routeAid() 및의 빈 구현 참조).

는 그래서 경우는 CM (11)와 넥서스 S에 호스트 기반 카드 에뮬레이션을 수행하지 수 현재의 것처럼 보인다,이를 요약합니다.

+0

자세한 답변을 주셔서 감사합니다. Nikolay Elenkov의 블로그에있는 의견을 토대로 그의 방법은 CM9/CM10이 설치된 Nexus S에서 작동합니다. 그리고 분명히 내 유일한 솔루션입니다. Nikolay Elenkov의 방법을 사용하여 NFC 리더 대신 다른 Android NFC 지원 장치 (예 : 새 리더 모드)를 사용할 수 있습니까? 다시 답장을 보내 주시면 감사하겠습니다.^_^ 및 –

+0

@rick_mo Nexus S에서 CM9 (사실 CM9.1 생각) 또는 CM10을 사용하는 경우 맞습니다. CyanogenMod HCE 확장을 사용할 수 있습니다. 다른 Android NFC 기기에서 액세스하는 경우 공식 Android HCE와 동일한 제한이 적용됩니다 (리더 모드 API를 사용하여 P2P 통신을 사용 중지해야 함). –

+0

죄송합니다. 이해가 잘 안되면 "다른 CM9.1/CM10 NFC 장치에서 읽는 것"을 할 수 없다는 뜻입니까? –

관련 문제