mirror of
https://github.com/NohamR/RMHook.git
synced 2026-01-09 22:18:13 +00:00
Rename build mode from qmldiff to qmlrebuild
Replaces all references to the 'qmldiff' build mode with 'qmlrebuild' across CMakeLists.txt, README.md, build scripts, and source files.
This commit is contained in:
@@ -8,10 +8,10 @@ set(CMAKE_CXX_STANDARD 17)
|
|||||||
|
|
||||||
# Build mode options
|
# Build mode options
|
||||||
# - rmfakecloud: Redirect reMarkable cloud to rmfakecloud server (default)
|
# - rmfakecloud: Redirect reMarkable cloud to rmfakecloud server (default)
|
||||||
# - qmldiff: Qt resource data registration hooking (WIP)
|
# - qmlrebuild: Qt resource data registration hooking
|
||||||
# - dev: Development/reverse engineering mode with all hooks
|
# - dev: Development/reverse engineering mode with all hooks
|
||||||
option(BUILD_MODE_RMFAKECLOUD "Build with rmfakecloud support" ON)
|
option(BUILD_MODE_RMFAKECLOUD "Build with rmfakecloud support" ON)
|
||||||
option(BUILD_MODE_QMLDIFF "Build with QML diff/resource hooking" OFF)
|
option(BUILD_MODE_QMLREBUILD "Build with QML resource rebuilding" OFF)
|
||||||
option(BUILD_MODE_DEV "Build with dev/reverse engineering hooks" OFF)
|
option(BUILD_MODE_DEV "Build with dev/reverse engineering hooks" OFF)
|
||||||
|
|
||||||
# Compiler settings for macOS
|
# Compiler settings for macOS
|
||||||
@@ -111,9 +111,9 @@ if(BUILD_MODE_RMFAKECLOUD)
|
|||||||
message(STATUS "Build mode: rmfakecloud (cloud redirection)")
|
message(STATUS "Build mode: rmfakecloud (cloud redirection)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_MODE_QMLDIFF)
|
if(BUILD_MODE_QMLREBUILD)
|
||||||
target_compile_definitions(reMarkable PRIVATE BUILD_MODE_QMLDIFF=1)
|
target_compile_definitions(reMarkable PRIVATE BUILD_MODE_QMLREBUILD=1)
|
||||||
message(STATUS "Build mode: qmldiff (resource hooking)")
|
message(STATUS "Build mode: qmlrebuild (resource hooking)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_MODE_DEV)
|
if(BUILD_MODE_DEV)
|
||||||
|
|||||||
@@ -162,11 +162,11 @@ The build script supports different modes for various use cases:
|
|||||||
| Mode | Description |
|
| Mode | Description |
|
||||||
|------|-------------|
|
|------|-------------|
|
||||||
| `rmfakecloud` | Redirect reMarkable cloud to rmfakecloud server (default) |
|
| `rmfakecloud` | Redirect reMarkable cloud to rmfakecloud server (default) |
|
||||||
| `qmldiff` | Qt resource data registration hooking for QML replacement |
|
| `qmlrebuild` | Qt resource data registration hooking for QML replacement |
|
||||||
| `dev` | Development/reverse engineering mode with all hooks |
|
| `dev` | Development/reverse engineering mode with all hooks |
|
||||||
| `all` | Enable all modes |
|
| `all` | Enable all modes |
|
||||||
|
|
||||||
**Note (qmldiff mode):** When using the `qmldiff` feature, you must clear the Qt QML cache before launching the app:
|
**Note (qmlrebuild mode):** When using the `qmlrebuild` feature, you must clear the Qt QML cache before launching the app:
|
||||||
```bash
|
```bash
|
||||||
rm -rf ~/Library/Caches/remarkable
|
rm -rf ~/Library/Caches/remarkable
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
# Build modes:
|
# Build modes:
|
||||||
# rmfakecloud - Redirect reMarkable cloud to rmfakecloud server (default)
|
# rmfakecloud - Redirect reMarkable cloud to rmfakecloud server (default)
|
||||||
# qmldiff - Qt resource data registration hooking (WIP)
|
# qmlrebuild - Qt resource data registration hooking
|
||||||
# dev - Development/reverse engineering mode with all hooks
|
# dev - Development/reverse engineering mode with all hooks
|
||||||
|
|
||||||
PROJECT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
PROJECT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
||||||
@@ -19,8 +19,8 @@ case "$BUILD_MODE" in
|
|||||||
rmfakecloud)
|
rmfakecloud)
|
||||||
DYLIB_NAME="rmfakecloud.dylib"
|
DYLIB_NAME="rmfakecloud.dylib"
|
||||||
;;
|
;;
|
||||||
qmldiff)
|
qmlrebuild)
|
||||||
DYLIB_NAME="qmldiff.dylib"
|
DYLIB_NAME="qmlrebuild.dylib"
|
||||||
;;
|
;;
|
||||||
dev)
|
dev)
|
||||||
DYLIB_NAME="dev.dylib"
|
DYLIB_NAME="dev.dylib"
|
||||||
@@ -37,20 +37,20 @@ esac
|
|||||||
CMAKE_OPTIONS=""
|
CMAKE_OPTIONS=""
|
||||||
case "$BUILD_MODE" in
|
case "$BUILD_MODE" in
|
||||||
rmfakecloud)
|
rmfakecloud)
|
||||||
CMAKE_OPTIONS="-DBUILD_MODE_RMFAKECLOUD=ON -DBUILD_MODE_QMLDIFF=OFF -DBUILD_MODE_DEV=OFF"
|
CMAKE_OPTIONS="-DBUILD_MODE_RMFAKECLOUD=ON -DBUILD_MODE_QMLREBUILD=OFF -DBUILD_MODE_DEV=OFF"
|
||||||
;;
|
;;
|
||||||
qmldiff)
|
qmlrebuild)
|
||||||
CMAKE_OPTIONS="-DBUILD_MODE_RMFAKECLOUD=OFF -DBUILD_MODE_QMLDIFF=ON -DBUILD_MODE_DEV=OFF"
|
CMAKE_OPTIONS="-DBUILD_MODE_RMFAKECLOUD=OFF -DBUILD_MODE_QMLREBUILD=ON -DBUILD_MODE_DEV=OFF"
|
||||||
;;
|
;;
|
||||||
dev)
|
dev)
|
||||||
CMAKE_OPTIONS="-DBUILD_MODE_RMFAKECLOUD=OFF -DBUILD_MODE_QMLDIFF=OFF -DBUILD_MODE_DEV=ON"
|
CMAKE_OPTIONS="-DBUILD_MODE_RMFAKECLOUD=OFF -DBUILD_MODE_QMLREBUILD=OFF -DBUILD_MODE_DEV=ON"
|
||||||
;;
|
;;
|
||||||
all)
|
all)
|
||||||
CMAKE_OPTIONS="-DBUILD_MODE_RMFAKECLOUD=ON -DBUILD_MODE_QMLDIFF=ON -DBUILD_MODE_DEV=ON"
|
CMAKE_OPTIONS="-DBUILD_MODE_RMFAKECLOUD=ON -DBUILD_MODE_QMLREBUILD=ON -DBUILD_MODE_DEV=ON"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "❌ Unknown build mode: $BUILD_MODE"
|
echo "❌ Unknown build mode: $BUILD_MODE"
|
||||||
echo "Available modes: rmfakecloud (default), qmldiff, dev, all"
|
echo "Available modes: rmfakecloud (default), qmlrebuild, dev, all"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ static void (*original_qWebSocket_open)(
|
|||||||
const QNetworkRequest &request) = NULL;
|
const QNetworkRequest &request) = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef BUILD_MODE_QMLDIFF
|
#ifdef BUILD_MODE_QMLREBUILD
|
||||||
static int (*original_qRegisterResourceData)(
|
static int (*original_qRegisterResourceData)(
|
||||||
int,
|
int,
|
||||||
const unsigned char *,
|
const unsigned char *,
|
||||||
@@ -300,8 +300,8 @@ static inline bool shouldPatchURL(const QString &host) {
|
|||||||
logPrefix:@"[reMarkable]"];
|
logPrefix:@"[reMarkable]"];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef BUILD_MODE_QMLDIFF
|
#ifdef BUILD_MODE_QMLREBUILD
|
||||||
NSLogger(@"[reMarkable] Build mode: qmldiff");
|
NSLogger(@"[reMarkable] Build mode: qmlrebuild");
|
||||||
[MemoryUtils hookSymbol:@"QtCore"
|
[MemoryUtils hookSymbol:@"QtCore"
|
||||||
symbolName:@"__Z21qRegisterResourceDataiPKhS0_S0_"
|
symbolName:@"__Z21qRegisterResourceDataiPKhS0_S0_"
|
||||||
hookFunction:(void *)hooked_qRegisterResourceData
|
hookFunction:(void *)hooked_qRegisterResourceData
|
||||||
@@ -427,9 +427,9 @@ extern "C" void hooked_qWebSocket_open(
|
|||||||
}
|
}
|
||||||
#endif // BUILD_MODE_RMFAKECLOUD
|
#endif // BUILD_MODE_RMFAKECLOUD
|
||||||
|
|
||||||
#ifdef BUILD_MODE_QMLDIFF
|
#ifdef BUILD_MODE_QMLREBUILD
|
||||||
|
|
||||||
// See https://deepwiki.com/search/once-the-qrr-file-parsed-take_871f24a0-8636-4aee-bddf-7405b6e32584 for details on qmldiff replacement strategy
|
// See https://deepwiki.com/search/once-the-qrr-file-parsed-take_871f24a0-8636-4aee-bddf-7405b6e32584 for details on qmlrebuild replacement strategy
|
||||||
|
|
||||||
extern "C" int hooked_qRegisterResourceData(
|
extern "C" int hooked_qRegisterResourceData(
|
||||||
int version,
|
int version,
|
||||||
@@ -528,6 +528,6 @@ extern "C" int hooked_qRegisterResourceData(
|
|||||||
pthread_mutex_unlock(&gResourceMutex);
|
pthread_mutex_unlock(&gResourceMutex);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
#endif // BUILD_MODE_QMLDIFF
|
#endif // BUILD_MODE_QMLREBUILD
|
||||||
|
|
||||||
@end
|
@end
|
||||||
@@ -36,7 +36,7 @@ static NSString *ReMarkableDumpRootDirectory(void) {
|
|||||||
return dumpDirectory;
|
return dumpDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef BUILD_MODE_QMLDIFF
|
#ifdef BUILD_MODE_QMLREBUILD
|
||||||
uint32_t readUInt32(uint8_t *addr, int offset) {
|
uint32_t readUInt32(uint8_t *addr, int offset) {
|
||||||
return (uint32_t)(addr[offset + 0] << 24) |
|
return (uint32_t)(addr[offset + 0] << 24) |
|
||||||
(uint32_t)(addr[offset + 1] << 16) |
|
(uint32_t)(addr[offset + 1] << 16) |
|
||||||
@@ -554,4 +554,4 @@ void processNode(struct ResourceRoot *root, int node, const char *rootName) {
|
|||||||
// ReMarkableDumpResourceFile(root, node, rootName ? rootName : "", nameBuffer, fileFlag);
|
// ReMarkableDumpResourceFile(root, node, rootName ? rootName : "", nameBuffer, fileFlag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // BUILD_MODE_QMLDIFF
|
#endif // BUILD_MODE_QMLREBUILD
|
||||||
Reference in New Issue
Block a user