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。我的手机上就没有
一年多之前 回复
SDYYY_FAN
SDYYY_FAN 空格,exit都加过没用,但同个程序别的开发版就行,应该就是权限问题,那问一下怎么给root权限
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.03.30 11:29

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!