Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5da28962 authored by sidex15's avatar sidex15 Committed by Pranav Vashi
Browse files

susfs: Revert renaming symbols in KernelSU driver



- In order to reduce the extra patch code and increase the rate of hunk succeed, we do not rename the symbols in KernelSU drvier but instead do it all in kernel/kallsym.c

- Make susfs_starts_with() global as it maybe useful in future

Co-authored-by: default avatarsidex15 <24408329+sidex15@users.noreply.github.com>
Co-authored-by: default avatarsimonpunk <simonpunk2016@gmail.com>
Signed-off-by: default avatarPranav Vashi <neobuddy89@gmail.com>
parent 3afa1c85
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ static spinlock_t susfs_spin_lock;

extern bool susfs_is_current_ksu_domain(void);
#ifdef CONFIG_KSU_SUSFS_SUS_MOUNT
extern void ksu_try_umount(const char *mnt, bool check_mnt, int flags, uid_t uid);
extern void try_umount(const char *mnt, bool check_mnt, int flags, uid_t uid);
#endif
extern bool susfs_is_avc_log_spoofing_enabled;

@@ -34,6 +34,14 @@ bool susfs_is_log_enabled __read_mostly = true;
#define SUSFS_LOGE(fmt, ...) 
#endif

bool susfs_starts_with(const char *str, const char *prefix) {
    while (*prefix) {
        if (*str++ != *prefix++)
            return false;
    }
    return true;
}

/* sus_path */
#ifdef CONFIG_KSU_SUSFS_SUS_PATH
static LIST_HEAD(LH_SUS_PATH_LOOP);
@@ -858,9 +866,9 @@ void susfs_try_umount(uid_t target_uid) {
	// We should umount in reversed order
	list_for_each_entry_reverse(cursor, &LH_TRY_UMOUNT_PATH, list) {
		if (cursor->info.mnt_mode == TRY_UMOUNT_DEFAULT) {
			ksu_try_umount(cursor->info.target_pathname, false, 0, target_uid);
			try_umount(cursor->info.target_pathname, false, 0, target_uid);
		} else if (cursor->info.mnt_mode == TRY_UMOUNT_DETACH) {
			ksu_try_umount(cursor->info.target_pathname, false, MNT_DETACH, target_uid);
			try_umount(cursor->info.target_pathname, false, MNT_DETACH, target_uid);
		} else {
			SUSFS_LOGE("failed umounting '%s' for uid: %d, mnt_mode '%d' not supported\n",
							cursor->info.target_pathname, target_uid, cursor->info.mnt_mode);
+0 −7
Original line number Diff line number Diff line
@@ -96,11 +96,4 @@ static inline void susfs_set_current_proc_su_not_allowed(void) {
	set_ti_thread_flag(&current->thread_info, TIF_PROC_SU_NOT_ALLOWED);
}

static inline bool susfs_starts_with(const char *str, const char *prefix) {
    while (*prefix) {
        if (*str++ != *prefix++)
            return false;
    }
    return true;
}
#endif // #ifndef KSU_SUSFS_DEF_H
+25 −1
Original line number Diff line number Diff line
@@ -592,6 +592,11 @@ static void s_stop(struct seq_file *m, void *p)
{
}

#ifdef CONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS
extern bool susfs_starts_with(const char *str, const char *prefix);
#endif


static int s_show(struct seq_file *m, void *p)
{
	struct kallsym_iter *iter = m->private;
@@ -618,7 +623,26 @@ static int s_show(struct seq_file *m, void *p)
			   iter->type, iter->name);
#else
	{
		if (strstr(iter->name, "ksu_") || !strncmp(iter->name, "susfs_", 6) || !strncmp(iter->name, "ksud", 4)) {
		if (susfs_starts_with(iter->name, "ksu_") ||
			susfs_starts_with(iter->name, "__ksu_") ||
			susfs_starts_with(iter->name, "susfs_") ||
			susfs_starts_with(iter->name, "ksud") ||
			susfs_starts_with(iter->name, "is_ksu_") ||
			susfs_starts_with(iter->name, "is_manager_") ||
			susfs_starts_with(iter->name, "escape_to_") ||
			susfs_starts_with(iter->name, "setup_selinux") ||
			susfs_starts_with(iter->name, "track_throne") ||
			susfs_starts_with(iter->name, "on_post_fs_data") ||
			susfs_starts_with(iter->name, "try_umount") ||
			susfs_starts_with(iter->name, "kernelsu") ||
			susfs_starts_with(iter->name, "__initcall__kmod_kernelsu") ||
			susfs_starts_with(iter->name, "apply_kernelsu") ||
			susfs_starts_with(iter->name, "handle_sepolicy") ||
			susfs_starts_with(iter->name, "getenforce") ||
			susfs_starts_with(iter->name, "setenforce") ||
			susfs_starts_with(iter->name, "is_zygote"))
		{

			return 0;
		}
		seq_printf(m, "%pK %c %s\n", (void *)iter->value,