Использование Android Hidden API для доступа к информации об отпечатках пальцев

Я работаю с Android Hidden API для образовательного проекта в университете. В частности, я играюсь с аутентификацией по отпечатку пальца. Моя цель — взять объект Fingerprint из AuthenticationResult. AuthenticationResult имеет два геттера: getCryptoObject() и getFingerprint(). Последний скрыт (а еще класс Fingerprint имеет аннотацию @hide), поэтому я не могу его вызвать. Затем я нашел этот репозиторий (см. https://github.com/anggrayudi/android-hidden-api), поэтому я заменил android.jar на местоположение SDK. При этом я могу получить доступ к классу Fingerprint, а также вызвать getFingerprint(), но он возвращает null. Интересно, должно ли мое устройство иметь версию framework.jar с включенным скрытым API (то же самое, что я фактически использую для создания приложения в Android Studio), или если мы просто не можем получить доступ к этой информации (так, отпечатки пальцев). заранее спасибо


person Kurtis92    schedule 05.08.2017    source источник


Ответы (1)


Для устройства, сертифицированного GMS, вы не сможете получить доступ к отпечаткам пальцев на Android 6.0+.

См.: https://source.android.com/compatibility/7.1/android-7.1-cdd.pdf

Раздел: 7.3.10

Основные моменты:

  • ДОЛЖЕН иметь реализацию хранилища ключей с аппаратной поддержкой и выполнять сопоставление отпечатков пальцев в доверенной среде выполнения (TEE) или на микросхеме с безопасным каналом для TEE.
  • ДОЛЖНЫ быть все идентифицируемые данные отпечатков пальцев зашифрованы и криптографически аутентифицированы, чтобы их нельзя было получить, прочитать или изменить за пределами доверенной среды выполнения (TEE), как описано в рекомендациях по реализации на сайте Android Open Source Project.
  • НЕ ДОЛЖНЫ позволять сторонним приложениям различать отдельные отпечатки пальцев.
person Steve Miskovetz    schedule 08.08.2017