pl en

Hakowanie Remarkable 2

Posted on Sat 07 September 2024 in hack • 2 min read

Toltec daje możliwość instalacji oprogamowania.

⚠️ Uwaga: Toltec wspiera tylko wersje OS-a od: 2.6.1.71 do 3.3.2.1666.

Czyli muszę zrobić downgrade z obecnej wersji 3.14.1.9.

⚠️ Uwaga, możliwe że notatki stworzone na wyższej wersji nie będą kompatybilne z wersją starszą.

Kliknij tu aby pobrać narzędzie do downgrade'u - codexctl

W wersjach >=3.11 oprogramowania systemowego nie da się użyć automatycznego update'u. Należy pobrać firmware i rozpakować za pomocą dd.

Umówmy się, że Remarkable ma IP: 192.168.10.29

Potrzebne ci hasło do SSH. Jest tu: "Menu" -> "Help" -> "Copyright & linceses". Hasło jest na dole strony - zachowaj je w bezpiecznym miejscu.

  1. Pobierz plik aktualizacji za pomocą codexctl.
  2. Wyodrębnij obraz ext4 z pliku aktualizacji.
  3. Prześlij obraz na urządzenie.
  4. Ustal, która partycja jest partycją zapasową.
  5. Użyj dd, aby zapisać obraz na partycji zapasowej.
  6. Użyj codexctl restore, aby ustawić partycję zapasową jako aktywną.
  7. Zrestartuj urządzenie.

1. Pobierz plik aktualizacji za pomocą codexctl.

Binarka: pobierz najnowszą wersję z: https://github.com/Jayy001/codexctl/releases/

Rozpakuj i skopiuj na Rm2:

wget https://github.com/Jayy001/codexctl/releases/download/1719419372/remarkable.zip
unzip remarkable.zip
scp codexctl.bin root@192.168.10.29:.

Zbuduj codexctl na laptopie i pobierz obraz:

git clone https://github.com/Jayy001/codexctl.git
cd codexctl
python -m venv venv
source ./venv/bin/activate
pip install wheel
pip install -r requirements.remote.txt
python codexctl.py download toltec

Pobrany obraz ma nazwę: 3.3.2.1666_reMarkable2-ihUirIf133-.signed.

2. Wyodrębnij obraz ext4 z pliku aktualizacji.

Rozpakuj obraz:

python codexctl.py extract --out ./3.3.2.1666_reMarkable2-ihUirIf133-.extracted ../3.3.2.1666_reMarkable2-ihUirIf133-.signed
$ file 3.3.2.1666_reMarkable2-ihUirIf133-.extracted
extracted_fw: Linux rev 1.0 ext4 filesystem data, UUID=fb041d03-92fd-48ab-993f-6ee5b0f954a7 (extents) (64bit) (large files) (huge files)

3. Prześlij obraz na urządzenie.

Skopiuj wyodrębniony obraz na Rm2:

scp ./3.3.2.1666_reMarkable2-ihUirIf133.extracted root@192.168.10.29:.

4. Ustal, która partycja jest partycją zapasową.

Na Rm2:

root@reMarkable:~# fdisk -l
Disk /dev/mmcblk2: 7456 MB, 7818182656 bytes, 15269888 sectors
238592 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/mmcblk2p1    32,0,1      671,3,16          2048      43007      40960 20.0M 83 Linux
/dev/mmcblk2p2    672,0,1     95,3,16          43008     595967     552960  270M 83 Linux
/dev/mmcblk2p3    96,0,1      543,3,16        595968    1148927     552960  270M 83 Linux
/dev/mmcblk2p4    544,0,1     1023,3,16      1148928   15269887   14120960 6895M 83 Linux

root@reMarkable:~# mount
/dev/mmcblk2p3 on / type ext4 (rw,relatime)
[...]
/dev/mmcblk2p1 on /var/lib/uboot type vfat  (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/mmcblk2p4 on /home type ext4 (rw,relatime)

Jak widać powyżej, jedynie /dev/mmcblk2p2 nie jest zamontowane, więc to jest partycja zapasowa.

5. Użyj dd, aby zapisać obraz na partycji zapasowej.

dd if=/home/root/3.3.2.1666_reMarkable2-ihUirIf133.extracted of=/dev/mmcblk2p2

6. Użyj codexctl restore, aby ustawić partycję zapasową jako aktywną.

Na Rm2:

/home/root/codexctl.bin restore

Potwierdź dwa razy i wyłącz Rm2.

7. Zrestartuj urządzenie.

Po restarcie masz starszy firmware.