From 3454ade92db48236057814f0ade5fa45bd57cd62 Mon Sep 17 00:00:00 2001 From: Dees Troy Date: Tue, 20 Jan 2015 19:21:04 +0000 Subject: Use /twres instead of /res for theme resources AOSP and other ROM trees now do a rm -rf of the res folder during the ramdisk creation process that removes the TWRP resources. Using /twres instead of /res works around this issue making TWRP more compatible with AOSP and other build trees. Change-Id: I0d4c7e06ca381ac5aa0069b6f2b8c47f7dec49e7 --- Android.mk | 5 +++++ gui/Android.mk | 19 ++++++++++--------- gui/action.cpp | 2 +- gui/gui.cpp | 12 +++++++----- gui/pages.cpp | 7 ++++--- gui/resources.cpp | 2 +- minuitwrp/Android.mk | 1 + minuitwrp/graphics.c | 2 +- minuitwrp/resources.c | 5 +++-- prebuilt/Android.mk | 16 ++++++++-------- twrp-functions.cpp | 16 ++++++++-------- 11 files changed, 49 insertions(+), 38 deletions(-) diff --git a/Android.mk b/Android.mk index bd9dd7e58..bd5c33ccb 100644 --- a/Android.mk +++ b/Android.mk @@ -28,6 +28,9 @@ ifeq ($(PROJECT_PATH_AGREES),true) include $(CLEAR_VARS) +TWRES_PATH := "/twres/" +TWHTCD_PATH := $(TWRES_PATH)htcd/ + TARGET_RECOVERY_GUI := true LOCAL_SRC_FILES := \ @@ -364,6 +367,8 @@ endif ifneq ($(TARGET_RECOVERY_DEVICE_MODULES),) LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_RECOVERY_DEVICE_MODULES) endif +LOCAL_CFLAGS += -DTWRES=\"$(TWRES_PATH)\" +LOCAL_CFLAGS += -DTWHTCD_PATH=\"$(TWHTCD_PATH)\" include $(BUILD_EXECUTABLE) diff --git a/gui/Android.mk b/gui/Android.mk index e75c5214a..fca5e0787 100644 --- a/gui/Android.mk +++ b/gui/Android.mk @@ -82,6 +82,7 @@ ifeq ($(TW_CUSTOM_THEME),) endif LOCAL_C_INCLUDES += bionic external/stlport/stlport $(commands_recovery_local_path)/gui/devices/$(DEVICE_RESOLUTION) +LOCAL_CFLAGS += -DTWRES=\"$(TWRES_PATH)\" include $(BUILD_STATIC_LIBRARY) @@ -90,7 +91,7 @@ include $(CLEAR_VARS) LOCAL_MODULE := twrp LOCAL_MODULE_TAGS := eng LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES -LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/res +LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)$(TWRES_PATH) TWRP_RES_LOC := $(commands_recovery_local_path)/gui/devices/common/res TWRP_COMMON_XML := $(hide) echo "No common TWRP XML resources" @@ -100,20 +101,20 @@ ifeq ($(TW_CUSTOM_THEME),) WATCH := 240x240 280x280 320x320 TWRP_THEME_LOC := $(commands_recovery_local_path)/gui/devices/$(DEVICE_RESOLUTION)/res ifneq ($(filter $(DEVICE_RESOLUTION), $(PORTRAIT)),) - TWRP_COMMON_XML := cp -fr $(commands_recovery_local_path)/gui/devices/portrait/res/* $(TARGET_RECOVERY_ROOT_OUT)/res/ + TWRP_COMMON_XML := cp -fr $(commands_recovery_local_path)/gui/devices/portrait/res/* $(TARGET_RECOVERY_ROOT_OUT)$(TWRES_PATH) else ifneq ($(filter $(DEVICE_RESOLUTION), $(LANDSCAPE)),) - TWRP_COMMON_XML := cp -fr $(commands_recovery_local_path)/gui/devices/landscape/res/* $(TARGET_RECOVERY_ROOT_OUT)/res/ + TWRP_COMMON_XML := cp -fr $(commands_recovery_local_path)/gui/devices/landscape/res/* $(TARGET_RECOVERY_ROOT_OUT)$(TWRES_PATH) else ifneq ($(filter $(DEVICE_RESOLUTION), $(WATCH)),) - TWRP_COMMON_XML := cp -fr $(commands_recovery_local_path)/gui/devices/watch/res/* $(TARGET_RECOVERY_ROOT_OUT)/res/ + TWRP_COMMON_XML := cp -fr $(commands_recovery_local_path)/gui/devices/watch/res/* $(TARGET_RECOVERY_ROOT_OUT)$(TWRES_PATH) endif else TWRP_THEME_LOC := $(TW_CUSTOM_THEME) endif ifeq ($(TW_DISABLE_TTF), true) - TWRP_REMOVE_FONT := rm -f $(TARGET_RECOVERY_ROOT_OUT)/res/fonts/*.ttf + TWRP_REMOVE_FONT := rm -f $(TARGET_RECOVERY_ROOT_OUT)$(TWRES_PATH)fonts/*.ttf else - TWRP_REMOVE_FONT := rm -f $(TARGET_RECOVERY_ROOT_OUT)/res/fonts/*.dat + TWRP_REMOVE_FONT := rm -f $(TARGET_RECOVERY_ROOT_OUT)$(TWRES_PATH)fonts/*.dat endif TWRP_RES_GEN := $(intermediates)/twrp @@ -124,9 +125,9 @@ else endif $(TWRP_RES_GEN): - mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/res/ - cp -fr $(TWRP_RES_LOC)/* $(TARGET_RECOVERY_ROOT_OUT)/res/ - cp -fr $(TWRP_THEME_LOC)/* $(TARGET_RECOVERY_ROOT_OUT)/res/ + mkdir -p $(TARGET_RECOVERY_ROOT_OUT)$(TWRES_PATH) + cp -fr $(TWRP_RES_LOC)/* $(TARGET_RECOVERY_ROOT_OUT)$(TWRES_PATH) + cp -fr $(TWRP_THEME_LOC)/* $(TARGET_RECOVERY_ROOT_OUT)$(TWRES_PATH) $(TWRP_COMMON_XML) $(TWRP_REMOVE_FONT) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/sbin/ diff --git a/gui/action.cpp b/gui/action.cpp index a3cf22ef2..d75843044 100644 --- a/gui/action.cpp +++ b/gui/action.cpp @@ -496,7 +496,7 @@ int GUIAction::reload(std::string arg) { // Loading the custom theme failed - try loading the stock theme LOGINFO("Attempting to reload stock theme...\n"); - if (PageManager::ReloadPackage("TWRP", "/res/ui.xml")) + if (PageManager::ReloadPackage("TWRP", TWRES "ui.xml")) { LOGERR("Failed to load base packages.\n"); ret_val = 1; diff --git a/gui/gui.cpp b/gui/gui.cpp index 9b918f0e7..fecc03278 100644 --- a/gui/gui.cpp +++ b/gui/gui.cpp @@ -715,11 +715,12 @@ std::string gui_parse_text(string inText) extern "C" int gui_init(void) { gr_init(); + std::string curtain_path = TWRES "images/curtain.jpg"; - if (res_create_surface("/res/images/curtain.jpg", &gCurtain)) + if (res_create_surface(curtain_path.c_str(), &gCurtain)) { printf - ("Unable to locate '/res/images/curtain.jpg'\nDid you set a DEVICE_RESOLUTION in your config files?\n"); + ("Unable to locate '%s'\nDid you set a DEVICE_RESOLUTION in your config files?\n", curtain_path.c_str()); return -1; } @@ -734,9 +735,10 @@ extern "C" int gui_loadResources(void) #ifndef TW_OEM_BUILD int check = 0; DataManager::GetValue(TW_IS_ENCRYPTED, check); + if (check) { - if (PageManager::LoadPackage("TWRP", "/res/ui.xml", "decrypt")) + if (PageManager::LoadPackage("TWRP", TWRES "ui.xml", "decrypt")) { LOGERR("Failed to load base packages.\n"); goto error; @@ -771,7 +773,7 @@ extern "C" int gui_loadResources(void) if (check || PageManager::LoadPackage("TWRP", theme_path, "main")) { #endif // ifndef TW_OEM_BUILD - if (PageManager::LoadPackage("TWRP", "/res/ui.xml", "main")) + if (PageManager::LoadPackage("TWRP", TWRES "ui.xml", "main")) { LOGERR("Failed to load base packages.\n"); goto error; @@ -807,7 +809,7 @@ extern "C" int gui_loadCustomResources(void) // There is a custom theme, try to load it if (PageManager::ReloadPackage("TWRP", theme_path)) { // Custom theme failed to load, try to load stock theme - if (PageManager::ReloadPackage("TWRP", "/res/ui.xml")) { + if (PageManager::ReloadPackage("TWRP", TWRES "ui.xml")) { LOGERR("Failed to load base packages.\n"); goto error; } diff --git a/gui/pages.cpp b/gui/pages.cpp index 94c351be2..8fef7b4c8 100644 --- a/gui/pages.cpp +++ b/gui/pages.cpp @@ -644,11 +644,11 @@ int PageSet::CheckInclude(ZipArchive* package, xml_document<> *parentDoc) if (!attr) break; - LOGINFO("PageSet::CheckInclude loading filename: '%s'\n", filename.c_str()); if (!package) { // We can try to load the XML directly... - filename = "/res/"; + filename = TWRES; filename += attr->value(); + LOGINFO("PageSet::CheckInclude loading filename: '%s'\n", filename.c_str()); struct stat st; if(stat(filename.c_str(),&st) != 0) { LOGERR("Unable to locate '%s'\n", filename.c_str()); @@ -668,6 +668,7 @@ int PageSet::CheckInclude(ZipArchive* package, xml_document<> *parentDoc) close(fd); } else { filename += attr->value(); + LOGINFO("PageSet::CheckInclude loading filename: '%s'\n", filename.c_str()); const ZipEntry* ui_xml = mzFindZipEntry(package, filename.c_str()); if (ui_xml == NULL) { @@ -1094,7 +1095,7 @@ int PageManager::ReloadPackage(std::string name, std::string package) if (LoadPackage(name, package, "main") != 0) { - LOGERR("Failed to load package.\n"); + LOGERR("Failed to load package '%s'.\n", package.c_str()); mPageSets.insert(std::pair(name, set)); return -1; } diff --git a/gui/resources.cpp b/gui/resources.cpp index 0d32ceee0..d769c17eb 100644 --- a/gui/resources.cpp +++ b/gui/resources.cpp @@ -100,7 +100,7 @@ FontResource::FontResource(xml_node<>* node, ZipArchive* pZip) } else { - file = std::string("/res/fonts/") + file; + file = std::string(TWRES "fonts/") + file; mFont = gr_ttf_loadFont(file.c_str(), size, dpi); } } diff --git a/minuitwrp/Android.mk b/minuitwrp/Android.mk index c4380aadd..cff532167 100644 --- a/minuitwrp/Android.mk +++ b/minuitwrp/Android.mk @@ -123,6 +123,7 @@ else LOCAL_SRC_FILES += truetype.c endif +LOCAL_CFLAGS += -DTWRES=\"$(TWRES_PATH)\" LOCAL_SHARED_LIBRARIES += libz libc libcutils libjpeg libpng LOCAL_STATIC_LIBRARIES += libpixelflinger_static LOCAL_MODULE_TAGS := eng diff --git a/minuitwrp/graphics.c b/minuitwrp/graphics.c index d08e74303..512a95716 100644 --- a/minuitwrp/graphics.c +++ b/minuitwrp/graphics.c @@ -626,7 +626,7 @@ void* gr_loadFont(const char* fontName) { char tmp[128]; - sprintf(tmp, "/res/fonts/%s.dat", fontName); + sprintf(tmp, TWRES "fonts/%s.dat", fontName); fd = open(tmp, O_RDONLY); if (fd == -1) return NULL; diff --git a/minuitwrp/resources.c b/minuitwrp/resources.c index bb301477f..2e58311af 100644 --- a/minuitwrp/resources.c +++ b/minuitwrp/resources.c @@ -59,7 +59,8 @@ static int open_png(const char* name, png_structp* png_ptr, png_infop* info_ptr, unsigned char header[8]; int result = 0; - snprintf(resPath, sizeof(resPath)-1, "/res/images/%s.png", name); + snprintf(resPath, sizeof(resPath)-1, TWRES "images/%s.png", name); + printf("open_png %s\n", resPath); resPath[sizeof(resPath)-1] = '\0'; FILE* fp = fopen(resPath, "rb"); if (fp == NULL) { @@ -261,7 +262,7 @@ int res_create_surface_jpg(const char* name, gr_surface* pSurface) { if (fp == NULL) { char resPath[256]; - snprintf(resPath, sizeof(resPath)-1, "/res/images/%s", name); + snprintf(resPath, sizeof(resPath)-1, TWRES "images/%s", name); resPath[sizeof(resPath)-1] = '\0'; fp = fopen(resPath, "rb"); if (fp == NULL) { diff --git a/prebuilt/Android.mk b/prebuilt/Android.mk index 2671e1b3d..00c524890 100644 --- a/prebuilt/Android.mk +++ b/prebuilt/Android.mk @@ -215,7 +215,7 @@ ifeq ($(TW_INCLUDE_DUMLOCK), true) LOCAL_MODULE := htcdumlocksys LOCAL_MODULE_TAGS := eng LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES - LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/res/htcd + LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)$(TWHTCD_PATH) LOCAL_SRC_FILES := $(LOCAL_MODULE) include $(BUILD_PREBUILT) @@ -224,7 +224,7 @@ ifeq ($(TW_INCLUDE_DUMLOCK), true) LOCAL_MODULE := flash_imagesys LOCAL_MODULE_TAGS := eng LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES - LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/res/htcd + LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)$(TWHTCD_PATH) LOCAL_SRC_FILES := $(LOCAL_MODULE) include $(BUILD_PREBUILT) @@ -233,7 +233,7 @@ ifeq ($(TW_INCLUDE_DUMLOCK), true) LOCAL_MODULE := dump_imagesys LOCAL_MODULE_TAGS := eng LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES - LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/res/htcd + LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)$(TWHTCD_PATH) LOCAL_SRC_FILES := $(LOCAL_MODULE) include $(BUILD_PREBUILT) @@ -242,7 +242,7 @@ ifeq ($(TW_INCLUDE_DUMLOCK), true) LOCAL_MODULE := libbmlutils.so LOCAL_MODULE_TAGS := eng LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES - LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/res/htcd + LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)$(TWHTCD_PATH) LOCAL_SRC_FILES := $(LOCAL_MODULE) include $(BUILD_PREBUILT) @@ -251,7 +251,7 @@ ifeq ($(TW_INCLUDE_DUMLOCK), true) LOCAL_MODULE := libflashutils.so LOCAL_MODULE_TAGS := eng LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES - LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/res/htcd + LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)$(TWHTCD_PATH) LOCAL_SRC_FILES := $(LOCAL_MODULE) include $(BUILD_PREBUILT) @@ -260,7 +260,7 @@ ifeq ($(TW_INCLUDE_DUMLOCK), true) LOCAL_MODULE := libmmcutils.so LOCAL_MODULE_TAGS := eng LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES - LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/res/htcd + LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)$(TWHTCD_PATH) LOCAL_SRC_FILES := $(LOCAL_MODULE) include $(BUILD_PREBUILT) @@ -269,7 +269,7 @@ ifeq ($(TW_INCLUDE_DUMLOCK), true) LOCAL_MODULE := libmtdutils.so LOCAL_MODULE_TAGS := eng LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES - LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/res/htcd + LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)$(TWHTCD_PATH) LOCAL_SRC_FILES := $(LOCAL_MODULE) include $(BUILD_PREBUILT) @@ -278,7 +278,7 @@ ifeq ($(TW_INCLUDE_DUMLOCK), true) LOCAL_MODULE := HTCDumlock.apk LOCAL_MODULE_TAGS := eng LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES - LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/res/htcd + LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)$(TWHTCD_PATH) LOCAL_SRC_FILES := $(LOCAL_MODULE) include $(BUILD_PREBUILT) endif diff --git a/twrp-functions.cpp b/twrp-functions.cpp index 50f05a70a..15f442f76 100644 --- a/twrp-functions.cpp +++ b/twrp-functions.cpp @@ -354,30 +354,30 @@ void TWFunc::install_htc_dumlock(void) { return; gui_print("Installing HTC Dumlock to system...\n"); - copy_file("/res/htcd/htcdumlocksys", "/system/bin/htcdumlock", 0755); + copy_file(TWHTCD_PATH "htcdumlocksys", "/system/bin/htcdumlock", 0755); if (!Path_Exists("/system/bin/flash_image")) { gui_print("Installing flash_image...\n"); - copy_file("/res/htcd/flash_imagesys", "/system/bin/flash_image", 0755); + copy_file(TWHTCD_PATH "flash_imagesys", "/system/bin/flash_image", 0755); need_libs = 1; } else gui_print("flash_image is already installed, skipping...\n"); if (!Path_Exists("/system/bin/dump_image")) { gui_print("Installing dump_image...\n"); - copy_file("/res/htcd/dump_imagesys", "/system/bin/dump_image", 0755); + copy_file(TWHTCD_PATH "dump_imagesys", "/system/bin/dump_image", 0755); need_libs = 1; } else gui_print("dump_image is already installed, skipping...\n"); if (need_libs) { gui_print("Installing libs needed for flash_image and dump_image...\n"); - copy_file("/res/htcd/libbmlutils.so", "/system/lib/libbmlutils.so", 0755); - copy_file("/res/htcd/libflashutils.so", "/system/lib/libflashutils.so", 0755); - copy_file("/res/htcd/libmmcutils.so", "/system/lib/libmmcutils.so", 0755); - copy_file("/res/htcd/libmtdutils.so", "/system/lib/libmtdutils.so", 0755); + copy_file(TWHTCD_PATH "libbmlutils.so", "/system/lib/libbmlutils.so", 0644); + copy_file(TWHTCD_PATH "libflashutils.so", "/system/lib/libflashutils.so", 0644); + copy_file(TWHTCD_PATH "libmmcutils.so", "/system/lib/libmmcutils.so", 0644); + copy_file(TWHTCD_PATH "libmtdutils.so", "/system/lib/libmtdutils.so", 0644); } gui_print("Installing HTC Dumlock app...\n"); mkdir("/data/app", 0777); unlink("/data/app/com.teamwin.htcdumlock*"); - copy_file("/res/htcd/HTCDumlock.apk", "/data/app/com.teamwin.htcdumlock.apk", 0777); + copy_file(TWHTCD_PATH "HTCDumlock.apk", "/data/app/com.teamwin.htcdumlock.apk", 0777); sync(); gui_print("HTC Dumlock is installed.\n"); } -- cgit v1.2.3