[core] Add no-rtti & no-exceptions to cppflags (#335)
This commit is contained in:
parent
0ec737b78c
commit
4fa8839bae
|
|
@ -90,8 +90,8 @@ android {
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
cmake {
|
cmake {
|
||||||
abiFilters("arm64-v8a", "armeabi-v7a", "x86", "x86_64")
|
abiFilters("arm64-v8a", "armeabi-v7a", "x86", "x86_64")
|
||||||
cppFlags("-std=c++17 -ffixed-x18 -Qunused-arguments -frtti -fomit-frame-pointer -fpie -fPIC")
|
cppFlags("-std=c++20 -ffixed-x18 -Qunused-arguments -fno-rtti -fno-exceptions -fomit-frame-pointer -fpie -fPIC")
|
||||||
cFlags("-std=gnu99 -ffixed-x18 -Qunused-arguments -frtti -fomit-frame-pointer -fpie -fPIC")
|
cFlags("-std=c11 -ffixed-x18 -Qunused-arguments -fno-rtti -fno-exceptions -fomit-frame-pointer -fpie -fPIC")
|
||||||
arguments("-DRIRU_MODULE_API_VERSION=$moduleMaxRiruApiVersion",
|
arguments("-DRIRU_MODULE_API_VERSION=$moduleMaxRiruApiVersion",
|
||||||
"-DRIRU_MODULE_VERSION=$verCode",
|
"-DRIRU_MODULE_VERSION=$verCode",
|
||||||
"-DRIRU_MODULE_VERSION_NAME:STRING=\"$verName\"")
|
"-DRIRU_MODULE_VERSION_NAME:STRING=\"$verName\"")
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,6 @@
|
||||||
#include <dl_util.h>
|
#include <dl_util.h>
|
||||||
#include <art/runtime/jni_env_ext.h>
|
#include <art/runtime/jni_env_ext.h>
|
||||||
#include "jni/pending_hooks.h"
|
#include "jni/pending_hooks.h"
|
||||||
#include <fstream>
|
|
||||||
#include <sstream>
|
|
||||||
#include "context.h"
|
#include "context.h"
|
||||||
#include "native_hook.h"
|
#include "native_hook.h"
|
||||||
#include "jni/logger.h"
|
#include "jni/logger.h"
|
||||||
|
|
@ -59,12 +57,15 @@ namespace lspd {
|
||||||
void Context::PreLoadDex(const std::string &dex_path) {
|
void Context::PreLoadDex(const std::string &dex_path) {
|
||||||
if (LIKELY(!dex.empty())) return;
|
if (LIKELY(!dex.empty())) return;
|
||||||
|
|
||||||
std::ifstream is(dex_path);
|
FILE *f = fopen(dex_path.c_str(), "rb");
|
||||||
if (!is.good()) {
|
fseek(f, 0, SEEK_END);
|
||||||
LOGE("Failed to read dex");
|
dex.resize(ftell(f));
|
||||||
return;
|
rewind(f);
|
||||||
|
if (dex.size() != fread(dex.data(), 1, dex.size(), f)) {
|
||||||
|
LOGE("Read dex failed");
|
||||||
|
dex.resize(0);
|
||||||
}
|
}
|
||||||
dex.assign(std::istreambuf_iterator<char>(is), std::istreambuf_iterator<char>());
|
fclose(f);
|
||||||
|
|
||||||
LOGI("Loaded %s with size %zu", dex_path.c_str(), dex.size());
|
LOGI("Loaded %s with size %zu", dex_path.c_str(), dex.size());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ namespace lspd {
|
||||||
jclass class_linker_class_ = nullptr;
|
jclass class_linker_class_ = nullptr;
|
||||||
jmethodID post_fixup_static_mid_ = nullptr;
|
jmethodID post_fixup_static_mid_ = nullptr;
|
||||||
bool skip_ = false;
|
bool skip_ = false;
|
||||||
std::vector<signed char> dex{};
|
std::vector<char> dex{};
|
||||||
|
|
||||||
Context() {}
|
Context() {}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
#include "native_util.h"
|
#include "native_util.h"
|
||||||
#include "jni_helper.h"
|
#include "jni_helper.h"
|
||||||
#include <fstream>
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
||||||
namespace lspd {
|
namespace lspd {
|
||||||
|
|
|
||||||
|
|
@ -23,17 +23,20 @@ RIRU_MODULE_API_VERSION=%%%RIRU_MODULE_API_VERSION%%%
|
||||||
RIRU_MODULE_MIN_API_VERSION=%%%RIRU_MODULE_MIN_API_VERSION%%%
|
RIRU_MODULE_MIN_API_VERSION=%%%RIRU_MODULE_MIN_API_VERSION%%%
|
||||||
RIRU_MODULE_MIN_RIRU_VERSION_NAME="%%%RIRU_MODULE_MIN_RIRU_VERSION_NAME%%%"
|
RIRU_MODULE_MIN_RIRU_VERSION_NAME="%%%RIRU_MODULE_MIN_RIRU_VERSION_NAME%%%"
|
||||||
|
|
||||||
|
if [ "$MAGISK_VER_CODE" -ge 21000 ]; then
|
||||||
|
MAGISK_CURRENT_RIRU_MODULE_PATH=$(magisk --path)/.magisk/modules/riru-core
|
||||||
|
else
|
||||||
|
MAGISK_CURRENT_RIRU_MODULE_PATH=/sbin/.magisk/modules/riru-core
|
||||||
|
fi
|
||||||
|
|
||||||
check_riru_version() {
|
check_riru_version() {
|
||||||
RIRU_CORE_MODULES_PATH=/data/adb/modules/riru-core
|
if [ ! -f "$MAGISK_CURRENT_RIRU_MODULE_PATH/api_version" ] && [ ! -f "/data/adb/riru/api_version" ] && [ ! -f "/data/adb/riru/api_version.new" ]; then
|
||||||
RIRU_CORE_MODULES_UPDATE_PATH=/data/adb/modules_update/riru-core
|
|
||||||
if [ ! -f "$RIRU_CORE_MODULES_UPDATE_PATH/api_version" ] && [ ! -f "$RIRU_CORE_MODULES_PATH/api_version" ]; then
|
|
||||||
ui_print "*********************************************************"
|
ui_print "*********************************************************"
|
||||||
ui_print "! Riru $RIRU_MODULE_MIN_RIRU_VERSION_NAME or above is required"
|
ui_print "! Riru $RIRU_MODULE_MIN_RIRU_VERSION_NAME or above is required"
|
||||||
ui_print "! Please install Riru from Magisk Manager or https://github.com/RikkaApps/Riru/releases"
|
ui_print "! Please install Riru from Magisk Manager or https://github.com/RikkaApps/Riru/releases"
|
||||||
abort "*********************************************************"
|
abort "*********************************************************"
|
||||||
fi
|
fi
|
||||||
RIRU_API=$(cat "$RIRU_CORE_MODULES_UPDATE_PATH/api_version") || RIRU_API=$(cat "$RIRU_CORE_MODULES_PATH/api_version") || RIRU_API=0
|
RIRU_API=$(cat "$MAGISK_CURRENT_RIRU_MODULE_PATH/api_version") || RIRU_API=$(cat "/data/adb/riru/api_version.new") || RIRU_API=$(cat "/data/adb/riru/api_version") || RIRU_API=0
|
||||||
[ "$RIRU_API" -eq "$RIRU_API" ] || RIRU_API=0
|
[ "$RIRU_API" -eq "$RIRU_API" ] || RIRU_API=0
|
||||||
ui_print "- Riru API version: $RIRU_API"
|
ui_print "- Riru API version: $RIRU_API"
|
||||||
if [ "$RIRU_API" -lt $RIRU_MODULE_MIN_API_VERSION ]; then
|
if [ "$RIRU_API" -lt $RIRU_MODULE_MIN_API_VERSION ]; then
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue