手动添加开机服务:
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进程不一样的
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进程不一样的