Android如何开机自动执行脚本文件

Android如何开机自动执行脚本文件

在做项目的时候遇到一个需求,需要开机启动一个服务,一开始调试的时候使用的是命令行执行命令,但是真正使用的时候就必须集成到固件里面去让其开机自动开启

首先想到的必然是在init.rc里面添加服务,我的是RK3326平台,init.rc位置在system/core/rootdir下,如何添加service服务是一门学问.接下来就一一介绍.

  1. 编写你需要执行的脚本,脚本一般是以.sh为后缀,脚本内容以#!bin/sh开头,然后后面接你的指令,如我的脚本文件

    #!bin/sh
    turenproc pebble-i2s
    
  2. 在init.rc里面添加服务,服务是以service开头,紧接你的服务名字,然后指明需要开机启动的脚本目录,具体如下:

    service su_turenproc /system/bin/su_turenproc.sh
        user root
    	group root
        disabled
    	seclabel u:r:shell:s0
    	oneshot
    

    在这个服务中,我的服务名字叫su_turenproc,需要执行的脚本是/system/bin/下的su_turenproc.sh,这个脚本文件就是在1中编写的脚本文件.

    紧接着user rootgroup root 意思是使用 root 权限。
    seclabel u:r?s0这句的具体含义大概是设置init进程的安全上下文
    oneshot说明的是该操作只会执行一次,并不像其他带有 restart 指令的 service 一样当被 kill 调之后会重新调起。如果你希望被kill掉之后重新调起,那就不写.
    添加完上面的服务之后还不行,还有一步最容易忽视的一步

  3. 启动刚刚添加的服务

    on property:sys.boot_completed=1
     start su_turenproc
    

这一步很重要,我就是做完第一步和第二步之后直接编译烧录,发现添加的服务并没有生效,折腾了很久之后才搞定,就是因为没有加第3步启动服务.

接下来编译烧录你就会发现开机执行了你编写的脚本.

你可能感兴趣的:(Android,&,Linux底层驱动)