Notepads 隐私政策全解析:数据采集范围、Telemetry 实现与用户权益指南
2026/9/24 16:08:42 网站建设 项目流程
  • 桌面应用

【免费下载链接】Notepads

A modern, lightweight text editor with a minimalist design.

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

导读

本文基于 Notepads 项目根目录的 PRIVACY.md 隐私政策文档,结合仓库内 AnalyticsService.cs、App.xaml.cs、Notepads.csproj 等源码,从政策条文、代码实现、用户权益三个层面,完整梳理 Notepads 采集哪些数据、为什么采集、如何采集、以及用户拥有哪些选择权。读完本文,你不仅能逐条读懂官方隐私政策,还能在源码层面验证每一条声明的真实性,掌握在 Windows 上管理 Notepads 诊断数据的具体方法。

一、政策文档定位与适用范围

Notepads 是一个采用极简设计的现代轻量级文本编辑器(A modern, lightweight text editor with a minimalist design)。它的隐私政策文档 PRIVACY.md 面向所有 Notepads 用户,说明三个核心问题:

  1. Notepads 收集哪些信息
  2. Notepads 如何使用这些信息
  3. 用户拥有哪些选择

政策明确指出,Notepads 由开发者 Jiaqi (0x7c13) Liu 在 GitHub Notepads 社区协助下作为免费应用发布,免费提供且按"原样"(as is)提供。一旦用户选择使用该应用,即表示同意本政策所述的收集与使用方式。收集的数据仅用于提供和改进应用服务,除本政策描述的情形外,不会与任何人共享用户信息或使用数据。

二、信息收集与使用:两类遥测数据的边界

2.1 收集目标:改进体验与定位错误

政策明确:为提供更好的使用体验,Notepads 会收集部分使用数据(usage data)与错误信息(errors),目的仅有两个:

  • 识别并修复问题(identifying issues);
  • 改进用户体验(improving the user experience)。

2.2 不收集个人信息:无第三方身份识别服务

政策作出了一个关键承诺:Notepads 不使用任何可能收集可用于识别你身份信息的第三方服务(The app does NOT use third party services that may collect information used to identify you)。这意味着应用不接入广告 SDK、不接行为追踪网络、不采集可定位到具体个人的标识符。

2.3 采集服务的两次技术演进

政策记录了遥测基础设施的两个阶段,源码与项目文件完整印证了这一演进:

阶段时间节点遥测通道仓库证据
第一阶段历史版本(≤ v1.5.5.x)Visual Studio App Center政策中提及 issue #334 记录了当时引入 App Center 的讨论
第二阶段v1.5.6.0 及以后Microsoft Store Services SDK(Store Engagement Framework)Notepads.csproj 引用Microsoft.Services.Store.Engagement10.2307.3001;Notepads.csproj 声明Microsoft Engagement FrameworkSDK

政策明确提示:Visual Studio App Center 计划于 2025 年 3 月 31 日停运(retirement),因此 Notepads v1.5.6.0+ 改用 Microsoft Store Services SDK 记录非隐私使用数据与错误(non-privacy usage data and errors)——"非隐私"三个字与 2.2 节"不收集身份识别信息"的承诺形成呼应。

三、源码级验证:遥测如何落地

3.1 统一入口:AnalyticsService

所有遥测行为收敛在唯一的静态服务类 AnalyticsService.cs 中,对外暴露两个方法:

public static void TrackEvent(string eventName, IDictionary<string, string> properties = null) public static void TrackError(Exception exception, IDictionary<string, string> properties = null)

实现要点:

  • 在静态构造函数中通过StoreServicesCustomEventLogger.GetDefault()获取 Store Engagement 日志记录器,并包裹在try/catch中——初始化失败时静默降级(注释为 "best effort"),遥测故障不会影响编辑器主功能;
  • TrackEvent调用Logger?.Log(eventName)记录事件名;
  • TrackError"Error - {exception.Message} - {exception.StackTrace}"拼入日志,附带异常消息与堆栈;
  • 所有调用同样以try/catch包裹并注释 "best effort",保证遥测链路任何异常都不会向用户抛出。

3.2 启动阶段的采集面

应用每次启动时,App.xaml.cs 会组装两个字典并通过AnalyticsService.TrackEvent上报:

AppLaunch_Settings(启动配置):OSArchitectureOSVersionUseWindowsThemeThemeModeUseWindowsAccentColorAppBackgroundTintOpacityShowStatusBarIsSessionSnapshotEnabledIsShadowWindowIsGameBarWidgetAlwaysOpenNewWindowIsHighlightMisspelledWordsEnabledIsSmartCopyEnabledExitWhenLastTabClosed

AppLaunch_Editor_Settings(编辑器配置):EditorDefaultLineEndingEditorDefaultEncodingEditorDefaultTabIndentsEditorDefaultDecodingEditorFontFamilyEditorFontSizeEditorFontStyleEditorFontWeightEditorDefaultSearchEngineDisplayLineHighlighterDisplayLineNumbers

可以明显看出:这些都是应用自身的功能配置与运行环境信息(主题、字体、编码、换行符、系统版本等),不包含文件内容、文件路径正文或任何个人身份标识,与政策"仅收集基础使用数据与最小遥测"的表述一致。

3.3 全仓库的埋点分布

AnalyticsService.TrackEvent / TrackError调用点的检索显示,遥测已覆盖应用生命周期的主要风险面,典型事件包括:

  • 异常与崩溃OnUnhandledExceptionOnUnobservedExceptionAppFailedToActivateFailedToLoadPage(见 App.xaml.cs);
  • 会话与文件恢复失败SessionManager_FailedToRecoverTextEditorSessionManager_FailedToSaveBackupFileSessionManager_FailedToDeleteOrphanedBackupFiles(见 SessionManager.cs);
  • 近期文件(MRU)异常MRUService_FailedToAddStorageItemToMRUMRUService_FailedToGetMRU(见 MRUService.cs);
  • UI 功能开关MarkdownContentPreview_OpenedSideBySideDiffViewer_OpenedFileRenameDialogOpened(附带FileExists布尔值,见 FileRenameDialog.cs);
  • 文本操作失败TextEditorCore_FailedToDuplicateTextTextEditorCore_FailedToJoinText
  • 外观渲染失败FailedToBuildAcrylicBrushInternalFailedToLoadImageBrushFailedToCreateAcrylicBrush(见 BrushUtility.cs)。

从这些事件名与属性可以推断:Notepads 的遥测策略是**"只采集能帮助复现与定位问题的技术上下文"——例如功能开关状态、异常消息、堆栈、系统版本,而不涉及用户编辑的文档正文内容**。

3.4 本地日志:LoggingService

除云侧遥测外,Notepads 还有一套纯本地的文件日志系统 LoggingService.cs,与遥测相互独立:

  • 日志写入应用本地Logs文件夹下以 UTC 时间命名的.log文件(见 FileSystemUtility 的GetOrCreateAppFolderAsync("Logs")调用);
  • 采用ConcurrentQueue+SemaphoreSlim的异步批量落盘机制,每 10 秒尝试冲刷一次消息队列;
  • 记录格式为{timestamp} [{level}] {message},支持 Info / Warning / Error 三个级别;
  • 这些日志文件留在用户设备本地,属于可自行查看与删除的调试材料。

四、数据安全声明

政策在 Data Security(数据安全)一节给出审慎表述:Notepads 重视用户信任,会采用**商业上可接受的方式(commercially acceptable means)**保护个人信息,但同时明确提醒:互联网传输或电子存储没有任何方式能做到 100% 安全可靠,应用无法保证信息的绝对安全

这是一段不夸大、不承诺绝对安全的行业标准表述,与 2.2 节"最小化采集"的策略共同构成 Notepads 隐私设计的两根支柱:能少采就少采,采了就尽力保护

五、政策更新与用户知情权

政策声明:

  • 政策可能不时更新,更新后的新政策会直接发布在本页面,发布后立即生效(effective immediately)
  • 建议用户定期回看本页面以了解任何变更。

结合 3.2 节的启动埋点可知,应用启动时上报的AppLaunch_Settings中包含OSVersion等环境信息,用户可以通过 Windows 系统设置中的应用诊断数据开关控制这类数据的系统级传输;但就 Notepads 应用本身而言,官方策略是"原样使用即表示同意",用户如需停止遥测,最彻底的方式是卸载应用或禁用系统级诊断数据上报。

六、联系与反馈渠道

对隐私政策有任何疑问或建议的用户,可直接联系项目维护方,官方联系邮箱为notepadsapp@outlook.com

七、总结:政策与实现的一致性核对

将政策条文与仓库源码对照,可得到如下一致性结论:

政策声明源码印证一致性
仅收集基础使用数据与最小遥测App.xaml.cs 的启动配置事件仅含系统/功能配置
不使用可识别身份的第三方服务项目仅依赖Microsoft.Services.Store.Engagement与本地 LoggingService.cs
v1.5.6.0+ 改用 Store Services SDKNotepads.csproj 引用 Store Engagement 包
数据用于识别与改进问题TrackError记录异常消息与堆栈;各模块以*_FailedTo*命名埋点
无法保证绝对安全Data Security 章节的审慎表述

对于关心数据隐私的 Windows 用户,可以从三个层面管理风险:阅读并跟踪 PRIVACY.md 的更新;在 Windows 的"隐私与安全性 → 诊断和反馈"中控制系统级诊断数据传输;如需彻底停用,可卸载 Notepads。总体而言,Notepads 的隐私设计遵循"最小化采集 + 尽力保护 + 透明披露"的路线,本文提供的源码证据可作为你评估是否信任该应用时的第一手参考。

  • 桌面应用

【免费下载链接】Notepads

A modern, lightweight text editor with a minimalist design.

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

相关推荐

上一篇:VR-Reversal:零门槛转换3D VR视频,在普通设备上享受自由视角探索
下一篇:免费在线HDRI转立方体贴图工具:让3D场景光照瞬间真实的终极方案

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询