gpt4 book ai didi

android - 无法在 init.rc 中启动时执行守护进程

转载 作者:太空宇宙 更新时间:2023-11-04 10:38:26 48 4
gpt4 key购买 nike

我已经创建了一个守护进程,但无法在运行 Marshmallow 的 Nexus 5 中运行它。

以下是在init.rc中编辑的代码

on init
chmod 777 /sbin/check_usb
chown root root /sbin/check_usb

service disableadb /sbin/check_usb
class main
seclabel u:r:disableadb:s0

以下是我在 init.usb.rc 中编辑的条目,这样当检测到 adb 连接时,我的守护进程将被执行

on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0
start disableadb

我已将我的 check_usb 程序插入到/sbin/system 下并授予 chmod 777 访问权限。

但是我注意到在 dmesg | grep disableadb 输出,我的守护进程无法执行,错误如下:

init : cannot setexeccon ('u:r:disableadb:s0') Invalid argument

最佳答案

此错误可能是由于 sepolicy 问题。您新添加的服务可能没有正确的 sepolicy 配置。

为此添加 sepolicy 规则。创建以下文件。

创建目录device/xxx/.../sepolicy/check_usb

在内部,创建文件 file_contexts

/sbin/check_usb             u:object_r:disableadb:s0

创建文件:check_usb.te

# check_usb service
type check_usb, domain;
type check_usb_exec, exec_type, file_type;

init_daemon_domain(check_usb)

allow init check_usb:process transition;

将此目录添加到您的 BoardConfig.mk

BOARD_SEPOLICY_DIRS += device/xxx/.../sepolicy/check_usb

关于android - 无法在 init.rc 中启动时执行守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36275037/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com