2014-12-01 3 views
4

Я новичок в NFC вещи, так что я проверил несколько телефонов с вызовом getTagId() метод в режиме HCE, и это результат:Получить статический NFC Tag Id с режимом HCE

device  | UID 
LG G2  | random 
LG G3  | static 
S4   | random 
HTC One Mini | static 
Xiaomi mi3 | static 

Мои вопросы:

  1. Почему некоторые телефоны имеют статический UID, а некоторые нет? Связан ли этот чипсет?
  2. Возможно ли получить фиксированный UID? Мне нужно, чтобы он аутентифицировал устройство.
  3. С другой стороны, я использую Kitkat CyanogenMod 11 на Xperia M, но мне не удалось использовать его для HCE, почему?

Любые документы, которые могут объяснить/поддержать ответ?

+0

Какой метод getTagId() вы используете? Не могли бы вы описать свою тестовую настройку? –

+0

Привет, Роланд, я использовал getTagId в onTagDiscovered (тег тега) на стороне читателя – SuSu

ответ

5

Почему некоторые телефоны имеют статический UID, а некоторые нет? Связан ли этот чипсет?

Это зависит от набора микросхем и реализации стека NFC. Насколько я знаю, существуют три разных сценария, используемые различными устройствами Android NFC:

  • Устройство имеет защищенный элемент и использует статический UID этого защищенного элемента.
  • Устройство генерирует новый случайный UID при каждом включении.
  • Устройство генерирует новый случайный UID при каждой активации внешним устройством считывания. То есть когда внешнее поле HF применяется к антенне NFC устройства Android.
  • Устройство не имеет защищенного элемента, но по-прежнему использует статический UID (обычно не уникальный), например. 0x01020304. [Спасибо Эрикм за указание на это.]

Можно ли получить фиксированный UID?

Как правило, вы не можете влиять на это. В частности, без изменения прошивки устройства Android (изменений в стек NFC) это определенно невозможно. См. this answer для способа установки значения UID для наборов микросхем Broadcom путем изменения библиотеки libnfc-nci.

Мне нужно его для аутентификации устройства.

Не делайте этого! См. this answer для получения дополнительной информации.

+1

Добавляем еще один сценарий здесь: У устройства нет защищенного элемента и использует статический UID, а именно 01020304. В основном используется Sony. – ErikM

+0

Ну, это не в моих руках, какой дизайн данный объект (офис, колледж и т. Д.) Использует для аутентификации. Если они используют систему исключительно на основе UID, все ответы, говорящие «не делайте этого», вообще не помогают. Я просто хочу знать, как эмулировать, а не как создать систему аутентификации. – TJJ

 Смежные вопросы

  • Нет связанных вопросов^_^