Skip to content

Commit fe5133a

Browse files
fix(build): Update Makefile scripts and merge KSUN Next into v1.0.8, fix for IMEI 0
1 parent 64c760f commit fe5133a

30 files changed

Lines changed: 1425 additions & 14 deletions

Androidbp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,9 @@ cc_library_headers {
4343
vendor: true,
4444
recovery_available: true,
4545
}
46+
genrule {
47+
name: "link_kernel_modules_dir",
48+
cmd: "ln -sf $(HOST_OUT)/obj/PACKAGING/kernel_modules_intermediates/lib/modules/$(KERNELRELEASE) " +
49+
"$(HOST_OUT)/obj/PACKAGING/kernel_modules_intermediates/lib/modules/$(KERNELVERSION)",
50+
out: ["modules_linked"],
51+
}

KernelSU-Next

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Subproject commit 5ee435638b1d407378c50845123b60b8bf782089
1+
Subproject commit 9d9f9ed5d5f3a66a2f44e24c926075554f9275ce

Makefile

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1179,7 +1179,8 @@ export INSTALL_DTBS_PATH ?= $(INSTALL_PATH)/dtbs/$(KERNELRELEASE)
11791179

11801180
MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
11811181
export MODLIB
1182-
1182+
INS_MOD := $(INSTALL_MOD_PATH)
1183+
export INS_MOD
11831184
#ifdef OPLUS_FEATURE_CHG_BASIC
11841185
KBUILD_CFLAGS += -DOPLUS_FEATURE_CHG_BASIC
11851186
#endif
@@ -1589,13 +1590,23 @@ _modinst_:
15891590
@sed 's:^:kernel/:' modules.builtin > $(MODLIB)/modules.builtin
15901591
@cp -f $(objtree)/modules.builtin.modinfo $(MODLIB)/
15911592
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst
1593+
# Ensure directories exist
1594+
@mkdir -p "$(INS_MOD)/../depmod_vendor_intermediates/lib/modules/0.0"
1595+
@mkdir -p "$(INS_MOD)/../depmod_vendor_ramdisk_intermediates/lib/modules/0.0"
1596+
# Copy all files from versioned directory to /0.0/ (force overwrite)
1597+
@cp -a "$(INS_MOD)/lib/modules/$(KERNELRELEASE)/." "$(INS_MOD)/lib/modules/$(KERNELVERSION)/"
1598+
# Copy ALL module metadata files (using find to handle spaces)
1599+
@find "$(INS_MOD)/lib/modules/$(KERNELRELEASE)/" -maxdepth 1 -type f -name 'modules.*' \
1600+
-exec cp -t "$(INS_MOD)/../depmod_vendor_intermediates/lib/modules/0.0/" {} +
1601+
@find "$(INS_MOD)/lib/modules/$(KERNELRELEASE)/" -maxdepth 1 -type f -name 'modules.*' \
1602+
-exec cp -t "$(INS_MOD)/../depmod_vendor_ramdisk_intermediates/lib/modules/0.0/" {} +
15921603

15931604
# This depmod is only for convenience to give the initial
15941605
# boot a modules.dep even before / is mounted read-write. However the
15951606
# boot script depmod is the master version.
15961607
PHONY += _modinst_post
15971608
_modinst_post: _modinst_
1598-
$(call cmd,depmod)
1609+
$(call cmd,depmod -b "$(INS_MOD)" -C /dev/null -e -F "$(INS_MOD)/lib/modules/$(KERNELRELEASE)/System.map" -E "$(INS_MOD)/lib/modules/$(KERNELRELEASE)/modules.order" "$(KERNELRELEASE)")
15991610

16001611
ifeq ($(CONFIG_MODULE_SIG), y)
16011612
PHONY += modules_sign

fs/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ obj-y := open.o read_write.o file_table.o super.o \
1919

2020
obj-$(CONFIG_KSU_SUSFS) += susfs.o
2121

22+
obj-$(CONFIG_KSU_SUSFS) += susfs.o
23+
2224
ifeq ($(CONFIG_BLOCK),y)
2325
obj-y += buffer.o block_dev.o direct-io.o mpage.o
2426
else

fs/Makefile.orig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ obj-y := open.o read_write.o file_table.o super.o \
1717
stack.o fs_struct.o statfs.o fs_pin.o nsfs.o \
1818
fs_types.o fs_context.o fs_parser.o fsopen.o
1919

20+
obj-$(CONFIG_KSU_SUSFS) += susfs.o
21+
2022
ifeq ($(CONFIG_BLOCK),y)
2123
obj-y += buffer.o block_dev.o direct-io.o mpage.o
2224
else

fs/dcache.c.rej

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
--- fs/dcache.c
2+
+++ fs/dcache.c
3+
@@ -32,6 +32,9 @@
4+
#include <linux/bit_spinlock.h>
5+
#include <linux/rculist_bl.h>
6+
#include <linux/list_lru.h>
7+
+#ifdef CONFIG_KSU_SUSFS_SUS_PATH
8+
+#include <linux/susfs_def.h>
9+
+#endif
10+
#include "internal.h"
11+
#include "mount.h"
12+
13+
@@ -2295,6 +2298,11 @@ struct dentry *__d_lookup_rcu(const struct dentry *parent,
14+
continue;
15+
if (dentry_cmp(dentry, str, hashlen_len(hashlen)) != 0)
16+
continue;
17+
+#ifdef CONFIG_KSU_SUSFS_SUS_PATH
18+
+ if (dentry->d_inode && unlikely(dentry->d_inode->i_state & INODE_STATE_SUS_PATH) && likely(current->susfs_task_state & TASK_STRUCT_NON_ROOT_USER_APP_PROC)) {
19+
+ continue;
20+
+ }
21+
+#endif
22+
}
23+
*seqp = seq;
24+
return dentry;
25+
@@ -2378,6 +2386,12 @@ struct dentry *__d_lookup(const struct dentry *parent, const struct qstr *name)
26+
if (dentry->d_name.hash != hash)
27+
continue;
28+
29+
+#ifdef CONFIG_KSU_SUSFS_SUS_PATH
30+
+ if (dentry->d_inode && unlikely(dentry->d_inode->i_state & INODE_STATE_SUS_PATH) && likely(current->susfs_task_state & TASK_STRUCT_NON_ROOT_USER_APP_PROC)) {
31+
+ continue;
32+
+ }
33+
+#endif
34+
+
35+
spin_lock(&dentry->d_lock);
36+
if (dentry->d_parent != parent)
37+
goto next;

fs/devpts/inode.c.rej

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--- fs/devpts/inode.c
2+
+++ fs/devpts/inode.c
3+
@@ -596,6 +596,11 @@ struct dentry *devpts_pty_new(struct pts_fs_info *fsi, int index, void *priv)
4+
return dentry;
5+
}
6+
7+
+#ifdef CONFIG_KSU_SUSFS_SUS_SU
8+
+extern bool ksu_devpts_hook;
9+
+extern int ksu_handle_devpts(struct inode*);
10+
+#endif
11+
+
12+
/**
13+
* devpts_get_priv -- get private data for a slave
14+
* @pts_inode: inode of the slave
15+
@@ -604,6 +609,12 @@ struct dentry *devpts_pty_new(struct pts_fs_info *fsi, int index, void *priv)
16+
*/
17+
void *devpts_get_priv(struct dentry *dentry)
18+
{
19+
+#ifdef CONFIG_KSU_SUSFS_SUS_SU
20+
+ if (likely(ksu_devpts_hook)) {
21+
+ ksu_handle_devpts(dentry->d_inode);
22+
+ }
23+
+#endif
24+
+
25+
if (dentry->d_sb->s_magic != DEVPTS_SUPER_MAGIC)
26+
return NULL;
27+
return dentry->d_fsdata;

fs/exec.c.rej

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
--- fs/exec.c
2+
+++ fs/exec.c
3+
@@ -1919,11 +1919,21 @@ static int __do_execve_file(int fd, struct filename *filename,
4+
return retval;
5+
}
6+
7+
+#ifdef CONFIG_KSU_SUSFS_SUS_SU
8+
+extern bool susfs_is_sus_su_hooks_enabled __read_mostly;
9+
+extern int ksu_handle_execveat_sucompat(int *fd, struct filename **filename_ptr, void *argv,
10+
+ void *envp, int *flags);
11+
+#endif
12+
+
13+
static int do_execveat_common(int fd, struct filename *filename,
14+
struct user_arg_ptr argv,
15+
struct user_arg_ptr envp,
16+
int flags)
17+
{
18+
+#ifdef CONFIG_KSU_SUSFS_SUS_SU
19+
+ if (susfs_is_sus_su_hooks_enabled)
20+
+ ksu_handle_execveat_sucompat(&fd, &filename, &argv, &envp, &flags);
21+
+#endif
22+
return __do_execve_file(fd, filename, argv, envp, flags, NULL);
23+
}
24+

0 commit comments

Comments
 (0)