【问题标题】:Android O HIDL not availableAndroid O HIDL 不可用
【发布时间】:2018-04-01 15:14:32
【问题描述】:

我在使用 Android O HIDL 时遇到问题。失败日志显示它无法找到该服务。

不过我可以通过adb shell ps -A | grep fingerprint看到它

system       18758     1   17408   3276 pipe_wait  7c79e93e08 R android.hardware.biometrics.fingerprint@2.1-service`

谁能给我一个提示如何解决这个问题?我检查了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 android.hardware.biometrics.fingerprint@2.1::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 android.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprint in either framework or device manifest, using default transport.
08-21 06:00:35.866  1890  2264 E system_server: service android.hardware.biometrics.fingerprint@2.1::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 android-source android-hardware hal android-8.0-oreo


    【解决方案1】:

    我已成功在 HiKey 上执行的 Android 8.1 上运行我的指纹 HAL 96板修改后文件如下。

    首先,必须添加 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
     android.hardware.biometrics.fingerprint@2.1-service.rc to 
     system/vendor/etc/init
    +PRODUCT_PACKAGES += \
        +android.hardware.biometrics.fingerprint@2.1-service
        +# copy permission file of finger service
    +PRODUCT_COPY_FILES += \
        +frameworks/native/data/etc/android.hardware.fingerprint.xml:system/etc
        /permissions/android.hardware.fingerprint.xml
    

    最后,使用“adb shell”、“ps | grep finger”等终端命令检查finger服务是否已在Android系统中启动并运行。

    欢迎提出任何建议。

    【讨论】:

      【解决方案2】:

      我发现需要将代码添加到 manifest.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>
      

      【讨论】:

        猜你喜欢
        • 2022-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-16
        • 1970-01-01
        • 2018-01-22
        相关资源
        最近更新 更多