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
5from devil.android.sdk import build_tools
6from devil.utils import cmd_helper
7from devil.utils import lazy
8
9
10_dexdump_path = lazy.WeakConstant(lambda: build_tools.GetPath('dexdump'))
11
12
13def 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