Краткий ответ
На Google Pixel, работающем в штатном состоянии — с заблокированным загрузчиком, включённой проверенной загрузкой и без root-доступа, — IMEI изменить невозможно. Это касается и заводской Android, и GrapheneOS, и любой другой операционной системы: ни у одной из них нет пути записи к тем данным, из которых модем берёт свой идентификатор.
Операционная система здесь вообще не является определяющим фактором. IMEI принадлежит не Android, а модему — отдельному процессору с собственной прошивкой, собственной памятью и собственным контролем целостности. Замена ОС на устройстве не меняет ни содержимое этой памяти, ни правила, по которым модем её проверяет.
Точность формулировки имеет значение, поэтому приводим её прямо: неизменность IMEI на Pixel обеспечивает не однократно программируемая аппаратная ячейка, а проверка целостности внутри подписанной прошивки модема в сочетании с проверенной загрузкой. Разница между этими двумя механизмами существенна, и ниже мы объясняем, почему.
Какое оборудование здесь задействовано
Все Pixel на платформе Google Tensor — от Pixel 6 до Pixel 10 включительно — используют сотовый модем Samsung семейства Shannon (Exynos). Серии Pixel 9 и Pixel 10 работают с модемом Exynos 5400: несмотря на перевод производства самого процессора Tensor G5 на TSMC, радиочасть Google оставил без изменений.
Модем представляет собой отдельный вычислительный блок. GrapheneOS описывает его как изолированный компонент: доступ к памяти разграничен через IOMMU и ограничен внутренней памятью и теми областями, которые драйвер явно предоставляет в совместное использование. Wi-Fi, Bluetooth и спутниковая навигация на разных поколениях реализованы либо внутри этого же модема в отдельных песочницах, либо на отдельных микросхемах.
Практический вывод прост: всё, что относится к сотовой связи — регистрация в сети, аутентификация, передача IMEI в ходе процедур сигнализации, — происходит внутри модема. Android видит только результат.
Где на Pixel физически хранится IMEI
Публично задокументированная структура хранения на Tensor-устройствах выглядит так.
Раздел devinfo. Небольшой раздел объёмом 8192 байта без файловой системы. Он содержит заголовок и две области тегов. В теговой области PS хранятся строковые значения, записываемые на заводе однократно: серийные номера, MAC-адреса, а также теги imei1 и imei2. Для Tensor-устройств именно devinfo является источником истины — в отличие от платформ Qualcomm, где первичным является EFS.
Энергонезависимая память модема (EFS). Значения IMEI дублируются в NV-элементах модема — в частности CAL.Common.Imei и CAL.Common.Imei_2nd. Это рабочая копия, с которой оперирует радиочасть.
Контрольное значение cpsha. В разделе persist, по пути /mnt/vendor/persist/modem/cpsha, в текстовом виде хранится контрольная сумма SHA-256, вычисленная прошивкой модема на основании значений IMEI. Это и есть ключевой элемент защиты.
Логика проверки такова: при запуске модем сверяет IMEI из раздела devinfo с контрольной суммой cpsha. Если значения не совпадают, модем не пытается «исправить» ситуацию и не использует подменённый номер — он сообщает 000000000000000 и на экран по коду *#06#, и в сеть. Устройство просто теряет сотовую связь.
Три уровня, которые удерживают IMEI неизменным
Уровень первый: требование отраслевых стандартов
Спецификация 3GPP TS 22.016 в действующей редакции формулирует требование без оговорок: IMEI должен быть уникальным и не может изменяться после завершения производственного цикла оборудования; он должен противостоять вмешательству — манипуляциям и изменению — любыми средствами, в том числе физическими, электрическими и программными.
Документ GSMA TS.06 повторяет это требование и добавляет к нему собственные технические принципы безопасности IMEI, отдельно отмечая, что стандарты 3GPP требуют непрограммируемости IMEI, но не описывают, как именно производитель должен этого добиться.
Это важный момент. Стандарт задаёт результат, а не механизм. Каждый производитель выбирает собственную реализацию, и именно поэтому стойкость защиты различается от платформы к платформе.
Уровень второй: контроль целостности внутри прошивки модема
Это собственно реализация Google. Прошивка модема подписана и загружается под контролем проверенной загрузки. Она вычисляет контрольную сумму SHA-256 по алгоритму и с ключевым материалом, которые остаются внутри самой прошивки, и сверяет с ней содержимое devinfo.
Попытки воспроизвести этот алгоритм извне успехом не увенчались. Даже в случае успеха нет никаких гарантий, что Google будет использовать тот же ключевой материал в последующих версиях прошивки.
Уровень третий: проверенная загрузка и заблокированный загрузчик
Оба задействованных в схеме раздела недоступны для записи в штатном режиме работы. Запись в devinfo требует прямого доступа к блочному устройству, запись в /mnt/vendor/persist — прав суперпользователя. Ни обычное приложение, ни системное приложение без специальных привилегий, ни сама операционная система в нормальном режиме такого доступа не имеют.
На Pixel получение root-доступа требует разблокировки загрузчика. Разблокированный загрузчик отключает проверенную загрузку — тот самый механизм, на котором держится доверие ко всему остальному: к аппаратной аттестации ключей, к StrongBox на базе Titan M2, к защите от отката версий. GrapheneOS прямо квалифицирует устройство с разблокированным загрузчиком как незавершённую установку и не оказывает поддержку в таком состоянии.
Это не аппаратный предохранитель — и это принципиально
Распространённое представление о том, что IMEI в современных смартфонах «прожжён» в однократно программируемую ячейку (eFuse), для Pixel не подтверждается ни одним публичным источником. Аппаратные предохранители в этих платформах действительно используются — для счётчиков защиты от отката версий, для фиксации состояния загрузчика, для хранения отпечатков ключей корня доверия. Но задокументированный механизм защиты IMEI имеет иную природу: это криптографическая привязка, вычисляемая и проверяемая программно.
Различие не является формальным. Однократно программируемая ячейка физически не поддаётся перезаписи — обойти её невозможно в принципе. Проверку в прошивке обойти сложно, но принципиально возможно, если заставить саму прошивку пересчитать контрольную сумму для новых значений. Именно это и было сделано.
Мы считаем правильным изложить это прямо, а не повторять удобное, но неточное утверждение о физической невозможности. Клиент, принимающий решение относительно собственной модели угроз, должен опираться на точную картину.
Что известно об обходе и чего он стоит
В сообществе исследователей задокументирована процедура, которая на части поколений Pixel позволяла записать произвольный IMEI так, чтобы модем принял его и сообщал в сеть. Схема заключалась в изменении тегов imei1 и imei2 в разделе devinfo, переводе устройства в заводской режим загрузки и отправке модему служебной AT-команды AT+GOOGGETIMEISHA, которая заставляла прошивку пересчитать контрольную сумму уже для новых значений. Полученный результат записывался в файл cpsha.
Состояние этого направления на сегодня выглядит так.
Процедура никогда не работала без root-доступа. Все известные реализации прямо указывают root как обязательное условие. Это означает разблокированный загрузчик и отключённую проверенную загрузку.
Google последовательно закрывает этот путь. Команда AT+GOOGGETIMEISHA изъята из образа радиочасти. Автор наиболее распространённого сценария прекратил сопровождение, отметив, что с выходом Android 16 QPR1 сценарий больше не работает. Участники сообщества сообщали о неудачных попытках на Android 14, 15 и 16 на протяжении всего первого полугодия 2026 года.
На серии Pixel 10 процедура неприменима. Исследователи прямо предостерегают от попыток — результатом становится неработоспособное устройство.
Алгоритм вычисления контрольной суммы не воспроизведён. Без этого обход остаётся зависимым от наличия служебной команды в конкретной версии прошивки, а не от понимания самой схемы.
Теперь о цене. Pixel с GrapheneOS покупают ради конкретного набора свойств: проверенная загрузка от корня доверия при каждом запуске, аппаратная аттестация, ограничение числа попыток подбора пароля на уровне защищённого элемента, устойчивость к инструментам извлечения данных. Каждое из этих свойств является производным от заблокированного загрузчика. Разблокировка ради смены IMEI обменивает весь этот набор на один изменённый идентификатор — притом что самой выгоды от такой замены, как показано ниже, не существует.
Мы не рекомендуем такую модификацию.
Программная подмена IMEI: что она делает на самом деле
Отдельно существует класс приложений, позиционирующих себя как средства «смены IMEI»: модули для Xposed и LSPosed вроде IMEI Masker, Android Faker, SpoofMyDevice.
Механизм их работы не имеет ничего общего с модемом. LSPosed представляет собой фреймворк перехвата вызовов в среде выполнения ART. Модуль подменяет значение, возвращаемое методами класса TelephonyManager — и только для тех приложений, которые пользователь заранее отметил в настройках модуля. Новое приложение, установленное после этого, получит настоящее значение, пока его не добавят в перечень вручную.
Что остаётся неизменным:
- Код *#06# показывает настоящий IMEI, поскольку это значение поступает от модема, а не от Android.
- Сеть получает настоящий IMEI, поскольку его передаёт модем в ходе процедур сигнализации, не обращаясь к Android вообще.
- Root-доступ остаётся обязательным — со всеми последствиями, описанными выше.
То есть инструмент меняет ответ операционной системы отдельным приложениям и не меняет ничего из того, что видит оператор или кто-либо с доступом к сетевой инфраструктуре.
Задачи, которой не существует со времён Android 10
Ключевой вопрос относительно любого средства подмены IMEI на уровне ОС: какую именно проблему оно решает?
Начиная с Android 10, сторонним приложениям доступ к неизменяемым аппаратным идентификаторам закрыт полностью. IMEI, MEID, серийный номер, серийный номер SIM-карты и идентификатор абонента защищены разрешением READ_PRIVILEGED_PHONE_STATE. Это разрешение выдаётся только приложениям, подписанным платформенным ключом, и привилегированным системным компонентам. Приложения из Google Play объявить его не могут.
Приложение, рассчитанное на Android 10 или более новую версию и пытающееся прочитать IMEI, получает SecurityException. Устаревшие приложения получают пустое значение или заполнитель. Исключение составляет только текущее приложение для SMS и MMS.
GrapheneOS наследует это ограничение полностью и дополнительно убирает устаревший путь доступа к серийному номеру.
Таким образом, сценарий «приложение следит за мной через IMEI» на современном Pixel не реализуется независимо от наличия каких-либо модулей подмены. Мы не смогли определить ни одной практической задачи, которую программная подмена IMEI решает на устройстве с Android 10 или более новой версией. Издержки же вполне реальны: root, разблокированный загрузчик и потеря проверенной загрузки.
Даже настоящая смена IMEI не скрывает устройство в сети
Предположим на минуту, что IMEI всё-таки изменён на уровне модема. Анонимности в сотовой сети это не даёт.
Проект GrapheneOS формулирует это сжато: IMEI не является единственным аппаратным идентификатором устройства, доступным сотовой сети, и смена одного лишь IMEI скрывает один распространённый идентификатор, а не делает устройство неидентифицируемым.
Что остаётся доступным для сети:
Профиль возможностей устройства. При регистрации устройство передаёт сети подробный перечень собственных радиотехнических возможностей — поддерживаемые диапазоны, комбинации агрегации несущих, категории пропускной способности, алгоритмы безопасности, набор поддерживаемых служб. Исследователи в области безопасности сотовых сетей показали, что этот обмен происходит до аутентификации, без защиты целостности и без проверки со стороны сети, и что его достаточно для определения модели устройства.
Радиочастотный отпечаток. Физические характеристики передатчика — остаточное смещение частоты, нелинейности усилителя, переходные процессы — уникальны для каждого экземпляра оборудования и поддаются классификации. В публикациях, посвящённых идентификации по радиочастотному отпечатку на основании преамбулы PRACH, для 5G-смартфонов приводится точность классификации около 92 % при отношении сигнал/шум 25 дБ. Ни один программно записанный идентификатор на это не влияет.
Идентификаторы абонента. IMSI или SUPI привязаны к SIM-карте, а не к аппарату. Постоянный IMEI с разными SIM-картами и постоянная SIM-карта с изменённым IMEI одинаково образуют заметную корреляцию.
Дополнительный фактор — редкость. Нетипичное поведение само по себе является идентифицирующим признаком. GrapheneOS отдельно отмечает применительно к конфигурациям с ротацией идентификаторов, что они резко выделяют пользователя на фоне остальных абонентов именно в силу своей немногочисленности, и это облегчает отслеживание.
Позиция проекта GrapheneOS
Официальная документация GrapheneOS формулирует позицию в одном предложении: изменить IMEI на серийном устройстве невозможно, и GrapheneOS не может добавить такую возможность, поскольку её не поддерживает аппаратная платформа.
Этот ответ относится к устройству в том состоянии, в котором GrapheneOS предназначена работать: с заблокированным загрузчиком и проверенной загрузкой. Именно в таком состоянии мы передаём устройства клиентам.
Заключение
IMEI на Google Pixel принадлежит модему, а не операционной системе. Его удерживают три вещи: требование стандартов 3GPP и GSMA, проверка целостности SHA-256 внутри подписанной прошивки модема и проверенная загрузка с заблокированным загрузчиком.
Это не аппаратный предохранитель. Обход технически существовал на части поколений, требовал root-доступа, последовательно закрывается производителем и неприменим к Pixel 10. Ценой такого обхода является полный отказ от тех свойств безопасности, ради которых и покупают Pixel с GrapheneOS.
Программные средства «подмены IMEI» работают на другом уровне — они меняют ответ Android отдельным приложениям и не меняют ничего из того, что передаётся в сеть. При этом со времён Android 10 сторонние приложения вообще не имеют доступа к IMEI, так что проблемы, которую эти средства якобы решают, на современном устройстве не существует.
Если задача состоит в том, чтобы не быть отслеженным через сотовую сеть, IMEI — не то направление, на котором стоит сосредоточить усилия. Режим полёта полностью отключает приём и передачу сотовой радиочасти, оставляя Wi-Fi доступным, — и это единственный способ исключить отслеживание устройства сетью.
Pixel 8, Pixel 9 и Pixel 10 с GrapheneOS. Мы подбираем модель под вашу модель угроз, устанавливаем GrapheneOS, блокируем загрузчик и передаём устройство с полным руководством по эксплуатации. Подробнее о GrapheneOS →
Связанные материалы: Pixel с GrapheneOS · обфускация IMEI на GL.iNet Mudi.
Источники
Стандарты
- 3GPP TS 22.016 «International Mobile station Equipment Identities (IMEI)», V19.0.0 (2025-10), раздел 2. — 3gpp.org
- GSMA TS.06 «IMEI Allocation and Approval Process», V27.0 (06.01.2025), раздел 7 «IMEI Security and Integrity Guidelines». — imeidb.gsma.com
Документация GrapheneOS
- GrapheneOS, Usage guide, раздел «Carrier functionality» — утверждение о невозможности смены IMEI на серийном устройстве. — grapheneos.org
- GrapheneOS, FAQ, «Can apps access hardware identifiers?» — grapheneos.org
- GrapheneOS, FAQ, «Is the baseband isolated?» — grapheneos.org
- GrapheneOS, FAQ, «What does GrapheneOS do about cellular tracking, interception and silent SMS?» — grapheneos.org
- GrapheneOS, FAQ, о разблокированном загрузчике как незавершённой установке. — grapheneos.org
- GrapheneOS, публикация от 17.10.2024 о недостаточности смены одного лишь IMEI. — grapheneos.social
Ограничения доступа к идентификаторам в Android
- Android Developers, «Privacy changes in Android 10», раздел о неизменяемых идентификаторах. — developer.android.com
- Android Open Source Project, «Device identifiers». — source.android.com
Механизм хранения IMEI в Tensor-устройствах
- lexipwn — инструмент и техническое описание структуры раздела devinfo, механизма cpsha и команды AT+GOOGGETIMEISHA. — codeberg.org
- Privacy Guides Community, обсуждение «Pixel (Tensor chip) IMEI modification guide», в том числе сообщения об изъятии команды AT+GOOGGETIMEISHA из образа радиочасти и о неработоспособности процедуры на Pixel 10. — discuss.privacyguides.net
- Pixel-IMEI-Restore — независимое описание той же последовательности действий. — github.com
Аппаратная платформа
- 9to5Google, об использовании модема Exynos 5400 в Tensor G5 и серии Pixel 10. — 9to5google.com
Идентификация устройства в сети помимо IMEI
- Shaik et al., «Show Me Your Attach Request and I’ll Tell You Who You Are: Practical Fingerprinting Attacks in 4G and 5G Mobile Networks» — о передаче перечня возможностей устройства до аутентификации без защиты.
- «Radio Frequency Fingerprint Identification for 5G Mobile Devices Using DCTF and Deep Learning», Sensors. — pmc.ncbi.nlm.nih.gov
Средства программной подмены идентификаторов
- LSPosed — фреймворк перехвата вызовов ART. — github.com
- Репозиторий модулей LSPosed: Android Faker, SpoofMyDevice, IMEI Masker. — modules.lsposed.org