UIPasteboard 在哪里存储数据?
Where does UIPasteboard store data?
如果设置了 UIPasteboard 对象 'persistent',UIPasteboard 的项目似乎存储在数据库或类似的东西中。那么有什么提示可以让我找到数据存储在系统中的位置吗?
越狱。
提前致谢。
粘贴板由位于 /System/Library/Frameworks/UIKit.framework/Support/pasteboardd
的 com.apple.UIKit.pasteboardd
守护程序管理。它不会一直 运行 ,只有当有人真正需要它时,即使用 copy/paste.
它确实使用了持久存储 - /var/mobile/Library/Caches/com.apple.UIKit.pboard/pasteboardDB
二进制 属性 列表。即使您 SIGKILL 守护进程,它也会从数据库中恢复粘贴板内容。
pasteboardDB
根对象是 NSArray
。每个元素都是一个绑定到特定包 ID 和名称的 NSDictionary
对象。例如,一般 copy/paste 使用共享存储 - 字典有 bundle->com.apple.UIKit.pboard
和 name->com.apple.UIKit.pboard.general
键。在 items
键下有一个粘贴板项目数组。 Yoy 可以尝试复制一些文本,您会发现它作为未加密的 UTF8 字符串存储为 NSData
对象。
如果设置了 UIPasteboard 对象 'persistent',UIPasteboard 的项目似乎存储在数据库或类似的东西中。那么有什么提示可以让我找到数据存储在系统中的位置吗? 越狱。 提前致谢。
粘贴板由位于 /System/Library/Frameworks/UIKit.framework/Support/pasteboardd
的 com.apple.UIKit.pasteboardd
守护程序管理。它不会一直 运行 ,只有当有人真正需要它时,即使用 copy/paste.
它确实使用了持久存储 - /var/mobile/Library/Caches/com.apple.UIKit.pboard/pasteboardDB
二进制 属性 列表。即使您 SIGKILL 守护进程,它也会从数据库中恢复粘贴板内容。
pasteboardDB
根对象是 NSArray
。每个元素都是一个绑定到特定包 ID 和名称的 NSDictionary
对象。例如,一般 copy/paste 使用共享存储 - 字典有 bundle->com.apple.UIKit.pboard
和 name->com.apple.UIKit.pboard.general
键。在 items
键下有一个粘贴板项目数组。 Yoy 可以尝试复制一些文本,您会发现它作为未加密的 UTF8 字符串存储为 NSData
对象。