Disable USB Mass Storage if the USB lun file does not exist.
Change-Id: I185edb4538fa84c17fc2b9a803557bb7a622f880
diff --git a/data.cpp b/data.cpp
index 3c4e609..a95aa24 100644
--- a/data.cpp
+++ b/data.cpp
@@ -675,9 +675,23 @@
mConstValues.insert(make_pair(TW_DONT_UNMOUNT_SYSTEM, "0"));
#endif
#ifdef TW_NO_USB_STORAGE
+ printf("TW_NO_USB_STORAGE := true\n");
mConstValues.insert(make_pair(TW_HAS_USB_STORAGE, "0"));
#else
- mConstValues.insert(make_pair(TW_HAS_USB_STORAGE, "1"));
+ char lun_file[255];
+ string Lun_File_str = CUSTOM_LUN_FILE;
+ size_t found = Lun_File_str.find("%");
+ if (found != string::npos) {
+ sprintf(lun_file, CUSTOM_LUN_FILE, 0);
+ Lun_File_str = lun_file;
+ }
+ if (!TWFunc::Path_Exists(Lun_File_str)) {
+ LOGI("Lun file '%s' does not exist, USB storage mode disabled\n", Lun_File_str.c_str());
+ mConstValues.insert(make_pair(TW_HAS_USB_STORAGE, "0"));
+ } else {
+ LOGI("Lun file '%s'\n", Lun_File_str.c_str());
+ mConstValues.insert(make_pair(TW_HAS_USB_STORAGE, "1"));
+ }
#endif
#ifdef TW_INCLUDE_INJECTTWRP
mConstValues.insert(make_pair(TW_HAS_INJECTTWRP, "1"));
diff --git a/partitionmanager.cpp b/partitionmanager.cpp
index c39a7d1..5230810 100644
--- a/partitionmanager.cpp
+++ b/partitionmanager.cpp
@@ -1709,10 +1709,6 @@
}
//partial kangbang from system/vold
-#ifndef CUSTOM_LUN_FILE
-#define CUSTOM_LUN_FILE "/sys/devices/platform/usb_mass_storage/lun%d/file"
-#endif
-
int TWPartitionManager::Open_Lun_File(string Partition_Path, string Lun_File) {
int fd;
TWPartition* Part = Find_Partition_By_Path(Partition_Path);
diff --git a/variables.h b/variables.h
index 91c1f2c..0b1c7ab 100644
--- a/variables.h
+++ b/variables.h
@@ -167,4 +167,8 @@
// Max archive size for tar backups before we split (1.5GB)
#define MAX_ARCHIVE_SIZE 1610612736LLU
+#ifndef CUSTOM_LUN_FILE
+#define CUSTOM_LUN_FILE "/sys/devices/platform/usb_mass_storage/lun%d/file"
+#endif
+
#endif // _VARIABLES_HEADER_