2017-04-17 15 views
3

Android N (AOSP 빌드)을 실행하는 루팅 된 휴대 전화가 있습니다. 내 응용 프로그램에서 루트 사용 권한을 얻으려고하지만 권한이 거부 된 상태로 유지됩니다. 여기에 내가 노력하고 무엇 :루틴 된 장치에서 "su"프로그램을 실행할 수 없습니다.

java.lang.Process p = runtime.exec("su"); 
       DataOutputStream commandLine = new DataOutputStream(p.getOutputStream()); 
       commandLine.writeBytes("rm /data/local/tmp/testfile\n"); 
       commandLine.flush(); 
       p.waitFor(); 

그러나, 그것은 오류와 함께 실패 유지 :

W/System.err: java.io.IOException: Cannot run program "su": error=13, Permission denied 
W/System.err:  at java.lang.ProcessBuilder.start(ProcessBuilder.java:983) 
W/System.err:  at java.lang.Runtime.exec(Runtime.java:691) 
W/System.err:  at java.lang.Runtime.exec(Runtime.java:524) 
W/System.err:  at java.lang.Runtime.exec(Runtime.java:421) 
W/System.err:  at MainActivity$2.onClick(MainActivity.java:104) 

나는 또한 나의 매니페스트에 android.permission.ACCESS_SUPERUSER을 추가 한하지만 어떤 변화를하지 않는 것.

+0

당신이 시스템/PRIV-app 폴더에 응용 프로그램을 이동 시도? –

답변

0

당신은이 방법으로 스와의 프로세스를 실행 고려할 수 :

ProcessBuilder mProcess = new ProcessBuilder() 
            .command("/system/xbin/su") 
            .redirectErrorStream(true).start(); 

OutputStream out = mProcess.getOutputStream();