119 lines
2.9 KiB
C
119 lines
2.9 KiB
C
|
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||
|
|
/*
|
||
|
|
* Copyright (C) 2023 bmax121. All Rights Reserved.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef _KP_UAPI_SCDEF_H_
|
||
|
|
#define _KP_UAPI_SCDEF_H_
|
||
|
|
|
||
|
|
static inline long hash_key(const char *key)
|
||
|
|
{
|
||
|
|
long hash = 1000000007;
|
||
|
|
for (int i = 0; key[i]; i++) {
|
||
|
|
hash = hash * 31 + key[i];
|
||
|
|
}
|
||
|
|
return hash;
|
||
|
|
}
|
||
|
|
|
||
|
|
#define SUPERCALL_HELLO_ECHO "hello1158"
|
||
|
|
|
||
|
|
// #define __NR_supercall __NR3264_truncate // 45
|
||
|
|
#define __NR_supercall 45
|
||
|
|
|
||
|
|
#define SUPERCALL_HELLO 0x1000
|
||
|
|
#define SUPERCALL_KLOG 0x1004
|
||
|
|
|
||
|
|
#define SUPERCALL_BUILD_TIME 0x1007
|
||
|
|
#define SUPERCALL_KERNELPATCH_VER 0x1008
|
||
|
|
#define SUPERCALL_KERNEL_VER 0x1009
|
||
|
|
|
||
|
|
#define SUPERCALL_SKEY_GET 0x100a
|
||
|
|
#define SUPERCALL_SKEY_SET 0x100b
|
||
|
|
#define SUPERCALL_SKEY_ROOT_ENABLE 0x100c
|
||
|
|
|
||
|
|
#define SUPERCALL_SU 0x1010
|
||
|
|
#define SUPERCALL_SU_TASK 0x1011 // syscall(__NR_gettid)
|
||
|
|
|
||
|
|
#define SUPERCALL_KPM_LOAD 0x1020
|
||
|
|
#define SUPERCALL_KPM_UNLOAD 0x1021
|
||
|
|
#define SUPERCALL_KPM_CONTROL 0x1022
|
||
|
|
|
||
|
|
#define SUPERCALL_KPM_NUMS 0x1030
|
||
|
|
#define SUPERCALL_KPM_LIST 0x1031
|
||
|
|
#define SUPERCALL_KPM_INFO 0x1032
|
||
|
|
|
||
|
|
struct kernel_storage
|
||
|
|
{
|
||
|
|
void *data;
|
||
|
|
int len;
|
||
|
|
};
|
||
|
|
|
||
|
|
#define SUPERCALL_KSTORAGE_ALLOC_GROUP 0x1040
|
||
|
|
#define SUPERCALL_KSTORAGE_WRITE 0x1041
|
||
|
|
#define SUPERCALL_KSTORAGE_READ 0x1042
|
||
|
|
#define SUPERCALL_KSTORAGE_LIST_IDS 0x1043
|
||
|
|
#define SUPERCALL_KSTORAGE_REMOVE 0x1044
|
||
|
|
#define SUPERCALL_KSTORAGE_REMOVE_GROUP 0x1045
|
||
|
|
|
||
|
|
#define KSTORAGE_SU_LIST_GROUP 0
|
||
|
|
#define KSTORAGE_EXCLUDE_LIST_GROUP 1
|
||
|
|
#define KSTORAGE_UNUSED_GROUP_2 2
|
||
|
|
#define KSTORAGE_UNUSED_GROUP_3 3
|
||
|
|
|
||
|
|
#define SUPERCALL_BOOTLOG 0x10fd
|
||
|
|
#define SUPERCALL_PANIC 0x10fe
|
||
|
|
#define SUPERCALL_TEST 0x10ff
|
||
|
|
|
||
|
|
#define SUPERCALL_KEY_MAX_LEN 0x40
|
||
|
|
#define SUPERCALL_SCONTEXT_LEN 0x60
|
||
|
|
|
||
|
|
struct su_profile
|
||
|
|
{
|
||
|
|
uid_t uid;
|
||
|
|
uid_t to_uid;
|
||
|
|
char scontext[SUPERCALL_SCONTEXT_LEN];
|
||
|
|
};
|
||
|
|
|
||
|
|
#ifdef ANDROID
|
||
|
|
#define SH_PATH "/system/bin/sh"
|
||
|
|
#define SU_PATH "/system/bin/kp"
|
||
|
|
#define LEGACY_SU_PATH "/system/bin/su"
|
||
|
|
#define ECHO_PATH "/system/bin/echo"
|
||
|
|
#define KERNELPATCH_DATA_DIR "/data/adb/kp"
|
||
|
|
#define KERNELPATCH_MODULE_DATA_DIR KERNELPATCH_DATA_DIR "/modules"
|
||
|
|
#define APD_PATH "/data/adb/apd"
|
||
|
|
#define ALL_ALLOW_SCONTEXT "u:r:kp:s0"
|
||
|
|
#define ALL_ALLOW_SCONTEXT_MAGISK "u:r:magisk:s0"
|
||
|
|
#define ALL_ALLOW_SCONTEXT_KERNEL "u:r:kernel:s0"
|
||
|
|
#else
|
||
|
|
#define SH_PATH "/usr/bin/sh"
|
||
|
|
#define ECHO_PATH "/usr/bin/echo"
|
||
|
|
#define SU_PATH "/usr/bin/kp"
|
||
|
|
#define ALL_ALLOW_SCONTEXT "u:r:kernel:s0"
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#define SU_PATH_MAX_LEN 128
|
||
|
|
|
||
|
|
#define SUPERCMD "/system/bin/truncate"
|
||
|
|
|
||
|
|
#define SAFE_MODE_FLAG_FILE "/dev/.safemode"
|
||
|
|
|
||
|
|
#define SUPERCALL_SU_GRANT_UID 0x1100
|
||
|
|
#define SUPERCALL_SU_REVOKE_UID 0x1101
|
||
|
|
#define SUPERCALL_SU_NUMS 0x1102
|
||
|
|
#define SUPERCALL_SU_LIST 0x1103
|
||
|
|
#define SUPERCALL_SU_PROFILE 0x1104
|
||
|
|
#define SUPERCALL_SU_GET_ALLOW_SCTX 0x1105
|
||
|
|
#define SUPERCALL_SU_SET_ALLOW_SCTX 0x1106
|
||
|
|
#define SUPERCALL_SU_GET_PATH 0x1110
|
||
|
|
#define SUPERCALL_SU_RESET_PATH 0x1111
|
||
|
|
#define SUPERCALL_SU_GET_SAFEMODE 0x1112
|
||
|
|
|
||
|
|
#define SUPERCALL_MAX 0x1200
|
||
|
|
|
||
|
|
#define SUPERCALL_RES_SUCCEED 0
|
||
|
|
|
||
|
|
#define SUPERCALL_HELLO_MAGIC 0x11581158
|
||
|
|
|
||
|
|
#endif
|