1. 程式人生 > >Android應用層如何執行shell指令碼

Android應用層如何執行shell指令碼

應用層如何執行shell指令碼,通過啟動一個shell指令碼服務執行

private fun execCmd(cmd: String, listener: (isExe: Boolean, result: String?) -> Unit) {
Thread(Runnable {
val cmdPath = "/storage/emulated/legacy/cmd"
val retPath = "/storage/emulated/legacy/ret"
FileIOUtils.writeFileFromString(cmdPath, cmd)
FileIOUtils.writeFileFromString(retPath, "")
SystemProperties.setProp("ctl.stop", "sdcard_it")
SystemProperties.setProp("persist.sys.ret.status", "0")
SystemProperties.setProp("persist.sys.cmd.file", cmdPath)
SystemProperties.setProp("persist.sys.ret.file", retPath)
SystemProperties.setProp("ctl.start", "sdcard_it")

var retryCount = 5
var isExe = false
do {
isExe = SystemProperties.getProp("persist.sys.ret.status") == "1"
Thread.sleep(200)
} while (!isExe && retryCount-- > 0)
SystemProperties.setProp("persist.sys.ret.status", "0")
val result = FileIOUtils.readFile2String(retPath)
listener(isExe, result)
}).start()
}

sdcard_it為一個服務,但是不啟動,在應用層啟動

service sdcard_it/system/bin/sh /system/etc/back.sh
    user root
    group root
    disabled
    oneshot

相關推薦

android應用程式執行shell指令碼命令

急問android應用程式如何執行shell指令碼命令 跪求大神指點~! 小菜在做一個android應用程式,需要執行系統呼叫命令,然後我考慮將命令寫在.sh腳本里,直接呼叫指令碼執行。 但是呼叫一直不成功。 我具體用到了如下行的函式呼叫,系統命令寫入了xxxxx.sh裡

android手機上執行shell指令碼

public class MainActivity extends AppCompatActivity { TextView editText; @Override public void onCreate(Bundle savedInstanceState) {

[init.rc] android開機過程執行shell指令碼

1、在system/core/rootdir/etc/下新增指令碼檔案,命名為myshell.sh,指令碼內容可如下         #! /system/bin/sh 2、修改system/core/rootdir/Android.mk檔案,增加語句         co

Android應用如何執行shell指令碼

應用層如何執行shell指令碼,通過啟動一個shell指令碼服務執行 private fun execCmd(cmd: String, listener: (isExe: Boolean, result: String?) -> Unit) { Thread(Runn

Android 7.0 init.rc 執行shell指令碼 ---- 製作一初始化配置檔案

最近在一個Android 7.0 PDA專案中遇到如下需求:初始化一配置檔案,此配置檔案需要儲存到data分割槽供系統服務和第三方應用進行讀寫操作,另外此配置檔案在系統重啟後保持檔案內容不變,除非恢復出廠才可以恢復成預設配置引數 。因為初始化的配置引數為了方便其它同事修改

Android之在linux終端執行shell指令碼直接列印當前執行app的日誌

1、問題我們一般很多時候會需要在ubuntu終端上列印當前執行app的日誌,我們一般常見的做法是1)、獲取包名      開啟當前執行的app,然後輸入如下命令,然後在第一行TASK後面的就可以看到包名adb shell dumpsys activity top2)、我們的終

Android開機執行shell指令碼

往往需要在Android啟動過程中去對系統做一些設定,如修改某些資料夾的屬主和檔案的許可權,可在init.rc中增加service執行shell指令碼,從而可在shell指令碼中完成大部分操作。 1、在system/bin/下建立一個shell指令碼init.mbx.

使用crontab定時執行shell指令碼

原帖地址:http://blog.chinaunix.net/uid-429659-id-4510419.html 使用crontab你可以在指定的時間執行一個shell指令碼或者一系列Linux命令。例如系統管理員安排一個備份任務使其每天都執行 入門 # cronta

怎麼在後臺執行shell指令碼

後臺執行指令碼 執行指令碼test.sh:./test.sh 中斷指令碼test.sh:ctrl+c 在1的基礎上將執行中的test.sh,切換到後臺並暫停:ctrl+z 執行ctrl+z後,test.sh在後臺是暫停狀態(stopped),使用命令:bg number讓

新手mac上執行shell指令碼常見問題

最近打算在mac使用shell來實現unity的自動打包功能,寫完指令碼信心滿滿結果剛一執行就報錯,通過參考網上的解決方案最終順利執行指令碼,以下總結和記錄第一次在mac機上執行shell檔案最可能遇到的兩個問題。 1.許可權問題 在終端執行sh檔案時報 -

關閉客戶端後需要繼續執行shell指令碼的兩種方法

應用場景: 做資料分析時,遠端連線資料分析伺服器,可能需要執行很多指令碼,有時候斷網後,跑了半天指令碼需要重新跑,主要是為了解決這個問題總結了兩個小技巧。 乾貨: 解決方案一: 執行指令碼時如下方式執行: nohup sh *.sh 1>console_info

執行shell指令碼的方式

書寫完shell指令碼(文字)並儲存後,以下列三種方式執行   1, 切換到指令碼所在目錄: $ bash<指令碼名   2, 切換到指令碼所在目錄: $ bash 指令碼名 [引數1] [引數2]   3, 給sh

執行shell指令碼時提示bad interpreter:No such file or directory的解決辦法

故障現象:在終端直接cd /var正常,在shell指令碼中執行則報錯。原因是指令碼是在windows平臺下寫的,換行符與linux不同,造成指令碼不能正確執行 出現bad interpreter:No such file or directory(沒有那個檔案或目錄)

執行shell指令碼的四種方式(轉)

原文網址:https://www.jb51.net/article/53924.htm 這篇文章主要介紹了Linux中執行shell指令碼的4種方法,即總結在Linux中執行shell指令碼的4種方法。 前提:bash shell 指令碼的方法有多種,現在作個小結。假設我們編寫好的shell指令碼的檔名為

sh命令 /Linux中執行shell指令碼的4種方法總結

bash shell 指令碼的方法有多種,現在作個小結。假設我們編寫好的shell指令碼的檔名為hello.sh,檔案位置在/data/shell目錄中並已有執行許可權。 方法一:切換到shell指令碼所在的目錄(此時,稱為工作目錄)執行shell指令碼:此種方法為阿里雲推

執行shell指令碼出現bad interpreter:No such file or directory錯誤

出現原因:在windows下編輯的指令碼,所以有可能有不可見字元。指令碼檔案是DOS格式的,即每一行的行尾以\r\n來標識, 其ASCII碼分別是0x0D, 0x0A. 解決方法,vim出問題的指令碼

部署在tocmat的程式執行shell指令碼

  1 需要把shell指令碼放在resources目錄下。如shell.sh   2需要在tomcat裡面定位到當前shell的目錄,不要定位到了tomcat的目錄裡面去   定位程式碼 String path1 = Thread.cur

執行 Shell 指令碼的兩種方法

執行 Shell 指令碼有兩種方法: 1、作為可執行程式 將程式碼儲存為 test.sh,並 cd 到相應目錄: chmod +x ./test.sh #使指令碼具有執行許可權 ./test.sh #執行指令碼 注意,一定要寫成 ./test.sh,而不是 test.sh,執行其它

執行Shell指令碼的方法

1、 作為直譯器引數 [[email protected] /]# vi /tmp/test.sh 指令碼內容如下: islost=K.O echo $islost [[email protected] /]# bash /tmp/test.sh 也可以用sh

linux定時執行shell指令碼

寫一個shell指令碼,定時執行簡單示例 很多時候我們有希望伺服器定時去執行一個指令碼來觸發一個操作,比如說定時去備份伺服器資料、資料庫資料等 不適合人工經常做的一些操作這裡簡單說下 Shell俗稱殼,類似於DOS下的command和後來的cmd.exe。它接收使用者