Когда я писал свой сервер rmtfs для модема Snapdragon 855, я впервые увидел, как модем пользуется диском планшета: открывает разделы modemst1 и modemst2, читает заголовки, пишет сектора. Эти разделы лежат на том же UFS, что и ваши фотографии, и сброс к заводским настройкам их не касается. С этого началось любопытство: что ещё переживает factory reset, что стирается по‑настоящему, и что из этого важно, если вы продаёте устройство.
Коротко. Ваши данные на современном Android после сброса из настроек восстановить нельзя: ключ шифрования уничтожается, а без него содержимое userdata это шум. Но кроме userdata на диске лежит ещё десяток разделов, которые сброс не трогает by design, и там живут идентификаторы устройства, калибровки, файловая система модема и привязка к аккаунту. Плюс eSIM и SD‑карта, про которые легко забыть. Разбираю по порядку.
Модем и его файлы на вашем диске
Разделы modemst1/2 с точки зрения хоста, который их обслуживает.
Модем на Snapdragon не имеет собственного накопителя. Его постоянная память, EFS (Embedded File System), лежит в разделах modemst1 и modemst2 на общем диске, а читать и писать их он может только через хост: ОС обязана запустить сервер rmtfs, который по запросу модема переносит сектора между разделом и общим буфером в RAM. В Android этот сервер стартует из init, и вы его никогда не видите.
В моей ОС этот сервер написан с нуля, и он ведёт журнал каждого запроса. Так выглядит начало типичной сессии (сокращено):
> ipc.hosts
mss (qrtr node 0)
rmtfs OPEN /boot/modem_fs1 ok size 3 MiB
rmtfs RW_IOVEC read fs1 sectors 0..1 (header)
rmtfs RW_IOVEC read fs1 sectors 8..263
rmtfs RW_IOVEC write fs1 sectors 264..271 -> shadow only
rmtfs OPEN /boot/modem_fs2 ok size 3 MiB
...Модем читает заголовок, выбирает рабочую копию, читает свои файлы, время от времени пишет. Что именно лежит в этих секторах, я не разбирал и не утверждаю: формат закрытый. Известно из документации Qualcomm и из опыта ремонтников: калибровки радиотракта, параметры сети оператора, IMEI, а также журналы, которые модем ведёт для себя. Именно поэтому потеря modemst в народе называется «слетел IMEI», и ремонт стоит денег.
Factory reset форматирует userdata и не прикасается к этим разделам. Переустановка прошивки через Odin или fastboot тоже, если только не прошивать их отдельно. Это правильно с точки зрения инженера: без калибровок модем не заработает. И это стоит понимать с точки зрения владельца: часть состояния устройства живёт вне зоны, на которую распространяется слово «сброс».
У себя я решил это иначе: мой rmtfs отдаёт модему тень в RAM, записи в неё не доходят до диска. Цена: без персистентного EFS часть функций сотовой связи не работает. Для планшета без SIM я на это согласен. Для телефона так делать нельзя.
Что ещё переживает сброс
Одна таблица по разделам.
| Раздел | Что там | Переживает сброс из настроек | Кто пишет |
|---|---|---|---|
userdata | Все ваши файлы, приложения, аккаунты | Нет: ключ шифрования уничтожается | Вы |
modemst1, modemst2 | EFS: файловая система модема. Калибровки радио, настройки сети оператора, IMEI, журналы модема | Да | Прошивка модема, через сервер rmtfs на хосте |
fsg, fsc | «Золотая копия» EFS и её контрольные данные | Да | Завод; модем читает |
persist | Калибровки сенсоров и камеры, ключи DRM (Widevine), Wi‑Fi/BT MAC, у некоторых вендоров данные их сервисов | Да | Вендор; частично система |
frp | Флаг Factory Reset Protection: привязка к аккаунту Google | Да, специально | Система, при добавлении аккаунта |
efs / sec_efs (Samsung) | IMEI, серийник, данные Knox, счётчик прошивок | Да | Samsung |
misc, metadata | Команды загрузчику, метаданные шифрования | Частично | Система |
| eUICC (eSIM) | Профили операторов | Только если отметить «Стереть eSIM» | Оператор, по воздуху |
| SD‑карта | Что угодно | Не трогается, если не отметить | Вы |
| Облако | Резервные копии, Find My Device, привязки | Не имеет отношения к устройству | Вы и Google |
Несколько комментариев к таблице.
persist на многих устройствах интереснее, чем кажется. Кроме калибровок там лежат ключи Widevine (без них не будет HD в стриминговых сервисах, поэтому ремонтники их берегут) и MAC‑адреса Wi‑Fi и Bluetooth. У некоторых вендоров туда же складывают данные собственных сервисов; читается это только с root, и что именно там у вашей модели, стоит проверить самому.
frp переживает сброс намеренно. Factory Reset Protection придуман против воров: после сброса устройство спросит аккаунт Google, который был на нём раньше. Для продавца это означает обратное: если не выйти из аккаунта до сброса, покупатель получит кирпич, а вы получите звонок. Это самая частая ошибка при продаже.
eSIM живёт в отдельной микросхеме eUICC со своей ОС и своими профилями. В диалоге сброса у Android есть галочка «Стереть eSIM», по умолчанию она бывает снята. Без неё профиль оператора остаётся у покупателя. Профиль без вашей учётной записи почти бесполезен, но перевыпускать его придётся вам.
Почему userdata восстановить нельзя
Крипто‑стирание вместо перезаписи.
Здесь хорошие новости. С Android 6 шифрование раздела userdata обязательно, с Android 10 это шифрование на уровне файлов (FBE). Сброс не перезаписывает диск, это заняло бы минуты и износило бы флеш. Он уничтожает ключ, а точнее ключи, которые хранятся в защищённом хранилище (Keymaster, TEE, у новых устройств отдельный чип).
Без ключа сектора userdata неотличимы от случайного шума, даже если физически они всё ещё на месте.
Почему я делаю на этом акцент. В 2015 году Лоран Симон и Росс Андерсон из Кембриджа купили 21 подержанный Android‑телефон после factory reset и восстановили с них данные, включая токены Google, у большинства устройств.
Это были Android 2.3–4.3 без обязательного шифрования, и сброс там был обычным форматированием, которое из‑за особенностей флеш‑памяти оставляло блоки на месте. С тех пор архитектура изменилась именно из‑за таких работ. Если у вас устройство на Android 10 и новее и сброс сделан из настроек, эта атака не работает.
Оговорка про recovery. Если делать wipe из recovery на разблокированном загрузчике, часть шагов (уничтожение ключей в TEE, стирание eSIM) может не выполниться. Сброс из настроек безопаснее.
Как это устроено у других
Коротко, для сравнения.
На iPhone «Стереть контент и настройки» уничтожает ключи класса в Effaceable Storage, и данные становятся недоступны мгновенно; так работает с iPhone 3GS. Baseband со своей энергонезависимой памятью там тоже есть, и калибровки тоже переживают стирание. Пользовательских данных в них нет. Activation Lock играет роль FRP: не выйдя из iCloud, вы отдаёте покупателю кирпич.
На Windows‑ноутбуке «Вернуть компьютер в исходное состояние» с опцией «Удалить всё» и «Очистить диск» перезаписывает раздел. Если включён BitLocker, ключ уничтожается тем же способом, что и на телефоне. Прошивка UEFI, переменные NVRAM (в том числе ключи Secure Boot и, у некоторых вендоров, серийник и метки владельца) не трогаются. TPM обычно сбрасывается отдельным пунктом в UEFI; сброс Windows этого не делает.
Перед продажей устройства
Порядок имеет значение.
- Выйти из аккаунта Google (или Apple ID) в настройках устройства. Именно выйти, а не просто сбросить: это снимает FRP и Activation Lock.
- Снять блокировку экрана, если производитель просит это перед сбросом; отвязать устройство от Find My Device и от банковских приложений с привязкой к устройству.
- Вынуть SD‑карту и физическую SIM. В диалоге сброса отметить «Стереть eSIM», если она есть.
- Сделать сброс из настроек, а не из recovery.
- После перезагрузки дойти до экрана приветствия и убедиться, что устройство не просит предыдущий аккаунт.
- Принять, что
modemst,persistиefsостались. Пользовательских данных там нет; там идентификаторы устройства, которые покупателю и так достанутся вместе с коробкой.
Отдельный совет для тех, кто отвечает за парк устройств: «сброс перед выдачей следующему сотруднику» не равен «чистое устройство», и в политике это стоит написать явно. Что переживает сброс на конкретной модели, проверяется одной командой из recovery: ls -l /dev/block/by-name.
Коротко
Три предложения.
Данные пользователя после сброса из настроек на современном Android недоступны, и это надёжно. Вне userdata живут разделы модема, калибровки, ключи DRM и FRP, и сброс их не трогает намеренно. Реальные риски при продаже это забытый аккаунт, eSIM и SD‑карта, а не остатки файлов.
Если у вас на устройстве другой набор разделов или сброс ведёт себя иначе, напишите модель в комментариях. Если нашли ошибку, скажите, поправлю.
Чужой компьютер: почему ваш телефон вам не принадлежит — и что с этим делатьВ вашем телефоне исполняется код восьми авторов, и ваш самый бесправный. Мы написали свою ОС, загрузили её на планшет и полгода выясняли, кто ещё живёт в чипе и чьи правила там действуют. Как это устроено, почему это касается ноутбуков, iPhone и лампочек, и три уровня ответа.
Кто ещё исполняется в вашем Android: семь команд adb без root и что означает их выводСемь команд через обычный adb shell без root: сколько прошивок грузится вместе с Android, какой у модема патч безопасности и насколько он отстаёт от системного, пишет ли Wi‑Fi‑прошивка в память напрямую, что переживает factory reset и есть ли канал от SIM‑карты. С расшифровкой каждой строки и просьбой прислать результаты.
23 миллисекунды, чтобы солгатьМодем попросил раздел, которого на планшете нет. Честный отказ «no such partition» убил его за 23 мс; пустой раздел из нулей — нет. Почему прошивка проверяет хоста на каждом шаге и почему изоляция должна быть прозрачной: правильной по форме, пустой по сути.