Найти в Дзене
mamaich

Установка сторонних приложений на Яндекс Станцию Макс через нижний разъем

Опишу ниже способ, как можно установить на Яндекс Станцию Макс сторонние приложения правкой содержимого раздела product. Возможно, этот способ будет работать и на некоторых других устройствах.

На Станции Макс используется доверенная загрузка, при которой при создании прошивки вычисляется и подписывается таблица хешей разделов system и vendor, а при загрузке эта цифровая подпись проверяется.
К счастью для нас, подпись для раздела product не проверяется, так что данный раздел можно править как нам угодно.

При наличии прямых рук и программатора - можно "сдуть" EMMC и исправить его содержимое. При отсутствии программатора, можно воспользоваться утилитой update от Amlogic сдампив раздел product, внеся изменения и записав его назад. Либо воспользоваться возможностью загрузки в Армбиан, из которого уже вносить правки в содержимое раздела.

Программатора и нормального фена у меня нет, загрузка образа раздела product утилитой update у меня работает нестабильно, поэтому опишу как исправлять раздел product, спаяв простейшую схему, подключившись к нижнему разъему Станции Макс и загрузившись в Армбиан.

Для установки приложений нам потребуется:

1. Яндекс Станция Макс без пароля на USB.
2. Костыль-плата для
подключения Макса к ПК, а также для подключения к нему USB флешки.
3.
Флешка с Армбиан.

Сперва дополняем флешку файлами:
Копируем на нее пакет
attr_2.5.1-4_arm64.deb, а также APK файл, который будем устанавливать на устройство. Я взял MiXplorer. Скопировать файлы проще всего на FAT32 раздел, который boot.

Загружаемся в Армбиан по инструкции.

Устанавливаем пакет attr:

dpkg -i /boot/attr_2.5.1-4_arm64.deb

Монтируем раздел product:

mkdir /product
mount -o offset=3814719488 /dev/mmcblk1 /product

После чего копируем MiXplorer в папку /product/app. Создавать отдельную подпапку для APK не требуется.
Просто копирования недостаточно - на Андроиде включен SeLinux, который блокирует доступ к файлам без корректно заполненных атрибутов:

знак "?" означает отсутствие атрибутов
знак "?" означает отсутствие атрибутов

Необходимо добавить атрибуты SeLinux на свежескопированный файл такие же, как у уже существующих файлов:

setfattr -n security.selinux -v "u:object_r:system_file:s0" /product/app/MiXplorer_v6.68.4_B24112322-arm64.apk
-3

После чего размонтируем /product

umount /product

И перезагружаемся.

Приложение появилось:

-4