Android HCE с примером исходного кода безопасного элемента

Hy... Я пытаюсь найти исходный код, реализующий Android HCE с безопасным элементом. Я прочитал эти две статьи прямо здесь:

http://developer.android.com/samples/CardEmulation/index.html http://blog.opendatalab.de/hack/2013/11/07/android-host-card-emulation-with-acr122/

Но это просто показывает Android HCE без элемента безопасности. Я читал и другие блоги, но ни один из них не показывает мне пример исходного кода. Просто некоторые пояснения о безопасных элементах или что-то еще....

Может кто-то помочь мне с этим...?? Мне нужен пример исходного кода Android с включенным безопасным элементом... И оооо... Мне не нужны сторонние библиотеки, например, из проекта SEEK FOR ANDROID/SIM ALLIANCE или проекта usmile...

Заранее спасибо.... :-)


person Maryadi Poipo    schedule 25.02.2015    source источник


Ответы (1)


Ваш вопрос не имеет смысла. У вас не может быть 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
comment
Спасибо за ваш ответ, мистер Нильс, и я прошу прощения за неправильное понимание моего вопроса,... Ммм... на этой странице: developer.android.com/guide/topics/connectivity/nfc/hce.html, есть иллюстрация использования HCE с безопасным элементом (рис. 1) . Но когда я пытаюсь найти пример исходного кода для этой реализации, я не могу... Единственный исходный код, который я нашел, это просто HCE без реализации SE... :-) И на этом рисунке 1 я подумал, что есть API NFC, предоставленный Google для доступа/отправки любых данных,... - person Maryadi Poipo; 25.02.2015
comment
И большое спасибо за информацию о расположении nfc-extras. Я пытаюсь собрать ПЗУ для Android из исходного кода (хотя это все равно не удается ..: D), поэтому, возможно, я смогу узнать, что nfc-extras из этого дерева исходного кода Android... - person Maryadi Poipo; 25.02.2015
comment
@Poipo На этом рисунке показана эмуляция карты с использованием SE, а не эмуляция карты на основе хоста (большая разница!). - person Nils Pipenbrinck; 26.02.2015
comment
Ооооо.... Ммм... Моя задача - использовать Android в качестве тега (или HCE), который подключается к SE через контроллер NFC, как на этом сайте (developer.android.com/guide/topics/connectivity/nfc/hce.html), но проблема в том, что я не могу найти любой пример исходного кода..... Вы сказали, что эмуляция карты с использованием SE отличается от эмуляции HCE, я мало что знаю об этом, мне просто нужен пример исходного кода для эмуляции карты с использованием SE или эмуляции HCE с SE.. .. :-) Спасибо, мистер. Нильс... :-) - person Maryadi Poipo; 02.03.2015
comment
Вам нужно гораздо больше, чем просто пример исходного кода для эмуляции карты с использованием SE. Вы должны изучить огромный фреймворк, инструменты и рабочий процесс, как это сделать. Даже если бы у вас был исходный код, вы бы не знали, как скомпилировать этот исходный код в апплет, который можно установить в SE, не говоря уже о ключах для этого. - person Nils Pipenbrinck; 02.03.2015
comment
И это также важно: oracle.com/us /technologies/java/embedded/card/обзор/ - person Nils Pipenbrinck; 02.03.2015
comment
Iyapz, верно, мистер Нильс... Я прочитал много статей, в том числе из ETSI или ISO, о глобальной платформе, SEEK для Google и т.д.... Но это не исходный код... :-) - person Maryadi Poipo; 02.03.2015
comment
И оооо... Почти все документы просто рассказывают о спецификациях, правилах, использовании, функциях, недостатках, требованиях, методах и т.д.. Я не могу понять их все, не изучив исходный код напрямую... :- ) - person Maryadi Poipo; 02.03.2015
comment
Вам нужен пример кода: Вот: umer555. wordpress.com/2012/05/17/java-card-hello-world-applet Видите? Без понимания инфраструктуры это вам ничем не поможет. - person Nils Pipenbrinck; 02.03.2015
comment
Ммм... Кажется, я видел этот блог до мистера Нильса, но спасибо за ваше предложение... :-) - person Maryadi Poipo; 03.03.2015