最近在搞Android11,拉起hal服务的时候报错了,一直崩。

首先,Android11不能使用直通式HAL的写法了,会报以下的错误:

LegacySupport: Could not get passthrough implementation for android.hardware.fingerprint@1.0::IFingerprint/default

改成Binderized HAL的写法就可以了。


另外还遇到一个指针报错,如下:

sp      : sp<> constructed with stack pointer argument

为什么会报这个错误呢??是因为Android11增加了一个针对sp的检查,具体看谷歌的一个patch:
Add check to sp<> raw pointer constructor

不能按照 Android8.1HAL层开发 这样写service.cpp文件了,要改成指针的写法,如下:

//service.cpp
#define LOG_TAG "android.hardware.fingerprint@1.0-service"#include <android-base/logging.h>
#include <hidl/HidlTransportSupport.h>
#include <android/hardware/fingerprint/1.0/IFingerprint.h>
#include <hidl/LegacySupport.h>#include "Fingerprint.h"using android::hardware::configureRpcThreadpool;
using android::hardware::joinRpcThreadpool;
using android::hardware::fingerprint::V1_0::implementation::Fingerprint;int main() {configureRpcThreadpool(4, true);//Fingerprint fingerprint;//auto status = fingerprint.registerAsService();// 不能像上面的注释这样写了,要按照如下写法,使用指针auto service = std::make_unique<Fingerprint>();auto status = service->registerAsService();CHECK_EQ(status, android::OK) << "Failed to register fingerprint HAL implementation";joinRpcThreadpool();return 0;  // joinRpcThreadpool shouldn't exit
}

以上。

Android11 HAL层开发相关推荐

  1. android系统开发(六)-HAL层开发基础

    Android HAL层,即硬件抽象层,是Google响应厂家"希望不公开源码"的要求推出的新概念 1,源代码和目标位置 源代码: /hardware/libhardware目录, ...

  2. s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(二 硬件抽象层HAL)

    欢迎转载,务必注明出处:http://blog.csdn.net/wang_shuai_ww/article/details/44305599 本篇文章记录硬件抽象层. 还是跟之前一样,主要参考< ...

  3. s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(一 硬件驱动层)

    欢迎转载,务必注明出处:http://blog.csdn.net/wang_shuai_ww/article/details/44303069 本文章是记录Android开发中驱动层.HAL层.应用层 ...

  4. Android 系统(4)---Android HAL层与Linux Kernel层驱动开发简介

    Android HAL层与Linux Kernel层驱动开发简介 近日稍微对Android中的驱动开发做了一些简要的了解,稍稍理清了一下Android驱动开发的套路,总结一下笔记. HAL:Hardw ...

  5. Android HAL层与Linux Kernel层驱动开发简介

    Android HAL层与Linux Kernel层驱动开发简介 阅读数:5070 近日稍微对Android中的驱动开发做了一些简要的了解,稍稍理清了一下Android驱动开发的套路,总结一下笔记. ...

  6. Android 底层驱动开发步骤——linux内核层、HAL层、JNI层

    1.Linux驱动实现 2.Linux内核驱动测试 3.Android HAL层实现 4.Aidl实现 5.Service java实现 6.Service jni 实现 7.注册service和jn ...

  7. s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(二 硬件抽象层HAL 第二种 ioctl操作方法)

    欢迎转载,务必注明出处:http://blog.csdn.net/wang_shuai_ww/article/details/44407641 本篇与http://blog.csdn.net/wang ...

  8. Android Hal层简要分析

    Android Hal层简要分析 Android Hal层(即 Hardware Abstraction Layer)是Google开发的Android系统里上层应用对底层硬件操作屏蔽的一个软件层次, ...

  9. android l camera no panorama,Android Camera从App层到framework层到HAL层的初始化过程

    Android camera 从上到下能够分为四个部分: Application层. framework层. HAL(hardware abstract layer)层. Kernel层 通常面向开发 ...

最新文章

  1. 【P2766】 最长不下降子序列问题
  2. 最常见的读入数据方法集锦
  3. python os rename用法_Python os.rename() 方法
  4. __init、__initdata和__exit、__exitdata
  5. Atitit 基于dom的游戏引擎
  6. win10怎么去掉计算机里百度云,主编教你win10系统清除百度云盘盘符的修复方法...
  7. Go基础-Go中的Println和Print和Printf之间的区别
  8. 如果想成为数据科学家,请学习这3种语言
  9. ssh日志审计_linux查看ssh用户登录日志与操作日志
  10. 家庭网关斐讯 K3 基础环境篇
  11. InputStream的available()方法(读文件)
  12. u盘文件删除如何恢复呢?
  13. 互联网人求职向传统行业倾斜;全国有两成开发者月薪超1.7万 | 美通企业日报...
  14. 1.大量数据导出Excel 之 多重影分身之术
  15. 读博后降维打击数学建模!
  16. 软件安全期末考试试题21SZ回忆版
  17. Java-MQTT客户端监控连接状态事件
  18. Drools7中的万能函数accumulate
  19. 笔记——setInterval()设置停止和循环
  20. 如何查看网页上的图片体积大小或容量大小?

热门文章

  1. Win32 Disk Imager Error 5: Access is Denied 解决方案
  2. 【转】编写高质量代码改善C#程序的157个建议——建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内...
  3. 目前梦幻山东区人最多的服务器,梦幻西游山东区各个服务器开的时间!
  4. log+android+bp,第二章:Android.bp语法
  5. 《自然语言处理入门》笔记
  6. urv中保研碰撞测试结果_经撞=安全?中保研碰撞测试结果告诉我们:不一定!|乜都知...
  7. 因该如何搭建自己的网校系统呢?
  8. 初试傲游浏览器/Maxthon3,4大惊喜,1点遗憾
  9. MySQL: 垂直分片
  10. Android 数据库知识回顾