2016-11-25 6 views
0

나는 rooted 장치가 있고/system/app 내부에있는 apk (Prueba.apk)의 chmod 권한을 변경하여 사용하기 위해 BusyBox가있는 RootTools 라이브러리 그리고 내 코드는 다음과 같습니다chmod를 프로그래밍 방식으로 안드로이드에서 777로 바꿀 수 없다

 Command comando = new Command(0, "chmod 777 /system/app/Prueba.apk"); 
    try { 
     RootTools.getShell(true).add(comando); 
    } catch (IOException | RootDeniedException | TimeoutException ex) { 
     ex.printStackTrace(); 
    } 

하지만 확인할 때, 나는 Prueba.apk에 대한 chmod를 권한이 변경되지 않은 것을 볼 루트 파일 탐색기로 해당 코드를 실행 한 후.

답변

0

O를 장착하기 위해 다른 방법을 시도 내가 RW로 시스템 파티션을 마운트 할 때 나는 이런 식으로했다 :

 Command comando = new Command(0, "mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system/app"; 
    try { 
     RootTools.getShell(true).add(comando); 
    } catch (IOException | RootDeniedException | TimeoutException ex) { 
     ex.printStackTrace(); 
    } 

을하지만 올바른 방법은 대신/시스템/응용 프로그램 폴더의 모든 시스템 파티션 RW를하고있다, 그래서에 코드를 변경 :

 Command comando = new Command(0, "mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system"; 
    try { 
     RootTools.getShell(true).add(comando); 
    } catch (IOException | RootDeniedException | TimeoutException ex) { 
     ex.printStackTrace(); 
    } 

그리고 나서 chmod 777 명령을 완벽하게 실행할 수있었습니다.

0

루트 액세스가 필요한 코드를 실행하기 전에 을 사용하여 su -c을 사용해야합니다.

/system/*은 읽기 전용이며 명령은 root로 실행해야하지만 먼저 /system 파티션을 읽기 및 쓰기로 마운트해야합니다. 이이 작업을 수행하는 다양한 방법이 있지만, 내 넥서스이 작동 5 배 :
mount -o rw,remount /system

그러나, 그렇게 작동하지 않을 수 있습니다이 방법이 문제는 것이 었습니다 R/here

+0

사실 나는 루트 명령을 실행하기 위해 RootTools 라이브러리를 사용합니다. –