diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f94d0a..d930f45 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,10 +8,10 @@ set(CMAKE_CXX_STANDARD 17) # Build mode options # - 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 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) # Compiler settings for macOS @@ -111,9 +111,9 @@ if(BUILD_MODE_RMFAKECLOUD) message(STATUS "Build mode: rmfakecloud (cloud redirection)") endif() -if(BUILD_MODE_QMLDIFF) - target_compile_definitions(reMarkable PRIVATE BUILD_MODE_QMLDIFF=1) - message(STATUS "Build mode: qmldiff (resource hooking)") +if(BUILD_MODE_QMLREBUILD) + target_compile_definitions(reMarkable PRIVATE BUILD_MODE_QMLREBUILD=1) + message(STATUS "Build mode: qmlrebuild (resource hooking)") endif() if(BUILD_MODE_DEV) diff --git a/README.md b/README.md index 410e8d3..689a183 100644 --- a/README.md +++ b/README.md @@ -162,11 +162,11 @@ The build script supports different modes for various use cases: | Mode | Description | |------|-------------| | `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 | | `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 rm -rf ~/Library/Caches/remarkable ``` diff --git a/scripts/build.sh b/scripts/build.sh index f850ec2..65b6342 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -3,7 +3,7 @@ # Build modes: # 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 PROJECT_DIR=$(cd "$(dirname "$0")/.." && pwd) @@ -19,8 +19,8 @@ case "$BUILD_MODE" in rmfakecloud) DYLIB_NAME="rmfakecloud.dylib" ;; - qmldiff) - DYLIB_NAME="qmldiff.dylib" + qmlrebuild) + DYLIB_NAME="qmlrebuild.dylib" ;; dev) DYLIB_NAME="dev.dylib" @@ -37,20 +37,20 @@ esac CMAKE_OPTIONS="" case "$BUILD_MODE" in 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) - CMAKE_OPTIONS="-DBUILD_MODE_RMFAKECLOUD=OFF -DBUILD_MODE_QMLDIFF=ON -DBUILD_MODE_DEV=OFF" + qmlrebuild) + CMAKE_OPTIONS="-DBUILD_MODE_RMFAKECLOUD=OFF -DBUILD_MODE_QMLREBUILD=ON -DBUILD_MODE_DEV=OFF" ;; 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) - 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 "Available modes: rmfakecloud (default), qmldiff, dev, all" + echo "Available modes: rmfakecloud (default), qmlrebuild, dev, all" exit 1 ;; esac diff --git a/src/reMarkable/reMarkable.m b/src/reMarkable/reMarkable.m index 512f8de..24c8dae 100644 --- a/src/reMarkable/reMarkable.m +++ b/src/reMarkable/reMarkable.m @@ -244,7 +244,7 @@ static void (*original_qWebSocket_open)( const QNetworkRequest &request) = NULL; #endif -#ifdef BUILD_MODE_QMLDIFF +#ifdef BUILD_MODE_QMLREBUILD static int (*original_qRegisterResourceData)( int, const unsigned char *, @@ -300,8 +300,8 @@ static inline bool shouldPatchURL(const QString &host) { logPrefix:@"[reMarkable]"]; #endif -#ifdef BUILD_MODE_QMLDIFF - NSLogger(@"[reMarkable] Build mode: qmldiff"); +#ifdef BUILD_MODE_QMLREBUILD + NSLogger(@"[reMarkable] Build mode: qmlrebuild"); [MemoryUtils hookSymbol:@"QtCore" symbolName:@"__Z21qRegisterResourceDataiPKhS0_S0_" hookFunction:(void *)hooked_qRegisterResourceData @@ -427,9 +427,9 @@ extern "C" void hooked_qWebSocket_open( } #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( int version, @@ -528,6 +528,6 @@ extern "C" int hooked_qRegisterResourceData( pthread_mutex_unlock(&gResourceMutex); return status; } -#endif // BUILD_MODE_QMLDIFF +#endif // BUILD_MODE_QMLREBUILD @end \ No newline at end of file diff --git a/src/utils/ResourceUtils.m b/src/utils/ResourceUtils.m index 5922a98..ca51e04 100644 --- a/src/utils/ResourceUtils.m +++ b/src/utils/ResourceUtils.m @@ -36,7 +36,7 @@ static NSString *ReMarkableDumpRootDirectory(void) { return dumpDirectory; } -#ifdef BUILD_MODE_QMLDIFF +#ifdef BUILD_MODE_QMLREBUILD uint32_t readUInt32(uint8_t *addr, int offset) { return (uint32_t)(addr[offset + 0] << 24) | (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); } } -#endif // BUILD_MODE_QMLDIFF \ No newline at end of file +#endif // BUILD_MODE_QMLREBUILD \ No newline at end of file