Aipaezina 2: Trukaketa & zerbitzari propioa

En este documento (con fines educativos), vamos a poder ver cómo se puede cambiar un poquito el sistema que trae la Remarkable 2 para liberar todas sus funcionalidades, además de cómo poder montar nuestro propio servidor cloud para sincronizar, compartir la pantalla, documentos…

Como creo que muchos habréis escuchado el dispositivo Remarkable 2 es una pasada para los que nos gusta tomar notas de manera manual. Un dispositivo táctil, de tinta electrónica, que permite tener distintos cuadernos para organizarte como quieras, distintas puntas, grosores… muy muy completo. Al tacto muy similar al papel, puedes subrayar, mover, copiar… La verdad que el hardware es una pasada, y el 'problema’ digamos lo tiene el software, que depende que funcionalidades te interesen pues requiere de suscripción annual, y si el precio fuera accesible, pues bueno… La posibilidad de compartir la pantalla, enviar un documento por mail, convertir a OCR lo que se ha escrito…

Para evitar todo esto podremos cambiarle por un lado el sistema y habilitarle las funciones que vienen desbloqueadas, y por el otro lado montarnos nuestro propio servidor de Remarkable para realizar las funciones de almacenamiento y sincronización de nuestros cuadernos, notas, librosademás de poder enviar docs o compartir la pantalla, besteak beste.

Actualizando el software de la Remarkable 2,

Empezamos antes de nada actualizando el firmware de la Remarkable 2 hasta la versión máxima que encontremos que tenga la versión ‘hackeada’. Os dejo anotados los pasos que seguí cuando la adquirí hace 1-2 años. En esta web encontraréis las instrucciones de ddvk (Dobrin von Känel) para el hacks y en esta otra para el proceso del update.

En una MV con linux nos descargamos el repo de ddvk que permite actualizar la Remarkable 2:

cd /tmp/
git clone https://github.com/ddvk/remarkable-update.git

De aquí nos bajaremos la versión más reciente para nuestra Remarkable 2 y lo guardamos en la carpeta ‘updatesque habrá creado el paso anterior. Arrancamos ya pues el servicio que ofrece la actualización:

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 mi caso la Remarkable 2 traía la versión 2.10.4.5 y la vamos a subir a la 2.12.2.573. Ahora vamos a la Remarkable 2, nos logueamos en ella por SSH con root y nuestra contraseña (que la encontraremos en Settings > Laguntza > Copyright and Licenses, debajo de GPLv3 Compliance). Editamos el fichero de configuración de actualización con vim o nano con la URL que nos dió el paso anterior, grabamos y salimos:

vim /usr/share/remarkable/update.conf
 SERVER=http://OS-XXX-01.openservices.local:8000
:wq

Desde el shell de la Remarkable 2 podemos forzar a actualizar, levantamos el servicio, chequeamos si hay updates y vemos el proceso de actualización:

systemctl start update-engine
update_engine_client -check_for_update
journalctl -u update-engine -f

Tras ello, reiniciamos y listos para aplicarle el hack!

Cambiando el software al de hacks,

Ondo, ahora que hemos actualizado la Remarkable 2 a una versión compatible con hacks, pues podemos comenzar a aplicarlo. Sin miedo, ya que cuando acabemos podremos elegir si aplicaremos los cambios o no, tras trastear un poco con el dispositivo.

Volvemos a loguearnos en la Remarkable 2 con SSH como root y la contraseña que tendremos ya anotada en un lugar seguro. Y ejecutamos:

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

Y empezará:

Connecting to raw.githubusercontent.com (185.199.111.133:443)
wget: note: TLS certificate validation not implemented
writing to stdout
-                    100% |***********************************************************************************************************************************************************************************************************| 10013  0:00:00 ETA
written to stdout
Disk space seems to be enough.
rM2 Version 2.12.2.573 - patch_31.2.01
Connecting to github.com (140.82.121.4:443)
wget: note: TLS certificate validation not implemented
Connecting to 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: note: TLS certificate validation not implemented
Connecting to 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: Unit rm2fb.service not loaded.
killall: remarkable-shutdown: no process killed
killall: xochitl: no process killed
Cleaning up...

**********************************************
Trying to start the patched version...
You can play around, press CTRL-C when done!
**********************************************

Irteera kudeatzaileak erregistratzen
Uhin-formak irakurtzea /usr/share/remarkable/320_R400_AF8F11_ED103TC2C5_VB3300-KCD_TC.wbf
INIT exekutatzea (111 phases)
15:02:22.065 qt.qpa.input evdevtouch: Gailuaren aurkikuntza erabiltzea
15:02:22.072 qt.qpa.input evdevtouch: Gailua gehitzea /dev/input/event2
15:02:22.072 qt.qpa.input evdevtouch: Gailua erabiliz /dev/input/event2
15:02:22.073 qt.qpa.input evdevtouch: /dev/input/event2: Protokolo mota B  (multi), filtered=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: min presioa: 0 max presioa: 0
15:02:22.074 qt.qpa.input evdevtouch: /dev/input/event2: gailuaren izena: pt_mt
15:02:27.521 qt.qpa.input evdevtouch: QInputDeviceManager gailuen kopurua eguneratzen ari da: 1 ukipen-gailuak, 0 zain dagoen kudeatzailea(s)
^CShutting down...
Garbitzen...
Dena funtzionatu badu, Al duzu behin betiko bihurtu nahi duzu [N/y]? N
Erabili /home/rmhacks/xochitl.patched bitarra iritziz aldatzen baduzu / eman it if it segfaulted.
Jatorrizkoa abiarazten...

Esto arranca la Remarkable 2 con el hack, podremos parar el proceso con CTR+C cuando queramos y nos preguntará si queremos guardarlo en memoria N/y.

N berrezartzen bada firmware aurrekoarekin.

Gure hodei zerbitzari propioa muntatuz,

Ondo, MV batean edo Raspberry Pi batean muntatu ahal izango dugu, edo NAs batean… Gure Remarkable zerbitzari propioa 2, Aurretik esan dugun hori egiteko, Dokumentuak gordetzeko eta sinkronizatzeko, Postaz bidaltzeko aukera, compartir la pantalla, eta abar…

Hau ddvk-ren beste utilitate batekin egingo dugu, rmfakecloud-rekin, Docker kontenedor bat, eta segundo gutxitan martxan izango dugu.

Antes de empezar, kontu bat sortu beharko dugu: https://developer.myscript.com-en eta kontua aktibatu ondoren, App bat sortuko dugu https-n://developer.myscript.com/dashboard >Cloud recognition > Manage > Create application (edo joan https-ra://cloud.myscript.com/#/user/applicationList). Nire kasuan 'App para rmfakecloud' deitzen diot. Ireki eta > Generate application Key, eta 'Application Key' idatzi behar dugu’ (formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) eta HMAC Gakoa: (berdina formatua).

Docker daukagun makinaren batean datuentzako direktorioa sortzen dugu eta rmfakecloud kontainerrari martxan jartzen diogu, daturen bat aldatu beharko dugula ikusten duzuen bezala:

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='us*****@*******io.eso' \
-e RM_SMTP_PASSWORD='kontraseina' \
-e RM_SMTP_FROM='us*****@*******io.eso' \
-e RM_SMTP_INSECURE_TLS \
-e RM_SMTP_STARTTLS \
ddvk/rmfakecloud

Kontainerrari martxan jartzen diogu eta beti has dadin esaten diogu:

sudo docker start rmfakecloud
sudo docker update --restart unless-stopped rmfakecloud

Web bat irekitzen dugu kontainerraren URLan http formatuan://FQDN_DOCKER:3000 eta lehenengo erabiltzailea sartu egingo dugu, sortuko da.

Remarkable-era joango gara 2 eta shell-etik, Putty batekin root gisa logeatu eta exekutatuko dugu:

sh -c "$(wget https://raw.githubusercontent.com/ddvk/rmfakecloud/master/scripts/device/automagic.sh -O-)"

Eta honelako zerbait aterako da:

root@reMarkable:~# sh -c "$(wget https://raw.githubusercontent.com/ddvk/rmfakecloud/master/scripts/device/automagic.sh -O-)"
Connecting to raw.githubusercontent.com (185.199.109.133:443)
wget: note: TLS certificate validation not implemented
writing to stdout
-                    100% |***********************************************************************************************************************************************************************************************************|   275  0:00:00 ETA
idatzita stdout-era
Instalatzailera lortzen....
github.com-era konektatzen (140.82.121.3:443)
wget: note: TLS ziurtagiriaren baliozkotzea ez da gauzatu
objects.githubusercontent.com-era konektatzen (185.199.108.133:443)
'installer.sh' gordetzen
installer.sh         100% |***********************************************************************************************************************************************************************************************************| 2000k  0:00:00 ETA
'installer.sh' gorde da
Instalazioa exekutatzen....
Txertatutako binarioa ateratzen....
proxy.service gelditzea huts egin du: proxy.service unitatea kargatuta ez dago.
~/rmfakecloud ~
CA gakoa eta crt sortzen....
RSA gako pribatua sortzen, 2048 bit luze koefizientea (2 primeak)
.....................................+++++
...................................................+++++
e da 65537 (0x010001)
Gako pribatua sortzen....
RSA gako pribatua sortzen, 2048 bit luze koefizientea (2 primeak)
.....+++++
................................+++++
e da 65537 (0x010001)
Pub gakoa sortzen....
RSA gakoa idazten
csr eta crt sortzen....
Sinadura ondo
subject=C = AA, ST = QQ, L = JJ, O = kultura, CN = *.appspot.com
CA Gako Pribatua lortzen
Sorkuntza osatua!
/etc/ssl/certs-en symlink-ak garbitzen...
done.
/etc/ssl/certs-en ziurtagiriak eguneratzen...
rehash: kontuz: ca-certificates.crt saltatzen,ez du ziurtagiri edo CRL bat soilik dauka
1 gehitu da, 0 removed; done.
/etc/ca-certificates/update.d-en hooks martxan....
done.
Sartu zure hodei URL propioa [http(s)://somehost:port] >

Guretzat eskatzen ari da URL-a sartzeko, zerbitzari propioarekin, dugun formatuan: http://FQDN_DOCKER:3000 eta sakatzen dugu Enter, kontuz hemen FQDN publikoa erabil dezakegu nahi izanez gero Remarkable 2 Internetetik horretara sartzeko gai izan dadin. Enter-aren ondoren, jarraituko du…

Hodei sinkronizazioa ezartzen: http://FQDN_DOCKER:3000
Symlink sortua /etc/systemd/system/multi-user.target.wants/proxy.service → /etc/systemd/system/proxy.service.
/etc/hosts konpontzen
xochitl gelditzen..
Fixing sync status...
Starting xochitl...
~

En la Remarkable 2 vamos a Settings > Orokorra > Account > Connect to reMarkable cloud > Connect > y nos pedirá un código de estos OT que conseguiremos en http://FQDN_DOCKER:3000/generatecode

Lo introduciremos y listo! Ya nos saldrá nuestra cuenta activada y con el Subscription Plan de tipo 'Connect'! Ahora lo único recuerda que no se actualice sola la Remarkable 2, búscalo en los Settings.

Por si no lo conocéis también existe una app de Remarkable para el PC, para nuestro escritorio, para ver los documentos, acceder a la pantalla compartida… para ello deberemos tener en cuenta que el FQDN 'local.appspot.com’ deberá responder contra nuestro contenedor de rmfakecloud o un proxy inverso que montemos en Nginx.

Espero dut interesgarria iruditu zaizuela, la idea de este documento es ver las posibilidades de estos hacks, eta are gutxiago pirateriaren alde egin edo horrelako gauza txarrak sustatu. Betiko moduan, zuei ondo joan daiteela opa dizuet, zoriontsu izan zaitezten eta perretxikoak jan!

Hori azkena… Amazonen antzeko STAEDTLER motako arkatz baxu batzuk erosi ditzakezue, eta oso friki geratzen da… atzealdean goma dutenak daude zuzenean ezabatzeko…

Ahora sí, ¡un abrazo!

Izenburuko mezuak

Egilea

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, ez zalantzarik izan nirekin harremanetan jartzeko, ahal duzun guztietan laguntzen saiatuko naiz, partekatu ahal dudan guztietan ;) . Dokumentuez gozatu!!!