Use decode('utf-8') for all subprocess calls

Bug: 221778256
Change-Id: Ib2029e5061193a62f3712baba99a395f4340ba86
diff --git a/tools/archive.py b/tools/archive.py
index 24e8e0a..f7fe808 100755
--- a/tools/archive.py
+++ b/tools/archive.py
@@ -37,7 +37,7 @@
   # TODO(mkroghj) This would not work for r8-lib, maybe use utils.getR8Version.
   output = subprocess.check_output([
     jdk.GetJavaExecutable(), '-jar', jar_path, '--version'
-  ])
+  ]).decode('utf-8')
   return output.splitlines()[0].strip()
 
 def GetVersion():
@@ -54,11 +54,11 @@
   return subprocess.check_output(['git', 'show', '-s', '--pretty=%d', 'HEAD'])
 
 def GetGitHash():
-  return subprocess.check_output(['git', 'rev-parse', 'HEAD']).strip()
+  return subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode('utf-8').strip()
 
 def IsMain(version):
   branches = subprocess.check_output(['git', 'branch', '-r', '--contains',
-                                      'HEAD'])
+                                      'HEAD']).decode('utf-8')
   # CL runs from gerrit does not have a branch, we always treat them as main
   # commits to archive these to the hash based location
   if len(branches) == 0:
diff --git a/tools/gradle.py b/tools/gradle.py
index 63c92b5..89b1c0e 100755
--- a/tools/gradle.py
+++ b/tools/gradle.py
@@ -96,7 +96,7 @@
   cmd.extend(args)
   utils.PrintCmd(cmd)
   with utils.ChangedWorkingDirectory(cwd):
-    return subprocess.check_output(cmd, env=GetJavaEnv(env))
+    return subprocess.check_output(cmd, env=GetJavaEnv(env)).decode('utf-8')
 
 def RunGradleWrapperInGetOutput(args, cwd, env=None):
   return RunGradleInGetOutput('./gradlew', args, cwd, env=env)
diff --git a/tools/internal_test.py b/tools/internal_test.py
index 47d236e..0237bd0 100755
--- a/tools/internal_test.py
+++ b/tools/internal_test.py
@@ -167,7 +167,7 @@
 
 def ensure_git_clean():
   # Ensure clean git repo.
-  diff = subprocess.check_output(['git', 'diff'])
+  diff = subprocess.check_output(['git', 'diff']).decode('utf-8')
   if len(diff) > 0:
     log('Local modifications to the git repo, exiting')
     sys.exit(1)
diff --git a/tools/utils.py b/tools/utils.py
index 5d574ac..c40a4c0 100644
--- a/tools/utils.py
+++ b/tools/utils.py
@@ -133,7 +133,7 @@
       'show',
       tag_or_hash,
       '-s',
-      '--format=oneline']).splitlines()[-1].split()
+      '--format=oneline']).decode('utf-8').splitlines()[-1].split()
   # The info should be on the following form [hash,"Version",version]
   if len(info) == 3 and len(info[0]) == 40 and info[1] == "Version":
     return info[2]
@@ -301,7 +301,7 @@
 
 def is_main():
   remotes = subprocess.check_output(['git', 'branch', '-r', '--contains',
-                                     'HEAD'])
+                                     'HEAD']).decode('utf-8')
   return 'origin/main' in remotes
 
 def get_HEAD_sha1():
@@ -350,7 +350,7 @@
 def ls_files_on_cloud_storage(destination):
   cmd = [get_gsutil(), 'ls', destination]
   PrintCmd(cmd)
-  return subprocess.check_output(cmd)
+  return subprocess.check_output(cmd).decode('utf-8')
 
 def cat_file_on_cloud_storage(destination, ignore_errors=False):
   cmd = [get_gsutil(), 'cat', destination]
@@ -524,7 +524,7 @@
          'com.android.tools.r8.cf_segments.MeasureLib',
          cfFile]
   PrintCmd(cmd)
-  output = subprocess.check_output(cmd)
+  output = subprocess.check_output(cmd).decode('utf-8')
 
   matches = DEX_SEGMENTS_RESULT_PATTERN.findall(output)
 
@@ -556,8 +556,8 @@
 # Ensure that we are not benchmarking with a google jvm.
 def check_java_version():
   cmd= [jdk.GetJavaExecutable(), '-version']
-  output = subprocess.check_output(cmd, stderr = subprocess.STDOUT)
-  m = re.search('openjdk version "([^"]*)"', output.decode('utf-8'))
+  output = subprocess.check_output(cmd, stderr = subprocess.STDOUT).decode('utf-8')
+  m = re.search('openjdk version "([^"]*)"', output)
   if m is None:
     raise Exception("Can't check java version: no version string in output"
         " of 'java -version': '{}'".format(output))
@@ -593,7 +593,7 @@
 def getR8Version(path):
   cmd = [jdk.GetJavaExecutable(), '-cp', path, 'com.android.tools.r8.R8',
         '--version']
-  output = subprocess.check_output(cmd, stderr = subprocess.STDOUT)
+  output = subprocess.check_output(cmd, stderr = subprocess.STDOUT).decode('utf-8')
   # output is of the form 'R8 <version> (with additional info)'
   # so we split on '('; clean up tailing spaces; and strip off 'R8 '.
   return output.split('(')[0].strip()[3:]