Вопрос Samsung A125F Восстановление кирпича

  • Автор темы Автор темы SiDm
  • Дата начала Дата начала
Добро пожаловать! Вас пригласил Dmitri24ss присоединиться к нашему сообществу. Пожалуйста, нажмите сюда зарегистрироваться.

SiDm

.
8/10/14
1 269
857
0
41
4 666
Аппарат поступил с проблемой - не работает подсветка, работоспособность загрузки не проверил, восстановил подсветку, но аппарат завис на лого Samsung и не загружался. Сделал сброс, результат нулевой, так же висел на лого. Решил прошить, при прошивке вылезла ошибка и аппарат превратился в кирпич. Коннект к ПК только через тест поинт. Снял флэшку, скачал дампы - и тут началось... По непонятной мне причине из всех найденных мною запускается только с одним дампом, на остальных кирпичом и остается. При загрузке срабатывает MDM, убрал через Unlock Tool, запускается, все работает, но нет IMEI. Попробовал восстановить через Pandora Box, разблокировал загрузчик, записал IMEI, проверил, все на месте. При старте в системе так же пустые поля.
Так же купил химеру, нашел на форуме под нее dump, залил - снова кирпич...
Опыта по восстановлению imei и сети нету, по этому прошу помощи.
U2 - из всего что есть работает только с этим.
 

Вложения

IMEI будут только при восстановлении родного бэкапа, поверх которого можешь записать рабочую прошивку. Разделы с IMEI на MTK многократно назывались на форуме - nvram, nvdata + кастомные разделы от Samsung, перечень которых для каждой конкретной модели может быть разным. Все со словом EFS.
 

Вложения

Тоже а125. Была пробита память по линии emi vdd. Слил дамп с памяти. Взял память с такого же аппарата. Сбросил rmpb путем обновы прошивки памяти. Залил файлы BL из прошивки. Тел так и не ожил. Все напруги поднимаются. watchdog стоит. Что ему надо не понятно. MTK Port проскакивает.
 
Для начала проверить три напряжения на оперативке, затем снять лог запуска.
 
У меня вопрос по ошибке при восстановлении imei химерой. В системе прошивка модема не определяется.
 

Вложения

нужен вроде бы именно родной дамп efs конктретного процессора. Как то пытался на самсунг J610 (qualcomm) поменять imei, так там только с родными файлами имейка была. С другого тела подсовывал файлы, не было imei. Пришлось пару менять. Насчет mtk не уверен. У вас родная память вообще труп или просто все затерли?
 
Ну вот, спустя 2 месяца, путем проб и ошибок получилось восстановить этот кирпич. Все что было найдено мною по восстановлению с разных ресурсов (дампы и прошивки), оставляли аппарат в состоянии кирпич. Дождался аппарат со старой прошивкой A125FXXU1BUE1, загрузчиком U1 и патчем безопасности от 1 марта 2021 года. Через химеру, без рута восстановил Imei и после пролил свежую прошивку, после сброса на заводские Imei не слетели - все работает.
Возможно кому то будет полезно, все создавал через Medusa Pro:

 

Вложения

Снимаю шляпу, представляю сколько времени убито. Но несколько непонятна суть процесса. Ты нашел дамп с загрузчиком U1 и залил в кирпич с более новым загрузчиком (процессор я так понимаю не снимался) и тело завелось. Потом проделал манипуляции с IMEI. Я считал что версия загрузчика и невозможность ее понижения хранится именно в процессоре (типа счетчика который можно только увеличить) и он не дает возможности загрузиться с более низкой версией загрузчика во флешке? Можешь уточнить детали своих действий с дампом?
 
Приветствую коллеги, имеется аппарат a125f, не было имей, и в меню об устройстве сведения о ПО не отображалась версия прошивки, даже после повторной прошивке. Перекатал U2002, появились палочки на антенне, появилась версия прошивки(последняя стоит на данный момент), но имей как нет так и нет. При попытке рутирования через Химеру или DFT Pro выдает ошибку сам аппарат...может подскажет кто, уже голова кипит, загрузчик на аппарате разлочен.
 
Какая версия загрузчика? Что бы в chimera править, нужен root, нужна рутированная прошивка под ваш загрузчик.
 
Отсюда вывод.не трогай гуамнофон... Хотел как лучше,поймал геморрой...сочувствую.
 
И вновь тот же сабж, прилетела обнова на 5 загрузчике, победил ошибку рутирования прогой DftPro, рутировал, вайпнул, загрузил в систему , проверил рут чекером, рут есть, далее запустил химеру...и вот черт его дери вместо двух имей прописал только один, прописался, аппарат загрузился, сеть ловит....но теперь не могу прописать второй имей, повторял все по новой, nvram стирал, но хоть тресни в химере нет пункта имей 2, и через 0011 тоже только один слот видит, как будто второго и не существует вовсе...и как теперь вернуть его в состояние первозданного аппарата без двух имей хз.
 
Вдобавок, даже прописав имей 1, аппарат не звонит, пишет незарегистрирован в сети...112 звонит
 
Приветствую. На BIT 5 кто менял флеш память. Бэкапы есть, но кроме mtk порта ничего не получается. Поделитесь решением
 
Вношу правку, что бы не вводить людей в заблуждение.
В тот момент было несколько аппаратов и большое кол во попыток. Один аппарат был с U1 два с U2, процессор просто был установлен с первым загрузчиком, от этого у меня и произошла путаница.
Понизить загрузчик невозможно! Понизить можно только прошивку в пределах своего загрузчика.

 
Было такое ТА на U2. Разлочил boot на CM2 но не смог прошит патченний boot изза KG_prenormal, сделал KG off на CM2 и прошил Auto Patch прошивку, потом правил имеи с помощью Z3x. После ресета имеи не слетают.
 
На пальцах запуск qualcomm

1. Жмем в кнопку включения. Как только на устройство подается питание, аппаратная логика инициирует сброс и ЦПУ начать выполнение кода с предопределенного адреса (0x00000000, 0xFFFF0000).

2. Далее выполняется код hardware_power_on_sequence - выполняется минимально настройка, чтобы ЦПУ могло подготовиться к выполнению более кода PBL. Вкратце:
а. init_cpu_core - Инициализация ядра ЦПУ. Сюда входят такие процессы как (настройка режимов работы процессора, конфигурация базовых регистров, отключение watchdog-таймера)
б. init_cache_and_mmu - Кэш ускоряет доступ к памяти, сохраняя часто используемые данные в SRAM, MMU преобразует виртуальные адреса, используемые программой, в физические адреса в RAM.
в. init_basic_clocks() - Тактовые сигналы (генераторы, фазовые автоподстройки частоты, делители)

3. После того как минимально необходимое оборудование настроено, управление передается Primary Bootloader (PBL).
hardware_power_on_sequence это по сути подготовка железа к запуску основного первого кода, который зашит заводом qualcomm pbl_main.
задача PBL — подготовить и загрузить следующий этап загрузки — вторичный загрузчик (SBL), который, в свою очередь, загрузит ядро операционной системы.
4. Далее запуск процесса secure_boot_init. Мы потихоньку подходим к фьюзам, регистрам и другим связанным вещам. Так мы в основном имеем дело с так называемыми aftersale устройствами, т.е. все то что продается вендорами, то соответственно secureboot флаг у нас включен. Если брать инженерные процессоры, по типу тех, которые покупаем на алиэкспрессе, то там secureboot off, так же как и arb =0 и т.д. Для примера:
В исходниках sec.elf функция anti_rollback_feature_enable > false так как разработчикам нужно часто записывать и старую версию ПО. На продаваемых устройствах эта функция всегда включена. Ниже будет табличка которая очень наглядно показывает запуск и количество проверок при включенном секбуте и выключенном, думаю сразу станет понятно почему инженерные процы стартуют без проблем.

Обращаем внимание на "is efused" - N Т.е. после Brom TA "Наплевав на все" грузит систему. И то количество проверок сертификатов при ON.

efuse.webp
Немного про sec.elf — это образ, который пишется в раздел secdata. При первой загрузке BROM считывает этот раздел, проверяет его подпись и, если все в порядке, то прожигает конфигурационные данные в efuse (QFPROM).
Также не забудем про devcfg.mbn (Device Configuration) который загружается задолго до ядра ОС, и конфигурирует аппаратные блоки и параметры безопасности. Писал уже про него и почему с "правильным" Devcfg трубка загружается без ключа в RPMB (флаг skip check rpmb).

Теперь самое интересное, собственно то, к чему мы и шли. Это структура данных QFPROM с небольшими пояснениями:

root_key_hash Хэш корневого ключа (SHA256, 32 байта)
oem_pk_hash Хэш открытого ключа OEM
sec_boot_enable Флаг включения SecureBoot
debug_disable Флаг отключения отладки
rpmb_key Ключ RPMB
device_serial Серийный номер устройства
anti_rollback_version Версия защиты от отката
reserved Зарезервированные поля

Итак погнали по регистрам чуть подробнее, именно чуть, т.к. делать полноценную выкладку с примерами кода, то это все превратится в скукотищу, а так наглядно убережет надеюсь многих от подкидывания процессоров сяоми на самсунг, подкидывания непонятных xbl, тем более от "пропатчивания" ))))) FH, XBL, DEVCFG и т.д.

1. root_key_hash - (Хэш корневого ключа): Самый важный элемент, на нем завязана все секьюрити. Это не сам ключ, а его хэш (SHA-256, 32) байта). Этот хэш является "Папой" всей цепи доверия.
2. oem_pk_hash - (Хэш открытого ключа OEM): Хэш открытого ключа производителя устройства (OEM). Корневой ключ используется для проверки подлинности этого ключа OEM. Это создает цепочку доверия: Корень -> OEM -> Загрузчик -> ОС. Это в том случае, когда у нас обычное устройство. Т.е. если вернуться к приложенной табличке, то это путь "is efused" - Y, т.е. со всеми возможными проверками. И когда у нас стоит не инженерный проц у которого в sec_boot_enable флаг off, а ON со всеми проверками, то он соответственно и упирается в проверку rpmb, но упирается не из-за записей во фьюзах, а потому что в DEVCFG указано проверить RPMB, а вот соответствие ключей в UFS и Efuse это уже QFPROM.
3. sec_boot_enable - (Флаг включения SecureBoot): Повторимся, если он не установлен (прожжен), вся система Secure Boot отключается, и устройство может загружать любую фирмварь. Обычно он прожигается на всех ТА которые идут в свободную продажу. Соответственно шаг в лево, шаг в право труп. Ну это конечно хорошо видно, если ко всему этому добавить выкладку со стороны софта, т.е. TZ, XBL и т.д., но это долго, пока железо посмотрим.
4. debug_disable - (Флаг отключения отладки): Тот самый JTAG, который нам отрубили много лет назад )))))
5. rpmb_key - (Ключ RPMB): Ключ для Replay Protected Memory Block — тот самый заветный ключик от замочка в eMMC/UFS.
6. device_serial - (Серийный номер устройства): Думаю тут комментарии излишние, хотя, мягко говоря не последнее место в безопастности занимает.
7. anti_rollback_version - Собственно сам виновник данного поста. При каждой успешной установке новой прошивки этот "счетчик" увеличивается. Загрузчик будет отказываться загружать ПО с версией ниже, чем записана в QFPROM. Выше писал про sec.elf.
8. reserved - (Зарезервированные поля): Это на случай, когда куалком придумает нам очередную гадость, то будет куда дописать ))))))).

Интересная для изучения литература касаемо уже софтовой части, не факт что найдется в свободном доступе:

80-NM248-3 Fuse Blowing
80-P1824-1 Provisioning Encryption Tool
80-NM248-5 Encryption Key Provisioning
80-NU861-1 Android Security Features
80-N9340-1 Widevine DRM
80-PD867-97 - QFPROM SM-8150
 

Вложения

Назад
Верх Низ