Подтвердить что ты не робот

Как эмулировать nfc-тег на телефоне android

У меня есть Android-телефон (nexus s, sdk v15), который отправляет строку на плату разработки, работающую в режиме nfc-reader/writer-mode, с помощью эмуляции тегов. Я знаю, что это официально не поддерживается андроидом, поэтому я мог бы сделать это изначально, обратившись к драйверу напрямую (?).

Есть ли какой-нибудь пример, где кто-либо сделал это раньше или приложение, которое делает это (и предпочтительно является открытым исходным кодом?)

Я нашел кое-что в Google, где обычно рекомендуется не делать этого, или когда люди говорят о том, как это возможно, или о том, как они (в целом) это делали, но я не мог найти никакого кода или точный совет.

Я не хочу получать доступ к защищенному элементу или делать какие-либо материалы смарт-карты, которые должны быть одобрены поставщиком/поставщиком. Я просто хочу передать строку. Я также знаю, что это можно сделать с помощью api-методов android через p2p, но это плохо работает с доской, поэтому я даю этот подход попробовать.

4b9b3361

Ответ 1

Для устройства, работающего с пакетом KitKat 4.4

С Android KitKat 4.4 возможность использования телефона в качестве карты NFC встроена в операционную систему, поэтому вам больше не нужно полагаться на Cyanogenmod или пользовательский ПЗУ. Он не позволит телефону действовать как тег Mifare Classic как таковой, но у меня были отличные результаты, чтобы мой телефон общался с читателем ACR122, поэтому я бы определенно рекомендую этот вариант, если вы можете получить 4.4 на своем устройстве.

Если вы хотите запустить ниже 4.4 и готовы использовать Cyanogenmod

загрузите приложения на свое устройство и попросите их легко общаться с читателем через NFC, но вы должны работать Cyanogenmod, эта функция присутствует из CM 9.1.

Желание работать на Gingerbread (старый ответ)

Да, возможно, и там был патч для 2.3.4, чтобы включить его, я опубликую несколько ссылок для вас, чтобы прочитать.

Они требуют мигать 2.3.4 Gingerbread ROM на вашем устройстве вместе с некоторыми другими исправлениями, чтобы включить функции эмуляции карты, поэтому, если вы не хотите этого делать, тогда они не будут очень полезны, но насколько это возможно Я знаю, что это единственный способ заставить его работать. Я на самом деле не проверял это сам, но пользовательские комментарии подсказывают, что это работает.

Вот ссылка на блог, описывающий весь процесс: http://techshek4u.blogspot.co.uk/2012/01/applying-card-emulation-patch-to_03.html

Вот ссылка на исходное сообщение форума с патчем для 2.3.4, чтобы включить его:
http://forum.xda-developers.com/showthread.php?t=1281946

И ссылка на оригинальную дискуссию, в которой различные разработчики пытаются заставить ее работать, в зависимости от ваших технических знаний Android и NFC это может быть более или менее интересно: https://groups.google.com/forum/#!msg/android-developers/1fw1qfFqpGc/6dlzvTqExN4J

Внимание: согласно NFCGuy из его ответа "Не беспокойтесь о том, чтобы понизить ваш телефон до GB, если он запускает ICS. Вы не можете понизить прошивку NFC для совместимости с GB, поэтому NFC просто не будет работать, если вы начнете мигать ваше устройство с GB."

Ответ 2

Если вы запустили свое устройство, можно создать приложение, которое включает режим эмуляции карты. Это не слишком сложно, см., Например, fooobar.com/questions/438365/....

Однако эмуляция карты полностью обрабатывается Secure Element. Приложение не имеет доступа к передаваемым данным. Единственный способ получить контроль над этим - создать и установить апплет Java Card на Secure Element. Тем не менее, чтобы иметь возможность сделать это, вам необходимо получить доступ к секретным ключам аутентификации, которые известны только Google.

PS: Не беспокойтесь о понижении вашего телефона до ГБ, если он запускает ICS. Вы не можете понизить прошивку NFC для совместимости с GB, поэтому NFC просто не будет работать, если вы запустите устройство с помощью GB.