mirror of
https://github.com/NohamR/RMHook.git
synced 2026-01-09 22:18:13 +00:00
Replaces all references to the 'qmldiff' build mode with 'qmlrebuild' across CMakeLists.txt, README.md, build scripts, and source files.
97 lines
2.7 KiB
Bash
Executable File
97 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script to compile the reMarkable dylib with different build modes
|
|
|
|
# Build modes:
|
|
# rmfakecloud - Redirect reMarkable cloud to rmfakecloud server (default)
|
|
# qmlrebuild - Qt resource data registration hooking
|
|
# dev - Development/reverse engineering mode with all hooks
|
|
|
|
PROJECT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
|
|
|
# Qt path detection
|
|
QT_PATH=${QT_PATH:-$(ls -d "$HOME/Qt/6."* 2>/dev/null | sort -V | tail -n1)}
|
|
|
|
# Parse build mode argument
|
|
BUILD_MODE=${1:-rmfakecloud}
|
|
|
|
# Determine final dylib name for the selected build mode
|
|
case "$BUILD_MODE" in
|
|
rmfakecloud)
|
|
DYLIB_NAME="rmfakecloud.dylib"
|
|
;;
|
|
qmlrebuild)
|
|
DYLIB_NAME="qmlrebuild.dylib"
|
|
;;
|
|
dev)
|
|
DYLIB_NAME="dev.dylib"
|
|
;;
|
|
all)
|
|
DYLIB_NAME="all.dylib"
|
|
;;
|
|
*)
|
|
DYLIB_NAME="reMarkable.dylib"
|
|
;;
|
|
esac
|
|
|
|
# Set CMake options based on build mode
|
|
CMAKE_OPTIONS=""
|
|
case "$BUILD_MODE" in
|
|
rmfakecloud)
|
|
CMAKE_OPTIONS="-DBUILD_MODE_RMFAKECLOUD=ON -DBUILD_MODE_QMLREBUILD=OFF -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_QMLREBUILD=OFF -DBUILD_MODE_DEV=ON"
|
|
;;
|
|
all)
|
|
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), qmlrebuild, dev, all"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo "🔨 Compiling reMarkable.dylib (mode: $BUILD_MODE)..."
|
|
echo "📦 Qt path: $QT_PATH"
|
|
|
|
# Create build directories if necessary
|
|
mkdir -p "$PROJECT_DIR/build"
|
|
cd "$PROJECT_DIR/build"
|
|
|
|
# Configure with CMake and compile
|
|
if [ -d "$QT_PATH" ]; then
|
|
cmake -DCMAKE_PREFIX_PATH="$QT_PATH" $CMAKE_OPTIONS ..
|
|
else
|
|
echo "⚠️ Qt not found at $QT_PATH, trying without specifying path..."
|
|
cmake $CMAKE_OPTIONS ..
|
|
fi
|
|
|
|
make reMarkable
|
|
|
|
if [ $? -eq 0 ]; then
|
|
# Rename the produced dylib so each build mode has a distinct file name
|
|
DYLIB_DIR="$PROJECT_DIR/build/dylibs"
|
|
DEFAULT_DYLIB="$DYLIB_DIR/reMarkable.dylib"
|
|
TARGET_DYLIB="$DYLIB_DIR/$DYLIB_NAME"
|
|
|
|
if [ -f "$DEFAULT_DYLIB" ]; then
|
|
mv "$DEFAULT_DYLIB" "$TARGET_DYLIB"
|
|
else
|
|
echo "⚠️ Expected dylib not found at $DEFAULT_DYLIB"
|
|
fi
|
|
|
|
echo ""
|
|
echo "✅ Compilation successful!"
|
|
echo "📍 Dylib: $TARGET_DYLIB"
|
|
echo ""
|
|
echo "🚀 To inject into the reMarkable application:"
|
|
echo " DYLD_INSERT_LIBRARIES=\"$TARGET_DYLIB\" /Applications/reMarkable.app/Contents/MacOS/reMarkable"
|
|
echo ""
|
|
else
|
|
echo "❌ Compilation failed"
|
|
exit 1
|
|
fi |