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.
- Pobierz plik aktualizacji za pomocą codexctl.
- Wyodrębnij obraz ext4 z pliku aktualizacji.
- Prześlij obraz na urządzenie.
- Ustal, która partycja jest partycją zapasową.
- Użyj dd, aby zapisać obraz na partycji zapasowej.
- Użyj codexctl restore, aby ustawić partycję zapasową jako aktywną.
- 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.