diff options
author | Koushik Dutta <koushd@gmail.com> | 2013-05-02 22:58:30 -0700 |
---|---|---|
committer | Koushik Dutta <koushd@gmail.com> | 2013-05-02 22:58:30 -0700 |
commit | 9edb35905d5d6a3f21f107e9eff630b36e16d9ec (patch) | |
tree | 45bdaadfa1fa1655868b168f925a217cb2350c2f | |
parent | 4d9a03bbf5a57bc6c874b8146c34fc46e596c15a (diff) | |
download | bootable_recovery-9edb35905d5d6a3f21f107e9eff630b36e16d9ec.zip bootable_recovery-9edb35905d5d6a3f21f107e9eff630b36e16d9ec.tar.gz bootable_recovery-9edb35905d5d6a3f21f107e9eff630b36e16d9ec.tar.bz2 |
Reverse kang Wil Wheaton Recovery enhancements.
Change-Id: Ia9eace0ff0826801515b335ac6543c1271948612
-rw-r--r-- | Android.mk | 5 | ||||
-rw-r--r-- | extendedcommands.c | 13 | ||||
-rw-r--r-- | recovery.c | 4 | ||||
-rw-r--r-- | su/Android.mk | 19 | ||||
-rw-r--r-- | su/dbstub.c | 11 | ||||
-rwxr-xr-x | utilities/Android.mk | 7 |
6 files changed, 56 insertions, 3 deletions
@@ -85,7 +85,7 @@ else LOCAL_SRC_FILES += $(BOARD_CUSTOM_RECOVERY_KEYMAPPING) endif -LOCAL_STATIC_LIBRARIES += libext4_utils_static libz libsparse_static +LOCAL_STATIC_LIBRARIES += libmake_ext4fs libext4_utils_static libz libsparse_static LOCAL_STATIC_LIBRARIES += libminzip libunz libmincrypt LOCAL_STATIC_LIBRARIES += libminizip libminadbd libedify libbusybox libmkyaffs2image libunyaffs liberase_image libdump_image libflash_image @@ -105,7 +105,7 @@ LOCAL_C_INCLUDES += system/extras/ext4_utils include $(BUILD_EXECUTABLE) -RECOVERY_LINKS := edify busybox flash_image dump_image mkyaffs2image unyaffs erase_image nandroid reboot volume setprop dedupe minizip +RECOVERY_LINKS := make_ext4fs edify busybox flash_image dump_image mkyaffs2image unyaffs erase_image nandroid reboot volume setprop dedupe minizip # nc is provided by external/netcat RECOVERY_SYMLINKS := $(addprefix $(TARGET_RECOVERY_ROOT_OUT)/sbin/,$(RECOVERY_LINKS)) @@ -176,4 +176,5 @@ include $(commands_recovery_local_path)/edify/Android.mk include $(commands_recovery_local_path)/updater/Android.mk include $(commands_recovery_local_path)/applypatch/Android.mk include $(commands_recovery_local_path)/utilities/Android.mk +include $(commands_recovery_local_path)/su/Android.mk commands_recovery_local_path := diff --git a/extendedcommands.c b/extendedcommands.c index eda092c..5a1ab6d 100644 --- a/extendedcommands.c +++ b/extendedcommands.c @@ -1570,7 +1570,9 @@ int verify_root_and_recovery() { } } + int exists = 0; if (0 == lstat("/system/bin/su", &st)) { + exists = 1; if (S_ISREG(st.st_mode)) { if ((st.st_mode & (S_ISUID | S_ISGID)) != (S_ISUID | S_ISGID)) { ui_show_text(1); @@ -1583,6 +1585,7 @@ int verify_root_and_recovery() { } if (0 == lstat("/system/xbin/su", &st)) { + exists = 1; if (S_ISREG(st.st_mode)) { if ((st.st_mode & (S_ISUID | S_ISGID)) != (S_ISUID | S_ISGID)) { ui_show_text(1); @@ -1594,6 +1597,16 @@ int verify_root_and_recovery() { } } + if (!exists) { + ui_show_text(1); + ret = 1; + if (confirm_selection("Root access is missing. Root device?", "Yes - Root device (/system/xbin/su)")) { + __system("cp /sbin/su /system/xbin/su"); + __system("chmod 6755 /system/xbin/su"); + __system("ln -sf /system/xbin/su /system/bin/su"); + } + } + ensure_path_unmounted("/system"); return ret; } @@ -812,7 +812,9 @@ main(int argc, char **argv) { if (strstr(argv[0], "erase_image") != NULL) return erase_image_main(argc, argv); if (strstr(argv[0], "mkyaffs2image") != NULL) - return mkyaffs2image_main(argc, argv); + return mkyaffs2image_main(argc, argv); + if (strstr(argv[0], "make_ext4fs") != NULL) + return make_ext4fs_main(argc, argv); if (strstr(argv[0], "unyaffs") != NULL) return unyaffs_main(argc, argv); if (strstr(argv[0], "nandroid")) diff --git a/su/Android.mk b/su/Android.mk new file mode 100644 index 0000000..3f4bf2e --- /dev/null +++ b/su/Android.mk @@ -0,0 +1,19 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + + +LOCAL_MODULE := su +LOCAL_MODULE_TAGS := eng debug +LOCAL_FORCE_STATIC_EXECUTABLE := true +LOCAL_STATIC_LIBRARIES := libc +LOCAL_C_INCLUDES := external/sqlite/dist +LOCAL_SRC_FILES := ../../../external/koush/Superuser/Superuser/jni/su/su.c ../../../external/koush/Superuser/Superuser/jni/su/activity.c ../../../external/koush/Superuser/Superuser/jni/su/utils.c dbstub.c +LOCAL_CFLAGS := -DSQLITE_OMIT_LOAD_EXTENSION -DREQUESTOR=\"$(SUPERUSER_PACKAGE)\" +ifdef SUPERUSER_PACKAGE_PREFIX + LOCAL_CFLAGS += -DREQUESTOR_PREFIX=\"$(SUPERUSER_PACKAGE_PREFIX)\" +endif +LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES +LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin +include $(BUILD_EXECUTABLE) + diff --git a/su/dbstub.c b/su/dbstub.c new file mode 100644 index 0000000..f06bf1b --- /dev/null +++ b/su/dbstub.c @@ -0,0 +1,11 @@ +#include <stdlib.h> +#include <stdio.h> +#include <limits.h> +#include <sqlite3.h> +#include <time.h> + +#include "../../../external/koush/Superuser/Superuser/jni/su/su.h" + +policy_t database_check(struct su_context *ctx) { + return ALLOW; +} diff --git a/utilities/Android.mk b/utilities/Android.mk index 3d46331..37866af 100755 --- a/utilities/Android.mk +++ b/utilities/Android.mk @@ -49,3 +49,10 @@ LOCAL_CFLAGS := -Dmain=minizip_main -D__ANDROID__ -DIOAPI_NO_64 LOCAL_C_INCLUDES := external/zlib LOCAL_SRC_FILES := ../../../external/zlib/contrib/minizip/minizip.c ../../../external/zlib/contrib/minizip/zip.c ../../../external/zlib/contrib/minizip/ioapi.c include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE := libmake_ext4fs +LOCAL_CFLAGS := -Dmain=make_ext4fs_main +LOCAL_SRC_FILES := ../../../system/extras/ext4_utils/make_ext4fs_main.c +include $(BUILD_STATIC_LIBRARY) |