如何让Android系统或Android应用执行shell脚本

如何让Android系统或Android应用执行shell脚本,第1张

android系统执行shell脚本,需要首先确认用户具有修改shell的权限,使用 process来执行指令,如下代码:

public void execShell(String cmd){

try{

//权限设置

Process p = Runtime.getRuntime().exec("su") //开始执行shell脚本

//获取输出流

OutputStream outputStream = p.getOutputStream()

DataOutputStream dataOutputStream=new DataOutputStream(outputStream)

//将命令写入

dataOutputStream.writeBytes(cmd)

//提交命令

dataOutputStream.flush()

//关闭流 *** 作

dataOutputStream.close()

outputStream.close()

}

catch(Throwable t)

{

t.printStackTrace()

}

}

在应用中启动服务

在应用程序中调用:do_exec(start usblp_test)

do_exec的实现如下:

private String do_exec(String cmd) {

String s = "/n"

try {

Process p = Runtime.getRuntime().exec(cmd)

BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()))

String line = null

while ((line = in.readLine()) != null) {

s += line + "/n"

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

text.setText(s)

return cmd

}

二、编译源码执行shell脚本

这个方法很简单,脚本已经写好了,现在要解决的问题是在什么时候怎么执行这个脚本,经过验证最佳的位置在system/core/init/init.c,main函数中的如下位置,

queue_builtin_action(queue_property_triggers_action, "queue_propety_triggers")

#if BOOTCHART

queue_builtin_action(bootchart_init_action, "bootchart_init")

#endif

/*add by weijing */

system("exec /system/bin/sh /data/setip/init.djstava.sh")

/*end by weijing */

for() {


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11754866.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存