Я работаю с 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), или если мы просто не можем получить доступ к этой информации (так, отпечатки пальцев). заранее спасибо
Использование Android Hidden API для доступа к информации об отпечатках пальцев
Ответы (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