Андрей Смирнов
Время чтения: ~11 мин.
Просмотров: 21

Flash ID – как определить FID памяти флешки

В статье я буду делать акцент на работе с USB-флешками, которым главным образом и посвящён портал USBDev. Имейте это ввиду, задавая вопросы и предъявляя свои претензии.ЧТО ТАКОЕ FID?

Flash ID(он же сокращённо FID, по-русски идентификатор флэш или ФИД) – идентификатор чипа флеш-памяти, установленного в USB-флешке или любом другом устройстве. FID представляет собой набор символов в шестнадцатеричной системе и имеет длину 6 байт. Во всяком случае, общепринятая в современном сервисном софте именно такая длина. Этак до 2010 года, в основном, в служебных утилитах и документах фигурировали только первые 4 байта.

Кстати, на этой почве (разная длина FID), у некоторого софта при переходе с одной системы на другую бывают некоторые конфликты совместимости. Например, когда я экспериментировал с контроллерами SMI SM3255AB, сталкивался с подобными проблемами. Там первые MPTool под данный чип работали с 4-байтовымFlashID, а с некоторой версии уже перешли на 6-байтовый.

КАК УЗНАТЬ FID?

Первоначальный анализ всегда делается с помощью таких универсальных утилит, как Flash Drive Information Extractor и ChipGenius.

chipgeniusantspec.png

И уже только потом, если данные некорректны или не достаточны, прибегают к помощи более серьёзных сервисных утилит от производителя контроллеров.

fidgetinfo.png

У программы ChipGenius, в плане определения значения FlashID имеется один существенный недостаток, из-за которого центральное место в данном вопросе занимает утилита Flash Drive Information Extractor. Дело в том, что гений в большинстве случаев выводит только 4 байта FID, что для полноценного анализа современных чипов не вполне достаточно.

Производственные утилиты обладают более серьёзными возможностями, но в тоже время менее гибкие в применении. Взять хотя бы привередливость в плане совместимости с актуальными версиями операционных систем. Или ограниченный перечень совместимых контроллеров, из-за которого иногда возникает ненужное желание перевести флешку в тестовый режим.

ПЕРЕЧЕНЬ УЗКОЗАТОЧЕННЫХ ИДЕНТИФИКАЦИОННЫХ УТИЛИТ, СЧИТЫВАЮЩИХ ЗНАЧЕНИЕ FLASH ID
GetInfo Всеядный инструмент для анализа контроллеров Phison и, наверное, единственный из всего доступного нам перечня, который реально необходим. Выдаёт куча полезной информации, которую другими средствами и не получить. Считанные данные можно сохранить в компактном зашифрованном формате .ENC (по умолчанию GetInfo.enc), которой в дальнейшем можно открыть на любом другом компьютере.
MPInfoCheck Довольно неплохо отрабатывает со старыми чипами от USBest, типа UT163 и UT165. Выдаёт вполне достаточно данных, которые могут пригодиться в анализе и восстановлении флешки.
IDReportTool Работает с теми же чипами, что и предыдущая (UT163 UT165), но выдаёт информацию только по самому FID. Из плюсов, что выводит идентификатор по всем #CE в отдельности.
UFD_INFO Полезный, но не слишком стабильный инструмент для анализа флешек на чипах ITE IT1167, IT1167B и IT1168. Если не знакомы с его глюками, рекомендую поберечь своё время и просто не пользоваться им.
Innostor MPInfo Совместима только с такими современными чипами от Innostor, как IS917 USB3.0 и IS817 USB2.0. Для работы требуется распаковать утилиту в дистрибутив прошивальщика, без файлов которого MPInfo даже не запустится.

FID также можно считать и правильно подобранным прошивальщиком, но их перечислять в данном разделе нету никакого смысла. Как детектят флеш-память некоторые из сервисных утилит, я наглядно покажу немного ниже, где пойдёт речь о реакции прошивальщиков на подключённую флешку.

РАСШИФРОВКА FID

Самый просто способ, это всем понятное загугливание идентификатора флеш-памяти. Причём, значение следует задавать в различных форматах, так как в разных источниках эта информация записана по-разному.

Также можно попробовать осуществить поиск исключительно в БАЗЕ ДАННЫХ ПОРТАЛА USBDEV. Там же, в шапке страницы, есть разъяснения по поводу этих самых форматов, которыми вписывается Flash ID в поисковую строку.

cbmflashlist.png

Итак, с помощью поисковой системы, вы можете найти, как описание характеристик искомой флеш-памяти в самих флеш-листах, так и наткнуться на полноценный Datasheet.

Далее, зная название микросхемы, можно произвести декодирование с помощью специальной документации – Part Number Decoder.

Например, для флеш-памяти SpecTek, используем документ SpecTek NAND Flash Part Numbering System.

К сожалению, не для всякой флеш-памяти можно найти актуальную информацию по данному вопросу.

Также можно использовать бесплатную утилиту FlashGenius v3.9, которая выдаёт некоторую информацию. Но данная софтина не обновлялась с 2012 года, так что надеяться на неё особо не стоит.

ЗАЧЕМ УМЕТЬ ЕГО ОПРЕДЕЛЯТЬ?

Восстановление флешек, особенно современных, сложно отделимо от процедуры анализа идентификатора памяти. Так если он определяется некорректно (или вообще не определяется), то и прошить флешку в таком состоянии у вас не получится, пока не будет устранена причина данной неполадки.

Или скачав подходящий прошивальщик под ваш USB-контроллер, он откажется прошивать флешку, сославшись на неизвестное значение FlashID. Здесь может быть причина, как в слишком свежей микросхеме флеш-памяти, так и в битом (неверно определяется) значении идентификатора.

Если не понимать, что к чему, можно сутками рыскать по закоулкам интернета новые версии программного обеспечения, хотя проблема может таиться в неправильном поведении флешки как устройства.

Ещё одной немаловажной причиной, является выявление основных параметров флеш-памяти, описанное в предыдущем пункте про расшифровку FID. Так некоторые характеристики флеш-памяти, фигурируют в названия специальных редакций производственных утилит. Рекомендую вам полистать страницу загрузки прошивальщика AlcorMP, чтобы оценить весь масштаб проблемы. Там можно обнаружить такие спец. версии, как: ED3, MLC16K, E2NAND, E2NAND3, SA21nmTLC и многие другие.

ПОЧЕМУ В ОТЧЁТЕ ОТСУТСТВУЕТ FID?

Не всегда, такие программы как ChipGenius, выдают в своих отчётах строчку с идентификатором флеш-памяти. И на это могут быть несколько причин, две из которых я озвучу:

1) Флешка зависла и ей нужен ТЕСТМОД или там вообще какая-то более сложная неисправность. В таком случае, нужно привести флешку в должное состояние и только потом ждать появления FID.

2) Программа-анализатор не умеет определять FID для конкретной модели контроллера. В качестве примера, приведу модель iTE IT1176A1BA, которая далеко не нова, но всё же на 2018 год, определить ФИД посторонними утилитами у неё не получится. В данном контексте, рекомендую, загуглить кусок отчёта вместе с другими данными отчёта, чтобы посмотреть, как определялось такое же железо у других людей.

Например, вбить в google: Controller Part-Number: IT1176 A1BA

Как заявляют разработки таких программ, редкие контроллеры представляют для них малый интерес и у них нету особого желания с ними возиться.

КАК ОПРЕДЕЛИТЬ ОШИБОЧНОЕ ЗНАЧЕНИЕ FID?

Сначала смотрим на результаты работы программ ChipGenius и Flash Drive Information Extractor, которые комплексно (учитывая FID, количество CE, объём флешки и может ещё чего) анализируют данные и выдают свои предположения насчёт наименования микросхемы памяти.

Если ChipGenius пишет просто слово Sandisk, без указания конкретной модели, то это повод насторожиться и продолжить анализ уже другими средствами.

У утилиты Flash Drive Information Extractor, в отчёте, смотрим на строку Possible Memory Chip(s), в которой списком выдаются все возможные названия чипов. В случае, если там маячит единственное сообщение “Not available“, то и эти утилита не смогла выдвинуть предположение по FID-памяти.

Ещё один простой и всем доступный вариант это банальное загугливание значения FlashID. Способ хоть и элементарный, но к сожалению, не такой уж и стопроцентный. Проблемы, в основном, бывают при работе с новинками, собранных на флеш-памяти, которая ещё не успела попасть в сеть Интернет.

Например, вбиваем в поисковую систему EC3AD5F3A8C6(6 байт, Samsung K9GCGD8U0D) или 984A9AB2(4 байта, Toshiba QualDie_16G). Если в поисковой выдачи, видите, что с таким значением FID вы не один, это хорошо.

Если результатов будет крайне мало, рекомендую, перейти по полученным ссылками и почитать, что пишут люди. А то бывает и такое, что ошибочное значение неоднократно повторяется в отчётах страждущих восстановить свои поломанные флешки.

На тот случай, если я не получил нужный мне результат, я начинаю анализировать флеш-листы и служебные файлы прошивальщиков. Перечислять весь список, здесь не вижу никакого смысла, ограничусь несколькими самыми популярными.

CHIPSBANK Скачиваем самую свежую версию флешлиста, из имеющихся, со страницы Chipsbank CBM209X Flash Support List и просто вбиваем в поисковое окно наш FID.
PHISON Вручаю ищем наш FID в файлах последней версии MPALL, причем не в виде обычного текста, а в HEX-режиме.

Прошивальщики UPTOOL, позволяют нам поискать в файле флеш-листа – Flash.ini .

SMI Первым делом врубаю поиск по DBF-файлам какого-нибудь из прошивальщиков (каталог UFD_ALL_DBF). Чаще всего, для этих целей использую пакет TRANSCEND-SM32X-BY-USBDEV, который содержит сразу несколько десятков DBF-файлов для разных моделей контроллеров. Здесь принцип такой – ищем по всем, но главным образом фокусируемся по тому из них, который в своём названии содержит нужную нам модели чипа.

Если это не помогло, переключаюсь на файл ForceFlash, который лежит в корневой папке, той же утилиты.

Также можно провести похожие изыскания в каком-нибудь из дистрибутивов Dyna MPTool.

Все остальные производители, как правило, не сильно отличаются в этом плане. Хотя есть и более существенная причина, почему я их не указал в этой таблице. Дело в том, что там в основном такая информация, которая нам уже стала известна при работе с таблицей данной выше и поисковой системой.

РЕАКЦИЯ ПРОШИВАЛЬЩИКОВ НА ЗНАЧЕНИЕ FID

Как правило, реакция сервисных утилит на битый FID и на несовместимый абсолютно одинаковая. Так что без умения определять ошибочное значение идентификатора FID, здесь всё равно не обойтись.

По первой ответной реакции на вставленную флешку, у большинства контроллеров, можно понять о наличие в базе флеш-памяти. Хочу заметить, что наличие в базе совсем не означает совместимость дистрибутива с вашей флешкой. Дела у современных флешек частенько обстоят так, что для отдельных типов флеш-памяти необходимо использовать специальные узкозаточенные инструменты.

Накидаю вам здесь побольше графической информации. Скрины с тем, как распознаётся флешка в окне утилиты, состоят из двух изображений – там, где флеш-память удачно определилась и где она не ясна программе.

Окна с дополнительной информацией, которые вы увидите на некоторых скриншотах, были вызваны двойным щелчком мыши по распознанной в прошивальщике флешке.

ALCORMP:

PHISON MPALL:

PHISON UPTOOL:

SMI MPTOOL:

INNOSTOR MPTOOL:

SKYMEDI SK6211 PDT:

Также можно ориентироваться по названиям ошибок, после запуска процесса прошивки устройства. В большинстве своём, названия включают в себя похожие фразы, типа: – Flash ID not foundNo support flash

ПРО КАРТЫ ПАМЯТИ

Коротко, поясню по поводу флеш-карт (microSD, SD, MMC и так далее по списку). Раз они включают в себя флеш-память, значит там и FlashID тоже имеется. Только пытаться определять его, для обычного смертного, нету абсолютно никакого смысла. Технических средств, да и служебного софта для их реанимации или какой-то трансформации, всё равно не найти.

На сегодняшний день самой актуальной утилитой, пригодной для ремонта флешек на контроллерах Phison, является ST-TOOL_9000_v3.7F.92. Попробуем разобраться, как ею пользоваться.Буквально пара слов о назначении утилиты. Во-первых, это сортинг-утилита. Но, в отличии от UPTool, ST-Tool менее гибка в настройках. По крайней мере, это утверждение верно для пользовательского интерфейса, и возможно, много интересного доступно в параметрах ini-файла. После завершения процесса сортинга, если её хорошенько попросить, то утилита вызывает MPALL из папки ISP_INFO (об этом ниже), тем самым завершая процесс прошивки.А теперь поехали!Стартовая форма утилиты.Отмеченный чек-бокс «GetMPInfo» и кнопка Start покажут нам минимальную информацию об устройстве. Нам это не очень интересно, нам нужно настроить утилиту для дальнейшего использования, для чего необходимо нажать на кнопку Setting. И я бы посоветовал сразу отметить «Drive letter», что потом не получать непонятные ошибки.НастройкиНа вкладке «IC_FW» выбираем параметры своего устройства. В подавляющем большинстве случаев лучше отметить «Auto ISP». В этом случае прошивки подберутся в соответствии с тем, что указано в файле «ISP_INFO ST_ISP.ini»Вкладка «Flash Setting». Опять же, в подавляющем большинстве случаев лучше без особой надобности ничего не крутитьВкладка «Partition Setting». Выбрать режимВкладка «Drive Info» . Заполняется на свое усмотрение, на прошивку никак не влияет.Вкладка «Other Setting» . Опять же, в подавляющем большинстве случаев лучше без особой надобности ничего не менятьВкладка «ST». Самая интересная вкладкаРассмотрим подробнее «Scan Class»:LLF – низкоуровневое форматирование. Будет выполняться процесс сортинга, при этом MPALL выполняться не будет. Даже если утилита отработает успешно, то система отреагирует на флешку так:Что, в общем, не удивительноДля исправления ситуации нужно будет выполнить HLF — см. далее. Нюансов использования Scan Mode я не знаю.HLF – высокоуровневое форматирование. Не будет выполняться процесс сортинга, только MPALL.Если до этого выполнялся сортинг (либо LLF в этой утилите, а возможно и UPTool), то Scan Mode нужно выставить в Had Sorting, чтобы использовалась таблица дефектных боков, созданная сортинг-утилитой. Если память качественная, то достаточно Scan Mode выставить в NormalL+H – сортинг + высокоуровневое форматирование. В этом случае необходимо явно задать значение поля Capacity (объем), что не всегда удобноВ виду особенности выполнения MPALL, при высокоуровневом форматировании нужно на стартовой форме выбрать «Drive letter»«Classify type» — лучше оставлять значение «Auto». Выбор оптимизации по скорости зачастую завершается ошибкой (не всегда, но часто) и не дает ощутимого прироста в скорости по сравнению с «Auto»Лично я использую утилиту в два прохода: LLF, а потом HLF с Had SortingНастройки выполнены, и х нужно сохранить и запустить утилиту (кнопка Start на основной форме утилиты)Если все хорошо, то утилита должна завершиться приблизительно так:В случае ошибки:Можно посмотреть текущий лог (правая кнопка мыши в ячейке с результатом выполнения). Все логи сохраняются в папке Reports — т.е., если нужно посмотреть какой-то старый лог — бежим в папку Reports и ищем там.В случае завершения с ошибкой, будет не лишним ещё раз проверить настройки. Если ошибка на уровне выполнения MPALL, то конечно, нет смысла мучить флешку и выполнять сортинг-сканирование, достаточно выбраться HLF с Had SortingИспользуемые источники:

  • https://www.usbdev.ru/articles/flashiddetect/
  • https://null21.livejournal.com/355531.html

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации