8f38bbdee6
This needs to be disabled for compatibility with the exploit protection compatibility mode on GrapheneOS. hardened_malloc shouldn't be trying to initialize itself when exploit protection compatibility mode is enabled. This has to be handled in our Bionic integration instead.
81 lines
1.9 KiB
Plaintext
81 lines
1.9 KiB
Plaintext
common_cflags = [
|
|
"-O3",
|
|
//"-flto",
|
|
"-fPIC",
|
|
"-fvisibility=hidden",
|
|
//"-fno-plt",
|
|
"-pipe",
|
|
"-Wall",
|
|
"-Wextra",
|
|
"-Wcast-align",
|
|
"-Wcast-qual",
|
|
"-Wwrite-strings",
|
|
"-Werror",
|
|
"-DH_MALLOC_PREFIX",
|
|
"-DZERO_ON_FREE=true",
|
|
"-DWRITE_AFTER_FREE_CHECK=true",
|
|
"-DSLOT_RANDOMIZE=true",
|
|
"-DSLAB_CANARY=true",
|
|
"-DSLAB_QUARANTINE_RANDOM_LENGTH=1",
|
|
"-DSLAB_QUARANTINE_QUEUE_LENGTH=1",
|
|
"-DCONFIG_EXTENDED_SIZE_CLASSES=true",
|
|
"-DCONFIG_LARGE_SIZE_CLASSES=true",
|
|
"-DGUARD_SLABS_INTERVAL=1",
|
|
"-DGUARD_SIZE_DIVISOR=2",
|
|
"-DREGION_QUARANTINE_RANDOM_LENGTH=256",
|
|
"-DREGION_QUARANTINE_QUEUE_LENGTH=1024",
|
|
"-DREGION_QUARANTINE_SKIP_THRESHOLD=33554432", // 32MiB
|
|
"-DFREE_SLABS_QUARANTINE_RANDOM_LENGTH=32",
|
|
"-DCONFIG_CLASS_REGION_SIZE=34359738368", // 32GiB
|
|
"-DN_ARENA=1",
|
|
"-DCONFIG_STATS=true",
|
|
"-DCONFIG_SELF_INIT=false",
|
|
]
|
|
|
|
cc_defaults {
|
|
name: "hardened_malloc_defaults",
|
|
defaults: ["linux_bionic_supported"],
|
|
cflags: common_cflags,
|
|
conlyflags: ["-std=c17", "-Wmissing-prototypes"],
|
|
stl: "none",
|
|
}
|
|
|
|
lib_src_files = [
|
|
"chacha.c",
|
|
"h_malloc.c",
|
|
"memory.c",
|
|
"pages.c",
|
|
"random.c",
|
|
"util.c",
|
|
]
|
|
|
|
cc_library {
|
|
name: "libhardened_malloc",
|
|
ramdisk_available: true,
|
|
vendor_ramdisk_available: true,
|
|
recovery_available: true,
|
|
defaults: ["hardened_malloc_defaults"],
|
|
srcs: lib_src_files,
|
|
export_include_dirs: ["include"],
|
|
static_libs: ["libasync_safe"],
|
|
target: {
|
|
android: {
|
|
shared: {
|
|
enabled: false,
|
|
},
|
|
system_shared_libs: [],
|
|
},
|
|
linux_bionic: {
|
|
system_shared_libs: [],
|
|
},
|
|
},
|
|
product_variables: {
|
|
debuggable: {
|
|
cflags: ["-DLABEL_MEMORY"],
|
|
},
|
|
},
|
|
apex_available: [
|
|
"com.android.runtime",
|
|
],
|
|
}
|