Simplified symbol loading for actions
This commit is contained in:
116
src/action_cc.cc
116
src/action_cc.cc
@@ -55,6 +55,12 @@ typedef void N3PowerWorkflowManager;
|
|||||||
typedef void WirelessWorkflowManager;
|
typedef void WirelessWorkflowManager;
|
||||||
typedef void StatusBarView;
|
typedef void StatusBarView;
|
||||||
|
|
||||||
|
#define NM_ACT_SYM(var, sym) reinterpret_cast<void*&>(var) = dlsym(RTLD_DEFAULT, sym)
|
||||||
|
#define NM_ACT_XSYM(var, symb, err) do { \
|
||||||
|
NM_ACT_SYM(var, symb); \
|
||||||
|
NM_CHECK(nullptr, var, err); \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
NM_ACTION_(nickel_open) {
|
NM_ACTION_(nickel_open) {
|
||||||
char *tmp1 = strdupa(arg); // strsep and strtrim will modify it
|
char *tmp1 = strdupa(arg); // strsep and strtrim will modify it
|
||||||
char *arg1 = strtrim(strsep(&tmp1, ":"));
|
char *arg1 = strtrim(strsep(&tmp1, ":"));
|
||||||
@@ -68,8 +74,7 @@ NM_ACTION_(nickel_open) {
|
|||||||
if (!strcmp(arg1, "library") && !strcmp(arg2, "dropbox")) {
|
if (!strcmp(arg1, "library") && !strcmp(arg2, "dropbox")) {
|
||||||
//libnickel 4.23.15505 * _ZN14MoreController7dropboxEv
|
//libnickel 4.23.15505 * _ZN14MoreController7dropboxEv
|
||||||
void (*MoreController_dropbox)(void*);
|
void (*MoreController_dropbox)(void*);
|
||||||
reinterpret_cast<void*&>(MoreController_dropbox) = dlsym(RTLD_DEFAULT, "_ZN14MoreController7dropboxEv");
|
NM_ACT_XSYM(MoreController_dropbox, "_ZN14MoreController7dropboxEv", "could not dlsym MoreController::dropbox");
|
||||||
NM_CHECK(nullptr, MoreController_dropbox, "could not dlsym MoreController::dropbox");
|
|
||||||
|
|
||||||
// technically, we need a MoreController, but it isn't used as of 15505, so it doesn't matter (and if it ever does, it's not going to crash in a critical place)
|
// technically, we need a MoreController, but it isn't used as of 15505, so it doesn't matter (and if it ever does, it's not going to crash in a critical place)
|
||||||
MoreController_dropbox(nullptr);
|
MoreController_dropbox(nullptr);
|
||||||
@@ -182,32 +187,28 @@ NM_ACTION_(nickel_setting) {
|
|||||||
|
|
||||||
//libnickel 4.6 * _ZN6Device16getCurrentDeviceEv
|
//libnickel 4.6 * _ZN6Device16getCurrentDeviceEv
|
||||||
Device *(*Device_getCurrentDevice)();
|
Device *(*Device_getCurrentDevice)();
|
||||||
reinterpret_cast<void*&>(Device_getCurrentDevice) = dlsym(RTLD_DEFAULT, "_ZN6Device16getCurrentDeviceEv");
|
NM_ACT_XSYM(Device_getCurrentDevice, "_ZN6Device16getCurrentDeviceEv", "could not dlsym Device::getCurrentDevice");
|
||||||
NM_CHECK(nullptr, Device_getCurrentDevice, "could not dlsym Device::getCurrentDevice");
|
|
||||||
|
|
||||||
//libnickel 4.6 * _ZN8SettingsC2ERK6Deviceb _ZN8SettingsC2ERK6Device
|
//libnickel 4.6 * _ZN8SettingsC2ERK6Deviceb _ZN8SettingsC2ERK6Device
|
||||||
void *(*Settings_Settings)(Settings*, Device*, bool);
|
void *(*Settings_Settings)(Settings*, Device*, bool);
|
||||||
void *(*Settings_SettingsLegacy)(Settings*, Device*);
|
void *(*Settings_SettingsLegacy)(Settings*, Device*);
|
||||||
reinterpret_cast<void*&>(Settings_Settings) = dlsym(RTLD_DEFAULT, "_ZN8SettingsC2ERK6Deviceb");
|
NM_ACT_SYM(Settings_Settings, "_ZN8SettingsC2ERK6Deviceb");
|
||||||
reinterpret_cast<void*&>(Settings_SettingsLegacy) = dlsym(RTLD_DEFAULT, "_ZN8SettingsC2ERK6Device");
|
NM_ACT_SYM(Settings_SettingsLegacy, "_ZN8SettingsC2ERK6Device");
|
||||||
NM_CHECK(nullptr, Settings_Settings || Settings_SettingsLegacy, "could not dlsym Settings constructor (new and/or old)");
|
NM_CHECK(nullptr, Settings_Settings || Settings_SettingsLegacy, "could not dlsym Settings constructor (new and/or old)");
|
||||||
|
|
||||||
//libnickel 4.6 * _ZN8SettingsD2Ev
|
//libnickel 4.6 * _ZN8SettingsD2Ev
|
||||||
void *(*Settings_SettingsD)(Settings*);
|
void *(*Settings_SettingsD)(Settings*);
|
||||||
reinterpret_cast<void*&>(Settings_SettingsD) = dlsym(RTLD_DEFAULT, "_ZN8SettingsD2Ev");
|
NM_ACT_XSYM(Settings_SettingsD, "_ZN8SettingsD2Ev", "could not dlsym Settings destructor");
|
||||||
NM_CHECK(nullptr, Settings_SettingsD, "could not dlsym Settings destructor");
|
|
||||||
|
|
||||||
// some settings don't have symbols in a usable form, and some are inlined, so we may need to set them directly
|
// some settings don't have symbols in a usable form, and some are inlined, so we may need to set them directly
|
||||||
//libnickel 4.6 * _ZN8Settings10getSettingERK7QStringRK8QVariant
|
//libnickel 4.6 * _ZN8Settings10getSettingERK7QStringRK8QVariant
|
||||||
QVariant (*Settings_getSetting)(Settings*, QString const&, QVariant const&); // the last param is the default, also note that this requires a subclass of Settings
|
QVariant (*Settings_getSetting)(Settings*, QString const&, QVariant const&); // the last param is the default, also note that this requires a subclass of Settings
|
||||||
reinterpret_cast<void*&>(Settings_getSetting) = dlsym(RTLD_DEFAULT, "_ZN8Settings10getSettingERK7QStringRK8QVariant");
|
NM_ACT_XSYM(Settings_getSetting, "_ZN8Settings10getSettingERK7QStringRK8QVariant", "could not dlsym Settings::getSetting");
|
||||||
NM_CHECK(nullptr, Settings_getSetting, "could not dlsym Settings::getSetting");
|
|
||||||
|
|
||||||
// ditto
|
// ditto
|
||||||
//libnickel 4.6 * _ZN8Settings11saveSettingERK7QStringRK8QVariantb
|
//libnickel 4.6 * _ZN8Settings11saveSettingERK7QStringRK8QVariantb
|
||||||
void *(*Settings_saveSetting)(Settings*, QString const&, QVariant const&, bool); // the last param is whether to do a full disk sync immediately (rather than waiting for the kernel to do it)
|
void *(*Settings_saveSetting)(Settings*, QString const&, QVariant const&, bool); // the last param is whether to do a full disk sync immediately (rather than waiting for the kernel to do it)
|
||||||
reinterpret_cast<void*&>(Settings_saveSetting) = dlsym(RTLD_DEFAULT, "_ZN8Settings11saveSettingERK7QStringRK8QVariantb");
|
NM_ACT_XSYM(Settings_saveSetting, "_ZN8Settings11saveSettingERK7QStringRK8QVariantb", "could not dlsym Settings::saveSetting");
|
||||||
NM_CHECK(nullptr, Settings_saveSetting, "could not dlsym Settings::saveSetting");
|
|
||||||
|
|
||||||
Device *dev = Device_getCurrentDevice();
|
Device *dev = Device_getCurrentDevice();
|
||||||
NM_CHECK(nullptr, dev, "could not get shared nickel device pointer");
|
NM_CHECK(nullptr, dev, "could not get shared nickel device pointer");
|
||||||
@@ -253,13 +254,11 @@ NM_ACTION_(nickel_setting) {
|
|||||||
if (!strcmp(arg2, "invert")) {
|
if (!strcmp(arg2, "invert")) {
|
||||||
//libnickel 4.6 * _ZN15FeatureSettings12invertScreenEv
|
//libnickel 4.6 * _ZN15FeatureSettings12invertScreenEv
|
||||||
bool (*FeatureSettings_invertScreen)(Settings*);
|
bool (*FeatureSettings_invertScreen)(Settings*);
|
||||||
reinterpret_cast<void*&>(FeatureSettings_invertScreen) = dlsym(RTLD_DEFAULT, "_ZN15FeatureSettings12invertScreenEv");
|
NM_ACT_XSYM(FeatureSettings_invertScreen, "_ZN15FeatureSettings12invertScreenEv", "could not dlsym FeatureSettings::invertScreen");
|
||||||
NM_CHECK(nullptr, FeatureSettings_invertScreen, "could not dlsym FeatureSettings::invertScreen");
|
|
||||||
|
|
||||||
//libnickel 4.6 * _ZN15FeatureSettings15setInvertScreenEb
|
//libnickel 4.6 * _ZN15FeatureSettings15setInvertScreenEb
|
||||||
bool (*FeatureSettings_setInvertScreen)(Settings*, bool);
|
bool (*FeatureSettings_setInvertScreen)(Settings*, bool);
|
||||||
reinterpret_cast<void*&>(FeatureSettings_setInvertScreen) = dlsym(RTLD_DEFAULT, "_ZN15FeatureSettings15setInvertScreenEb");
|
NM_ACT_XSYM(FeatureSettings_setInvertScreen, "_ZN15FeatureSettings15setInvertScreenEb", "could not dlsym FeatureSettings::setInvertScreen");
|
||||||
NM_CHECK(nullptr, FeatureSettings_setInvertScreen, "could not dlsym FeatureSettings::setInvertScreen");
|
|
||||||
|
|
||||||
if (mode == mode_toggle) {
|
if (mode == mode_toggle) {
|
||||||
v = FeatureSettings_invertScreen(settings);
|
v = FeatureSettings_invertScreen(settings);
|
||||||
@@ -296,13 +295,11 @@ NM_ACTION_(nickel_setting) {
|
|||||||
|
|
||||||
//libnickel 4.12.12111 * _ZN13PowerSettings16getUnlockEnabledEv
|
//libnickel 4.12.12111 * _ZN13PowerSettings16getUnlockEnabledEv
|
||||||
bool (*PowerSettings__getUnlockEnabled)(Settings*);
|
bool (*PowerSettings__getUnlockEnabled)(Settings*);
|
||||||
reinterpret_cast<void*&>(PowerSettings__getUnlockEnabled) = dlsym(RTLD_DEFAULT, "_ZN13PowerSettings16getUnlockEnabledEv");
|
NM_ACT_XSYM(PowerSettings__getUnlockEnabled, "_ZN13PowerSettings16getUnlockEnabledEv", "could not dlsym PowerSettings::getUnlockEnabled");
|
||||||
NM_CHECK(nullptr, PowerSettings__getUnlockEnabled, "could not dlsym PowerSettings::getUnlockEnabled");
|
|
||||||
|
|
||||||
//libnickel 4.12.12111 * _ZN13PowerSettings16setUnlockEnabledEb
|
//libnickel 4.12.12111 * _ZN13PowerSettings16setUnlockEnabledEb
|
||||||
bool (*PowerSettings__setUnlockEnabled)(Settings*, bool);
|
bool (*PowerSettings__setUnlockEnabled)(Settings*, bool);
|
||||||
reinterpret_cast<void*&>(PowerSettings__setUnlockEnabled) = dlsym(RTLD_DEFAULT, "_ZN13PowerSettings16setUnlockEnabledEb");
|
NM_ACT_XSYM(PowerSettings__setUnlockEnabled, "_ZN13PowerSettings16setUnlockEnabledEb", "could not dlsym PowerSettings::setUnlockEnabled");
|
||||||
NM_CHECK(nullptr, PowerSettings__setUnlockEnabled, "could not dlsym PowerSettings::setUnlockEnabled");
|
|
||||||
|
|
||||||
if (mode == mode_toggle) {
|
if (mode == mode_toggle) {
|
||||||
v = PowerSettings__getUnlockEnabled(settings);
|
v = PowerSettings__getUnlockEnabled(settings);
|
||||||
@@ -363,8 +360,7 @@ NM_ACTION_(nickel_extras) {
|
|||||||
|
|
||||||
//libnickel 4.6 * _ZN18ExtrasPluginLoader10loadPluginEPKc
|
//libnickel 4.6 * _ZN18ExtrasPluginLoader10loadPluginEPKc
|
||||||
void (*ExtrasPluginLoader_loadPlugin)(const char*);
|
void (*ExtrasPluginLoader_loadPlugin)(const char*);
|
||||||
reinterpret_cast<void*&>(ExtrasPluginLoader_loadPlugin) = dlsym(RTLD_DEFAULT, "_ZN18ExtrasPluginLoader10loadPluginEPKc");
|
NM_ACT_XSYM(ExtrasPluginLoader_loadPlugin, "_ZN18ExtrasPluginLoader10loadPluginEPKc", "could not dlsym ExtrasPluginLoader::loadPlugin");
|
||||||
NM_CHECK(nullptr, ExtrasPluginLoader_loadPlugin, "could not dlsym ExtrasPluginLoader::loadPlugin");
|
|
||||||
ExtrasPluginLoader_loadPlugin(mimetype);
|
ExtrasPluginLoader_loadPlugin(mimetype);
|
||||||
|
|
||||||
return nm_action_result_silent();
|
return nm_action_result_silent();
|
||||||
@@ -410,14 +406,13 @@ NM_ACTION_(nickel_browser) {
|
|||||||
//libnickel 4.6 * _ZN22BrowserWorkflowManager14sharedInstanceEv _ZN22BrowserWorkflowManagerC1EP7QObject
|
//libnickel 4.6 * _ZN22BrowserWorkflowManager14sharedInstanceEv _ZN22BrowserWorkflowManagerC1EP7QObject
|
||||||
BrowserWorkflowManager *(*BrowserWorkflowManager_sharedInstance)();
|
BrowserWorkflowManager *(*BrowserWorkflowManager_sharedInstance)();
|
||||||
void (*BrowserWorkflowManager_BrowserWorkflowManager)(BrowserWorkflowManager*, QObject*); // 4.11.11911+
|
void (*BrowserWorkflowManager_BrowserWorkflowManager)(BrowserWorkflowManager*, QObject*); // 4.11.11911+
|
||||||
reinterpret_cast<void*&>(BrowserWorkflowManager_sharedInstance) = dlsym(RTLD_DEFAULT, "_ZN22BrowserWorkflowManager14sharedInstanceEv");
|
NM_ACT_SYM(BrowserWorkflowManager_sharedInstance, "_ZN22BrowserWorkflowManager14sharedInstanceEv");
|
||||||
reinterpret_cast<void*&>(BrowserWorkflowManager_BrowserWorkflowManager) = dlsym(RTLD_DEFAULT, "_ZN22BrowserWorkflowManagerC1EP7QObject");
|
NM_ACT_SYM(BrowserWorkflowManager_BrowserWorkflowManager, "_ZN22BrowserWorkflowManagerC1EP7QObject");
|
||||||
NM_CHECK(nullptr, BrowserWorkflowManager_sharedInstance || BrowserWorkflowManager_BrowserWorkflowManager, "could not dlsym BrowserWorkflowManager constructor (4.11.11911+) or sharedInstance");
|
NM_CHECK(nullptr, BrowserWorkflowManager_sharedInstance || BrowserWorkflowManager_BrowserWorkflowManager, "could not dlsym BrowserWorkflowManager constructor (4.11.11911+) or sharedInstance");
|
||||||
|
|
||||||
//libnickel 4.6 * _ZN22BrowserWorkflowManager11openBrowserEbRK4QUrlRK7QString
|
//libnickel 4.6 * _ZN22BrowserWorkflowManager11openBrowserEbRK4QUrlRK7QString
|
||||||
void (*BrowserWorkflowManager_openBrowser)(BrowserWorkflowManager*, bool, QUrl*, QString*); // the bool is whether to open it as a modal, the QUrl is the URL to load(if !QUrl::isValid(), it loads the homepage), the string is CSS to inject
|
void (*BrowserWorkflowManager_openBrowser)(BrowserWorkflowManager*, bool, QUrl*, QString*); // the bool is whether to open it as a modal, the QUrl is the URL to load(if !QUrl::isValid(), it loads the homepage), the string is CSS to inject
|
||||||
reinterpret_cast<void*&>(BrowserWorkflowManager_openBrowser) = dlsym(RTLD_DEFAULT, "_ZN22BrowserWorkflowManager11openBrowserEbRK4QUrlRK7QString");
|
NM_ACT_XSYM(BrowserWorkflowManager_openBrowser, "_ZN22BrowserWorkflowManager11openBrowserEbRK4QUrlRK7QString", "could not dlsym BrowserWorkflowManager::openBrowser");
|
||||||
NM_CHECK(nullptr, BrowserWorkflowManager_openBrowser, "could not dlsym BrowserWorkflowManager::openBrowser");
|
|
||||||
|
|
||||||
// note: everything must be on the heap since if it isn't connected, it
|
// note: everything must be on the heap since if it isn't connected, it
|
||||||
// passes it as-is to the connected signal, which will be used
|
// passes it as-is to the connected signal, which will be used
|
||||||
@@ -445,8 +440,8 @@ NM_ACTION_(nickel_misc) {
|
|||||||
void (*StatusBarController_home)(void*);
|
void (*StatusBarController_home)(void*);
|
||||||
void (*MainNavController_home)(void*);
|
void (*MainNavController_home)(void*);
|
||||||
|
|
||||||
reinterpret_cast<void*&>(StatusBarController_home) = dlsym(RTLD_DEFAULT, "_ZN19StatusBarController4homeEv");
|
NM_ACT_SYM(StatusBarController_home, "_ZN19StatusBarController4homeEv");
|
||||||
reinterpret_cast<void*&>(MainNavController_home) = dlsym(RTLD_DEFAULT, "_ZN17MainNavController4homeEv");
|
NM_ACT_SYM(MainNavController_home, "_ZN17MainNavController4homeEv");
|
||||||
NM_CHECK(nullptr, StatusBarController_home || MainNavController_home, "could not dlsym StatusBarController::home (pre-4.23.15505) or MainNavController::home (4.23.15505+)");
|
NM_CHECK(nullptr, StatusBarController_home || MainNavController_home, "could not dlsym StatusBarController::home (pre-4.23.15505) or MainNavController::home (4.23.15505+)");
|
||||||
|
|
||||||
// technically, we need an instance, but it isn't used so it doesn't matter (and if it does crash, we can fix it later as it's not critical) as of 15505
|
// technically, we need an instance, but it isn't used so it doesn't matter (and if it does crash, we can fix it later as it's not critical) as of 15505
|
||||||
@@ -454,13 +449,11 @@ NM_ACTION_(nickel_misc) {
|
|||||||
} else if (!strcmp(arg, "rescan_books")) {
|
} else if (!strcmp(arg, "rescan_books")) {
|
||||||
//libnickel 4.13.12638 * _ZN19PlugWorkflowManager14sharedInstanceEv
|
//libnickel 4.13.12638 * _ZN19PlugWorkflowManager14sharedInstanceEv
|
||||||
PlugWorkflowManager *(*PlugWorkflowManager_sharedInstance)();
|
PlugWorkflowManager *(*PlugWorkflowManager_sharedInstance)();
|
||||||
reinterpret_cast<void*&>(PlugWorkflowManager_sharedInstance) = dlsym(RTLD_DEFAULT, "_ZN19PlugWorkflowManager14sharedInstanceEv");
|
NM_ACT_XSYM(PlugWorkflowManager_sharedInstance, "_ZN19PlugWorkflowManager14sharedInstanceEv", "could not dlsym PlugWorkflowManager::sharedInstance");
|
||||||
NM_CHECK(nullptr, PlugWorkflowManager_sharedInstance, "could not dlsym PlugWorkflowManager::sharedInstance");
|
|
||||||
|
|
||||||
//libnickel 4.13.12638 * _ZN19PlugWorkflowManager4syncEv
|
//libnickel 4.13.12638 * _ZN19PlugWorkflowManager4syncEv
|
||||||
void (*PlugWorkflowManager_sync)(PlugWorkflowManager*);
|
void (*PlugWorkflowManager_sync)(PlugWorkflowManager*);
|
||||||
reinterpret_cast<void*&>(PlugWorkflowManager_sync) = dlsym(RTLD_DEFAULT, "_ZN19PlugWorkflowManager4syncEv");
|
NM_ACT_XSYM(PlugWorkflowManager_sync, "_ZN19PlugWorkflowManager4syncEv", "could not dlsym PlugWorkflowManager::sync");
|
||||||
NM_CHECK(nullptr, PlugWorkflowManager_sync, "could not dlsym PlugWorkflowManager::sync");
|
|
||||||
|
|
||||||
PlugWorkflowManager *wf = PlugWorkflowManager_sharedInstance();
|
PlugWorkflowManager *wf = PlugWorkflowManager_sharedInstance();
|
||||||
NM_CHECK(nullptr, wf, "could not get shared PlugWorkflowManager pointer");
|
NM_CHECK(nullptr, wf, "could not get shared PlugWorkflowManager pointer");
|
||||||
@@ -469,19 +462,16 @@ NM_ACTION_(nickel_misc) {
|
|||||||
} else if (!strcmp(arg, "rescan_books_full")) {
|
} else if (!strcmp(arg, "rescan_books_full")) {
|
||||||
//libnickel 4.13.12638 * _ZN19PlugWorkflowManager14sharedInstanceEv
|
//libnickel 4.13.12638 * _ZN19PlugWorkflowManager14sharedInstanceEv
|
||||||
PlugWorkflowManager *(*PlugWorkflowManager_sharedInstance)();
|
PlugWorkflowManager *(*PlugWorkflowManager_sharedInstance)();
|
||||||
reinterpret_cast<void*&>(PlugWorkflowManager_sharedInstance) = dlsym(RTLD_DEFAULT, "_ZN19PlugWorkflowManager14sharedInstanceEv");
|
NM_ACT_XSYM(PlugWorkflowManager_sharedInstance, "_ZN19PlugWorkflowManager14sharedInstanceEv", "could not dlsym PlugWorkflowManager::sharedInstance");
|
||||||
NM_CHECK(nullptr, PlugWorkflowManager_sharedInstance, "could not dlsym PlugWorkflowManager::sharedInstance");
|
|
||||||
|
|
||||||
// this is what is called by PlugWorkflowManager::plugged after confirmation
|
// this is what is called by PlugWorkflowManager::plugged after confirmation
|
||||||
//libnickel 4.13.12638 * _ZN19PlugWorkflowManager18onCancelAndConnectEv
|
//libnickel 4.13.12638 * _ZN19PlugWorkflowManager18onCancelAndConnectEv
|
||||||
void (*PlugWorkflowManager_onCancelAndConnect)(PlugWorkflowManager*);
|
void (*PlugWorkflowManager_onCancelAndConnect)(PlugWorkflowManager*);
|
||||||
reinterpret_cast<void*&>(PlugWorkflowManager_onCancelAndConnect) = dlsym(RTLD_DEFAULT, "_ZN19PlugWorkflowManager18onCancelAndConnectEv");
|
NM_ACT_XSYM(PlugWorkflowManager_onCancelAndConnect, "_ZN19PlugWorkflowManager18onCancelAndConnectEv", "could not dlsym PlugWorkflowManager::onCancelAndConnect");
|
||||||
NM_CHECK(nullptr, PlugWorkflowManager_onCancelAndConnect, "could not dlsym PlugWorkflowManager::onCancelAndConnect");
|
|
||||||
|
|
||||||
//libnickel 4.13.12638 * _ZN19PlugWorkflowManager9unpluggedEv
|
//libnickel 4.13.12638 * _ZN19PlugWorkflowManager9unpluggedEv
|
||||||
void (*PlugWorkflowManager_unplugged)(PlugWorkflowManager*);
|
void (*PlugWorkflowManager_unplugged)(PlugWorkflowManager*);
|
||||||
reinterpret_cast<void*&>(PlugWorkflowManager_unplugged) = dlsym(RTLD_DEFAULT, "_ZN19PlugWorkflowManager9unpluggedEv");
|
NM_ACT_XSYM(PlugWorkflowManager_unplugged, "_ZN19PlugWorkflowManager9unpluggedEv", "could not dlsym PlugWorkflowManager::unplugged");
|
||||||
NM_CHECK(nullptr, PlugWorkflowManager_unplugged, "could not dlsym PlugWorkflowManager::unplugged");
|
|
||||||
|
|
||||||
PlugWorkflowManager *wf = PlugWorkflowManager_sharedInstance();
|
PlugWorkflowManager *wf = PlugWorkflowManager_sharedInstance();
|
||||||
NM_CHECK(nullptr, wf, "could not get shared PlugWorkflowManager pointer");
|
NM_CHECK(nullptr, wf, "could not get shared PlugWorkflowManager pointer");
|
||||||
@@ -508,8 +498,8 @@ NM_ACTION_(power) {
|
|||||||
if (!strcmp(arg, "shutdown") || !strcmp(arg, "reboot") || !strcmp(arg, "sleep")) {
|
if (!strcmp(arg, "shutdown") || !strcmp(arg, "reboot") || !strcmp(arg, "sleep")) {
|
||||||
//libnickel 4.13.12638 * _ZN22N3PowerWorkflowManager14sharedInstanceEv
|
//libnickel 4.13.12638 * _ZN22N3PowerWorkflowManager14sharedInstanceEv
|
||||||
N3PowerWorkflowManager *(*N3PowerWorkflowManager_sharedInstance)();
|
N3PowerWorkflowManager *(*N3PowerWorkflowManager_sharedInstance)();
|
||||||
reinterpret_cast<void*&>(N3PowerWorkflowManager_sharedInstance) = dlsym(RTLD_DEFAULT, "_ZN22N3PowerWorkflowManager14sharedInstanceEv");
|
NM_ACT_XSYM(N3PowerWorkflowManager_sharedInstance, "_ZN22N3PowerWorkflowManager14sharedInstanceEv",
|
||||||
NM_CHECK(nullptr, N3PowerWorkflowManager_sharedInstance, "could not dlsym N3PowerWorkflowManager::sharedInstance, so cannot perform action cleanly (if you must, report a bug and use cmd_spawn instead)");
|
"could not dlsym N3PowerWorkflowManager::sharedInstance, so cannot perform action cleanly (if you must, report a bug and use cmd_spawn instead)");
|
||||||
|
|
||||||
N3PowerWorkflowManager *pwm = N3PowerWorkflowManager_sharedInstance();
|
N3PowerWorkflowManager *pwm = N3PowerWorkflowManager_sharedInstance();
|
||||||
NM_CHECK(nullptr, pwm, "could not get shared power manager pointer");
|
NM_CHECK(nullptr, pwm, "could not get shared power manager pointer");
|
||||||
@@ -517,24 +507,21 @@ NM_ACTION_(power) {
|
|||||||
if (!strcmp(arg, "shutdown")) {
|
if (!strcmp(arg, "shutdown")) {
|
||||||
//libnickel 4.13.12638 * _ZN22N3PowerWorkflowManager8powerOffEb
|
//libnickel 4.13.12638 * _ZN22N3PowerWorkflowManager8powerOffEb
|
||||||
void (*N3PowerWorkflowManager_powerOff)(N3PowerWorkflowManager*, bool); // bool is for if it's due to low battery
|
void (*N3PowerWorkflowManager_powerOff)(N3PowerWorkflowManager*, bool); // bool is for if it's due to low battery
|
||||||
reinterpret_cast<void*&>(N3PowerWorkflowManager_powerOff) = dlsym(RTLD_DEFAULT, "_ZN22N3PowerWorkflowManager8powerOffEb");
|
NM_ACT_XSYM(N3PowerWorkflowManager_powerOff, "_ZN22N3PowerWorkflowManager8powerOffEb", "could not dlsym N3PowerWorkflowManager::powerOff");
|
||||||
NM_CHECK(nullptr, N3PowerWorkflowManager_powerOff, "could not dlsym N3PowerWorkflowManager::powerOff");
|
|
||||||
|
|
||||||
N3PowerWorkflowManager_powerOff(pwm, false);
|
N3PowerWorkflowManager_powerOff(pwm, false);
|
||||||
return nm_action_result_toast("Shutting down...");
|
return nm_action_result_toast("Shutting down...");
|
||||||
} else if (!strcmp(arg, "reboot")) {
|
} else if (!strcmp(arg, "reboot")) {
|
||||||
//libnickel 4.13.12638 * _ZN22N3PowerWorkflowManager6rebootEv
|
//libnickel 4.13.12638 * _ZN22N3PowerWorkflowManager6rebootEv
|
||||||
void (*N3PowerWorkflowManager_reboot)(N3PowerWorkflowManager*);
|
void (*N3PowerWorkflowManager_reboot)(N3PowerWorkflowManager*);
|
||||||
reinterpret_cast<void*&>(N3PowerWorkflowManager_reboot) = dlsym(RTLD_DEFAULT, "_ZN22N3PowerWorkflowManager6rebootEv");
|
NM_ACT_XSYM(N3PowerWorkflowManager_reboot, "_ZN22N3PowerWorkflowManager6rebootEv", "could not dlsym N3PowerWorkflowManager::reboot");
|
||||||
NM_CHECK(nullptr, N3PowerWorkflowManager_reboot, "could not dlsym N3PowerWorkflowManager::reboot");
|
|
||||||
|
|
||||||
N3PowerWorkflowManager_reboot(pwm);
|
N3PowerWorkflowManager_reboot(pwm);
|
||||||
return nm_action_result_toast("Rebooting...");
|
return nm_action_result_toast("Rebooting...");
|
||||||
} else if (!strcmp(arg, "sleep")) {
|
} else if (!strcmp(arg, "sleep")) {
|
||||||
//libnickel 4.13.12638 * _ZN22N3PowerWorkflowManager12requestSleepEv
|
//libnickel 4.13.12638 * _ZN22N3PowerWorkflowManager12requestSleepEv
|
||||||
void (*N3PowerWorkflowManager_requestSleep)(N3PowerWorkflowManager*);
|
void (*N3PowerWorkflowManager_requestSleep)(N3PowerWorkflowManager*);
|
||||||
reinterpret_cast<void*&>(N3PowerWorkflowManager_requestSleep) = dlsym(RTLD_DEFAULT, "_ZN22N3PowerWorkflowManager12requestSleepEv");
|
NM_ACT_XSYM(N3PowerWorkflowManager_requestSleep, "_ZN22N3PowerWorkflowManager12requestSleepEv", "could not dlsym N3PowerWorkflowManager::requestSleep");
|
||||||
NM_CHECK(nullptr, N3PowerWorkflowManager_requestSleep, "could not dlsym N3PowerWorkflowManager::requestSleep");
|
|
||||||
|
|
||||||
N3PowerWorkflowManager_requestSleep(pwm);
|
N3PowerWorkflowManager_requestSleep(pwm);
|
||||||
return nm_action_result_silent();
|
return nm_action_result_silent();
|
||||||
@@ -548,8 +535,7 @@ NM_ACTION_(power) {
|
|||||||
NM_ACTION_(nickel_wifi) {
|
NM_ACTION_(nickel_wifi) {
|
||||||
//libnickel 4.6 * _ZN23WirelessWorkflowManager14sharedInstanceEv
|
//libnickel 4.6 * _ZN23WirelessWorkflowManager14sharedInstanceEv
|
||||||
WirelessWorkflowManager *(*WirelessWorkflowManager_sharedInstance)();
|
WirelessWorkflowManager *(*WirelessWorkflowManager_sharedInstance)();
|
||||||
reinterpret_cast<void*&>(WirelessWorkflowManager_sharedInstance) = dlsym(RTLD_DEFAULT, "_ZN23WirelessWorkflowManager14sharedInstanceEv");
|
NM_ACT_XSYM(WirelessWorkflowManager_sharedInstance, "_ZN23WirelessWorkflowManager14sharedInstanceEv", "could not dlsym WirelessWorkflowManager::sharedInstance");
|
||||||
NM_CHECK(nullptr, WirelessWorkflowManager_sharedInstance, "could not dlsym WirelessWorkflowManager::sharedInstance");
|
|
||||||
|
|
||||||
WirelessWorkflowManager *wfm = WirelessWorkflowManager_sharedInstance();
|
WirelessWorkflowManager *wfm = WirelessWorkflowManager_sharedInstance();
|
||||||
NM_CHECK(nullptr, wfm, "could not get shared wireless manager pointer");
|
NM_CHECK(nullptr, wfm, "could not get shared wireless manager pointer");
|
||||||
@@ -557,30 +543,26 @@ NM_ACTION_(nickel_wifi) {
|
|||||||
if (!strcmp(arg, "autoconnect")) {
|
if (!strcmp(arg, "autoconnect")) {
|
||||||
//libnickel 4.6 * _ZN23WirelessWorkflowManager15connectWirelessEbb
|
//libnickel 4.6 * _ZN23WirelessWorkflowManager15connectWirelessEbb
|
||||||
void (*WirelessWorkflowManager_connectWireless)(WirelessWorkflowManager*, bool, bool); // I haven't looked into what the params are for, so I'm just using what the browser uses when opening it
|
void (*WirelessWorkflowManager_connectWireless)(WirelessWorkflowManager*, bool, bool); // I haven't looked into what the params are for, so I'm just using what the browser uses when opening it
|
||||||
reinterpret_cast<void*&>(WirelessWorkflowManager_connectWireless) = dlsym(RTLD_DEFAULT, "_ZN23WirelessWorkflowManager15connectWirelessEbb");
|
NM_ACT_XSYM(WirelessWorkflowManager_connectWireless, "_ZN23WirelessWorkflowManager15connectWirelessEbb", "could not dlsym WirelessWorkflowManager::connectWireless");
|
||||||
NM_CHECK(nullptr, WirelessWorkflowManager_connectWireless, "could not dlsym WirelessWorkflowManager::connectWireless");
|
|
||||||
|
|
||||||
WirelessWorkflowManager_connectWireless(wfm, true, false);
|
WirelessWorkflowManager_connectWireless(wfm, true, false);
|
||||||
} else if (!strcmp(arg, "autoconnect_silent")) {
|
} else if (!strcmp(arg, "autoconnect_silent")) {
|
||||||
//libnickel 4.6 * _ZN23WirelessWorkflowManager23connectWirelessSilentlyEv
|
//libnickel 4.6 * _ZN23WirelessWorkflowManager23connectWirelessSilentlyEv
|
||||||
void (*WirelessWorkflowManager_connectWirelessSilently)(WirelessWorkflowManager*);
|
void (*WirelessWorkflowManager_connectWirelessSilently)(WirelessWorkflowManager*);
|
||||||
reinterpret_cast<void*&>(WirelessWorkflowManager_connectWirelessSilently) = dlsym(RTLD_DEFAULT, "_ZN23WirelessWorkflowManager23connectWirelessSilentlyEv");
|
NM_ACT_XSYM(WirelessWorkflowManager_connectWirelessSilently, "_ZN23WirelessWorkflowManager23connectWirelessSilentlyEv", "could not dlsym WirelessWorkflowManager::connectWirelessSilently");
|
||||||
NM_CHECK(nullptr, WirelessWorkflowManager_connectWirelessSilently, "could not dlsym WirelessWorkflowManager::connectWirelessSilently");
|
|
||||||
|
|
||||||
WirelessWorkflowManager_connectWirelessSilently(wfm);
|
WirelessWorkflowManager_connectWirelessSilently(wfm);
|
||||||
} else if (!strcmp(arg, "enable") || !strcmp(arg, "disable") || !strcmp(arg, "toggle")) {
|
} else if (!strcmp(arg, "enable") || !strcmp(arg, "disable") || !strcmp(arg, "toggle")) {
|
||||||
//libnickel 4.6 * _ZN23WirelessWorkflowManager14isAirplaneModeEv
|
//libnickel 4.6 * _ZN23WirelessWorkflowManager14isAirplaneModeEv
|
||||||
bool (*WirelessWorkflowManager_isAirplaneMode)(WirelessWorkflowManager*);
|
bool (*WirelessWorkflowManager_isAirplaneMode)(WirelessWorkflowManager*);
|
||||||
reinterpret_cast<void*&>(WirelessWorkflowManager_isAirplaneMode) = dlsym(RTLD_DEFAULT, "_ZN23WirelessWorkflowManager14isAirplaneModeEv");
|
NM_ACT_XSYM(WirelessWorkflowManager_isAirplaneMode, "_ZN23WirelessWorkflowManager14isAirplaneModeEv", "could not dlsym WirelessWorkflowManager::isAirplaneMode");
|
||||||
NM_CHECK(nullptr, WirelessWorkflowManager_isAirplaneMode, "could not dlsym WirelessWorkflowManager::isAirplaneMode");
|
|
||||||
|
|
||||||
bool e = WirelessWorkflowManager_isAirplaneMode(wfm);
|
bool e = WirelessWorkflowManager_isAirplaneMode(wfm);
|
||||||
NM_LOG("wifi disabled: %d", e);
|
NM_LOG("wifi disabled: %d", e);
|
||||||
|
|
||||||
//libnickel 4.6 * _ZN23WirelessWorkflowManager15setAirplaneModeEb
|
//libnickel 4.6 * _ZN23WirelessWorkflowManager15setAirplaneModeEb
|
||||||
void (*WirelessWorkflowManager_setAirplaneMode)(WirelessWorkflowManager*, bool);
|
void (*WirelessWorkflowManager_setAirplaneMode)(WirelessWorkflowManager*, bool);
|
||||||
reinterpret_cast<void*&>(WirelessWorkflowManager_setAirplaneMode) = dlsym(RTLD_DEFAULT, "_ZN23WirelessWorkflowManager15setAirplaneModeEb");
|
NM_ACT_XSYM(WirelessWorkflowManager_setAirplaneMode, "_ZN23WirelessWorkflowManager15setAirplaneModeEb", "could not dlsym WirelessWorkflowManager::setAirplaneMode");
|
||||||
NM_CHECK(nullptr, WirelessWorkflowManager_setAirplaneMode, "could not dlsym WirelessWorkflowManager::setAirplaneMode");
|
|
||||||
|
|
||||||
if (!strcmp(arg, "enable")) {
|
if (!strcmp(arg, "enable")) {
|
||||||
if (e)
|
if (e)
|
||||||
@@ -620,43 +602,37 @@ NM_ACTION_(nickel_orientation) {
|
|||||||
|
|
||||||
//libnickel 4.6 * _ZN22QWindowSystemInterface29handleScreenOrientationChangeEP7QScreenN2Qt17ScreenOrientationE
|
//libnickel 4.6 * _ZN22QWindowSystemInterface29handleScreenOrientationChangeEP7QScreenN2Qt17ScreenOrientationE
|
||||||
void (*QWindowSystemInterface_handleScreenOrientationChange)(QScreen*, Qt::ScreenOrientation);
|
void (*QWindowSystemInterface_handleScreenOrientationChange)(QScreen*, Qt::ScreenOrientation);
|
||||||
reinterpret_cast<void*&>(QWindowSystemInterface_handleScreenOrientationChange) = dlsym(RTLD_DEFAULT, "_ZN22QWindowSystemInterface29handleScreenOrientationChangeEP7QScreenN2Qt17ScreenOrientationE");
|
NM_ACT_XSYM(QWindowSystemInterface_handleScreenOrientationChange, "_ZN22QWindowSystemInterface29handleScreenOrientationChangeEP7QScreenN2Qt17ScreenOrientationE", "could not dlsym QWindowSystemInterface::handleScreenOrientationChange (did the way Nickel handles the screen orientation sensor change?)");
|
||||||
NM_CHECK(nullptr, QWindowSystemInterface_handleScreenOrientationChange, "could not dlsym QWindowSystemInterface::handleScreenOrientationChange (did the way Nickel handles the screen orientation sensor change?)");
|
|
||||||
|
|
||||||
//libnickel 4.6 * _ZN6Device16getCurrentDeviceEv
|
//libnickel 4.6 * _ZN6Device16getCurrentDeviceEv
|
||||||
Device *(*Device_getCurrentDevice)();
|
Device *(*Device_getCurrentDevice)();
|
||||||
reinterpret_cast<void*&>(Device_getCurrentDevice) = dlsym(RTLD_DEFAULT, "_ZN6Device16getCurrentDeviceEv");
|
NM_ACT_XSYM(Device_getCurrentDevice, "_ZN6Device16getCurrentDeviceEv", "could not dlsym Device::getCurrentDevice");
|
||||||
NM_CHECK(nullptr, Device_getCurrentDevice, "could not dlsym Device::getCurrentDevice");
|
|
||||||
|
|
||||||
//libnickel 4.11.11911 * _ZNK6Device20hasOrientationSensorEv
|
//libnickel 4.11.11911 * _ZNK6Device20hasOrientationSensorEv
|
||||||
bool (*Device_hasOrientationSensor)(Device*);
|
bool (*Device_hasOrientationSensor)(Device*);
|
||||||
reinterpret_cast<void*&>(Device_hasOrientationSensor) = dlsym(RTLD_DEFAULT, "_ZNK6Device20hasOrientationSensorEv");
|
NM_ACT_XSYM(Device_hasOrientationSensor, "_ZNK6Device20hasOrientationSensorEv", "could not dlsym Device::hasOrientationSensor");
|
||||||
NM_CHECK(nullptr, Device_getCurrentDevice, "could not dlsym Device::hasOrientationSensor");
|
|
||||||
|
|
||||||
//libnickel 4.6 * _ZN8SettingsC2ERK6Deviceb _ZN8SettingsC2ERK6Device
|
//libnickel 4.6 * _ZN8SettingsC2ERK6Deviceb _ZN8SettingsC2ERK6Device
|
||||||
void *(*Settings_Settings)(Settings*, Device*, bool);
|
void *(*Settings_Settings)(Settings*, Device*, bool);
|
||||||
void *(*Settings_SettingsLegacy)(Settings*, Device*);
|
void *(*Settings_SettingsLegacy)(Settings*, Device*);
|
||||||
reinterpret_cast<void*&>(Settings_Settings) = dlsym(RTLD_DEFAULT, "_ZN8SettingsC2ERK6Deviceb");
|
NM_ACT_SYM(Settings_Settings, "_ZN8SettingsC2ERK6Deviceb");
|
||||||
reinterpret_cast<void*&>(Settings_SettingsLegacy) = dlsym(RTLD_DEFAULT, "_ZN8SettingsC2ERK6Device");
|
NM_ACT_SYM(Settings_SettingsLegacy, "_ZN8SettingsC2ERK6Device");
|
||||||
NM_CHECK(nullptr, Settings_Settings || Settings_SettingsLegacy, "could not dlsym Settings constructor (new and/or old)");
|
NM_CHECK(nullptr, Settings_Settings || Settings_SettingsLegacy, "could not dlsym Settings constructor (new and/or old)");
|
||||||
|
|
||||||
//libnickel 4.6 * _ZN8SettingsD2Ev
|
//libnickel 4.6 * _ZN8SettingsD2Ev
|
||||||
void *(*Settings_SettingsD)(Settings*);
|
void *(*Settings_SettingsD)(Settings*);
|
||||||
reinterpret_cast<void*&>(Settings_SettingsD) = dlsym(RTLD_DEFAULT, "_ZN8SettingsD2Ev");
|
NM_ACT_XSYM(Settings_SettingsD, "_ZN8SettingsD2Ev", "could not dlsym Settings destructor");
|
||||||
NM_CHECK(nullptr, Settings_SettingsD, "could not dlsym Settings destructor");
|
|
||||||
|
|
||||||
void *ApplicationSettings_vtable = dlsym(RTLD_DEFAULT, "_ZTV19ApplicationSettings");
|
void *ApplicationSettings_vtable = dlsym(RTLD_DEFAULT, "_ZTV19ApplicationSettings");
|
||||||
NM_CHECK(nullptr, ApplicationSettings_vtable, "could not dlsym the vtable for ApplicationSettings");
|
NM_CHECK(nullptr, ApplicationSettings_vtable, "could not dlsym the vtable for ApplicationSettings");
|
||||||
|
|
||||||
//libnickel 4.13.12638 * _ZN19ApplicationSettings20setLockedOrientationE6QFlagsIN2Qt17ScreenOrientationEE
|
//libnickel 4.13.12638 * _ZN19ApplicationSettings20setLockedOrientationE6QFlagsIN2Qt17ScreenOrientationEE
|
||||||
bool (*ApplicationSettings_setLockedOrientation)(Settings*, Qt::ScreenOrientation);
|
bool (*ApplicationSettings_setLockedOrientation)(Settings*, Qt::ScreenOrientation);
|
||||||
reinterpret_cast<void*&>(ApplicationSettings_setLockedOrientation) = dlsym(RTLD_DEFAULT, "_ZN19ApplicationSettings20setLockedOrientationE6QFlagsIN2Qt17ScreenOrientationEE");
|
NM_ACT_XSYM(ApplicationSettings_setLockedOrientation, "_ZN19ApplicationSettings20setLockedOrientationE6QFlagsIN2Qt17ScreenOrientationEE", "could not dlsym ApplicationSettings::setLockedOrientation");
|
||||||
NM_CHECK(nullptr, ApplicationSettings_setLockedOrientation, "could not dlsym ApplicationSettings::setLockedOrientation");
|
|
||||||
|
|
||||||
//libnickel 4.13.12638 * _ZN19ApplicationSettings17lockedOrientationEv
|
//libnickel 4.13.12638 * _ZN19ApplicationSettings17lockedOrientationEv
|
||||||
int (*ApplicationSettings_lockedOrientation)(Settings*);
|
int (*ApplicationSettings_lockedOrientation)(Settings*);
|
||||||
reinterpret_cast<void*&>(ApplicationSettings_lockedOrientation) = dlsym(RTLD_DEFAULT, "_ZN19ApplicationSettings17lockedOrientationEv");
|
NM_ACT_XSYM(ApplicationSettings_lockedOrientation, "_ZN19ApplicationSettings17lockedOrientationEv", "could not dlsym ApplicationSettings::lockedOrientation");
|
||||||
NM_CHECK(nullptr, ApplicationSettings_lockedOrientation, "could not dlsym ApplicationSettings::lockedOrientation");
|
|
||||||
|
|
||||||
Device *dev = Device_getCurrentDevice();
|
Device *dev = Device_getCurrentDevice();
|
||||||
NM_CHECK(nullptr, dev, "could not get shared nickel device pointer");
|
NM_CHECK(nullptr, dev, "could not get shared nickel device pointer");
|
||||||
|
|||||||
Reference in New Issue
Block a user