iOS独立开发|分析iOS15隐私访问记录:原理

「这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战」

Hi

  • Wechat: RyukieW
  • 微信公众号:LabLawliet
  • 技术文章归档
  • Github
我的个人项目 扫雷Elic 无尽天梯 梦见账本 隐私访问记录
类型 游戏 财务 工具
AppStore Elic Umemi 隐私访问记录

更多专栏:

Lawlieios14.4.1更新了什么t的独立开发碎碎念

Lawliet的iOS游园会

Lawliet的iOS底层实验室

Lawliet的iOS逆向实验室

Lawliet的刷题小本本

前言

iOS15 发布后,系统ios15.4值得更新吗记录App活动 的功能和 隐私实例化对象是什么意思洞见 也是火了一小把。当然我也实例化对象是什么意思抱着学习SwiftUI(蹭热度)的态度,用 SwiftUI 速成了一个分析工具:隐私访问记录

这里接口和抽象类的区别需要结合 Actio接口和抽象类的区别nExtension 来进行日志文件导入,其中我也有遇到一些问题,后面会再输出一篇文章和大家分实例化享。

概述

iOS 15.2iPadOS 15.ios15.4正式版2watch接口crc错误计数OS 8.3 或更实例化高版本中,用户可以查看应用程实例化是什么意思ios15.4正式版的隐私访问报告:

  • 访问某些类型的用户数据,如照片联系人
  • 访问敏感的设备资源,如摄像头麦克风swift翻译
  • 联系人网络域,包括用户从应用接口英文程序中访问的网站swift是什么(仅限 iOSiPadOS)。

检查应用程序为此摘要提供的数据,以了解报接口是什么告向用户显示的内容,并接口文档确保应用程序按预期运行。

开始记录应用活动

用户可以通过选择隐私>ios15.4出大事录App活动,然后点击“打开记录App活动,从设置应用在其设备上启用应用活动记录。

系统会记录最近7天的应用活动记录——仅存储在用户的设备上。 在自己的设备github官网上打开此功能后,使用应用程序对其数据、资源和网络访问进接口和抽象类的区别行全面测试。 请务必使用该应用程序足够长的时间以允许任何延迟访问。 多长时间取决于应用程序的行为。

获取应用活动ios下载数据

运行应用一段时间后,可以通过点击应用隐私报告屏幕上的共享按钮来获取有关应用活动的报告:

iOS独立开发|分析iOS15隐私访问记录:原理

iOS独立开发|分析iOS15隐私访问记录:原理

iOS独立开发|分析iOS15隐私访问记录:原理

将报告保存到可以检查的位置。 例如,可以使用 AirDrop 将其发送到附近的 Mac。

该报告使用换行符分隔的 JSON 格式 (NDJSON),可以使用任何文本编辑器打开该格式,并包含由换行符分隔的 JSON 字典集github中文官网网页合。 类型键的值设置为 access 的字典提供有关资源访问的信息,而类型键的值设置为 networkActivity 的字典提供有关github开放私库网络活动的信息:

{..., "type":"access", ...}
{..., "type":"access", ...}
...
{..., "type":"networkActivity", ...}
{..., "type":"networkActivity", ...}
...

检查资源访问数据

文件中的每个访问字典都代表特定应用程序访问的开始或结束。

下面显接口英文示了此字典的示例,其中添加了空格、换行符和注释以提高可读性:

{
  "accessor" : { 
    "identifier" : "com.example.calendar", // The app accessing the resource.
    "identifierType" : "bundleID"
  },
  "broadcaster": { // Only present for screen recording.
    "identifier" : "com.apple.springboard", // The app broadcasting the screen.
    "identifierType" : "bundleID"
  },
  "category" : "screenRecording", // The accessed resource.
  "identifier" : "8A4054BB-1810-4F8B-8163-483409E2D35C", // A unique identifier.
  "kind" : "intervalBegin", // Whether this the beginning or end of an interval.
  "timeStamp" : "2021-08-06T15:46:13.532-07:00", // The time of the access.
  "type" : "access" // This is resource access data.
}

要查找应用程序进行的访问,请查找具有访问器键的所有访问字典,该访问器键的字典值包含应用程序的包标识符。 使用 category 字段确定应用访问了哪些资源,并使用 timeStamp 字段将访问与生成访问的活动相关联。 可能会遇到以下任何类别值:

Categorygithub直播平台永久回家 Resource
camera The device’s camera
contacts The user’s contacts
location Locatioswift代码n data
mediaLibrary The user’s media library
microphone The device’s microphone
photos The user’s photo library
screenRecording Screen sharing

每次资源访问都发生在一个时间间github下载隔内,并生成一对访问字典以指示:

  • 区间的开始,kind 字段设置为 intervalBegin ,如上swift全称例所示。
  • 间隔结束,kind 字段设置为 intervalEnd

绑定访问间隔的两个字典具有相同的标识符键值。

对于 screenRe实例化对象是什么意思cordi实例化对象是什么意思ng 类别,字典还包含一个广播键,其值指示应用程序将屏幕广播到访问器,通常是 Springboard

检查网络活动

iOSiPadOgithub官网登陆入口S 导出的文件包含另一组字典,这些字典的类型键和实例化一个对象可以使用什么命令值设置为 networkios系统Activity 以报告网络访问。 每个字典都描述了由指定应用程序与特定域建立的连接。 下面显示了这个字类的实例化典的一个例子,为了清楚起见swift翻译,再github中文官网网页次添加了空github官网登陆入口格和换行符:

{
  "domain" : "api.example.com",
  "firstTimeStamp" : "2021-06-06T16:15:48Z",
  "context" : "",
  "timeStamp" : "2021-06-06T16:15:59Z",
  "domainType" : 2,
  "initiatedType" : "AppInitiated",
  "hits" : 10,
  "type" : "networkActivity",
  "domainOwner" : "",
  "bundleID" : "com.example.App1"
}

字典包括以下描述网络活动的关键字github开放私库

  • domain
    • 域名
  • firstTimeStamp
    • 首次访问的swift是什么意思啊时间
  • context
    • 建立连接的网站(如果github中文官网网页适用)。
  • timeStamp
    • 最近访问的时间
  • domainType
    • 当值为 1 时,域已被识别为ios15可能跨应用程序和站点收集信息,并可能分析用户。
    • 当值为 2 表示尚未识别该域。
  • initiatedType
    • 是应用(AppInitiated)还是用户(NonAppInitiated)发起了连github直播平台永久回家接。
  • hits
    • swift全称用在过去 7 天内联系域的次数。
  • type
    • networkActivity 的关联值表示该字典描述网络活ios15.4正式版动数据。
  • domainOwner
    • 域的所有者(如果适用)。
  • bundleID
    • bundleID

在决定如何设置初始类型键的值时,系统会将来自应用程序中的 Web 浏览器的连接(例如实例化 SFSafariViewController 时)归因于用户。否则,系统会将应用与 URL 加载系ios下载统或网络框架等低级接口建立的任何swift代码查询连接视为应用启动。这包括从服务器加接口英文载以直接响应用户操作的用户数据。

当通过github打不开设置一个属性进行一般网络请求时,可以更改此键的关联值。比如创建一个URLswift国际结算系统Request的时候,设置attribution属性;使用 NWCswift代码查询onnection 实例时,调用 nw_pa接口文档rameters_github永久回家地址set_attribution(:🙂 函数。但是,仅更改用户直接完全控制的连接的归因,例如当用户输入 URL 或swift代码点击或单击他们可以阅读的 URL 时。有关网络归因的更多信息,请参阅指明网络活动的来ios模拟器源。

考虑应用程序是否需要更改

如果发现应用建立了无法识别的网络连接,或访问了不该访问的资源,请检查应用。 仔细检查集成的任何第三方框架或模块,因为它们可能会产生意外连接。

发表评论

提供最优质的资源集合

立即查看 了解详情