Intereting Posts
Как выполнить тестирование класса, использующего HttpClient в Android, используя встроенную структуру? Служба Android не перезапускается в леденец Когда listview прокручивает это время, значение edittext задает значение по умолчанию Как использовать forked git project в Android Studio Любые предложения относительно небольшой ip-камеры или конвертера ip-видео? Android: Сколько памяти использует мое приложение? FirebaseInitProvider: инициализация FirebaseApp неудачна Как реализовать приложение Intro с анимацией совместного просмотра Как читать данные с USB-накопителя? Добавление эффекта пульсации в пользовательский CompoundButton Загрузить и установить apk из ссылки Лучший способ дождаться, когда retrofit2 закончит, прежде чем продолжить асинхронное Android: переопределение onPause и onResume – правильный путь Как ограничить EditText, чтобы принимать только буквенно-цифровые символы Запуск monkeyrunner без телефона, подключенного к ПК

Вопросы и ответы на мобильные вопросы для Android и Symbian NFC (FAQ)

Давайте поделимся общими идеями о разработке NFC, технологиях … Я тепло приветствую любые комментарии, которые у вас могут быть – либо об Android или Symbian SDK, либо о NFC в целом.

С моей точки зрения, общий вопрос заключается в том, что мы можем разработать, т.е. какие приложения мы можем вывести на рынок с помощью технологии NFC? И как мы, разработчики, зарабатываем деньги и выигрываем от NFC?

Я думаю, что есть ожидание, что NFC откроет дверь для множества услуг и возможностей для разработчиков, но это правда? Разница между NFC и другими беспроводными технологиями (BT, WiFi) заключается в том, что он уже поставляется с основными вариантами использования – оплата, транспортные билеты и ключи (доступ к зданию). Но для всех этих случаев использования вам нужен безопасный элемент, который

  • Либо контролируется производителем телефона, например Google – см. Google Кошелек, который использует исключительно встроенный NXP SecureMX на Nexus S (и это то, что может быть очень мало изменено, если мы не хотим нарушать безопасность),
  • Или доступны через UICC на SIM-карте (на Android и Symbian / и MeeGO / телефон); Здесь дело должно быть заключено с операторами.

Но имея 3 или 4 оператора в стране, насколько вероятно, будет для компании среднего размера, что они позволят запускать свои апплеты на SIM-картах? А как насчет более глобальных решений? Все вышеупомянутые услуги / случаи использования нуждаются в большой координации всех игроков и хорошо зарекомендовавшей себя экосистемы (банки, MNO, производители чипов NFC, производители телефонов, TSM …).

Они все еще являются вариантами для приложений p2p, чтения тегов, но многие функции уже встроены в телефон, поэтому это не похоже на goldmine …

Я думаю, что шансы могут быть больше, если телефон будет включать NFC-WI(S2C) – наличие этого интерфейса (указанного ECMA) и микро SD-карт с поддержкой NFC-WI (уже заданной ассоциацией SD-карт), возможно, позволит Покупая SD-карты с защищенными элементами для произвольной компании … Но это не на рынке, и в ближайшее время ничего не появится.

Каково ваше видение и опыт разработки NFC и мобильных телефонов?

    Чтобы быть немного более практичным, а не только теоретическим, я опубликовал некоторые исправления для разработчиков xda, чтобы включить режим эмуляции карты на уникальном телефоне Android, поддерживающем NFC (Nexus S). Вы и другие могут быть заинтересованы в том, чтобы играть в режиме эмуляции карты самостоятельно. Примите во внимание, что это только для экспериментальных целей.

    Они применимы к прядильным версиям 2.3.4_r1 источников AOSP. Они разрешают:

    • Включение режима эмуляции карты NFC на Nexus S. Этот режим всегда включен.
    • Отключение режима чтения, позволяя эмуляции карты работать только один.
    • Выбор внешнего защищенного элемента (в UICC) вместо встроенного (в чипе SmartMX).
    • Хотя это не связано, удаление ограничения времени на доступность Bluetooth.

    Что я узнал о эмуляции карт NFC на Android до сих пор:

    • Эмуляция карты по умолчанию отключена на изображениях на складе и требует модификации прошивки. Изменение системного приложения Nfc и системной библиотеки libnfc-nxp – это те места, на которые нужно смотреть.
    • Встроенный чип SmartMX внутри Nexus S представляет собой двойную смарт-карту. Программируемый (позволяющий устанавливать на нем картоны) и 4K Mifare.
    • Карта 4K Mifare имеет клавиши по умолчанию, поэтому ее можно записать / прочитать у внешнего считывателя.
    • Программируемая карта должна быть совместима с GP , но никто, кроме Google, не может ее использовать, поскольку ключи доступа не являются общедоступными.
    • Nexus S поддерживает SWP и позволяет работать с защищенным элементом, расположенным внутри UICC.
    • Приложения не могут напрямую обращаться к содержимому защищенных элементов . С одной стороны, встроенный SE недоступен, потому что мы не знаем ключей. С другой стороны, внешний элемент доступен снаружи с помощью SWP (который подключается к контроллеру NFC), но не внутренне, потому что AFAIK слот SIM не подключен другими средствами к контроллеру NFC. Это оставляет нам только один путь – процессор основной полосы. Однако прошивка BB проприетарно и контролируется производителями. Samsung не реализовала техническую спецификацию 3GPP TS 27.007 для взаимодействия с ней в своей прошивке BB.
    • Доступ OTA к внешнему SE должен быть возможен, это находится в руках MNO. Некоторые из них могут предлагать услуги TSM, чтобы разрешить сторонний доступ к SE внутри UICC.

    Кстати, упоминаемая вами технология (NFC-WI) уже используется в Nexus S для соединения контроллера NFC со встроенным защищенным элементом.

    Upate

    Подводя итог, я отвечаю на вопросы Стен:

    Так как область Mifare 4K имеет клавиши по умолчанию, любой, у кого есть внешний считыватель NFC, может менять ключи и надежно хранить там значения – это правильно? Вы попробовали? Это связано с любыми трудностями?

    Короткий ответ: да , я получил доступ к Mifare 4K от внешнего читателя. Мне также удалось изменить ключи по умолчанию. Трудности возникают из-за изменения источников системы и создания собственной прошивки.

    Является ли использование внешнего устройства NFC единственным способом доступа к пространству Mifare?

    Теоретически нет. Другой альтернативой будет отправка APDU на SIM-карту, содержащая команды Mifare для выполнения на плате Mifare.

    Может ли приложение, установленное на телефоне Android, считывать / записывать некоторые данные в Mifare 4K с использованием какого-либо API (через контроллер NFC и NFC-WI-путь)? Можете ли, например, искать помощь для андроида?

    Пока нет. Хотя вы изменяете источники AOSP с помощью патчей seek-for-android (я сделал это сам), ваше приложение просто рухнет с помощью запасных телефонов. Причина в том, что они не внедрили техническую спецификацию 3GPP TS 27.007 , которая позволяет прикладному процессору отправлять APDU непосредственно на SIM-карту (UICC).

    Однако впереди туннеля может быть некоторый свет, поскольку проект citizy во Франции уже использует безопасный элементный режим технологии NFC с телефонами Android, используя подход UICC для безопасного элемента. Фактически есть модифицированная модель Samsung Galaxy SII, и новый Acer Liquid Express также скоро будет доступен для интеграции в citizy. Эти телефоны обязаны иметь требуемую спецификацию TS 27.007, реализованную в прошивке своего основного процессора. Когда дело доходит до процессора приложений, я не знаю, взяли ли они SEEK-for-android из пути G & D или OpenNFC из Insecure. Будучи французом, я поставил бы олл-ин для последнего.

    Поэтому, чтобы продолжить обсуждение, я просто свожу его к следующему: микроконтроллер NXP SmartMX состоит из двух отдельных защищенных элементов. Первая из них программируется, запускает некоторую операционную систему (например, MULTOS или Sm @ rtCafe или другую) и виртуальную машину JavaCard, но она заблокирована, а ключи доступа к производству находятся только в руках Google или TSM. Здесь нет возможности установить приложение JavaCard для целей тестирования, так как невозможно разблокировать защищенный элемент для целей тестирования.

    Также нет способа использовать SIM-карту, потому что даже если это может быть технически возможно, для коммерческого приложения необходимо иметь дело с MNO. Давайте остановимся некоторое время с Mifare 4K, который, кажется, является самым перспективным:

    Так как область Mifare 4K имеет клавиши по умолчанию, любой, у кого есть внешний считыватель NFC, может менять ключи и надежно хранить там значения – это правильно? Вы попробовали? Это связано с любыми трудностями?

    Является ли использование внешнего устройства NFC единственным способом доступа к пространству Mifare? Может ли приложение, установленное на телефоне Android, считывать / записывать некоторые данные в Mifare 4K с использованием какого-либо API (через контроллер NFC и NFC-WI-путь)? Можете ли, например, искать помощь для андроида?

    Благодаря STeN