1111
1212``` toml
1313default_mode = " lite" # 推荐:轻量模式(隐藏性更好)
14- # default_mode = "full" # 完整模式(可能被检测)
1514```
1615
1716** 可选值** :
@@ -29,7 +28,8 @@ default_mode = "lite" # 推荐:轻量模式(隐藏性更好)
2928
3029- ` "resetprop" ` - Resetprop 模式
3130 - 使用 resetprop 工具修改属性
32- - 支持修改只读属性(如 ` ro.build.characteristics ` )
31+ - 支持修改只读属性
32+ - 支持自定义属性和属性置空/删除
3333 - 在应用进入 resetprop 模式前会用 ` getprop ` 备份原始值,退出或切换到其它应用后由守护进程用 resetprop 自动还原
3434
3535### default_force_denylist_unmount(全局默认卸载挂载点)
@@ -167,9 +167,23 @@ model = "SM-S9280"
167167| ` fingerprint ` | ` Build.FINGERPRINT ` | + ` ro.build.fingerprint ` | 指纹 |
168168| ` name ` | ❌ | ` ro.product.name ` + ` ro.product.device ` | 代号 (如: xuanyuan) |
169169| ` marketname ` | ❌ | ` ro.product.marketname ` | 型号 (如: REDMI K90 Pro Max) |
170- | ` characteristics ` | ❌ | ` ro.build.characteristics ` | 特性 (如: tablet) - 仅 resetprop 模式生效 |
170+ | ` characteristics ` | ❌ | ` ro.build.characteristics ` | 特性 (如: tablet) - 仅 full 模式生效 |
171+ | ` android_version ` | ` Build.VERSION.RELEASE ` | + ` ro.build.version.release ` 等 | Android 版本号 (如: 15, 14) |
172+ | ` sdk_int ` | ` Build.VERSION.SDK_INT ` | + ` ro.build.version.sdk ` 等 | SDK 版本号 (如: 35, 34) |
173+ | ` custom_props ` | ❌ | ✅ | 自定义属性映射表 |
171174| ` force_denylist_unmount ` | N/A | N/A | 是否对该应用强制卸载模块挂载点;未指定时使用 ` default_force_denylist_unmount ` |
172175
176+ ** Android 版本伪装字段** (新增):
177+ | 字段 | 说明 | 示例 |
178+ | ------| ------| ------|
179+ | ` android_version ` | Android 版本号,所有模式都支持 | ` "15" ` , ` "14" ` , ` "13" ` |
180+ | ` sdk_int ` | SDK 版本号,所有模式都支持 | ` 35 ` , ` 34 ` , ` 33 ` |
181+
182+ ** 自定义属性字段** (新增):
183+ | 字段 | 说明 |
184+ | ------| ------|
185+ | ` custom_props ` | 自定义属性映射表,仅 full/resetprop 模式支持 |
186+
173187** 配置元数据字段** (仅用于显示,不影响伪装效果):
174188| 字段 | 说明 |
175189| ------| ------|
@@ -189,29 +203,113 @@ model = "SM-S9280"
189203- [[ apps]] 中的字段会覆盖模板的配置
190204- ` name ` 和 ` marketname ` 仅在 ** full 模式** 下有效(影响 SystemProperties)
191205- ` name ` 字段在 full 模式下会同时伪装 ` ro.product.name ` 和 ` ro.product.device `
192- - ` characteristics ` 字段仅在 ** resetprop 模式** 下生效
193- - ** lite 模式** 下,只有 ` manufacturer ` 、` brand ` 、` model ` 、` device ` 、` product ` 、` fingerprint ` 生效
206+ - ` characteristics ` 字段仅在 ** full 模式** 下生效
207+ - ` android_version ` 和 ` sdk_int ` 在** 所有模式** 下都生效
208+ - ** lite 模式** 下,只有 ` manufacturer ` 、` brand ` 、` model ` 、` device ` 、` product ` 、` fingerprint ` 、` android_version ` 、` sdk_int ` 生效
209+
210+ ## Android 版本伪装(新增功能)
211+
212+ 所有模式都支持 Android 版本和 SDK 版本伪装:
213+
214+ ``` toml
215+ # 模板示例:伪装为 Android 15
216+ [templates .android_15 ]
217+ packages = [" com.app.needs.android15" ]
218+ manufacturer = " Google"
219+ brand = " google"
220+ model = " Pixel 9 Pro"
221+ android_version = " 15"
222+ sdk_int = 35
223+
224+ # 应用示例:伪装为旧版 Android
225+ [[apps ]]
226+ package = " com.needs.old.android"
227+ mode = " lite" # lite 模式也支持!
228+ android_version = " 13"
229+ sdk_int = 33
230+ ```
231+
232+ ** 版本伪装会修改的属性** :
233+
234+ | 模式 | Build.VERSION 字段 | 系统属性 |
235+ | ------| -------------------| ----------|
236+ | lite | ` RELEASE ` , ` SDK_INT ` | ❌ |
237+ | full | ` RELEASE ` , ` SDK_INT ` | ` ro.build.version.release ` , ` ro.build.version.sdk ` 等 |
238+ | resetprop | ` RELEASE ` , ` SDK_INT ` | ` ro.build.version.release ` , ` ro.build.version.sdk ` 等 |
239+
240+ ** 完整的系统属性列表** (full/resetprop 模式):
241+ - ` ro.build.version.release `
242+ - ` ro.system.build.version.release `
243+ - ` ro.vendor.build.version.release `
244+ - ` ro.product.build.version.release `
245+ - ` ro.build.version.sdk `
246+ - ` ro.system.build.version.sdk `
247+ - ` ro.vendor.build.version.sdk `
248+ - ` ro.product.build.version.sdk `
249+
250+ ## 自定义属性(新增功能)
251+
252+ ** full/resetprop 模式** 都支持自定义属性,可以设置任意系统属性:
253+
254+ ``` toml
255+ [[apps ]]
256+ package = " com.custom.app"
257+ mode = " resetprop"
258+ manufacturer = " Custom"
259+
260+ # 自定义属性
261+ [apps .custom_props ]
262+ "ro.custom.property" = " custom_value"
263+ "ro.another.prop" = " another_value"
264+ ```
265+
266+ ### 特殊标记值
267+
268+ 支持使用特殊标记值来执行特殊操作:
269+
270+ | 标记值 | 含义 | 示例 |
271+ | --------| ------| ------|
272+ | 普通字符串 | 设置为该值 | ` "ro.prop" = "value" ` |
273+ | ` "" ` 或省略 | 不修改(保持原值) | ` brand = "" ` |
274+ | ` "__EMPTY__" ` | 设置为空字符串 | ` brand = "__EMPTY__" ` |
275+ | ` "__DELETE__" ` | 删除该属性 | ` model = "__DELETE__" ` |
276+
277+ ** 示例** :
278+
279+ ``` toml
280+ [[apps ]]
281+ package = " com.example.app"
282+ mode = " resetprop"
283+ manufacturer = " Google"
284+ brand = " __EMPTY__" # 将 brand 设置为空字符串
285+ model = " __DELETE__" # 删除 model 属性
286+
287+ # 自定义属性也支持特殊标记
288+ [apps .custom_props ]
289+ "ro.custom.flag" = " enabled"
290+ "ro.debug.mode" = " __DELETE__"
291+ "ro.empty.value" = " __EMPTY__"
292+ ```
194293
195294## 模式对比
196295
197296| 特性 | lite 模式 ⭐ | full 模式 | resetprop 模式 |
198297| ------| -------------| -----------| ----------------|
199298| Build 类伪装 | ✅ | ✅ | ✅ |
200299| SystemProperties 伪装 | ❌ | ✅ | ✅ |
300+ | characteristics 伪装 | ❌ | ✅ | ❌ |
201301| 只读属性修改 | ❌ | ❌ | ✅ |
302+ | 自定义属性 | ❌ | ✅ | ✅ |
303+ | 属性置空/删除 | ❌ | ✅ | ✅ |
304+ | Android 版本伪装 | ✅ | ✅ | ✅ |
305+ | SDK 版本伪装 | ✅ | ✅ | ✅ |
202306| 模块可卸载 | ✅ | ❌ | ❌ |
203- | 隐蔽性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
307+ | 隐蔽性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐ ⭐⭐ |
204308| 被检测风险 | 极低 | 较低 | 较低 |
205- | 推荐度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
309+ | 推荐度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐ ⭐⭐ |
206310
207311## 如何选择模式?
208312
209- ### 推荐策略
210-
211- 1 . ** 默认使用 lite 模式** - 覆盖 90% 的场景
212- 2 . ** 测试应用** - 看是否能正常使用
213- 3 . ** 如果不行** - 再改用 full 模式
214-
215313### 判断依据
216314
217315** 使用 lite 模式** :
@@ -222,7 +320,10 @@ model = "SM-S9280"
222320** 使用 full 模式** :
223321- 应用会读取 SystemProperties
224322- lite 模式下仍能检测到真实机型
225- - 不在乎被检测到模块
323+ - 需要伪装 characteristics(如 QQ 平板模式)
324+ - 需要自定义属性
226325
227326** 使用 resetprop 模式** :
228- - 需要修改 ` ro.build.characteristics ` (如 QQ 平板模式)
327+ - 需要修改只读属性
328+ - 需要删除或置空某些属性
329+ - 需要完整的自定义属性支持
0 commit comments