2013-08-22 3 views
2

ROOT 권한이있는 android 앱에서 프로세스를 시작하는 방법은 무엇입니까?ROOT 권한이있는 android app에서 프로세스를 시작하는 방법

내가 비슷한 질문을 찾았지만 그들은 나를 위해 작동하지 않습니다 : 12

오류 로그 (IOException이Runtime.getRuntime().exec(commandArray); 사용) :

Caused by: java.io.IOException: Error running exec(). Command: [su -c, /data/data/%my_app_package%/%app% %params%] Working Directory: null Environment: null 
08-22 11:02:17.515: WARN/System.err(19804): at java.lang.ProcessManager.exec(ProcessManager.java:211) 
08-22 11:02:17.515: WARN/System.err(19804): at java.lang.Runtime.exec(Runtime.java:168) 
08-22 11:02:17.515: WARN/System.err(19804): at java.lang.Runtime.exec(Runtime.java:123) 
08-22 11:02:17.515: WARN/System.err(19804): ... 5 more 
08-22 11:02:17.515: WARN/System.err(19804): Caused by: java.io.IOException: Permission denied 
08-22 11:02:17.515: WARN/System.err(19804): at java.lang.ProcessManager.exec(Native Method) 
08-22 11:02:17.515: WARN/System.err(19804): at java.lang.ProcessManager.exec(ProcessManager.java:209) 
08-22 11:02:17.515: WARN/System.err(19804): ... 8 more 

비슷한 오류 출력 ProcessBuilder를 사용하여 시작 :

08-22 11:19:34.052: WARN/System.err(22054): Caused by: java.io.IOException: Error running exec(). Command: [su -c, /data/data/%app_package%/%app% %parameters%] Working Directory: null Environment: [ANDROID_SOCKET_zygote=9, ANDROID_BOOTLOGO=1, EXTERNAL_STORAGE=/storage/sdcard0, ANDROID_ASSETS=/system/app, PATH=/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin, ASEC_MOUNTPOINT=/mnt/asec, LOOP_MOUNTPOINT=/mnt/obb, BOOTCLASSPATH=/system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework_ext.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar, ANDROID_DATA=/data, LD_LIBRARY_PATH=/vendor/lib:/system/lib, ANDROID_ROOT=/system, ANDROID_PROPERTY_WORKSPACE=8,65536] 
08-22 11:19:34.052: WARN/System.err(22054): at java.lang.ProcessManager.exec(ProcessManager.java:211) 
08-22 11:19:34.052: WARN/System.err(22054): at java.lang.ProcessBuilder.start(ProcessBuilder.java:195) 
08-22 11:19:34.052: WARN/System.err(22054): ... 5 more 
08-22 11:19:34.052: WARN/System.err(22054): Caused by: java.io.IOException: Permission denied 

나는 abs 장치가 뿌리를 내리고 제대로 작동하는지 확인하십시오. 때로는 응용 프로그램에 루트 권한을 부여하도록 요청받습니다. 이 경우 나는 물어 보지 않고 그냥 오류가납니다.

런타임에 앱에 대한 루트 권한을 요청하는 방법은 무엇입니까? 시작된 모든 프로세스에 루트 권한을 부여합니까?

하지 작업 코드 :

  • commandLine.add("su -c"); commandLine.add("app"); commandLine.add("params")
  • commandLine.add("sudo"); commandLine.add("app"); commandLine.add("params")

을 일하고 ProcessBuilder위한 프로세스에 대한 명령 줄을 구축하는 방법에 차이가 있습니다

답변

2

암호:

  • commandDownloader.add("su"); commandDownloader.add("-c"); commandLine.add("app");

코드 작업을 위해 나는

(자세한로 내 경우에는 MIUI) 안드로이드 OS에 의해 허가를 요청하고 있습니다
관련 문제