Skip to content

iOS NSUserDefaults 读取 commands/ios/nsuserdefaults.py ​

本模块用于读取 iOS NSUserDefaults(即 Info.plist 级别的轻量偏好存储)的全部键值并打印,常用于发现 App 在用户默认里缓存的配置、开关、上次登录态等。命令组前缀为 ios nsuserdefaults ...。

模块概览 ​

项目值
文件路径objection/commands/ios/nsuserdefaults.py
Agent 实现agent/src/ios/nsuserdefaults.ts
命令组ios nsuserdefaults ...
依赖objection.state.connection、objection.utils.output、click

解决的问题 ​

  • App 把功能开关、灰度配置、调试标志放在 NSUserDefaults,需要快速读取而非整机取证。
  • Agent 流程中以 JSON 拿到完整字典。
  • 这是只读操作,不会修改 App 状态。

命令清单 ​

命令函数说明
ios nsuserdefaults getget()读取并打印 NSUserDefaults 全部键值

实现原理 ​

Python 层极简:调用 ios_nsuser_defaults_get() 拿到字典,JSON 模式直接作为 CommandResult 的 result 返回,非 JSON 模式用 click.secho(defaults, bold=True) 打印。无参数解析、无表格渲染。

get() — 读取偏好 ​

源码:objection/commands/ios/nsuserdefaults.py:9

python
# objection/commands/ios/nsuserdefaults.py:18-19
api = state_connection.get_api()
defaults = api.ios_nsuser_defaults_get()

JSON 模式直接把 defaults 作为结果体(objection/commands/ios/nsuserdefaults.py:21-25)。

JSON 模式行为 ​

返回 CommandResult(result=defaults),命令名 ios nsuserdefaults get。注意 result 直接是 defaults 字典本身,而非包在某个键下——消费方需按字典解析。非 JSON 模式返回 None。

源码索引 ​

符号位置
getobjection/commands/ios/nsuserdefaults.py:9

相关文档 ​

基于 GPL-3.0-or-later 许可发布