拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Lively 隐私政策深度解读:本地数据收集边界、窗口信息用途与日志机制

Lively 隐私政策深度解读:本地数据收集边界、窗口信息用途与日志机制
  • 桌面应用
  • 音视频

【免费下载链接】lively

Free and open-source software that allows users to set animated desktop wallpapers and screensavers powered by WinUI 3.

项目地址:https://gitcode.com/gh_mirrors/li/lively
点击查看免费下载

Lively 是一款基于 WinUI 3 的开源动态壁纸与屏幕保护程序(仓库目录为src/Lively),其官方隐私政策(PRIVACY.md)以极其简洁的方式承诺"不收集、不存储、不分享"任何个人信息。本文以该隐私政策为骨架,结合仓库源码逐一拆解其中的每一条数据声明,说明"窗口标题 / 窗口类名 / 进程名称"这三类数据在壁纸暂停播放监测中的真实用途,并解释本地日志文件(Nlog 配置)的生成位置与提交机制。读完本文,你将能准确理解 Lively 的数据处理边界,知道日志文件在系统中的存放路径与归档规则,并明确 Microsoft Store 版本与普通版本在崩溃遥测上的差异。

一、核心承诺:不收集、不存储、不分享个人数据

隐私政策开门见山,用三个"不"划定了最基本的数据处理边界:

  • 不收集或使用任何个人信息(Collect or use any personal information);
  • 不存储任何个人数据(Store any personal data);
  • 不向第三方分享(Share it to third parties)。

也就是说,Lively 本身不存在账号体系、不采集用户身份信息、不向任何服务器上报用户行为。需要特别说明的是,仓库的代码也印证了这一点:Lively 的主程序(src/Lively/Lively)是一个纯本地桌面应用,其 IPC 通信走的是本地管道(src/Lively/Lively.Common/Helpers/IPC/PipeClient.cs),与外部服务的交互仅发生在"壁纸在线图库浏览""应用更新检查"等用户主动触发的场景,且不涉及将本机窗口信息外传。

二、正常运行需要的数据:窗口标题、窗口类名、进程名称

隐私政策指出,为了让应用正常运作,Lively可能会收集以下三类数据:

数据项说明
打开窗口的标题(The title of opened windows)通过 Win32GetWindowText系列 API 读取的顶层窗口文本
打开窗口的类名(The class of opened windows)通过GetClassName读取的窗口类标识
拥有窗口的进程名称(The name of the processes that have open windows)通过GetWindowThreadProcessId结合进程查询获得

政策同时强调:这些数据仅用于应用功能的正常运行,永远不会被发送到网络。结合源码,可以清楚看到这三类数据在 Lively 中的具体落点——它们全部服务于壁纸播放的暂停/恢复监测逻辑。

2.1 前台窗口监测:进程名与窗口标题的用途

Lively 的核心功能之一是"当某个程序全屏或获得焦点时,自动暂停壁纸播放",对应实现位于 Playback.cs。其监测流程为:

  1. 通过NativeMethods.GetForegroundWindow()拿到当前前台窗口句柄(NativeMethods.cs);
  2. 通过GetWindowThreadProcessId(hwnd, out int pid)反查该窗口所属进程的 PID,再用Process.GetProcessById(pid)得到进程名;
  3. 将进程名与用户设置的"暂停规则应用"列表(userSettings.AppRules)比对,命中则触发PauseWallpapers()(见 Playback.cs)。

也就是说,进程名称被用来识别"哪个程序正在前台",从而决定是否暂停壁纸,而不是用来追踪用户行踪。

2.2 可见窗口枚举:窗口标题与类名的用途

在"所有窗口覆盖监测"与"网格覆盖监测"模式下,Lively 会枚举系统全部可见顶层窗口,对应工具类为 WindowUtil.cs:

  • 通过EnumWindows枚举顶层窗口(WindowUtil.cs);
  • 通过GetWindowTextLength(hwnd) != 0判断窗口是否有标题文本,用于过滤掉无标题的系统辅助窗口(同文件IsVisibleTopLevelWindows);
  • 通过GetClassName读取窗口类名,与 WindowClassExclusions.cs 中定义的桌面类名单比对,识别并排除 WorkerW、Progman、Shell_TrayWnd(任务栏)、MultitaskingViewFrame(Alt+Tab 界面)等桌面/系统 UI 窗口,避免把桌面本身误判为"被窗口覆盖";
  • 最终通过窗口矩形与显示器工作区的相交面积占比(IsWindowCoveringTarget)判断壁纸是否该暂停。

可以看到,窗口标题在这里只是"窗口是否有效"的判据,窗口类名则用于区分"普通应用窗口"与"桌面系统组件",两者都是纯粹的本地算法输入。

2.3 锁屏与远程会话判断:进程名的又一用途

Playback类还通过GetForegroundWindow+GetWindowThreadProcessId检查前台进程是否为LockApp(Windows 锁屏应用),从而判断系统是否处于锁屏状态(Playback.cs);同时订阅SystemEvents.SessionSwitch事件处理锁定、解锁、远程连接/断开等会话切换(Playback.cs)。这些判断同样只发生在本地,用于决定何时暂停/恢复壁纸。

三、本地日志文件:自愿提交,绝不自动上传

隐私政策明确说明:系统会在主机本地创建一个日志文件,该文件用于用户自愿、可选地提交给开发者以帮助诊断问题,不会被上传到任何地方。

日志机制的实际配置位于 Nlog.config,关键参数如下:

配置项值含义
fileName${specialfolder:LocalApplicationData}/Lively Wallpaper/logs/${date:format=yyyyMMdd_HHmmss}.txt日志存放在 Windows 用户本地应用数据目录(即%LOCALAPPDATA%\Lively Wallpaper\logs\),文件名带创建时间戳(yyyyMMdd_HHmmss)
maxArchiveFiles4最多保留 4 个归档日志文件
archiveAboveSize50000000(50 MB)日志超过 50 MB 时触发归档滚动
writeTologfileDebug 级别及以上消息写入文件

从规则看,Debug级别以上日志会写入文件,Info级别同步输出到控制台,Trace级别输出到调试器(Nlog.config)。日志内容以运行诊断信息(如播放策略切换、会话状态变化等,参见 Playback.cs 中的Logger.Info调用)为主。普通用户无需干预;当需要向开发者反馈问题时,可在%LOCALAPPDATA%\Lively Wallpaper\logs\下取到带时间戳的.txt文件后自行附加提交,整个流程不经过任何自动上传通道。

四、Microsoft Store 版本专属:崩溃遥测的范围界定

隐私政策特别强调,以下内容仅适用于通过 Microsoft Store 获取应用的用户,且仅在应用崩溃时生效——内置的 Store 遥测功能可能会向开发者发送匿名信息:

  • 崩溃的堆栈跟踪(Stack trace of the crash);
  • 系统规格(System specifications);
  • 系统上运行的进程列表(List of processes running on the system);
  • 应用进程的内存转储(Memory dump of the application process),可能包含运行所需收集的数据(即上文提到的窗口标题、类名、进程名等)。

政策同时承诺:这些信息仅用于调试,绝不会与第三方共享。需要强调的是,这一小节与普通版本(如直接从仓库构建、或通过非 Store 渠道分发)无关——普通版本的崩溃信息同样只落在本地日志中。从仓库结构看,Store 遥测属于微软平台侧的机制,未在应用源码中体现。

五、第三方链接与外部站点

隐私政策指出:应用/服务中可能包含指向第三方站点的链接,点击后将离开本服务;这些外部站点不由开发者运营,开发者无法控制其内容与隐私实践,因此强烈建议用户自行阅读目标站点的隐私政策。这与 Lively 的在线壁纸图库、外部更新源等入口的存在一致,属于任何联网软件都需声明的通用边界条款,不涉及本应用自身的数据处理行为。

六、政策变更与联系方式

  • 变更通知:开发者可能不时更新本隐私政策,更新会直接发布在本页面,建议用户定期查看;
  • 最后更新日期:2021-02-10;
  • 联系方式:如有疑问,可在项目的 Issues 区提出问题(详见 PRIVACY.md);
  • 脚注:关于本地日志文件的检索方式,原政策指向了项目 Wiki 的 Common Problems 页面;结合 Nlog.config 可直接确认实际路径为%LOCALAPPDATA%\Lively Wallpaper\logs\。

结语:一份"最小必要"的本地数据处理声明

综观整份隐私政策与对应源码,Lively 的数据模型可以概括为三点:不采集身份信息、不上传任何窗口数据、日志仅本地留痕。窗口标题、类名与进程名这三类数据虽然在"窗口监测暂停播放"这一核心功能中不可避免地被读取,但它们在代码层面只作为本地算法判据(窗口有效性过滤、桌面窗口排除、前台进程比对)存在,不构成隐私风险。对于从 Microsoft Store 安装的用户,崩溃遥测的匿名化范围与用途也有明确界定。对关注隐私的桌面壁纸软件用户而言,这份政策与源码实现是相互印证、可审计的。

  • 桌面应用
  • 音视频

【免费下载链接】lively

Free and open-source software that allows users to set animated desktop wallpapers and screensavers powered by WinUI 3.

项目地址:https://gitcode.com/gh_mirrors/li/lively
点击查看免费下载

相关推荐

上一篇:CANN ops-transformer flash_attn_grad 反向算子详解:Flash Attention 梯度计算与 TorchNPU 调用实战
下一篇:Sails 模型设置(Model Settings)完全指南:从属性定义到数据库迁移策略

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表