Allow building of an OEM friendly TWRP

Disable theming
Disable creating the TWRP folder for the settings file
Change factory reset on data/media devices to a full wipe

Change-Id: I3104282b5dd3f55dfff7c8cf39c72750af08563d
diff --git a/Android.mk b/Android.mk
index 7ac4d41..c54f8c0 100644
--- a/Android.mk
+++ b/Android.mk
@@ -278,6 +278,9 @@
 ifneq ($(wildcard bionic/libc/include/sys/capability.h),)
     LOCAL_CFLAGS += -DHAVE_CAPABILITIES
 endif
+ifeq ($(TW_OEM_BUILD),true)
+    LOCAL_CFLAGS += -DTW_OEM_BUILD
+endif
 
 include $(BUILD_EXECUTABLE)
 
diff --git a/data.cpp b/data.cpp
index 230ac73..738bc0f 100644
--- a/data.cpp
+++ b/data.cpp
@@ -294,6 +294,7 @@
 
 int DataManager::SaveValues()
 {
+#ifndef TW_OEM_BUILD
 	if (mBackingFile.empty())
 		return -1;
 
@@ -322,6 +323,7 @@
 		}
 	}
 	fclose(out);
+#endif // ifdef TW_OEM_BUILD
 	return 0;
 }
 
@@ -1078,6 +1080,7 @@
 
 void DataManager::ReadSettingsFile(void)
 {
+#ifndef TW_OEM_BUILD
 	// Load up the values for TWRP - Sleep to let the card be ready
 	char mkdir_path[255], settings_file[255];
 	int is_enc, has_dual, use_ext, has_data_media, has_ext;
@@ -1127,6 +1130,7 @@
 		GetValue(TW_EXTERNAL_PATH, ext_path);
 		PartitionManager.Mount_By_Path(ext_path, 0);
 	}
+#endif // ifdef TW_OEM_BUILD
 	update_tz_environment_variables();
 #ifdef TW_MAX_BRIGHTNESS
 	if (strcmp(EXPAND(TW_BRIGHTNESS_PATH), "/nobrightness") != 0) {
diff --git a/gui/Android.mk b/gui/Android.mk
index 40b67d8..19bb0bc 100644
--- a/gui/Android.mk
+++ b/gui/Android.mk
@@ -68,6 +68,9 @@
 ifeq ($(HAVE_SELINUX), true)
 LOCAL_CFLAGS += -DHAVE_SELINUX
 endif
+ifeq ($(TW_OEM_BUILD),true)
+    LOCAL_CFLAGS += -DTW_OEM_BUILD
+endif
 
 ifeq ($(DEVICE_RESOLUTION),)
 $(warning ********************************************************************************)
diff --git a/gui/action.cpp b/gui/action.cpp
index 453304c..9d7e482 100644
--- a/gui/action.cpp
+++ b/gui/action.cpp
@@ -800,7 +800,7 @@
 					}
 				} else
 					ret_val = PartitionManager.Wipe_By_Path(arg);
-
+#ifdef TW_OEM_BUILD
 				if (arg == DataManager::GetSettingsStoragePath()) {
 					// If we wiped the settings storage path, recreate the TWRP folder and dump the settings
 					string Storage_Path = DataManager::GetSettingsStoragePath();
@@ -814,6 +814,7 @@
 						LOGERR("Unable to recreate TWRP folder and save settings.\n");
 					}
 				}
+#endif
 			}
 			PartitionManager.Update_System_Details();
 			if (ret_val)
diff --git a/gui/gui.cpp b/gui/gui.cpp
index 912899f..b3d4fe1 100644
--- a/gui/gui.cpp
+++ b/gui/gui.cpp
@@ -692,7 +692,7 @@
 	//    unlink("/sdcard/video.last");
 	//    rename("/sdcard/video.bin", "/sdcard/video.last");
 	//    gRecorder = open("/sdcard/video.bin", O_CREAT | O_WRONLY);
-
+#ifndef TW_OEM_BUILD
 	int check = 0;
 	DataManager::GetValue(TW_IS_ENCRYPTED, check);
 	if (check)
@@ -731,14 +731,16 @@
 		theme_path += "/TWRP/theme/ui.zip";
 		if (check || PageManager::LoadPackage("TWRP", theme_path, "main"))
 		{
+#endif // ifndef TW_OEM_BUILD
 			if (PageManager::LoadPackage("TWRP", "/res/ui.xml", "main"))
 			{
 				LOGERR("Failed to load base packages.\n");
 				goto error;
 			}
+#ifndef TW_OEM_BUILD
 		}
 	}
-
+#endif // ifndef TW_OEM_BUILD
 	// Set the default package
 	PageManager::SelectPackage("TWRP");
 
@@ -746,7 +748,7 @@
 	return 0;
 
 error:
-	LOGERR("An internal error has occurred.\n");
+	LOGERR("An internal error has occurred: unable to load theme.\n");
 	gGuiInitialized = 0;
 	return -1;
 }
diff --git a/partition.cpp b/partition.cpp
index 56cae1e..2e43459 100644
--- a/partition.cpp
+++ b/partition.cpp
@@ -1312,7 +1312,9 @@
 		if (Has_Data_Media && !Symlink_Mount_Point.empty()) {
 			Recreate_Media_Folder();
 		}
+#ifndef TW_OEM_BUILD
 		gui_print("You may need to reboot recovery to be able to use /data again.\n");
+#endif
 		return true;
 	} else {
 		Has_Data_Media = Save_Data_Media;
@@ -1556,6 +1558,10 @@
 }
 
 bool TWPartition::Wipe_Data_Without_Wiping_Media() {
+#ifdef TW_OEM_BUILD
+	// In an OEM Build we want to do a full format
+	return Wipe_Encryption();
+#else
 	string dir;
 	#ifdef HAVE_SELINUX
 	fixPermissions perms;
@@ -1599,6 +1605,7 @@
 	}
 	gui_print("Dirent failed to open /data, error!\n");
 	return false;
+#endif // ifdef TW_OEM_BUILD
 }
 
 bool TWPartition::Backup_Tar(string backup_folder) {