Android O HIDLに問題があります。失敗ログには、サービスが見つからないことが示されています。
しかし、私はそれをadb Shell ps -A | grep fingerprint
で見ることができます
system 18758 1 17408 3276 pipe_wait 7c79e93e08 R [email protected]`
誰かが私に問題を解決する方法のヒントを教えてもらえますか? https://source.Android.com/devices/architecture/hidl/ を確認しましたが、解決策を得ることができませんでした。
エラーログ:
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
以下のようにファイルを変更した後、Android 8.1でHiKey96ボードを実行して指紋HALを実行することに成功しました。
まず、HIDLを追加して、デバイスをベンダーとして宣言するように構成する必要があります。そうしないと、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>
次に、以下のファイルで定義した後、fingerサービスが開始されます。
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
最後に、「adbShell」や「ps | grep finger」などのターミナルコマンドを使用して、check fingerサービスが開始され、Androidシステムで実行されています。
どんな提案でも大歓迎です。
マニフェスト.xmlにコードを追加する必要があることがわかりました
(参照 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>