
Remarkable 2: Hacks & servidor propi
En aquest document (amb finalitats educatives), vam poder veure com es pot canviar un poquet el sistema que porta la Remarkable 2 per alliberar totes les seves funcionalitats, a més de com poder muntar el nostre propi servidor cloud per sincronitzar, compartir la pantalla, documents…
![]() |
![]() |
Com crec que molts haureu escoltat el dispositiu Remarkable 2 és una passada per als que ens agrada prendre notes de manera manual. Un dispositiu tàctil, de tinta electrònica, que permet tenir diferents quaderns per organitzar-te com vulguis, diferents puntes, gruixos… molt molt complet. Al tacte molt similar al paper, pots subratllar, moure, copiar… La veritat que el maquinari és una passada, i el 'problema’ diguem-ne el té el programari, que depèn que funcionalitats t'interessin doncs requereix de subscripció anual, i si el preu fos accessible, doncs bo… La possibilitat de compartir la pantalla, enviar un document per mail, convertir a OCR el que s'ha escrit…
Per evitar tot això podrem canviar-li d'una banda el sistema i habilitar-li les funcions que venen desbloquejades, i per l'altra banda muntar-nos el nostre propi servidor de Remarkable per realitzar les funcions d'emmagatzematge i sincronització dels nostres quaderns, notes, llibres… a més de poder enviar docs o compartir la pantalla, entre d' altres.
Actualitzant el programari de la Remarkable 2,
![]() |
![]() |
Comencem abans de res actualitzant el firmware de la Remarkable 2 fins a la versió màxima que trobem que tingui la versió 'hackejada'. Us deixo anotats els passos que seguiu quan l'adquirí fa 1-2 anys. En aquesta web trobareu les instruccions de ddvk (Dobrin von Känel) per al hacks i en aquesta altra per al procés de l' update.
En una MV amb linux ens descarreguem el repo de ddvk que permet actualitzar la Remarkable 2:
cd /tmp/ git clone https://github.com/ddvk/remarkable-update.git
De aquí ens baixarem la versió més recent per a la nostra Remarkable 2 i el guardem a la carpeta 'updates’ que haurà creat el pas anterior. Arrenquem ja doncs el servei que ofereix l'actualització:
cd remarkable-update python3 serve.py 2.12.2.573 Using hostname, to override use: ./serve.py hostname Device should use: http://OS-XXX-01.openservices.local:8000/ Available updates: {'reMarkable2': ('2.12.2.573', '2.12.2.573_reMarkable2-XnE1EL7ojK-.signed')} Starting fake updater: 8000
En el meu cas la Remarkable 2 portava la versió 2.10.4.5 i la vam pujar a la 2.12.2.573. Ara anem a la Remarkable 2, ens hi adonem per SSH amb root i la nostra contrasenya (que la trobarem a Settings > Help > Copyright and Licenses, sota GPLv3 Compliance). Editem el fitxer de configuració d'actualització amb vim o nano amb la URL que ens va donar el pas anterior, gravem i sortim:
vim /usr/share/remarkable/update.conf SERVER=http://OS-XXX-01.openservices.local:8000 :wq
Des del shell de la Remarkable 2 podem forçar a actualitzar, aixequem el servei, si hi ha updates i veiem el procés d'actualització:
systemctl start update-engine update_engine_client -check_for_update journalctl -u update-engine -f
Després d'això, reiniciem i llestos per aplicar-li el hack!
Canviant el programari al de hacks,
Bé, ara que hem actualitzat la Remarkable 2 a una versió compatible amb hacks, doncs podem començar a aplicar-lo. Sense por, ja que quan acabem podrem triar si aplicarem els canvis o no, després de trastejar una mica amb el dispositiu.
Tornem a lloar-nos a la Remarkable 2 amb SSH com a root i la contrasenya que tindrem ja anotada en un lloc segur. I executem:
sh -c "$(wget https://raw.githubusercontent.com/ddvk/remarkable-hacks/master/patch.sh -O-)"
Y empezará:
Connexió a raw.githubusercontent.com (185.199.111.133:443) wget: nota: La validació del certificat TLS no està implementada escrivint a stdout - 100% |***********************************************************************************************************************************************************************************************************| 10013 0:00:00 ETA escrit a stdout L'espai en disc sembla ser suficient. Versió rM2 2.12.2.573 - patch_31.2.01 Connexió a github.com (140.82.121.4:443) wget: nota: Validació del certificat TLS no implementada Connexió a raw.githubusercontent.com (185.199.109.133:443) saving to '/home/rmhacks/patch_31.2.01' patch_31.2.01 100% |***********************************************************************************************************************************************************************************************************| 88907 0:00:00 ETA '/home/rmhacks/patch_31.2.01' saved Connecting to github.com (140.82.121.4:443) wget: nota: Validació del certificat TLS no implementada Connexió a raw.githubusercontent.com (185.199.110.133:443) saving to '/home/rmhacks/patch.sh' patch.sh 100% |***********************************************************************************************************************************************************************************************************| 10013 0:00:00 ETA '/home/rmhacks/patch.sh' saved Failed to stop rm2fb.service: Unitat rm2fb.service no carregada. Killall: apagada notable: Cap procés va matar Killall: xochitl: cap procés matat Neteja ... ********************************************** Intentant iniciar la versió amb pedaços.. Pots jugar, premeu CTRL-C quan hàgiu acabat! ********************************************** S'estan registrant els controladors de sortida Llegint les formes d'ona de /usr/share/remarkable/320_R400_AF8F11_ED103TC2C5_VB3300-KCD_TC.wbf Executant INIT (111 Fases) 15:02:22.065 qt.qpa.input evdevtouch: Ús de la detecció de dispositius 15:02:22.072 qt.qpa.input evdevtouch: S'està afegint el dispositiu a /dev/input/event2 15:02:22.072 qt.qpa.input evdevtouch: Utilitzant el dispositiu /dev/input/event2 15:02:22.073 qt.qpa.input evdevtouch: /dev/input/event2: Protocol tipus B (multi), filtrat = no 15:02:22.073 qt.qpa.input evdevtouch: /dev/input/event2: min X: 0 max X: 1403 15:02:22.074 qt.qpa.input evdevtouch: /dev/input/event2: min Y: 0 max Y: 1871 15:02:22.074 qt.qpa.input evdevtouch: /dev/input/event2: pressió mínima: 0 pressió màxima: 0 15:02:22.074 qt.qpa.input evdevtouch: /dev/input/event2: Nom del dispositiu: pt_mt 15:02:27.521 qt.qpa.input evdevtouch: Actualització del recompte de dispositius QInputDeviceManager: 1 Dispositius tàctils, 0 Controlador pendent(s) ^CStancament... Neteja ... Si tot funcionés, Vols que sigui permanent [N / a]? N Utilitzeu el binari /home/rmhacks/xochitl.patched si canvieu d'opinió / Proporcioneu-lo si es va produir. Començant l'original...
Això arranca la Notable 2 con el hack, podremos parar el procés amb CTR+C quan volem i ens preguntarà si volem guardarlo en memòria N/y.
Si N es reinicia amb l' anterior firmware.
Muntant el nostre servidor núvol propi,
Bé, podrem muntar en una MV o en una Raspberry Pi, o en una NAs… el nostre propi servidor de Remarkable 2, per al que hem dit abans, emmagatzemar i sincronitzar els documents, la possibilitat d'enviar-los per mail, compartir la pantalla, etc.…
Això ho farem amb una altra de les utilitats de ddvk, amb rmfakecloud, un contenidor de Docker que en un periquet el tindrem corrent.
Abans de començar, hem de crear-nos un compte en: https://developer.myscript.com i després d'activar el compte, crearem una app a https://developer.myscript.com/dashboard >Cloud recognition > Manage > Create application (o anar a https://cloud.myscript.com/#/user/applicationList). En el meu cas l'anomeno 'App para rmfakecloud'. L'obrim i > Generate application Key', i hem d'anotar l'Application Key’ (format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxx) i l'HMAC Key: (mateix format).
En una màquina on tinguem Docker creem el directori per a les dades i aixequem el contenidor de rmfakecloud, havent de modificar alguna dada com veieu:
sudo mkdir /mnt/data-rmfakecloud sudo docker run -p 3000:3000 -v /mnt/data-rmfakecloud:/data -e JWT_SECRET_KEY='XXXXXXXX' \ -e RMAPI_HWR_APPLICATIONKEY='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx' \ -e RMAPI_HWR_HMAC='xxxxxxxx-xxxx-xxxx-xxxx-' \ -e RM_SMTP_SERVER='mail.midominio.eso:465' \ -e RM_SMTP_USERNAME='ens*****@mi*******.eso' \ -e RM_SMTP_PASSWORD='contraseña' \ -e RM_SMTP_FROM='ens*****@mi*******.eso' \ -i RM_SMTP_INSECURE_TLS \ -i RM_SMTP_STARTTLS \ ddvk/rmfakecloud
Aixequem el contenidor i li indiquem que s'iniciï sempre:
sudo docker start rmfakecloud sudo docker update --restart unless-stopped rmfakecloud
Obrim una web contra la URL del contenidor en format http://FQDN_DOCKER:3000 i el primer usuari amb el que entremos, se creará.
Nos vamos a la Remarkable 2 i des de la petxina, des d'un Putty llogueds com arrel executem:
sh -c "$(wget https://raw.githubusercontent.com/ddvk/rmfakecloud/master/scripts/device/automagic.sh -O-)"
Y saldrá algo como esto:
root@reMarkable:~# sh -c "$(wget https://raw.githubusercontent.com/ddvk/rmfakecloud/master/scripts/device/automagic.sh -O-)" Connexió a raw.githubusercontent.com (185.199.109.133:443) wget: nota: La validació del certificat TLS no està implementada escrivint a stdout - 100% |***********************************************************************************************************************************************************************************************************| 275 0:00:00 ETA escrit a stdout Obtenir l'instal·lador.. Connexió a github.com (140.82.121.3:443) wget: nota: Validació del certificat TLS no implementada Connexió a objects.githubusercontent.com (185.199.108.133:443) saving to 'installer.sh' installer.sh 100% |***********************************************************************************************************************************************************************************************************| 2000k 0:00:00 ETA 'installer.sh' saved Running the installer... Extracció de binari incrustat.. No s'ha pogut aturar proxy.service: Unitat proxy.service no carregat. ~/rmfakecloud ~ Generació de clau CA i crt... Generació de clau privada RSA, 2048 mòdul de bit llarg (2 Primers) .....................................+++++ ...................................................+++++ e és 65537 (0x010001) S'està generant clau privada.. Generació de clau privada RSA, 2048 mòdul de bit llarg (2 Primers) .....+++++ ................................+++++ e és 65537 (0x010001) S'està generant la clau de pub.. escriptura de clau RSA Generació de csr i crt... Signatura ok subjecte = C = AA, ST = QQ, L = JJ, O = la cultura, CN = *.appspot.com S'està completant la generació de claus privades de CA! Esborrant els enllaços simbòlics a /etc/ssl/certs... Fet. Actualització de certificats a /etc/ssl/certs... Refondre: warning: ometent ca-certificates.crt,no conté exactament un certificat o CRL 1 Afegit, 0 Eliminat; Fet. Executant ganxos a /etc/ca-certificates/update.d... Fet. Introduïu la vostra pròpia URL al núvol [http(s)://Algun amfitrió:port] >
Ens està sol·licitant que hem d'introduir la URL amb el servidor propi que acabem de muntar en format: http://FQDN_DOCKER:3000 y le damos al Enter, ojo que aquí podremos usar un FQDN público si és que volem que la Remarkable 2 Pugui accedir a ell des d'Internet. Tras el Enter, seguirà…
Configuració de la sincronització al núvol a: http://FQDN_DOCKER:3000 S'ha creat l'enllaç simbòlic /etc/systemd/system/multi-user.target.wants/proxy.service → /etc/systemd/system/proxy.service. S'estan aplicant pedaços a /etc/hosts S'atura xochitl.. Fixing sync status... Starting xochitl... ~
A la Remarkable 2 anem a Settings > General > Account > Connect to reMarkable cloud > Connect > i ens demanarà un codi d'aquests OT que aconseguirem a http://FQDN_DOCKER:3000/generatecode
L'introduirem i llest! Ja ens sortirà el nostre compte activat i amb el Pla de tipus 'Connect'! Ara l'únic recorda que no s'actualitzi sola la Remarkable 2, búscan als Settings.
Per si no el coneixeu també hi ha una app de Remarkable per al PC, per al nostre escriptori, per veure els documents, accedir a la pantalla compartida… per això haurem de tenir en compte que el FQDN 'local.appspot.com’ haurà de respondre contra el nostre contenidor de rmfakecloud o un proxy invers que muntem a Nginx.
Espero us hagi resultat interessant, la idea d'aquest document és veure les possibilitats d'aquests hacks, i ni molt menys fomentar la pirateria ni aquestes coses xuclades. Com sempre, desitjar-vos que us vagi molt bé, que sigueu felices i menges perdius!
Vingui l'últim… Podeu comprar com a llapis algun barat a Amazon tipus est de STAEDTLER, i queda molt friki… n'hi ha amb borragomes enrere per esborrar directament…
Ara sí, una abraçada!