The reMarkable UI is primarily built using QML, but all of the files are embedded inside the binary as compiled Qt resources. For ease of hacking, it is possible to extract the files onto the filesystem and patch the binary to load the extracted files.
--> ONLY FOR FIRMWARE VERSION 2.11.0.442 on rM2 <--
- Copy
/usr/bin/xochitl
to your computer - Acquire qrc2zip
- Run the following
qrc2zip -o qrc1.zip -v xochitl 3 3961032 3962440 3959884
qrc2zip -o qrc2.zip -v xochitl 3 4255140 4255316 4254928
qrc2zip -o qrc3.zip -v xochitl 3 4525748 4539940 4531052
qrc2zip -o qrc4.zip -v xochitl 3 4928644 4928932 4928236
qrc2zip -o qrc5.zip -v xochitl 3 5264976 5265460 5264316
- Unzip all of the generated files.
- Acquire reMarkable SDK
- Compile
hax.c
$OE_QMAKE_CC -Wall -ggdb3 -std=c11 -fpic -shared -o hax.so hax.c
- Copy
hax.so
to reMarkable
- Copy
qml/
directory extracted from .zip files to/home/root/hacked-qml
- Cause
hax.so
to be loaded. If you are using Toltec and its wrapper, edit the file/opt/etc/xochitl.env.d/rm2fb-preload.env
and replace the lineexport LD_PRELOAD=/opt/lib/librm2fb_client.so.1
withexport LD_PRELOAD="/opt/lib/librm2fb_client.so.1 /home/root/hax.so"