# Root на Retroid Pocket 5: Тернистый путь к SSH и scanmem
=> /en/rp5_root.gmi 🇬🇧 Читать по Английски

ROOT на Retroid Pocket 5 (на прошивке .189) оказался чуть сложнее, чем предполагал мануал на Reddit.
=> https://www.reddit.com/r/retroid/comments/1hs71ho/root_the_retroid_pocket_5_with_magisk/?share_id=w036E1ED_hC7TemiD1CoL&utm_name=androidcss Оригинальный тред на Reddit

Задача: Получить root-права, развернуть bash-среду (Termux), поднять SSH-сервер и использовать scanmem для работы с памятью игр/эмуляторов.

Вроде бы ничего сложного и всё предсказуемо, но китайская консоль с A/B разметкой подкинула несколько интересных сюрпризов. Изначально планировала использовать метод "No-PC" с помощью скриптов, запускаемых прямо из меню настроек консоли (фича Run script as Root).

### Шаг 1: Успешный бэкап
Началось всё по инструкции:
1. Закинула на устройство скрипт rp5_backup_boot.sh. Он корректно отработал, создав папку bootbackup и сняв дампы разделов через dd.
=> https://pastebin.com/YWp8MKvk Оригинальный скрипт бэкапа

```bash
mkdir -p /storage/emulated/0/bootbackup
dd if=/dev/block/by-name/boot_a of=/storage/emulated/0/bootbackup/boot_a-backup-$(date +%F-%T)
dd if=/dev/block/by-name/boot_b of=/storage/emulated/0/bootbackup/boot_b-backup-$(date +%F-%T)
```

2. На выходе получила файлы boot_a-backup-[дата] и boot_b-backup-[дата], каждый размером около 100.7 Мб.

### Проблема 1: Magisk выдает файл 0 байт
Что случилось: При попытке пропатчить оригинальный бэкап (boot_a) через приложение Magisk прямо на консоли, на выходе получался файл magisk_patched_*.img размером 0 байт. Упаковщик Magisk банально падал при пересборке образа на самом устройстве (нехватка прав, памяти или конфликт архитектуры).
Решение: Вынесла процесс сборки за пределы консоли. Исходный бэкап перекинула на свой Galaxy S25+, где локальный Magisk без проблем пропатчил файл и выдал здоровый образ весом в те же 100.7 Мб.

### Проблема 2: Инверсия тачскрина после прошивки
Что случилось: После прошивки пропатченного образа тачскрин консоли сошел с ума: свайпы влево-вправо срабатывали как вверх-вниз, и наоборот. 
Причина: Популярный в сети скрипт rp5_flash_magisk.sh оказался написан отвратительно. Он брал первый попавшийся пропатченный образ и принудительно шил его сразу в оба слота: и в boot_a, и в boot_b.
=> https://pastebin.com/3xeEt0V9 Кривой скрипт rp5_flash_magisk.sh

```bash
dd if=$(ls /storage/emulated/0/Download/magisk_patched-* 2>/dev/null | head -n 1) of=/dev/block/by-name/boot_a
dd if=$(ls /storage/emulated/0/Download/magisk_patched-* 2>/dev/null | head -n 1) of=/dev/block/by-name/boot_b
mkdir -p /storage/emulated/0/bootbackup
mv $(ls /storage/emulated/0/Download/magisk_patched-* 2>/dev/null | head -n 1) /storage/emulated/0/bootbackup/magisk_patched-flashed.$(date +%F-%T)
rm $(ls /storage/emulated/0/Download/magisk_patched-* 2>/dev/null | head -n 1)
```

Решение: Подключила USB-мышку (чтобы хоть как-то управлять интерфейсом) и написала свой скрипт для отката, который через dd вернул оригинальные бэкапы на их законные места. Экран ожил.

```bash
# Восстанавливаем оригинальный boot_a (сборка 189)
dd if=/storage/emulated/0/bootbackup/boot_a-backup-2026-03-07-16:45:01 of=/dev/block/by-name/boot_a
# Восстанавливаем оригинальный boot_b (сборка 189)
dd if=/storage/emulated/0/bootbackup/boot_b-backup-2026-03-07-16:45:02 of=/dev/block/by-name/boot_b
```

### Проблема 3: Ловушка A/B слотов
Что случилось: Решив отказаться от кривых скриптов, перешла к прошивке через fastboot со своей Fedora. Пропатчила boot_a, прошила командой fastboot flash boot magisk_patched.img... и экран снова сломался!
Причина: Терминал выдал разгадку при прошивке: Sending 'boot_b'. Оказалось, что активным слотом на консоли в данный момент был слот B. А я упорно патчила дамп от слота A и заливала его в активный слот B. Из-за несовпадения версий ядра и драйверов между слотами после OTA-обновлений, драйвер тачскрина сходил с ума.

### Правильный алгоритм (Итог)
Собрав все грабли, вывела единственный верный и безопасный путь:
1. Делаем бэкапы обоих слотов через встроенную функцию RP5 Run script as root, с помощью оригинального скрипта rp5_backup_boot.sh.
2. Подключаем консоль к ПК и проверяем активный слот: fastboot getvar current-slot (в моем случае это оказался слот b).
3. Берем бэкап именно активного слота (boot_b-backup-...).
4. Перекидываем его на другой Android-смартфон, патчим в Magisk, перекидываем готовый образ на ПК.
5. Шьем пропатченный образ нужного слота через терминал: 
   fastboot flash boot magisk_patched.img
6. Перезагружаемся: fastboot reboot.

Результат: Идеально работающий экран и полноценный Root. 

### Настройка рабочей среды и сборка scanmem
Казалось бы, рут получен, оставалось только накатить Termux (строго из F-Droid) и scanmem. Но оказалось, что сканера нет в официальных репозиториях. Пришлось собирать его руками из исходников.

Ставим нужные пакеты, задаем пароль (passwd) и поднимаем SSH-демон (sshd), чтобы не печатать с экранной клавиатуры:

```bash
pkg update -y && pkg upgrade -y
pkg install -y root-repo openssh tsu git clang make autoconf automake libtool readline intltool gettext
passwd
sshd
```

Откладываем консоль, открываем терминал на десктопе и подключаемся на порт 8022 (IP можно узнать командой ifconfig wlan0 на консоли):

```bash
ssh -p 8022 username@console_IP_address
```

Клонируем репозиторий, жестко отключаем сборку графического интерфейса и компилируем бинарник:

```bash
git clone [https://github.com/scanmem/scanmem.git](https://github.com/scanmem/scanmem.git)
cd scanmem
./autogen.sh
./configure --prefix=$PREFIX --enable-gui=no
make
make install
```

### Ловушка SSH и Root-прав
После успешной установки меня ждал последний сюрприз. При попытке запустить сканер через sudo по SSH, Termux выдал ошибку: "No superuser binary detected. Are you rooted?".

Что произошло: Magisk честно перехватил запрос на повышение прав от Termux, но вывел диалоговое окно с подтверждением на физический экран консоли. А так как я сидела за монитором ПК по SSH, я этого окна просто не видела. Запрос отвалился по таймауту.

Правильный алгоритм запуска по SSH:
1. Берем консоль в руки и разблокируем экран.
2. В терминале на ПК вводим классическую команду:

```bash
su
```

3. Сразу смотрим на экран консоли — там появится запрос от Magisk. Нажимаем "Разрешить" (Grant) и ставим галочку "Запомнить навсегда" (Forever).
4. Приглашение в терминале на ПК сменится с $ на #. Мы в root-shell.
5. Теперь запускаем сканер напрямую, без всяких sudo:

```bash
scanmem
```

Всё! Полный доступ к памяти получен. Можно искать адреса, менять параметры и ломать игры.

---
=> /android/index.gmi Назад к разделу Android
=> / Назад на Главную страницу