Home | History | Annotate | Download | only in sdk
      1 # Copyright 2015 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 from devil.android.sdk import build_tools
      6 from devil.utils import cmd_helper
      7 from devil.utils import lazy
      8 
      9 
     10 _dexdump_path = lazy.WeakConstant(lambda: build_tools.GetPath('dexdump'))
     11 
     12 
     13 def DexDump(dexfiles, file_summary=False):
     14   """A wrapper around the Android SDK's dexdump tool.
     15 
     16   Args:
     17     dexfiles: The dexfile or list of dex files to dump.
     18     file_summary: Display summary information from the file header. (-f)
     19 
     20   Returns:
     21     An iterable over the output lines.
     22   """
     23   # TODO(jbudorick): Add support for more options as necessary.
     24   if isinstance(dexfiles, basestring):
     25     dexfiles = [dexfiles]
     26   args = [_dexdump_path.read()] + dexfiles
     27   if file_summary:
     28     args.append('-f')
     29 
     30   return cmd_helper.IterCmdOutputLines(args)
     31 
     32