自实现的 android.hardware.xxxx@1.0-service 没有开机自启动

问题描述

push android.hardware.xxxx@1.0-service/vednor/bin/hw;

push 'android.hardware.xxxx@1.0-service.rc' 到 /vendor/etc/init/;

reboot 设备后,xxx 服务没有自动启动。

经检查 rc 文件与同类 service 无差异。

问题分析

直接运行 xxx 服务正常。同时经检查 rc 文件与同类 service 无差异。

怀疑是权限问题。

使用 ls -al -Z 查看,rc 文件权限相同,但 xxxx 文件 SELinux 权限不同:

xml 复制代码
-rwxr-xr-x 1 root   shell  u:object_r:hal_mcucomm_default_exec:s0                   11648 2009-01-01 08:00 android.hardware.mcucomm@1.0-service
-rwxr-xr-x 1 root   shell  u:object_r:vendor_file:s0                                  82856 2024-08-02 16:25 android.hardware.xxxx@1.0-service
-rwxr-xr-x 1 root   shell  u:object_r:hal_settings_default_exec:s0                  29904 2009-01-01 08:00 android.hardware.settings@1.0-service

所以问题应该是 SELinux 权限不同导致。

问题解决

使用命令修改 xxxx 文件 SELinux 权限与同类一致即可。

复制代码
chcon u:object_r:hal_mcucomm_default_exec:s0 android.hardware.xxxx@1.0-service
相关推荐
逐光老顽童1 天前
Java 与 Kotlin 混合开发避坑指南:30 个真实案例实录
android·kotlin
爱勇宝2 天前
鸿蒙生态的下半场:开发者不只要能开发,还要能赚钱
android·前端·程序员
Yeyu2 天前
刷新一帧的艺术:invalidate / postInvalidate / postInvalidateOnAnimation全解析
android
潘潘潘2 天前
Android OTA 升级原理和流程介绍
android
plainGeekDev2 天前
null 判断 → Kotlin 可空类型
android·java·kotlin
plainGeekDev2 天前
getter/setter → Kotlin 属性
android·java·kotlin
YXL1111YXL2 天前
Handler 消息回收与协程异步执行的时序陷阱
android
恋猫de小郭2 天前
KMP / CMP 鸿蒙版本 Beta 发布,他有什么特别之处?
android·前端·flutter
三少爷的鞋2 天前
Android 协程并发控制:别动线程池,控制好并发语义就够了
android
weiggle3 天前
第七篇:状态提升与单向数据流——架构设计的核心
android