
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() {
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)