Nvram андроид что это такое

Как восстановить NVRAM всеми способами

NVRAM – особенная область памяти на современных смартфонах с операционной системой Android. При первом включении телефона в этот отдел записываются сведения относительно IMEI телефона, подключаемых сим-карт и т.д.

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

В некоторых случаях, это приводит к потере функциональности смартфоном.

Как определить, что проблема именно в NVRAM

Потеря NVRAM часто становится следствием неправильного отката настроек через сторонние программы, частичной или полной прошивке, также сделанной неправильно.

Признаки, по которым можно судить о потере файла:

  • Если включить на смартфоне Wi-Fi, появляется сеть с названием «NVRAM warning err=0×10»;
  • После ввода USSD-команды *#06# в ответном сообщении не приходит кодов IMEI, т.к. они хранятся в NVRAM.
  • В некоторых случаях телефон не может обнаружить сеть сим-карты.

Способы восстановления

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

Восстановление из резервной копии

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

Рекомендуется сохранять файл резервной копии на ПК, чтобы не потерять его при записи новой ОС на смартфоне.

Восстановление NVRAM из сделанной резервной копии:

  1. Запустить приложение восстановления на телефоне;
  2. Подключить смартфон к ПК через USB;
  3. Включить доступ Root на смартфоне;
  4. Нажать кнопку Restore/Восстановить;
  5. Следовать указаниям системы на устройстве.

Внешний вид меню и действия пользователя могут незначительно изменяться на разных устройствах и операционных системах.

Через TWRP Recovery

Приложение TWRP Recovery бесплатное, устанавливается непосредственно на смартфон. TWRP Recovery позволяет проводить восстановление всей системы или отдельных частей, в том числе, NVRAM.

  1. Запустить приложение;
  2. Войти в меню «Restore»;
  3. Найти нужный вариант резервной копии;
  4. Выбрать разделы, которые пользователь хочет восстановить;
  5. Подтвердить выбор.

Через SP Flash Tool

Программа предназначена для работы с прошивкой устройства. Скачать SP Flash Tool можно на официальном сайте разработчика.

Необходимо подключить смартфон к ПК с установленной утилитой по USB:

  1. Запустить SP Flash Tool;
  2. Найти телефон программой;
  3. Перейти во вкладку «Write Memory»;
  4. В разделе File Path указать путь к файлу с NVRAM;
  5. Нажать кнопку записи в память;
  6. Перепрошить смартфон заводским вариантом ОС.

Через терминал

Скачиваем терминал. Далее следовать алгоритму:

  1. Скинуть файл терминала на телефон;
  2. Файл NVRAM также положить на устройство, в корневую папку, присвоить разрешение img;
  3. Получить доступ к Root правам;
  4. Ввести последовательно команды: «su», «dd if=/sdcard/nvram.img of=/dev/nvram»;
  5. Перезагрузить устройство.

Через MTK Android Tools

Утилита скачивается и устанавливается на компьютер. Для восстановления необходимо, чтобы именно в MTK Android Tools создавался бэкап. Алгоритм возврата файла:

  1. Установить Root права на телефоне;
  2. Подключить смартфон к ПК;
  3. Включить отладку USB;
  4. Запустить MTK Android Tools.

Должно получиться также, как на скрине.

Нажать кнопку Root, подтвердить выбор на все запросы утилиты.

По завершению работы MTK Android Tools рекомендуется перезагрузить устройство.

При помощи ADB

Небольшая утилита скачивается и устанавливается на компьютер.

Алгоритм работы с утилитой ADB схож с предыдущими вариантами. Необходимо подключить смартфон к ПК, указать путь к файлу NVRAM и нажать кнопку Root.

Для работы с утилитой на телефоне должны быть установлены Root права.

Если резервной копии нет

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

Использование патча

Специальный патч создан для восстановления NVRAM.

Далее следует алгоритм:

  1. Установить архив в память телефона, пользуясь одной из перечисленных выше программ, например, TWRP;
  2. В режиме рекавери на смартфоне найти файл с названием «Patch IMEI Fixing», запустить его;
  3. Дождаться завершения установки.

Важное примечание: пользоваться патчем рекомендуется только в тех случаях, когда на этом смартфоне больше не будут устанавливаться прошивки. С каждой последующей установкой NVRAM будет слетать.

Программа SN Write Station Tool

Программа бесплатная. Устанавливается на ПК, со смартфоном работает по USB подключению. SN Write Station Tool предназначена для восстановления IMEI.

Лучше всего совместима с Windows 7, на других операционных системах может работать нестабильно.

IMEI&SN Writer

Необходимо скачать и установить утилиту на компьютер. Далее:

  1. Подключить смартфон к ПК;
  2. Установить в IMEI&SN Writer подключение (поставить галку на USB);
  3. Выбрать разделы для восстановления во вкладке Write Litem;
  4. Нажать большую кнопку START для запуска восстановления.

Программы Maui Meta 3G и SP META

В утилитах присутствуют специальные разделы по восстановлению NVRAM на смартфонах. Программы устанавливаются на компьютер, работа со смартфоном ведется через подключение USB.

Читайте также:  Android виртуальный принтер что это

Обе утилиты имеют интуитивно понятный интерфейс, работают по схожем принципу.

Запуск восстановления на Maui Meta.

При любом из вариантов рекомендуется устанавливать Root права на смартфоне. Пользователям следует аккуратнее подбирать прошивки для телефонов и программы для отката настроек.

При правильном использовании качественного ПО потери данных не произойдет.

Источник

Nvram андроид что это такое

Бэкап настроек MTK — nvram.img

MTK6575/83** и выше
Описание проблемы:
Чтобы не потерять уникальные калибровки и данные от Вашего смартфона на базе процессора MTK.

Итак Вы стали владельцем смартфона на процессоре MTK6575/83** и выше.
И если читаете это значит Вам уже сказали(узнали сами) о необходимости сохранения NVRAM (настроек смартфона, IMEI, итд).
В Сети много мануалов как сделать Full BackUp через FlashTool , и очень мало как правильно сделать бэкап NVRAM
Справедливости ради уточним что ПолныйБэкап всё равно крайне желателен, и из него можно при необходимости вытащить этот самый блок nvram.
Почему-же тут идёт претензия на «правильность» .
Не будем рассматривать вариант когда смартфон уже модифицировали, а разберём случай когда смарт с заводской прошивкой и немодифицирован.
В подавляющем большинстве случаев телефон довольно прилично защищён от вмешательства и простому пользователю придётся пройти кучу процедур и действий для выше указанного и возможно будет не понятно почему-же у него нет результата, а самое главное что некоторые из вариантов как-раз могут привести к потере этих самых Настроек.
В таких случаях лучшим, а иногда и единственным способом получить NVRAM является слитие его через пару программ MTK Droid Tools и FlashTool
При помощи первой мы узнаем где лежат наши настройки, а при помощи второй сохраним их на компьютер.

Внимание! эта процедура только сохранит блок nvram.img а ЧТО там лежит на момент сохранения другое дело.
Внимание: В этой инструкции не описано КАК устанавливать драйвера для прошивки и драйвера ADB — есть куча описаний по этому вопросу. У Вас все эти драйвера уже должны быть установлены.
Внимание: инструкция ТОЛЬКО как слить NVRAM
Все цифры будут приводится на примере Lenovo P770
И в заключительной части приведу пару примеров.

А. Получаем Scatter файл для смартфона через MTK Droid Tools
Не работает с 64-битными процессорами устройств .

Источник

—>megasoft-portal —>

—>

Фильмы ОНЛАЙН [23]
Прошивка смартфона Lenovo [16]
Создаем пользовательский HTML5 видео плеер [7]
Tor Browser для Windows [1]
Navitel [4]
Схемы [6]
Глава 3 Обработчики Событий [1]
22 декабря [7]
Генератор символов Arduino lcd i2c модуль [1]

—>

Войти через uID

Затирание IMEI и правильный способ решения проблемы, или что такое NVRAM .

IMEI на наших устройствах слетает при форматировании, а иногда и при прошивке FlashTool-ом.
Чтобы понять природу этого явления, необходимо окунуться в недра EMMC. Там есть раздел /dev/nvram. В нем находятся IMEI, SN, MAC адреса сетевых интерфейсов и др.
Если открыть скаттер то можно обнаружить в 16-й строке __NODL_NVRAM 0xe00000. Начало строки __NODL_ заставляет флэштул игнорировать этот пункт. Почему же, несмотря на это, он его иногда затирает — мне неизвестно. Именно это и является причиной исчезновения IMEI после прошивки, и как понятно из предыдущего, не только ИМЕЙ. То есть, мы удаляем раздел не давая взамен ничего!
Итак, /dev/nvram прошивается на заводе и все дальнейшие официальные апдейты и прошивки даже думать не смеют его трогать. Как бы не менялась программная часть, он остается неизменным. В редких случаях, производитель вносит изменения в него, и выпускает прошивки для сервис центров, включая в нее и этот раздел.

В рабочей системе IMEI находятся по пути /data/nvram. Точнее /data/nvram/md/NVRAM/NVD_IMEI/. Директория /data/nvram создается при первом запуске устройства, путем копирования в нее содержимого /dev/nvram. Распространена рекомендация сохранять папку /data/nvram для восстановления имей в будущем. Это, конечно, справедливо, как и призывы к бэкапу в принципе. Калибровки с имеями вы восстановите, но эта директория бесполезна при восстановлении раздела /dev/nvram.

Что необходимо предпринять дабы избежать проблем в будущем?
Во первых нужно создать полный дамп памяти устройства. Рекомендую это сделать сразу после покупки устройства, до начала поиска лучшей в мире прошивки. В зависимости от метода дампа, среди прочих файлов должен быть файл nvram.img. Именно img размером 5242880. Это и есть образ необходимого раздела. Всякие nvram.tar и прочие ext4 это копии /data/nvram и интереса не представляют.
Для создания только образа раздела /dev/nvram можно воспользоваться командой:
dd if=/dev/nvram of=/sdcard/nvram.img bs=5242880 count=1
5242880 это размер раздела для устройств на платформах 6577-6589. В результате по пути sdcard будет создан файл nvram.img. Сохраняем его в надежное место.

Как восстановить затертый раздел /dev/nvram?
Самый простой способ , скопировать сохраненный ранее файл его в память устройства набрать команду:
dd if=/sdcard/nvram.img of=/dev/nvram
Результатом успешной отработки команды послужат строчки
10240+0 records in
10240+0 records out
5242880 bytes transfered in…..
Для прошивки этого раздела ФлэшТулом находим в скатере строчку __NODL_NVRAM. и удаляем в ней __NODL_, после чего в окне программы выбираем наш nvram.img. Именно выбираем. Хоть он и станет доступен в окне программы, но ФлэшТул его сам не подхватит.
Иногда флэштул не хочет шить отдельно этот раздел. В этом случае необходимо скачать прошивку для флэштула, открыть правленый скатер и отметить кроме прочего и nvram.img

Читайте также:  Android in app примеры

Для того чтобы прошить ФлэшТулом методом Upgrate, который требует включения всех пунктов, только необходимые на момент разделы, делаем следующее:

Открываем scatter в любом текстовом редакторе. Дописываем в начало строки раздела который хотим исключить __NODL_. Например __NODL_PRELOADER 0x0. Сохраняем, открываем скаттер ФлэшТулом и шьем только те разделы которые остались не закомментированы, тк ФлэшТул их не увидит.

Данный трюк позволяет как скрывать, так и открывать закрытые пункты скаттера. Таким образом, можно выборочно шить необходимые разделы через Upgrate, например nvram.
Как восстановить раздел, в случае отсутствия резервной копии?

Источник

Устройство NVRAM в UEFI-совместимых прошивках, часть первая

Отказ от ответственности

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

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

Введение

Начнем с того, что вообще такое эта NVRAM и зачем она вдруг понадобилась авторам спецификации UEFI, с учетом того, что до этого все спокойно пользовались для хранения своих настроек CMOS SRAM на батарейке и не жужжали. О «логическом» уровне NVRAM я уже рассказывал немного, а здесь постараюсь рассказать подробнее о «физическом».
Итак, NVRAM — это такая специальная область данных, в которой хранятся те UEFI-переменные, у которых установлен атрибут Non-Volatile. Самые популярные переменные такого рода — это Setup, в которой хранится большая часть текущих настроек из BIOS Setup, BootXXXX/BootOrder/BootNext, управляющие порядком загрузки, PK/KEK/db/dbx/dbt, отвечающие за работу SecureBoot, MonotonicCounter, защищающий от replay-атак на предыдущую пятёрку, и множество других, конкретный список зависит от вендора, модели платы и версии её прошивки.

Чаще всего NVRAM располагают на том же SPI-чипе, что и исполняемый код прошивки, по одной простой и банальной причине — это практически бесплатно (ибо 100-200 Кб на чипе емкостью в 8 Мб можно найти почти всегда, а отдельная микросхема CMOS SRAM на 128 Кб стоит весьма ощутимых денег). Бесплатность эта приводит к нескольким весьма серьезным рискам:

  1. Если в драйвере NVRAM есть ошибка, то он может разрушить не только свои данные, но и данные соседей, в том числе и том, в котором хранится код, тогда после перезагрузки машина встанет колом, и восстановить её из такого состояния будет весьма непросто.
  2. Каждая запись в NVRAM (а их обычно делают несколько при каждом включении и каждой перезагрузке) снижает ресурс SPI-чипа, и при некоторых условиях (к примеру, при постоянно высокой температуре, что не редкость для промышленных ПК) уже через 3-5 лет ресурс этот полностью вырабатывается и система начинает вести себя очень странно. При этом никаких аналогов SMART, EXT_CSD или автоматического wear-out leveling’а производители SPI-чипов 25-ой серии не предоставляют, и я уже пару раз видел системы, на которых чип просто «устал» до полной неработоспособности и его пришлось менять.
  3. Невозможно сбросить разрушенный или неправильный NVRAM перемычкой или выниманием батарейки, нужно стирание при помощи внешнего по отношению к хранилищу SPI-устройства. Некоторое производители имитируют поведение привычного пользователям джампера CLEAR_CMOS при помощи специального DXE-драйвера, храня в CMOS SRAM (которая до сих пор есть, но теперь она значительно меньше, т.к. хранятся в ней только часы и пара флагов) флаг NVRAM_IS_VALID. Если при следующей загрузке флаг этот оказывается сброшен, то выполняется восстановление значений по умолчанию для переменных вроде Setup. К сожалению, очень часто это не помогает, т.к. до загрузки этого драйвера была целая фаза PEI, в которой тоже были модули с запросами к NVRAM, и если запросы удовлетворить не получилось — то и восстановить ничего не выйдет, ибо загрузка прекратится раньше.

Требования к NVRAM

При реализации «физического» уровня NVRAM производителям прошивок пришлось решать множество вопросов: как обеспечить быстрый доступ к переменным на чтение (читаются они во время загрузки достаточно активно), как снизить нагрузку на флеш-память при записи, как хранить переменные таким образом, чтобы не дублировать общие для нескольких переменных данные (vendor GUID’ы, к примеру), как восстановить хотя бы часть данных после сбоя, и так далее. При этом, предложенный Intel при выпуске стандарта EFI 1.10 формат хранилища данных NVRAM оказался хоть и простым, но удовлетворяющим далеко не всем вышеперечисленным требованиям, плюс его формат не был описан в спецификации UEFI PI , т.е. выбор реализации NVRAM оставили конечным вендорам.

Какие бывают форматы

Прежде, чем говорить о форматах, поговорим немного об их названиях. Каждый вендор, следуя давней традиции назвать свою страну «страной» или «землей», а её народ — «людьми», называет свой формат «форматом хранения NVRAM», что несколько мешает их различать. Но нам повезло: т.к. NVRAM обычно хранится внутри специального тома с относительно произвольной структурой, то у заголовков хранилищ имеются сигнатуры, и эти сигнатуры у каждого формата оказались разными. Вот по сигнатурам я их и буду называть, хотя эта терминология еще не устоялась.

Читайте также:  Кто использует батарею андроид

Первым исторически и по распространенности оказался предложенный Intel на заре развития EFI формат VSS, который в стандарте UEFI 2.3.1C был расширен для поддержки защищенных переменных, используемых для реализации SecureBoot, а также получил пару расширений от компании Apple, используемых только в их прошивках. Рядом с данными в формате VSS может храниться блок FTW , данные из которого помогают восстановить NVRAM в случае аварийно неоконченной записи (помните, что «питание компьютера можно отключить» в любую секунду). После внедрения SecureBoot понадобилось хранить значения по умолчанию для его переменных, для чего некоторые вендоры добавили к тому же формату блок FDC (тоже названный по сигнатуре), где эти «умолчания» и хранятся.

Почти сразу оказалось, что хранить NVRAM исключительно формате VSS вовсе не обязательно, поэтому кто-то из вендоров (не знаю точно, кто был первым, по моему это был Phoenix) реализовал ему на замену формат EVSA, в котором появилась дедупликация GUID’ов и имен переменных, зато пропали возможности FTW. Формат это не получил особого распространения, но иногда все же нет-нет, да встречается в старых прошивках времен UEFI 2.1. Для своих хранилищ EVSA используют те же самые основной и дополнительный тома NVRAM, что и VSS, поэтому разбор структуры этих томов, как я уже говорил, занятие весьма увлекательное.

В Apple пошли еще дальше, и добавили в те же многострадальные тома еще два блока данных — SVS, формат которого совпадает с обычным VSS с точностью до сигнатуры, и Fsys, формат которого в Apple придумали с нуля.

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

Формат VSS и его вариации

Данные NVRAM во всех виденных мной UEFI-совместимых прошивках, кроме основанных на коде AMI (о которых я расскажу в части, посвященной формату NVAR), хранятся в одном или нескольких томах с GUID FFF12B8D-7696-4C8B-A985-2747075B4F50 (он же EFI_SYSTEM_NV_DATA_FV_GUID, я его называю «основным»), либо с GUID 00504624-8A59-4EEB-BD0F-6B36E96128E0 (его я называю «дополнительным»).
Оба тома имеют разреженную структуру, поэтому приходится просматривать их байт за байтом в поисках сигнатур хранилищ и блоков. Заголовок хранилища VSS выглядит следующим образом:
Не все пока еще умеют разбирать структуры языка C на лету, поэтому есть смысл показать ту же самую структуру на скриншоте:

Легко видно, что перед нами заголовок хранилища VSS с соответствующей сигнатурой , общим размером 0xFFB8 байт, правильно отформатированное и с верными данными .
Apple иногда использует такой же заголовок, но с другой сигнатурой — $SVS. Зачем так сделано — не знаю, think different, видимо.
Сразу после заголовка хранилища начинаются хранящиеся в нем переменные. Располагаются они друг за другом, и на всех архитектурах, кроме IA64 (она же Itanium), для которой упоминается требование выравнивания начала переменных по восьмибайтовой границе, но у меня просто нет образов прошивок для этой архитектуры, чтобы проверить это утверждение.

Форматов переменных за десятилетнюю историю VSS накопилось три штуки: старый, использовавшийся до UEFI 2.3.1C, его расширение от Apple с дополнительным полем для CRC32, и новый, внедрение которого потребовалось для поддержки SecureBoot. Возможно, есть еще какие-то другие, но найти образы с ними мне пока не удалось, может быть у читателей получится.

Standard

Этот формат широко использовался практически всеми производителями UEFI-совместимых прошивок, кроме AMI, в течение лет примерно семи, пока не потребовалось внедрение SecureBoot. Заголовок «стандартной» переменной выглядит так:
На этот раз на скриншноте можно показать сразу несколько переменных:

Точнее говоря, полторы: PchInit и часть Setup . Они имеют состояние 0x7F (VARIABLE_HEADER_VALID), атрибуты 0x07 (NV +BS +RT ), длину имени 0x10 и 0x0C, длину данных 0x04 и 0x2B0, и GUID E6C2F70A-B604-4877-85BA-DEEC89E117EB и 4DFBBAAB-1392-4FDE-ABB8-C41CC5AD7D5D соответственно.

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

Apple CRC

Примерно пару лет назад в Apple решили, что их переменным не хватает контрольной суммы, и поэтому добавили к заголовку выше еще одно поле, в котором хранится CRC32-контрольная сумма блока данных переменной. Этот формат Apple использует по сей день, и, скорее всего, продолжит использовать в будущем. Заголовок его выглядит вот так:
Скриншоты прикладывать не буду, там все совершенно по аналогии, скажу только, что Apple использует дополнительный атрибут 0x80000000 (CRC_USED), чтобы отличать свой заголовок от стандартного.

Authenticated

После того, как UEFI Forum принял решение использовать NVRAM для хранения ключей, используемых технологией SecureBoot, понадобилась доработка формата. Новые переменные получили заголовок следующего вида:
На скриншоте такая переменная выглядит примерно так:

Маркер тот же, что и у обычных переменных, состояние в данном случае 0x3F (VARIABLE_ADDED), атрибуты — 0x27 (BS+NV+RT+TA ), счетчик не задействован, зато задействована временная метка в формате EFI_TIME, индекс в БД публичных ключей также не задействован, размер имени — 0x08, размер данных — 0x64D, GUID — D719B2CB-3D3A-4596-A3BC-DAD00E67656F, а зовут эту переменную dbx.

В UEFITool эта же переменная выглядит вот так:

Источник

Оцените статью