diff --git a/media/mtp/mtptest.cpp b/media/mtp/mtptest.cpp
index 89aa622..0d9d45a 100644
--- a/media/mtp/mtptest.cpp
+++ b/media/mtp/mtptest.cpp
@@ -21,9 +21,11 @@
 #include <stdlib.h>
 #include <sys/types.h>
 #include <fcntl.h>
+#include <sys/ioctl.h>
 
 #include "MtpServer.h"
 #include "MtpStorage.h"
+#include "f_mtp.h"
 
 using namespace android;
 
@@ -40,10 +42,13 @@
     close(fd);
 }
 
-int main() {
-    // first disable UMS and enable MTP USB functions
-    enable_usb_function("usb_mass_storage", false);
-    enable_usb_function("mtp", true);
+int main(int argc, char* argv[]) {
+    bool usePTP = false;
+
+    for (int i = 1; i < argc; i++) {
+        if (!strcmp(argv[i], "-p"))
+            usePTP = true;
+    }
 
     int fd = open("/dev/mtp_usb", O_RDWR);
     printf("open returned %d\n", fd);
@@ -52,6 +57,19 @@
         return -1;
     }
 
+    if (usePTP) {
+        // set driver mode to PTP
+        int ret = ioctl(fd, MTP_SET_INTERFACE_MODE, MTP_INTERFACE_MODE_PTP);
+        if (ret) {
+            fprintf(stderr, "MTP_SET_INTERFACE_MODE failed\n");
+            return -1;
+        }
+    }
+
+    // disable UMS and enable MTP USB functions
+    enable_usb_function("usb_mass_storage", false);
+    enable_usb_function("mtp", true);
+
     MtpServer   server(fd, "/data/data/mtp/mtp.db");
     server.addStorage("/sdcard");
     server.scanStorage();
