Как я могу получить байтовые данные отпечатка пальца с помощью API Nougat?

Я хочу получить данные байта отпечатка пальца, используя Android 7 API. Для этого я следую этому руководству: Fingerprint Учебник по API

В этом уроке у меня есть инструкции по аутентификации пользователя с помощью отпечатка пальца с помощью API-интерфейса отпечатка пальца.

public void startListening(FingerprintManager.CryptoObject cryptoObject) {
        if (!isFingerprintAuthAvailable()) {
            return;
        }
        mCancellationSignal = new CancellationSignal();
        mSelfCancelled = false;
        mFingerprintManager
                .authenticate(cryptoObject, mCancellationSignal, 0 /* flags */, this, null);
        mIcon.setImageResource(R.drawable.ic_fp_40px);
    }


    public void stopListening() {
        if (mCancellationSignal != null) {
            mSelfCancelled = true;
            mCancellationSignal.cancel();
            mCancellationSignal = null;
        }
    }

Но мне не нужно аутентифицировать данные отпечатка пальца пользователя, использующего Android API. Мне нужны только данные байта отпечатка пальца, полученные из Android API. Как я могу это получить?


person A Stranger    schedule 09.04.2018    source источник


Ответы (1)


Текущие (и, вероятно, будущие) Android API будут разрешать только аутентификацию отпечатков пальцев и не будут иметь доступа к самим необработанным данным отпечатков пальцев. Это связано с тем, как Android обрабатывает данные отпечатков пальцев; он анализируется исключительно в Trusted Execution Environment (TEE). TEE содержит единственный ключ шифрования данных отпечатков пальцев, и он никогда не покидает TEE, поэтому, даже если вы сможете получить данные отпечатков пальцев, они будут зашифрованы.

Также важно отметить, что TEE аппаратно поддерживается либо с использованием выделенного оборудования, либо с помощью виртуализации на основном ЦП, поэтому даже рутирование вашего телефона не позволит вам получить доступ к данным.

Вы можете прочитать больше о TEE здесь

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

person aliaksei    schedule 09.04.2018
comment
Я интегрировал Secugen SDK. Но почему я не могу получить данные о пальцах с помощью Android API? - person A Stranger; 09.04.2018
comment
Вы не можете использовать Android API по всем причинам, указанным в первом абзаце моего ответа и связанной статье. - person aliaksei; 09.04.2018