DeviceResetSpoofer

免开 LSPosed 管理器的设备伪装模块:应用内选择目标 → 随机/自定义 → 保存即生效 Device spoofing module that works without opening LSPosed Manager: pick targets in-app → Random / Customize → Save, done

Android LSPosed Root License

English | 中文 | Русский


📱 Screenshots / 界面预览

主界面 / Main 设置界面 / Settings
主界面 设置界面

🇬🇧 English

Table of Contents

Introduction

An LSPosed module that spoofs a fresh device identity for the apps you pick, right from inside this app — no need to open LSPosed Manager again after a one-time setup. Select a target app, tap Random / Customize, Save, and reopen the app: the new identity is applied.

✨ Features

  • No more LSPosed Manager: tick "System Framework" once in LSPosed Manager, then everything (add/remove targets, write identities) happens in this app
  • Manual trigger: adding a target to the list is NOT applying — tap Random / Customize → Save in its detail dialog to write the spoofed identity
  • Sentinel-driven real injection: only processes whose private dir contains a readable .identity_sentinel get hooked; everything else is skipped with zero overhead
  • Applies without reboot: after Save, just reopen the target app — no phone reboot, no LSPosed
  • Clear-data helper: apps that read identity only at first launch may need Clear Data (offered right in the dialog) to see the new values
  • Multi-dimensional spoofing: Android ID, Advertising ID, IMEI/MEID, IMSI/ICCID, device model, MAC address, GSF ID, serial, carrier info
  • Independent toggles: each hook item (Android ID / Ad ID / IMEI / Model / MAC, …) can be enabled/disabled independently
  • Trilingual UI: Chinese / English / Русский, switch anytime
  • Glass UI & filters: frosted-glass capsule style, filter System / Installed apps, long-press to remove targets
  • Cached app list: icon + entry caching, lazy icon loading; new installs / uninstalls are detected automatically (no manual refresh needed)

📋 Requirements

Item Requirement
Android Version Android 7.0 ~ Android 16 (API 24 ~ 36)
Root Access Required (writing the sentinel file)
Xposed Framework LSPosed / LSPosed_mod (recommended)
Architecture arm64-v8a, armeabi-v7a, x86, x86_64
Storage ~6MB

Note: Tested on LSPosed only. Other frameworks such as EdXposed may have compatibility issues.

📦 Installation

  1. Download the latest APK from the Releases page and install it
  2. Open LSPosed Manager → Modules → enable DeviceResetSpoofer
  3. Tap the module → Scope → tick "System Framework" (global injection — this is the ONLY time you need LSPosed)
  4. Reboot the phone once (required for the module to take effect)
  5. From now on you never need to open LSPosed Manager again

🚀 Usage

  1. Open the DeviceResetSpoofer app → Apps tab
  2. Tap + Select App to pick target apps (filter System / Installed as needed)
  3. Tap a target row to open its detail dialog → tap Random or enter Customize → Save (this is the manual trigger that writes the spoofed identity)
  4. Just reopen the target app — the new identity is applied. No reboot, no LSPosed
  5. If the app still reports old values (identity read at first launch), open its detail dialog again → Clear Data → reopen the app directly (no need to launch the app via the module)

Tip: A green "已注入 ✓ / Injected ✓" status is shown once the module is enabled with global scope. The list auto-refreshes when apps are installed/uninstalled.

🔧 How It Works

The module hooks globally (via System Framework scope) but costs nothing for non-targets: it only installs hooks when the target process's private directory contains a readable .identity_sentinel (chmod 666, readable across UID — the root cause of earlier "hooked but not applied" issues). Identity values are stored in the module config; Save (Random/Customize) is the manual trigger that writes the values + sentinel. Reopening the target app then reads the spoofed values.

🎭 Spoofed Identifiers

  • Android ID (SSAID)
  • Advertising ID (AAID) / AppSet ID
  • IMEI / MEID / IMSI / ICCID
  • Serial number / MAC address
  • GSF ID
  • Device info: Brand, Model, Manufacturer, Build fingerprint
  • Carrier info: Code, Name, Country

❓ FAQ

Q: I added the app to the list but nothing changed? A: Adding a target only manages the list. You must open its detail dialog and tap Random / Customize → Save to actually write the spoofed identity (manual trigger).

Q: The status still shows "not injected"? A: Check that the module is enabled in LSPosed Manager and "System Framework" is ticked in its scope, then reboot once. The status is database-driven — it reflects the real LSPosed state.

Q: The app still reads the old identity after Save? A: Some apps cache the identity on first launch. Use Clear Data in the detail dialog (partial apps require clearing data to take effect), then reopen the target app directly.

Q: Do I need to reboot every time I check a new app? A: No. Save → reopen the target app is all it takes. Rebooting is needed only once after the initial module enable.

Q: New apps installed / uninstalled don't show up? A: The app list is cached for speed and rebuilt automatically when the installed package set changes.

Q: App crashes when launched from LSPosed's quick-launch button? A: This is a conflict between LSPosed's quick-launch and hook timing. Open the app from the desktop icon instead. If it crashes on first launch, clear its data once and open it again.

⚠️ Warnings

  • For personal privacy protection and technical testing only
  • Some apps detect Xposed/Root traces, account ban risk exists
  • Clear Data wipes the target app's own data (login, cache, etc.) — use it only when the identity doesn't refresh
  • Apps reading system properties directly at the native layer cannot be intercepted by Java hooks
  • Test on non-critical apps first
  • Troubleshooting: LSPosed → Logs → Search "DeviceReset"; or use Export Log in Settings to share the log

📄 License

MIT License


🇨🇳 中文

目录

简介

一个 LSPosed 模块:安装时在 LSPosed 里勾一次「系统框架」,之后全程免开 LSPosed——在本应用内选择目标应用,随机/自定义生成伪装值,保存后直接打开目标应用即生效。

✨ 功能特性

  • 免开 LSPosed 管理器:仅在 LSPosed 中勾选「系统框架」一次(全局注入),之后增删目标、写入伪装值全部在本应用内完成
  • 手动触发:把应用加入目标列表 ≠ 生效;需在其详情弹窗中点击随机/自定义 → 保存才会写入伪装值
  • 哨兵驱动真授权:只有目标应用私有目录存在可读哨兵文件 .identity_sentinel 的进程才注入 Hook,其余进程零开销跳过
  • 保存即生效,无需重启:保存后直接重新打开目标应用即可,不用重启手机、不用开 LSPosed
  • 清数据辅助:部分应用只在首次启动读取身份,可在弹窗内一键清空数据后直接打开目标应用生效
  • 多维度伪装:Android ID、广告 ID、IMEI/MEID、IMSI/ICCID、设备型号、MAC 地址、GSF ID、序列号、运营商信息
  • 独立开关:各 Hook 项(Android ID / 广告 ID / IMEI / 设备型号 / MAC 等)可独立开启/关闭
  • 三语界面:中文 / English / Русский,随时切换
  • 玻璃胶囊 UI:毛玻璃胶囊风格;支持系统/安装应用筛选;长按删除目标
  • 列表缓存加速:图标与条目缓存、图标懒加载;自动检测新装/卸载应用,无需手动刷新

📋 系统要求

项目 要求
Android 版本 Android 7.0 ~ Android 16(API 24 ~ 36)
Root 权限 必须(用于写入哨兵文件)
Xposed 框架 LSPosed / LSPosed_mod(推荐)
架构 arm64-v8a, armeabi-v7a, x86, x86_64
存储空间 约 6MB

注意:本模块仅在 LSPosed 框架下测试通过,EdXposed 等其他框架可能存在兼容性问题。

📦 安装方法

  1. 前往 Releases 页面下载最新版 APK 并安装
  2. 打开 LSPosed 管理器 → 模块 → 启用 DeviceResetSpoofer
  3. 点击模块进入作用域,勾选「系统框架」(全局注入——这是唯一一次需要打开 LSPosed)
  4. 重启手机一次(首次启用模块必须)
  5. 此后完全不需要再打开 LSPosed 管理器

🚀 使用方法

  1. 打开 DeviceResetSpoofer 应用 → Apps 页
  2. 点击 + Select App 选择目标应用(可按系统/安装应用筛选)
  3. 点击目标行打开详情弹窗 → 点击随机或输入自定义 → 保存(此即手动触发,写入伪装值)
  4. 直接重新打开目标应用即生效。无需重启,无需 LSPosed
  5. 若目标应用仍读到旧值(首次启动才读取身份):再次打开其详情弹窗 → 清空数据 → 直接打开目标应用(无需通过模块启动)

提示:模块启用且全局作用域生效后显示绿色「已注入✓」状态;应用列表在系统有新装/卸载时自动更新。

🔧 工作原理

模块通过「系统框架」作用域全局注入,但对非目标进程零开销:只有目标进程私有目录存在可读哨兵文件 .identity_sentinel(chmod 666,跨 UID 可读——正是早期"已 Hook 却未生效"的根因)才安装 Hook。伪装值存放在模块配置中,随机/自定义 → 保存是手动触发,写入值并落哨兵;重新打开目标应用即读取到伪装值。

🎭 伪装的识别码

  • Android ID(SSAID)
  • 广告 ID(AAID)/ AppSet ID
  • IMEI / MEID / IMSI / ICCID
  • Serial 序列号 / MAC 地址
  • GSF ID
  • 设备型号:品牌、型号、厂商、Build 指纹
  • 运营商信息:代码、名称、国家

❓ 常见问题

Q:把应用加入列表了,为什么没生效? A:加入目标只是管理列表。必须打开其详情弹窗,点击随机/自定义 → 保存才会真正写入伪装值(手动触发)。

Q:状态仍显示未注入? A:检查 LSPosed 管理器中模块已启用、作用域已勾选「系统框架」,并重启一次。该状态为数据库驱动,反映 LSPosed 真实状态。

Q:保存后目标应用仍读到旧值? A:部分应用首次启动就缓存身份。在详情弹窗使用清空数据(部分应用需清空数据才能生效),然后直接打开目标应用。

Q:每次勾选新应用都要重启吗? A:不用。保存 → 重新打开目标应用即可;只有首次启用模块时需要重启一次。

Q:新装/卸载的应用没出现在列表? A:应用列表为加速做了缓存,系统应用集合变化时自动重建。

Q:从 LSPosed 快速启动按钮打开应用闪退? A:这是 LSPosed 快速启动与 Hook 注入时序冲突导致。请从桌面图标直接打开应用;若首次打开闪退,清除一次该应用数据再打开。

⚠️ 注意事项

  • 本模块仅用于个人隐私保护和技术测试,请勿用于非法用途
  • 部分应用会检测 Xposed/Root 痕迹,存在账号封禁风险
  • 清空数据会清除目标应用自身数据(登录态、缓存等),仅在身份刷新不了时使用
  • native 层直接读取系统属性的应用,Java 层 Hook 无法拦截
  • 建议先在不重要的应用上测试
  • 排查问题:LSPosed → 日志 → 搜索「DeviceReset」;或在设置页使用「导出日志」分享日志

📄 许可证

MIT License


🇷🇺 Русский

Содержание

Введение

Модуль LSPosed, который подделывает идентичность устройства для выбранных вами приложений прямо из этого приложения — больше не нужно открывать LSPosed Manager после однократной настройки. Выберите целевое приложение, нажмите «Случайно»/«Настроить», сохраните и снова откройте приложение: новая идентичность применена.

✨ Возможности

  • Без LSPosed Manager: отметьте «System Framework» один раз в LSPosed Manager — дальше всё (добавление/удаление целей, запись идентичности) делается в этом приложении
  • Ручной запуск: добавление приложения в список ≠ применение — нажмите «Случайно»/«Настроить» → Сохранить в диалоге деталей, чтобы записать подделанную идентичность
  • Детекция по сторожевому файлу: хуки ставятся только в процессы, в приватном каталоге которых есть читаемый .identity_sentinel; всё остальное пропускается с нулевой нагрузкой
  • Применяется без перезагрузки: после «Сохранить» просто откройте целевое приложение — никакой перезагрузки телефона, никакого LSPosed
  • Помощник очистки данных: приложениям, читающим идентичность только при первом запуске, может потребоваться Очистить данные (предлагается прямо в диалоге), чтобы увидеть новые значения
  • Многомерное подделывание: Android ID, рекламный ID, IMEI/MEID, IMSI/ICCID, модель устройства, MAC-адрес, GSF ID, серийный номер, информация об операторе
  • Независимые переключатели: каждый элемент хука (Android ID / Ad ID / IMEI / Model / MAC и т.д.) включается/отключается независимо
  • Трёхъязычный интерфейс: 中文 / English / Русский, переключение в любой момент
  • Стеклянный UI и фильтры: матово-стеклянный стиль-капсула, фильтр системных/установленных приложений, удаление целей долгим нажатием
  • Кэш списка приложений: кэш иконок и записей, ленивая загрузка иконок; новые установки/удаления обнаруживаются автоматически

📋 Требования

Пункт Требование
Версия Android Android 7.0 ~ Android 16 (API 24 ~ 36)
Права Root Обязательны (для записи сторожевого файла)
Фреймворк Xposed LSPosed / LSPosed_mod (рекомендуется)
Архитектура arm64-v8a, armeabi-v7a, x86, x86_64
Хранилище ~6 МБ

Примечание: Протестировано только на LSPosed. Другие фреймворки, такие как EdXposed, могут иметь проблемы совместимости.

📦 Установка

  1. Скачайте и установите последний APK со страницы Releases
  2. Откройте LSPosed Manager → Modules → включите DeviceResetSpoofer
  3. Нажмите на модуль → Scope → отметьте «System Framework» (глобальная инъекция — это единственный раз, когда нужен LSPosed)
  4. Перезагрузите телефон один раз (обязательно для активации модуля)
  5. Дальше LSPosed Manager больше никогда не нужен

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

  1. Откройте приложение DeviceResetSpoofer → вкладка Apps
  2. Нажмите + Select App, чтобы выбрать целевые приложения (при необходимости фильтр Системные/Установленные)
  3. Нажмите на строку цели, чтобы открыть диалог деталей → нажмите «Случайно» или введите «Настроить» → Сохранить (это ручной запуск, записывающий подделанную идентичность)
  4. Просто снова откройте целевое приложение — новая идентичность применена. Без перезагрузки, без LSPosed
  5. Если приложение по-прежнему показывает старые значения (идентичность читается при первом запуске): снова откройте его диалог деталей → Очистить данные → откройте приложение напрямую

Совет: Зелёный статус «已注入✓ / Injected✓» появляется, когда модуль включён с глобальной областью действия. Список автоматически обновляется при установке/удалении приложений.

🔧 Как это работает

Модуль внедряется глобально (через область System Framework), но ничего не стоит для нецелевых процессов: хуки ставятся только тогда, когда в приватном каталоге целевого процесса есть читаемый .identity_sentinel (chmod 666, читаемый между UID — корень проблемы ранних версий «хук есть, а применения нет»). Значения идентичности хранятся в конфигурации модуля; «Случайно»/«Настроить» → «Сохранить» — это ручной запуск, который записывает значения и сторожевой файл. При повторном открытии целевое приложение читает подделанные значения.

🎭 Подделываемые идентификаторы

  • Android ID (SSAID)
  • Рекламный ID (AAID) / AppSet ID
  • IMEI / MEID / IMSI / ICCID
  • Серийный номер / MAC-адрес
  • GSF ID
  • Информация об устройстве: бренд, модель, производитель, отпечаток Build
  • Информация об операторе: код, название, страна

❓ Часто задаваемые вопросы

Q: Я добавил приложение в список, но ничего не изменилось? A: Добавление цели только управляет списком. Нужно открыть её диалог деталей и нажать «Случайно»/«Настроить» → «Сохранить», чтобы фактически записать подделанную идентичность (ручной запуск).

Q: Статус всё ещё показывает «не внедрено»? A: Проверьте, что модуль включён в LSPosed Manager и в его области действия отмечен «System Framework», затем перезагрузитесь один раз. Статус управляется базой данных и отражает реальное состояние LSPosed.

Q: После «Сохранить» приложение всё ещё читает старые значения? A: Некоторые приложения кэшируют идентичность при первом запуске. Используйте «Очистить данные» в диалоге деталей (частичным приложениям требуется очистка данных), затем снова откройте целевое приложение.

Q: Нужно ли перезагружаться при каждом выборе нового приложения? A: Нет. «Сохранить» → снова открыть целевое приложение — этого достаточно. Перезагрузка нужна только один раз после первоначального включения модуля.

Q: Новые установленные/удалённые приложения не появляются? A: Список приложений кэшируется для скорости и автоматически перестраивается при изменении набора установленных пакетов.

Q: Приложение вылетает при запуске через кнопку быстрого запуска LSPosed? A: Это конфликт между быстрым запуском LSPosed и временем инъекции хука. Открывайте приложение с рабочего стола. Если при первом запуске происходит вылет, один раз очистите данные приложения и откройте снова.

⚠️ Предупреждения

  • Только для защиты личной конфиденциальности и технического тестирования
  • Некоторые приложения обнаруживают следы Xposed/Root, существует риск блокировки аккаунта
  • «Очистить данные» удаляет собственные данные целевого приложения (вход, кэш и т.д.) — используйте только когда идентичность не обновляется
  • Приложения, читающие системные свойства напрямую на нативном уровне, не могут быть перехвачены Java-хуками
  • Сначала тестируйте на некритичных приложениях
  • Устранение неполадок: LSPosed → Logs → Поиск «DeviceReset»; или «Экспорт журнала» в настройках

📄 Лицензия

MIT License


⭐ Support

If this project helps you, please give it a Star ⭐

For issues or suggestions, please submit an Issue.

Releases

4.6.2

Stable

10/17/2026, 4:18:20 PM

修复「添加/删除作用域后 LSPosed 管理器长时间打不开、只有重启手机才能打开」(4.6.1 仅修复增删生效,此问题未根治)。

根因(依据 LSPosed 2.2.1 + Zygisk Next 完整日志):管理器依赖的 lspbridge 桥接只在开机时由 zygote 注入侧建立一次;模块重启守护进程后,运行中的 zygote/system_server 不会重连,新守护进程持续刷 "no response from bridge",管理器永久打不开。框架自带的恢复逻辑在双 ABI 设备上只会重启 32 位副 zygote(zygote_secondary),无法重建承载 system_server 的主 zygote 桥接,必须 zygote 整体重新注入(即手机重启)才能恢复。

修复(官方 LSPosed 分支):

  • 作用域变更改为「框架软重启」:写库后先拉起新守护进程,再触发 ctl.restart zygote(+zygote_secondary),不重启手机,约 1 分钟:zygote 与 system_server 全部重建、Zygisk 重新注入、桥接重建,管理器可正常打开
  • 若属性被 SELinux 拒绝,自动 SIGKILL 主 zygote(init 自动重启)兜底
  • 重启期间屏幕会变黑、系统界面重新加载、本应用自动关闭;完整流程由独立 root 脚本执行,应用重开后自动校验结果并提示
  • 点选作用域前弹出确认:立即重启框架(推荐)/ 稍后(下次开机生效,并明确提示重启前管理器无法打开)
  • 重启期间不再误报「框架未连接」

JingMatrix/Vector 分支保持 cli 直写即时生效,不受影响。

Assets

1

v4.5.8

Stable

10/10/2026, 1:02:45 AM

改用框架 cli 写入作用域:守护进程内部刷缓存,免重启、无部分激活。

Assets

1

v3.9.6

Stable

10/6/2026, 1:23:32 AM

v3.9.6 (68)
• 免开 LSPosed 管理器:勾选一次「系统框架」后全程应用内操作(全局注入 + 应用内过滤)
• 手动触发写入伪装值:随机/自定义 → 保存即生效,无需重启
• 哨兵驱动真授权:目标进程私有目录哨兵文件(chmod 666)可读才注入,非目标零开销
• 清数据辅助弹窗(部分应用需清空数据才能生效)+ 三语(中文/English/Русский)
• 玻璃胶囊 UI、系统/安装应用筛选、长按删除、图标缓存加速(新装/卸载自动重建)
• 主页/设置页已注入✓绿色状态(数据库驱动)
• 与旧版同签名,可覆盖升级

Assets

1

v2.13

Stable

9/18/2026, 12:52:44 AM

v2.13

平板/大屏适配(sw600dp+,结构性重构,非简单拉伸):

  • 配置页:7 个伪装选项按钮 + 显示伪装值按钮改为 2 列网格(Android ID|广告ID / IMEI|Build / MAC|GSF / 运营商|显示伪装值)
  • 主页:运行日志 / 语言切换 / 检查更新 3 个按钮并排一行;说明板块改为 2×2 玻璃卡片(使用说明|工作原理、伪装的识别码|注意事项)
  • 应用选择页:应用列表改为双列网格
  • 手机端(<600dp)界面完全不变
  • CI:版本文件更新步骤仅限 main 分支,分支/PR 构建可正常出包

Assets

1

v2.9

Stable

9/15/2026, 11:11:34 PM

v2.9

更换桌面图标为伪装主题设计(面具+手机+APP)

Assets

1

v2.8

Stable

9/15/2026, 10:17:29 PM

v2.8

更新检测增强:多源取最大版本,新增国内 GitHub 代理通道

Assets

1

v2.7

Stable

9/15/2026, 10:10:17 PM

v2.7

检查更新增加 jsDelivr 国内 CDN 通道(GitHub 域名不可达时可用)

Assets

1

v2.6

Stable

9/15/2026, 9:58:04 PM

v2.6

修复检查更新 DNS 解析失败:增加 github.com 页面备用检测通道

Assets

1

v2.5

Stable

9/15/2026, 9:50:38 PM

v2.5

新增自动检测更新功能(主页检查更新按钮,启动自动检测+手动点击,中/英/俄三语)

Assets

1

v2.3

Stable

9/15/2026, 4:48:16 PM

v2.3

统一签名版本(重要):

  • 此前 GitHub Actions 每次构建使用全新机器的临时调试密钥,导致每个版本签名都不同,只能卸载重装
  • 本版起改用固定 keystore(存储于 GitHub Secrets),所有版本签名一致,以后可以直接覆盖升级
  • ⚠️ 注意:本次从旧签名版本升级,需先卸载旧版再安装 v2.3(仅此一次),之后无需再卸载

Assets

1

v2.2

Stable

9/15/2026, 4:30:11 PM

v2.2

修复 IMSI / ICCID 生成问题:

  • IMSI 和 ICCID 此前在每次 App 调用时用 Math.random() 现生成,同一 App 多次读取会得到不同值,反而暴露伪装
  • 现改为在生成身份时用 SecureRandom 预生成一次并持久化,多次读取保持一致

Assets

1

v2.0

Stable

9/14/2026, 6:55:55 PM

v2.0 更新

核心修复

  • 修复模块自动生成伪装值后UI无法读取的问题:根因是模块端只写入内部目录、未传入外部存储目录,导致外部备份和运行时文件从不生成。现在模块每次自动生成时同时写入内部、外部备份、运行时三处位置。
  • 进入配置页自动识别已伪装应用:对比本机真实值与应用实际值,不同则自动标蓝,无需手动生成。
  • 点击应用只显示该进程实际在用的一套伪装值(实际→原始对比)。

其他

  • 移除手动生成伪装值按钮(模块会在应用每次启动时自动生成并应用)。
  • 移除诊断日志文件生成功能。
  • 三语支持(中/英/俄)。
  • 玻璃胶囊按钮风格,选中态文字变蓝。

安装

  • 下载下方 APK 安装,在 LSPosed 中启用模块并勾选目标应用,重启手机后生效。

Assets

1

v2.20

Stable

9/21/2026, 2:44:18 AM

DeviceResetSpoofer v2.20

Assets

1

v2.15

Stable

9/18/2026, 2:43:59 PM

v2.15

  • 测试内置下载进度弹窗:进度条 + 取消 / 仓库主页按钮

Assets

1

v2.14

Stable

9/18/2026, 2:34:46 PM

v2.14

  • 内置下载更新:检测到新版本后直接在应用内下载 APK,不再跳转网页
  • 下载进度弹窗:显示实时进度条与百分比;进度条下方提供「取消」与「仓库主页」两个按钮
  • 弹窗风格统一:下载进度弹窗与软件其它界面保持一致(玻璃拟态按钮风格)

Assets

1