¿Cómo escribir Logcat completo en sdcard?

Necesito escribir Logcat completo en la tarjeta SD, no el Logcat filtrado. Así que intenté hacerlo de esta manera

String[] cmd  ={"/system/bin/logcat " +"-f"+" /sdcard/d.txt"};
    Log.d("NTK","cmd string"+cmd);
    Runtime run = Runtime.getRuntime();

    Process pr;
    try {
        pr = run.exec(cmd);

    pr.waitFor();
    BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream()));
    String line = "";
    while ((line=buf.readLine())!=null) {
        System.out.println(line);
        Log.i(NTL, "lines"+line);
    }
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

También he otorgado todos los permisos en el archivo de manifiesto.

No se puede escribir logcat en sdcard.

Respuestas a la pregunta(2)

Su respuesta a la pregunta