跳到主要内容

清理模块

清理模块 - clear​

弃用

本模块中的函数调用耗时可能较长,阻塞所有协程且不支持中断。推荐使用其他第三方工具的清理功能来代替。

清理某个或某组钥匙串信息 (clear.keychain)​

声明​

操作成败 = clear.keychain(反向域名)

参数及返回值​

  • 反向域名
    • 文本型,通常可传入 App 开发商的反向域名(Reverse Domain),例如 "com.cardify",切勿乱传参数
  • 操作成败 布尔型

说明​

清理某个 App 或 App 分组的钥匙串信息,若不懂请直接用 clear.all_keychain。

示例​

clear.keychain
clear.keychain("com.cardify")  -- 清理掉与 com.cardify 相关的钥匙串信息

清理所有 App 的钥匙串信息 (clear.all_keychain)​

声明​

操作成败 = clear.all_keychain()

参数及返回值​

  • 操作成败 布尔型
警告

调用后所有第三方 App 的钥匙串信息都会被清除。

撤销某个 App 的隐私权限 (clear.privileges)​

声明​

操作成败 = clear.privileges(标识符)

参数及返回值​

说明​

撤销 设置 -> 隐私与安全性 中某个 App 的各类隐私权限。App 重新启动后,将无法再访问相关数据,可能会弹出提示框询问用户是否允许访问。

撤销所有 App 的隐私权限 (clear.all_privileges)​

声明​

操作成败 = clear.all_privileges()

参数及返回值​

  • 操作成败 布尔型
警告

调用后所有 App(包括系统 App)的各类隐私权限都会被撤销。

清理剪贴板 (clear.pasteboard)​

声明​

clear.pasteboard()

说明​

部分追踪信息可能会存在剪贴板中。

限制

可能需要重启 App 才能继续使用剪贴板服务。

清理浏览器 Cookies (clear.cookies)​

声明​

clear.cookies()

说明​

部分追踪信息可能会存在浏览器 Cookies 中,仅对 Safari 生效。

清理系统缓存 (clear.caches)​

声明​

操作成败 = clear.caches()

参数及返回值​

  • 操作成败 布尔型
备注

此函数调用将强行重启服务 configd 和 cfprefsd。

示例​

clear.caches
clear.caches()
--
clear.caches { uicache = true } -- 同时重建图标缓存

清除相册中所有本地照片 (clear.all_photos)​

声明​

clear.all_photos()

说明​

清除相册中所有本地照片,不会影响 iCloud 照片流,清理期间所有线程都阻塞。

性能

耗时可能会非常长。

清理某个 App 的存档数据 (clear.app_data)​

声明​

操作成败 = clear.app_data(标识符)

参数及返回值​

说明​

清理 App 存档,清理期间所有线程都阻塞。

性能

耗时可能会非常长。

示例​

clear.app_data
clear.app_data("com.cardify.tinder")

清理 IDFA/V (clear.idfav)​

声明​

操作成败, 旧IDFAV表 = clear.idfav(新IDFA[, 新IDFAV表])

参数及返回值​

  • 新IDFA
    • 文本型,RFC 4122 形式的 IDFA 文本
  • 新IDFAV表
    • 关联表,可选,传入新的 IDFA/V 信息,若不传入则使用 新IDFA
  • 操作成败 布尔型
  • 旧IDFAV表
    • 关联表,返回 原先 的 IDFA/V 信息。操作失败则返回 nil

说明​

重置系统 IDFA 和 IDFV 等标识信息,即 IDFA/V表。

信息

传入的 新IDFA 为 "READ" 时只进行读取,不进行清理和修改。

备注

你不必关心 IDFA/V表 的具体格式。只需要将原先调用的返回值 旧IDFAV表 传入此次调用的参数 新IDFAV表 即可恢复系统的 IDFA 和 IDFV 等标识信息到原先的状态。
IDFA/V表 可以被 plist 模块安全序列化。

示例 1​

clear.idfav.read
ok, tab = clear.idfav("READ")
--
sys.alert(ok and tab.LSAdvertiserIdentifier or "读取失败")

示例 2​

clear.idfav.reset
-- 读取原先的 IDFA/V 表并备份
ok, tab1 = clear.idfav("READ")
if ok then
plist.write("lsd.plist", tab1)
sys.alert(ok and "备份成功" or "备份失败")
end
--
-- 清理 IDFA/V 表
ok, tab2 = clear.idfav("00000000-0000-0000-0000-000000000000")
assert(tab1.LSAdvertiserIdentifier == tab2.LSAdvertiserIdentifier)
--
-- 读取备份的 IDFA/V 表并恢复
oldtab = plist.read("lsd.plist")
if oldtab then
ok, tab3 = clear.idfav(oldtab.LSAdvertiserIdentifier, oldtab)
sys.alert(ok and "恢复成功" or "恢复失败")
end

清理地理位置缓存 (clear.location_caches)​

声明​

操作成败 = clear.location_caches()

参数及返回值​

  • 操作成败 布尔型
备注

此函数调用将强行重启服务 locationd。

清理推送通知缓存 (clear.push_notifications)​

声明​

操作成败 = clear.push_notifications(标识符)

参数及返回值​

信息

标识符 传入 "*" 表示退出所有运行中的 App。

备注

此函数调用将强行重启服务 apsd。

清除 Safari 历史记录和网站数据 (clear.safari)​

声明​

操作成败 = clear.safari()

参数及返回值​

  • 操作成败 布尔型
信息
  • 此函数调用不会清除 Safari 中的书签。
  • 此函数调用效果等同于在 设置 -> Safari 中选择 清除历史记录和网站数据。