You've already forked ReZygisk
mirror of
https://github.com/PerformanC/ReZygisk.git
synced 2025-09-06 06:37:01 +00:00
Receive the reply_ok to prevent from dmesg flooding (#35)
This commit is contained in:
@@ -33,6 +33,7 @@ val moduleId by extra("zygisksu")
|
|||||||
val moduleName by extra("Zygisk on KernelSU")
|
val moduleName by extra("Zygisk on KernelSU")
|
||||||
val verName by extra("v4-0.7.1")
|
val verName by extra("v4-0.7.1")
|
||||||
val verCode by extra(gitCommitCount)
|
val verCode by extra(gitCommitCount)
|
||||||
|
val commitHash by extra(gitCommitHash)
|
||||||
val minKsuVersion by extra(10940)
|
val minKsuVersion by extra(10940)
|
||||||
val minKsudVersion by extra(10942)
|
val minKsudVersion by extra(10942)
|
||||||
val maxKsuVersion by extra(20000)
|
val maxKsuVersion by extra(20000)
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ val minKsuVersion: Int by rootProject.extra
|
|||||||
val minKsudVersion: Int by rootProject.extra
|
val minKsudVersion: Int by rootProject.extra
|
||||||
val maxKsuVersion: Int by rootProject.extra
|
val maxKsuVersion: Int by rootProject.extra
|
||||||
val minMagiskVersion: Int by rootProject.extra
|
val minMagiskVersion: Int by rootProject.extra
|
||||||
|
val commitHash: String by rootProject.extra
|
||||||
|
|
||||||
android.buildFeatures {
|
android.buildFeatures {
|
||||||
androidResources = false
|
androidResources = false
|
||||||
@@ -27,7 +28,7 @@ androidComponents.onVariants { variant ->
|
|||||||
val buildTypeLowered = variant.buildType?.toLowerCase()
|
val buildTypeLowered = variant.buildType?.toLowerCase()
|
||||||
|
|
||||||
val moduleDir = "$buildDir/outputs/module/$variantLowered"
|
val moduleDir = "$buildDir/outputs/module/$variantLowered"
|
||||||
val zipFileName = "$moduleName-$verName-$verCode-$buildTypeLowered.zip".replace(' ', '-')
|
val zipFileName = "$moduleName-$verName-$verCode-$commitHash-$buildTypeLowered.zip".replace(' ', '-')
|
||||||
|
|
||||||
val prepareModuleFilesTask = task<Sync>("prepareModuleFiles$variantCapped") {
|
val prepareModuleFilesTask = task<Sync>("prepareModuleFiles$variantCapped") {
|
||||||
group = "module"
|
group = "module"
|
||||||
@@ -46,8 +47,8 @@ androidComponents.onVariants { variant ->
|
|||||||
expand(
|
expand(
|
||||||
"moduleId" to moduleId,
|
"moduleId" to moduleId,
|
||||||
"moduleName" to moduleName,
|
"moduleName" to moduleName,
|
||||||
"versionName" to "$verName ($verCode-$variantLowered)",
|
"versionName" to "$verName ($verCode-$commitHash-$variantLowered)",
|
||||||
"versionCode" to verCode,
|
"versionCode" to verCode
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
from("$projectDir/src") {
|
from("$projectDir/src") {
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
|
use crate::constants::{MAX_KSU_VERSION, MIN_KSU_VERSION};
|
||||||
|
use nix::libc;
|
||||||
use nix::libc::prctl;
|
use nix::libc::prctl;
|
||||||
use crate::constants::{MIN_KSU_VERSION, MAX_KSU_VERSION};
|
|
||||||
|
|
||||||
const KERNEL_SU_OPTION: i32 = 0xdeadbeefu32 as i32;
|
const KERNEL_SU_OPTION: u32 = 0xdeadbeefu32;
|
||||||
|
|
||||||
const CMD_GET_VERSION: usize = 2;
|
const CMD_GET_VERSION: usize = 2;
|
||||||
const CMD_UID_GRANTED_ROOT: usize = 12;
|
const CMD_UID_GRANTED_ROOT: usize = 12;
|
||||||
@@ -15,23 +16,55 @@ pub enum Version {
|
|||||||
|
|
||||||
pub fn get_kernel_su() -> Option<Version> {
|
pub fn get_kernel_su() -> Option<Version> {
|
||||||
let mut version = 0;
|
let mut version = 0;
|
||||||
unsafe { prctl(KERNEL_SU_OPTION, CMD_GET_VERSION, &mut version as *mut i32, 0, 0) };
|
unsafe {
|
||||||
|
prctl(
|
||||||
|
KERNEL_SU_OPTION as i32,
|
||||||
|
CMD_GET_VERSION,
|
||||||
|
&mut version as *mut i32,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
)
|
||||||
|
};
|
||||||
match version {
|
match version {
|
||||||
0 => None,
|
0 => None,
|
||||||
MIN_KSU_VERSION..=MAX_KSU_VERSION => Some(Version::Supported),
|
MIN_KSU_VERSION..=MAX_KSU_VERSION => Some(Version::Supported),
|
||||||
1..=MIN_KSU_VERSION => Some(Version::TooOld),
|
1..=MIN_KSU_VERSION => Some(Version::TooOld),
|
||||||
_ => Some(Version::Abnormal)
|
_ => Some(Version::Abnormal),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn uid_granted_root(uid: i32) -> bool {
|
pub fn uid_granted_root(uid: i32) -> bool {
|
||||||
|
let mut result: u32 = 0;
|
||||||
let mut granted = false;
|
let mut granted = false;
|
||||||
unsafe { prctl(KERNEL_SU_OPTION, CMD_UID_GRANTED_ROOT, uid, &mut granted as *mut bool, 0) };
|
unsafe {
|
||||||
|
prctl(
|
||||||
|
KERNEL_SU_OPTION as i32,
|
||||||
|
CMD_UID_GRANTED_ROOT,
|
||||||
|
uid,
|
||||||
|
&mut granted as *mut bool,
|
||||||
|
&mut result as *mut u32,
|
||||||
|
)
|
||||||
|
};
|
||||||
|
if result != KERNEL_SU_OPTION {
|
||||||
|
log::warn!("uid_granted_root failed");
|
||||||
|
}
|
||||||
granted
|
granted
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn uid_should_umount(uid: i32) -> bool {
|
pub fn uid_should_umount(uid: i32) -> bool {
|
||||||
|
let mut result: u32 = 0;
|
||||||
let mut umount = false;
|
let mut umount = false;
|
||||||
unsafe { prctl(KERNEL_SU_OPTION, CMD_UID_SHOULD_UMOUNT, uid, &mut umount as *mut bool, 0) };
|
unsafe {
|
||||||
|
prctl(
|
||||||
|
KERNEL_SU_OPTION as i32,
|
||||||
|
CMD_UID_SHOULD_UMOUNT,
|
||||||
|
uid,
|
||||||
|
&mut umount as *mut bool,
|
||||||
|
&mut result as *mut u32,
|
||||||
|
)
|
||||||
|
};
|
||||||
|
if result != KERNEL_SU_OPTION {
|
||||||
|
log::warn!("uid_granted_root failed");
|
||||||
|
}
|
||||||
umount
|
umount
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user