2017-08-22 45 views
5

Mam problem z Androidem HIDL. Dziennik awarii pokazuje, że nie może znaleźć usługi.Android O HIDL niedostępny

Jednak widzę go adb shell ps -A | grep fingerprint

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

Czy ktoś może dać mi wskazówkę, jak rozwiązać ten problem? Sprawdziłem https://source.android.com/devices/architecture/hidl/, ale nie mogłem uzyskać rozwiązania.

dziennika Błąd: (Ref. https://source.android.com/devices/architecture/vintf/objects)

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 

Odpowiedz

1

I okazało się, że muszę dodać kod do manifest.xml

<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

jakie udało się kolejny mój odcisk palca HAL na Androidzie 8.1 wykonujący na HiKey 96 po zmodyfikowanych plikach jak poniżej.

Po pierwsze, konieczne jest dodanie konfiguracji HIDL, aby zadeklarować urządzenie jako dostawcę lub aby uzyskać błąd VTS.

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> 

Po drugie, usługa finger zostanie uruchomiona po zdefiniowaniu jej w pliku poniżej.

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 

koniec sprawdź serwis palec został uruchomiony i działa w systemie Android za pomocą komend terminala takich jak „adb shell” i „ps | grep palca”.

Wszelkie sugestie są mile widziane.