语言、时区、电池与强制截图开关
语言 / 地区环境
实现方式的变化
原版 Guise 是拦截每个 Locale 实例的 getLanguage()、getCountry() 方法,逐一改写。Guise Reborn 改为设置目标进程默认 Locale——更高效也更彻底。
能伪装什么
- 目标应用读取到的默认语言
- 目标应用读取到的默认国家/地区
- Android 框架中使用
Locale.getDefault()的所有上下文
边界
- 应用显式创建的
new Locale("zh", "CN")等不会被改写——Guise 只改进程默认值 - 应用如果内部自己管理了 Locale 实例,可能绕开
已知问题
部分应用(如高德地图)语言伪装可能失效。2.0.2 版本修复了这个问题——如果遇到类似情况,先确认是否已升级到最新版。
时区 Hook(Reborn 新增)
设置目标进程默认 java.util.TimeZone。覆盖:
- Android
java.time包 - ICU 格式化
ZoneId.systemDefault()
不会影响
- 系统时钟 — Guise 不修改系统时间
- 应用显式创建的其他时区实例 —
TimeZone.getTimeZone("America/New_York")不受影响
配置方式
- 从系统时区库选择(Guise 内置完整时区列表)
- 手动输入时区 ID
- 一键随机(在一键随机总开关或时区独立随机按钮)
电池电量
- 配置固定值(0~100)
- 或一键随机(每次取一个随机值)
受全局一键随机总开关控制。
显示密度(DPI)
用途
Density Independent Pixel(dp)的基准值。改变后,目标应用的整个 UI 布局会变化——控件变大/变小、间距变宽/变窄。
支持范围
- 72–1000 的
densityDpi - 自动同步修正
density、scaledDensity及 dp 配置 - 保留原字体缩放比例
为什么做成手动开关
因为 DPI 改变的是布局,不是显示的密度值本身。改了之后:
- 部分应用布局可能错乱
- 部分 WebView 内容可能显示异常
- 部分全屏应用可能有兼容问题
Guise 把它做成手动开关,默认关闭,由你决定是否启用。
和系统设置的区别
Guise 的 DPI Hook 只影响目标应用进程,不修改系统全局显示大小。你系统里看到的还是正常密度,只有伪装的应用看到的密度变了。