Android如何開機自動執行指令碼檔案

2021-09-11 15:42:29 字數 1148 閱讀 5616

在做專案的時候遇到乙個需求,需要開機啟動乙個服務,一開始除錯的時候使用的是命令列執行命令,但是真正使用的時候就必須整合到韌體裡面去讓其開機自動開啟

首先想到的必然是在init.rc裡面新增服務,我的是rk3326平台,init.rc位置在system/core/rootdir下,如何新增service服務是一門學問.接下來就一一介紹.

編寫你需要執行的指令碼,指令碼一般是以.sh為字尾,指令碼內容以#!bin/sh開頭,然後後面接你的指令,如我的指令碼檔案

#!bin/sh

turenproc pebble-i2s

在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掉之後重新調起,那就不寫.

新增完上面的服務之後還不行,還有一步最容易忽視的一步

啟動剛剛新增的服務

on property:sys.boot_completed=1

start su_turenproc

這一步很重要,我就是做完第一步和第二步之後直接編譯燒錄,發現新增的服務並沒有生效,折騰了很久之後才搞定,就是因為沒有加第3步啟動服務.

接下來編譯燒錄你就會發現開機執行了你編寫的指令碼.

redmine 開機自動執行

想要redmine在centos上開機自動執行,於是就在 etc rc.local裡面加上了一行指令碼 bin sh echo start redmine usr local ruby bin ruby usr local redmine script server webrick e produc...

如何使Android應用開機時自動啟動

如果需要在android開機時自動啟動應用程式,可以通過響應android.intent.action.boot completed廣播訊息來實現,android系統啟動結束時,會發出 android.intent.action.boot completed 訊息。具體步驟如下 1.定義乙個broa...

如何使Android應用開機時自動啟動

如果需要在android開機時自動啟動應用程式,可以通過響應android.intent.action.boot completed廣播訊息來實現,android系統啟動結束時,會發出 android.intent.action.boot completed 訊息。具體步驟如下 1.定義乙個broa...