运行Shell命令虽然在Android上的java代码?
发布时间:2020-12-15 19:09:10 所属栏目:安全 来源:网络整理
导读:我有一个应用程序,应该使用一些shell命令将文件从sdcard复制到/ system / media /。它将需要root,我正在根深蒂固的设备上进行测试。我使用运行时执行shell命令,但它不工作。 这是我的运行时间 public void RunAsRoot{String[] commands = {"sysrw","rm /d
我有一个应用程序,应该使用一些shell命令将文件从sdcard复制到/ system / media /。它将需要root,我正在根深蒂固的设备上进行测试。我使用运行时执行shell命令,但它不工作。
这是我的运行时间 public void RunAsRoot{String[] commands = {"sysrw","rm /data/local/bootanimation.zip","sysro"};{ Process p = Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(p.getOutputStream()); for (String tmpCmd : commands) { os.writeBytes(tmpCmd+"n"); } os.writeBytes("exitn"); os.flush(); } 但是我的logcat只显示其中两个没有被拒绝 07-30 03:14:11.112: WARN/su(3593): request rejected (10047->0 /system/bin/sh) 07-30 03:14:11.132: DEBUG/su(3592): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh 07-30 03:14:11.152: WARN/su(3594): request rejected (0->0 /system/bin/sh) 07-30 03:14:11.182: WARN/su(3595): request rejected (0->0 /system/bin/sh) 07-30 03:14:11.202: WARN/su(3596): request rejected (0->0 /system/bin/sh) 07-30 03:14:11.242: DEBUG/su(3597): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh 这两个看起来是sysrw和sysro命令,但是当我触发这个代码时,应用程序仍然要求root权限。
要运行root命令,您必须使用以下格式:
public void RunAsRoot(String[] cmds){ Process p = Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(p.getOutputStream()); for (String tmpCmd : cmds) { os.writeBytes(tmpCmd+"n"); } os.writeBytes("exitn"); os.flush(); } 传递一个字符串数组,每个字符串是需要执行的命令。例如: String[] commands = {"sysrw","sysro"}; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Angular 2中服务和模型的区别?
- scala – StringOps.split中第二个参数的含义(St
- angularjs – Angular ng-model在编辑时设置为un
- angularjs – 在某些条件后启用的禁用字段上的自
- 搭建简单的webservice服务端 -- axis2
- 某课网—双剑合璧laravel AngularJS全栈开发知乎
- 启动OSX没有使用teamcity代理运行bash
- twitter-bootstrap – React-router不使用数据切
- cxf动态调用webservice设置超时,测试线程安全
- angularjs – 使用md-button时的ng-transclude错
热点阅读