Ваш вопрос не имеет смысла. У вас не может быть HCE (эмуляция карты на основе хоста) с использованием безопасного элемента. Единственная цель HCE заключается в том, что вам не нужно обращаться к защищенному элементу.
Что вам, вероятно, нужно, так это поместить приложение эмуляции карты в безопасный элемент.
Сначала плохие новости: вы, скорее всего, не сможете этого сделать, потому что вам нужно пройти аутентификацию с помощью безопасного элемента для установки любых приложений. Очень маловероятно, что вы когда-нибудь получите ключи.
Так или иначе:
Чтобы получить доступ к защищенному элементу, вы должны использовать закрытый API. Соответствующие файлы доступны в дереве исходного кода Android по адресу:
<android-sdk-base>frameworks/base/nfc-extras
Если повезет, вы можете получить доступ к классам, предоставленным с помощью отражения Java. Как только вы получите доступ к классам, вам понадобится экземпляр класса NfcExecutionEnvironment. Этот класс предоставляет функцию:
byte[] transceive(byte[] in)
Это канал связи с защитным элементом. Функция ожидает команды ISO7816-4, и вы можете ожидать, что она будет вести себя как смарт-карта JavaCard с расширениями NFC. Учитывая, что у вас есть ключи для аутентификации в SE, вы должны иметь возможность загружать и устанавливать обычные файлы JavaCard .cap непосредственно в SE.
Использование SEEK API, вероятно, проще и гибче, поскольку оно также позволяет устанавливать апплеты на карту NFC-SIM.
person
Nils Pipenbrinck
schedule
25.02.2015