2017-02-18 2 views
0

안녕하세요 수퍼 유저가 /data 파티션에 명령을 사용하여 생성됩니다 내 응용 프로그램 (나는 전형적인 디렉토리 /data/data 경우에 파일을 생성하지 않는 파일에 대한 쓰기 권한이 필요하기 때문에 나는이 질문을 한파티션/데이터 파일에 쓰는 방법은 무엇입니까?

모두 하지 않음) 몇 가지 있지만, 내 현재 코드는 원하는 결과를 작성하지 않았습니다 :

public boolean creaArchivo2(String path, InputStream is) 
    throws IOException { 

    final int CHUNK_SIZE = 1024 * 4; 

    Process proc = Runtime.getRuntime().exec("su -c mount -o remount,rw "+path); 
    Process proc1 = Runtime.getRuntime().exec("su -c mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 "+path); 
    OutputStream os = new FileOutputStream(new File(path)); 
    byte[] chunk = new byte[CHUNK_SIZE]; 
    int bytesLeidos = 0; 

    while ((bytesLeidos = is.read(chunk)) > 0) { 

     os.write(chunk, 0, bytesLeidos); 
    } 
    os.close(); 

    return true; 

} 

내 코드 설명을 : 내 코드는 당신이 모든 읽기/파티션에있는 파일에 쓰기 권한을 설정하려고입니다 데이터를 복사 한 다음 d java에서 일반적인 방법으로 ata 명령을 사용하면 쉽게 복사 할 수있는 오류 대신 쉽게 복사 할 수 있지만 작동하지 않습니다.

내가 코드에서 실패한 곳을 알거나 내 목표를 달성하기위한 다른 방법을 알고 있다면. 저에게 알려주세요. 고맙습니다.

답변

0

시도하고있는 전화에 대한 루트 액세스 권한이 있습니까?

예외는 무엇입니까? 당신은 방금 "작동하지 않는다"고 말했다. 더 많은 정보가 필요하거나 도움을 드릴 수 없습니다.

루트 액세스 및 수퍼 유저 명령을 사용하는 거라면, 내가 Stericson에서 RootTools 라이브러리를 사용하는 것이 좋습니다 것 :
https://github.com/Stericson/RootTools

그것은 모든 복잡한 프로세스 & 런타임 물건을 랩을하고, 사용할 수 있습니다 API를 사용하여 현재 루트 액세스를 확인하는 등의 작업을 수행 할 수 있습니다.

관련 문제