当前位置: 首页 > news >正文

HAL服务整编错误处理

HAL服务整编错误处理

  • 1、HIDL HAL服务
  • 2、HIDL HAL服务集成
    • 1》manifest.xml 配置报错
    • 2》hidl服务未启动报错
    • 3》有rc启动文件,没有so库报错
    • 4》SELinux权限问题
    • 5》整编译还是没有集成 或 报错

1、HIDL HAL服务

请参考下面几篇:
简单HIDL HAL的实现
Android系统开发入门-11.添加hidl服务
HIDL实战笔记
Demo例子 Android 应用层 到 HAL 层

在这里插入图片描述

HAL 接口定义语言(简称 HIDL)是用于指定 HAL 和其用户之间的接口的一种接口描述语言 (IDL)。HIDL 允许指定类型和方法调用(会汇集到接口和软件包中)。从更广泛的意义上来说,HIDL 是指用于在可以独立编译的代码库之间进行通信的系统。从 Android 10 开始,HIDL 已废弃,Android 将在所有位置改用 AIDL。

2、HIDL HAL服务集成

1》manifest.xml 配置报错

hwservicemanager: getTransport: Cannot find entry 自定义服务@1.0::IFactory/default in either framework or device VINTF manifest.

自定义服务@1.0::IFactory_manifest.xml 文件放到目录:/vendor/etc/vintf/manifest

2》hidl服务未启动报错

10-10 10:43:56.138 348 348 I hwservicemanager: Since 自定义服务@1.0::IFactory/default is not registered, trying to start it as a lazy HAL.

rc启动文件放在 /vendor/etc/init/ 目录

3》有rc启动文件,没有so库报错

10-10 11:29:23.413 1 1 I init : starting service 自定义服务
10-10 11:29:23.447 4711 4711 F linker : CANNOT LINK EXECUTABLE “/vendor/bin/hw/自定义服务@1.0-service”: library “自定义服务@1.0.so” not found: needed by main executable
10-10 11:29:23.465 1 1 I init : Service '自定义服务 (pid 4711) exited with status 1
10-10 11:29:23.465 1 1 I init : Sending signal 9 to service 自定义服务 (pid 4711) process group…

vendor/lib64vendor/lib对应目录要有编译生成的自定义服务so库

4》SELinux权限问题

10-10 11:47:35.481 1 1 I init : Service '自定义服务 (pid 8881) exited with status 1
10-10 11:47:35.452 340 340 E SELinux : avc: denied { find } for interface=自定义服务::IFactory sid=u:r:hal_fingerprint_default:s0 pid=8881 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:自定义服务:s0 tclass=hwservice_manager permissive=0
10-10 11:47:35.500 1 1 I init : Sending signal 9 to service 自定义服务 (pid 8881) process group…
10-20 10:09:13.699 355 355 E SELinux : avc: denied { find } for interface=自定义服务::IFactory sid=u:r:hal_fingerprint_default:s0 pid=9438 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:自定义服务:s0 tclass=hwservice_manager permissive=0

可以关闭权限先测试:setenforce 0
selinux自动生成配置工具:项目中 external/selinux/python/audit2allow/audit2allow
audit2allow -i avcTest.txt > avc.te

5》整编译还是没有集成 或 报错

1、注意每个项目ap\bp仓编译不同的分支
2、注意平台编译校验,如高通 QIIFA cmd

相关文章:

  • 2023/10/29总结
  • C++使用栈实现简易计算器(支持括号)
  • 服务器操作系统有哪些
  • 小样本分割的新视角,Learning What Not to Segment【CVPR 2022】
  • LabVIEW开发双目立体系统猪重估算
  • 在RK3588Ubuntu中运行qtCreator报错
  • centos 7 kafka2.6单机安装及动态认证SASL SCRAM配置
  • react条件渲染
  • 如何将word格式的文档转换成markdown格式的文档
  • 如何理解AutoGPT
  • android 给view添加进出动画
  • 206. 反转链表、Leetcode的Python实现
  • 83. 删除排序链表中的重复元素、Leetcode的Python实现
  • nextcloud 安装配置教程
  • C#学习系列之密闭类、接口、结构和类
  • 【技术性】Search知识
  • 08.Android之View事件问题
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Java 多线程编程之:notify 和 wait 用法
  • JS变量作用域
  • Nacos系列:Nacos的Java SDK使用
  • Node 版本管理
  • 面试遇到的一些题
  • 新手搭建网站的主要流程
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • # C++之functional库用法整理
  • #《AI中文版》V3 第 1 章 概述
  • $(selector).each()和$.each()的区别
  • (2015)JS ES6 必知的十个 特性
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (附源码)springboot教学评价 毕业设计 641310
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (论文阅读40-45)图像描述1
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十五)使用Nexus创建Maven私服
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)JAVA中的堆栈
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net6使用Sejil可视化日志
  • .net通用权限框架B/S (三)--MODEL层(2)
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • [BUUCTF 2018]Online Tool(特详解)
  • [cocos creator]EditBox,editing-return事件,清空输入框
  • [CTF]2022美团CTF WEB WP
  • [Geek Challenge 2023] web题解
  • [JavaScript]_[初级]_[关于forin或for...in循环语句的用法]
  • [Linux]——彻底学通权限
  • [Loadrunner参数化]一个文件输两列参数的取值
  • [python] dict类型变量写在文件中
  • [sqlmap]学习笔记#1
  • [vim]Python编写插件学习笔记1 - 开始
  • [WebKit] JavaScriptCore解析--基础篇 (一)JSC与WebCore