summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmtp/MtpDebug.cpp23
-rwxr-xr-xmtp/MtpDebug.h1
-rwxr-xr-xmtp/twrpMtp.cpp4
-rwxr-xr-xmtp/twrpMtp.hpp2
-rw-r--r--partitionmanager.cpp5
5 files changed, 23 insertions, 12 deletions
diff --git a/mtp/MtpDebug.cpp b/mtp/MtpDebug.cpp
index c3a3d8a5a..47834ab26 100755
--- a/mtp/MtpDebug.cpp
+++ b/mtp/MtpDebug.cpp
@@ -21,20 +21,20 @@
#include <stdio.h>
#define MTP_DEBUG_BUFFER_SIZE 2048
-//#define MTP_DEBUG 1
+static int debug_enabled = 0;
extern "C" void mtpdebug(const char *fmt, ...)
{
-#ifdef MTP_DEBUG
- char buf[MTP_DEBUG_BUFFER_SIZE]; // We're going to limit a single request to 512 bytes
+ if (debug_enabled) {
+ char buf[MTP_DEBUG_BUFFER_SIZE]; // We're going to limit a single request to 512 bytes
- va_list ap;
- va_start(ap, fmt);
- vsnprintf(buf, MTP_DEBUG_BUFFER_SIZE, fmt, ap);
- va_end(ap);
+ va_list ap;
+ va_start(ap, fmt);
+ vsnprintf(buf, MTP_DEBUG_BUFFER_SIZE, fmt, ap);
+ va_end(ap);
- fputs(buf, stdout);
-#endif
+ fputs(buf, stdout);
+ }
}
struct CodeEntry {
@@ -417,3 +417,8 @@ const char* MtpDebug::getDevicePropCodeName(MtpPropertyCode code) {
return "NONE";
return getCodeName(code, sDevicePropCodes);
}
+
+void MtpDebug::enableDebug(void) {
+ debug_enabled = 1;
+ MTPD("MTP debug logging enabled\n");
+}
diff --git a/mtp/MtpDebug.h b/mtp/MtpDebug.h
index 12a23ccc8..b572b3b96 100755
--- a/mtp/MtpDebug.h
+++ b/mtp/MtpDebug.h
@@ -43,6 +43,7 @@ public:
static const char* getFormatCodeName(MtpObjectFormat code);
static const char* getObjectPropCodeName(MtpPropertyCode code);
static const char* getDevicePropCodeName(MtpPropertyCode code);
+ static void enableDebug();
};
diff --git a/mtp/twrpMtp.cpp b/mtp/twrpMtp.cpp
index ff58f79a7..6fe0ee3e8 100755
--- a/mtp/twrpMtp.cpp
+++ b/mtp/twrpMtp.cpp
@@ -68,7 +68,9 @@ int main(int argc, char* argv[]) {
}
#endif //def TWRPMTP
-twrpMtp::twrpMtp() {
+twrpMtp::twrpMtp(int debug_enabled = 0) {
+ if (debug_enabled)
+ MtpDebug::enableDebug();
mtpstorages = new storages;
}
diff --git a/mtp/twrpMtp.hpp b/mtp/twrpMtp.hpp
index 2dd56a226..bed81c0e9 100755
--- a/mtp/twrpMtp.hpp
+++ b/mtp/twrpMtp.hpp
@@ -33,7 +33,7 @@
class twrpMtp {
public:
- twrpMtp();
+ twrpMtp(int debug_enabled /* = 0 */);
pthread_t runserver(void);
void addStorage(std::string display, std::string path, int mtpid);
private:
diff --git a/partitionmanager.cpp b/partitionmanager.cpp
index 59451e3e7..a8b61c3fc 100644
--- a/partitionmanager.cpp
+++ b/partitionmanager.cpp
@@ -2171,7 +2171,10 @@ bool TWPartitionManager::Enable_MTP(void) {
TWFunc::write_file("/sys/class/android_usb/android0/idProduct", productstr);
property_set("sys.usb.config", "mtp,adb");
std::vector<TWPartition*>::iterator iter;
- twrpMtp *mtp = new twrpMtp();
+ /* To enable MTP debug, use the twrp command line feature to
+ * twrp set tw_mtp_debug 1
+ */
+ twrpMtp *mtp = new twrpMtp(DataManager::GetIntValue("tw_mtp_debug"));
for (iter = Partitions.begin(); iter != Partitions.end(); iter++) {
if ((*iter)->Is_Storage && (*iter)->Is_Present && (*iter)->Mount(false)) {
printf("twrp mtpid: %d\n", (*iter)->mtpid);