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) {