2012-05-10 2 views
1

읽기 전용 대신 읽기 전용으로 파일 시스템을 다시 마운트해야합니다. 명령 프롬프트를 통해이를 수행하는 방법을 알고 있고 또한 애플리케이션 개발을 위해 어떻게해야하는지 알고 있습니다.Java를 통해 Android 파일 시스템을 다시 마운트

는하지만 안드로이드 소스 코드를 조정에, 그리고 난

Process proc=Runtime.getRuntime.exec("su"); 

이 일을 doesnot가 사용하는 경우. 그러므로 나는 동일한 것을 위해 android.os.process 객체를 사용할 필요가있다. 그리고 나는 여기에 붙어있어서 아무도 나를 도와 줄 수 없다. 수퍼 유저 액세스가 있으면

try { 
    // Perform su to get root privledges 
    Process p = Runtime.getRuntime().exec("su"); 

    DataOutputStream os = new DataOutputStream(p.getOutputStream()); 

    os.writeBytes("<..... here you may write commands ....>\n"); 

    // Close the terminal 
    os.writeBytes("exit\n"); 
    os.flush(); 
} catch (IOException e) { 
    toastMessage("not root"); 
} 
  • , 일부에서 수신 adbd을 시작할 수 있습니다

  • 답변

    0
    1. 수퍼 유저 액세스하려면이 코드를 사용해보십시오 (이 설치 수퍼 유저와 뿌리 전화이 필요합니다) TCP 포트 사용 :

      setprop service.adb.tcp.port 5555 
      adbd & 
      setprop service.adb.tcp.port -1 
      
    2. 선택한 포트에 대한 TCP 연결을 열고 remount 명령.

    0

    실제로 무엇을 할 것인지 이해하기 어렵습니다. 하지만 안드로이드 소스 (aosp)를 조정한다면 시스템 이미지 rw를 얻기 위해 init.rc (system/core/rootdir 아래) 파일을 수정하는 것이 더 쉬울 것입니다. 런타임 중에 상태를 변경하려면 자체 원시 응용 프로그램 (예 : run-as 명령)을 작성하고 프로세스 내부에서 프로세스의 uid를 변경 한 다음 suid로 변경하고 소스에 임베드해야합니다 , 응용 프로그램에서 호출하십시오.

    +0

    맞춤형 ROM을 제작해야합니다. 나는 init.rc를 변경할 필요가 없다. 항상 읽혀질 것이다. 특정 유스 케이스를 구현하기 위해 PackageServiceManager.java에서 읽기 쓰기로 마운트 한 다음 읽기 전용으로 되돌리려합니다. 사실 나는 시스템/애플 리케이션 디렉토리에있는 APK를 편집해야합니다. 그러므로 나는 그것을 위해 읽기가 필요하다. – CodeGuru

    +0

    그런 다음 대답의 두 번째 부분을 따르십시오. 안드로이드 소스에서 만들고이 응용 프로그램을 호출하십시오. – Yury

    관련 문제