android 8.0 添加开机服务

本文详细介绍了如何在Android 8.0系统中添加开机自启服务,包括创建bin文件、配置启动脚本、设置权限及添加权限规则。通过编辑Android.mk、init.rc文件,以及编写sepolicy的te文件来实现服务的开机启动,并确保服务有执行权限。同时,文章提及了如何处理权限问题和解决编译错误。
摘要由CSDN通过智能技术生成
手动添加开机服务:
1:做个独立文件夹,里面编辑要运行的bin,如下:
Android.mk---这里面要做c和h这些文件编辑出bin生成到指定目录:
csh.c---main函数在这里面
qmi_dms_client.c  qmi_dms_client.h  ---调用qmi去与底层沟通函数


2:bin服务文件做好了,开始把它加载到开机启动,
device/qcom/common/rootdir/etc/init.qcom.factory.rc---加这里是工厂模式启动
device/qcom/common/rootdir/etc/init.qcom.rc---加这里是正常模式启动


# csh service
service csh /system/bin/csh
    class core   标识这个服务的类型:
    #class core(手机最先启动的,如c,c++)
    #class main(手机zygote已经启动起来了,假如服务多有可能起不来)
    #late_star(最后启动,一般不用)
    user root
    #user <username>执行服务前切换到用户<username>,此选项默认是root,因此可以不设置。
    group root
    #group <groupname> [ <groupname> ]*执行服务前切换到组<groupname>,此选项默认是root,因此可以不设置
    oneshot
    #服务只启动一次,一旦关闭就不能再启动
    disabled
    #disabled 禁用服务,此服务开机时不会自动启动,但是可以在应用程序中手动启动它。
on property:sys.boot_completed=1--------检测到开机就启动
   start csh


3:添加好了开机启动,我们就要先去做个独立运行它的te,文章最后有对te文件语法运用的解释(网络转载)
保证手机有权限执行这个bin,给bin一个运行的域:
device/qcom/sepolicy/common/csh.te----这个te文件按照需求和报错去修改,前面几号都是默认的添加域,
后面的都是报错和添加对应错误的权限:
#integrated process
type csh, domain, coredomain;
设置csh属于domain域,是一个进程的type,表明csh是用来描述进程的安全上下文的。
type csh_exec, exec_type, vendor_file_type, file_type;
    设置csh_exec属于可执行文件的类型.表明csh_exec是用来描述可执行文件的安全上下文的。
#init_daemon_domain(csh)
设置之后,则当其从init进程fork出来之后,将被设置成shelld.te为shelld进程配置的安全上下文,
其拥有同init进程不一样的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值