wake-up-neo.net

Android O HIDL nicht verfügbar

Ich habe Probleme mit Android O HIDL. Das Fehlerprotokoll zeigt an, dass der Dienst nicht gefunden werden kann. 

Ich kann es jedoch durch adb Shell ps -A | grep fingerprint sehen

system       18758     1   17408   3276 pipe_wait  7c79e93e08 R [email protected]`

Könnte mir jemand einen Tipp geben, wie ich das Problem lösen kann? Ich habe https://source.Android.com/devices/architecture/hidl/ überprüft, konnte aber keine Lösung finden.

Fehlerprotokoll:

08-21 06:00:35.864  1890  2264 V FingerprintService: mDeamon was null, reconnect to fingerprint
08-21 06:00:35.864  1890  2264 I system_server: Looking for service [email protected]::IBiometricsFingerprint/default
08-21 06:00:35.864  2240  2240 D wpa_supplicant: nl80211: Set mode ifindex 24 iftype 2 (STATION)
08-21 06:00:35.866   566   566 W /system/bin/hwservicemanager: getTransportFromManifest: Cannot find entry [email protected]::IBiometricsFingerprint in either framework or device manifest, using default transport.
08-21 06:00:35.866  1890  2264 E system_server: service [email protected]::IBiometricsFingerprint declares transport method EMPTY but framework expects hwbinder.
08-21 06:00:35.867  1890  2264 E FingerprintService: Failed to get biometric interface
08-21 06:00:35.867  1890  2264 E FingerprintService: Android.os.RemoteException: HwBinder Error: (-2147483648)
08-21 06:00:35.867  1890  2264 E FingerprintService:    at Android.os.HwBinder.getService(Native Method)
08-21 06:00:35.867  1890  2264 E FingerprintService:    at Android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint.getService(IBiometricsFingerprint.Java:44)
08-21 06:00:35.867  1890  2264 E FingerprintService:    at com.Android.server.fingerprint.FingerprintService.getFingerprintDaemon(FingerprintService.Java:239)
08-21 06:00:35.867  1890  2264 E FingerprintService:    at com.Android.server.fingerprint.FingerprintService$FingerprintServiceWrapper.isHardwareDetected(FingerprintService.Java:1198)
08-21 06:00:35.867  1890  2264 E FingerprintService:    at Android.hardware.fingerprint.IFingerprintService$Stub.onTransact(IFingerprintService.Java:156)
08-21 06:00:35.867  1890  2264 E FingerprintService:    at Android.os.Binder.execTransact(Binder.Java:674)
08-21 06:00:35.867  1890  2264 W FingerprintService: fingerprint HIDL not available
6
Jack Fan

Es ist mir gelungen, meinen Fingerabdruck-HAL auf Android 8.1 auszuführen, der auf dem HiKey 96-Board nach den modifizierten Dateien wie unten ausgeführt wird.

Erstens ist es notwendig, dass Sie HIDL-Konfigurationen hinzufügen, um ein Gerät als Anbieter zu deklarieren. Andernfalls würde VTS fehlschlagen.

About HIDL configures
device/linaro/hikey/manifest.xml
+<hal format="hidl">
    <name>Android.hardware.biometrics.fingerprint</name>
    <transport>hwbinder</transport>
    <version>2.1</version>
    <interface>
        <name>IBiometricsFingerprint</name>
        <instance>default</instance>
    </interface>
</hal>

Zweitens wird der Fingerservice gestartet, nachdem Sie ihn in der folgenden Datei definiert haben.

device/linaro/hikey/device-common.mk
+#init finger service and copy
 [email protected] to 
 system/vendor/etc/init
+PRODUCT_PACKAGES += \
    [email protected]
    +# copy permission file of finger service
+PRODUCT_COPY_FILES += \
    +frameworks/native/data/etc/Android.hardware.fingerprint.xml:system/etc
    /permissions/Android.hardware.fingerprint.xml

Schließlich wurde der Check-Finger-Dienst gestartet und in Android-System ausgeführt, indem Terminalbefehle wie "adb Shell" und "ps | grep finger" verwendet werden.

Jeder Vorschlag ist willkommen.

2
牟家宏

Ich habe herausgefunden, dass ich den Code zur manifest.xml hinzufügen muss
(Ref. https://source.Android.com/devices/architecture/vintf/objects )

    <hal format="hidl">
        <name>Android.hardware.biometrics.fingerprint</name>
        <transport>hwbinder</transport>
        <impl level="generic"></impl>
        <version>2.1</version>
        <interface>
            <name>IBiometricsFingerprint</name>
            <instance>default</instance>
        </interface>
    </hal>
1
Jack Fan