title: Why does adb push/pull redirect STDOUT to STDERR?
body: <p>When using 'adb pull ...' the output is sent to stderr regardless of success. Is there any reason for this? For an example, pulling a file that is there and pulling a file that doesn't exist:</p>
  
  <p>When I run:</p>
  
  <pre><code>adb pull /data/data/good_file.txt /tmp`
  </code></pre>
  
  <p>I get the following:</p>
  
  <pre><code>stdout:
  stderr: 0 KB/s (13 bytes in 0.078s)
  </code></pre>
  
  <p>(i.e. no stdout)</p>
  
  <p>Then when when I run: </p>
  
  <pre><code>adb pull /data/data/bad_file.txt /tmp
  </code></pre>
  
  <p>I get the following:</p>
  
  <pre><code>stdout:
  stderr: remote object '/data/bad_file.txt' does not exist
  </code></pre>
  
  <p>The program below was used to generate the above results:</p>
  
  <pre><code>from subprocess import Popen
  cmd = "adb pull /data/data/good_file.txt /tmp"
  p = Popen(cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  out, err = p.communicate()
  print cmd
  print "stdout: " + out
  print "stderr: " + err
  </code></pre>