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