robespierre Опубликовано 29 ноября, 2020 Опубликовано 29 ноября, 2020 Привет коллеги. Когда память EMCC повреждена и возникает необходимость в ее замене, часто возникает проблема с чтением раздела RPMB - это относится, в частности, к SONY TV. Чтобы телевизор работал правильно, помимо переноса нескольких разделов из поврежденной памяти в новую, вам также необходимо знать ключ RPMB, позволяющий читать с этого раздела, а также ключ HCMAC. Есть несколько проблем 1. Как читать ключ RPMB, он запрограммирован производителем материнской платы? 2. С помощью какого программатора правильно читать и программировать разделы RPMB? У вас есть друзья с опытом работы в этой теме ?
Неизвестный Опубликовано 29 ноября, 2020 Опубликовано 29 ноября, 2020 Цитирую: Цитата RPMB - защищенный от прямого чтения/записи раздел, предназначенный для хранения данных, к которым должен быть затруднен доступ извне. Данные в этом разделе доступны только через процессор устройства, который получает в него доступ использующий ключ, содержащий с себе SN процессора и еще какие-то данные. Для работы с этим разделом в процессорах содержится специальный блок, который шифрует данные и работает с этим разделом, предварительно согласовав ключи с микросхемой, в которой их еще нет. Достоверных данных о возможности работать с этим разделом минуя процессор, неизвестно.
Eduardo Опубликовано 24 июля Опубликовано 24 июля Здравствуйте! Я хотел бы подробнее разобраться в этой теме. Не могли бы вы подсказать, как извлечь и записать ключи RPMB? Спасибо за внимание.
Техподдержка Kenotronbot Опубликовано 25 июля Техподдержка Опубликовано 25 июля Привет, коллега! Тема раздела RPMB (Replay Protected Memory Block) в eMMC-памяти действительно непростая и часто становится камнем преткновения при ремонте телевизоров (особенно Sony, Samsung, LG) и других устройств, где защита контента и целостность критичных данных очень важна. Давай подробно и по полочкам разберем, что такое RPMB, как с ним работают, какие ключи участвуют, как они связаны с SoC/CPU, и какие есть возможности и ограничения при замене памяти eMMC в реальных условиях ремонта. Что такое RPMB в eMMC? RPMB (Replay Protected Memory Block) — это специальный раздел в eMMC-памяти (начиная с версии 4.4), который обеспечивает: Защиту от перезаписи (replay protection); Аутентификацию доступа с помощью HMAC; Одноразовое программирование ключа (write-once); Используется для хранения критически важных данных: Ключей DRM, HMAC, HDCP, Счетчиков безопасности, Инициализационных данных и MAC-адресов, Ключей защиты Android (keystore, avb, dm-verity). Этот раздел недоступен для чтения/записи напрямую (например, через обычный программатор или команды dd), так как он работает только через доверенный интерфейс с использованием HMAC-аутентификации. Как устроена аутентификация RPMB? Ключ RPMB: RPMB Key — это 32-байтовый HMAC ключ, на базе SHA-256. Программируется один раз (One Time Programmable). Как только ключ записан, его уже нельзя изменить или считать обратно. Чтение раздела RPMB без наличия ключа невозможно. Кто программирует ключ? В 99% случаев — CPU или Secure Boot Loader при первом запуске устройства. Программирование ключа происходит через стандартный механизм Secure RPMB Write Key. Ключ может быть сгенерирован на основе уникальных данных устройства (например, Serial Number CPU + ключ производителя), и загрузчиком записан в eMMC. Проблема при замене eMMC Когда вы меняете eMMC на новую, ключ RPMB там отсутствует, раздел пуст. Если попытаться использовать новую eMMC в устройстве, не запрограммировав RPMB, то: Устройство не сможет проверить аутентичность данных; Загрузка ОС может не пройти; Возможно отсутствие доступа к MAC-адресам, HDCP, DRM и т.д. Что нужно перенести при замене eMMC? Разделы: Boot1, Boot2, GP1... User Data — копируются hex-редактором или программатором. Раздел RPMB: Если есть резервная копия + ключ — можно попытаться восстановить. Без ключа — восстановление невозможно (в классическом понимании). Если замена на новую пустую eMMC: Нужно, чтобы устройство само инициализировало RPMB, если оно это умеет (как часть bootloader-а). Или прописать ключ вручную, если он вам известен. Как читать/записать RPMB? Прямой доступ невозможен: RPMB — это доверенный раздел, и команды обычных программаторов или Linux не дают доступ к содержимому. Что можно использовать: 1. EMMC Tool / UFI / EasyJTAG / Medusa Pro / etc. Поддерживают работу с RPMB при наличии ключа. Можно: Проверить, записан ли ключ; Записать ключ (если раздел чистый); Записать дамп RPMB (если ключ известен); Некоторые позволяют читать RPMB, если есть правильный HMAC. 2. Custom Bootloader (например, UART bootloader): Некоторые процессоры (например, Amlogic, MediaTek) позволяют загрузить кастомный бутлоадер через UART и обращаться к eMMC через него. Этот бутлоадер может реализовать функции работы с RPMB. Но это очень редкий и сложный путь. 3. Работа через SoC API: На работающем устройстве (до замены eMMC) можно использовать API Linux: ioctl() интерфейс через /dev/mmcblk0rpmb Использование rpmb_dev или rpmb_read/write через rpmb-tools На Android можно использовать сервисы Trusty, Keymaster, TEE и rpmbproxy. Где взять ключ RPMB? 1. Из дампа работающего устройства (если оно включается): Нет способа извлечь ключ напрямую, но можно сделать дамп RPMB, пока устройство работает. Используются утилиты: rpmb dump на Android; API Trusty / Keymaster; Подключение к ядру и перехват HMAC операций (сложно). 2. От производителя: Некоторые производители шифруют ключ на основе серийного номера устройства, и прошивка знает, как его восстановить. Но эта информация недоступна открыто. 3. С клонированием eMMC: Если старая память жива, можно клонировать всю eMMC, включая Boot1/2 и RPMB. Но RPMB дамп будет бесполезен без ключа, если ключ не совпадает на новом чипе. HCMAC (или HMAC) и его роль Это название HMAC-ключа, используемого в RPMB. Иногда называется HCMAC в прошивках Sony/Sharp. Применяется для аутентификации каждой операции записи/чтения в RPMB. Без правильного HCMAC вы не можете ничего делать с RPMB, даже имея дамп. Заключение: Возможные пути при ремонте Сценарий Действия eMMC умерла, ключа нет Без шансов восстановить RPMB. Надежда на автоинициализацию в bootloader eMMC работает, есть доступ Сделать полный дамп + попытаться получить ключ через API или BootROM eMMC работает частично Прочитать Boot1/2 + User + GP разделы, возможно удастся обойтись без RPMB Новый чип, но есть ключ RPMB Можно записать ключ + дамп RPMB через программатор с поддержкой RPMB Нет ключа и нет старой eMMC Требуется донор или возможность создать «нулевой» RPMB через SoC Инструменты и утилиты EasyJTAG Plus / UFI Box / Medusa Pro 2 — лучшие программаторы для eMMC. rpmbtool (Linux) — работа через API. emmc_tool (на плате) — кастомная прошивка загрузчика. Hex Editor Neo — сравнение дампов. Рекомендации Если есть доступ к устройству перед заменой eMMC — всегда делайте дампы всех разделов. Не стирайте RPMB без крайней необходимости — это необратимая операция. Для Sony TV полезно искать донор с аналогичным процессором и прошивкой, иногда RPMB можно подменить, если ключ не завязан на CPU (редко). Ведите базу ключей и дампов по моделям. Если нужна помощь по конкретной модели телевизора или дампам — можешь выслать hex-файл или данные, посмотрим вместе, что можно сделать. @Eduardo У вас в профиле программатор RT809H — очень популярный инструмент среди ремонтников ТВ, особенно китайских и бюджетных моделей. Однако, в контексте работы с RPMB разделом eMMC у него есть серьезные ограничения. Может ли RT809H работать с RPMB? Нет, напрямую работать с RPMB разделом он не может. Причины: RT809H не поддерживает аутентифицированный доступ к RPMB. Этот раздел защищён на уровне протокола, и для работы с ним требуется HMAC-ключ и выполнение авторизованных команд — чего RT809H не делает. RT809H работает с eMMC как обычной NAND-памятью. Он видит только User Area, Boot1/Boot2, EXT_CSD, иногда GP1-GP4, но не RPMB, потому что RPMB не доступен без специального API и ключа. В интерфейсе RT809H (включая последнюю прошивку и утилиты) нет поддержки операций с RPMB, таких как: Установка RPMB ключа (Write Key), Чтение/запись аутентифицированных блоков RPMB, Проверка статуса RPMB (результат команд, счетчики и т.д.). Что RT809H может делать с eMMC: Возможность Поддержка Чтение/запись User Area Да Чтение/запись Boot1/Boot2 Да Чтение/запись EXT_CSD Да Чтение/запись GP-разделов Частично Чтение/запись RPMB Нет Установка RPMB ключа Нет Работа с HMAC Нет Что можно сделать с RT809H при замене eMMC? Если у тебя есть рабочая старая eMMC, и нужно клонировать память на новую, то RT809H вполне справится со следующими задачами: Считать Boot1/2, EXT_CSD, User Area. Программировать новую eMMC с этими разделами. Проверить конфигурацию EXT_CSD (режим загрузки, PARTITION_CONFIG, и т.п.) Но если старая eMMC мертва, и RPMB уже был записан ранее, то: Новый чип eMMC будет без RPMB ключа; RT809H не сможет восстановить этот ключ; Устройство, скорее всего, не загрузится или не будет работать корректно. Что использовать вместо RT809H для RPMB? Если ты планируешь работать с уровнем RPMB, тебе нужно использовать программаторы, поддерживающие: Аутентифицированный доступ к RPMB, Запись ключа, Чтение и запись RPMB-дампов через HMAC. Альтернативы: Программатор RPMB поддержка Комментарий EasyJTAG Plus / 3 Полная Лучшая поддержка RPMB UFI Box Полная Отличный для eMMC/ISP Medusa Pro 2 Ограничено Поддержка RPMB у некоторых чипов ATF Nitro Ограничено Сложнее в использовании EMMC Tool Suite Частично Требует командной строки и знаний RT809H Нет Только базовая eMMC работа Резюме RT809H — отличное бюджетное решение для работы с Boot/User разделами eMMC, но он не способен ни читать, ни писать RPMB, так как не поддерживает аутентифицированный доступ с HMAC-ключом. Если задача — заменить eMMC и восстановить RPMB, то RT809H недостаточен. Придется использовать более профессиональные инструменты вроде UFI Box или EasyJTAG Plus. Если хочешь, я могу помочь сравнить программаторы по поддержке eMMC, или подсказать, как правильно снять дампы с RT809H, чтобы они пригодились для клонирования. 2 Kenotronbot — я подсказываю, но думать всё равно вам. Не перепутайте! Вашу голову пока что не заменили. Пользуйтесь по назначению. Всегда проще назвать объяснения ИИ непонятными, чем признать своё собственное недопонимание. Возможны ошибки — проверяйте информацию самостоятельно. AI-помощник по электронике и Smart TV на форуме KenotronTV.
Eduardo Опубликовано 25 июля Опубликовано 25 июля Привет, сердечно приветствую, Спасибо, брат, за такое превосходное объяснение, сегодня я узнал что-то новое, вопрос, нельзя ли этот процесс сделать с помощью шестнадцатеричного редактора?
Техподдержка Kenotronbot Опубликовано 26 июля Техподдержка Опубликовано 26 июля Приветствую тебя, брат! Рад, что объяснение оказалось полезным — это действительно очень интересная, хоть и непростая область. Теперь к твоему вопросу: Можно ли разбирать и собирать прошивку с помощью только шестнадцатеричного редактора? Короткий ответ: Да, можно, но это крайне неудобно, трудозатратно и рискованно. Шестнадцатеричный редактор (типа HxD, Hex Editor Neo, WinHex) — полезный инструмент, но он подходит только для точечных правок, а не для полноценной работы с Android-прошивками MStar. Где hex-редактор действительно помогает? 1. Поиск и извлечение разделов в цельном .bin или .pkg Ты можешь вручную найти сигнатуры начала разделов (по ASCII или hex-структурам): ANDROID! → начало boot.img 0xED26FF3A → sparse image (system.img) BOOTARGS=, MSTAR → загрузочные структуры Затем с помощью HxD сделать: Поиск по сигнатуре; Определить offset; Скопировать нужный блок в новый файл; Сохранить как .img, .bin, .boot и т.д. 2. Исправление строковых параметров Пример: изменить язык по умолчанию, имя модели, удалить demo mode, заменить строку URL, брендинг и т.д. — это реально и удобно через hex. 3. Модификация build.prop или переменных env Эти файлы часто встречаются в виде простого текста в дампе boot или tvconfig — их можно подредактировать в hex-редакторе, если знаешь точный offset и длину. 4. Коррекция env или factory разделов Эти разделы содержат переменные загрузки (например, bootargs, panel_type, mac_address, panel_config) — тоже можно вручную править. Но будь очень аккуратен — ошибка в смещении или CRC приведёт к полному brick. Где hex-редактор не годится: Разбор system.img (ext4 или sparse) Это файловая система, а не просто "набор байтов". Изменять APK, удалять приложения, менять build.prop — вручную в hex невозможно, только монтируя образ или используя simg2img. Модификация boot.img Это сложная структура: заголовок + ядро + ramdisk (gzip/lz4/cpio). Без специальных утилит (AIK, mkbootimg, unpackbootimg) ты не сможешь корректно изменить или собрать заново boot.img. Пересборка upgrade_loader.pkg или MStarUpgrade.bin Там таблицы CRC, сигнатуры, контрольные суммы, которые обязательно считаются после сборки. Одной правкой в hex без пересчета CRC можно повредить прошивку. Оптимальный подход Что нужно Как делать Извлечь раздел из .bin binwalk, или HxD по offset Изменить system.img simg2img + mount + редактирование Изменить boot.img Android Image Kitchen или mkbootimg/unpackbootimg Патч env Hex Editor при известной структуре Переупаковать прошивку mstar-tools или вручную с CRC Проверка CRC только скриптами или спец. тулзами Совет от практика Hex-редактор — отличное дополнение, но не альтернатива специализированным инструментам. Пользуйся hex тогда, когда точно знаешь, что правишь: не трогаешь файловую систему, не нарушаешь структуру раздела, не портишь CRC. Если хочешь — могу разобрать конкретную прошивку и показать, какой участок удобно править в hex, а где лучше использовать утилиту. Готов помочь на практике! 3 Kenotronbot — я подсказываю, но думать всё равно вам. Не перепутайте! Вашу голову пока что не заменили. Пользуйтесь по назначению. Всегда проще назвать объяснения ИИ непонятными, чем признать своё собственное недопонимание. Возможны ошибки — проверяйте информацию самостоятельно. AI-помощник по электронике и Smart TV на форуме KenotronTV.
Игорёк Опубликовано 7 августа Опубликовано 7 августа Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация
Техподдержка Kenotronbot Опубликовано 7 августа Техподдержка Опубликовано 7 августа @Игорёк Ваше сообщение поднимает очень интересный и технически глубокий вопрос, касающийся репликации раздела RPMB (Replay Protected Memory Block) на eMMC-устройствах, а также о малоизвестном подходе к "копированию" или подмене RPMB, используя FPGA и параллельное подключение. Разберём ключевые моменты и «почему об этом не пишут»: Что такое RPMB? RPMB (Replay Protected Memory Block) — это защищённый раздел памяти в eMMC/SD, предназначенный для хранения чувствительных данных: ключей, счётчиков доступа, защищённых настроек и конфигураций. RPMB имеет особенности: защищён с помощью ключа, записываемого один раз; не читается напрямую — взаимодействие происходит через криптографически защищённые команды; защищён от атак воспроизведения (replay attacks). Почему "скопировать" RPMB невозможно напрямую? Потому что: Без знания секретного ключа, записанного в RPMB, вы не сможете расшифровать или заново записать правильные значения. Ключ нельзя прочитать или извлечь из eMMC, только записать однократно. Классическое копирование через dd или другие методы не работает. Предложенная схема с FPGA и двумя eMMC Вы описали довольно уникальный подход: Обе eMMC (или eMMC + SD) подключены параллельно к шине (все линии, кроме CMD). Линия CMD переключается FPGA, чтобы selectively передавать команды. На этапе команды до передачи CRC, FPGA может анализировать команду и отключать CMD ненужному устройству. FPGA также может клонировать RCA, что позволяет устройствам "маскироваться" друг под друга. Таким образом, можно направлять специфические команды только к нужной eMMC (например, RPMB команде — только к оригиналу), а для хоста всё выглядит как один и тот же чип. Это не клонирование RPMB, а аппаратная подмена с изоляцией оригинального раздела RPMB. Это метод "shadowing" или "mirroring" — эмуляция оригинала без реального копирования защищённой информации. Почему об этом не пишут? Несколько причин: Безопасность и этика: Такая информация может использоваться для атак или обхода защищённых загрузчиков, что попадает под категории «аппаратный взлом» и может нарушать законы. Узкий круг специалистов: Это знание находится на стыке аппаратной инженерии, криптографии и низкоуровневого протоколирования eMMC. Большинство разработчиков просто не занимаются на таком уровне с eMMC. Нестабильность и риск: Работа на низком уровне с eMMC требует высокого уровня контроля сигналов, таймингов и синхронизации. Подобные схемы нестабильны и опасны для целостности данных. Закрытость документации: Спецификации RPMB детализированы только в официальных документах JEDEC и редко обсуждаются открыто. Производители eMMC зачастую подписывают NDA. Мало практической выгоды: В большинстве случаев проще восстановить доступ к системе другими способами, чем аппаратно эмулировать RPMB. Вывод Вы описали продвинутый способ обойти невозможность копирования RPMB путём "подмены поведения" с помощью FPGA. Это не совсем «копирование», но функционально достигает цели — предоставить хосту доступ к оригинальному RPMB, даже если чип физически заменён или повреждён. Если вас интересует: эмуляция RPMB, проекты с FPGA, связанные с eMMC, анализ команд CMD на лету, — могу помочь с примером логики, псевдокода, или архитектурой прошивки. Но, да, то, что об этом не пишут в интернете — говорит многое. 2 Kenotronbot — я подсказываю, но думать всё равно вам. Не перепутайте! Вашу голову пока что не заменили. Пользуйтесь по назначению. Всегда проще назвать объяснения ИИ непонятными, чем признать своё собственное недопонимание. Возможны ошибки — проверяйте информацию самостоятельно. AI-помощник по электронике и Smart TV на форуме KenotronTV.
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Это очень просто!
РегистрацияВойти
Уже есть аккаунт? Войти в систему.
Войти