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

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

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

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

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

    service su_turenproc /system/bin/su_turenproc.sh    user rootgroup root    disabledseclabel u:r:shell:s0oneshot

    在这个服务中,我的服务名字叫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步启动服务.

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

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Android实践--apk反编译
  6. 详解Android使用OKHttp3实现下载(断点续传、显示进度)
  7. Android引入外部自定义特殊字体的方法
  8. Android(安卓)NDK 中使用C++源文件和使用C文件的不同
  9. AndroidManifest.xml文件详解(三)

随机推荐

  1. Android(安卓)5.0 Lollipop SDK下载地址
  2. TextView 滚动
  3. Android(安卓)Button Maker(在线生成andro
  4. 初学Android,Android的项目结构(二)
  5. Android系列之浅谈AndroidGallery控件使
  6. Android图片堆叠效果实现
  7. Android之EditText
  8. 最新Android(安卓)SDK/ADT/NDK的下载位置
  9. Layout属性介绍
  10. Android(安卓)开发 修改app应用的名字和