Skip to content

Commit

Permalink
オフセットをヘッダーに分割
Browse files Browse the repository at this point in the history
  • Loading branch information
s1204IT committed Jun 28, 2024
1 parent bbedd22 commit a6fbc91
Show file tree
Hide file tree
Showing 2 changed files with 193 additions and 177 deletions.
193 changes: 16 additions & 177 deletions mali_shrinker_mmap32.c
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
#include <err.h>
#include <errno.h>
#include <fcntl.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdbool.h>
#include <sys/system_properties.h>
#include <sys/syscall.h>

#include "offsets.h"
#include "mali.h"
#include "mali_base_jm_kernel.h"
#include "midgard.h"
Expand Down Expand Up @@ -61,168 +62,6 @@

#define ADD_COMMIT_INDEX 3

/*
Need: kallsyms
KERNEL_BASE = do_undefinstr - 0x1000
COMMIT_CREDS = commit_creds - KERNEL_BASE
AVC_DENY= avc_denied.isra.4 - KERNEL_BASE
SEL_READ_ENFORCE = sel_read_enforce - KERNEL_BASE
SEL_READ_HANDLE_UNKNOWN = sel_read_handle_unknown - KERNEL_BASE
Need: Ghidra
Search: prepare_kernel_cred ->
INIT_CRED = mov - KERNEL_BASE
Search: sel_read_enforce ->
SELINUX_ENFORCING = ldr - KERNEL_BASE
Need: ARM to HEX
ADD_INIT = add x0, x0, #0x(Last 3 digits of INIT_CRED)
ADD_COMMIT = add x8, x8, #0x(Last 3 digits of COMMIT_CRED)
*/

/*
* Maintained by Syuugo
*/

// TAB-A05-BD 00.04.000
#define COMMIT_CREDS_CTX_00_04_000 0x5a120
#define AVC_DENY_CTX_00_04_000 0x35acc8
#define SEL_READ_ENFORCE_CTX_00_04_000 0x3653a8
#define SEL_READ_HANDLE_UNKNOWN_CTX_00_04_000 0x365d80
#define INIT_CRED_CTX_00_04_000 0x11553f0
#define SELINUX_ENFORCING_CTX_00_04_000 0x129d9bc
#define ADD_INIT_CTX_00_04_000 0x910fc000
#define ADD_COMMIT_CTX_00_04_000 0x91048108

// TAB-A05-BD 00.05.000
#define COMMIT_CREDS_CTX_00_05_000 0x5a120
#define AVC_DENY_CTX_00_05_000 0x35acc8
#define SEL_READ_ENFORCE_CTX_00_05_000 0x3653a8
#define SEL_READ_HANDLE_UNKNOWN_CTX_00_05_000 0x365d80
#define INIT_CRED_CTX_00_05_000 0x11553f0
#define SELINUX_ENFORCING_CTX_00_05_000 0x129d9bc
#define ADD_INIT_CTX_00_05_000 0x910fc000
#define ADD_COMMIT_CTX_00_05_000 0x91048108

// TAB-A05-BD 00.08.000
#define COMMIT_CREDS_CTX_00_08_000 0x5a120
#define AVC_DENY_CTX_00_08_000 0x35acc8
#define SEL_READ_ENFORCE_CTX_00_08_000 0x3653a8
#define SEL_READ_HANDLE_UNKNOWN_CTX_00_08_000 0x365d80
#define INIT_CRED_CTX_00_08_000 0x11553f0
#define SELINUX_ENFORCING_CTX_00_08_000 0x129d9bc
#define ADD_INIT_CTX_00_08_000 0x910fc000
#define ADD_COMMIT_CTX_00_08_000 0x91048108

// TAB-A05-BD 00.09.000
#define COMMIT_CREDS_CTX_00_09_000 0x5a120
#define AVC_DENY_CTX_00_09_000 0x35acc8
#define SEL_READ_ENFORCE_CTX_00_09_000 0x3653a8
#define SEL_READ_HANDLE_UNKNOWN_CTX_00_09_000 0x365d80
#define INIT_CRED_CTX_00_09_000 0x11553f0
#define SELINUX_ENFORCING_CTX_00_09_000 0x129d9bc
#define ADD_INIT_CTX_00_09_000 0x910fc000
#define ADD_COMMIT_CTX_00_09_000 0x91048108

// TAB-A05-BD 01.00.000
#define COMMIT_CREDS_CTX_01_00_000 0x5a120
#define AVC_DENY_CTX_01_00_000 0x35acc8
#define SEL_READ_ENFORCE_CTX_01_00_000 0x3653a8
#define SEL_READ_HANDLE_UNKNOWN_CTX_01_00_000 0x365d80
#define INIT_CRED_CTX_01_00_000 0x11553f0
#define SELINUX_ENFORCING_CTX_01_00_000 0x129d9bc
#define ADD_INIT_CTX_01_00_000 0x910fc000
#define ADD_COMMIT_CTX_01_00_000 0x91048108

// TAB-A05-BD 01.01.001
#define COMMIT_CREDS_CTX_01_01_001 0x5a120
#define AVC_DENY_CTX_01_01_001 0x35acc8
#define SEL_READ_ENFORCE_CTX_01_01_001 0x365418
#define SEL_READ_HANDLE_UNKNOWN_CTX_01_01_001 0x365df0
#define INIT_CRED_CTX_01_01_001 0x11653f0
#define SELINUX_ENFORCING_CTX_01_01_001 0x12ad9bc
#define ADD_INIT_CTX_01_01_001 0x910fc000
#define ADD_COMMIT_CTX_01_01_001 0x91048108

// TAB-A05-BD 01.04.000
#define COMMIT_CREDS_CTX_01_04_000 0x5a120
#define AVC_DENY_CTX_01_04_000 0x35ac10
#define SEL_READ_ENFORCE_CTX_01_04_000 0x365360
#define SEL_READ_HANDLE_UNKNOWN_CTX_01_04_000 0x365d38
#define INIT_CRED_CTX_01_04_000 0x11653f0
#define SELINUX_ENFORCING_CTX_01_04_000 0x12ae9bc
#define ADD_INIT_CTX_01_04_000 0x910fc000
#define ADD_COMMIT_CTX_01_04_000 0x91048108

// TAB-A05-BD 01.11.000
#define COMMIT_CREDS_CTX_01_11_000 0x5a120
#define AVC_DENY_CTX_01_11_000 0x359c20
#define SEL_READ_ENFORCE_CTX_01_11_000 0x364370
#define SEL_READ_HANDLE_UNKNOWN_CTX_01_11_000 0x364d48
#define INIT_CRED_CTX_01_11_000 0x11653f0
#define SELINUX_ENFORCING_CTX_01_11_000 0x12ae9bc
#define ADD_INIT_CTX_01_11_000 0x910fc000
#define ADD_COMMIT_CTX_01_11_000 0x91048108

// TAB-A05-BA1 00.03.000
#define COMMIT_CREDS_CTZ_00_03_000 0x5a120
#define AVC_DENY_CTZ_00_03_000 0x359c20
#define SEL_READ_ENFORCE_CTZ_00_03_000 0x364370
#define SEL_READ_HANDLE_UNKNOWN_CTZ_00_03_000 0x364d48
#define INIT_CRED_CTZ_00_03_000 0x11753f0
#define SELINUX_ENFORCING_CTZ_00_03_000 0x12e49bc
#define ADD_INIT_CTZ_00_03_000 0x910fc000
#define ADD_COMMIT_CTZ_00_03_000 0x91048108

// TAB-A05-BA1 01.00.000
#define COMMIT_CREDS_CTZ_01_00_000 0x5a120
#define AVC_DENY_CTZ_01_00_000 0x359c20
#define SEL_READ_ENFORCE_CTZ_01_00_000 0x364370
#define SEL_READ_HANDLE_UNKNOWN_CTZ_01_00_000 0x364d48
#define INIT_CRED_CTZ_01_00_000 0x11653f0
#define SELINUX_ENFORCING_CTZ_01_00_000 0x12d49bc
#define ADD_INIT_CTZ_01_00_000 0x910fc000
#define ADD_COMMIT_CTZ_01_00_000 0x91048108

// TAB-A05-BA1 01.01.000
#define COMMIT_CREDS_CTZ_01_01_000 0x5a120
#define AVC_DENY_CTZ_01_01_000 0x359a68
#define SEL_READ_ENFORCE_CTZ_01_01_000 0x3641b8
#define SEL_READ_HANDLE_UNKNOWN_CTZ_01_01_000 0x364b90
#define INIT_CRED_CTZ_01_01_000 0x11653f0
#define SELINUX_ENFORCING_CTZ_01_01_000 0x12d49bc
#define ADD_INIT_CTZ_01_01_000 0x910fc000
#define ADD_COMMIT_CTZ_01_01_000 0x91048108

// TAB-A05-BA1 01.02.004
#define COMMIT_CREDS_CTZ_01_02_004 0x5a120
#define AVC_DENY_CTZ_01_02_004 0x35bad0
#define SEL_READ_ENFORCE_CTZ_01_02_004 0x366190
#define SEL_READ_HANDLE_UNKNOWN_CTZ_01_02_004 0x366b68
#define INIT_CRED_CTZ_01_02_004 0x11a53f0
#define SELINUX_ENFORCING_CTZ_01_02_004 0x13199bc
#define ADD_INIT_CTZ_01_02_004 0x910fc000
#define ADD_COMMIT_CTZ_01_02_004 0x91048108

// TAB-A05-BA1 01.02.005
#define COMMIT_CREDS_CTZ_01_02_005 0x5a120
#define AVC_DENY_CTZ_01_02_005 0x35bad0
#define SEL_READ_ENFORCE_CTZ_01_02_005 0x366190
#define SEL_READ_HANDLE_UNKNOWN_CTZ_01_02_005 0x366b68
#define INIT_CRED_CTZ_01_02_005 0x11a53f0
#define SELINUX_ENFORCING_CTZ_01_02_005 0x13199bc
#define ADD_INIT_CTZ_01_02_005 0x910fc000
#define ADD_COMMIT_CTZ_01_02_005 0x91048108

// TAB-A05-BA1 01.03.000
#define COMMIT_CREDS_CTZ_01_03_000 0x5a120
#define AVC_DENY_CTZ_01_03_000 0x35bad0
#define SEL_READ_ENFORCE_CTZ_01_03_000 0x366190
#define SEL_READ_HANDLE_UNKNOWN_CTZ_01_03_000 0x366b68
#define INIT_CRED_CTZ_01_03_000 0x11a53f0
#define SELINUX_ENFORCING_CTZ_01_03_000 0x13199bc
#define ADD_INIT_CTZ_01_03_000 0x910fc000
#define ADD_COMMIT_CTZ_01_03_000 0x91048108

static uint64_t sel_read_handle_unknown;

Expand Down Expand Up @@ -778,98 +617,98 @@ void select_offset() {
int len = __system_property_get("ro.build.fingerprint", fingerprint);
LOG("fingerprint: %s\n", fingerprint);

if (!strcmp(fingerprint, "benesse/TAB-A05-BD/TAB-A05-BD:9/00.04.000/00.04.000:user/release-keys")) {
if (!strcmp(fingerprint, CTX_00_04_000)) {
selinux_enforcing = SELINUX_ENFORCING_CTX_00_04_000;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTX_00_04_000;
fixup_root_shell(INIT_CRED_CTX_00_04_000, COMMIT_CREDS_CTX_00_04_000, SEL_READ_HANDLE_UNKNOWN_CTX_00_04_000, ADD_INIT_CTX_00_04_000, ADD_COMMIT_CTX_00_04_000);
return;
}

if (!strcmp(fingerprint, "benesse/TAB-A05-BD/TAB-A05-BD:9/00.05.000/00.05.000:user/release-keys")) {
if (!strcmp(fingerprint, CTX_00_05_000)) {
selinux_enforcing = SELINUX_ENFORCING_CTX_00_05_000;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTX_00_05_000;
fixup_root_shell(INIT_CRED_CTX_00_05_000, COMMIT_CREDS_CTX_00_05_000, SEL_READ_HANDLE_UNKNOWN_CTX_00_05_000, ADD_INIT_CTX_00_05_000, ADD_COMMIT_CTX_00_05_000);
return;
}

if (!strcmp(fingerprint, "benesse/TAB-A05-BD/TAB-A05-BD:9/00.08.000/00.08.000:user/release-keys")) {
if (!strcmp(fingerprint, CTX_00_08_000)) {
selinux_enforcing = SELINUX_ENFORCING_CTX_00_08_000;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTX_00_08_000;
fixup_root_shell(INIT_CRED_CTX_00_08_000, COMMIT_CREDS_CTX_00_08_000, SEL_READ_HANDLE_UNKNOWN_CTX_00_08_000, ADD_INIT_CTX_00_08_000, ADD_COMMIT_CTX_00_08_000);
return;
}

if (!strcmp(fingerprint, "benesse/TAB-A05-BD/TAB-A05-BD:9/00.09.000/00.09.000:user/release-keys")) {
if (!strcmp(fingerprint, CTX_00_09_000)) {
selinux_enforcing = SELINUX_ENFORCING_CTX_00_09_000;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTX_00_09_000;
fixup_root_shell(INIT_CRED_CTX_00_09_000, COMMIT_CREDS_CTX_00_09_000, SEL_READ_HANDLE_UNKNOWN_CTX_00_09_000, ADD_INIT_CTX_00_09_000, ADD_COMMIT_CTX_00_09_000);
return;
}

if (!strcmp(fingerprint, "benesse/TAB-A05-BD/TAB-A05-BD:9/01.00.000/01.00.000:user/release-keys")) {
if (!strcmp(fingerprint, CTX_01_00_000)) {
selinux_enforcing = SELINUX_ENFORCING_CTX_01_00_000;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTX_01_00_000;
fixup_root_shell(INIT_CRED_CTX_01_00_000, COMMIT_CREDS_CTX_01_00_000, SEL_READ_HANDLE_UNKNOWN_CTX_01_00_000, ADD_INIT_CTX_01_00_000, ADD_COMMIT_CTX_01_00_000);
return;
}

if (!strcmp(fingerprint, "benesse/TAB-A05-BD/TAB-A05-BD:9/01.01.001/01.01.001:user/release-keys")) {
if (!strcmp(fingerprint, CTX_01_01_001)) {
selinux_enforcing = SELINUX_ENFORCING_CTX_01_01_001;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTX_01_01_001;
fixup_root_shell(INIT_CRED_CTX_01_01_001, COMMIT_CREDS_CTX_01_01_001, SEL_READ_HANDLE_UNKNOWN_CTX_01_01_001, ADD_INIT_CTX_01_01_001, ADD_COMMIT_CTX_01_01_001);
return;
}

if (!strcmp(fingerprint, "benesse/TAB-A05-BD/TAB-A05-BD:9/01.04.000/01.04.000:user/release-keys")) {
if (!strcmp(fingerprint, CTX_01_04_000)) {
selinux_enforcing = SELINUX_ENFORCING_CTX_01_04_000;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTX_01_04_000;
fixup_root_shell(INIT_CRED_CTX_01_04_000, COMMIT_CREDS_CTX_01_04_000, SEL_READ_HANDLE_UNKNOWN_CTX_01_04_000, ADD_INIT_CTX_01_04_000, ADD_COMMIT_CTX_01_04_000);
return;
}

if (!strcmp(fingerprint, "benesse/TAB-A05-BD/TAB-A05-BD:9/01.11.000/01.11.000:user/release-keys")) {
if (!strcmp(fingerprint, CTX_01_11_000)) {
selinux_enforcing = SELINUX_ENFORCING_CTX_01_11_000;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTX_01_11_000;
fixup_root_shell(INIT_CRED_CTX_01_11_000, COMMIT_CREDS_CTX_01_11_000, SEL_READ_HANDLE_UNKNOWN_CTX_01_11_000, ADD_INIT_CTX_01_11_000, ADD_COMMIT_CTX_01_11_000);
return;
}

if (!strcmp(fingerprint, "Panasonic/TAB-A05-BA1/TAB-A05-BA1:9/00.03.000/00.03.000:user/release-keys")) {
if (!strcmp(fingerprint, CTZ_00_03_000)) {
selinux_enforcing = SELINUX_ENFORCING_CTZ_00_03_000;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTZ_00_03_000;
fixup_root_shell(INIT_CRED_CTZ_00_03_000, COMMIT_CREDS_CTZ_00_03_000, SEL_READ_HANDLE_UNKNOWN_CTZ_00_03_000, ADD_INIT_CTZ_00_03_000, ADD_COMMIT_CTZ_00_03_000);
return;
}

if (!strcmp(fingerprint, "Panasonic/TAB-A05-BA1/TAB-A05-BA1:9/01.00.000/01.00.000:user/release-keys")) {
if (!strcmp(fingerprint, CTZ_01_00_000)) {
selinux_enforcing = SELINUX_ENFORCING_CTZ_01_00_000;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTZ_01_00_000;
fixup_root_shell(INIT_CRED_CTZ_01_00_000, COMMIT_CREDS_CTZ_01_00_000, SEL_READ_HANDLE_UNKNOWN_CTZ_01_00_000, ADD_INIT_CTZ_01_00_000, ADD_COMMIT_CTZ_01_00_000);
return;
}

if (!strcmp(fingerprint, "Panasonic/TAB-A05-BA1/TAB-A05-BA1:9/01.01.000/01.01.000:user/release-keys")) {
if (!strcmp(fingerprint, CTZ_01_01_000)) {
selinux_enforcing = SELINUX_ENFORCING_CTZ_01_01_000;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTZ_01_01_000;
fixup_root_shell(INIT_CRED_CTZ_01_01_000, COMMIT_CREDS_CTZ_01_01_000, SEL_READ_HANDLE_UNKNOWN_CTZ_01_01_000, ADD_INIT_CTZ_01_01_000, ADD_COMMIT_CTZ_01_01_000);
return;
}

if (!strcmp(fingerprint, "Panasonic/TAB-A05-BA1/TAB-A05-BA1:9/01.02.004/01.02.004:user/release-keys")) {
if (!strcmp(fingerprint, CTZ_01_02_004)) {
selinux_enforcing = SELINUX_ENFORCING_CTZ_01_02_004;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTZ_01_02_004;
fixup_root_shell(INIT_CRED_CTZ_01_02_004, COMMIT_CREDS_CTZ_01_02_004, SEL_READ_HANDLE_UNKNOWN_CTZ_01_02_004, ADD_INIT_CTZ_01_02_004, ADD_COMMIT_CTZ_01_02_004);
return;
}

if (!strcmp(fingerprint, "Panasonic/TAB-A05-BA1/TAB-A05-BA1:9/01.02.005/01.02.005:user/release-keys")) {
if (!strcmp(fingerprint, CTZ_01_02_005)) {
selinux_enforcing = SELINUX_ENFORCING_CTZ_01_02_005;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTZ_01_02_005;
fixup_root_shell(INIT_CRED_CTZ_01_02_005, COMMIT_CREDS_CTZ_01_02_005, SEL_READ_HANDLE_UNKNOWN_CTZ_01_02_005, ADD_INIT_CTZ_01_02_005, ADD_COMMIT_CTZ_01_02_005);
return;
}

if (!strcmp(fingerprint, "Panasonic/TAB-A05-BA1/TAB-A05-BA1:9/01.03.000/01.03.000:user/release-keys")) {
if (!strcmp(fingerprint, CTZ_01_03_000)) {
selinux_enforcing = SELINUX_ENFORCING_CTZ_01_03_000;
sel_read_handle_unknown = SEL_READ_HANDLE_UNKNOWN_CTZ_01_03_000;
fixup_root_shell(INIT_CRED_CTZ_01_03_000, COMMIT_CREDS_CTZ_01_03_000, SEL_READ_HANDLE_UNKNOWN_CTZ_01_03_000, ADD_INIT_CTZ_01_03_000, ADD_COMMIT_CTZ_01_03_000);
Expand Down
Loading

0 comments on commit a6fbc91

Please sign in to comment.