diff --git a/dexdump/dexdump.cc b/dexdump/dexdump.cc
index 61a1209..9536381 100644
--- a/dexdump/dexdump.cc
+++ b/dexdump/dexdump.cc
@@ -1882,10 +1882,11 @@
     fprintf(gOutFile, "Processing '%s'...\n", fileName);
   }
 
+  const bool kVerifyChecksum = !gOptions.ignoreBadChecksum;
+  const bool kVerify = !gOptions.disableVerifier;
+  std::string content;
   // If the file is not a .dex file, the function tries .zip/.jar/.apk files,
   // all of which are Zip archives with "classes.dex" inside.
-  const bool kVerifyChecksum = !gOptions.ignoreBadChecksum;
-  std::string content;
   // TODO: add an api to android::base to read a std::vector<uint8_t>.
   if (!android::base::ReadFileToString(fileName, &content)) {
     LOG(ERROR) << "ReadFileToString failed";
@@ -1897,7 +1898,7 @@
   if (!dex_file_loader.OpenAll(reinterpret_cast<const uint8_t*>(content.data()),
                                content.size(),
                                fileName,
-                               /*verify*/ true,
+                               kVerify,
                                kVerifyChecksum,
                                &error_msg,
                                &dex_files)) {
diff --git a/dexdump/dexdump.h b/dexdump/dexdump.h
index 6939f90..930d0ce 100644
--- a/dexdump/dexdump.h
+++ b/dexdump/dexdump.h
@@ -42,6 +42,7 @@
   bool disassemble;
   bool exportsOnly;
   bool ignoreBadChecksum;
+  bool disableVerifier;
   bool showAnnotations;
   bool showCfg;
   bool showFileHeaders;
diff --git a/dexdump/dexdump_main.cc b/dexdump/dexdump_main.cc
index 3c16fbe..f4a3866 100644
--- a/dexdump/dexdump_main.cc
+++ b/dexdump/dexdump_main.cc
@@ -39,7 +39,7 @@
  */
 static void usage(void) {
   LOG(ERROR) << "Copyright (C) 2007 The Android Open Source Project\n";
-  LOG(ERROR) << gProgName << ": [-a] [-c] [-d] [-e] [-f] [-h] [-i] [-l layout] [-o outfile]"
+  LOG(ERROR) << gProgName << ": [-a] [-c] [-d] [-e] [-f] [-h] [-i] [-j] [-l layout] [-o outfile]"
                   " dexfile...\n";
   LOG(ERROR) << " -a : display annotations";
   LOG(ERROR) << " -c : verify checksum and exit";
@@ -49,6 +49,7 @@
   LOG(ERROR) << " -g : display CFG for dex";
   LOG(ERROR) << " -h : display file header details";
   LOG(ERROR) << " -i : ignore checksum failures";
+  LOG(ERROR) << " -j : disable dex file verification";
   LOG(ERROR) << " -l : output layout, either 'plain' or 'xml'";
   LOG(ERROR) << " -o : output file name (defaults to stdout)";
 }
@@ -64,7 +65,7 @@
 
   // Parse all arguments.
   while (1) {
-    const int ic = getopt(argc, argv, "acdefghil:o:");
+    const int ic = getopt(argc, argv, "acdefghijl:o:");
     if (ic < 0) {
       break;  // done
     }
@@ -93,6 +94,9 @@
       case 'i':  // continue even if checksum is bad
         gOptions.ignoreBadChecksum = true;
         break;
+      case 'j':  // disable dex file verification
+        gOptions.disableVerifier = true;
+        break;
       case 'l':  // layout
         if (strcmp(optarg, "plain") == 0) {
           gOptions.outputFormat = OUTPUT_PLAIN;
