kernel: backport to 4.4 (#166)
These changes make KernelSU work on kernel4.4 [link](https://github.com/F-19-F/android_kernel_oneplus_msm8998). LINUX_VERSION_CODE macro changes have been vertied on 4.4 4.9 4.14. For kernel 4.4,just pick two commits * [introduce KernelSU](2993524f2f) * [allow init exec ksud under nosuid](3df9df42a6)
This commit is contained in:
30
kernel/kernel_compat.c
Normal file
30
kernel/kernel_compat.c
Normal file
@@ -0,0 +1,30 @@
|
||||
#include "linux/version.h"
|
||||
#include "linux/init.h"
|
||||
#include "linux/fs.h"
|
||||
ssize_t kernel_read_compat(struct file *p, void *buf, size_t count, loff_t *pos){
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
|
||||
return kernel_read(p, buf, count, pos);
|
||||
#else
|
||||
loff_t offset = pos ? *pos : 0;
|
||||
ssize_t result = kernel_read(p, offset, (char *)buf, count);
|
||||
if (pos && result > 0)
|
||||
{
|
||||
*pos = offset + result;
|
||||
}
|
||||
return result;
|
||||
#endif
|
||||
}
|
||||
|
||||
ssize_t kernel_write_compat(struct file *p, const void *buf, size_t count, loff_t *pos){
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
|
||||
return kernel_write(p, buf, count, pos);
|
||||
#else
|
||||
loff_t offset = pos ? *pos : 0;
|
||||
ssize_t result = kernel_write(p, buf, count, offset);
|
||||
if (pos && result > 0)
|
||||
{
|
||||
*pos = offset + result;
|
||||
}
|
||||
return result;
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user