ddvk / remarkable-hacks

additional functionality via binary patching
MIT License
1.67k stars 82 forks source link
remarkable-tablet

Binary patches for the rM

Those are features that I find useful/wanted for me to have. If someone else would like to try them, they are welcome.

Supported devices and firmware versions

Latest version supported:

Disclaimer

The files are offered without any warranty and you will be violating the reMarkable AS EULA by using them. There may be bugs, you may lose data, your device may crash, etc.

The only guarantee is, that there is no ill intended code

I am not affiliated with reMarkable AS in anyway

Demo

Screenshot with bookmarks Screenshot with numpad Screenshot with extended options Screenshot with recent files cheat-sheet showing gestures

Changes

Quick Doc

Note: the reMarkable 2 does not have buttons

Gestures

Bookmarks

Zen Mode

Reading Mode

Extras

Installation

Find the ssh password (write it down and keep it safe)

in the newest version:

Settings->Help->Copyright and Licenses (under GPLv3 Compliance)

versions < 2.3:

Settings->About->Copyright->General Information

It is really important to have the password somewhere, in case something goes wrong

Linux

You got this

Windows 10

or

macOS

Automagic

Make sure the device has Internet connectivity i.e. Wifi is ON and connected

Paste the following and press enter:

sh -c "$(wget https://raw.githubusercontent.com/ddvk/remarkable-hacks/master/patch.sh -O-)" 

to try a different patch:

sh -c "$(wget https://raw.githubusercontent.com/ddvk/remarkable-hacks/master/patch.sh -O-)" _ patch_xxx 

where xxx is the patch number

The app should start, play with it, but press CTRL-C (Hold the Control key and press C) to stop it when done DON'T LEAVE IT JUST RUNNING and follow the instructions after pressing CTRL-C

Should Press 'Y' and then Enter when asked to make it permanent

Notes

patches are cumulative (the last one contains all previous changes and gets updated with bugfixes) a patch can be applied more than once, it's more of a snapshot really, you can go back to a previous version

Installation with oxide, draft or remux

The installation starts an instance of xochitl, but isn't aware of oxide, draft or remux running, which needs xochitl to be started in a different way. Execute this before the installation if you've got oxide or draft running:

systemctl stop tarnish # only if you're using oxide
systemctl stop draft # only if you're using draft
systemctl stop remux # only if you're using remux

And this after the installation:

systemctl stop xochitl
systemctl start tarnish # only if you're using oxide
systemctl start draft # only if you're using draft
systemctl start remux # only if you're using remux

If you forget to do this, you'll have two xochitls, and the screen will be garbled.

Timezones

The time is in UTC. In order to have the right time, the right timezone should be set (which has things like Daylight Saving Time, utc offsets etc).

Check the list of timezones in Timezones
To set a timezone, run this on the device, by setting one that matches your location e.g.
timedatectl set-timezone "Europe/Paris" or
timedatectl set-timezone "America/Denver"

The device doesn't have all possible timezones. If yours is missing from the list, find a linux distro and copy the missing time zone to /usr/share/zoneinfo/ then execute the above command with the new zone.

Extra fonts (e.g. Japanese)

The rootfs doesn't have enough space, so you can do this (copy paste in the rm terminal)

mv /usr/share/fonts/ttf ~/ttf
ln -sf /home/root/ttf /usr/share/fonts/ttf
wget https://github.com/tony/dot-fonts/raw/master/Hanazono/HanaMinA.ttf -O ~/ttf/HanaMinaA.ttf
wget https://github.com/tony/dot-fonts/raw/master/Hanazono/HanaMinB.ttf -O ~/ttf/HanaMinaB.ttf

for japanese: HanaMinA.ttf and HanaMinB.ttf seem ok
put new fonts in /home/root/ttf, do fc-cache and restart xochitl

Making it permanent

You should have typed 'Y' when asked

Uninstall / Removal

sh -c "$(wget https://raw.githubusercontent.com/ddvk/remarkable-hacks/master/patch.sh -O-)" _ purge

or if offline

sh /home/rmhacks/patch.sh purge

Revert in case things go terribly wrong

DON'T DO FACTORY RESET!

(this will regenerate the root password, unless there is no free space on the root partition)
Except when everything is working normally and you want to really remove all your documents.

ssh into your device and execute:

systemctl stop xochitl
rm -fr .cache/remarkable/xochitl/qmlcache/*
cp /home/rmhacks/xochitl.version /usr/bin/xochitl #where version is the current device version
systemctl start xochitl

Troubleshooting

Not enough space

Can happen if you added additional sleep screens or templates to the root partition, also used to be a bug a long time ago.

Remove those.

SSH REMOTE HOST IDENTIFICATION CHANGED, something nasty blah blah

The device regenerates the ssh host keys after every update.

Remove the offending line from ~/.ssh/known_hosts or just delete the whole file.

Features compiled by u/TheTomatoes2

FAQ

How do you make the patches?

I wrote some tools, I change the code, I patch

Why is this not open source?

I don't own the source, the legality is dubious, not in reMarkable AS's best interest due to various reasons, etc

Can you add this or that feature?

Some things are hard, very time consuming or even impossible for my skill level. I prefer to take a more pragmatic approach and add things that are easy, but from which most users can benefit.

What happens when a new offical version comes out?

You lose the hacks when the device auto updates (If you want to prevent this disable auto updates). When the patches have been ported, you can install them again (bookmarks stay on the device and will reappear)