adb.shell() was recently changed to use subprocess.Popen(), which doesn't work properly with Unicode on Windows. The fix is to use the same work-around that I did for subprocess.check_output(): write UTF-8 to a batch file and run it. The change is primarily refactoring to enable code reuse. Change-Id: I88e9b9b35e5318533c0cd932d92e13bc9e734092 Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>