169ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik/* 269ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * Copyright (C) 2015 The Android Open Source Project 369ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * 469ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * Licensed under the Apache License, Version 2.0 (the "License"); 569ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * you may not use this file except in compliance with the License. 669ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * You may obtain a copy of the License at 769ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * 869ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * http://www.apache.org/licenses/LICENSE-2.0 969ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * 1069ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * Unless required by applicable law or agreed to in writing, software 1169ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * distributed under the License is distributed on an "AS IS" BASIS, 1269ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1369ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * See the License for the specific language governing permissions and 1469ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * limitations under the License. 1569ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * 1669ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * Header file of the dexdump utility. 1769ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * 1869ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * This is a re-implementation of the original dexdump utility that was 1969ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * based on Dalvik functions in libdex into a new dexdump that is now 2069ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * based on Art functions in libart instead. The output is identical to 2169ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * the original for correct DEX files. Error messages may differ, however. 2269ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik * Also, ODEX files are no longer supported. 2369ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik */ 2469ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik 2569ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik#ifndef ART_DEXDUMP_DEXDUMP_H_ 2669ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik#define ART_DEXDUMP_DEXDUMP_H_ 2769ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik 2869ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik#include <stdint.h> 2969ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik#include <stdio.h> 3069ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik 3169ae54abd4eaad54dc73b75ea7c8051aa515581dAart Biknamespace art { 3269ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik 3369ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik/* Supported output formats. */ 3469ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bikenum OutputFormat { 3569ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik OUTPUT_PLAIN = 0, // default 3669ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik OUTPUT_XML, // XML-style 3769ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik}; 3869ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik 3969ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik/* Command-line options. */ 4069ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bikstruct Options { 4169ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik bool checksumOnly; 4269ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik bool disassemble; 4369ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik bool exportsOnly; 4469ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik bool ignoreBadChecksum; 45c1d8caa6e0ccfbc534ff94fc8ace0897c59ddd94Nicolas Geoffray bool disableVerifier; 46dce50865e8d37db3de314431496ac61018e45ebeAart Bik bool showAnnotations; 47dce50865e8d37db3de314431496ac61018e45ebeAart Bik bool showCfg; 4869ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik bool showFileHeaders; 4969ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik bool showSectionHeaders; 5069ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik bool verbose; 5169ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik OutputFormat outputFormat; 5269ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik const char* outputFileName; 5369ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik}; 5469ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik 5569ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik/* Prototypes. */ 5669ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bikextern struct Options gOptions; 5769ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bikextern FILE* gOutFile; 5869ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bikint processFile(const char* fileName); 5969ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik 6069ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik} // namespace art 6169ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik 6269ae54abd4eaad54dc73b75ea7c8051aa515581dAart Bik#endif // ART_DEXDUMP_DEXDUMP_H_ 63