2017-08-22 31 views
5

Tôi gặp sự cố với Android O HIDL. Nhật ký thất bại cho thấy nó không thể tìm ra dịch vụ.Android O HIDL không khả dụng

Tuy nhiên tôi có thể thấy nó bằng cách adb shell ps -A | grep fingerprint

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

bất cứ ai có thể cho tôi một gợi ý làm thế nào để giải quyết vấn đề? Tôi đã kiểm tra https://source.android.com/devices/architecture/hidl/ nhưng không thể nhận được giải pháp.

Lỗi đăng nhập: (. 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 

Trả lời

1

tôi phát hiện ra rằng tôi cần phải thêm mã vào 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

tôi đã thành công trong việc điều hành của tôi dấu vân tay HAL trên Android 8.1 thực thi trên HiKey 96 bảng sau khi sửa đổi các tệp như dưới đây.

Thứ nhất, cần thêm cấu hình HIDL để khai báo thiết bị dưới dạng nhà cung cấp hoặc bạn sẽ bị VTS thất bại.

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> 

Thứ hai, dịch vụ ngón tay sẽ được bắt đầu sau khi bạn xác định nó trong tệp bên dưới.

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 

Cuối cùng, kiểm tra dịch vụ ngón tay đã được khởi động và chạy trong hệ thống Android bằng cách sử dụng lệnh đầu cuối như "adb shell" và "ps | grep finger".

Bất kỳ đề xuất nào đều được hoan nghênh.

Các vấn đề liên quan