2 sdyyy fan SDYYY_FAN 于 2016.03.28 15:56 提问

android 调用echo命令

问题描述:
进入adb shell 直接使用 echo 1 > /sys/class/leds/white:pd27:led3/brightness 可行
用以下程序进行命令调用,却不成功,white:pd27:led3这个节点的权限给到最高了,

apk也获取了system权限 在AndroidManifest.xml中添加android:sharedUserId="android.uid.system"为何还是不成功,有大神能找出原因吗

Process process = null;
DataOutputStream dos = null;

            try {

                process = Runtime.getRuntime().exec("sh");


                dos = new DataOutputStream(process.getOutputStream());
                dos.writeBytes("echo 1 > /sys/class/leds/white:pd27:led3/brightness");

                dos.flush();

                try{
                    process.waitFor();
                }catch (InterruptedException e){}
                dos.close();

            } catch (IOException e) {
                e.printStackTrace();

            }

3个回答

SDYYY_FAN
SDYYY_FAN   2016.04.07 17:29
已采纳

这个问题自己解决了,之前一直给的权限是灯的节点 chomd 777 .../led
之后给brighness权限就可以用apk点亮了,chmod 777 .../led/brightness

zuishikonghuan
zuishikonghuan   2016.03.29 15:09

少了\r\n了,命令最后写一个\r\n,相当于回车(只有\n应该也ok)
另外建议再写入一个exit\r\n
再不行就是system用户权限不足,可以申请root权限

zuishikonghuan
zuishikonghuan 改成exec("su")就是申请root权限。前提是已经root了的。 另外不同手机上这个文件名一样吗:/sys/class/leds/white:pd27:led3/brightness。我的手机上就没有
2 年多之前 回复
SDYYY_FAN
SDYYY_FAN 空格,exit都加过没用,但同个程序别的开发版就行,应该就是权限问题,那问一下怎么给root权限
2 年多之前 回复
CSDNXIAON
CSDNXIAON   2016.03.30 11:29

echo 命令
linux下的echo命令
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
在android执行shell命令
http://www.cnblogs.com/zhengwenwei/archive/2011/08/16/2141642.html android应用需要调用shell命令的时候,网上找到的资料是: String cmd = String.format("echo %s > %s\n", arg, mSwitchUsbFileTextEdit.getText(
通过echo命令来实现android平台开关背光
最近有个需求是要实现快速开关背光,之前理解错误了,直接用PowderManager里面的goToSleep()和 wakeUp()方法实现。后来发现wakeup的时候会重启机器,即goToSleep的时候其实是进入休眠了,类似智能电视的 powder键。在确定准确需求以后,需要实现开关背光而不关闭和休眠android系统。 刚开始在framework找了很多api方法都不太奏效,后来
echo命令总结实例
echo是一种最常用的与广泛使用的内置于Linux的bash和C shell的命令,通常用在脚本语言和批处理文件中来在标准输出或者文件中显示一行文本或者字符串。 echo命令的语法是: echo [选项][字符串] 1. 输入一行文本并显示在标准输出上 $ echo Tecmintis a community of LinuxNerds 会输出下面的文本:
Android执行Linux命令的方法
一开始使用的是这样的方法: Runtime.getRuntime().exec("echo default-on > /sys/class/leds/firefly:yellow:user/trigger"); 后来发现一直出现错误,主要提示: Working Directory: null Environment: null 和 java.io.IOException: Permiss
android 下 对3G 模块进行AT 命令调试
Note: 下面加粗的地方 是我的标注, 不是转载的。 1) ps  显示当前运行的应用; 2) Kill -15 2666  杀掉相关的cat 应用程序;     // 这个是指cat进程,不一定是2666 3) stop ril-daemon 停掉ril 后台, 去掉对AT 端口的占用; 获知华为模块映射的的AT端口号 /dev/ttyUSB2;  // 我使用的是usb接口的
Android.mk中调用shell命令
这几天,在写Android.mk时,有时总想打印一些变量什么的,echo不能用,就上网找办法。   最后找了这么一篇文章挺好的。   原文地址:http://blog.csdn.net/michaelpp/article/details/6249989 在Android的编译脚本中有很多示例,比如在 build/core/main.mk 文件中:   ifeq (
随笔:关于AT命令
AT命令(Attention)在手机中,用于对modem(也就是移动模块)通过串口命令进行操作,处理与语音电话、短信和数据。 AT命令的用途 在N年前的一个涉及MeeGo的项目,MeeGo采用ofono开源项目进行移动通信,ofono通过AT命令来提供GSM的通信,但是不支持CDMA。这也从侧面论证了CDMA手机可能并不采用AT命令作为标准接口。当时请OEM根据高通芯片的API和参考,参照GS
一些常用的Android命令
1. 双清 adb wait-for-devices && adb shell "echo -n \"boot-recovery\n--wipe_data\n\" > /cache/recovery/command" && adb reboot recovery(格式化data分区会同时格式化cache分区) 2. ota升级 adb wait-for-devices && adb
batT脚本如何自动执行 adb shell 以后的命令(android抓包)
bat脚本自动执行 adb shell 以后的命令      @echo off echo su > test.txt echo 其它命令(如 cd /data) >> test.txt adb shell < test.txt del test.txt 例如  Android自动抓包 @echo on title android抓包 f: echo su > temp.txt ec
android运行底层linux外部命令的实现
android的底层实际是Linux内核,当然在shell环境下可以运行linux命令,尤其是经过root处理的android系统,基本上可以通过调用linux命令完全控制手机,下面的RootCmd.java代码就是实现运行linux外部命令。    package my.android.code;   import android.os.Environment; import dalv