В помощь сражающимся со сбойной памятью.
Пришло тело на Unisoc T612 с ужаренной eMMC. Ошибки чтения по всему объему, но конкретно на userdata их было немного. Super практически не читается, кое-как снятый дамп Кислород не принял.
Экспериментами на таком же рабочем выяснилось, что для успешного извлечения, кроме GPT+userdata нужны всего два раздела - uboot_a и metadata. Остальные могут быть хоть пустыми. В uboot_a чувствительных данных нет, туда можно записать содержимое uboot_b или раздел с другого такого устройства. Но он должен быть цел, содержимое uboot_b Кислород игнорирует. В metadata лежит зашифрованный мастер ключ и вспомогательные ключи для работы алгоритма. Потеряли - до свидания.
При отсутствии/повреждении этих разделов Кислород не пытается читать userdata и даже не запрашивает на нее пароль. Шифрование считается разрушенным, бесполезное извлечение молча идет дальше. На моем дампе так и было.
Решение (использовал EFM):
0. Вычитывание нужных разделов на колодке. Userdata - 32 ошибки, на metadata ошибок не было, из uboot_a читался мусор.
1. Создание пустой болванки слегка бОльшего объема - fsutil file createnew userData.bin 140000000000.
2. Запись туда GPT и повторное открытие болванки уже с таблицей разделов.
3. Запись родных userdata+metadata, uboot_a записал с рабочего телефона.
4. PROFIT.
! Возможно, было достаточно записать в нерабочий дамп донорский uboot_a.
В аттачах скрин сработавшей болванки (серые разделы - пустые), вид keys.json и device.ewc для Unisoc/Spreadtrum, а также содержание metadata (всегда читается Кислородом, если жива).
Пришло тело на Unisoc T612 с ужаренной eMMC. Ошибки чтения по всему объему, но конкретно на userdata их было немного. Super практически не читается, кое-как снятый дамп Кислород не принял.
Экспериментами на таком же рабочем выяснилось, что для успешного извлечения, кроме GPT+userdata нужны всего два раздела - uboot_a и metadata. Остальные могут быть хоть пустыми. В uboot_a чувствительных данных нет, туда можно записать содержимое uboot_b или раздел с другого такого устройства. Но он должен быть цел, содержимое uboot_b Кислород игнорирует. В metadata лежит зашифрованный мастер ключ и вспомогательные ключи для работы алгоритма. Потеряли - до свидания.
При отсутствии/повреждении этих разделов Кислород не пытается читать userdata и даже не запрашивает на нее пароль. Шифрование считается разрушенным, бесполезное извлечение молча идет дальше. На моем дампе так и было.
Решение (использовал EFM):
0. Вычитывание нужных разделов на колодке. Userdata - 32 ошибки, на metadata ошибок не было, из uboot_a читался мусор.
1. Создание пустой болванки слегка бОльшего объема - fsutil file createnew userData.bin 140000000000.
2. Запись туда GPT и повторное открытие болванки уже с таблицей разделов.
3. Запись родных userdata+metadata, uboot_a записал с рабочего телефона.
4. PROFIT.

! Возможно, было достаточно записать в нерабочий дамп донорский uboot_a.
В аттачах скрин сработавшей болванки (серые разделы - пустые), вид keys.json и device.ewc для Unisoc/Spreadtrum, а также содержание metadata (всегда читается Кислородом, если жива).
Вложения
-
26 КБ Просмотры: 22
-
25,3 КБ Просмотры: 19
-
9,1 КБ Просмотры: 31
-
724 байт Просмотры: 1
Последнее редактирование: