目录

前言 1.1

概览 1.2

Frida逆向实例 1.3

代码段 1.3.1

Frida官网 1.3.1.1

网上别人的案例 1.3.1.2

frida 1.3.2

iOS的ObjC 1.3.2.1

ObjC的Object 1.3.2.1.1

$methods和$ownMethods 1.3.2.1.1.1

Interceptor=hook函数 1.3.2.1.2

单个类的单个函数 1.3.2.1.2.1

单个类的所有函数 1.3.2.1.2.2

所有类的所有函数 1.3.2.1.2.3

ApiResolver 1.3.2.1.3

Stalker 1.3.2.1.4

___lldb_unnamed_symbol2575$$akd 1.3.2.1.4.1

Android 1.3.2.2

demo示例 1.3.2.2.1

单个类 1.3.2.2.2

单个类的单个函数 1.3.2.2.2.1

hookForceStop 1.3.2.2.3

frida-trace 1.3.3

iOS的ObjC 1.3.3.1

akd中Apple账号验证过程 1.3.3.1.1

Preferences中Apple账号登录全过程 1.3.3.1.2

Android 1.3.3.2

commands 1.3.3.2.1

安卓进程system_server 1.3.3.2.2

Frida工具函数 1.4

通用js函数 1.4.1

小的代码段 1.4.1.1

Frida的js通用函数 1.4.2

iOS函数 1.4.3

iOS函数调用堆栈 1.4.3.1

Android函数 1.4.4

Java通用 1.4.4.1

类的处理 1.4.4.1.1

函数和属性 1.4.4.1.2

函数调用堆栈 1.4.4.1.3

Android类 1.4.4.2

JNI 1.4.4.2.1

C 1.4.4.3

native C 1.4.4.3.1

附录 1.5

参考资料 1.5.1

前言

Frida逆向实例和工具函数

最新版本：v1.4.5

更新时间：20240824

简介

整理Frida逆向期间涉及到的各种实际案例，以及整理出的各种工具类函数。其中Frida的实际使用案例，包括网上别人的实例案例，包括官网的Cdeshare，以及frida和frida-trace。frida中包括iOS的ObjC的各种例子。包括Object对象的methods和ownMethods，以及用Interceptor去hook函数的，单个类的单个函数、单个类的所有函数、所有类的所有函数等。以及ApiResolver的案例以及Stalker的案例，尤其是___lldb_unnamed_symbol2575$$akd的完整代码；接着是frida-trace的实际例子，包括ObjC的akd中Apple账号验证过程、Preferences中Apple账号登录全过程的详细内容。

源码+浏览+下载

本书的各种源码、在线浏览地址、多种格式文件下载如下：

HonKit源码

crifan/frida_re_example_function: Frida逆向实例和工具函数

如何使用此HonKit源码去生成发布为电子书

详见：crifan/honkit_template: demo how to use crifan honkit template and demo

在线浏览

Frida逆向实例和工具函数 book.crifan.org

Frida逆向实例和工具函数 crifan.github.io

离线下载阅读

Frida逆向实例和工具函数 PDF

Frida逆向实例和工具函数 ePub

Frida逆向实例和工具函数 Mobi

版权和用途说明

此电子书教程的全部内容，如无特别说明，均为本人原创。其中部分内容参考自网络，均已备注了出处。如发现有侵权，请通过邮箱联系我 admin 艾特 crifan.com，我会尽快删除。谢谢合作。

各种技术类教程，仅作为学习和研究使用。请勿用于任何非法用途。如有非法用途，均与本人无关。

鸣谢

感谢我的老婆陈雪的包容理解和悉心照料，才使得我crifan有更多精力去专注技术专研和整理归纳出这些电子书和技术教程，特此鸣谢。

其他

作者的其他电子书

本人crifan还写了其他150+本电子书教程，感兴趣可移步至：

crifan/crifan_ebook_readme: Crifan的电子书的使用说明

关于作者

关于作者更多介绍，详见：

关于CrifanLi李茂 – 在路上

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-08-24 11:19:22

概览

概览

Frida逆向期间，涉及到各种各种实际案例，以及整理出各种常用的工具类函数。整理至此，供参考。

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-03-19 09:31:58

Frida逆向实例

Frida逆向实例

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-03-19 09:28:54

代码段

Frida实例之代码段

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-03-19 09:41:12

Frida官网

Frida官网

Frida官网

（Frida作者）oleavr写的，实例代码

oleavr/frida-agent-example: Example Frida agent written in TypeScript

frida-presentations

Frida Codeshare

由于Frida功能太强大，使得用的人很多，出现了很多用法和案例。官网专门做了个代码分享平台，列出了不同人的不用用法供大家参考，叫做：

Frida CodeShare

概述：The Frida CodeShare project is comprised of developers from around the world working together with one goal - push Frida to its limits in new and innovative ways.

列表页面

Frida CodeShare BROWSE CODE

下面列出一些，相对常用的案例：

iOS工具类

Project: iOS Utils

绕过证书校验

Project: iOS SSL Bypass

如何利用Frida codeshare的代码

除了拷贝代码放到自己js文件中之外，还可以直接引用：

直接调用分享的代码：

frida --codeshare <frida_codeshare_url_without_url_prefix> -f <YOUR_BINARY>

举例

ios-utils

frida --codeshare lichao890427/ios-utils -f <YOUR_BINARY>

对应URL是：https://codeshare.frida.re/@lichao890427/ios-utils/

dump-ios

frida --codeshare lichao890427/dump-ios -f YOUR_BINARY

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-03-19 09:42:43

网上别人的案例

网上别人的案例

网上的别人的Frida的使用案例

Frida在iOS平台进行OC函数hook的常用方法 | 8Biiit's Blog

lich4/personal_script

personal_script/Frida_script at master · lich4/personal_script · GitHub

ios_utils

https://github.com/lich4/personal_script/blob/master/Frida_script/ios_utils.js

antijailbreak

https://github.com/lich4/personal_script/blob/master/Frida_script/antijailbreak.js

getdeviceinfo

https://github.com/lich4/personal_script/blob/master/Frida_script/getdeviceinfo.js

ios_dump

https://github.com/lich4/personal_script/blob/master/Frida_script/ios_dump.js

recvfrom

https://github.com/lich4/personal_script/blob/master/Frida_script/recvfrom.js

sendto

https://github.com/lich4/personal_script/blob/master/Frida_script/sendto.js

android_hook_detect

https://github.com/lich4/personal_script/blob/master/Frida_script/android_hook_detect.js

noobpk/frida-ios-hook

frida-ios-hook/frida-scripts

ssl pinning

https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/bypass-ssl-ios13.js

class + method

find

https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/find-all-classes-methods.js

https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/find-all-classes.js

https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/find-app-classes-methods.js

https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/find-app-classes.js

https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/find-specific-method.js

hook

https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/hook-all-methods-of-all-classes-app-only.js

https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/hook-all-methods-of-specific-class.js

https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/hook-specific-method-of-class.js

dump=show

https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/show-all-methods-of-specific-class.js

0xdea/frida-scripts

0xdea/frida-scripts

https://github.com/0xdea/frida-scripts/blob/master/raptor_frida_android_enum.js

https://github.com/0xdea/frida-scripts/blob/master/raptor_frida_android_trace.js

poxyran/misc

用frida实现各种功能

misc/frida-read-process-memory.py at master · poxyran/misc · GitHub

counts the number of basic blocks

misc/count_func_bb.py

enumerate-imports

misc/frida-enumerate-imports.py

enumerate-modules

misc/frida-enumerate-modules.py

heap-trace

misc/frida-heap-trace.py

memory-scan

misc/frida-memory-scan.py

read-process-memory

misc/frida-read-process-memory.py

write-process-memory

misc/frida-write-process-memory.py

frida-stalker-example

misc/frida-stalker-example.py

iddoeldor/frida-snippets

frida-snippets/README.md at master · iddoeldor/frida-snippets · GitHub

Native

Load C/C++ module

One time watchpoint

Socket activity

Intercept open

Execute shell command

List modules

Log SQLite query

Log method arguments

Intercept entire module

Dump memory segments

Memory scan

Stalker

Cpp Demangler

Early hook

Android

Binder transactions

Get system property

Reveal manually registered native symbols

Enumerate loaded classes

Class description

Turn WiFi off

Set proxy

Get IMEI

Hook io InputStream

Android make Toast

Await for specific module to load

Webview URLS

Print all runtime strings & stacktrace

String comparison

Hook JNI by address

Hook constructor

Hook Java reflection

Trace class

Hooking Unity3d

Get Android ID

Change location

Bypass FLAG_SECURE

Shared Preferences update

Hook all method overloads

Register broadcast receiver

Increase step count

File system access hook $ frida --codeshare FrenchYeti/android-file-system-access-hook -f com.example.app --no-pause

How to remove/disable java hooks ? Assign null to the implementation property.

iOS

OS Log

iOS alert box

File access

Observe class

Find application UUID

Extract cookies

Describe class members

Class hierarchy

Hook refelaction

Device properties

Take screenshot

Log SSH commands

Windows

Sublime snippets

Vim snippets

JEB

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-03-19 09:44:25

frida

frida

此处介绍使用frida命令去调试的实际案例，供参考。

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-22 23:31:14

iOS的ObjC

iOS的ObjC

此处贴出用frida去调试各种iOS的OjbC的类和函数的实际案例，供参考。

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-22 23:31:39

ObjC的Object

ObjC的Object

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-22 23:06:27

$methods和$ownMethods

$methods和$ownMethods

NSXPCConnection

对于ObjC的NSXPCConnection的实例对象：

argSelfObj:  <NSXPCConnection: 0x154d09250> connection from pid 46847 on mach service named com.apple.ak.auth.xpc

NSXPCConnection的$methods

代码：

const connMethods = argSelfObj.$methods;
console.log("connMethods=", connMethods);

输出：

connMethods= + geo_createGEODaemonToMapsPushDaemonConnection,+ geo_withMapsPushDaemon:errorHandler:,+ beginTransaction,+ endTransaction,+ _handoffCurrentReplyToQueue:block:,+ currentConnection,+ fromPBCodable:,+ CKSQLiteClassName,+ CA_automaticallyNotifiesObservers:,+ CA_setterForProperty:,+ CA_getterForProperty:,+ CA_encodesPropertyConditionally:type:,+ CA_CAMLPropertyForKey:,+ version,+ load,+ implementsSelector:,+ instancesImplementSelector:,+ setVersion:,+ accessInstanceVariablesDirectly,+ automaticallyNotifiesObserversForKey:,+ _createMutableOrderedSetValueGetterWithContainerClassID:key:,+ cancelPreviousPerformRequestsWithTarget:selector:object:,+ _createMutableArrayValueGetterWithContainerClassID:key:,+ setKeys:triggerChangeNotificationsForDependentKey:,+ _createMutableSetValueGetterWithContainerClassID:key:,+ _createOtherValueGetterWithContainerClassID:key:,+ _createOtherValueSetterWithContainerClassID:key:,+ _createValuePrimitiveGetterWithContainerClassID:key:,+ _createValuePrimitiveSetterWithContainerClassID:key:,+ replacementObjectForPortCoder:,+ cancelPreviousPerformRequestsWithTarget:,+ _createValueGetterWithContainerClassID:key:,+ _createValueSetterWithContainerClassID:key:,+ _shouldAddObservationForwardersForKey:,+ _keysForValuesAffectingValueForKey:,+ classForKeyedUnarchiver,+ keyPathsForValuesAffectingValueForKey:,+ classFallbacksForKeyedArchiver,+ SFSQLiteClassName,+ _copyDescription,+ doesNotRecognizeSelector:,+ __allocWithZone_OA:,+ instanceMethodSignatureForSelector:,+ methodSignatureForSelector:,+ init,+ description,+ dealloc,+ supportsBSXPCSecureCoding,+ bs_isPlistableType,+ bs_dataFromObject:,+ bs_secureObjectFromData:ofClass:,+ bs_secureObjectFromData:ofClasses:,+ bs_objectFromData:,+ bs_decodedFromData:,+ bs_secureDataFromObject:,+ bs_secureDecodedFromData:,+ bs_secureDecodedFromData:withAdditionalClasses:,+ supportsRBSXPCSecureCoding,+ new,+ self,+ allocWithZone:,+ superclass,+ initialize,+ performSelector:withObject:,+ performSelector:withObject:withObject:,+ performSelector:,+ zone,+ autorelease,+ isSubclassOfClass:,+ _isDeallocating,+ isMemberOfClass:,+ allowsWeakReference,+ alloc,+ isEqual:,+ isKindOfClass:,+ retainWeakReference,+ retain,+ retainCount,+ instancesRespondToSelector:,+ hash,+ mutableCopyWithZone:,+ forwardingTargetForSelector:,+ resolveInstanceMethod:,+ mutableCopy,+ methodForSelector:,+ instanceMethodForSelector:,+ release,+ respondsToSelector:,+ isAncestorOfObject:,+ _tryRetain,+ debugDescription,+ conformsToProtocol:,+ class,+ resolveClassMethod:,+ copy,+ copyWithZone:,+ forwardInvocation:,+ isProxy,+ isFault,+ toPBCodable,+ _intents_compareValue:relation:,+ _intents_readableSubtitleWithLocalizer:metadata:,+ descriptionAtIndent:,+ _intents_enumerateObjectsOfClass:withBlock:,+ _intents_isValidKey:,+ _setterForProperty:,+ _intents_indexingRepresentation,+ _intents_readableTitleWithLocalizer:metadata:,+ _intents_readableTitleForLanguage:withMetadata:,+ _intents_readableSubtitleForLanguage:withMetadata:,+ _intents_displayImageWithLocalizer:,+ _intents_localizedCopyWithLocalizer:,+ _intents_readableTitleForLanguage:,+ _intents_readableTitleWithLocalizer:,+ _intents_readableSubtitleWithLocalizer:,+ _intents_readableSubtitleForLanguage:,+ _intents_displayImageForLanguage:,+ _intents_setterForPropertyWithName:,+ _intents_localizedCopyForLanguage:,+ _intents_readableDescriptionForLanguage:,+ _intents_readableDescriptionForLanguage:withMetadata:,+ _intents_readableDescriptionWithLocalizer:,+ _intents_readableDescriptionWithLocalizer:metadata:,+ if_setValueIfNonNil:forKey:,+ if_setValueIfYES:forKey:,+ stringValueSafe:,+ utf8ValueSafe:,+ boolValueSafe,+ boolValueSafe:,+ int64ValueSafe,+ int64ValueSafe:,+ doubleValueSafe,+ doubleValueSafe:,+ stringValueSafe,+ utf8ValueSafe,+ CKDescriptionPropertiesWithPublic:private:shouldExpand:,+ CKDescription,+ CKUnredactedDescription,+ CKRedactedDescription,+ CKDescriptionRedact:avoidShortDescription:,+ CKObjectDescriptionRedact:avoidShortDescription:,+ CKObjectDescriptionRedact:,+ ck_bindInStatement:atIndex:,+ CKAssignToContainerWithID:,+ CKSingleLineDescription,+ _CKDescriptionWithExpansion:,+ CKExpandedDescription,+ CKPropertiesDescriptionStringFromProperties:,+ CKHashedDescription,+ CKPropertiesDescription,+ CA_validateValue:forKey:,+ CA_copyRenderValue,+ CAMLTypeForKey:,+ encodeWithCAMLWriter:,+ CA_distanceToValue:,+ CA_interpolateValues:::interpolator:,+ CA_interpolateValue:byFraction:,+ CAMLType,+ CA_copyNumericValue:,+ CA_archivingValueForKey:,+ CA_copyRenderValueWithColorspace:,+ CA_addValue:multipliedBy:,+ CA_roundToIntegerFromValue:,+ CAMLTypeSupportedForKey:,+ CA_prepareRenderValue,+ carpf_registerObserverForKeyPath:options:handler:,+ _allowsDirectEncoding,+ awakeAfterUsingCoder:,+ classForCoder,+ replacementObjectForCoder:,+ removeObserver:forKeyPath:,+ removeObservation:,+ _isKVOA,+ _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:,+ setObservationInfo:,+ willChangeValueForKey:,+ _didChangeValuesForKeys:,+ _willChangeValuesForKeys:,+ valueForUndefinedKey:,+ addObserver:forKeyPath:options:context:,+ setValue:forKey:,+ performSelectorOnMainThread:withObject:waitUntilDone:modes:,+ performSelector:onThread:withObject:waitUntilDone:modes:,+ dictionaryWithValuesForKeys:,+ didChangeValueForKey:withSetMutation:usingObjects:,+ valueForKeyPath:,+ performSelector:onThread:withObject:waitUntilDone:,+ classForKeyedArchiver,+ _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:,+ _observerStorageOfSize:,+ willChangeValueForKey:withSetMutation:usingObjects:,+ performSelectorOnMainThread:withObject:waitUntilDone:,+ didChangeValueForKey:,+ setNilValueForKey:,+ _pendingChangeNotificationsArrayForKey:create:,+ removeObservation:forObservableKeyPath:,+ performSelector:withObject:afterDelay:inModes:,+ classForPortCoder,+ performSelectorInBackground:withObject:,+ finishObserving,+ _addObserver:forProperty:options:context:,+ observationInfo,+ willChange:valuesAtIndexes:forKey:,+ classForArchiver,+ _notifyObserversForKeyPath:change:,+ _changeValueForKey:key:key:usingBlock:,+ addObserverBlock:,+ _observerStorage,+ setObservation:forObservingKeyPath:,+ mutableOrderedSetValueForKeyPath:,+ addObserver:forObservableKeyPath:,+ performSelector:object:afterDelay:,+ setValuesForKeysWithDictionary:,+ performSelector:withObject:afterDelay:,+ didChange:valuesAtIndexes:forKey:,+ _destroyObserverList,+ addChainedObservers:,+ valueForKey:,+ validateValue:forKeyPath:error:,+ mutableArrayValueForKeyPath:,+ _receiveBox:,+ receiveObservedError:,+ mutableSetValueForKeyPath:,+ _isToManyChangeInformation,+ replacementObjectForKeyedArchiver:,+ _overrideUseFastBlockObservers,+ addObservationTransformer:,+ addObserver:,+ mutableSetValueForKey:,+ _changeValueForKey:usingBlock:,+ mutableArrayValueForKey:,+ _didEndKeyValueObserving,+ _implicitObservationInfo,+ replacementObjectForArchiver:,+ _removeObserver:forProperty:,+ validateValue:forKey:error:,+ autoContentAccessingProxy,+ observeValueForKeyPath:ofObject:change:context:,+ _willBeginKeyValueObserving,+ mutableOrderedSetValueForKey:,+ removeObserver:forKeyPath:context:,+ setValue:forKeyPath:,+ receiveObservedValue:,+ setValue:forUndefinedKey:,+ isNSSet__,+ isNSString__,+ isNSDate__,+ isNSNumber__,+ isNSData__,+ isNSObject__,+ isNSArray__,+ isNSValue__,+ isNSTimeZone__,+ isNSOrderedSet__,+ isNSDictionary__,+ _cfTypeID,+ isNSCFConstantString__,+ __release_OA,+ __retain_OA,+ ___tryRetain_OA,+ __dealloc_zombie,+ __autorelease_OA,+ bs_secureEncoded,+ bs_encoded,+ NSRepresentation,+ RBSIsXPCObject,+ pep_onMainThread,+ pep_onThread:,+ pep_onThread:immediateForMatchingThread:,+ pep_onOperationQueue:priority:,+ pep_onMainThreadIfNecessary,+ pep_afterDelay:,+ pep_onOperationQueue:,+ pep_getInvocation:,+ isNull,+ performSelector:withObject:afterDelay:ignoreMenuTracking:,+ __im_afterDelay:,+ __im_afterDelay:modes:,+ __im_onThread:,+ __im_onMainThread,+ __im_onThread:immediateForMatchingThread:,+ __im_onMainThreadIfNecessary,+ __im_onDetachedThread,+ __im_getInvocation:,+ un_safeBoolValue,+ finalize,- cuValueForEntitlementNoCache:,- uniquify,- hasEntitlement:,- shouldHandleInvalidation,- setShouldHandleInvalidation:,- _EX_transaction,- _EX_setTransaction:,- _EX_extensionProcess,- _EX_setExtensionProcess:,- addBarrierBlock:,- serviceName,- initWithMachServiceName:options:,- _sendInvocation:orArguments:count:methodSignature:selector:withProxy:,- setUserInfo:,- setOptions:,- effectiveGroupIdentifier,- setExportedObject:,- remoteObjectProxy,- userInfo,- interruptionHandler,- start,- remoteObjectProxyWithTimeout:errorHandler:,- _setQueue:,- _decodeAndInvokeReplyBlockWithEvent:sequence:replyInfo:,- _setUUID:,- initWithMachServiceName:,- invalidate,- exportedObject,- initWithServiceName:options:,- exportedInterface,- activate,- _xpcConnection,- init,- invalidationHandler,- _queue,- setRemoteObjectInterface:,- _unboostingRemoteObjectProxy,- setExportedInterface:,- initWithEndpoint:,- synchronousRemoteObjectProxyWithErrorHandler:,- _sendSelector:withProxy:arg1:arg2:arg3:arg4:,- _decodeAndInvokeMessageWithEvent:flags:,- _sendSelector:withProxy:arg1:arg2:arg3:,- _initWithRemoteService:name:options:mode:,- delegate,- set_additionalInvalidationHandler:,- _initWithRemoteService:name:options:,- resume,- _setLanguages:,- _decodeProgressMessageWithData:flags:,- remoteObjectProxyWithUserInfo:errorHandler:,- valueForEntitlement:,- _pauseProgress:,- initWithServiceName:,- auditSessionIdentifier,- setInterruptionHandler:,- setInvalidationHandler:,- _cancelProgress:,- _resumeProgress:,- _killConnection:,- _sendSelector:withProxy:arg1:arg2:,- _errorDescription,- suspend,- stop,- replacementObjectForEncoder:object:,- _sendDesistForProxy:,- remoteObjectProxyWithErrorHandler:,- _initWithRemoteConnection:name:,- effectiveUserIdentifier,- _additionalInvalidationHandler,- _sendSelector:withProxy:arg1:,- _remoteObjectInterfaceClass,- _sendSelector:withProxy:,- _setBootstrapObject:forKey:,- scheduleSendBarrierBlock:,- _initWithCustomTransport:,- auditToken,- _setTargetUserIdentifier:,- remoteObjectInterface,- setDelegate:,- description,- initWithListenerEndpoint:,- dealloc,- processIdentifier,- endpoint,- toPBCodable,- _intents_compareValue:relation:,- _intents_readableSubtitleWithLocalizer:metadata:,- descriptionAtIndent:,- _intents_enumerateObjectsOfClass:withBlock:,- _intents_isValidKey:,- _setterForProperty:,- _intents_indexingRepresentation,- _intents_readableTitleWithLocalizer:metadata:,- _intents_readableTitleForLanguage:withMetadata:,- _intents_readableSubtitleForLanguage:withMetadata:,- _intents_displayImageWithLocalizer:,- _intents_localizedCopyWithLocalizer:,- _intents_readableTitleForLanguage:,- _intents_readableTitleWithLocalizer:,- _intents_readableSubtitleWithLocalizer:,- _intents_readableSubtitleForLanguage:,- _intents_displayImageForLanguage:,- _intents_setterForPropertyWithName:,- _intents_localizedCopyForLanguage:,- _intents_readableDescriptionForLanguage:,- _intents_readableDescriptionForLanguage:withMetadata:,- _intents_readableDescriptionWithLocalizer:,- _intents_readableDescriptionWithLocalizer:metadata:,- if_setValueIfNonNil:forKey:,- if_setValueIfYES:forKey:,- stringValueSafe:,- utf8ValueSafe:,- boolValueSafe,- boolValueSafe:,- int64ValueSafe,- int64ValueSafe:,- doubleValueSafe,- doubleValueSafe:,- stringValueSafe,- utf8ValueSafe,- CKDescriptionPropertiesWithPublic:private:shouldExpand:,- CKDescription,- CKUnredactedDescription,- CKRedactedDescription,- CKDescriptionRedact:avoidShortDescription:,- CKObjectDescriptionRedact:avoidShortDescription:,- CKObjectDescriptionRedact:,- ck_bindInStatement:atIndex:,- CKAssignToContainerWithID:,- CKSingleLineDescription,- _CKDescriptionWithExpansion:,- CKExpandedDescription,- CKPropertiesDescriptionStringFromProperties:,- CKHashedDescription,- CKPropertiesDescription,- CA_validateValue:forKey:,- CA_copyRenderValue,- CAMLTypeForKey:,- encodeWithCAMLWriter:,- CA_distanceToValue:,- CA_interpolateValues:::interpolator:,- CA_interpolateValue:byFraction:,- CAMLType,- CA_copyNumericValue:,- CA_archivingValueForKey:,- CA_copyRenderValueWithColorspace:,- CA_addValue:multipliedBy:,- CA_roundToIntegerFromValue:,- CAMLTypeSupportedForKey:,- CA_prepareRenderValue,- carpf_registerObserverForKeyPath:options:handler:,- _allowsDirectEncoding,- awakeAfterUsingCoder:,- classForCoder,- implementsSelector:,- replacementObjectForCoder:,- removeObserver:forKeyPath:,- removeObservation:,- _isKVOA,- _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:,- setObservationInfo:,- willChangeValueForKey:,- _didChangeValuesForKeys:,- _willChangeValuesForKeys:,- valueForUndefinedKey:,- addObserver:forKeyPath:options:context:,- setValue:forKey:,- performSelectorOnMainThread:withObject:waitUntilDone:modes:,- performSelector:onThread:withObject:waitUntilDone:modes:,- dictionaryWithValuesForKeys:,- didChangeValueForKey:withSetMutation:usingObjects:,- valueForKeyPath:,- performSelector:onThread:withObject:waitUntilDone:,- classForKeyedArchiver,- _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:,- _observerStorageOfSize:,- willChangeValueForKey:withSetMutation:usingObjects:,- performSelectorOnMainThread:withObject:waitUntilDone:,- didChangeValueForKey:,- setNilValueForKey:,- replacementObjectForPortCoder:,- _pendingChangeNotificationsArrayForKey:create:,- removeObservation:forObservableKeyPath:,- performSelector:withObject:afterDelay:inModes:,- classForPortCoder,- performSelectorInBackground:withObject:,- finishObserving,- _addObserver:forProperty:options:context:,- observationInfo,- willChange:valuesAtIndexes:forKey:,- classForArchiver,- _notifyObserversForKeyPath:change:,- _changeValueForKey:key:key:usingBlock:,- addObserverBlock:,- _observerStorage,- setObservation:forObservingKeyPath:,- mutableOrderedSetValueForKeyPath:,- addObserver:forObservableKeyPath:,- performSelector:object:afterDelay:,- setValuesForKeysWithDictionary:,- performSelector:withObject:afterDelay:,- didChange:valuesAtIndexes:forKey:,- _destroyObserverList,- addChainedObservers:,- valueForKey:,- validateValue:forKeyPath:error:,- mutableArrayValueForKeyPath:,- _receiveBox:,- receiveObservedError:,- mutableSetValueForKeyPath:,- _isToManyChangeInformation,- replacementObjectForKeyedArchiver:,- _overrideUseFastBlockObservers,- addObservationTransformer:,- addObserver:,- mutableSetValueForKey:,- _changeValueForKey:usingBlock:,- mutableArrayValueForKey:,- _didEndKeyValueObserving,- _implicitObservationInfo,- replacementObjectForArchiver:,- _removeObserver:forProperty:,- validateValue:forKey:error:,- autoContentAccessingProxy,- observeValueForKeyPath:ofObject:change:context:,- _willBeginKeyValueObserving,- mutableOrderedSetValueForKey:,- removeObserver:forKeyPath:context:,- setValue:forKeyPath:,- receiveObservedValue:,- setValue:forUndefinedKey:,- isNSSet__,- isNSString__,- isNSDate__,- isNSNumber__,- isNSData__,- isNSObject__,- isNSArray__,- isNSValue__,- isNSTimeZone__,- isNSOrderedSet__,- isNSDictionary__,- _cfTypeID,- isNSCFConstantString__,- __release_OA,- __retain_OA,- _copyDescription,- ___tryRetain_OA,- doesNotRecognizeSelector:,- __dealloc_zombie,- __autorelease_OA,- methodSignatureForSelector:,- bs_secureEncoded,- bs_encoded,- supportsBSXPCSecureCoding,- bs_isPlistableType,- NSRepresentation,- RBSIsXPCObject,- supportsRBSXPCSecureCoding,- pep_onMainThread,- pep_onThread:,- pep_onThread:immediateForMatchingThread:,- pep_onOperationQueue:priority:,- pep_onMainThreadIfNecessary,- pep_afterDelay:,- pep_onOperationQueue:,- pep_getInvocation:,- isNull,- performSelector:withObject:afterDelay:ignoreMenuTracking:,- __im_afterDelay:,- __im_afterDelay:modes:,- __im_onThread:,- __im_onMainThread,- __im_onThread:immediateForMatchingThread:,- __im_onMainThreadIfNecessary,- __im_onDetachedThread,- __im_getInvocation:,- un_safeBoolValue,- self,- superclass,- performSelector:withObject:,- performSelector:withObject:withObject:,- performSelector:,- zone,- autorelease,- finalize,- _isDeallocating,- isMemberOfClass:,- allowsWeakReference,- isEqual:,- isKindOfClass:,- retainWeakReference,- retain,- retainCount,- hash,- forwardingTargetForSelector:,- mutableCopy,- methodForSelector:,- release,- respondsToSelector:,- _tryRetain,- debugDescription,- conformsToProtocol:,- class,- copy,- forwardInvocation:,- isProxy,- isFault

格式化后：

+ geo_createGEODaemonToMapsPushDaemonConnection
+ geo_withMapsPushDaemon:errorHandler:
+ beginTransaction
+ endTransaction
+ _handoffCurrentReplyToQueue:block:
+ currentConnection
+ fromPBCodable:
...
...
...
- respondsToSelector:
- _tryRetain
- debugDescription
- conformsToProtocol:
- class
- copy
- forwardInvocation:
- isProxy
- isFault

AKAppleIDAuthenticationService的$ownMethods

代码：

const connOwnMethods = argSelfObj.$ownMethods;
console.log("connOwnMethods=", connOwnMethods);

输出：

connOwnMethods= + geo_createGEODaemonToMapsPushDaemonConnection,+ geo_withMapsPushDaemon:errorHandler:,+ beginTransaction,+ endTransaction,+ _handoffCurrentReplyToQueue:block:,+ currentConnection,- cuValueForEntitlementNoCache:,- uniquify,- hasEntitlement:,- shouldHandleInvalidation,- setShouldHandleInvalidation:,- _EX_transaction,- _EX_setTransaction:,- _EX_extensionProcess,- _EX_setExtensionProcess:,- addBarrierBlock:,- serviceName,- initWithMachServiceName:options:,- _sendInvocation:orArguments:count:methodSignature:selector:withProxy:,- setUserInfo:,- setOptions:,- effectiveGroupIdentifier,- setExportedObject:,- remoteObjectProxy,- userInfo,- interruptionHandler,- start,- remoteObjectProxyWithTimeout:errorHandler:,- _setQueue:,- _decodeAndInvokeReplyBlockWithEvent:sequence:replyInfo:,- _setUUID:,- initWithMachServiceName:,- invalidate,- exportedObject,- initWithServiceName:options:,- exportedInterface,- activate,- _xpcConnection,- init,- invalidationHandler,- _queue,- setRemoteObjectInterface:,- _unboostingRemoteObjectProxy,- setExportedInterface:,- initWithEndpoint:,- synchronousRemoteObjectProxyWithErrorHandler:,- _sendSelector:withProxy:arg1:arg2:arg3:arg4:,- _decodeAndInvokeMessageWithEvent:flags:,- _sendSelector:withProxy:arg1:arg2:arg3:,- _initWithRemoteService:name:options:mode:,- delegate,- set_additionalInvalidationHandler:,- _initWithRemoteService:name:options:,- resume,- _setLanguages:,- _decodeProgressMessageWithData:flags:,- remoteObjectProxyWithUserInfo:errorHandler:,- valueForEntitlement:,- _pauseProgress:,- initWithServiceName:,- auditSessionIdentifier,- setInterruptionHandler:,- setInvalidationHandler:,- _cancelProgress:,- _resumeProgress:,- _killConnection:,- _sendSelector:withProxy:arg1:arg2:,- _errorDescription,- suspend,- stop,- replacementObjectForEncoder:object:,- _sendDesistForProxy:,- remoteObjectProxyWithErrorHandler:,- _initWithRemoteConnection:name:,- effectiveUserIdentifier,- _additionalInvalidationHandler,- _sendSelector:withProxy:arg1:,- _remoteObjectInterfaceClass,- _sendSelector:withProxy:,- _setBootstrapObject:forKey:,- scheduleSendBarrierBlock:,- _initWithCustomTransport:,- auditToken,- _setTargetUserIdentifier:,- remoteObjectInterface,- setDelegate:,- description,- initWithListenerEndpoint:,- dealloc,- processIdentifier,- endpoint

格式化后：

+ geo_createGEODaemonToMapsPushDaemonConnection
+ geo_withMapsPushDaemon:errorHandler:
+ beginTransaction
+ endTransaction
+ _handoffCurrentReplyToQueue:block:
+ currentConnection
- cuValueForEntitlementNoCache:
- uniquify
- hasEntitlement:
- shouldHandleInvalidation
- setShouldHandleInvalidation:
- _EX_transaction
- _EX_setTransaction:
- _EX_extensionProcess
- _EX_setExtensionProcess:
- addBarrierBlock:
- serviceName
- initWithMachServiceName:options:
- _sendInvocation:orArguments:count:methodSignature:selector:withProxy:
- setUserInfo:
- setOptions:
- effectiveGroupIdentifier
- setExportedObject:
- remoteObjectProxy
- userInfo
- interruptionHandler
- start
- remoteObjectProxyWithTimeout:errorHandler:
- _setQueue:
- _decodeAndInvokeReplyBlockWithEvent:sequence:replyInfo:
- _setUUID:
- initWithMachServiceName:
- invalidate
- exportedObject
- initWithServiceName:options:
- exportedInterface
- activate
- _xpcConnection
- init
- invalidationHandler
- _queue
- setRemoteObjectInterface:
- _unboostingRemoteObjectProxy
- setExportedInterface:
- initWithEndpoint:
- synchronousRemoteObjectProxyWithErrorHandler:
- _sendSelector:withProxy:arg1:arg2:arg3:arg4:
- _decodeAndInvokeMessageWithEvent:flags:
- _sendSelector:withProxy:arg1:arg2:arg3:
- _initWithRemoteService:name:options:mode:
- delegate
- set_additionalInvalidationHandler:
- _initWithRemoteService:name:options:
- resume
- _setLanguages:
- _decodeProgressMessageWithData:flags:
- remoteObjectProxyWithUserInfo:errorHandler:
- valueForEntitlement:
- _pauseProgress:
- initWithServiceName:
- auditSessionIdentifier
- setInterruptionHandler:
- setInvalidationHandler:
- _cancelProgress:
- _resumeProgress:
- _killConnection:
- _sendSelector:withProxy:arg1:arg2:
- _errorDescription
- suspend
- stop
- replacementObjectForEncoder:object:
- _sendDesistForProxy:
- remoteObjectProxyWithErrorHandler:
- _initWithRemoteConnection:name:
- effectiveUserIdentifier
- _additionalInvalidationHandler
- _sendSelector:withProxy:arg1:
- _remoteObjectInterfaceClass
- _sendSelector:withProxy:
- _setBootstrapObject:forKey:
- scheduleSendBarrierBlock:
- _initWithCustomTransport:
- auditToken
- _setTargetUserIdentifier:
- remoteObjectInterface
- setDelegate:
- description
- initWithListenerEndpoint:
- dealloc
- processIdentifier
- endpoint

其中：

NSXPCConnection

没有之前Xcode调试所看到的属性

processName

processBundleIdentifier

不过有我们所重点关注的其他的属性

exportedInterface

exportedObject

remoteObjectInterface

remoteObjectProxy

auditSessionIdentifier

effectiveUserIdentifier

effectiveGroupIdentifier

userInfo

-》实现了我们通过$methods和$ownMethods去调试NSXPCConnection类的属性值，找到我们所关注的属性值

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-22 23:16:55

Interceptor=hook函数

Interceptor=hook函数

此处去介绍如何用Frida的Interceptor去hook拦截iOS的ObjC的函数的实际案例。

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-23 08:17:22

单个类的单个函数

单个类的单个函数

Frida去hook调试ObjC函数：-[NSXPCConnection setExportedObject:]

背景

调试iPhone中的，设置app中点击Apple账号登录的过程，内部会触发akd进程中的iOS的ObjC函数：

-[NSXPCConnection setExportedObject:]

此处去写frida的js脚本，去调试hook，打印参数值

涉及到的操作iPhone中的app的页面有：

最基础的，hook类的函数，只是打印参数值

适用场景：确定要hook的类和函数是：能找到的=是存在的 -》代码才能正确hook，否则会报错找不到

写法：直接把类名和函数名放到ObjC.classes的后面

代码

const curMethod = ObjC.classes.NSXPCConnection["- setExportedObject:"];
// console.log("curMethod: ", curMethod);
// const iOSObjCallStr = "-[NSXPCConnection setExportedObject:]";

      Interceptor.attach(curMethod.implementation, {
        onEnter: function(args) {
          // console.log("==================== " + iOSObjCallStr + " ====================");
          console.log("argSelf=" + args[0] + ", argSel=" + args[1] + ", realArg1=" + args[2]);
        }
      });

适用场景：要hook的类和函数，不确定是否存在，所以加上判断

写法：传入类名和函数名，先去查找在不在，找到后，才hook

代码

// https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/hook-specific-method-of-class.js
function hook_specific_method_of_class(className, funcName)
{
  // console.log("className=" + className + ", funcName=" + funcName)
  var curClass = ObjC.classes[className];
  if (typeof(curClass) !== 'undefined') {
    var curMethod = curClass[funcName];
    if (typeof(curMethod) !== 'undefined') {
      Interceptor.attach(curMethod.implementation, {
        onEnter: function(args) {
          console.log("argSelf=" + args[0] + ", argSel=" + args[1] + ", realArg1=" + args[2]);
        }
      });
    }else{
      console.log("Can't find method", funcName);
    }
  }else{
    console.log("Can't find class: ", className);
  }
}

//Your class name  and function name here
hook_specific_method_of_class("NSXPCConnection", "- setExportedObject:")

典型输出log：

➜  scripts frida -U -n akd -l hook_NSXPCConnection_setExportedObject.js
     ____
    / _  |   Frida 16.0.19 - A world-class dynamic instrumentation toolkit
   | (_| |
    > _  |   Commands:
   /_/ |_|       help      -> Displays the help system
   . . . .       object?   -> Display information about 'object'
   . . . .       exit/quit -> Exit
   . . . .
   . . . .   More info at https://frida.re/docs/home/
   . . . .
   . . . .   Connected to iPhone (id=abdc0dd961c3cb96f5c4afe109de4eb48b88433a)

[iPhone::akd ]-> %resume

...

==================== -[NSXPCConnection setExportedObject:] ====================
argSelf=0x102725ce0, argSel=0x19b362b44, realArg1=0x102926640
==================== -[NSXPCConnection setExportedObject:] ====================
argSelf=0x102928300, argSel=0x19b362b44, realArg1=0x1029211b0
==================== -[NSXPCConnection setExportedObject:] ====================
argSelf=0x102725ce0, argSel=0x19b362b44, realArg1=0x0
==================== -[NSXPCConnection setExportedObject:] ====================
argSelf=0x102a21570, argSel=0x19b362b44, realArg1=0x0

简单优化：加上额外的参数的转换和打印相关值

再去加上额外的，参数类型转换

把常见参数转换成ObjC的Object

把ObjC的SEL转换成String

等等

对应代码是：

function hook_specific_method_of_class(className, funcName)
{
  var iOSObjCallStr = "className=" + className + ", funcName=" + funcName
  console.log("iOSObjCallStr=", iOSObjCallStr)
  var curClass = ObjC.classes[className];
  if (typeof(curClass) !== 'undefined') {
    var curMethod = curClass[funcName];
    if (typeof(curMethod) !== 'undefined') {

      Interceptor.attach(curMethod.implementation, {
        onEnter: function(args) {
          console.log("==================== " + iOSObjCallStr + " ====================");
          // args[0] is self = id
          const argSelf = args[0];
          console.log("argSelf: ", argSelf);
          const argSelfObj = new ObjC.Object(argSelf);
          console.log("argSelfObj: ", argSelfObj);
          const argSelfClassName = argSelfObj.$className;
          console.log("argSelfClassName: ", argSelfClassName);

          // args[1] is selector
          const argSel = args[1];
          console.log("argSel: ", argSel);
          const argSelStr = ObjC.selectorAsString(argSel);
          console.log("argSelStr: ", argSelStr);

            // args[2] holds the first function argument
            const args2 = args[2];
            console.log("args2: ", args2);
            if (args2 != 0x0) {
              const args2Obj = new ObjC.Object(args2);
              // const args2Obj = new ObjC.Object(ptr(args2));
              console.log("args2Obj: ", args2Obj);
              const args2ObjClassName = args2Obj.$className;
              console.log("args2ObjClassName: ", args2ObjClassName);
              const args2ObjStr = args2Obj.toString();
              console.log("args2ObjStr: ", args2ObjStr);
            }
        }
      });
    }else{
      console.log("Can't find method", funcName);
    }
  }else{
    console.log("Can't find class: ", className);
  }
}

//Your class name  and function name here
hook_specific_method_of_class("NSXPCConnection", "- setExportedObject:")

优化日志：把Frida类名和函数名转换为ObjC的类名和函数名

可以继续去加上：

toiOSObjcCall

作用举例

输入：["NSXPCConnection", "- setExportedObject:"]

输出："-[NSXPCConnection setExportedObject:]"

目的：实现优化日志打印

输出的ObjC的类和函数名 -》 方便调试和查看具体调用了哪个ObjC的类和函数

代码：

// convert from frida function call to ObjC function call
// "NSURL", "- initWithString:" => "-[NSURL initWithString:]"
function toiOSObjcCall(class_name, method_name){
    const instanceCallStart = "-[" + class_name + " ";
    const classCallStart = "+[" + class_name + " ";
    var objcFuncCall = method_name.replace("- ", instanceCallStart);
    objcFuncCall = objcFuncCall.replace("+ ", classCallStart);
    objcFuncCall = objcFuncCall + "]";
    // console.log(class_name + " -> " + method_name + " => " + objcFuncCall);
    return objcFuncCall;
}

function hook_specific_method_of_class(className, funcName)
{
  var iOSObjCallStr = toiOSObjcCall(className, funcName)
  console.log("iOSObjCallStr=", iOSObjCallStr)
  var curClass = ObjC.classes[className];
  if (typeof(curClass) !== 'undefined') {
    var curMethod = curClass[funcName];
    if (typeof(curMethod) !== 'undefined') {

      Interceptor.attach(curMethod.implementation, {
        onEnter: function(args) {
          console.log("==================== " + iOSObjCallStr + " ====================");
          // args[0] is self = id
          const argSelf = args[0];
          console.log("argSelf: ", argSelf);
          const argSelfObj = new ObjC.Object(argSelf);
          console.log("argSelfObj: ", argSelfObj);
          const argSelfClassName = argSelfObj.$className;
          console.log("argSelfClassName: ", argSelfClassName);

          // args[1] is selector
          const argSel = args[1];
          console.log("argSel: ", argSel);
          const argSelStr = ObjC.selectorAsString(argSel);
          console.log("argSelStr: ", argSelStr);

            // args[2] holds the first function argument
            const args2 = args[2];
            console.log("args2: ", args2);
            if (args2 != 0x0) {
              const args2Obj = new ObjC.Object(args2);
              // const args2Obj = new ObjC.Object(ptr(args2));
              console.log("args2Obj: ", args2Obj);
              const args2ObjClassName = args2Obj.$className;
              console.log("args2ObjClassName: ", args2ObjClassName);
              const args2ObjStr = args2Obj.toString();
              console.log("args2ObjStr: ", args2ObjStr);
            }
        }
      });
    }else{
      console.log("Can't find method", funcName);
    }
  }else{
    console.log("Can't find class: ", className);
  }
}

//Your class name  and function name here
hook_specific_method_of_class("NSXPCConnection", "- setExportedObject:")

优化参数：打印函数全部的真正参数

如之前 ObjC的参数 中的计算ObjC的函数的真正参数的个数 + 打印全部参数的实例代码，加到此处，略作调整变成：

/*******************************************************************************
* Util Functions
*******************************************************************************/

/** Function that count occurrences of a substring in a string;
 * @param {String} string               The string
 * @param {String} subString            The sub string to search for
 * @param {Boolean} [allowOverlapping]  Optional. (Default:false)
 *
 * @author Vitim.us https://gist.github.com/victornpb/7736865
 * @see Unit Test https://jsfiddle.net/Victornpb/5axuh96u/
 * @see https://stackoverflow.com/a/7924240/938822
 * @example occurrences("- setExportedObject:", ":") => 1
 */
function occurrences(string, subString, allowOverlapping) {
    // console.log("string=" + string + ",subString=" + subString + ", allowOverlapping=" + allowOverlapping)
    string += "";
    subString += "";
    if (subString.length <= 0) return (string.length + 1);

    var n = 0,
        pos = 0,
        step = allowOverlapping ? 1 : subString.length;

    while (true) {
        pos = string.indexOf(subString, pos);
        // console.log("pos=" + pos)
        if (pos >= 0) {
            ++n;
            pos += step;
        } else break;
    }

    return n;
}

// convert from frida function call to ObjC function call
// "NSURL", "- initWithString:" => "-[NSURL initWithString:]"
function toiOSObjcCall(class_name, method_name){
    const instanceCallStart = "-[" + class_name + " ";
    const classCallStart = "+[" + class_name + " ";
    var objcFuncCall = method_name.replace("- ", instanceCallStart);
    objcFuncCall = objcFuncCall.replace("+ ", classCallStart);
    objcFuncCall = objcFuncCall + "]";
    // console.log(class_name + " -> " + method_name + " => " + objcFuncCall);
    return objcFuncCall;
}

/*******************************************************************************
* Frida Hook
*******************************************************************************/

// https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/hook-specific-method-of-class.js
function hook_specific_method_of_class(className, funcName)
{
  var iOSObjCallStr = toiOSObjcCall(className, funcName)
  console.log("iOSObjCallStr=", iOSObjCallStr)
  var curClass = ObjC.classes[className];
  if (typeof(curClass) !== 'undefined') {
    var curMethod = curClass[funcName];
    if (typeof(curMethod) !== 'undefined') {

      Interceptor.attach(curMethod.implementation, {
        onEnter: function(args) {
          console.log("==================== " + iOSObjCallStr + " ====================");

          // args[0] is self = id
          const argSelf = args[0];
          console.log("argSelf: ", argSelf);
          const argSelfObj = new ObjC.Object(argSelf);
          console.log("argSelfObj: ", argSelfObj);
          const argSelfClassName = argSelfObj.$className;
          console.log("argSelfClassName: ", argSelfClassName);

          // args[1] is selector
          const argSel = args[1];
          console.log("argSel: ", argSel);
          const argSelStr = ObjC.selectorAsString(argSel);
          console.log("argSelStr: ", argSelStr);

          const argCount = occurrences(argSelStr, ":");
          console.log("argCount: ", argCount);

          // console.log("funcName=", funcName);
          // const argCount = occurrences(funcName, ":");
          // console.log("argCount: ", argCount);

          for (let curArgIdx = 0; curArgIdx < argCount; curArgIdx++) {
            const curArg = args[curArgIdx + 2];

            // const usePtr = false;
            const usePtr = true;
            if (usePtr) {
              // console.log("usePtr=", usePtr);
              const curArgPtr = ptr(curArg);
              console.log("---------- [" + curArgIdx + "] curArgPtr=" + curArgPtr);
              if (!curArgPtr.isNull()) {
                const curArgPtrObj = new ObjC.Object(curArgPtr);
                console.log("curArgPtrObj: ", curArgPtrObj);
                console.log("curArgPtrObj className: ", curArgPtrObj.$className);
                console.log("curArgPtrObj kind: ", curArgPtrObj.$kind);
              }
            } else {
              console.log("---------- [" + curArgIdx + "] curArg=" + curArg);
              if (curArg && (curArg != 0x0)) {
                // console.log("curArg className: ", curArg.$className);
                const curArgObj = new ObjC.Object(curArg);
                console.log("curArgObj: ", curArgObj);
                console.log("curArgObj className: ", curArgObj.$className);
                console.log("curArgObj kind: ", curArgObj.$kind);
              }
            }
          }

        }
      });
    }else{
      console.log("Can't find method", funcName);
    }
  }else{
    console.log("Can't find class: ", className);
  }
}

//Your class name  and function name here
hook_specific_method_of_class("NSXPCConnection", "- setExportedObject:")

典型log输出：

==================== -[NSXPCConnection setExportedObject:] ====================
argSelf:  0x1057047a0
argSelfObj:  <NSXPCConnection: 0x1057047a0> connection from pid 46847 on mach service named com.apple.ak.auth.xpc
argSelfClassName:  NSXPCConnection
argSel:  0x19b362b44
argSelStr:  setExportedObject:
funcName= - setExportedObject:
argCount:  1
---------- [0] curArgPtr=0x105743aa0
curArgPtrObj:  <AKAppleIDAuthenticationService: 0x105743aa0>
curArgPtrObj className:  AKAppleIDAuthenticationService
curArgPtrObj kind:  instance
==================== -[NSXPCConnection setExportedObject:] ====================
argSelf:  0x1057047a0
argSelfObj:  <NSXPCConnection: 0x1057047a0> connection from pid 46847 on mach service named com.apple.ak.auth.xpc
argSelfClassName:  NSXPCConnection
argSel:  0x19b362b44
argSelStr:  setExportedObject:
argCount:  1
---------- [0] curArgPtr=0x0

关于argCount的计算

另外，计算argCount的代码，如果从：

          const argCount = occurrences(argSelStr, ":");
          console.log("argCount: ", argCount);

          // console.log("funcName=", funcName);
          // const argCount = occurrences(funcName, ":");
          // console.log("argCount: ", argCount);

换成：

          // const argCount = occurrences(argSelStr, ":");
          // console.log("argCount: ", argCount);

          console.log("funcName=", funcName);
          const argCount = occurrences(funcName, ":");
          console.log("argCount: ", argCount);

则对应部分输出从：

argSelStr:  setExportedObject:
argCount:  1

变成：

argSelStr:  setExportedObject:
funcName= - setExportedObject:
argCount:  1

优化逻辑：加上参数值的判断和过滤

如果此处需要有类似于，过滤参数的值，判断参数的值，并且过滤只输出对应值，则可以去：

把ObjC的NSString转换成js的String

然后再去用===去对比判断字符串

完整代码：

/*******************************************************************************
* Util Functions
*******************************************************************************/

// convert from frida function call to ObjC function call
// "NSURL", "- initWithString:" => "-[NSURL initWithString:]"
function toiOSObjcCall(class_name, method_name){
    const instanceCallStart = "-[" + class_name + " ";
    const classCallStart = "+[" + class_name + " ";
    var objcFuncCall = method_name.replace("- ", instanceCallStart);
    objcFuncCall = objcFuncCall.replace("+ ", classCallStart);
    objcFuncCall = objcFuncCall + "]";
    // console.log(class_name + " -> " + method_name + " => " + objcFuncCall);
    return objcFuncCall;
}

/*******************************************************************************
* Frida Hook
*******************************************************************************/

// https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/hook-specific-method-of-class.js
function hook_specific_method_of_class(className, funcName)
{
  var iOSObjCallStr = toiOSObjcCall(className, funcName)
  console.log("iOSObjCallStr=", iOSObjCallStr)
  var curClass = ObjC.classes[className];
  if (typeof(curClass) !== 'undefined') {
    var curMethod = curClass[funcName];
    if (typeof(curMethod) !== 'undefined') {

      Interceptor.attach(curMethod.implementation, {
        onEnter: function(args) {
          console.log("==================== " + iOSObjCallStr + " ====================");

          // args[0] is self = id
          const argSelf = args[0];
          console.log("argSelf: ", argSelf);
          const argSelfObj = new ObjC.Object(argSelf);
          console.log("argSelfObj: ", argSelfObj);
          const argSelfClassName = argSelfObj.$className;
          console.log("argSelfClassName: ", argSelfClassName);

          const connnServiceNameNSStr = argSelfObj.serviceName();
          const connnServiceNameJsStr = connnServiceNameNSStr.UTF8String()

          // args[1] is selector
          const argSel = args[1];
          console.log("argSel: ", argSel);
          const argSelStr = ObjC.selectorAsString(argSel);
          console.log("argSelStr: ", argSelStr);

          if (connnServiceNameJsStr === "com.apple.ak.auth.xpc") {
            console.log("connnServiceNameNSStr: ", connnServiceNameNSStr);
            console.log("connnServiceNameJsStr: ", connnServiceNameJsStr);

            // args[2] holds the first function argument
            const args2 = args[2];
            console.log("args2: ", args2);
            if (args2 != 0x0) {
              const args2Obj = new ObjC.Object(args2);
              // const args2Obj = new ObjC.Object(ptr(args2));
              console.log("args2Obj: ", args2Obj);
              const args2ObjClassName = args2Obj.$className;
              console.log("args2ObjClassName: ", args2ObjClassName);
              const args2ObjStr = args2Obj.toString();
              console.log("args2ObjStr: ", args2ObjStr);
            }

          }

        }
      });
    }else{
      console.log("Can't find method", funcName);
    }
  }else{
    console.log("Can't find class: ", className);
  }
}

//Your class name  and function name here
hook_specific_method_of_class("NSXPCConnection", "- setExportedObject:")

典型log输出：

==================== -[NSXPCConnection setExportedObject:] ====================
argSelf:  0x1057047a0
argSelfObj:  <NSXPCConnection: 0x1057047a0> connection from pid 46847 on mach service named com.apple.ak.auth.xpc
argSelfClassName:  NSXPCConnection
argSel:  0x19b362b44
argSelStr:  setExportedObject:
argCount:  1
connnServiceNameNSStr:  com.apple.ak.auth.xpc
connnServiceNameJsStr:  com.apple.ak.auth.xpc
args2:  0x105743aa0
args2Obj:  <AKAppleIDAuthenticationService: 0x105743aa0>
args2ObjClassName:  AKAppleIDAuthenticationService
args2ObjStr:  <AKAppleIDAuthenticationService: 0x105743aa0>
==================== -[NSXPCConnection setExportedObject:] ====================
argSelf:  0x1057047a0
argSelfObj:  <NSXPCConnection: 0x1057047a0> connection from pid 46847 on mach service named com.apple.ak.auth.xpc
argSelfClassName:  NSXPCConnection
argSel:  0x19b362b44
argSelStr:  setExportedObject:
argCount:  1
connnServiceNameNSStr:  com.apple.ak.auth.xpc
connnServiceNameJsStr:  com.apple.ak.auth.xpc
args2:  0x0

即：

只打印serviceName是com.apple.ak.auth.xpc的NSXPCConnection，过滤掉其他的，比如之前会打印的：

==================== -[NSXPCConnection setExportedObject:] ====================
argSelf:  0x102d35b60
argSelfObj:  <NSXPCConnection: 0x102d35b60> connection from pid 46847 on mach service named com.apple.ak.anisette.xpc
connnServiceName:  com.apple.ak.anisette.xpc
argSelfClassName:  NSXPCConnection
args2:  0x0

==================== -[NSXPCConnection setExportedObject:] ====================
argSelf:  0x102d34e00
argSelfObj:  <NSXPCConnection: 0x102d34e00> connection from pid 31901 on mach service named com.apple.ak.authorizationservices.xpc
connnServiceName:  com.apple.ak.authorizationservices.xpc
argSelfClassName:  NSXPCConnection
args2:  0x102d513c0
args2Obj:  <AKAuthorizationDaemonService: 0x102d513c0>
args2ObjClassName:  AKAuthorizationDaemonService
args2ObjStr:  <AKAuthorizationDaemonService: 0x102d513c0>

==================== -[NSXPCConnection setExportedObject:] ====================
argSelf:  0x102d35a30
argSelfObj:  <ACTrackedXPCConnection: 0x102d35a30> connection to service with pid 104 named com.apple.accountsd.accountmanager
connnServiceName:  com.apple.accountsd.accountmanager
argSelfClassName:  ACTrackedXPCConnection
args2:  0x0

等内容。

最终代码

/*******************************************************************************
* Util Functions
*******************************************************************************/

/** Function that count occurrences of a substring in a string;
 * @param {String} string               The string
 * @param {String} subString            The sub string to search for
 * @param {Boolean} [allowOverlapping]  Optional. (Default:false)
 *
 * @author Vitim.us https://gist.github.com/victornpb/7736865
 * @see Unit Test https://jsfiddle.net/Victornpb/5axuh96u/
 * @see https://stackoverflow.com/a/7924240/938822
 * @example occurrences("- setExportedObject:", ":") => 1
 */
function occurrences(string, subString, allowOverlapping) {
    // console.log("string=" + string + ",subString=" + subString + ", allowOverlapping=" + allowOverlapping)
    string += "";
    subString += "";
    if (subString.length <= 0) return (string.length + 1);

    var n = 0,
        pos = 0,
        step = allowOverlapping ? 1 : subString.length;

    while (true) {
        pos = string.indexOf(subString, pos);
        // console.log("pos=" + pos)
        if (pos >= 0) {
            ++n;
            pos += step;
        } else break;
    }

    return n;
}

// convert from frida function call to ObjC function call
// "NSURL", "- initWithString:" => "-[NSURL initWithString:]"
function toiOSObjcCall(class_name, method_name){
    const instanceCallStart = "-[" + class_name + " ";
    const classCallStart = "+[" + class_name + " ";
    var objcFuncCall = method_name.replace("- ", instanceCallStart);
    objcFuncCall = objcFuncCall.replace("+ ", classCallStart);
    objcFuncCall = objcFuncCall + "]";
    // console.log(class_name + " -> " + method_name + " => " + objcFuncCall);
    return objcFuncCall;
}

// convert from ObjC function call to frida function call
// "-[NSURL initWithString:]" => ["NSURL", "- initWithString:"]
function toFridaObjcCall(fridaObjcCallStr){
    // console.log("fridaObjcCallStr=" + fridaObjcCallStr)
    const funcCallP = /^([+-])\[(\w+)\s+([\w:]+)\]$/
    // console.log("funcCallP=" + funcCallP)
    const funcCallMatch = fridaObjcCallStr.match(funcCallP)
    // console.log("funcCallMatch=" + funcCallMatch)
    const objcFuncTypeChar = funcCallMatch[1]
    const objcClassName = funcCallMatch[2]
    const objcFuncName = funcCallMatch[3]
    const fridaFuncCallList = [objcClassName, objcFuncTypeChar + " " + objcFuncName]
    // console.log("fridaFuncCallList=" + fridaFuncCallList)
    return fridaFuncCallList
}

// NSString instance -> js string
function nsStrToJsStr(curNsStr){
  // method 1
  return curNsStr.UTF8String()
  // // method 2:
  // const NSUTF8StringEncoding = 4;
  // https://developer.apple.com/documentation/foundation/nsstring/1408489-cstringusingencoding?language=objc
  // return curNsStr.cStringUsingEncoding_(NSUTF8StringEncoding)
}

/*******************************************************************************
* Frida Hook
*******************************************************************************/

// Note: Another write type for for sure can found class and method
// const curMethod = ObjC.classes.NSXPCConnection["- setExportedObject:"];
// console.log("curMethod: ", curMethod);
// const iOSObjCallStr = "-[NSXPCConnection setExportedObject:]";

// https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/hook-specific-method-of-class.js
function hook_specific_method_of_class(className, funcName)
{
  // var iOSObjCallStr = "className=" + className + ", funcName=" + funcName
  var iOSObjCallStr = toiOSObjcCall(className, funcName)
  console.log("iOSObjCallStr=", iOSObjCallStr)
  var curClass = ObjC.classes[className];
  if (typeof(curClass) !== 'undefined') {
    var curMethod = curClass[funcName];
    if (typeof(curMethod) !== 'undefined') {

      Interceptor.attach(curMethod.implementation, {
        onEnter: function(args) {
          console.log("==================== " + iOSObjCallStr + " ====================");
          // console.log("argSelf=" + args[0] + ", argSel=" + args[1] + ", realArg1=" + args[2]);

          // args[0] is self = id
          const argSelf = args[0];
          // console.log("argSelf: ", argSelf);
          const argSelfObj = new ObjC.Object(argSelf);
          console.log("argSelfObj: ", argSelfObj);
          const argSelfClassName = argSelfObj.$className;
          // console.log("argSelfClassName: ", argSelfClassName);

          const connnServiceNameNSStr = argSelfObj.serviceName();
          // const connnServiceNameJsStr = connnServiceNameNSStr.UTF8String()
          const connnServiceNameJsStr = nsStrToJsStr(connnServiceNameNSStr)

          // // args[1] is selector
          // const argSel = args[1];
          // console.log("argSel: ", argSel);
          // const argSelStr = ObjC.selectorAsString(argSel);
          // console.log("argSelStr: ", argSelStr);

          // const argCount = occurrences(argSelStr, ":");
          // console.log("argCount: ", argCount);

          // console.log("funcName=", funcName);
          // const argCount = occurrences(funcName, ":");
          // console.log("argCount: ", argCount);

          if (connnServiceNameJsStr === "com.apple.ak.auth.xpc") {
            // console.log("connnServiceNameNSStr: ", connnServiceNameNSStr);
            console.log("connnServiceNameJsStr: ", connnServiceNameJsStr);

            // args[2] holds the first function argument
            const args2 = args[2];
            console.log("args2: ", args2);
            if (args2 != 0x0) {
              const args2Obj = new ObjC.Object(args2);
              // const args2Obj = new ObjC.Object(ptr(args2));
              console.log("args2Obj: ", args2Obj);
              const args2ObjClassName = args2Obj.$className;
              console.log("args2ObjClassName: ", args2ObjClassName);
              const args2ObjStr = args2Obj.toString();
              console.log("args2ObjStr: ", args2ObjStr);
            }

          }

          // // debug: output all function real parameters
          // for (let curArgIdx = 0; curArgIdx < argCount; curArgIdx++) {
          //   const curArg = args[curArgIdx + 2];

          //   // const usePtr = false;
          //   const usePtr = true;
          //   if (usePtr) {
          //     // console.log("usePtr=", usePtr);
          //     const curArgPtr = ptr(curArg);
          //     console.log("---------- [" + curArgIdx + "] curArgPtr=" + curArgPtr);
          //     if (!curArgPtr.isNull()) {
          //       const curArgPtrObj = new ObjC.Object(curArgPtr);
          //       console.log("curArgPtrObj: ", curArgPtrObj);
          //       console.log("curArgPtrObj className: ", curArgPtrObj.$className);
          //       console.log("curArgPtrObj kind: ", curArgPtrObj.$kind);
          //     }
          //   } else {
          //     console.log("---------- [" + curArgIdx + "] curArg=" + curArg);
          //     if (curArg && (curArg != 0x0)) {
          //       // console.log("curArg className: ", curArg.$className);
          //       const curArgObj = new ObjC.Object(curArg);
          //       console.log("curArgObj: ", curArgObj);
          //       console.log("curArgObj className: ", curArgObj.$className);
          //       console.log("curArgObj kind: ", curArgObj.$kind);
          //     }
          //   }
          // }

        }
      });
    }else{
      console.log("Can't find method", funcName);
    }
  }else{
    console.log("Can't find class: ", className);
  }
}

//Your class name  and function name here
hook_specific_method_of_class("NSXPCConnection", "- setExportedObject:")

输出log：

==================== -[NSXPCConnection setExportedObject:] ====================
argSelfObj:  <NSXPCConnection: 0x105711f20> connection from pid 46847 on mach service named com.apple.ak.auth.xpc
connnServiceNameJsStr:  com.apple.ak.auth.xpc
args2:  0x10572c200
args2Obj:  <AKAppleIDAuthenticationService: 0x10572c200>
args2ObjClassName:  AKAppleIDAuthenticationService
args2ObjStr:  <AKAppleIDAuthenticationService: 0x10572c200>
==================== -[NSXPCConnection setExportedObject:] ====================
argSelfObj:  <NSXPCConnection: 0x105711f20> connection from pid 46847 on mach service named com.apple.ak.auth.xpc
connnServiceNameJsStr:  com.apple.ak.auth.xpc
args2:  0x0
==================== -[NSXPCConnection setExportedObject:] ====================
argSelfObj:  <NSXPCConnection: 0x10291a0d0> connection from pid 46847 on mach service named com.apple.ak.auth.xpc
connnServiceNameJsStr:  com.apple.ak.auth.xpc
args2:  0x10273cb50
args2Obj:  <AKAppleIDAuthenticationService: 0x10273cb50>
args2ObjClassName:  AKAppleIDAuthenticationService
args2ObjStr:  <AKAppleIDAuthenticationService: 0x10273cb50>
==================== -[NSXPCConnection setExportedObject:] ====================
argSelfObj:  <ACTrackedXPCConnection: 0x102711470> connection to service named com.apple.accountsd.accountmanager
==================== -[NSXPCConnection setExportedObject:] ====================
argSelfObj:  <ACTrackedXPCConnection: 0x102711470> connection to service with pid 104 named com.apple.accountsd.accountmanager

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-03-19 09:52:43

单个类的所有函数

单个类的所有函数

hook类AAUISignInViewController的所有函数

Frida命令

frida -U -F -p 18533 -l ./hookAccountLogin_Interceptor.js

js文件hookAccountLogin_Interceptor.js内容

// https://raw.githubusercontent.com/noobpk/frida-ios-hook/master/frida-ios-hook/frida-scripts/hook-all-methods-of-specific-class.js
function hook_class_method(class_name, method_name)
{
    var hook = ObjC.classes[class_name][method_name];
        Interceptor.attach(hook.implementation, {
            onEnter: function(args) {
            console.log("[*] Detected call to: " + class_name + " -> " + method_name);
        }
    });
}

function run_hook_all_methods_of_specific_class(className_arg)
{
    console.log("[*] Started: Hook all methods of a specific class");
    console.log("[+] Class Name: " + className_arg);
    //Your class name here
    var className = className_arg;
    //var methods = ObjC.classes[className].$methods;
    var methods = ObjC.classes[className].$ownMethods;
    for (var i = 0; i < methods.length; i++)
    {
        console.log("  "+methods[i]);
        // console.log("\t[*] Hooking into implementation");
        //eval('var className2 = "'+className+'"; var funcName2 = "'+methods[i]+'"; var hook = eval(\'ObjC.classes.\'+className2+\'["\'+funcName2+\'"]\'); Interceptor.attach(hook.implementation, {   onEnter: function(args) {    console.log("[*] Detected call to: " + className2 + " -> " + funcName2);  } });');
        var className2 = className;
        var funcName2 = methods[i];
        hook_class_method(className2, funcName2);
        // console.log("\t[*] Hooking successful");
    }
    console.log("[*] Completed: Hook all methods of a specific class");
}

function hook_all_methods_of_specific_class(className_arg)
{
    setImmediate(run_hook_all_methods_of_specific_class,[className_arg])
}

//Your class name goes here
hook_all_methods_of_specific_class("AAUISignInViewController")

输出

最开始输出：

✘ crifan@licrifandeMacBook-Pro  ~/dev/dev_root/iosReverse/AppleStore/Preferences_app/dynamicDebug/frida  frida -U -F -l ./hookAccountLogin_Interceptor.js -p 18533
     ____
    / _  |   Frida 16.0.10 - A world-class dynamic instrumentation toolkit
   | (_| |
    > _  |   Commands:
   /_/ |_|       help      -> Displays the help system
   . . . .       object?   -> Display information about 'object'
   . . . .       exit/quit -> Exit
   . . . .
   . . . .   More info at https://frida.re/docs/home/
   . . . .
   . . . .   Connected to iPhone (id=abdc0dd961c3cb96f5c4afe109de4eb48b88433a)
Attaching...
[*] Started: Hook all methods of a specific class
[+] Class Name: AAUISignInViewController
  + phoneNumberSupportedWithCompletion:
  - textField:shouldChangeCharactersInRange:replacementString:
  - tableView:viewForHeaderInSection:
  - textFieldShouldReturn:
  - _keyboardWillHide:
  - titleLabel
  - _keyboardWillShow:
  - loadView
  - setUsername:
  - sizeCategoryDidChange:
  - _hasValidCredentials
  - username
  - tableView:numberOfRowsInSection:
  - viewDidLoad
  - _tableView
  - delegate
  - authenticationContext
  - _setEnabled:
  - _tableFooterView
  - viewWillAppear:
  - tableView:willDisplayCell:forRowAtIndexPath:
  - remoteUIController:shouldLoadRequest:redirectResponse:
  - .cxx_destruct
  - numberOfSectionsInTableView:
  - viewDidDisappear:
  - traitCollectionDidChange:
  - initWithCoder:
  - tableView:heightForRowAtIndexPath:
  - tableView:viewForFooterInSection:
  - tableView:cellForRowAtIndexPath:
  - setDelegate:
  - _tableHeaderView
  - tableView:shouldDrawTopSeparatorForSection:
  - messageLabel
  - initWithNibName:bundle:
  - dealloc
  - _cancelBarButtonItem
  - viewDidLayoutSubviews
  - _cancelPasswordDelegateIfNecessary
  - context:needsPasswordWithCompletion:
  - _passwordCell
  - _textFieldDidChange:
  - _nextBarButtonItem
  - _updateConstraintsForTraitCollection:
  - _beginObservingTextFieldDidChangeNotifications
  - _beginObservingKeyboardWillShowNotifications
  - _beginObservingSizeCategoryNotification
  - _usernameCell
  - _updateContentInsetWithHeight:
  - _endObservingSizeCategoryNotification
  - _endObservingTextFieldDidChangeNotifications
  - _endObservingKeyboardWillShowNotifications
  - _akServiceType
  - _shouldAnticipatePiggybacking
  - _accountsHeaderView
  - _cancelButtonSelected:
  - _nextButtonSelected:
  - constrainView:toFillHeaderFooterView:
  - allowsAccountCreation
  - _actionButtonSelected:
  - showServiceIcons
  - _stringForFooter
  - privacyLinkIdentifiers
  - _showOnlyPassword
  - _isGreenTeaCapable
  - _setUsernameCellWaiting:
  - _delegate_signInViewControllerDidCancel
  - _attemptAuthentication
  - _prewarmSignInFlowIfApplicable
  - _presentForgotAppleIDPane
  - _presentCreateAppleIDPane
  - _attemptAuthenticationWithContext:
  - _isPasswordFieldVisible
  - _isRunningInSettings
  - _repairCloudAccountWithAuthenticationResults:
  - _delegate_signInViewControllerDidCompleteWithAuthenticationResults:
  - _authorizationValueForAuthenticationResults:
  - _passwordFieldIndexPath
  - _setPasswordFieldHidden:
  - _setAkServiceType:
  - _setShouldAnticipatePiggybacking:
  - setAllowsAccountCreation:
  - setShowServiceIcons:
  - canEditUsername
  - setCanEditUsername:
  - setPrivacyLinkIdentifiers:
  - showingPasswordCell
  - setShowingPasswordCell:
[*] Completed: Hook all methods of a specific class
[iPhone::PID::18533 ]->

后续操作app页面，触发：

...
[*] Detected call to: AAUISignInViewController -> - textField:shouldChangeCharactersInRange:replacementString:
[*] Detected call to: AAUISignInViewController -> - _isPasswordFieldVisible
[*] Detected call to: AAUISignInViewController -> - _showOnlyPassword
[*] Detected call to: AAUISignInViewController -> - _textFieldDidChange:
[*] Detected call to: AAUISignInViewController -> - _hasValidCredentials
[*] Detected call to: AAUISignInViewController -> - _textFieldDidChange:
[*] Detected call to: AAUISignInViewController -> - _hasValidCredentials
[*] Detected call to: AAUISignInViewController -> - textField:shouldChangeCharactersInRange:replacementString:
[*] Detected call to: AAUISignInViewController -> - _isPasswordFieldVisible
[*] Detected call to: AAUISignInViewController -> - _showOnlyPassword
[*] Detected call to: AAUISignInViewController -> - _textFieldDidChange:
[*] Detected call to: AAUISignInViewController -> - _hasValidCredentials
[*] Detected call to: AAUISignInViewController -> - textField:shouldChangeCharactersInRange:replacementString:
[*] Detected call to: AAUISignInViewController -> - _isPasswordFieldVisible
[*] Detected call to: AAUISignInViewController -> - _showOnlyPassword
[*] Detected call to: AAUISignInViewController -> - _textFieldDidChange:
[*] Detected call to: AAUISignInViewController -> - _hasValidCredentials
[*] Detected call to: AAUISignInViewController -> - textField:shouldChangeCharactersInRange:replacementString:
[*] Detected call to: AAUISignInViewController -> - _isPasswordFieldVisible
[*] Detected call to: AAUISignInViewController -> - _showOnlyPassword
[*] Detected call to: AAUISignInViewController -> - _textFieldDidChange:
[*] Detected call to: AAUISignInViewController -> - _hasValidCredentials
[*] Detected call to: AAUISignInViewController -> - textField:shouldChangeCharactersInRange:replacementString:
[*] Detected call to: AAUISignInViewController -> - _isPasswordFieldVisible
[*] Detected call to: AAUISignInViewController -> - _showOnlyPassword
[*] Detected call to: AAUISignInViewController -> - _textFieldDidChange:
[*] Detected call to: AAUISignInViewController -> - _hasValidCredentials

继续操作app页面：输入账号，点击下一步按钮，输出：

[*] Detected call to: AAUISignInViewController -> - _attemptAuthentication
[*] Detected call to: AAUISignInViewController -> - _isPasswordFieldVisible
[*] Detected call to: AAUISignInViewController -> - _showOnlyPassword
[*] Detected call to: AAUISignInViewController -> - authenticationContext
[*] Detected call to: AAUISignInViewController -> - _akServiceType
[*] Detected call to: AAUISignInViewController -> - _shouldAnticipatePiggybacking
[*] Detected call to: AAUISignInViewController -> - _isRunningInSettings
[*] Detected call to: AAUISignInViewController -> - _attemptAuthenticationWithContext:
[*] Detected call to: AAUISignInViewController -> - _setEnabled:
[*] Detected call to: AAUISignInViewController -> - textField:shouldChangeCharactersInRange:replacementString:
[*] Detected call to: AAUISignInViewController -> - _isPasswordFieldVisible
[*] Detected call to: AAUISignInViewController -> - _showOnlyPassword
[*] Detected call to: AAUISignInViewController -> - _textFieldDidChange:
[*] Detected call to: AAUISignInViewController -> - _hasValidCredentials
[*] Detected call to: AAUISignInViewController -> - _textFieldDidChange:
[*] Detected call to: AAUISignInViewController -> - _hasValidCredentials
[*] Detected call to: AAUISignInViewController -> - _keyboardWillShow:
[*] Detected call to: AAUISignInViewController -> - _updateContentInsetWithHeight:
[*] Detected call to: AAUISignInViewController -> - _keyboardWillHide:
[*] Detected call to: AAUISignInViewController -> - _updateContentInsetWithHeight:
[*] Detected call to: AAUISignInViewController -> - _setUsernameCellWaiting:
[*] Detected call to: AAUISignInViewController -> - _showOnlyPassword
[*] Detected call to: AAUISignInViewController -> - _prewarmSignInFlowIfApplicable
[*] Detected call to: AAUISignInViewController -> - showServiceIcons
[*] Detected call to: AAUISignInViewController -> - context:needsPasswordWithCompletion:
[*] Detected call to: AAUISignInViewController -> - _setPasswordFieldHidden:
[*] Detected call to: AAUISignInViewController -> - _isPasswordFieldVisible
[*] Detected call to: AAUISignInViewController -> - _showOnlyPassword
[*] Detected call to: AAUISignInViewController -> - _passwordFieldIndexPath
[*] Detected call to: AAUISignInViewController -> - numberOfSectionsInTableView:
[*] Detected call to: AAUISignInViewController -> - numberOfSectionsInTableView:
[*] Detected call to: AAUISignInViewController -> - tableView:numberOfRowsInSection:
[*] Detected call to: AAUISignInViewController -> - _showOnlyPassword
[*] Detected call to: AAUISignInViewController -> - tableView:heightForRowAtIndexPath:
[*] Detected call to: AAUISignInViewController -> - tableView:heightForRowAtIndexPath:
[*] Detected call to: AAUISignInViewController -> - tableView:cellForRowAtIndexPath:
[*] Detected call to: AAUISignInViewController -> - _passwordFieldIndexPath
[*] Detected call to: AAUISignInViewController -> - _passwordCell
[*] Detected call to: AAUISignInViewController -> - tableView:shouldDrawTopSeparatorForSection:
[*] Detected call to: AAUISignInViewController -> - tableView:heightForRowAtIndexPath:
[*] Detected call to: AAUISignInViewController -> - tableView:willDisplayCell:forRowAtIndexPath:
[*] Detected call to: AAUISignInViewController -> - tableView:shouldDrawTopSeparatorForSection:
[*] Detected call to: AAUISignInViewController -> - _setEnabled:
[*] Detected call to: AAUISignInViewController -> - _hasValidCredentials
[*] Detected call to: AAUISignInViewController -> - _setUsernameCellWaiting:
[*] Detected call to: AAUISignInViewController -> - tableView:shouldDrawTopSeparatorForSection:
[*] Detected call to: AAUISignInViewController -> - tableView:shouldDrawTopSeparatorForSection:
[*] Detected call to: AAUISignInViewController -> - _keyboardWillShow:
[*] Detected call to: AAUISignInViewController -> - _updateContentInsetWithHeight:
[*] Detected call to: AAUISignInViewController -> - _keyboardWillShow:
[*] Detected call to: AAUISignInViewController -> - _updateContentInsetWithHeight:

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-23 22:45:46

所有类的所有函数

所有类的所有函数

注意：下面代码，没有真正生效，实现我们希望的，hook所有的类的所有的方法

只是记录目前的效果，供参考。

frida命令

frida -U -N com.apple.Preferences -l hookAccountLogin_Interceptor_allClassAllMethod.js

js脚本文件hookAccountLogin_Interceptor_allClassAllMethod.js内容

// https://github.com/noobpk/frida-ios-hook/blob/master/frida-ios-hook/frida-scripts/hook-all-methods-of-all-classes-app-only.js

function get_timestamp()
{
    var today = new Date();
    var timestamp = today.getFullYear() + '-' + (today.getMonth()+1) + '-' + today.getDate() + ' ' + today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds() + ":" + today.getMilliseconds();
    return timestamp;
}

function hook_class_method(class_name, method_name)
{
    var hook = ObjC.classes[class_name][method_name];
        Interceptor.attach(hook.implementation, {
            onEnter: function(args) {
            console.log("[*] [" + get_timestamp() + " ] Detected call to: " + class_name + " -> " + method_name);
        }
    });
}

function run_hook_all_methods_of_classes_app_only(verbose)
{
    console.log("[*] Started: Hook all methods of all app only classes");
    var free = new NativeFunction(Module.findExportByName(null, 'free'), 'void', ['pointer'])
    var copyClassNamesForImage = new NativeFunction(Module.findExportByName(null, 'objc_copyClassNamesForImage'), 'pointer', ['pointer', 'pointer'])
    var p = Memory.alloc(Process.pointerSize)
    Memory.writeUInt(p, 0)
    var path = ObjC.classes.NSBundle.mainBundle().executablePath().UTF8String()
    var pPath = Memory.allocUtf8String(path)
    var pClasses = copyClassNamesForImage(pPath, p)
    var count = Memory.readUInt(p)
    var classesArray = new Array(count)
    for (var i = 0; i < count; i++)
    {
        var pClassName = Memory.readPointer(pClasses.add(i * Process.pointerSize))
        classesArray[i] = Memory.readUtf8String(pClassName)
        var className = classesArray[i]
        if (ObjC.classes.hasOwnProperty(className))
        {
            //console.log("[+] Class: " + className);
            //var methods = ObjC.classes[className].$methods;
            var methods = ObjC.classes[className].$ownMethods;
            for (var j = 0; j < methods.length; j++)
            {
                try
                {
                    var className2 = className;
                    var funcName2 = methods[j];
                    //console.log("[-] Method: " + methods[j]);
                    hook_class_method(className2, funcName2);
                    if (verbose)
                        console.log("[*] [" + get_timestamp() + "] Hooking successful: " + className2 + " -> " + funcName2);
                }
                catch(err)
                {
                    console.log("[*] [" + get_timestamp() + "] Hooking Error: " + err.message);
                }
            }
        }
    }
    free(pClasses)
    console.log("[*] Completed: Hook all methods of all app only classes");
}

function hook_all_methods_of_classes_app_only()
{
    setImmediate(run_hook_all_methods_of_classes_app_only,[false])
}

function hook_all_methods_of_classes_app_only(verbose)
{
    setImmediate(run_hook_all_methods_of_classes_app_only,[true])
}

hook_all_methods_of_classes_app_only()
//hook_all_methods_of_classes_app_only("verbose") //for verbose output

输出

➜  scripts frida -U -N com.apple.Preferences -l hookAccountLogin_Interceptor_allClassAllMethod.js
     ____
    / _  |   Frida 16.0.19 - A world-class dynamic instrumentation toolkit
   | (_| |
    > _  |   Commands:
   /_/ |_|       help      -> Displays the help system
   . . . .       object?   -> Display information about 'object'
   . . . .       exit/quit -> Exit
   . . . .
   . . . .   More info at https://frida.re/docs/home/
   . . . .
   . . . .   Connected to iPhone (id=abdc0dd961c3cb96f5c4afe109de4eb48b88433a)
[*] Started: Hook all methods of all app only classes
[*] [2023-6-23 15:28:28:851] Hooking successful: PreferencesAppController -> - rootController
[*] [2023-6-23 15:28:28:852] Hooking successful: PreferencesAppController -> - appWindow
[*] [2023-6-23 15:28:28:853] Hooking successful: PreferencesAppController -> - profileConnectionDidReceiveProfileListChangedNotification:userInfo:
[*] [2023-6-23 15:28:28:854] Hooking successful: PreferencesAppController -> - profileConnectionDidReceiveRestrictionChangedNotification:userInfo:
[*] [2023-6-23 15:28:28:855] Hooking successful: PreferencesAppController -> - profileConnectionDidReceiveEffectiveSettingsChangedNotification:userInfo:
[*] [2023-6-23 15:28:28:856] Hooking successful: PreferencesAppController -> - profileConnectionDidReceivePasscodeChangedNotification:userInfo:
[*] [2023-6-23 15:28:28:858] Hooking successful: PreferencesAppController -> - clearControllersForSuspendedState
[*] [2023-6-23 15:28:28:858] Hooking successful: PreferencesAppController -> - popToRootOfSettingsSelectGeneral:
[*] [2023-6-23 15:28:28:859] Hooking successful: PreferencesAppController -> - popToRootOfSettingsSelectGeneral:performWithoutDeferringTransitions:
[*] [2023-6-23 15:28:28:860] Hooking successful: PreferencesAppController -> - runTest:options:
[*] [2023-6-23 15:28:28:862] Hooking successful: PreferencesAppController -> - runLoadingTest:withOptions:
[*] [2023-6-23 15:28:28:863] Hooking successful: PreferencesAppController -> - runScrollTest:withOptions:
[*] [2023-6-23 15:28:28:864] Hooking successful: PreferencesAppController -> - runScrollTest:withDelay:withOptions:
[*] [2023-6-23 15:28:28:866] Hooking successful: PreferencesAppController -> - performRecapScrollTest:withOptions:scrollView:
[*] [2023-6-23 15:28:28:867] Hooking successful: PreferencesAppController -> - updateSoftwareUpdateBadgeOnSpecifier:
[*] [2023-6-23 15:28:28:868] Hooking successful: PreferencesAppController -> - _registerForAccessoryNotifications
[*] [2023-6-23 15:28:28:869] Hooking successful: PreferencesAppController -> - application:didFinishLaunchingWithOptions:
[*] [2023-6-23 15:28:28:871] Hooking successful: PreferencesAppController -> - processStateRestorationURL
[*] [2023-6-23 15:28:28:871] Hooking successful: PreferencesAppController -> - application:configurationForConnectingSceneSession:options:
[*] [2023-6-23 15:28:28:873] Hooking successful: PreferencesAppController -> - receivedApplicationWillConnectWindowScene:
[*] [2023-6-23 15:28:28:874] Hooking successful: PreferencesAppController -> - quickActionShortcutItems
[*] [2023-6-23 15:28:28:875] Hooking successful: PreferencesAppController -> - receivedApplicationWillTerminateNotification:
[*] [2023-6-23 15:28:28:884] Hooking successful: PreferencesAppController -> - receivedApplicationDidEnterBackground:
[*] [2023-6-23 15:28:28:886] Hooking successful: PreferencesAppController -> - receivedApplicationWillEnterForegroundNotification:
[*] [2023-6-23 15:28:28:887] Hooking successful: PreferencesAppController -> - receivedApplicationDidBecomeActive:
[*] [2023-6-23 15:28:28:888] Hooking successful: PreferencesAppController -> - receivedApplicationWillResignActiveNotification:
[*] [2023-6-23 15:28:28:890] Hooking successful: PreferencesAppController -> - receivedApplicationContinueUserActivity:
[*] [2023-6-23 15:28:28:890] Hooking successful: PreferencesAppController -> - receivedApplicationResumeNotification:
[*] [2023-6-23 15:28:28:892] Hooking successful: PreferencesAppController -> - receivedApplicationOpenURLNotification:
[*] [2023-6-23 15:28:28:893] Hooking successful: PreferencesAppController -> - processURL:
[*] [2023-6-23 15:28:28:894] Hooking successful: PreferencesAppController -> - processURL:animated:fromSearch:
[*] [2023-6-23 15:28:28:895] Hooking successful: PreferencesAppController -> - processURL:animated:fromSearch:withCompletion:
[*] [2023-6-23 15:28:28:896] Hooking successful: PreferencesAppController -> - _rationalizeAccountSettingsURLDictionary:
[*] [2023-6-23 15:28:28:898] Hooking successful: PreferencesAppController -> - handleAuthKitURLIfNeededFromResourceDictionary:overViewController:
[*] [2023-6-23 15:28:28:898] Hooking successful: PreferencesAppController -> - processAppPrefsURL:
[*] [2023-6-23 15:28:28:899] Hooking successful: PreferencesAppController -> - processShorcutsAppPrefsURL:
[*] [2023-6-23 15:28:28:900] Hooking successful: PreferencesAppController -> - processPrebuddyURL:
[*] [2023-6-23 15:28:28:901] Hooking successful: PreferencesAppController -> - processTVProviderPrefsURL:
[*] [2023-6-23 15:28:28:902] Hooking successful: PreferencesAppController -> - processOtpauthURL:
[*] [2023-6-23 15:28:28:903] Hooking successful: PreferencesAppController -> - generateURL
[*] [2023-6-23 15:28:28:904] Hooking successful: PreferencesAppController -> - _clearSavedPositionURL
[*] [2023-6-23 15:28:28:905] Hooking successful: PreferencesAppController -> - oneTimeJumpURL
[*] [2023-6-23 15:28:28:907] Hooking successful: PreferencesAppController -> - addBusyControllersFromRootController:
[*] [2023-6-23 15:28:28:908] Hooking successful: PreferencesAppController -> - endAndInvalidateBackgroundTask
[*] [2023-6-23 15:28:28:909] Hooking successful: PreferencesAppController -> - controllerFinished:
[*] [2023-6-23 15:28:28:910] Hooking successful: PreferencesAppController -> - _handleBusyControllers
[*] [2023-6-23 15:28:28:911] Hooking successful: PreferencesAppController -> - _suspendControllers
[*] [2023-6-23 15:28:28:912] Hooking successful: PreferencesAppController -> - _handleExternalApplicationChange
[*] [2023-6-23 15:28:28:913] Hooking successful: PreferencesAppController -> - _handleIconChangeForBundleID:
[*] [2023-6-23 15:28:28:914] Hooking successful: PreferencesAppController -> - systemDidWake:
[*] [2023-6-23 15:28:28:915] Hooking successful: PreferencesAppController -> - significantTimeChange
[*] [2023-6-23 15:28:28:916] Hooking successful: PreferencesAppController -> - resetLocale
[*] [2023-6-23 15:28:28:917] Hooking successful: PreferencesAppController -> - defaultImageSnapshotExpiration
[*] [2023-6-23 15:28:28:918] Hooking successful: PreferencesAppController -> - dealloc
[*] [2023-6-23 15:28:28:919] Hooking successful: PreferencesAppController -> - _registerForPowerNotifications
[*] [2023-6-23 15:28:28:920] Hooking successful: PreferencesAppController -> - _deregisterForPowerNotifications
[*] [2023-6-23 15:28:28:921] Hooking successful: PreferencesAppController -> - _accessoryDidConnect:
[*] [2023-6-23 15:28:28:922] Hooking successful: PreferencesAppController -> - accessoryDidDisconnect:
[*] [2023-6-23 15:28:28:923] Hooking successful: PreferencesAppController -> - splitViewController:separateSecondaryViewControllerFromPrimaryViewController:
[*] [2023-6-23 15:28:28:924] Hooking successful: PreferencesAppController -> - splitViewController:collapseSecondaryViewController:ontoPrimaryViewController:
[*] [2023-6-23 15:28:28:925] Hooking successful: PreferencesAppController -> - splitViewControllerDidPopToRootController:
[*] [2023-6-23 15:28:28:926] Hooking successful: PreferencesAppController -> - carrierBundleChange:
[*] [2023-6-23 15:28:28:927] Hooking successful: PreferencesAppController -> - rootDomainConnect
[*] [2023-6-23 15:28:28:929] Hooking successful: PreferencesAppController -> - setRootDomainConnect:
[*] [2023-6-23 15:28:28:930] Hooking successful: PreferencesAppController -> - busyControllers
[*] [2023-6-23 15:28:28:931] Hooking successful: PreferencesAppController -> - setBusyControllers:
[*] [2023-6-23 15:28:28:931] Hooking successful: PreferencesAppController -> - client
[*] [2023-6-23 15:28:28:932] Hooking successful: PreferencesAppController -> - setClient:
[*] [2023-6-23 15:28:28:933] Hooking successful: PreferencesAppController -> - urlManager
[*] [2023-6-23 15:28:28:934] Hooking successful: PreferencesAppController -> - setUrlManager:
[*] [2023-6-23 15:28:28:935] Hooking successful: PreferencesAppController -> - windowSceneClass
[*] [2023-6-23 15:28:28:936] Hooking successful: PreferencesAppController -> - setWindowSceneClass:
[*] [2023-6-23 15:28:28:937] Hooking successful: PreferencesAppController -> - scene
[*] [2023-6-23 15:28:28:938] Hooking successful: PreferencesAppController -> - setScene:
[*] [2023-6-23 15:28:28:939] Hooking successful: PreferencesAppController -> - accountEnumerator
[*] [2023-6-23 15:28:28:940] Hooking successful: PreferencesAppController -> - setAccountEnumerator:
[*] [2023-6-23 15:28:28:941] Hooking successful: PreferencesAppController -> - _uuidRegex
[*] [2023-6-23 15:28:28:942] Hooking successful: PreferencesAppController -> - set_uuidRegex:
[*] [2023-6-23 15:28:28:943] Hooking successful: PreferencesAppController -> - .cxx_destruct
[*] [2023-6-23 15:28:28:945] Hooking successful: PreferenceSceneDelegate -> - scene:willConnectToSession:options:
[*] [2023-6-23 15:28:28:946] Hooking successful: PreferenceSceneDelegate -> - scene:openURLContexts:
[*] [2023-6-23 15:28:28:947] Hooking successful: PreferenceSceneDelegate -> - scene:continueUserActivity:
[*] [2023-6-23 15:28:28:948] Hooking successful: PreferenceSceneDelegate -> - windowScene:performActionForShortcutItem:completionHandler:
[*] Completed: Hook all methods of all app only classes
[iPhone::com.apple.Preferences ]->

后续操作Preferences的页面，但是却没有更多的输出。

暂时就这样，有空再深究。

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-23 15:31:48

ApiResolver

ApiResolver

查找类AAUISignInViewController中的所有函数

Frida命令

frida -U -p 18031 -l ./hookAccountLogin.js

js文件hookAccountLogin.js的内容

var resolver = new ApiResolver('objc');
resolver.enumerateMatches('*[AAUISignInViewController *]', {
  onMatch: function(match) {
    console.log(match['name'] + ":" + match['address']);
  },

  onComplete: function() {}
});

输出

✘ crifan@licrifandeMacBook-Pro  ~/dev/dev_root/iosReverse/AppleStore/Preferences_app/dynamicDebug/frida  frida -U -l ./hookAccountLogin.js -p 18031
     ____
    / _  |   Frida 16.0.10 - A world-class dynamic instrumentation toolkit
   | (_| |
    > _  |   Commands:
   /_/ |_|       help      -> Displays the help system
   . . . .       object?   -> Display information about 'object'
   . . . .       exit/quit -> Exit
   . . . .
   . . . .   More info at https://frida.re/docs/home/
   . . . .
   . . . .   Connected to iPhone (id=abdc0dd961c3cb96f5c4afe109de4eb48b88433a)
Attaching...
+[AAUISignInViewController phoneNumberSupportedWithCompletion:]:0x1b30c82f4
-[AAUISignInViewController textField:shouldChangeCharactersInRange:replacementString:]:0x1b30ce4bc
-[AAUISignInViewController tableView:viewForHeaderInSection:]:0x1b30ce40c
-[AAUISignInViewController textFieldShouldReturn:]:0x1b30ce47c
-[AAUISignInViewController _keyboardWillHide:]:0x1b30cda40
-[AAUISignInViewController titleLabel]:0x1b30c954c
-[AAUISignInViewController _keyboardWillShow:]:0x1b30cd7e8
-[AAUISignInViewController loadView]:0x1b30c872c
-[AAUISignInViewController setUsername:]:0x1b30ce81c
-[AAUISignInViewController sizeCategoryDidChange:]:0x1b30cdd64
-[AAUISignInViewController _hasValidCredentials]:0x1b30cb5ec
-[AAUISignInViewController username]:0x1b30ce80c
-[AAUISignInViewController tableView:numberOfRowsInSection:]:0x1b30ce170
-[AAUISignInViewController viewDidLoad]:0x1b30c878c
-[AAUISignInViewController _tableView]:0x1b30c9a70
-[AAUISignInViewController delegate]:0x1b30ce798
-[AAUISignInViewController authenticationContext]:0x1b30c92c4
-[AAUISignInViewController _setEnabled:]:0x1b30cb7f8
-[AAUISignInViewController _tableFooterView]:0x1b30ca644
-[AAUISignInViewController viewWillAppear:]:0x1b30c8f7c
-[AAUISignInViewController tableView:willDisplayCell:forRowAtIndexPath:]:0x1b30ce3a8
-[AAUISignInViewController remoteUIController:shouldLoadRequest:redirectResponse:]:0x1b30ce000
-[AAUISignInViewController .cxx_destruct]:0x1b30ce884
-[AAUISignInViewController numberOfSectionsInTableView:]:0x1b30ce168
-[AAUISignInViewController viewDidDisappear:]:0x1b30c91e8
-[AAUISignInViewController traitCollectionDidChange:]:0x1b30ce5cc
-[AAUISignInViewController initWithCoder:]:0x1b30c86dc
-[AAUISignInViewController tableView:heightForRowAtIndexPath:]:0x1b30ce324
-[AAUISignInViewController tableView:viewForFooterInSection:]:0x1b30ce440
-[AAUISignInViewController tableView:cellForRowAtIndexPath:]:0x1b30ce1b0
-[AAUISignInViewController setDelegate:]:0x1b30ce7b8
-[AAUISignInViewController _tableHeaderView]:0x1b30c9708
-[AAUISignInViewController tableView:shouldDrawTopSeparatorForSection:]:0x1b30ce474
-[AAUISignInViewController messageLabel]:0x1b30c95a0
-[AAUISignInViewController initWithNibName:bundle:]:0x1b30c8498
-[AAUISignInViewController dealloc]:0x1b30c9258
-[AAUISignInViewController _cancelBarButtonItem]:0x1b30c95f4
-[AAUISignInViewController viewDidLayoutSubviews]:0x1b30c9144
-[AAUISignInViewController _cancelPasswordDelegateIfNecessary]:0x1b30ccecc
-[AAUISignInViewController context:needsPasswordWithCompletion:]:0x1b30cdfa0
-[AAUISignInViewController _passwordCell]:0x1b30ca1c0
-[AAUISignInViewController _textFieldDidChange:]:0x1b30cd4d4
-[AAUISignInViewController _nextBarButtonItem]:0x1b30c9638
-[AAUISignInViewController _updateConstraintsForTraitCollection:]:0x1b30ce6c0
-[AAUISignInViewController _beginObservingTextFieldDidChangeNotifications]:0x1b30cd40c
-[AAUISignInViewController _beginObservingKeyboardWillShowNotifications]:0x1b30cd5f0
-[AAUISignInViewController _beginObservingSizeCategoryNotification]:0x1b30cdc9c
-[AAUISignInViewController _usernameCell]:0x1b30c9c00
-[AAUISignInViewController _updateContentInsetWithHeight:]:0x1b30cdb74
-[AAUISignInViewController _endObservingSizeCategoryNotification]:0x1b30cdd04
-[AAUISignInViewController _endObservingTextFieldDidChangeNotifications]:0x1b30cd474
-[AAUISignInViewController _endObservingKeyboardWillShowNotifications]:0x1b30cd6f8
-[AAUISignInViewController _akServiceType]:0x1b30ce758
-[AAUISignInViewController _shouldAnticipatePiggybacking]:0x1b30ce778
-[AAUISignInViewController _accountsHeaderView]:0x1b30c97b0
-[AAUISignInViewController _cancelButtonSelected:]:0x1b30cb96c
-[AAUISignInViewController _nextButtonSelected:]:0x1b30cb978
-[AAUISignInViewController constrainView:toFillHeaderFooterView:]:0x1b30cb1d0
-[AAUISignInViewController allowsAccountCreation]:0x1b30ce7cc
-[AAUISignInViewController _actionButtonSelected:]:0x1b30cb9ac
-[AAUISignInViewController showServiceIcons]:0x1b30ce7ec
-[AAUISignInViewController _stringForFooter]:0x1b30cb6c4
-[AAUISignInViewController privacyLinkIdentifiers]:0x1b30ce848
-[AAUISignInViewController _showOnlyPassword]:0x1b30cccac
-[AAUISignInViewController _isGreenTeaCapable]:0x1b30cb6b8
-[AAUISignInViewController _setUsernameCellWaiting:]:0x1b30cd31c
-[AAUISignInViewController _delegate_signInViewControllerDidCancel]:0x1b30cdf10
-[AAUISignInViewController _attemptAuthentication]:0x1b30cc070
-[AAUISignInViewController _prewarmSignInFlowIfApplicable]:0x1b30cc018
-[AAUISignInViewController _presentForgotAppleIDPane]:0x1b30cbf48
-[AAUISignInViewController _presentCreateAppleIDPane]:0x1b30cbe78
-[AAUISignInViewController _attemptAuthenticationWithContext:]:0x1b30cc364
-[AAUISignInViewController _isPasswordFieldVisible]:0x1b30cb670
-[AAUISignInViewController _isRunningInSettings]:0x1b30cb774
-[AAUISignInViewController _repairCloudAccountWithAuthenticationResults:]:0x1b30cc89c
-[AAUISignInViewController _delegate_signInViewControllerDidCompleteWithAuthenticationResults:]:0x1b30cde68
-[AAUISignInViewController _authorizationValueForAuthenticationResults:]:0x1b30ccd30
-[AAUISignInViewController _passwordFieldIndexPath]:0x1b30cd3f0
-[AAUISignInViewController _setPasswordFieldHidden:]:0x1b30ccf68
-[AAUISignInViewController _setAkServiceType:]:0x1b30ce768
-[AAUISignInViewController _setShouldAnticipatePiggybacking:]:0x1b30ce788
-[AAUISignInViewController setAllowsAccountCreation:]:0x1b30ce7dc
-[AAUISignInViewController setShowServiceIcons:]:0x1b30ce7fc
-[AAUISignInViewController canEditUsername]:0x1b30ce828
-[AAUISignInViewController setCanEditUsername:]:0x1b30ce838
-[AAUISignInViewController setPrivacyLinkIdentifiers:]:0x1b30ce858
-[AAUISignInViewController showingPasswordCell]:0x1b30ce864
-[AAUISignInViewController setShowingPasswordCell:]:0x1b30ce874
[iPhone::PID::18031 ]->

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-22 23:32:55

Stalker

Stalker

别处某示例

参考自：【iOS逆向】某营业厅算法分析_小陈_InfoQ写作社区

ts=TypeScript代码：

var addr = 0x0000000029FD08 // loginWithPhoneNbr函数的起始地址
var mainModule = Process.enumerateModules()[0];
console.log(JSON.stringify(mainModule));
var mainName: string = mainModule.name;
var baseAddr = Module.findBaseAddress(mainName)!;
Interceptor.attach(baseAddr.add(addr), {
    onEnter: function(args) {
        console.log(addr.toString(16), "= loginWithPhoneNbr onEnter =");
        var tid = Process.getCurrentThreadId();
        Stalker.follow(tid, {
            events: {
                call: true, // CALL instructions: yes please
                ret: false, // RET instructions
                exec: false, // all instructions: not recommended as it's
                block: false, // block executed: coarse execution trace
                compile: false // block compiled: useful for coverage
            },
            transform: (iterator: StalkerArm64Iterator) => {
                let instruction = iterator.next();
                const startAddress = instruction!.address;
                var isAppCode = startAddress.compare(baseAddr.add(addr)) >= 0 && startAddress.compare(baseAddr.add(addr).add(10000)) === -1;
                do {
                    if (isAppCode) {
                        if (instruction!.mnemonic === "bl") {
                            iterator.putCallout((ctx) => {
                                var arm64Context = ctx as Arm64CpuContext;
                                console.log("bl x0 = " + new ObjC.Object(arm64Context.x0))
                                console.log("bl x1 = " + arm64Context.x1.readCString())
                            });
                        }
                    }
                    iterator.keep();
                } while ((instruction = iterator.next()) !== null);
             }
        })
    }, onLeave: function(retval) {
        console.log("retval:", new ObjC.Object(retval))
        console.log(addr.toString(16), "= loginWithPhoneNbr onLeave =");
    }
});

frida-stalker-example

别处的例子：

misc/frida-stalker-example.py at master · poxyran/misc · GitHub

import sys
import frida

def on_message(message, data):
    print "[%s] -> %s" % (message, data)

def main(target_process):
    session = frida.attach(target_process)
    script = session.create_script("""
function StalkerExeample()
{
    var threadIds = [];

    Process.enumerateThreads({
        onMatch: function (thread)
        {
            threadIds.push(thread.id);
            console.log("Thread ID: " + thread.id.toString());
        },

        onComplete: function ()
        {
            threadIds.forEach(function (threadId)
                {
                    Stalker.follow(threadId,
                    {
                        events: {call: true},

                    onReceive: function (events)
                    {
                        console.log("onReceive called.");
                    },
                    onCallSummary: function (summary)
                    {
                        console.log("onCallSummary called.");
                    }
                });
            });
        }
    });
}

StalkerExeample();
""")
    script.on('message', on_message)
    script.load()
    raw_input('[!] Press <Enter> at any time to detach from instrumented program.\n\n')
    session.detach()

if __name__ == '__main__':
    if len(sys.argv) < 2:
        print 'Usage: %s <process name or PID>' % __file__
        sys.exit(1)

    try:
        target_process = int(sys.argv[1])
    except ValueError:
        target_process = sys.argv[1]

    main(target_process)

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-25 23:10:55

___lldb_unnamed_symbol2575$$akd

___lldb_unnamed_symbol2575$$akd

用Frida的Stalker调试arm64的akd函数___lldb_unnamed_symbol2575$$akd：

Frida命令

frida -U -n akd -l ./fridaStalker_akdSymbol2575.js

js文件fridaStalker_akdSymbol2575.js的内容

console.log("===== Frida Stalker hook for arm64 ___lldb_unnamed_symbol2575$$akd =====");
// arm64 akd: ___lldb_unnamed_symbol2575$$akd
// var funcRelativeStartAddr = 0x1000a0460;
var funcRelativeStartAddr = 0xa0460;
var functionSize = 0x24C8; // 9416 == 0x24C8
var funcRelativeEndAddr = funcRelativeStartAddr + functionSize;
console.log("funcRelativeStartAddr=" + funcRelativeStartAddr + ", functionSize=" + functionSize + ", funcRelativeEndAddr=" + funcRelativeEndAddr);
const moduleName = "akd";
const moduleBaseAddress = Module.findBaseAddress(moduleName);
console.log("moduleName=" + moduleName + ", moduleBaseAddress=" + moduleBaseAddress);
// console.log("moduleName=%s, moduleBaseAddress=%p", moduleName, moduleBaseAddress);
const funcRealStartAddr = moduleBaseAddress.add(funcRelativeStartAddr);
// var funcRealEndAddr = funcRealStartAddr + functionSize;
const funcRealEndAddr = funcRealStartAddr.add(functionSize);
console.log("funcRealStartAddr=" + funcRealStartAddr + ", funcRealEndAddr=" + funcRealEndAddr);
var curTid = null;
Interceptor.attach(funcRealStartAddr, {
    onEnter: function(args) {
        var arg0 = args[0]
        var arg1 = args[1]
        var arg2 = args[2]
        var arg3 = args[3]
        console.log("----- arg0=" + arg0 + ", arg1=" + arg1 + ", arg2=" + arg2 + ", arg3=" + arg3);
        var curTid = Process.getCurrentThreadId();
        console.log("curTid=", curTid);
        Stalker.follow(curTid, {
            events: {
                call: false, // CALL instructions: yes please
                ret: true, // RET instructions
                exec: false, // all instructions: not recommended as it's
                block: false, // block executed: coarse execution trace
                compile: false // block compiled: useful for coverage
            },
            // onReceive: Called with `events` containing a binary blob comprised of one or more GumEvent structs. See `gumevent.h` for details about the format. Use `Stalker.parse()` to examine the data.
            onReceive(events) {
                var parsedEvents = Stalker.parse(events)
                // var parsedEventsStr = JSON.stringify(parsedEventsStr)
                // console.log(">>> into onReceive: parsedEvents=" + parsedEvents + ", parsedEventsStr=" + parsedEventsStr);
                console.log(">>> into onReceive: parsedEvents=" + parsedEvents);
            },

            // transform: (iterator: StalkerArm64Iterator) => {
            transform: function (iterator) {
                // console.log("iterator=" + iterator);
                var instruction = iterator.next();
                const startAddress = instruction.address;
                // console.log("+++ into iterator: startAddress=" + startAddress);
                // const isAppCode = startAddress.compare(funcRealStartAddr) >= 0 && startAddress.compare(funcRealEndAddr) === -1;
                // const isAppCode = (startAddress.compare(funcRealStartAddr) >= 0) && (startAddress.compare(funcRealEndAddr) < 0);
                const gt_realStartAddr = startAddress.compare(funcRealStartAddr) >= 0
                const lt_realEndAddr = startAddress.compare(funcRealEndAddr) < 0
                var isAppCode = gt_realStartAddr && lt_realEndAddr
                console.log("+++ into iterator: startAddress=" + startAddress + ", isAppCode=" + isAppCode);

                // // for debug
                // isAppCode = true

                // console.log("isAppCode=" + isAppCode + ", gt_realStartAddr=" + gt_realStartAddr + ", lt_realEndAddr=" + lt_realEndAddr);
                do {
                    if (isAppCode) {
                        // is origal function code = which we focus on

                        // console.log("instruction: address=" + instruction.address
                        //     + ",next=" + instruction.next()
                        //     + ",size=" + instruction.size
                        //     + ",mnemonic=" + instruction.mnemonic
                        //     + ",opStr=" + instruction.opStr
                        //     + ",operands=" + JSON.stringify(instruction.operands)
                        //     + ",regsAccessed=" + JSON.stringify(instruction.regsAccessed)
                        //     + ",regsRead=" + JSON.stringify(instruction.regsRead)
                        //     + ",regsWritten=" + JSON.stringify(instruction.regsWritten)
                        //     + ",groups=" + JSON.stringify(instruction.groups)
                        //     + ",toString()=" + instruction.toString()
                        //     + ",toJSON()=" + instruction.toJSON()
                        // );

                        var curRealAddr = instruction.address;
                        // const isAppCode = curRealAddr.compare(funcRealStartAddr) >= 0 && curRealAddr.compare(funcRealEndAddr) === -1;
                        // console.log(curRealAddr + ": isAppCode=" + isAppCode);
                        var curOffsetHexPtr = curRealAddr.sub(funcRealStartAddr)
                        var curOffsetInt = curOffsetHexPtr.toInt32()

                        // var instructionStr = instruction.mnemonic + " " + instruction.opStr
                        var instructionStr = instruction.toString()
                        // console.log("\t" + curRealAddr + ": " + instructionStr);
                        // console.log("\t" + curRealAddr + " <+" + curOffsetHexPtr + ">: " + instructionStr);
                        console.log("\t" + curRealAddr + " <+" + curOffsetInt + ">: " + instructionStr);
                        if (curOffsetInt == 8516) {
                            console.log("curOffsetInt=" + curOffsetInt);
                            // iterator.putCallout(needDebug);
                            iterator.putCallout((context) => {
                                var contextStr = JSON.stringify(context)
                                console.log("contextStr=" + contextStr);
                                var x9Value1 = context.x9
                                var x9Value2 = context["x9"]
                                console.log("x9Value1=" + x9Value1 + ", x9Value2=" + x9Value2)
                            });
                        }
                    }
                    iterator.keep();
                } while ((instruction = iterator.next()) !== null);
            }
        });

        // function needDebug(context) {
        //     console.log("into needDebug");
        //     // console.log("into needDebug: context=" + context);
        //     // var contextStr = JSON.stringify(context, null, 2)
        //     // console.log("context=" + contextStr);
        //     // var x9Value1 = context.x9
        //     // var x9Value2 = context["x9"]
        //     // console.log("x9Value1=" + x9Value1 + ", x9Value2=" + x9Value2)
        // }
    },
    onLeave: function(retval) {
        console.log("retval=", new ObjC.Object(retval))
        if (curTid != null) {
            Stalker.unfollow(curTid);
            console.log("Stalker.unfollow curTid=", curTid)
        }
    }
});

输出

最开始输出环境初始化信息：

===== Frida Stalker hook for arm64 ___lldb_unnamed_symbol2575$$akd =====
funcRelativeStartAddr=656480, functionSize=9416, funcRelativeEndAddr=665896
moduleName=akd, moduleBaseAddress=0x1040e4000
funcRealStartAddr=0x104184460, funcRealEndAddr=0x104186928
[iPhone::akd ]-> ----- arg0=0xfffffffffffffffe, arg1=0x16bf46838, arg2=0x16bf46838, arg3=0xfffffffffffffffe
curTid= 9739

（如果开启调试：

// for debug
isAppCode = true

则会输出）

（最初是）一些非原始函数代码：

+++ into iterator: startAddress=0x106d0bcd8, isAppCode=false
    0x106d0bcd8 <+45643896>: b #0x106d0bce8
+++ into iterator: startAddress=0x106d0bce8, isAppCode=false
    0x106d0bce8 <+45643912>: str wzr, [x19, #0x90]
    0x106d0bcec <+45643916>: ldr x0, [x19, #0xa0]
    0x106d0bcf0 <+45643920>: str xzr, [x19, #0xa0]
    0x106d0bcf4 <+45643924>: cbz x0, #0x106d0bcfc
+++ into iterator: startAddress=0x106d0bcf8, isAppCode=false
    0x106d0bcf8 <+45643928>: bl #0x106c0fef8
+++ into iterator: startAddress=0x106d0bcfc, isAppCode=false
    0x106d0bcfc <+45643932>: ldr x0, [x19, #0x98]
    0x106d0bd00 <+45643936>: str xzr, [x19, #0x98]
    0x106d0bd04 <+45643940>: cbz x0, #0x106d0bd14
+++ into iterator: startAddress=0x106d0bd08, isAppCode=false
    0x106d0bd08 <+45643944>: ldp x29, x30, [sp, #0x10]
    0x106d0bd0c <+45643948>: ldp x20, x19, [sp], #0x20
    0x106d0bd10 <+45643952>: b #0x106c0fef8
+++ into iterator: startAddress=0x106c0fef8, isAppCode=false
    0x106c0fef8 <+44612248>: stp x24, x23, [sp, #-0x40]!
    0x106c0fefc <+44612252>: stp x22, x21, [sp, #0x10]
    0x106c0ff00 <+44612256>: stp x20, x19, [sp, #0x20]
    0x106c0ff04 <+44612260>: stp x29, x30, [sp, #0x30]
    0x106c0ff08 <+44612264>: add x29, sp, #0x30
    0x106c0ff0c <+44612268>: mov x19, x0
    0x106c0ff10 <+44612272>: add x23, x0, #8
    0x106c0ff14 <+44612276>: add x20, x0, #0x10
    0x106c0ff18 <+44612280>: adrp x22, #0x107d28000
    0x106c0ff1c <+44612284>: adrp x21, #0x107d28000
    0x106c0ff20 <+44612288>: add x21, x21, #0x790
    0x106c0ff24 <+44612292>: ldar w24, [x23]
    0x106c0ff28 <+44612296>: cmp w24, #2
    0x106c0ff2c <+44612300>: b.lt #0x106c0ff50
+++ into iterator: startAddress=0x106c0ff30, isAppCode=false
    0x106c0ff30 <+44612304>: bl #0x106c12110
+++ into iterator: startAddress=0x106c0ff34, isAppCode=false
    0x106c0ff34 <+44612308>: sub w8, w24, #1
    0x106c0ff38 <+44612312>: ldaxr w9, [x23]
    0x106c0ff3c <+44612316>: cmp w9, w24
    0x106c0ff40 <+44612320>: b.ne #0x106c0ff7c
    0x106c0ff44 <+44612324>: stlxr w9, w8, [x23]
    0x106c0ff48 <+44612328>: cbnz w9, #0x106c0ff38
+++ into iterator: startAddress=0x106c0ff4c, isAppCode=false
    0x106c0ff4c <+44612332>: b #0x106c0ff84
+++ into iterator: startAddress=0x106c0ff84, isAppCode=false
    0x106c0ff84 <+44612388>: cmp w24, #2
    0x106c0ff88 <+44612392>: b.ne #0x106c10028
+++ into iterator: startAddress=0x106c0ff8c, isAppCode=false
    0x106c0ff8c <+44612396>: tbz w0, #0, #0x106c10028
+++ into iterator: startAddress=0x106c10028, isAppCode=false
    0x106c10028 <+44612552>: ldp x29, x30, [sp, #0x30]
    0x106c1002c <+44612556>: ldp x20, x19, [sp, #0x20]
    0x106c10030 <+44612560>: ldp x22, x21, [sp, #0x10]
    0x106c10034 <+44612564>: ldp x24, x23, [sp], #0x40
    0x106c10038 <+44612568>: ret
+++ into iterator: startAddress=0x106d0a104, isAppCode=false
    0x106d0a104 <+45636772>: ldur x8, [x29, #-0x48]
    0x106d0a108 <+45636776>: adrp x9, #0x107c28000
    0x106d0a10c <+45636780>: ldr x9, [x9, #0x28]
    0x106d0a110 <+45636784>: ldr x9, [x9]
    0x106d0a114 <+45636788>: cmp x9, x8
    0x106d0a118 <+45636792>: b.ne #0x106d0a138
+++ into iterator: startAddress=0x106d0a11c, isAppCode=false
    0x106d0a11c <+45636796>: ldp x29, x30, [sp, #0x100]
    0x106d0a120 <+45636800>: ldp x20, x19, [sp, #0xf0]
    0x106d0a124 <+45636804>: ldp x22, x21, [sp, #0xe0]
    0x106d0a128 <+45636808>: ldp x24, x23, [sp, #0xd0]
    0x106d0a12c <+45636812>: ldp x28, x27, [sp, #0xc0]
    0x106d0a130 <+45636816>: add sp, sp, #0x110
    0x106d0a134 <+45636820>: ret
+++ into iterator: startAddress=0x106cb825c, isAppCode=false
    0x106cb825c <+45301244>: add w22, w22, #1
    0x106cb8260 <+45301248>: b #0x106cb820c
+++ into iterator: startAddress=0x106cb820c, isAppCode=false
    0x106cb820c <+45301164>: ldr w8, [x25, #8]
    0x106cb8210 <+45301168>: cmp w22, w8
    0x106cb8214 <+45301172>: b.eq #0x106cb8264
+++ into iterator: startAddress=0x106cb8264, isAppCode=false
    0x106cb8264 <+45301252>: ldr w25, [x26, #0x10]
    0x106cb8268 <+45301256>: tbnz w19, #0, #0x106cb8274
+++ into iterator: startAddress=0x106cb8274, isAppCode=false
    0x106cb8274 <+45301268>: ldr x21, [sp, #8]
    0x106cb8278 <+45301272>: mov x0, x25
    0x106cb827c <+45301276>: bl #0x106cc899c
+++ into iterator: startAddress=0x106cb8280, isAppCode=false
    0x106cb8280 <+45301280>: adrp x8, #0x107d2a000
    0x106cb8284 <+45301284>: ldr x0, [x8, #0x780]
    0x106cb8288 <+45301288>: bl #0x106cb8b94
+++ into iterator: startAddress=0x106cb828c, isAppCode=false
    0x106cb828c <+45301292>: cbz w19, #0x106cb829c
+++ into iterator: startAddress=0x106cb8290, isAppCode=false
    0x106cb8290 <+45301296>: ldr x8, [x20, #0x70]
    0x106cb8294 <+45301300>: ldr x9, [sp, #0x10]
    0x106cb8298 <+45301304>: str x8, [x9]
    0x106cb829c <+45301308>: ldr x8, [x27]
    0x106cb82a0 <+45301312>: cbz x8, #0x106cb82dc
+++ into iterator: startAddress=0x106cb82dc, isAppCode=false
    0x106cb82dc <+45301372>: add x27, x20, #0x68
    0x106cb82e0 <+45301376>: ldr x8, [x27]
    0x106cb82e4 <+45301380>: str x8, [x21]
    0x106cb82e8 <+45301384>: tbnz w19, #0, #0x106cb82fc
+++ into iterator: startAddress=0x106cb82fc, isAppCode=false
    0x106cb82fc <+45301404>: ldp x29, x30, [sp, #0x90]
    0x106cb8300 <+45301408>: ldp x20, x19, [sp, #0x80]
    0x106cb8304 <+45301412>: ldp x22, x21, [sp, #0x70]
    0x106cb8308 <+45301416>: ldp x24, x23, [sp, #0x60]
    0x106cb830c <+45301420>: ldp x26, x25, [sp, #0x50]
    0x106cb8310 <+45301424>: ldp x28, x27, [sp, #0x40]
    0x106cb8314 <+45301428>: add sp, sp, #0xa0
    0x106cb8318 <+45301432>: ret
+++ into iterator: startAddress=0x1044fc0b0, isAppCode=false
    0x1044fc0b0 <+3636304>: add sp, sp, #0x10
    0x1044fc0b4 <+3636308>: ldp x1, x0, [sp], #0x10
    0x1044fc0b8 <+3636312>: msr nzcv, x1
    0x1044fc0bc <+3636316>: ldp x1, x2, [sp], #0x10
    0x1044fc0c0 <+3636320>: ldp x3, x4, [sp], #0x10
    0x1044fc0c4 <+3636324>: ldp x5, x6, [sp], #0x10
    0x1044fc0c8 <+3636328>: ldp x7, x8, [sp], #0x10
    0x1044fc0cc <+3636332>: ldp x9, x10, [sp], #0x10
    0x1044fc0d0 <+3636336>: ldp x11, x12, [sp], #0x10
    0x1044fc0d4 <+3636340>: ldp x13, x14, [sp], #0x10
    0x1044fc0d8 <+3636344>: ldp x15, x16, [sp], #0x10
    0x1044fc0dc <+3636348>: ldp x17, x18, [sp], #0x10
    0x1044fc0e0 <+3636352>: ldp x19, x20, [sp], #0x10
    0x1044fc0e4 <+3636356>: ldp x21, x22, [sp], #0x10
    0x1044fc0e8 <+3636360>: ldp x23, x24, [sp], #0x10
    0x1044fc0ec <+3636364>: ldp x25, x26, [sp], #0x10
    0x1044fc0f0 <+3636368>: ldp x27, x28, [sp], #0x10
    0x1044fc0f4 <+3636372>: ldp x29, x30, [sp], #0x10
    0x1044fc0f8 <+3636376>: ldp q0, q1, [sp], #0x20
    0x1044fc0fc <+3636380>: ldp q2, q3, [sp], #0x20
    0x1044fc100 <+3636384>: ldp q4, q5, [sp], #0x20
    0x1044fc104 <+3636388>: ldp q6, q7, [sp], #0x20
    0x1044fc108 <+3636392>: ldp q8, q9, [sp], #0x20
    0x1044fc10c <+3636396>: ldp q10, q11, [sp], #0x20
    0x1044fc110 <+3636400>: ldp q12, q13, [sp], #0x20
    0x1044fc114 <+3636404>: ldp q14, q15, [sp], #0x20
    0x1044fc118 <+3636408>: ldp q16, q17, [sp], #0x20
    0x1044fc11c <+3636412>: ldp q18, q19, [sp], #0x20
    0x1044fc120 <+3636416>: ldp q20, q21, [sp], #0x20
    0x1044fc124 <+3636420>: ldp q22, q23, [sp], #0x20
    0x1044fc128 <+3636424>: ldp q24, q25, [sp], #0x20
    0x1044fc12c <+3636428>: ldp q26, q27, [sp], #0x20
    0x1044fc130 <+3636432>: ldp q28, q29, [sp], #0x20
    0x1044fc134 <+3636436>: ldp q30, q31, [sp], #0x20
    0x1044fc138 <+3636440>: ldp x16, x17, [sp], #0x10
    0x1044fc13c <+3636444>: ret x16
+++ into iterator: startAddress=0x108040030, isAppCode=false
    0x108040030 <+65780688>: sub sp, sp, #0xf0
    0x108040034 <+65780692>: stp x28, x27, [sp, #0x90]
    0x108040038 <+65780696>: stp x26, x25, [sp, #0xa0]
    0x10804003c <+65780700>: stp x24, x23, [sp, #0xb0]
    0x108040040 <+65780704>: ldr x16, #0x108040048
    0x108040044 <+65780708>: br x16

之后才是：原始函数代码

+++ into iterator: startAddress=0x104184470, isAppCode=true
    0x104184470 <+16>: stp x22, x21, [sp, #0xc0]
    0x104184474 <+20>: stp x20, x19, [sp, #0xd0]
    0x104184478 <+24>: stp x29, x30, [sp, #0xe0]
    0x10418447c <+28>: add x29, sp, #0xe0
    0x104184480 <+32>: nop
    0x104184484 <+36>: ldr x8, #0x1041d87d8
    0x104184488 <+40>: ldr x8, [x8]
    0x10418448c <+44>: stur x8, [x29, #-0x58]
    0x104184490 <+48>: mov w26, #0x5a87
    0x104184494 <+52>: movk w26, #0x6c24, lsl #16
    0x104184498 <+56>: add x8, x0, #6
    0x10418449c <+60>: cmp x8, #5
    0x1041844a0 <+64>: ccmn x0, #8, #4, hs
    0x1041844a4 <+68>: mov w8, #1
    0x1041844a8 <+72>: csel w8, wzr, w8, eq
    0x1041844ac <+76>: mov w11, #0xa5a2
    0x1041844b0 <+80>: movk w11, #0x93db, lsl #16
    0x1041844b4 <+84>: cmp x1, #0
    0x1041844b8 <+88>: cset w9, eq
    0x1041844bc <+92>: orr w8, w9, w8
    0x1041844c0 <+96>: add w9, w26, w8
    0x1041844c4 <+100>: add w9, w9, w11
    0x1041844c8 <+104>: sub w9, w9, #0x21
    0x1041844cc <+108>: adr x25, #0x1041a6cb0
    0x1041844d0 <+112>: nop
    0x1041844d4 <+116>: ldrsw x9, [x25, w9, sxtw #2]
    0x1041844d8 <+120>: nop
    0x1041844dc <+124>: ldr x10, #0x1041dd158
    0x1041844e0 <+128>: add x9, x9, x10
    0x1041844e4 <+132>: mov w22, #-0xafc9
    0x1041844e8 <+136>: br x9
+++ into iterator: startAddress=0x1041844ec, isAppCode=true
    0x1041844ec <+140>: mov x23, x1
    0x1041844f0 <+144>: mov x28, x0
    0x1041844f4 <+148>: eor w8, w8, #1
    0x1041844f8 <+152>: sub w9, w11, #0x29
    0x1041844fc <+156>: madd w22, w8, w9, w26
    0x104184500 <+160>: mov x20, #0xa930
    0x104184504 <+164>: movk x20, #0xea59, lsl #16
    0x104184508 <+168>: movk x20, #0x9bdd, lsl #32
    0x10418450c <+172>: movk x20, #0xd570, lsl #48
    0x104184510 <+176>: add w8, w22, #0xb
    0x104184514 <+180>: adr x24, #0x1041ddfe0
    0x104184518 <+184>: nop
    0x10418451c <+188>: ldr x8, [x24, w8, sxtw #3]
    0x104184520 <+192>: sub x8, x8, #2
    0x104184524 <+196>: mov w0, #0x18
    0x104184528 <+200>: str x8, [sp, #0x60]
    0x10418452c <+204>: blr x8

其中触发了onReceive，对应输出的log是：

+++ into iterator: startAddress=0x194d31f44, isAppCode=false
+++ into iterator: startAddress=0x102e327ec, isAppCode=true
    0x102e327ec <+9100>: mov w8, #0x6beb
    0x102e327f0 <+9104>: movk w8, #0x3920, lsl #16
    0x102e327f4 <+9108>: add w24, w21, w23
    0x102e327f8 <+9112>: str xzr, [x20]
    0x102e327fc <+9116>: str w8, [x20, #8]
    0x102e32800 <+9120>: mov w8, #0xf28c
    0x102e32804 <+9124>: movk w8, #0x3820, lsl #16
    0x102e32808 <+9128>: str w8, [x20, #0xc]
    0x102e3280c <+9132>: mov x8, #0x77e8
    0x102e32810 <+9136>: movk x8, #0xcfa6, lsl #16
    0x102e32814 <+9140>: movk x8, #0xde0b, lsl #32
    0x102e32818 <+9144>: movk x8, #0x20cd, lsl #48
    0x102e3281c <+9148>: add x0, x19, x8
    0x102e32820 <+9152>: blr x27
+++ into iterator: startAddress=0x194d30564, isAppCode=false
>>> into onReceive: parsedEvents=ret,0x1084e0038,0x1085da104,0,ret,0x1085da134,0x10858825c,-1,ret,0x108588318,0x1036540b0,-2,ret,0x10365413c,0x10984000c,-3,ret,0x1ddc2abc0,0x194d2e05c,0,ret,0x194d2fbdc,0x194d2dc74,1,ret,0x194d311c4,0x194d2d830,1,ret,0x194d2d898,0x194d2e0a0,0,ret,0x1ddc2ac00,0x194d2e374,0,ret,0x194d2e3a8,0x194d31214,-1,ret,0x194d312e8,0x194d30478,-2,ret,0x194d304a4,0x102e30530,-3,ret,0x1ddc2abc0,0x194d2cd44,0,ret,0x194d31894,0x194d2f0a0,1,ret,0x194d31b3c,0x194d2f0c0,1,ret,0x194d2f1ac,0x194d2cd88,0,ret,0x1ddc2ac00,0x194d2d280,0,ret,0x194d2d2b4,0x194d3123c,-1,ret,0x194d312e8,0x194d30478,-2,ret,0x194d304a4,0x102e305ac,-3,ret,0x1bd80959c,0x102e244e0,-2,ret,0x1ddc36aec,0x183f794d8,0,ret,0x183f77ab0,0x183f7958c,0,ret,0x1bd808ca8,0x1bd809c04,1,ret,0x1bd809c40,0x183f795a0,0,ret,0x183f7970c,0x183f795e4,0,ret,0x183f7963c,0x183f7aa34,-1,ret,0x183f7aa98,0x102e24508,-2,ret,0x1bd808b70,0x1bd809194,-1,ret,0x1bd809240,0x102e24528,-2,ret,0x102e24630,0x102e315c4,-3,ret,0x1ddc2abc0,0x194d2e05c,0,ret,0x194d311c4,0x194d2d830,1,ret,0x194d2d898,0x194d2e0a0,0,ret,0x1ddc2ac00,0x194d2e374,0,ret,0x194d2e3a8,0x194d31214,-1,ret,0x194d312e8,0x194d30478,-2,ret,0x194d304a4,0x102e316b8,-3,ret,0x1ddc2abc0,0x194d2cd44,0,ret,0x194d31894,0x194d2efe4,1,ret,0x194d2f1ac,0x194d2cd88,0,ret,0x1ddc2ac00,0x194d2d280,0,ret,0x194d2d2b4,0x194d3123c,-1,ret,0x194d312e8,0x194d30478,-2,ret,0x194d304a4,0x102e31744,-3,ret,0x1bd808aa4,0x1bd809b78,-2,ret,0x1bd809bb0,0x102e32168,-3,ret,0x194d305c4,0x194d30a34,-1,ret,0x194d33380,0x194d30a50,-1,ret,0x194d30a1c,0x194d2c188,-2,ret,0x1ddc2abc0,0x194d31c80,-2,ret,0x194d2c06c,0x194d31dec,-2,ret,0x194d31894,0x194d31e00,-2,ret,0x194d31b3c,0x194d31eec,-2,ret,0x194d30e90,0x194d31f34,-2,ret,0x1ddc2ac00,0x102e327ec,-3
+++ into iterator: startAddress=0x194d30584, isAppCode=false
+++ into iterator: startAddress=0x194d30588, isAppCode=false

再往后，就是：非原始函数代码，原始函数代码 交替输出

而我们此处只关心 原始函数代码，去调试输出即可。

比如最后此刻所调试的+8516行的代码

+++ into iterator: startAddress=0x1041865a0, isAppCode=true
    0x1041865a0 <+8512>: mov w8, #0
    0x1041865a4 <+8516>: str x9, [x10]
curOffsetInt=8516
    0x1041865a8 <+8520>: b #0x104186740
contextStr={"pc":"0x1041865a4","sp":"0x16bf46740","nzcv":1610612736,"x0":"0x0","x1":"0x104ba0000","x2":"0xc","x3":"0x29","x4":"0x470b","x5":"0x0","x6":"0x0","x7":"0xec0","x8":"0x0","x9":"0x3050500","x10":"0x16bf46838","x11":"0x6c245a87","x12":"0x6c245a3d","x13":"0x1041864dc","x14":"0x45","x15":"0x0","x16":"0xd5709bdf0d7a48f0","x17":"0x123209fc0","x18":"0x0","x19":"0xdf3221f55389ecc8","x20":"0x1233064b0","x21":"0x93dba5a2","x22":"0x0","x23":"0x39207beb","x24":"0x6c245a87","x25":"0x1041a6cb0","x26":"0x6c245a87","x27":"0x194d2c100","x28":"0xfffffffffffffffe","fp":"0x16bf46820","lr":"0x104186168","q0":{},"q1":{},"q2":{},"q3":{},"q4":{},"q5":{},"q6":{},"q7":{},"q8":{},"q9":{},"q10":{},"q11":{},"q12":{},"q13":{},"q14":{},"q15":{},"q16":{},"q17":{},"q18":{},"q19":{},"q20":{},"q21":{},"q22":{},"q23":{},"q24":{},"q25":{},"q26":{},"q27":{},"q28":{},"q29":{},"q30":{},"q31":{},"d0":0.5585262685374610e-308,"d1":0.0000169759663317e-308,"d2":7.9499288951273454e-275,"d3":0,"d4":0,"d5":0,"d6":0,"d7":0,"d8":0,"d9":0,"d10":0,"d11":0,"d12":0,"d13":0,"d14":0,"d15":0,"d16":-1.0855813867524649e+251,"d17":0.000002084565455e-308,"d18":3.0554698911305689e-152,"d19":0.000001322084152e-308,"d20":3.7696966457559071e-175,"d21":1.0004894955531618e+128,"d22":9.5944260775693913e+225,"d23":-6.8154492514793903e-236,"d24":-2.1930923744387854e+50,"d25":-3.1153191556287330e+141,"d26":-1.0031492505499153e+302,"d27":-3.1584786060327890e-284,"d28":-1.7036104465458726e+239,"d29":-1.1538744009003510e-197,"d30":2.4944484440662111e-259,"d31":0,"s0":1.1035169354619356e-39,"s1":1.1210387714598533e-44,"s2":3.8204714345426298e-37,"s3":0,"s4":0,"s5":0,"s6":0,"s7":0,"s8":0,"s9":0,"s10":0,"s11":0,"s12":0,"s13":0,"s14":0,"s15":0,"s16":1.5548730664783592e-21,"s17":-1.3084408235578860e+36,"s18":-8.6088756618229034e-23,"s19":-5.408784745233076e-20,"s20":4.2151578028428229e+37,"s21":18362722504671230,"s22":3.372155249992253e+28,"s23":-7.6784630118876258e-30,"s24":-3715189.5,"s25":2.6426119211413095e+23,"s26":-3.5724724140742379e-23,"s27":-1.6239861190373424e-18,"s28":-205533200,"s29":-0.008124308660626411,"s30":-5.6424941355004989e-36,"s31":0}
x9Value1=0x3050500, x9Value2=0x3050500

输出了我们所希望的值：

x9=0x3050500

即可实现特定的调试目的。

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-25 23:31:30

Android

Android

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-04-29 09:24:37

demo示例

安卓hook的demo示例

此处给出，普通的，用Frida去hook安卓的某个app时候的，js脚本的demo示例：

hook_androidApp.js

/**
 * Update: 20240721
 * Usage:
 *  frida -U -f your.app.package -l hook_androidApp.js
*/

/*******************************************************************************
 * Const & Config
*******************************************************************************/

/*******************************************************************************
 * Common Util
*******************************************************************************/

// enumerate all methods declared in a Java class
function enumMethods(targetClass)
{
  var hook = Java.use(targetClass);
  var ownMethods = hook.class.getDeclaredMethods();
  console.log("use getDeclaredMethods")

  // var ownMethods = hook.class.getMethods();
  // console.log("use getMethods")

  hook.$dispose;
  return ownMethods;
}

// enumerate all property=field declared in a Java class
function enumProperties(targetClass)
{
  var hook = Java.use(targetClass);
  // var ownMethods = hook.class.getFields();
  // console.log("use getFields")

  var ownFields = hook.class.getDeclaredFields();
  console.log("use getDeclaredFields")

  hook.$dispose;
  return ownFields;
}

// print single java class all Functions=Methods and Fields=Properties
function printClassAllMethodsFields(javaClassName){
  console.log("==========" + "Class: " + javaClassName + " ==========")

  console.log("-----" + "All Properties" + "-----")
  var allProperties = enumProperties(javaClassName)
  allProperties.forEach(function(singleProperty) {
    console.log(singleProperty)
  })

  console.log("-----" + "All Methods" + "-----")
  // enumerate all methods in a class
  var allMethods = enumMethods(javaClassName)
  allMethods.forEach(function(singleMethod) {
    console.log(singleMethod)
  })
  console.log("")
}

/*******************************************************************************
 * Main Hook
*******************************************************************************/

function hookSomeApp() {
  var SomeClassName = "xxx.yyy.zzz"
  printClassAllMethodsFields(SomeClassName)

  var SomeCls = Java.use(SomeClassName)
  console.log("SomeCls=" + SomeCls)

  // then do what you want
}

function hookAndroid() {
  if(!Java.available){
    console.error("Java is not available")
    return
  }

  console.log("Java is available")
  console.log("Java.androidVersion=" + Java.androidVersion)

  Java.perform(function () {
    hookSomeApp()
  })
}

setImmediate(hookAndroid)

调用：

frida -U -f your.app.package -l hook_androidApp.js

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-07-21 16:32:57

单个类

单个类

去用Frida去hook调试Java单个类的写法举例：

对于jadx反编译出的抖音的源码：

sources/X/C660690Pru.java

package X;
...

/* renamed from: X.0Pru, reason: invalid class name and case insensitive filesystem */
/* loaded from: classes9.dex */
public class C660690Pru extends TransmitThread {
    public int LIZ;
    public final /* synthetic */ AbstractC660680Prt LIZIZ;
...
    @Override // com.ss.android.ugc.bytex.async.stack.delegate.TransmitThread, com.ss.android.ugc.bytex.pthread.base.proxy.PthreadThreadV2, java.lang.Thread, java.lang.Runnable
    /*
        Code decompiled incorrectly, please refer to instructions dump.
    */
    public void run() {
...
    }

    public final void LIZ() {
...
    }

    /* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
    public C660690Pru(AbstractC660680Prt abstractC660680Prt) {
        super("DeviceRegisterThread");
        this.LIZIZ = abstractC660680Prt;
    }

...

    private boolean LIZ(JSONObject jSONObject) {
...
    }

    private boolean LIZ(String str, JSONObject jSONObject) {
...
    }

}

想要去打印出，当前类的所有函数和属性，可以用如下（核心）代码：

hook_douyin.js

  /******************** X.C660690Pru ********************/
  var X0PruClassName = "X.0Pru"
  printClassAllMethodsFields(X0PruClassName)

  var X0PruCls = Java.use(X0PruClassName)
  console.log("X0PruCls=" + X0PruCls)

说明

关于被hook的类名

注意此处jadx是反编译失败，注释

/* renamed from: X.0Pru

中的X.0Pru，才是真正的类名

而不是，此处被改名后的：public class C660690Pru extends TransmitThread中的C660690Pru

关于工具类函数：printClassAllMethodsFields

详见：函数和属性

调用=调试运行

frida -U -f com.ss.android.ugc.aweme -l hook_douyin.js

输出

==========Class: X.0Pru ==========
-----All Properties-----
use getDeclaredFields
public int X.0Pru.LIZ
public final X.0Prt X.0Pru.LIZIZ
-----All Methods-----
use getDeclaredMethods
private boolean X.0Pru.LIZ(java.lang.String,org.json.JSONObject)
private boolean X.0Pru.LIZ(org.json.JSONObject)
public final void X.0Pru.LIZ()
public void X.0Pru.run()

X0PruCls=<class: X.0Pru>

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-07-26 10:56:32

单个类的单个函数

单个类的单个函数

举例：想要hook前面的类X.0Pru的函数：

普通函数 = 不带重载的函数

直接去hook：

  // public void run() {
  // public void X.0Pru.run()
  var X0PruFuncRun = X0PruCls.run
  // var X0PruFuncRun = X0PruCls.run()
  console.log("X0PruFuncRun=" + X0PruFuncRun)
  if (X0PruFuncRun) {
    X0PruFuncRun.implementation = function () {
      // add what you want
      return this.run()
    }
  }

加上：打印函数调用堆栈

如果想要，hook的函数触发时，打印函数调用堆栈，可以用：

  // public void run() {
  // public void X.0Pru.run()
  var X0PruFuncRun = X0PruCls.run
  // var X0PruFuncRun = X0PruCls.run()
  console.log("X0PruFuncRun=" + X0PruFuncRun)
  if (X0PruFuncRun) {
    X0PruFuncRun.implementation = function () {
      var funcName = "X.0Pru.run"
      var funcParaDict = {}
      printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

      return this.run()
    }
  }

说明

关于工具类函数printFunctionCallAndStack的源码

详见：函数调用堆栈

输出举例

X.0Pru.run:
Stack: X.0Pru.run(Native Method)
    at kotlin.jvm.internal.ALambdaS640S0100000_23.invoke$35(SourceFile:33882174)
    at kotlin.jvm.internal.ALambdaS640S0100000_23.invoke(Unknown Source:74)
    at com.ss.android.ugc.bytex.pthread.base.convergence.core.ThreadWorker.run(Unknown Source:101)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
    at com.ss.android.ugc.bytex.pthread.base.convergence.core.ExemptThreadFactory$newThread$t$1.run(Unknown Source:39)
    at java.lang.Thread.run(Thread.java:1012)

带重载的函数

需要用overload指定对应对应是具体哪个函数：

public final void LIZ()

  // /* JADX WARN: Type inference failed for: r0v20, types: [X.0PmX] */
  // public final void LIZ() {
  // public final void X.0Pru.LIZ()
  // var X0PruFuncLIZ_0 = X0PruCls.LIZ
  // var X0PruFuncLIZ_0 = X0PruCls.LIZ.overload('java.lang.String', 'org.json.JSONObject')
  var X0PruFuncLIZ_0 = X0PruCls.LIZ.overload()
  console.log("X0PruFuncLIZ_0=" + X0PruFuncLIZ_0)
  if (X0PruFuncLIZ_0) {
    X0PruFuncLIZ_0.implementation = function () {
      return this.LIZ()
    }
  }

private boolean LIZ(JSONObject jSONObject)

  // private boolean LIZ(JSONObject jSONObject) {
  // private boolean X.0Pru.LIZ(org.json.JSONObject)
  var X0PruFuncLIZ_1 = X0PruCls.LIZ.overload('org.json.JSONObject')
  console.log("X0PruFuncLIZ_1=" + X0PruFuncLIZ_1)
  if (X0PruFuncLIZ_1) {
    X0PruFuncLIZ_1.implementation = function (jSONObject) {
      return this.LIZ(jSONObject)
    }
  }

private boolean LIZ(String str, JSONObject jSONObject)

  // private boolean X.0Pru.LIZ(java.lang.String,org.json.JSONObject)
  // private boolean LIZ(String str, JSONObject jSONObject) {
  var X0PruFuncLIZ_2 = X0PruCls.LIZ.overload('java.lang.String', 'org.json.JSONObject')
  console.log("X0PruFuncLIZ_2=" + X0PruFuncLIZ_2)
  if (X0PruFuncLIZ_2) {
    X0PruFuncLIZ_2.implementation = function (str, jSONObject) {
      return this.LIZ(str, jSONObject)
    }
  }

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-07-26 10:59:36

hookForceStop

hookForceStop

调用：

frida -U -n system_server -l hook_systemServer.js

frida -U -f com.android.settings -l hook_systemServer.js

对应脚本：

hook_systemServer.js

/**
 * Update: 20230920
 * Usage:
 *  frida -U -n system_server -l hook_systemServer.js
 *
 *  frida -U -f com.android.settings -l hook_systemServer.js
*/

/*******************************************************************************
 * Const & Config
*******************************************************************************/

let CurAppPkgName = "com.wallpaper.hd.funny"

// Enable Not Call Filter
let enableNotCallFilter_Binder_execTransact = false

let enableNotCallFilter_AMS_startService = false
let enableNotCallFilter_AMS_startProcessLocked = false

let enableNotCallFilter_ActiveServices_bringUpServiceLocked = true
// let enableNotCallFilter_ActiveServices_bringUpServiceLocked = false

let enableNotCallFilter_ActiveServices_startServiceLocked = false
let enableNotCallFilter_ActiveServices_startServiceInnerLocked = false

let enableNotCallFilter_ProcessList_startProcessLocked = false
let enableNotCallFilter_ProcessList_handleProcessStartedLocked = false

let enableNotCallFilter_ContentProviderHelper_getContentProviderImpl = true
// let enableNotCallFilter_ContentProviderHelper_getContentProviderImpl = false

// let enableNotCallFilter_BroadcastQueue_processNextBroadcastLocked = false

let enableNotCallFilter_Handler_dispatchMessage = true
// let enableNotCallFilter_Handler_dispatchMessage = false

/*******************************************************************************
 * Common Util
*******************************************************************************/

// convert Object(dict/list/...) to JSON string
function toJsonStr(curObj, singleLine=false, space=2){
  // console.log("toJsonStr: singleLine=" + singleLine)
  // var jsonStr = JSON.stringify(curObj, null, 2)
  var jsonStr = JSON.stringify(curObj, null, space)
  if(singleLine) {
    // jsonStr = jsonStr.replace(/\\n/g, '')
    jsonStr = jsonStr.replace(/\n/g, '')
  }
  return jsonStr
  // return curObj.toString()
}

function describeJavaClass(className) {
  var jClass = Java.use(className);
  console.log(JSON.stringify({
    _name: className,
    _methods: Object.getOwnPropertyNames(jClass.__proto__).filter(m => {
    // _methods: Object.getOwnPropertyDescriptor(jClass.__proto__).filter(m => {
    // _methods: Object.getOwnPropertySymbols(jClass.__proto__).filter(m => {
      return !m.startsWith('$') // filter out Frida related special properties
         || m == 'class' || m == 'constructor' // optional
    }),
    _fields: jClass.class.getFields().map(f => {
      return f.toString()
    })
  }, null, 2))
}

// enumerate all methods declared in a Java class
function enumMethods(targetClass)
{
  var hook = Java.use(targetClass);
  var ownMethods = hook.class.getDeclaredMethods();
  console.log("use getDeclaredMethods")

  // var ownMethods = hook.class.getMethods();
  // console.log("use getMethods")

  hook.$dispose;
  return ownMethods;
}

// enumerate all property=field declared in a Java class
function enumProperties(targetClass)
{
  var hook = Java.use(targetClass);
  // var ownMethods = hook.class.getFields();
  // console.log("use getFields")

  var ownFields = hook.class.getDeclaredFields();
  console.log("use getDeclaredFields")

  hook.$dispose;
  return ownFields;
}

// print single java class all Functions=Methods and Fields=Properties
function printClassAllMethodsFields(javaClassName){
  console.log("==========" + "Class: " + javaClassName + " ==========")

  console.log("-----" + "All Properties" + "-----")
  var allProperties = enumProperties(javaClassName)
  allProperties.forEach(function(singleProperty) {
    console.log(singleProperty)
  })

  console.log("-----" + "All Methods" + "-----")
  // enumerate all methods in a class
  var allMethods = enumMethods(javaClassName)
  allMethods.forEach(function(singleMethod) {
    console.log(singleMethod)
  })
  console.log("")
}

// generate current stack trace string
function genStackStr(ThrowableCls) {
  let newThrowable = ThrowableCls.$new()
  // console.log("genStackStr: newThrowable=" + newThrowable)
  var stackElements = newThrowable.getStackTrace()
  // console.log("genStackStr: stackElements=" + stackElements)
  var stackStr = "Stack: " + stackElements[0] //method//stackElements[0].getMethodName()
  for (var i = 1; i < stackElements.length; i++) {
    stackStr += "\n    at " + stackElements[i]
  }
  // stackStr = "\n\n" + stackStr
  stackStr = stackStr + "\n"
  // console.log("genStackStr: stackStr=" + stackStr)

  return stackStr
}

// 打印当前调用堆栈信息 print call stack
function PrintStack(ThrowableCls) {
  var stackStr = genStackStr(ThrowableCls)
  console.log(stackStr)

  // let newThrowable = ThrowableCls.$new()
  // let curLog = Java.use("android.util.Log")
  // let stackStr = curLog.getStackTraceString(newThrowable)
  // console.log("stackStr=" + stackStr)
}

// generate Function call string
function genFunctionCallStr(funcName, funcParaDict){
  var logStr = `${funcName}:`
  // var logStr = funcName + ":"
  var isFirst = true

  for(var curParaName in funcParaDict){
    let curParaValue = funcParaDict[curParaName]
    var prevStr = ""
    if (isFirst){
      prevStr = " "
      isFirst = false
    } else {
      prevStr = ", "
    }

    logStr = `${logStr}${prevStr}${curParaName}=` + curParaValue
    // logStr = logStr + prevStr + curParaName + "=" + curParaValue
  }

  return logStr
}

// print Function call and stack trace string
function printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls, filterList=undefined){
  // console.log("filterList=" + filterList)

  var needPrint = true

  var functionCallStr = genFunctionCallStr(funcName, funcParaDict)

  var stackStr = genStackStr(ThrowableCls)

  if (filterList != undefined) {
    needPrint = false

    for (const curFilter of filterList) {
      // console.log("curFilter=" + curFilter)
      if (stackStr.includes(curFilter)) {
        needPrint = true
        // console.log("needPrint=" + needPrint)
        break
      }
    }
  }

  if (needPrint) {
    var functionCallAndStackStr = `${functionCallStr}\n${stackStr}`
    // var functionCallAndStackStr = functionCallStr + "\n" + stackStr

    // return functionCallAndStackStr
    console.log(functionCallAndStackStr)
  }
}

// find loaded classes that match a pattern (async)
function findClass(pattern)
{
    console.log("Finding all classes that match pattern: " + pattern + "\n");

    Java.enumerateLoadedClasses({
        onMatch: function(aClass) {
            if (aClass.match(pattern))
                console.log(aClass)
        },
        onComplete: function() {}
    });
}

/*----------------------------------------
 Android Utils
----------------------------------------*/

function printProcessRecord(curProcessRecord){
  console.log("printProcessRecord: curProcessRecord=" + curProcessRecord)
  console.log("  mService=" + curProcessRecord.mService.value)
  console.log("  mProcLock=" + curProcessRecord.mProcLock.value)
  console.log("  info=" + curProcessRecord.info.value)
  console.log("  processInfo=" + curProcessRecord.processInfo.value)
  console.log("  isolated=" + curProcessRecord.isolated.value)
  console.log("  isSdkSandbox=" + curProcessRecord.isSdkSandbox.value)
  console.log("  appZygote=" + curProcessRecord.appZygote.value)
  console.log("  uid=" + curProcessRecord.uid.value)
  console.log("  userId=" + curProcessRecord.userId.value)
  console.log("  processName=" + curProcessRecord.processName.value)
  console.log("  sdkSandboxClientAppPackage=" + curProcessRecord.sdkSandboxClientAppPackage.value)
  console.log("  sdkSandboxClientAppVolumeUuid=" + curProcessRecord.sdkSandboxClientAppVolumeUuid.value)
}

function getParcelInfo(curParcel){
  var parcelDataSize = curParcel.dataSize()
  var parcelDataCapacity = curParcel.dataCapacity()
  // var parcelDataPosition = curParcel.dataPosition()
  // var parcelInfoStr = "dataSize=" + parcelDataSize + ", dataCapacity=" + parcelDataCapacity + ", dataPositon = " + parcelDataPosition
  var parcelInfoStr = "Parcel: " + curParcel + ", dataSize=" + parcelDataSize + ", dataCapacity=" + parcelDataCapacity
  return parcelInfoStr
}

// try to read Parcel string
function tryReadParcelString(curParcel){
  var parcelDataSize = curParcel.dataSize()
  // console.log("curParcel=" + curParcel + ": parcelDataSize=" + parcelDataSize)
  let StepSize = 4

  var isFoundStr = false
  var strDictList = []

  var curStr = null
  var curStepSize = 0
  // var foundStr = null
  // var strPos = -1
  var foundStrNum = 0
  for (var curPos = 0; curPos < parcelDataSize; curPos++) {
    curStepSize = StepSize
    curParcel.setDataPosition(curPos)
    curStr = curParcel.readString()
    if (curStr){
      if (curStr === "") {
        // empty string, continue try read other string
      } else {
        isFoundStr = true
        foundStrNum += 1

        // foundStr = curStr
        // strPos = curPos
        // console.log("  [" + curPos + "] string=" + curStr)
        // console.log("  [" + strPos + "] string=" + foundStr)
        var curStrDict = {"str": curStr, "pos": curPos}
        strDictList.push(curStrDict)
        var newPosition = curParcel.dataPosition()
        var posDiff = newPosition - curPos
        curStepSize = posDiff
        // console.log("  [" + foundStrNum + "] strDict=" + toJsonStr(curStrDict, true) + ", pos: " + curPos + " -> " + newPosition +", curStepSize=" + curStepSize)
        // break
      }
    }
    curPos += curStepSize
  }

  // setDataPosition and readString maybe CHANGED position, so need reset position
  curParcel.setDataPosition(0)

  // if(isFoundStr){
  //   // var logStr = toJsonStr(strDictList, true, 1)
  //   var logStr = toJsonStr(strDictList, true, 0)
  //   console.log("  logStr=" + logStr)
  // }

  return {
    "isFoundStr": isFoundStr,
    "strDictList": strDictList
  }
}

// print Intent info
function printIntentInfo(curIntent){
  console.log("printIntentInfo: curIntent=" + curIntent)
  var curComponent = curIntent.getComponent()
  console.log("  Intent component=" + curComponent)
  if (curComponent) {
    var pkgName = curComponent.getPackageName()
    var clsName = curComponent.getClassName()
    var shortClsName = curComponent.getShortClassName()
    var flattenedShortStr = curComponent.flattenToShortString()
    var flattenedStr = curComponent.flattenToString()
    console.log("    Intent Component info: pkgName=" + pkgName + ", clsName=" + clsName + ", shortClsName=" + shortClsName  + ", flattenedStr=" + flattenedStr + ",flattenedShortStr=" + flattenedShortStr)
  }
}

/*******************************************************************************
 * Main Hook
*******************************************************************************/

function hookNativeFunc(){
  // /Users/crifan/dev/dev_src/androidReverse/Android/android.googlesource.com/base-refs_heads_main/core/jni/android_util_Binder.cpp
  // status_t onTransact( uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags = 0) override {
  // var foundOnTransact = Module.findExportByName(null, "onTransact")

  // let transactModuleName = "libBinder.so"
  // let transactModuleName = "libbinder.so"
  let transactModuleName = "libbinder_ndk.so"

  var foundOnTransact = Module.findExportByName(transactModuleName, "onTransact")

  console.log("foundOnTransact=" + foundOnTransact)
  if (foundOnTransact) {
    Interceptor.attach(foundOnTransact, {
      onEnter: function(args) {
        var code = args[0]
        var data = args[1]
        var reply = args[2]
        var flags = args[3]
        console.log("onTransact: code=" + code + ", data=" + data + ", reply=" + reply + ", flags=" + flags)
      },
      onLeave: function(retVal) {
        console.log("onTransact: retval=" + retVal)
      }
    })
  }

  // var foundTransact = Module.findExportByName(null, "transact")
  var foundTransact = Module.findExportByName(transactModuleName, "transact")
  console.log("foundTransact=" + foundTransact)
}

function hookPrintTransactCodeValue(){
    // ---------------------------------------- android.app.IActivityManager$Stub
    var IActivityManagerStubClassName = "android.app.IActivityManager$Stub"
    var IActivityManagerStubCls = Java.use(IActivityManagerStubClassName)
    console.log("IActivityManagerStubCls=" + IActivityManagerStubCls)
    // printClassAllMethodsFields(IActivityManagerStubClassName)

    // console.log("IActivityManager$Stub: code_startService=" + code_startService + ", code_broadcastIntent=" + code_broadcastIntent + ", code_startInstrumentation=" + code_startInstrumentation + ", code_unbindService=" + code_unbindService)
    var TRANSACTION_startService = IActivityManagerStubCls.TRANSACTION_startService.value
    console.log("TRANSACTION_startService=" + TRANSACTION_startService)
    var TRANSACTION_broadcastIntent = IActivityManagerStubCls.TRANSACTION_broadcastIntent.value
    console.log("TRANSACTION_broadcastIntent=" + TRANSACTION_broadcastIntent)
    var TRANSACTION_unbindService = IActivityManagerStubCls.TRANSACTION_unbindService.value
    console.log("TRANSACTION_unbindService=" + TRANSACTION_unbindService)
    var TRANSACTION_publishService = IActivityManagerStubCls.TRANSACTION_publishService.value
    console.log("TRANSACTION_publishService=" + TRANSACTION_publishService)
    var TRANSACTION_startInstrumentation = IActivityManagerStubCls.TRANSACTION_startInstrumentation.value
    console.log("TRANSACTION_startInstrumentation=" + TRANSACTION_startInstrumentation)
    var TRANSACTION_startActivity = IActivityManagerStubCls.TRANSACTION_startActivity.value
    console.log("TRANSACTION_startActivity=" + TRANSACTION_startActivity)
    // var TRANSACTION_startActivityAndWait = IActivityManagerStubCls.TRANSACTION_startActivityAndWait.value
    // console.log("TRANSACTION_startActivityAndWait=" + TRANSACTION_startActivityAndWait)
    // var TRANSACTION_startActivityAsCaller = IActivityManagerStubCls.TRANSACTION_startActivityAsCaller.value
    // console.log("TRANSACTION_startActivityAsCaller=" + TRANSACTION_startActivityAsCaller)
    var TRANSACTION_startActivityAsUser = IActivityManagerStubCls.TRANSACTION_startActivityAsUser.value
    console.log("TRANSACTION_startActivityAsUser=" + TRANSACTION_startActivityAsUser)
    var TRANSACTION_startActivityFromRecents = IActivityManagerStubCls.TRANSACTION_startActivityFromRecents.value
    console.log("TRANSACTION_startActivityFromRecents=" + TRANSACTION_startActivityFromRecents)
    // var TRANSACTION_startActivityIntentSender = IActivityManagerStubCls.TRANSACTION_startActivityIntentSender.value
    // console.log("TRANSACTION_startActivityIntentSender=" + TRANSACTION_startActivityIntentSender)
    // var TRANSACTION_startActivityWithConfig = IActivityManagerStubCls.TRANSACTION_startActivityWithConfig.value
    // console.log("TRANSACTION_startActivityWithConfig=" + TRANSACTION_startActivityWithConfig)

    var TRANSACTION_registerUidObserver = IActivityManagerStubCls.TRANSACTION_registerUidObserver.value
    console.log("TRANSACTION_registerUidObserver=" + TRANSACTION_registerUidObserver)
    var TRANSACTION_unhandledBack = IActivityManagerStubCls.TRANSACTION_unhandledBack.value
    console.log("TRANSACTION_unhandledBack=" + TRANSACTION_unhandledBack)
    var TRANSACTION_registerReceiver = IActivityManagerStubCls.TRANSACTION_registerReceiver.value
    console.log("TRANSACTION_registerReceiver=" + TRANSACTION_registerReceiver)
    var TRANSACTION_attachApplication = IActivityManagerStubCls.TRANSACTION_attachApplication.value
    console.log("TRANSACTION_attachApplication=" + TRANSACTION_attachApplication)
    // var TRANSACTION_activityIdle = IActivityManagerStubCls.TRANSACTION_activityIdle.value
    // console.log("TRANSACTION_activityIdle=" + TRANSACTION_activityIdle)
    var TRANSACTION_stopService = IActivityManagerStubCls.TRANSACTION_stopService.value
    console.log("TRANSACTION_stopService=" + TRANSACTION_stopService)
    var TRANSACTION_bindService = IActivityManagerStubCls.TRANSACTION_bindService.value
    console.log("TRANSACTION_bindService=" + TRANSACTION_bindService)
    var TRANSACTION_noteWakeupAlarm = IActivityManagerStubCls.TRANSACTION_noteWakeupAlarm.value
    console.log("TRANSACTION_noteWakeupAlarm=" + TRANSACTION_noteWakeupAlarm)
    var TRANSACTION_openContentUri = IActivityManagerStubCls.TRANSACTION_openContentUri.value
    console.log("TRANSACTION_openContentUri=" + TRANSACTION_openContentUri)
    var TRANSACTION_finishReceiver = IActivityManagerStubCls.TRANSACTION_finishReceiver.value
    console.log("TRANSACTION_finishReceiver=" + TRANSACTION_finishReceiver)
    // var TRANSACTION_startNextMatchingActivity = IActivityManagerStubCls.TRANSACTION_startNextMatchingActivity.value
    // console.log("TRANSACTION_startNextMatchingActivity=" + TRANSACTION_startNextMatchingActivity)

    var TRANSACTION_finishActivity = IActivityManagerStubCls.TRANSACTION_finishActivity.value
    console.log("TRANSACTION_finishActivity=" + TRANSACTION_finishActivity)
}

function hookForceStop() {
  if(!Java.available){
    console.error("Java is not available")
    return
  }

  console.log("Java is available")
  console.log("Java.androidVersion=" + Java.androidVersion)

  Java.perform(function () {

    const ValidTransactCodeList = [
      // 24,
      // 26,
      // 27,
      // 28,
      // 29,
      // 30,
      // 34,

      3, // f12217h = START_ACTIVITY_TRANSACTION = 2+1 = 3
      8, // TRANSACTION_startActivity= 7+1 = 8

      27, // serviceCode = TRANSACTION_startService = 27
      // 34, // serviceCode = START_SERVICE_TRANSACTION = 33+1 = 34

      29, // TRANSACTION_bindService = 29

      15, // broadcastCode = TRANSACTION_broadcastIntent = 14+1 = 15
      // 14, // broadcastCode = BROADCAST_INTENT_TRANSACTION = 13+1 = 14, TRANSACTION_removeAccountExplicitly = 13+1 = 14

      37, // instrumentationCode = TRANSACTION_startInstrumentation = 36+1= 37
      // 44, // instrumentationCode = START_INSTRUMENTATION_TRANSACTION = 43+1= 44
    ]

    hookNativeFunc()

    var ThrowableCls = Java.use("java.lang.Throwable")
    console.log("ThrowableCls=" + ThrowableCls)
    let curLog = Java.use("android.util.Log")
    console.log("curLog=" + curLog)
    let Parcel = Java.use("android.os.Parcel")
    console.log("Parcel=" + Parcel)

    // // com.android.server.wm.ActivityStarter
    // var serverCls = Java.use("com.android.server")
    // console.log("serverCls=" + serverCls)
    // var wmCls = serverCls.wm
    // console.log("wmCls=" + wmCls)
    // var ActivityStarterCls = wmCls.ActivityStarter
    // console.log("ActivityStarterCls=" + ActivityStarterCls)
    // // private int executeRequest(Request request) {

    // hookPrintTransactCodeValue()

    // ---------------------------------------- android.os.Binder
    var BinderCls = Java.use("android.os.Binder")
    console.log("BinderCls=" + BinderCls)

    // private boolean execTransact(int code, long dataObj, long replyObj, int flags)
    var execTransactFunc = BinderCls.execTransact
    console.log("execTransactFunc=" + execTransactFunc)

    if (execTransactFunc) {
      execTransactFunc.implementation = function (code, dataObj, replyObj, flags) {
        var shouldCallOrigFunc = true
        // var logStr = ""

        // if (ValidTransactCodeList.includes(code)) {
          var dataParcel = Parcel.obtain(dataObj)

          // var replyPacel = Parcel.obtain(replyObj)
          // var dataParcelStr = dataParcel.toString()
          // var replyPacelStr = replyPacel.toString()
          // console.log("dataParcelStr=" + dataParcelStr + ", replyPacelStr=" + replyPacelStr)
          var curParcelDataSize = dataParcel.dataSize()
          // console.log("  curParcelDataSize=" + curParcelDataSize)
          if (curParcelDataSize > 0) {
            // let interfaceTokenStartPos = 1
            // let interfaceTokenStartPos = 0
            // let interfaceTokenStartPos = 4
            // let interfaceTokenStartPos = 8
            // dataParcel.setDataPosition(interfaceTokenStartPos)
            // var interfaceTokenStr = dataParcel.readString()
            // console.log("  interfaceTokenStr=" + interfaceTokenStr)

            // var parcelStr = tryReadParcelString(dataParcel)
            // var {parcelStr, strPos} = tryReadParcelString(dataParcel)
            var readResultDict = tryReadParcelString(dataParcel)
            // console.log("parcelStr=" + parcelStr + ", strPos=" + strPos)
            var isFoundStr = readResultDict.isFoundStr
            var strDictList = readResultDict.strDictList
            if (isFoundStr) {
              // var foundStrLog = ""
              var strDictListStr = toJsonStr(strDictList, true, 0)
              // console.log("Binder.execTransact: code=" + code + ", dataObj=" + dataObj + ", replyObj=" + replyObj + ", flags=" + flags)
              var execTransactCallStr = "Binder.execTransact: code=" + code + ", dataObj=" + dataObj + ", replyObj=" + replyObj + ", flags=" + flags
              // console.log(execTransactCallStr)

              var dataParcelInfoStr = getParcelInfo(dataParcel)
              // var replyPacelInfoStr = getParcelInfo(replyPacel)
              // console.log("dataParcelInfoStr=" + dataParcelInfoStr + ", replyPacelInfoStr=" + replyPacelInfoStr)
              // console.log("  dataParcel: strDictListStr=" + strDictListStr + ", infoStr=" + dataParcelInfoStr)
              var dataParcelCurAppStr = "  dataParcel: strDictListStr=" + strDictListStr + ", infoStr=" + dataParcelInfoStr
              // console.log(dataParcelCurAppStr)

              // for debug: found string not empty, then not call origin transact -> try find this function is true core trigger service or not
              // if (parcelStr) {
              // if (parcelStr === CurAppPkgName) {
              var isCurApp = false
              for (var idx = 0; idx < strDictList.length; idx++) {
                var curStrDict = strDictList[idx]
                var curPos = curStrDict["pos"]
                var curStr = curStrDict["str"]
                if (curStr.includes(CurAppPkgName)) {
                  isCurApp = true
                  // console.log("    Found [" + curPos + "] current app: " + curStr)
                  break
                }
              }

              if (enableNotCallFilter_Binder_execTransact){
                if (isCurApp) {
                  shouldCallOrigFunc = false
                  // console.log("  shouldCallOrigFunc=" + shouldCallOrigFunc)
                }
              }

              var shouldLogDetail = false
              if (isCurApp) {
                shouldLogDetail = true
                // console.log("shouldLogDetail=" + shouldLogDetail)
              }

              if (shouldLogDetail){
                // var detailedLogStr = execTransactCallStr + "\n" + dataParcelCurAppStr
                var detailedLogStr = `${execTransactCallStr}\n${dataParcelCurAppStr}`
                // var detailedLogStr = execTransactCallStr + "\n" + dataParcelCurAppStr
                console.log(detailedLogStr)
                // foundStrLog = `${execTransactCallStr}\n${dataParcelCurAppStr}`

                //   // console.log("CurApp Binder.execTransact: code=" + code + ", dataObj=" + dataObj + ", replyObj=" + replyObj + ", flags=" + flags + "\n  dataParcel: strDictListStr=" + strDictListStr + ", infoStr=" + dataParcelInfoStr)
                //   console.log("CurApp Binder.execTransact: code=" + code + ", dataObj=" + dataObj + ", replyObj=" + replyObj + ", flags=" + flags)
                //   console.log("  dataParcel: strDictListStr=" + strDictListStr + ", infoStr=" + dataParcelInfoStr)

                //   // logStr = `Binder.execTransact: code=${code}, dataObj=${dataObj}, replyObj=${replyObj}, flags=${flags}\n  dataParcel: strDictListStr=${strDictListStr}, infoStr=${ dataParcelInfoStr}`
                //   // console.log("DetailLogStr=" + logStr)
              } else {
                //   console.log("Simple Binder.execTransact: code=" + code + ", dataObj=" + dataObj + ", flags=" + flags)
                //   // logStr = `Simple: Binder.execTransact: code=${code}, dataObj=${dataObj}, flags=${flags}`
                //   // console.log("SimpleLogStr=" + logStr)

                // foundStrLog = `Binder.execTransact: code=${code}, dataObj=${dataObj}, flags=${flags}`
                var simpleLog = `Binder.execTransact: code=${code}, dataObj=${dataObj}, flags=${flags}`
                // var simpleLog = "Binder.execTransact: code=" + code + ", dataObj=" + dataObj + ", flags=" + flags
                console.log(simpleLog)
              }

              // console.log(foundStrLog)
            }

            // PrintStack(ThrowableCls)
          } else {
            console.log("Binder execTransact: code=" + code + ", 0 size data Parcel, flags=" + flags)
          }
        // }

        if (shouldCallOrigFunc) {
          // console.log(logStr)
          return this.execTransact(code, dataObj, replyObj, flags)
        } else {
          // console.log(logStr)
          console.log("    Not call Binder.execTransact")
          return false
        }

      }
    }

    var IBinderClassName = "android.os.IBinder"
    var IBinderCls = Java.use(IBinderClassName)
    console.log("IBinderCls=" + IBinderCls)
    // printClassAllMethodsFields(IBinderClassName)
    var firstCallTransacton = IBinderCls.FIRST_CALL_TRANSACTION
    console.log("firstCallTransacton=" + firstCallTransacton)
    var firstCallTransactonValue = firstCallTransacton.value
    console.log("firstCallTransactonValue=" + firstCallTransactonValue)

    // public abstract boolean transact (int code, Parcel data, Parcel reply, int flags)
    // var transactFunc = IBinderCls.transact

    var transactFunc = BinderCls.transact
    if (transactFunc) {
      transactFunc.implementation = function (code, data, reply, flags) {
        var transactOk = this.transact(code, data, reply, flags)
        if (ValidTransactCodeList.includes(code)) {
          console.log("Binder transact: code=" + code + ",data=" + data + ",reply=" + reply + ",flags=" + flags + " -> transactOk=" + transactOk)
          PrintStack(ThrowableCls)
        }
        return transactOk
      }
    }

    // protected boolean onTransact (int code,  Parcel data,  Parcel reply,  int flags)
    var onTransactFunc = BinderCls.onTransact
    if (onTransactFunc) {
      onTransactFunc.implementation = function (code, data, reply, flags) {
        var transactOk = this.onTransact(code, data, reply, flags)
        if (ValidTransactCodeList.includes(code)) {
          console.log("Binder onTransact: code=" + code + ",data=" + data + ",reply=" + reply + ",flags=" + flags + " -> transactOk=" + transactOk)
          PrintStack(ThrowableCls)
        }
        return transactOk
      }
    }

    // ---------------------------------------- android.app.ContextImpl
    var ContextImplClassName = "android.app.ContextImpl"
    var ContextImplCls = Java.use(ContextImplClassName)
    console.log("ContextImplCls=" + ContextImplCls)
    // printClassAllMethodsFields(ContextImplClassName)

    // public boolean bindServiceAsUser(Intent service, ServiceConnection conn, int flags, UserHandle user)
    var bindServiceAsUserFunc4 = ContextImplCls.bindServiceAsUser.overload('android.content.Intent', 'android.content.ServiceConnection', 'int', 'android.os.UserHandle')
    if (bindServiceAsUserFunc4) {
      bindServiceAsUserFunc4.implementation = function (service, conn, flags, user) {
        // console.log("ContextImpl.bindServiceAsUser 4: service=" + service + ", conn=" + conn + ", flags=" + flags + ", user=" + user)
        // PrintStack(ThrowableCls)
        var funcName = "ContextImpl.bindServiceAsUser 4"
        var funcParaDict = {
          "service": service,
          "conn": conn,
          "flags": flags,
          "user": user,
        }
        printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

        return this.bindServiceAsUser(service, conn, flags, user)
      }
    }

    // public boolean bindServiceAsUser(Intent service, ServiceConnection conn, int flags, Handler handler, UserHandle user)
    var bindServiceAsUserFunc5 = ContextImplCls.bindServiceAsUser.overload('android.content.Intent', 'android.content.ServiceConnection', 'int', 'android.os.Handler', 'android.os.UserHandle')
    if (bindServiceAsUserFunc5) {
      bindServiceAsUserFunc5.implementation = function (service, conn, flags, handler, user) {
        // console.log("ContextImpl.bindServiceAsUser 5: service=" + service + ", conn=" + conn + ", flags=" + flags + ", handler=" + handler + ", user=" + user)
        // PrintStack(ThrowableCls)
        var funcName = "ContextImpl.bindServiceAsUser 5"
        var funcParaDict = {
          "service": service,
          "conn": conn,
          "flags": flags,
          "handler": handler,
          "user": user,
        }
        printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

        return this.bindServiceAsUser(service, conn, flags, handler, user)
      }
    }

    // ---------------------------------------- com.android.server.am.ProcessRecord
    var ProcessRecordClassName = "com.android.server.am.ProcessRecord"
    var ProcessRecordCls = Java.use(ProcessRecordClassName)
    console.log("ProcessRecordCls=" + ProcessRecordCls)
    // printClassAllMethodsFields(ProcessRecordClassName)

    // ---------------------------------------- com.android.server.am.ActiveServices
    var ActiveServicesClassName = "com.android.server.am.ActiveServices"
    var ActiveServicesCls = Java.use(ActiveServicesClassName)
    console.log("ActiveServicesCls=" + ActiveServicesCls)

    // private String bringUpServiceLocked(ServiceRecord r, int intentFlags, boolean execInFg, boolean whileRestarting, boolean permissionsReviewRequired, boolean packageFrozen, boolean enqueueOomAdj)
    var bringUpServiceLockedFunc = ActiveServicesCls.bringUpServiceLocked
    if (bringUpServiceLockedFunc) {
      bringUpServiceLockedFunc.implementation = function (r, intentFlags, execInFg, whileRestarting, permissionsReviewRequired, packageFrozen, enqueueOomAdj) {
        var shouldCallOrigFunc = true
        // console.log("ActiveServices.bringUpServiceLocked: r=" + r + ", intentFlags=" + intentFlags + ", execInFg=" + execInFg + ", whileRestarting=" + whileRestarting + ", permissionsReviewRequired=" + permissionsReviewRequired + ", packageFrozen=" + packageFrozen + ", enqueueOomAdj=" + enqueueOomAdj)
        // PrintStack(ThrowableCls)

        var funcName = "ActiveServices.bringUpServiceLocked"
        var funcParaDict = {
          "r": r,
          "intentFlags": intentFlags,
          "execInFg": execInFg,
          "whileRestarting": whileRestarting,
          "permissionsReviewRequired": permissionsReviewRequired,
          "packageFrozen": packageFrozen,
          "enqueueOomAdj": enqueueOomAdj,
        }
        printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

        if(enableNotCallFilter_ActiveServices_bringUpServiceLocked){
          var rStr = r.toString()
          if (rStr.includes(CurAppPkgName)){
            shouldCallOrigFunc = false
          }
        }

        if(shouldCallOrigFunc) {
          return this.bringUpServiceLocked(r, intentFlags, execInFg, whileRestarting, permissionsReviewRequired, packageFrozen, enqueueOomAdj)
        } else {
          console.log("  Not call ActiveServices.bringUpServiceLocked")
          return ""
        }
      }
    }

    // ComponentName startServiceLocked(IApplicationThread caller, Intent service, String resolvedType, int callingPid, int callingUid, boolean fgRequired, String callingPackage, @Nullable String callingFeatureId, final int userId)
    var startServiceLockedFunc9 = ActiveServicesCls.startServiceLocked.overload('android.app.IApplicationThread', 'android.content.Intent', 'java.lang.String', 'int', 'int', 'boolean', 'java.lang.String', 'java.lang.String', 'int')
    if (startServiceLockedFunc9) {
      startServiceLockedFunc9.implementation = function (caller, service, resolvedType, callingPid, callingUid, fgRequired, callingPackage, callingFeatureId, userId) {
        var shouldCallOrigFunc = true
        var funcName = "ActiveServices.startServiceLocked 9"
        var funcParaDict = {
          "caller": caller,
          "service": service,
          "resolvedType": resolvedType,
          "callingPid": callingPid,
          "callingUid": callingUid,
          "fgRequired": fgRequired,
          "callingPackage": callingPackage,
          "callingFeatureId": callingFeatureId,
          "userId": userId,
        }
        printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

        if(enableNotCallFilter_ActiveServices_startServiceLocked){
          if (callingPackage.includes(CurAppPkgName)){
            shouldCallOrigFunc = false
          }
        }

        if(shouldCallOrigFunc) {
          return this.startServiceLocked(caller, service, resolvedType, callingPid, callingUid, fgRequired, callingPackage, callingFeatureId, userId)
        } else {
          console.log("  Not call ActiveServices.startServiceLocked 9")
          return null
        }
      }
    }

    // ComponentName startServiceLocked(IApplicationThread caller, Intent service, String resolvedType, int callingPid, int callingUid, boolean fgRequired, String callingPackage, @Nullable String callingFeatureId, final int userId, boolean allowBackgroundActivityStarts, @Nullable IBinder backgroundActivityStartsToken)
    var startServiceLockedFunc11 = ActiveServicesCls.startServiceLocked.overload('android.app.IApplicationThread', 'android.content.Intent', 'java.lang.String', 'int', 'int', 'boolean', 'java.lang.String', 'java.lang.String', 'int', 'boolean', 'android.os.IBinder')
    if (startServiceLockedFunc11) {
      startServiceLockedFunc11.implementation = function (caller, service, resolvedType, callingPid, callingUid, fgRequired, callingPackage, callingFeatureId, userId, allowBackgroundActivityStarts, backgroundActivityStartsToken) {
        var shouldCallOrigFunc = true
        var funcName = "ActiveServices.startServiceLocked 11"
        var funcParaDict = {
          "caller": caller,
          "service": service,
          "resolvedType": resolvedType,
          "callingPid": callingPid,
          "callingUid": callingUid,
          "fgRequired": fgRequired,
          "callingPackage": callingPackage,
          "callingFeatureId": callingFeatureId,
          "userId": userId,
          "allowBackgroundActivityStarts": allowBackgroundActivityStarts,
          "backgroundActivityStartsToken": backgroundActivityStartsToken,
        }
        printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

        if(enableNotCallFilter_ActiveServices_startServiceLocked){
          if (callingPackage.includes(CurAppPkgName)){
            shouldCallOrigFunc = false
          }
        }

        if(shouldCallOrigFunc) {
          return this.startServiceLocked(caller, service, resolvedType, callingPid, callingUid, fgRequired, callingPackage, callingFeatureId, userId, allowBackgroundActivityStarts, backgroundActivityStartsToken)
        } else {
          console.log("  Not call ActiveServices.startServiceLocked 11")
          return null
        }
      }
    }

    // ComponentName startServiceInnerLocked(ServiceMap smap, Intent service, ServiceRecord r, boolean callerFg, boolean addToStarting, int callingUid, boolean wasStartRequested)
    var startServiceInnerLockedFunc7 = ActiveServicesCls.startServiceInnerLocked.overload('com.android.server.am.ActiveServices$ServiceMap', 'android.content.Intent', 'com.android.server.am.ServiceRecord', 'boolean', 'boolean', 'int', 'boolean')
    if (startServiceInnerLockedFunc7) {
      startServiceInnerLockedFunc7.implementation = function (smap, service, r, callerFg, addToStarting, callingUid, wasStartRequested) {
        var shouldCallOrigFunc = true
        var funcName = "ActiveServices.startServiceInnerLocked 7"
        var funcParaDict = {
          "smap": smap,
          "service": service,
          "r": r,
          "callerFg": callerFg,
          "addToStarting": addToStarting,
          "callingUid": callingUid,
          "wasStartRequested": wasStartRequested,
        }
        printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

        if(enableNotCallFilter_ActiveServices_startServiceInnerLocked){
          var rStr = r.toString()
          if (rStr.includes(CurAppPkgName)){
            shouldCallOrigFunc = false
          }
        }

        if(shouldCallOrigFunc) {
          return this.startServiceInnerLocked(smap, service, r, callerFg, addToStarting, callingUid, wasStartRequested)
        } else {
          console.log("  Not call ActiveServices.startServiceInnerLocked 7")
          return null
        }
      }
    }

    // private ComponentName startServiceInnerLocked(ServiceRecord r, Intent service, int callingUid, int callingPid, boolean fgRequired, boolean callerFg, boolean allowBackgroundActivityStarts, @Nullable IBinder backgroundActivityStartsToken)
    var startServiceInnerLockedFunc8 = ActiveServicesCls.startServiceInnerLocked.overload('com.android.server.am.ServiceRecord', 'android.content.Intent', 'int', 'int', 'boolean', 'boolean', 'boolean', 'android.os.IBinder')
    if (startServiceInnerLockedFunc8) {
      startServiceInnerLockedFunc8.implementation = function (r, service, callingUid, callingPid, fgRequired, callerFg, allowBackgroundActivityStarts, backgroundActivityStartsToken) {
        var shouldCallOrigFunc = true
        var funcName = "ActiveServices.startServiceInnerLocked 8"
        var funcParaDict = {
          "r": r,
          "service": service,
          "callingUid": callingUid,
          "callingPid": callingPid,
          "fgRequired": fgRequired,
          "callerFg": callerFg,
          "allowBackgroundActivityStarts": allowBackgroundActivityStarts,
          "backgroundActivityStartsToken": backgroundActivityStartsToken,
        }
        printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

        if(enableNotCallFilter_ActiveServices_startServiceInnerLocked){
          var rStr = r.toString()
          if (rStr.includes(CurAppPkgName)){
            shouldCallOrigFunc = false
          }
        }

        if(shouldCallOrigFunc) {
          return this.startServiceInnerLocked(r, service, callingUid, callingPid, fgRequired, callerFg, allowBackgroundActivityStarts, backgroundActivityStartsToken)
        } else {
          console.log("  Not call ActiveServices.startServiceInnerLocked 8")
          return null
        }
      }
    }

    // ---------------------------------------- com.android.server.am.ProcessList
    var ProcessListCls = Java.use("com.android.server.am.ProcessList")
    console.log("ProcessListCls=" + ProcessListCls)

    //     boolean startProcessLocked(HostingRecord hostingRecord, String entryPoint, ProcessRecord app, int uid, int[] gids, int runtimeFlags, int zygotePolicyFlags, int mountExternal, String seInfo, String requiredAbi, String instructionSet, String invokeWith, long startUptime, long startElapsedTime)
    var startProcessLockedFunc = ProcessListCls.startProcessLocked.overload('com.android.server.am.HostingRecord', 'java.lang.String', 'com.android.server.am.ProcessRecord', 'int', '[I', 'int', 'int', 'int', 'java.lang.String', 'java.lang.String', 'java.lang.String', 'java.lang.String', 'long', 'long')
    console.log("startProcessLockedFunc=" + startProcessLockedFunc)
    if (startProcessLockedFunc) {
      startProcessLockedFunc.implementation = function (hostingRecord, entryPoint, app, uid, gids, runtimeFlags, zygotePolicyFlags, mountExternal, seInfo, requiredAbi, instructionSet, invokeWith, startUptime, startElapsedTime) {
        var shouldCallOrigFunc = true
        console.log("ProcessList.startProcessLocked: hostingRecord=" + hostingRecord + ", entryPoint=" + entryPoint + ", app=" + app + ", uid=" + uid + ", gids=" + gids + ", runtimeFlags=" + runtimeFlags + ", zygotePolicyFlags=" + zygotePolicyFlags + ", mountExternal=" + mountExternal + ", seInfo=" + seInfo + ", requiredAbi=" + requiredAbi + ", instructionSet=" + instructionSet + ", invokeWith=" + invokeWith + ", startUptime=" + startUptime + ", startElapsedTime=" + startElapsedTime)
        // PrintStack(ThrowableCls)

        if(enableNotCallFilter_ProcessList_startProcessLocked){
          var appStr = app.toString()
          if (appStr.includes(CurAppPkgName)){
            shouldCallOrigFunc = false
          }
        }

        if(shouldCallOrigFunc) {
          return this.startProcessLocked(hostingRecord, entryPoint, app, uid, gids, runtimeFlags, zygotePolicyFlags, mountExternal, seInfo, requiredAbi, instructionSet, invokeWith, startUptime, startElapsedTime)
        } else {
          console.log("  Not call ProcessList.startProcessLocked")
          return false
        }
      }
    }

    // boolean handleProcessStartedLocked(ProcessRecord app, int pid, boolean usingWrapper, long expectedStartSeq, boolean procAttached) {
    var handleProcessStartedLockedFunc = ProcessListCls.handleProcessStartedLocked.overload('com.android.server.am.ProcessRecord', 'int', 'boolean', 'long', 'boolean')
    console.log("handleProcessStartedLockedFunc=" + handleProcessStartedLockedFunc)
    if (handleProcessStartedLockedFunc) {
      handleProcessStartedLockedFunc.implementation = function (app, pid, usingWrapper, expectedStartSeq, procAttached) {
        var shouldCallOrigFunc = true
        console.log("ProcessList.handleProcessStartedLocked: app=" + app + ", pid=" + pid + ", usingWrapper=" + usingWrapper + ", expectedStartSeq=" + expectedStartSeq + ", procAttached=" + procAttached)
        // printProcessRecord(app)

        if(enableNotCallFilter_ProcessList_handleProcessStartedLocked){
          var appStr = app.toString()
          if (appStr.includes(CurAppPkgName)){
            shouldCallOrigFunc = false
          }
        }

        if (shouldCallOrigFunc) {
          PrintStack(ThrowableCls)
          return this.handleProcessStartedLocked(app, pid, usingWrapper, expectedStartSeq, procAttached)
        } else {
          console.log("  Not call ProcessList.handleProcessStartedLocked")
          // return false
          return true
        }

      }
    }

    // ---------------------------------------- com.android.server.am.ContentProviderHelper
    var ContentProviderHelperClassName = "com.android.server.am.ContentProviderHelper"
    var ContentProviderHelperCls = Java.use(ContentProviderHelperClassName)
    console.log("ContentProviderHelperCls=" + ContentProviderHelperCls)

    // private ContentProviderHolder getContentProviderImpl(IApplicationThread caller, String name, IBinder token, int callingUid, String callingPackage, String callingTag, boolean stable, int userId)
    var getContentProviderImplFunc = ContentProviderHelperCls.getContentProviderImpl
    if (getContentProviderImplFunc) {
      getContentProviderImplFunc.implementation = function (caller, name, token, callingUid, callingPackage, callingTag, stable, userId) {
        var shouldCallOrigFunc = true
        // console.log("ContentProviderHelper.getContentProviderImpl: caller=" + caller + ", name=" + name + ", token=" + token + ", callingUid=" + callingUid + ", callingPackage=" + callingPackage + ", callingTag=" + callingTag + ", stable=" + stable + ", userId=" + userId)
        // PrintStack(ThrowableCls)

        var funcName = "ContentProviderHelper.getContentProviderImpl"
        var funcParaDict = {
          "caller": caller,
          "name": name,
          "token": token,
          "callingUid": callingUid,
          "callingPackage": callingPackage,
          "callingTag": callingTag,
          "stable": stable,
          "userId": userId,
        }
        printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

        if(enableNotCallFilter_ContentProviderHelper_getContentProviderImpl){
          // if(callingPackage.includes(CurAppPkgName)){
          if(name.includes(CurAppPkgName)){
            shouldCallOrigFunc = false
          }
        }

        if (shouldCallOrigFunc) {
          return this.getContentProviderImpl(caller, name, token, callingUid, callingPackage, callingTag, stable, userId)
        } else {
          console.log("  Not call ContentProviderHelper.getContentProviderImpl")
          return null
        }
      }
    }

    // ---------------------------------------- android.os.Handler
    var HandlerClassName = "android.os.Handler"
    var HandlerCls = Java.use(HandlerClassName)
    console.log("HandlerCls=" + HandlerCls)

    // public void dispatchMessage(@NonNull Message msg)
    var dispatchMessageFunc = HandlerCls.dispatchMessage
    if (dispatchMessageFunc) {
      dispatchMessageFunc.implementation = function (msg) {
        var shouldCallOrigFunc = true

        var mgsStr = msg.toString()
        if(mgsStr.includes(CurAppPkgName)){
          // console.log("Handler.dispatchMessage: msg=" + msg)
          // PrintStack(ThrowableCls)
          var funcName = "Handler.dispatchMessage"
          var funcParaDict = {
            "msg": msg,
          }
          printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

          if(enableNotCallFilter_Handler_dispatchMessage){
            // is not : Handler.dispatchMessage: msg={ when=-927ms what=4104 obj=ApplicationExitInfo(timestamp=2023/9/19 16:55 pid=3953 realUid=10249 packageUid=10249 definingUid=10249 user=0 process=com.wallpaper.hd.funny reason=12 (DEPENDENCY DIED) subreason=0 (UNKNOWN) status=0 importance=400 pss=33MB rss=132MB description=depends on provider com.google.android.gms/.phenotype.provider.ConfigurationProvider in dying proc com.google.android.gms.persistent (adj -10000) state=empty trace=null target=com.android.server.am.AppExitInfoTracker$KillHandler }
            if(!mgsStr.includes("ApplicationExitInfo")){
              shouldCallOrigFunc = false
            }
          }
        }

        if (shouldCallOrigFunc) {
          return this.dispatchMessage(msg)
        } else {
          console.log("  Not call Handler.dispatchMessage")
          // return null
          return
        }
      }
    }

    // ---------------------------------------- com.android.server.am.BroadcastQueue
    var BroadcastQueueClassName = "com.android.server.am.BroadcastQueue"
    var BroadcastQueueCls = Java.use(BroadcastQueueClassName)
    console.log("BroadcastQueueCls=" + BroadcastQueueCls)

    // final void processNextBroadcastLocked(boolean fromMsg, boolean skipOomAdj)
    var processNextBroadcastLockedFunc = BroadcastQueueCls.processNextBroadcastLocked
    if (processNextBroadcastLockedFunc) {
      processNextBroadcastLockedFunc.implementation = function (fromMsg, skipOomAdj) {
        var shouldCallOrigFunc = true
        // console.log("BroadcastQueue.processNextBroadcastLocked: fromMsg=" + fromMsg + ", skipOomAdj=" + skipOomAdj)
        // PrintStack(ThrowableCls)
        var funcName = "BroadcastQueue.processNextBroadcastLocked"
        var funcParaDict = {
          "fromMsg": fromMsg,
          "skipOomAdj": skipOomAdj,
        }
        printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

        if (shouldCallOrigFunc) {
          return this.processNextBroadcastLocked(fromMsg, skipOomAdj)
        } else {
          console.log("  Not call BroadcastQueue.processNextBroadcastLocked")
          return null
        }
      }
    }

    // ---------------------------------------- com.android.server.am.ActivityManagerService
    var curJavaClassName = "com.android.server.am.ActivityManagerService"
    // printClassAllMethodsFields(curJavaClassName)
    var ActivityManagerServiceCls = Java.use(curJavaClassName)
    console.log("ActivityManagerServiceCls=" + ActivityManagerServiceCls)

    // final ProcessRecord startProcessLocked(String processName, ApplicationInfo info, boolean knownToBeDead, int intentFlags, HostingRecord hostingRecord, int zygotePolicyFlags, boolean allowWhileBooting, boolean isolated)
    var amsStartProcessLockedFunc = ActivityManagerServiceCls.startProcessLocked
    if (amsStartProcessLockedFunc) {
      amsStartProcessLockedFunc.implementation = function (processName, info, knownToBeDead, intentFlags, hostingRecord, zygotePolicyFlags, allowWhileBooting, isolated) {
        var shouldCallOrigFunc = true
        // console.log("AMS.startProcessLocked: processName=" + processName + ", info=" + info + ", knownToBeDead=" + knownToBeDead + ", intentFlags=" + intentFlags + ", hostingRecord=" + hostingRecord + ", zygotePolicyFlags=" + zygotePolicyFlags + ", allowWhileBooting=" + allowWhileBooting + ", isolated=" + isolated)
        // PrintStack(ThrowableCls)
        var funcName = "AMS.startProcessLocked"
        var funcParaDict = {
          "processName": processName,
          "info": info,
          "knownToBeDead": knownToBeDead,
          "intentFlags": intentFlags,
          "hostingRecord": hostingRecord,
          "zygotePolicyFlags": zygotePolicyFlags,
          "allowWhileBooting": allowWhileBooting,
          "isolated": isolated,
        }
        printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

        if(enableNotCallFilter_AMS_startProcessLocked){
          if(processName.includes(CurAppPkgName)){
            shouldCallOrigFunc = false
          }
        }

        if (shouldCallOrigFunc) {
          return this.startProcessLocked(processName, info, knownToBeDead, intentFlags, hostingRecord, zygotePolicyFlags, allowWhileBooting, isolated)
        } else {
          console.log("  Not call AMS.startProcessLocked")
          return null
        }
      }
    }

    // private boolean attachApplicationLocked(@NonNull IApplicationThread thread, int pid, int callingUid, long startSeq)
    var attachApplicationLockedFunc = ActivityManagerServiceCls.attachApplicationLocked
    console.log("attachApplicationLockedFunc=" + attachApplicationLockedFunc)
    if (attachApplicationLockedFunc) {
      attachApplicationLockedFunc.implementation = function (thread, pid, callingUid, startSeq) {
        // console.log("AMS.attachApplicationLocked: thread=" + thread + ", pid=" + pid + ", callingUid=" + callingUid + ", startSeq=" + startSeq)
        // PrintStack(ThrowableCls)
        var funcName = "AMS.attachApplicationLocked"
        var funcParaDict = {
          "thread": thread,
          "pid": pid,
          "callingUid": callingUid,
          "startSeq": startSeq,
        }
        printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

        return this.attachApplicationLocked(thread, pid, callingUid, startSeq)
      }
    }

    // public ComponentName startService(IApplicationThread caller, Intent service, String resolvedType, boolean requireForeground, String callingPackage, String callingFeatureId, int userId) throws TransactionTooLargeException {
    var startServiceFunc = ActivityManagerServiceCls.startService
    console.log("startServiceFunc=" + startServiceFunc)
    if (startServiceFunc) {
      startServiceFunc.implementation = function (caller, service, resolvedType, requireForeground, callingPackage, callingFeatureId, userId) {
        var shouldCallOrigFunc = true
        // console.log("AMS.startService: caller=" + caller + ", service=" + service + ", resolvedType=" + resolvedType + ", requireForeground=" + requireForeground + ", callingPackage=" + callingPackage + ", callingFeatureId=" + callingFeatureId + ", userId=" + userId)
        // PrintStack(ThrowableCls)

        var isCurApp = false

        if (service){
          // printIntentInfo(service)
          var serviceStr = service.toString()
          console.log("serviceStr=" + serviceStr)
          // serviceStr=Intent { cmp=com.wallpaper.hd.funny/com.w.thsz.s.Service108 }
          if (serviceStr.includes(CurAppPkgName)) {
            isCurApp = true
          }
        }

        if(isCurApp){
          var funcName = "AMS.startService"
          var funcParaDict = {
            "caller": caller,
            "service": service,
            "resolvedType": resolvedType,
            "requireForeground": requireForeground,
            "callingPackage": callingPackage,
            "callingFeatureId": callingFeatureId,
            "userId": userId,
          }
          // console.log("will call printFunctionCallAndStack: funcName=" + funcName + ", funcParaDict=" + toJsonStr(funcParaDict) + ", ThrowableCls=" + ThrowableCls)
          printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

          var serviceHasFileDescriptors = service.hasFileDescriptors()
          console.log("serviceHasFileDescriptors=" + serviceHasFileDescriptors)

          if(enableNotCallFilter_AMS_startService){
            shouldCallOrigFunc = false
          }
        }

        if (shouldCallOrigFunc) {
          // return this.startService(caller, service, resolvedType, requireForeground, callingPackage, callingFeatureId, userId)
          var retComponentName = this.startService(caller, service, resolvedType, requireForeground, callingPackage, callingFeatureId, userId)

          if(isCurApp){
            console.log("retComponentName=" + retComponentName)
          }

          return retComponentName
        } else {
          console.log("  Not call AMS.startService")
          return null
        }

      }
    }

    // // !!! Note: hook ActivityManagerService.onTransact always cause Android CRUSH and REBOOT
    // // public boolean onTransact(int code, Parcel data, Parcel reply, int flags)
    // var amsOnTransactFunc = ActivityManagerServiceCls.onTransact
    // console.log("amsOnTransactFunc=" + amsOnTransactFunc)
    // if (amsOnTransactFunc) {
    //   amsOnTransactFunc.implementation = function (code, dataParcel, replyParcel, flags) {
    //     // if (ValidTransactCodeList.includes(code)) {
    //     //   var datParcelStr = tryReadParcelString(dataParcel)
    //     //   if (datParcelStr) {
    //     //     console.log("AMS onTransact: code=" + code + ", dataParcel=" + dataParcel + ",datParcelStr=" + datParcelStr + ", replyParcel=" + replyParcel + ", flags=" + flags)
    //     //     PrintStack(ThrowableCls)
    //     //   }
    //     // }

    //     // console.log("AMS.onTransact: code=" + code + ", dataParcel=" + dataParcel + ", replyParcel=" + replyParcel + ", flags=" + flags)
    //     return this.onTransact(code, dataParcel, replyParcel, flags)
    //   }
    // }

    // // Note: will cause crash & reboot, so temp not hook
    // // public boolean startInstrumentation(ComponentName className, String profileFile, int flags, Bundle arguments, IInstrumentationWatcher watcher, IUiAutomationConnection uiAutomationConnection, int userId, String abiOverride)
    // var startInstrumentationFunc = ActivityManagerServiceCls.startInstrumentation
    // console.log("startInstrumentationFunc=" + startInstrumentationFunc)
    // if (startInstrumentationFunc) {
    //   // startInstrumentationFunc.implementation = function (className, profileFile, flags, arguments, watcher, uiAutomationConnection, userId, abiOverride) {
    //   startInstrumentationFunc.implementation = function (className, profileFile, flags, arguments1, watcher, uiAutomationConnection, userId, abiOverride) {
    //     console.log("typeof flags=" + (typeof flags) + ",typeof userId=" + (typeof userId))
    //     // var Integer = Java.use("java.lang.Integer")
    //     // var flagsInt = Integer.valueOf(flags)
    //     // var userIdInt = Integer.valueOf(userId)
    //     // console.log("typeof flagsInt=" + (typeof flagsInt) + ",typeof userIdInt=" + (typeof userIdInt))

    //     console.log("className=" + className + ", profileFile=" + profileFile + ", flags=" + flags + ", arguments1=" + arguments1 + ", watcher=" + watcher + ", uiAutomationConnection=" + uiAutomationConnection + ", userId=" + userId + ", abiOverride=" + abiOverride)
    //     PrintStack(ThrowableCls)
    //     // return this.startInstrumentation(className, profileFile, flags, arguments, watcher, uiAutomationConnection, userId, abiOverride)
    //     return this.startInstrumentation(className, profileFile, flags, arguments1, watcher, uiAutomationConnection, userId, abiOverride)
    //     // return this.startInstrumentation(className, profileFile, flagsInt, arguments1, watcher, uiAutomationConnection, userIdInt, abiOverride)
    //   }
    // }

    // // public final void com.android.server.am.ActivityManagerService.finishForceStopPackageLocked(java.lang.String,int)
    // // private void finishForceStopPackageLocked(final String packageName, int uid) {
    // var finishForceStopPackageLockedFunc = ActivityManagerServiceCls.finishForceStopPackageLocked
    // console.log("finishForceStopPackageLockedFunc=" + finishForceStopPackageLockedFunc)
    // if (finishForceStopPackageLockedFunc) {
    //   finishForceStopPackageLockedFunc.implementation = function (packageName, uid) {
    //     PrintStack(ThrowableCls)
    //     return this.finishForceStopPackageLocked(packageName, uid)
    //   }
    // }

    // public void com.android.server.am.ActivityManagerService.forceStopPackage(java.lang.String,int)
    // public void forceStopPackage(final String packageName, int userId) {
    var amsForceStopPackageFunc = ActivityManagerServiceCls.forceStopPackage
    console.log("amsForceStopPackageFunc=" + amsForceStopPackageFunc)
    if (amsForceStopPackageFunc) {
      amsForceStopPackageFunc.implementation = function (packageName, userId) {
        PrintStack(ThrowableCls)
        return this.forceStopPackage(packageName, userId)
      }
    }

    // public final void com.android.server.am.ActivityManagerService.forceStopPackageLocked(java.lang.String,int,java.lang.String)
    // private void forceStopPackageLocked(final String packageName, int uid, String reason) {
    var forceStopPackageLockedFunc3 = ActivityManagerServiceCls.forceStopPackageLocked.overload('java.lang.String', 'int', 'java.lang.String')
    console.log("forceStopPackageLockedFunc3=" + forceStopPackageLockedFunc3)
    if (forceStopPackageLockedFunc3) {
      forceStopPackageLockedFunc3.implementation = function (packageName, uid, reason) {
        PrintStack(ThrowableCls)
        return this.forceStopPackageLocked(packageName, uid, reason)
      }
    }

    // public final boolean com.android.server.am.ActivityManagerService.forceStopPackageLocked(java.lang.String,int,boolean,boolean,boolean,boolean,boolean,int,java.lang.String)
    // final boolean forceStopPackageLocked(String packageName, int appId, boolean callerWillRestart, boolean purgeCache, boolean doit, boolean evenPersistent, boolean uninstalling, int userId, String reason) {
    var forceStopPackageLockedFunc9 = ActivityManagerServiceCls.forceStopPackageLocked.overload('java.lang.String', 'int', 'boolean', 'boolean', 'boolean', 'boolean', 'boolean', 'int', 'java.lang.String')
    console.log("forceStopPackageLockedFunc9=" + forceStopPackageLockedFunc9)
    if (forceStopPackageLockedFunc9) {
      forceStopPackageLockedFunc9.implementation = function (packageName, appId, callerWillRestart, purgeCache, doit, evenPersistent, uninstalling, userId, reason) {
        PrintStack(ThrowableCls)
        return this.forceStopPackageLocked(packageName, appId, callerWillRestart, purgeCache, doit, evenPersistent, uninstalling, userId, reason)
      }
    }

    // ---------------------------------------- android.app.ActivityManager
    var ActivityManagerCls = Java.use("android.app.ActivityManager")
    console.log("ActivityManagerCls=" + ActivityManagerCls)

    // public void android.app.ActivityManager.forceStopPackage(java.lang.String)
    // public void forceStopPackage(String packageName) {
    var amForceStopPackageFunc = ActivityManagerCls.forceStopPackage
    console.log("amForceStopPackageFunc=" + amForceStopPackageFunc)
    if (amForceStopPackageFunc) {
      amForceStopPackageFunc.implementation = function (packageName) {
        PrintStack(ThrowableCls)
        return this.forceStopPackage(packageName)
      }
    }

    // // ---------------------------------------- com.android.server.wm.ActivityStarter
    // var ActivityStarterCls = Java.use("com.android.server.wm.ActivityStarter")
    // console.log("ActivityStarterCls=" + ActivityStarterCls)

    // var executeRequestFunc = ActivityStarterCls.executeRequest
    // // var executeRequestFunc = ActivityStarterCls._executeRequest
    // console.log("executeRequestFunc=" + executeRequestFunc)
    // if (executeRequestFunc) {
    //   executeRequestFunc.implementation = function (request) {
    //     // 打印当前调用堆栈信息
    //     let newThrowable = Throwable.$new()
    //     console.log("newThrowable=" + newThrowable)
    //     let stackStr = curLog.getStackTraceString(newThrowable)
    //     console.log("stackStr=" + stackStr)
    //     return this.executeRequest(request)
    //   }
    // }

    // // public void android.app.ActivityManager.forceStopPackageAsUser(java.lang.String,int)
    // // public void forceStopPackageAsUser(String packageName, int userId) {
    // var forceStopPackageAsUserFunc = ActivityManagerCls.forceStopPackageAsUser
    // console.log("forceStopPackageAsUserFunc=" + forceStopPackageAsUserFunc)
    // if (forceStopPackageAsUserFunc) {
    //   forceStopPackageAsUserFunc.implementation = function (packageName, userId) {
    //     PrintStack(ThrowableCls)
    //     return this.forceStopPackageAsUser(packageName, userId)
    //   }
    // }

    // // ---------------------------------------- com.android.server.pm.Settings
    // var SettingsCls = Java.use("com.android.server.pm.Settings")
    // console.log("SettingsCls=" + SettingsCls)

    // /* static @NonNull PackageSetting createNewSetting(
    //         String pkgName,
    //         PackageSetting originalPkg,
    //         PackageSetting disabledPkg,
    //         String realPkgName,
    //         SharedUserSetting sharedUser,
    //         File codePath,
    //         String legacyNativeLibraryPath,
    //         String primaryCpuAbi,
    //         String secondaryCpuAbi,
    //         long versionCode,
    //         int pkgFlags,
    //         int pkgPrivateFlags,
    //         UserHandle installUser,
    //         boolean allowInstall,
    //         boolean instantApp,
    //         boolean virtualPreload,
    //         UserManagerService userManager,
    //         String[] usesSdkLibraries,
    //         long[] usesSdkLibrariesVersions,
    //         String[] usesStaticLibraries,
    //         long[] usesStaticLibrariesVersions,
    //         Set<String> mimeGroupNames,
    //         @NonNull UUID domainSetId
    //     ) {
    // */

    // var createNewSettingFunc = SettingsCls.createNewSetting
    // console.log("createNewSettingFunc=" + createNewSettingFunc)
    // if (createNewSettingFunc) {
    //   createNewSettingFunc.implementation = function (pkgName, originalPkg, disabledPkg, realPkgName, sharedUser, codePath, legacyNativeLibraryPath, primaryCpuAbi, secondaryCpuAbi, versionCode, pkgFlags, pkgPrivateFlags, installUser, allowInstall, instantApp, virtualPreload, userManager, usesSdkLibraries, usesStaticLibraries, usesStaticLibrariesVersions, mimeGroupNames, domainSetId) {
    //     PrintStack(ThrowableCls)
    //     return this.createNewSetting(pkgName, originalPkg, disabledPkg, realPkgName, sharedUser, codePath, legacyNativeLibraryPath, primaryCpuAbi, secondaryCpuAbi, versionCode, pkgFlags, pkgPrivateFlags, installUser, allowInstall, instantApp, virtualPreload, userManager, usesSdkLibraries, usesStaticLibraries, usesStaticLibrariesVersions, mimeGroupNames, domainSetId)
    //   }
    // }

  })
}

setImmediate(hookForceStop)

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-07-25 17:58:14

frida-trace

frida-trace

此处介绍frida-trace的实际使用案例，供参考。

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-22 23:34:20

iOS的ObjC

iOS的ObjC

此处介绍用frida-trace去调试iOS的ObjC的类和函数的实际案例，供参考。

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-24 23:24:56

akd中Apple账号验证过程

akd中Apple账号验证过程

此处去记录frida-trace追踪akd中Apple账号验证过程：

设备：

iOS 15.0的iPhone8

palera1n的rootful普通越狱

去追踪调试：

设置Preferences中，点击登录Apple账号

输入账号，点击下一步

的Apple账号验证过程中，函数调用的过程的结果

frida-trace命令

frida-trace -U -n akd -O akdObjcMethods.txt

Option文件akdObjcMethods.txt内容

-m "*[AA* *]"
-m "*[AK* *]"
-m "*[AS* *]"
-m "*[NSXPC* *]"
-M "-[NSXPC*coder *]"
-M "-[NSXPCConnection replacementObjectForEncoder:object:]"

输出

截图

完整的截图如下：

log日志

...
-[NSXPCStore dealloc]: Loaded handler at "/Users/crifan/dev/dev_root/iosReverse/AppleStore/AuthKit_akd/dynamicDebug/frida/scripts/__handlers__/NSXPCStore/dealloc.js"
-[NSXPCStore setIdentifier:]: Loaded handler at "/Users/crifan/dev/dev_root/iosReverse/AppleStore/AuthKit_akd/dynamicDebug/frida/scripts/__handlers__/NSXPCStore/setIdentifier_.js"
Started tracing 6145 functions. Press Ctrl+C to stop.

           /* TID 0x2ee3 */
 44503 ms  -[NSXPCListener serviceName]
 44503 ms  -[NSXPCConnection init]
 44503 ms  -[NSXPCListener delegate]
 44503 ms  -[NSXPCListener delegate]
 44503 ms  -[AKDaemonConnectionManager listener:0x126906200 shouldAcceptNewConnection:0x126b0da50]
 44503 ms     | -[AKClient initWithConnection:0x126b0da50]
 44503 ms     | -[AKDaemonConnectionManager shouldAllowClient:0x126b05640 logging:0x16b31a598]
 44503 ms     |    | -[AKClient hasWriteAccess]
 44503 ms     |    |    | -[AKClient _boolValueForEntitlement:0x10503a2b0]
 44503 ms     |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a2b0]
 44503 ms     |    |    |    |    | -[NSXPCConnection auditToken]
 44505 ms     |    | -[AKClient description]
 44505 ms     |    |    | -[AKClient name]
 44505 ms     |    |    |    | -[NSXPCConnection processIdentifier]
 44505 ms     |    |    | -[NSXPCConnection processIdentifier]
 44505 ms     | -[AKAppleIDAuthenticationService initWithClient:0x126b05640]
 44505 ms     |    | -[AKAppleIDAuthenticationService initWithProxy:0x126b16890]
 44505 ms     |    |    | -[AKAppleIDAuthenticationService init]
 44505 ms     |    |    |    | +[AKAccountManager sharedInstance]
 44505 ms     |    |    |    |    | +[AKAccountManager isAccountsFrameworkAvailable]
 44505 ms     |    |    |    | +[AKAuthenticationUILiaison sharedInstance]
 44505 ms     |    |    |    | +[AKAuthenticationTrafficController sharedInstance]
 44505 ms     |    |    |    | -[AKAuthenticationUILiaison surrogateManager]
 44505 ms     |    |    |    | -[AKAuthenticationTrafficController setSurrogateManager:0x125d15810]
 44506 ms     | -[NSXPCConnection setExportedObject:0x126b0fa00]
 44506 ms     | +[AKAppleIDAuthenticationDaemonInterface XPCInterface]
 44506 ms     | -[NSXPCConnection setExportedInterface:0x1268141a0]
 44506 ms     | +[AKAppleIDAuthenticationClientInterface XPCInterface]
 44506 ms     | -[NSXPCConnection setRemoteObjectInterface:0x1269121f0]
 44506 ms     | -[NSXPCConnection resume]
 44506 ms  -[NSXPCConnection _decodeAndInvokeMessageWithEvent:0x126b0fa40 flags:0x21]
 44506 ms     | -[NSXPCCoder init]
 44506 ms     | -[NSXPCInterface _selectorIsAllowed:0x19dd2ca94 isReply:0x0 methodSignature:0x16b31a0f0 allowedClasses:0x16b31a0f8]
 44506 ms     | -[NSXPCCoder dealloc]
 44506 ms     | -[NSXPCInterface _methodSignatureForReplyBlockOfSelector:0x19dd2ca94]
 44506 ms     | -[AKAppleIDAuthenticationService fetchURLBagFromCache:0x0 altDSID:0x0 completion:0x16b31a2c0]
 44506 ms     |    | +[AKURLBagService sharedBagService]
 44506 ms     |    | -[AKURLBagService urlBagFromCache:0x0 altDSID:0x0 error:0x16b31a0f8]
 44506 ms     |    |    | -[AKURLBagService _cachedURLBagForAltDSID:0x0]
 44506 ms     |    | -[NSXPCInterface _interfaceForArgument:0x0 ofSelector:0x19dd2ca94 reply:0x1]
 44506 ms     |    | -[NSXPCCoder init]
 44507 ms     |    | -[NSXPCCoder dealloc]
 44508 ms  -[NSXPCConnection invalidationHandler]
 44508 ms  -[NSXPCConnection _additionalInvalidationHandler]
 44508 ms  -[NSXPCConnection setInvalidationHandler:0x0]
 44508 ms  -[NSXPCConnection setInterruptionHandler:0x0]
 44508 ms  -[NSXPCConnection setExportedObject:0x0]
 44508 ms     | -[AKAppleIDAuthenticationService .cxx_destruct]
 44508 ms     |    | -[AKClient .cxx_destruct]
 44508 ms  -[NSXPCConnection dealloc]
           /* TID 0x2ee7 */
 83869 ms  -[NSXPCListener serviceName]
 83870 ms  -[NSXPCConnection init]
 83870 ms  -[NSXPCListener delegate]
 83870 ms  -[NSXPCListener delegate]
 83870 ms  -[AKDaemonConnectionManager listener:0x126906200 shouldAcceptNewConnection:0x126947dd0]
 83871 ms     | -[AKClient initWithConnection:0x126947dd0]
 83871 ms     | -[AKDaemonConnectionManager shouldAllowClient:0x1269481d0 logging:0x16b3a6598]
 83871 ms     |    | -[AKClient hasWriteAccess]
 83871 ms     |    |    | -[AKClient _boolValueForEntitlement:0x10503a2b0]
 83871 ms     |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a2b0]
 83871 ms     |    |    |    |    | -[NSXPCConnection auditToken]
 83874 ms     |    | -[AKClient description]
 83874 ms     |    |    | -[AKClient name]
 83874 ms     |    |    |    | -[NSXPCConnection processIdentifier]
 83874 ms     |    |    | -[NSXPCConnection processIdentifier]
 83874 ms     | -[AKAppleIDAuthenticationService initWithClient:0x1269481d0]
 83874 ms     |    | -[AKAppleIDAuthenticationService initWithProxy:0x125d87ea0]
 83875 ms     |    |    | -[AKAppleIDAuthenticationService init]
 83875 ms     |    |    |    | +[AKAccountManager sharedInstance]
 83875 ms     |    |    |    |    | +[AKAccountManager isAccountsFrameworkAvailable]
 83875 ms     |    |    |    | +[AKAuthenticationUILiaison sharedInstance]
 83875 ms     |    |    |    | +[AKAuthenticationTrafficController sharedInstance]
 83875 ms     |    |    |    | -[AKAuthenticationUILiaison surrogateManager]
 83875 ms     |    |    |    | -[AKAuthenticationTrafficController setSurrogateManager:0x125d15810]
 83876 ms     | -[NSXPCConnection setExportedObject:0x125d88d50]
 83876 ms     | +[AKAppleIDAuthenticationDaemonInterface XPCInterface]
 83876 ms     | -[NSXPCConnection setExportedInterface:0x1268141a0]
 83876 ms     | +[AKAppleIDAuthenticationClientInterface XPCInterface]
 83876 ms     | -[NSXPCConnection setRemoteObjectInterface:0x1269121f0]
 83877 ms     | -[NSXPCConnection resume]
 83877 ms  -[NSXPCConnection _decodeAndInvokeMessageWithEvent:0x125d7e8f0 flags:0x21]
 83878 ms     | -[NSXPCCoder init]
 83878 ms     | -[NSXPCInterface _selectorIsAllowed:0x19d1122fb isReply:0x0 methodSignature:0x16b3a5780 allowedClasses:0x16b3a5788]
 83878 ms     | +[AKAppleIDAuthenticationContext supportsSecureCoding]
 83878 ms     | -[AKAppleIDAuthenticationContext initWithCoder:0x128808e00]
 83879 ms     | -[NSXPCCoder dealloc]
 83879 ms     | -[NSXPCInterface _methodSignatureForReplyBlockOfSelector:0x19d1122fb]
 83879 ms     | -[AKAppleIDAuthenticationService authenticateWithContext:0x126a0bf00 completion:0x16b3a5950]
 83879 ms     |    | -[AKAppleIDAuthenticationContext _capabilityForUIDisplay]
 83879 ms     |    | -[AKAppleIDAuthenticationContext serviceType]
 83879 ms     |    | -[AKClient isPermittedForInteractiveAuthOnLimitedContext]
 83879 ms     |    |    | -[AKClient _permittedProcessNamesForInteractiveAuthOnLimitedContext]
 83879 ms     |    |    | -[AKClient name]
 83880 ms     |    | -[AKAppleIDAuthenticationContext isContextEligibleForSilentAuthCoercion]
 83880 ms     |    |    | -[AKAppleIDAuthenticationContext _proxiedAppName]
 83880 ms     |    |    | -[AKAppleIDAuthenticationContext _capabilityForUIDisplay]
 83880 ms     |    | -[AKAppleIDAuthenticationContext username]
 83880 ms     |    | -[AKAppleIDAuthenticationContext _password]
 83881 ms     |    | -[AKAuthenticationTrafficController beginAuthenticationWithContext:0x126a0bf00 client:0x1269481d0 clearanceHandler:0x16b3a57a8]
           /* TID 0x2767 */
 83882 ms  -[AKClient bundleID]
 83882 ms     | -[NSXPCConnection processIdentifier]
 83883 ms     | -[NSXPCConnection processIdentifier]
 83883 ms  -[AKAuthenticationTrafficController _addCachedPasswordInContext:0x126a0bf00]
 83883 ms     | -[AKAppleIDAuthenticationContext serviceType]
 83883 ms     | -[AKAppleIDAuthenticationContext isContextEligibleForSilentAuth]
 83883 ms     |    | -[AKAppleIDAuthenticationContext authenticationType]
 83883 ms     |    | -[AKAppleIDAuthenticationContext shouldPromptForPasswordOnly]
 83884 ms     |    | -[AKAppleIDAuthenticationContext isEphemeral]
 83884 ms     |    | -[AKAppleIDAuthenticationContext isUsernameEditable]
 83884 ms  -[AKClient bundleID]
 83884 ms  -[AKTrafficClearenceRequest setClearanceHandler:0x126a19640]
 83884 ms  -[AKTrafficClearenceRequest setContext:0x126a0bf00]
 83884 ms  -[AKTrafficClearenceRequest setClientBundleID:0x1f7d89e60]
 83884 ms  -[AKAuthenticationTrafficController _shouldClearRequest:0x126a0be60 withClient:0x1269481d0]
 83884 ms     | -[AKTrafficClearenceRequest context]
 83884 ms     | -[AKAppleIDAuthenticationContext _capabilityForUIDisplay]
 83884 ms     | -[AKAppleIDAuthenticationContext _capabilityForUIDisplay]
 83884 ms     | -[AKAuthenticationTrafficController surrogateManager]
 83884 ms     | -[AKAuthenticationSurrogateManager isSurrogateAuthInProgressForClient:0x1269481d0]
 83884 ms     |    | -[AKAuthenticationSurrogateManager _fetchSurrogateForClient:0x1269481d0]
 83885 ms     |    |    | -[AKAuthenticationSurrogateManager inProgressSurrogates]
 83885 ms     | -[AKAppleIDAuthenticationContext authenticationType]
 83885 ms     | -[AKAuthenticationTrafficController _hasActiveAppAuths]
 83885 ms     |    | -[AKAuthenticationTrafficController _hasValuesInMap:0x126816150]
 83885 ms     | -[AKAuthenticationTrafficController _hasActiveDaemonAuths]
 83885 ms     |    | -[AKAuthenticationTrafficController _hasValuesInMap:0x126816170]
 83885 ms  -[AKAuthenticationTrafficController _tq_invokeTrafficRequest:0x126a0be60]
 83885 ms     | -[AKTrafficClearenceRequest clientBundleID]
 83885 ms     | -[AKTrafficClearenceRequest context]
 83885 ms     | -[AKTrafficClearenceRequest context]
 83885 ms     | -[AKAppleIDAuthenticationContext _capabilityForUIDisplay]
 83886 ms  -[AKTrafficClearenceRequest clearanceHandler]
 83886 ms  -[AKAppleIDAuthenticationContext _capabilityForUIDisplay]
 83886 ms  -[AKAppleIDAuthenticationService _authenticateWithContext:0x126a0bf00 completion:0x16b31ad40]
 83886 ms     | -[AKAppleIDAuthenticationContext needsRepair]
 83886 ms     | -[AKAppleIDAuthenticationContext needsCredentialRecovery]
 83886 ms     | -[AKAppleIDAuthenticationContext needsNewAppleID]
 83886 ms     | -[AKAppleIDAuthenticationContext needsNewChildAccount]
 83886 ms     | -[AKAppleIDAuthenticationContext needsPasswordChange]
 83886 ms     | -[AKAppleIDAuthenticationContext needsSecurityUpgradeUI]
 83886 ms     | -[AKAppleIDAuthenticationService _performAuthenticationWithContext:0x126a0bf00 completion:0x16b31ad40]
 83886 ms     |    | -[AKAppleIDAuthenticationService _isInteractiveAuthRequiredForContext:0x126a0bf00]
 83886 ms     |    |    | -[AKAppleIDAuthenticationContext authenticationType]
 83887 ms     |    | -[AKAppleIDAuthenticationService _attemptBiometricOrPasscodeAuthWithContext:0x126a0bf00 completion:0x16b31ad40]
 83887 ms     |    |    | -[AKAppleIDAuthenticationContext isContextEligibleForBiometricOrPasscodeAuth]
 83887 ms     |    |    |    | -[AKAppleIDAuthenticationContext _capabilityForUIDisplay]
 83887 ms     |    |    |    | -[AKAppleIDAuthenticationContext _isVerifyCredentialReasonEligibleForBiometricOrPasscodeAuth]
 83887 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext verifyCredentialReason]
 83887 ms     |    |    |    | +[AKConfiguration sharedConfiguration]
 83887 ms     |    |    |    | -[AKConfiguration shouldAllowExperimentalMode]
 83887 ms     |    |    |    |    | -[AKConfiguration configurationValueForKey:0x1ea6effb8]
 83887 ms     |    |    | -[AKAppleIDAuthenticationService _attemptInteractiveAuthWithContext:0x126a0bf00 completion:0x16b31ad40]
 83887 ms     |    |    |    | -[AKAppleIDAuthenticationContext username]
 83887 ms     |    |    |    | -[AKAppleIDAuthenticationContext _password]
 83887 ms     |    |    |    | -[AKAppleIDAuthenticationContext _shouldSkipInitialReachabilityCheck]
           /* TID 0x2ee7 */
 83889 ms  -[NSXPCListener serviceName]
 83889 ms  -[NSXPCConnection init]
 83889 ms  -[NSXPCListener delegate]
 83889 ms  -[NSXPCListener delegate]
 83889 ms  -[AKDaemonConnectionManager listener:0x126907500 shouldAcceptNewConnection:0x126a10460]
 83889 ms     | -[AKClient initWithConnection:0x126a10460]
 83889 ms     | -[AKDaemonConnectionManager shouldAllowClient:0x126a0c890 logging:0x16b3a6598]
 83889 ms     |    | -[AKClient hasWriteAccess]
 83889 ms     |    |    | -[AKClient _boolValueForEntitlement:0x10503a2b0]
 83889 ms     |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a2b0]
 83889 ms     |    |    |    |    | -[NSXPCConnection auditToken]
           /* TID 0x2767 */
 83889 ms     |    |    |    | -[AKAppleIDAuthenticationService _performInteractiveAuthWithContext:0x126a0bf00 completion:0x16b31ad40]
 83890 ms     |    |    |    |    | -[AKAppleIDAuthenticationService refreshAuthMetadataWithContext:0x126a0bf00 completion:0x16b31ab38]
 83890 ms     |    |    |    |    |    | -[AKAppleIDAuthenticationService _refreshLocalAccountAndUpdateContext:0x126a0bf00 completion:0x16b31aac8]
 83890 ms     |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext _shouldRefreshAccountAndUpdateContext]
 83890 ms     |    |    |    |    |    |    | -[AKAppleIDAuthenticationService _updateAltDSIDAndUsername:0x126a0bf00]
 83890 ms     |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext altDSID]
 83890 ms     |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext DSID]
 83890 ms     |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext altDSID]
 83890 ms     |    |    |    |    |    |    | -[AKAppleIDAuthenticationService _refreshAuthModeIfNecessaryForContext:0x126a0bf00 completion:0x16b31a998]
 83890 ms     |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext needsNewAppleID]
 83890 ms     |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext needsNewChildAccount]
 83890 ms     |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext needsCredentialRecovery]
 83890 ms     |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext needsPasswordChange]
 83890 ms     |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext username]
 83890 ms     |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext username]
 83890 ms     |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext authenticationType]
 83891 ms     |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext authKitAccount:0x0]
 83891 ms     |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext altDSID]
 83891 ms     |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext DSID]
 83891 ms     |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext username]
 83891 ms     |    |    |    |    |    |    |    |    | +[AKAccountManager sharedInstance]
 83891 ms     |    |    |    |    |    |    |    |    |    | +[AKAccountManager isAccountsFrameworkAvailable]
 83891 ms     |    |    |    |    |    |    |    |    | -[AKAccountManager authKitAccountWithAppleID:0x126a053b0]
 83891 ms     |    |    |    |    |    |    |    |    |    | -[AKAccountManager authKitAccountType]
 83891 ms     |    |    |    |    |    |    |    |    |    | -[NSXPCConnection initWithMachServiceName:0x1e8ff16b8 options:0x0]
 83891 ms     |    |    |    |    |    |    |    |    |    |    | -[ACTrackedXPCConnection init]
 83891 ms     |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection init]
           /* TID 0x2ee7 */
 83891 ms     |    | -[AKClient description]
 83891 ms     |    |    | -[AKClient name]
 83891 ms     |    |    |    | -[NSXPCConnection processIdentifier]
 83892 ms     |    |    | -[NSXPCConnection processIdentifier]
           /* TID 0x2767 */
 83892 ms     |    |    |    |    |    |    |    |    |    | -[NSXPCConnection setRemoteObjectInterface:0x125e0f350]
 83892 ms     |    |    |    |    |    |    |    |    |    | +[NSXPCInterface interfaceWithProtocol:0x1f9747d58]
           /* TID 0x2ee7 */
 83892 ms     | -[AKAnisetteProvisioningService initWithClient:0x126a0c890]
 83892 ms     |    | +[AKAbsintheSigner sharedSigner]
           /* TID 0x2767 */
 83892 ms     |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface init]
           /* TID 0x2ee7 */
 83892 ms     |    | +[AKAttestationSigner sharedSigner]
 83892 ms     | -[NSXPCConnection setExportedObject:0x126a212f0]
           /* TID 0x2767 */
 83892 ms     |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface setProtocol:0x1f9747d58]
           /* TID 0x2ee7 */
 83892 ms     | +[AKAnisetteProvisioningDaemonInterface XPCInterface]
 83892 ms     | -[NSXPCConnection setExportedInterface:0x125d16640]
           /* TID 0x2767 */
 83892 ms     |    |    |    |    |    |    |    |    |    | -[NSXPCConnection setExportedInterface:0x126b10170]
 83892 ms     |    |    |    |    |    |    |    |    |    | -[NSXPCConnection setExportedObject:0x126b159f0]
           /* TID 0x2ee7 */
 83892 ms     | +[AKAnisetteProvisioningClientInterface XPCInterface]
 83892 ms     | -[NSXPCConnection setRemoteObjectInterface:0x125d16a50]
 83892 ms     | -[NSXPCConnection resume]
           /* TID 0x2767 */
 83892 ms     |    |    |    |    |    |    |    |    |    | -[NSXPCConnection setInterruptionHandler:0x16b31a2d8]
 83892 ms     |    |    |    |    |    |    |    |    |    | -[NSXPCConnection setInvalidationHandler:0x16b31a2b0]
 83892 ms     |    |    |    |    |    |    |    |    |    | -[NSXPCConnection resume]
           /* TID 0x2ee7 */
 83893 ms  -[NSXPCConnection _decodeAndInvokeMessageWithEvent:0x126a21320 flags:0x21]
 83893 ms     | -[NSXPCCoder init]
 83893 ms     | -[NSXPCInterface _selectorIsAllowed:0x19d37a17a isReply:0x0 methodSignature:0x16b3a60d0 allowedClasses:0x16b3a60d8]
 83893 ms     | -[NSXPCCoder dealloc]
 83893 ms     | -[NSXPCInterface _methodSignatureForReplyBlockOfSelector:0x19d37a17a]
 83893 ms     | -[AKAnisetteProvisioningService fetchAnisetteDataAndProvisionIfNecessary:0x1 device:0x0 completion:0x16b3a62a0]
 83893 ms     |    | -[AKClient hasInternalPrivateAccess]
 83894 ms     |    |    | -[AKClient hasInternalPrivateEntitlementAccess]
           /* TID 0x2767 */
 83894 ms     |    |    |    |    |    |    |    |    |    | -[NSXPCConnection synchronousRemoteObjectProxyWithErrorHandler:0x16b31a410]
 83894 ms     |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _remoteObjectInterfaceClass]
 83894 ms     |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _customSubclass]
           /* TID 0x2ee7 */
 83894 ms     |    |    |    | -[AKClient hasInternalAccess]
 83894 ms     |    |    |    |    | -[AKClient hasOwnerAccess]
 83894 ms     |    |    |    |    |    | -[AKClient _boolValueForEntitlement:0x10503a290]
           /* TID 0x2767 */
 83894 ms     |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _methodSignatureForRemoteSelector:0x19cefc453]
 83894 ms     |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _sendInvocation:0x16b31a130 orArguments:0x0 count:0x0 methodSignature:0x9d85aafdd9ffdaff selector:0x19cefc453 withProxy:0x126b17cd0]
 83894 ms     |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _interfaceForArgument:0x0 ofSelector:0x19cefc453 reply:0x0]
           /* TID 0x2ee7 */
 83894 ms     |    |    |    |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a290]
 83894 ms     |    |    |    |    |    |    |    | -[NSXPCConnection auditToken]
           /* TID 0x2767 */
 83894 ms     |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder init]
 83895 ms     |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder dealloc]
 83895 ms     |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _hasProxiesInReplyBlockArgumentsOfSelector:0x19cefc453]
           /* TID 0x2ee7 */
 83897 ms     |    |    |    |    | -[AKClient _boolValueForEntitlement:0x10503a270]
 83897 ms     |    |    |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a270]
 83897 ms     |    |    |    |    |    |    | -[NSXPCConnection auditToken]
 83897 ms     |    | -[AKAnisetteProvisioningService _fetchAnisetteDataAndProvisionIfNecessary:0x1 device:0x0 completion:0x16b3a62a0]
 83897 ms     |    |    | -[AKAnisetteProvisioningService _helperServiceForDevice:0x0]
 83897 ms     |    |    |    | -[AKAnisetteProvisioningService _nativeAnisetteService]
 83897 ms     |    |    |    |    | -[AKNativeAnisetteService initWithClient:0x126a0c890]
 83897 ms     |    |    | -[AKNativeAnisetteService fetchAnisetteDataAndProvisionIfNecessary:0x1 withCompletion:0x16b3a62a0]
 83897 ms  +[AKNativeAnisetteService lastKnownActiveAnisetteDSID]
 83897 ms     | +[AKURLBag bagForAltDSID:0x0]
 83897 ms     |    | +[AKURLBag sharedBag]
 83897 ms     | -[AKURLBag lastKnownIDMSEnvironment]
 83897 ms     |    | +[AKConfiguration sharedConfiguration]
 83897 ms     |    | -[AKConfiguration lastKnownIDMSEnvironment]
 83897 ms     |    |    | -[AKConfiguration configurationValueForKey:0x1ea6f0118]
 83898 ms     | +[AKNativeAnisetteService activeAnisetteDSIDWithEnvironment:0x0]
 83898 ms  -[AKNativeAnisetteService _unsafe_anisetteDataWithRoutingInfoForDSID:0xfffffffffffffffe withError:0x16b3a68a8]
 83898 ms     | +[AKADIProxy getIDMSRoutingInfo:0x16b3a6838 forDSID:0xfffffffffffffffe]
           /* TID 0x2767 */
 83901 ms     |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _decodeAndInvokeReplyBlockWithEvent:0x126a21320 sequence:0x1 replyInfo:0x126b05970]
 83901 ms     |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder init]
 83902 ms     |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _selectorIsAllowed:0x19cefc453 isReply:0x1 methodSignature:0x16b319260 allowedClasses:0x16b319268]
 83902 ms     |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder dealloc]
 83902 ms     |    |    |    |    |    |    |    | -[AKAccountManager shouldUpdateAuthModeForAccount:0x126a20e20]
 83902 ms     |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationService _refreshAuthModeForContext:0x126a0bf00 completion:0x16b31a998]
 83902 ms     |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationService fetchAuthModeWithContext:0x126a0bf00 completion:0x16b31a8b8]
 83902 ms     |    |    |    |    |    |    |    |    |    | -[AKClient hasInternalPrivateAccess]
 83902 ms     |    |    |    |    |    |    |    |    |    |    | -[AKClient hasInternalPrivateEntitlementAccess]
 83902 ms     |    |    |    |    |    |    |    |    |    |    |    | -[AKClient hasInternalAccess]
 83902 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[AKClient hasOwnerAccess]
 83902 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKClient _boolValueForEntitlement:0x10503a290]
 83902 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a290]
 83902 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection auditToken]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[AKClient _boolValueForEntitlement:0x10503a270]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a270]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection auditToken]
           /* TID 0x2ee7 */
 83904 ms     | -[AKNativeAnisetteService _unsafe_anisetteDataForDSID:0xfffffffffffffffe withError:0x16b3a68a8]
 83904 ms     |    | +[AKADIProxy requestOTPForDSID:0xfffffffffffffffe outMID:0x16b3a67e8 outMIDSize:0x16b3a67dc outOTP:0x16b3a67e0 outOTPSize:0x16b3a67d8]
           /* TID 0x2767 */
 83904 ms     |    |    |    |    |    |    |    |    |    | +[AKUserInfoController sharedController]
 83904 ms     |    |    |    |    |    |    |    |    |    | -[AKUserInfoController fetchAuthModeWithContext:0x126a0bf00 client:0x1269481d0 completion:0x16b31a838]
 83904 ms     |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl initWithContext:0x126a0bf00 urlBagKey:0x1ea6f14b8]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl initWithContext:0x126a0bf00 urlBagKey:0x1ea6f14b8 shouldCacheResource:0x0]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl initWithContext:0x126a0bf00]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl _setRequestURL]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext altDSID]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKURLBag bagForAltDSID:0x0]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKURLBag sharedBag]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLBag urlAtKey:0x1ea6f14b8]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLBag _urlAtKey:0x1ea6f14b8]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLBag _requestNewURLBagIfNecessaryWithError:0x0]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLBag _urlBagFromCache:0x0 withError:0x0]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLBag bagProvider]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLBag bagProvider]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLBag altDSID]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLBagService urlBagFromCache:0x0 altDSID:0x0 error:0x0]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLBagService _cachedURLBagForAltDSID:0x0]
 83904 ms     |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl setClient:0x1269481d0]
 83904 ms     |    |    |    |    |    |    |    |    |    |    | -[AKServiceControllerImpl initWithRequestProvider:0x126a22930]
 83904 ms     |    |    |    |    |    |    |    |    |    |    | -[AKServiceControllerImpl executeRequestWithCompletion:0x16b31a7c0]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl buildRequest:0x16b31a778]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl requestURL]
 83904 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl authKitBody]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl authKitBodyData]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAuthModeRequestProvider signRequest:0x126a21b10 error:0x16b31a6e8]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKGrandSlamRequestProvider signRequest:0x126a21b10 error:0x16b31a6e8]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl context]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext set_shouldSendIdentityTokenForRemoteUI:0x0]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl client]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDServerUIController initWithClient:0x1269481d0]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl context]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDServerUIController resourceLoadDelegateWithContext:0x126a0bf00]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDServerUIController _decorateLoadDelegate:0x126a232e0 withContext:0x126a0bf00]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate decorateWithContext:0x126a0bf00]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate altDSID]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext altDSID]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setAltDSID:0x0]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext needsNewAppleID]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext needsNewChildAccount]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext proxiedDevice]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext needsSecurityUpgradeUI]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext isEphemeral]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext isAppleIDLoginEnabled]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext custodianRecoveryToken]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext serviceType]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setServiceType:0x1]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext appProvidedContext]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setAppProvidedContext:0x126a0fe20]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext _proxiedAppName]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setProxyAppName:0x0]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setShouldSendPhoneNumber:0x1]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext hasEmptyPassword]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setHasEmptyPasswordOverride:0x0]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext securityUpgradeContext]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setSecurityUpgradeContext:0x126a05760]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext anticipateEscrowAttempt]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setShouldSendICSCIntentHeader:0x1]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext shouldOfferSecurityUpgrade]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setShouldOfferSecurityUpgrade:0x1]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKFollowUpProviderFactory sharedAuthKitFollowupProvider]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKFollowUpController pendingFollowUpItems:0x0]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection synchronousRemoteObjectProxyWithErrorHandler:0x16b31a428]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _remoteObjectInterfaceClass]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _customSubclass]
 83905 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _sendSelector:0x19e667b96 withProxy:0x126a23430 arg1:0x1ea6ece38 arg2:0x16b31a3f8]
 83906 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _methodSignatureForRemoteSelector:0x19e667b96]
 83906 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _sendInvocation:0x0 orArguments:0x16b31a368 count:0x2 methodSignature:0x9d85aafdd9ff885f selector:0x19e667b96 withProxy:0x126a23430]
 83906 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _interfaceForArgument:0x0 ofSelector:0x19e667b96 reply:0x0]
 83906 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder init]
 83906 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder dealloc]
 83906 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _hasProxiesInReplyBlockArgumentsOfSelector:0x19e667b96]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _decodeAndInvokeReplyBlockWithEvent:0x126a237f0 sequence:0x9 replyInfo:0x126a234e0]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder init]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _selectorIsAllowed:0x19e667b96 isReply:0x1 methodSignature:0x16b3196b0 allowedClasses:0x16b3196b8]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder dealloc]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKFollowUpServerPayloadFormatter pendingAuthKitFollowUpPayload:0x1f7b37500]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setFollowupItems:0x126a23710]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext proxiedDeviceAnisetteData]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setProxiedDeviceAnisetteData:0x0]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext proxiedDevice]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setProxiedDevice:0x0]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKClient name]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setClientAppName:0x1f7d8ab20]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext authKitAccount:0x16b31a598]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext altDSID]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext DSID]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext username]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager sharedInstance]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager isAccountsFrameworkAvailable]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAccountManager authKitAccountWithAppleID:0x126a053b0]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAccountManager authKitAccountType]
           /* TID 0x2ee7 */
 83907 ms     |    | +[AKADIProxy dispose:0x126b0e120]
 83907 ms     |    | +[AKADIProxy dispose:0x126b077e0]
           /* TID 0x2767 */
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection synchronousRemoteObjectProxyWithErrorHandler:0x16b31a080]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _remoteObjectInterfaceClass]
 83907 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _customSubclass]
           /* TID 0x2ee7 */
 83907 ms     |    | -[AKAnisetteData setMachineID:0x126b05830]
 83907 ms     |    | -[AKAnisetteData setOneTimePassword:0x126b0e0e0]
 83908 ms     | -[AKAnisetteData setRoutingInfo:0x3050500]
 83908 ms  -[NSXPCInterface _interfaceForArgument:0x0 ofSelector:0x19d37a17a reply:0x1]
 83908 ms  -[NSXPCCoder init]
           /* TID 0x2767 */
 83908 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _methodSignatureForRemoteSelector:0x19cefc453]
           /* TID 0x2ee7 */
 83908 ms  -[AKAnisetteData encodeWithCoder:0x12900f600]
           /* TID 0x2767 */
 83908 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _sendInvocation:0x16b319da0 orArguments:0x0 count:0x0 methodSignature:0x9d85aafdd9ffdaff selector:0x19cefc453 withProxy:0x126a23790]
 83908 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _interfaceForArgument:0x0 ofSelector:0x19cefc453 reply:0x0]
 83908 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder init]
           /* TID 0x2ee7 */
 83908 ms  -[NSXPCCoder dealloc]
 83908 ms  -[AKAnisetteData .cxx_destruct]
           /* TID 0x2767 */
 83908 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder dealloc]
 83908 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _hasProxiesInReplyBlockArgumentsOfSelector:0x19cefc453]
 83908 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _decodeAndInvokeReplyBlockWithEvent:0x126a23e10 sequence:0x2 replyInfo:0x126a23950]
 83908 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder init]
 83908 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _selectorIsAllowed:0x19cefc453 isReply:0x1 methodSignature:0x16b318ed0 allowedClasses:0x16b318ed8]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder dealloc]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext _shouldSendGrandSlamTokensForRemoteUI]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager sharedInstance]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager isAccountsFrameworkAvailable]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAccountManager hearbeatTokenForAccount:0x126a24160]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAccountManager hearbeatTokenForAccount:0x126a24160 error:0x0]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAccountManager _tokenWithName:0x1e8ff1358 forAccount:0x126a24160 error:0x0]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager performWithinPersonaForAccount:0x126a24160 withBlock:0x16b31a470]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection synchronousRemoteObjectProxyWithErrorHandler:0x16b31a120]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _remoteObjectInterfaceClass]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _customSubclass]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _sendSelector:0x19dd54344 withProxy:0x126a25030 arg1:0x126a24410 arg2:0x16b31a0b0]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _methodSignatureForRemoteSelector:0x19dd54344]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _sendInvocation:0x0 orArguments:0x16b31a028 count:0x2 methodSignature:0x9d85aafdd9ff885f selector:0x19dd54344 withProxy:0x126a25030]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _interfaceForArgument:0x0 ofSelector:0x19dd54344 reply:0x0]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder init]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder dealloc]
 83909 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _hasProxiesInReplyBlockArgumentsOfSelector:0x19dd54344]
 83920 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _decodeAndInvokeReplyBlockWithEvent:0x126b16e70 sequence:0x3 replyInfo:0x126a24520]
 83920 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder init]
 83920 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _selectorIsAllowed:0x19dd54344 isReply:0x1 methodSignature:0x16b319370 allowedClasses:0x16b319378]
 83921 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder dealloc]
 83921 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setHeartbeatToken:0x126a0f320]
 83921 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager sharedInstance]
 83921 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager isAccountsFrameworkAvailable]
 83921 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAccountManager activeServiceNamesForAccount:0x126a24160]
 83921 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAccountManager servicesUsingAccount:0x126a24160]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager stringRepresentationForService:0x5]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager stringRepresentationForService:0x4]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager stringRepresentationForService:0x1]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setLoggedInServices:0x126a0f9a0]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext _shouldSendIdentityTokenForRemoteUI]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext needsCredentialRecovery]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext needsPasswordChange]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl urlBagKey]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setInitialURLRequestKey:0x1ea6f14b8]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl dataCenterIdentifier]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate setDataCenterIdentifier:0x0]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKGrandSlamRequestProvider authenticatedRequest]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate signRequestWithCommonHeaders:0x126a21b10]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate signRequestWithBasicHeaders:0x126a21b10]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice currentDevice]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDevice serverFriendlyDescription]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice currentDevice]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDevice uniqueDeviceIdentifier]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice currentDevice]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDevice serialNumber]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice currentDevice]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDevice isInternalBuild]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice currentDevice]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDevice isInternalBuild]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice currentDevice]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDevice locale]
 83925 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice currentDevice]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDevice MLBSerialNumber]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice currentDevice]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDevice ROMAddress]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice currentDevice]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDevice isMultiUserMode]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice currentDeviceAuthenticationModeForAuthContext:0x126a0bf00]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice _currentDeviceAuthenticationMode]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDServerResourceLoadDelegate _signWithFeatureOptInHeaders:0x126a21b10]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKConfiguration sharedConfiguration]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKConfiguration shouldAllowExperimentalMode]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKConfiguration configurationValueForKey:0x1ea6effb8]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice currentDevice]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDevice isInternalBuild]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKConfiguration sharedConfiguration]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKConfiguration shouldEnableTestAccountMode]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKConfiguration configurationValueForKey:0x1ea6f0098]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKConfiguration sharedConfiguration]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKConfiguration shouldAddHSA2CreateHeader]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKConfiguration configurationValueForKey:0x1ea6eff58]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKConfiguration sharedConfiguration]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKConfiguration shouldAllowPhoneNumberAccounts]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKConfiguration configurationValueForKey:0x1ea6eff98]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKConfiguration sharedConfiguration]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKConfiguration requestedCloudPartition]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKConfiguration configurationValueForKey:0x1ea6f00d8]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKConfiguration _validCloudPartition:0x0]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDServerUIController .cxx_destruct]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl context]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext username]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKDevice currentDevice]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKDevice isMultiUserMode]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl context]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext appProvidedContext]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl context]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext appProvidedContext]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl context]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext isContextRequestingReauthForExistingService]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext authKitAccount:0x0]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext altDSID]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext DSID]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAppleIDAuthenticationContext username]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager sharedInstance]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager isAccountsFrameworkAvailable]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAccountManager authKitAccountWithAppleID:0x126a053b0]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAccountManager authKitAccountType]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection synchronousRemoteObjectProxyWithErrorHandler:0x16b31a140]
 83926 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _remoteObjectInterfaceClass]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _customSubclass]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _methodSignatureForRemoteSelector:0x19cefc453]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _sendInvocation:0x16b319e60 orArguments:0x0 count:0x0 methodSignature:0x9d85aafdd9ffdaff selector:0x19cefc453 withProxy:0x126a24c90]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _interfaceForArgument:0x0 ofSelector:0x19cefc453 reply:0x0]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder init]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder dealloc]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _hasProxiesInReplyBlockArgumentsOfSelector:0x19cefc453]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCConnection _decodeAndInvokeReplyBlockWithEvent:0x126b16e70 sequence:0x4 replyInfo:0x126a23c40]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder init]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCInterface _selectorIsAllowed:0x19cefc453 isReply:0x1 methodSignature:0x16b318f90 allowedClasses:0x16b318f98]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[NSXPCCoder dealloc]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager sharedInstance]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | +[AKAccountManager isAccountsFrameworkAvailable]
 83927 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKAccountManager servicesUsingAccount:0x126b0aa10]
 83928 ms     |    |    |    |    |    |    |    |    |    |    |    | -[AKServiceControllerImpl _executeRequest:0x126b07210 completion:0x16b31a748]
 83928 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLRequestProviderImpl shouldCacheResource]
 83928 ms     |    |    |    |    |    |    |    |    |    |    |    |    | +[AKURLSession sharedURLSession]
 83928 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLSession beginAuthenticationDataTaskWithRequest:0x126b07210 completionHandler:0x16b31a6e0]
 83928 ms     |    |    |    |    |    |    |    |    |    |    |    |    |    | -[AKURLSession beginDataTaskWithRequest:0x126b07210 completionHandler:0x16b31a650]
 83928 ms  -[AKTrafficClearenceRequest .cxx_destruct]
 83928 ms  -[AKAppleIDServerResourceLoadDelegate .cxx_destruct]
           /* TID 0x4a03 */
 83928 ms  -[AKURLSession _URLSession]
 83931 ms  -[AKAppleIDSession copyWithZone:0x0]
 83931 ms     | -[AKAppleIDSession initWithIdentifier:0x1ea6ed738]
 83931 ms  -[AKURLDataTask setRequest:0x126b07210]
 83931 ms  -[AKURLDataTask setRetryCount:0x0]
 83931 ms  -[AKURLDataTask setCompletionHandler:0x126b0e360]
 83932 ms  -[AKURLDataTask setUnderlyingTask:0x126a23790]
 83934 ms  -[AKAppleIDSession URLSession:0x125e16f80 task:0x126a23790 getAppleIDRequestOrHeadersForResponse:0x0 completionHandler:0x16b4be680]
 83934 ms     | -[AKAppleIDSession _generateAppleIDHeadersForSessionTask:0x126a23790 withCompletion:0x16b4be5c8]
 83934 ms     |    | -[AKAppleIDSession _nativeAnisetteController]
 83934 ms     |    |    | -[AKAnisetteProvisioningController init]
 83934 ms     |    | -[AKAnisetteProvisioningController anisetteDataForURLRequest:0x126a18120 completion:0x16b4be488]
 83934 ms     |    |    | -[AKAnisetteProvisioningController fetchAnisetteDataAndProvisionIfNecessary:0x1 withCompletion:0x16b4be488]
 83934 ms     |    |    |    | -[AKAnisetteProvisioningController _anisetteServiceConnection]
 83934 ms     |    |    |    |    | -[NSXPCConnection initWithMachServiceName:0x1ea6f09b8 options:0x0]
 83934 ms     |    |    |    |    |    | -[NSXPCConnection init]
 83934 ms     |    |    |    |    | +[AKAnisetteProvisioningDaemonInterface XPCInterface]
 83934 ms     |    |    |    |    | -[NSXPCConnection setRemoteObjectInterface:0x125d16640]
 83934 ms     |    |    |    |    | -[NSXPCConnection setExportedObject:0x126a243f0]
 83934 ms     |    |    |    |    | +[AKAnisetteProvisioningClientInterface XPCInterface]
 83934 ms     |    |    |    |    | -[NSXPCConnection setExportedInterface:0x125d16a50]
 83934 ms     |    |    |    |    | -[NSXPCConnection setInterruptionHandler:0x16b4be1f0]
 83934 ms     |    |    |    |    | -[NSXPCConnection setInvalidationHandler:0x16b4be1c8]
 83934 ms     |    |    |    |    | -[NSXPCConnection resume]
 83934 ms     |    |    |    | -[NSXPCConnection remoteObjectProxyWithErrorHandler:0x16b4be2a8]
 83935 ms     |    |    |    |    | -[NSXPCConnection _remoteObjectInterfaceClass]
 83935 ms     |    |    |    |    |    | -[NSXPCInterface _customSubclass]
 83935 ms     |    |    |    | -[NSXPCInterface _methodSignatureForRemoteSelector:0x19d37a17a]
 83935 ms     |    |    |    | -[NSXPCConnection _sendInvocation:0x16b4bdff0 orArguments:0x0 count:0x0 methodSignature:0x9d85aafdd9ff48ff selector:0x19d37a17a withProxy:0x126b17cd0]
 83935 ms     |    |    |    |    | -[NSXPCInterface _interfaceForArgument:0x1 ofSelector:0x19d37a17a reply:0x0]
 83935 ms     |    |    |    |    | -[NSXPCCoder init]
 83935 ms     |    |    |    |    | -[NSXPCCoder dealloc]
 83935 ms     |    |    |    |    | -[NSXPCInterface _hasProxiesInReplyBlockArgumentsOfSelector:0x19d37a17a]
           /* TID 0x2767 */
 83935 ms  -[NSXPCListener serviceName]
 83935 ms  -[NSXPCConnection init]
 83935 ms  -[NSXPCListener delegate]
 83935 ms  -[NSXPCListener delegate]
 83935 ms  -[AKDaemonConnectionManager listener:0x126907500 shouldAcceptNewConnection:0x126a24be0]
 83935 ms     | -[AKClient initWithConnection:0x126a24be0]
 83935 ms     | -[AKDaemonConnectionManager shouldAllowClient:0x126a254e0 logging:0x16b31a598]
 83935 ms     |    | -[AKClient hasWriteAccess]
 83935 ms     |    |    | -[AKClient _boolValueForEntitlement:0x10503a2b0]
 83935 ms     |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a2b0]
 83935 ms     |    |    |    |    | -[NSXPCConnection auditToken]
 83935 ms     |    | -[AKClient hasInternalAccess]
 83935 ms     |    |    | -[AKClient hasOwnerAccess]
 83935 ms     |    |    |    | -[AKClient _boolValueForEntitlement:0x10503a290]
 83936 ms     |    |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a290]
 83936 ms     |    |    |    |    |    | -[NSXPCConnection auditToken]
 83936 ms     |    |    | -[AKClient _boolValueForEntitlement:0x10503a270]
 83936 ms     |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a270]
 83936 ms     |    |    |    |    | -[NSXPCConnection auditToken]
 83936 ms     |    | -[AKClient description]
 83936 ms     |    |    | -[AKClient name]
 83936 ms     |    |    |    | -[NSXPCConnection processIdentifier]
 83936 ms     |    |    | -[NSXPCConnection processIdentifier]
 83936 ms     | -[AKAnisetteProvisioningService initWithClient:0x126a254e0]
 83936 ms     |    | +[AKAbsintheSigner sharedSigner]
 83936 ms     |    | +[AKAttestationSigner sharedSigner]
 83936 ms     | -[NSXPCConnection setExportedObject:0x126a255f0]
 83936 ms     | +[AKAnisetteProvisioningDaemonInterface XPCInterface]
 83936 ms     | -[NSXPCConnection setExportedInterface:0x125d16640]
 83936 ms     | +[AKAnisetteProvisioningClientInterface XPCInterface]
 83936 ms     | -[NSXPCConnection setRemoteObjectInterface:0x125d16a50]
 83936 ms     | -[NSXPCConnection resume]
 83936 ms  -[NSXPCConnection _decodeAndInvokeMessageWithEvent:0x126a257f0 flags:0x21]
 83936 ms     | -[NSXPCCoder init]
 83936 ms     | -[NSXPCInterface _selectorIsAllowed:0x19d37a17a isReply:0x0 methodSignature:0x16b31a0d0 allowedClasses:0x16b31a0d8]
 83936 ms     | -[NSXPCCoder dealloc]
 83936 ms     | -[NSXPCInterface _methodSignatureForReplyBlockOfSelector:0x19d37a17a]
 83936 ms     | -[AKAnisetteProvisioningService fetchAnisetteDataAndProvisionIfNecessary:0x1 device:0x0 completion:0x16b31a2a0]
 83936 ms     |    | -[AKClient hasInternalPrivateAccess]
 83936 ms     |    |    | -[AKClient hasInternalPrivateEntitlementAccess]
 83936 ms     |    |    |    | -[AKClient hasInternalAccess]
 83936 ms     |    |    |    |    | -[AKClient hasOwnerAccess]
 83936 ms     |    |    |    |    |    | -[AKClient _boolValueForEntitlement:0x10503a290]
 83936 ms     |    |    |    |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a290]
 83936 ms     |    |    |    |    |    |    |    | -[NSXPCConnection auditToken]
 83936 ms     |    |    |    |    | -[AKClient _boolValueForEntitlement:0x10503a270]
 83936 ms     |    |    |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a270]
 83936 ms     |    |    |    |    |    |    | -[NSXPCConnection auditToken]
 83936 ms     |    | -[AKAnisetteProvisioningService _fetchAnisetteDataAndProvisionIfNecessary:0x1 device:0x0 completion:0x16b31a2a0]
 83936 ms     |    |    | -[AKAnisetteProvisioningService _helperServiceForDevice:0x0]
 83936 ms     |    |    |    | -[AKAnisetteProvisioningService _nativeAnisetteService]
 83936 ms     |    |    |    |    | -[AKNativeAnisetteService initWithClient:0x126a254e0]
 83936 ms     |    |    | -[AKNativeAnisetteService fetchAnisetteDataAndProvisionIfNecessary:0x1 withCompletion:0x16b31a2a0]
 83936 ms  +[AKNativeAnisetteService lastKnownActiveAnisetteDSID]
 83936 ms     | +[AKURLBag bagForAltDSID:0x0]
 83936 ms     |    | +[AKURLBag sharedBag]
 83936 ms     | -[AKURLBag lastKnownIDMSEnvironment]
 83936 ms     |    | +[AKConfiguration sharedConfiguration]
 83936 ms     |    | -[AKConfiguration lastKnownIDMSEnvironment]
 83936 ms     |    |    | -[AKConfiguration configurationValueForKey:0x1ea6f0118]
 83936 ms     | +[AKNativeAnisetteService activeAnisetteDSIDWithEnvironment:0x0]
 83936 ms  -[AKNativeAnisetteService _unsafe_anisetteDataWithRoutingInfoForDSID:0xfffffffffffffffe withError:0x16b31a8a8]
 83936 ms     | +[AKADIProxy getIDMSRoutingInfo:0x16b31a838 forDSID:0xfffffffffffffffe]
 83937 ms     | -[AKNativeAnisetteService _unsafe_anisetteDataForDSID:0xfffffffffffffffe withError:0x16b31a8a8]
 83937 ms     |    | +[AKADIProxy requestOTPForDSID:0xfffffffffffffffe outMID:0x16b31a7e8 outMIDSize:0x16b31a7dc outOTP:0x16b31a7e0 outOTPSize:0x16b31a7d8]
 83937 ms     |    | +[AKADIProxy dispose:0x126a26580]
 83937 ms     |    | +[AKADIProxy dispose:0x126a24a80]
 83937 ms     |    | -[AKAnisetteData setMachineID:0x126a25670]
 83937 ms     |    | -[AKAnisetteData setOneTimePassword:0x126a256d0]
 83937 ms     | -[AKAnisetteData setRoutingInfo:0x3050500]
 83937 ms  -[NSXPCInterface _interfaceForArgument:0x0 ofSelector:0x19d37a17a reply:0x1]
 83937 ms  -[NSXPCCoder init]
 83937 ms  -[AKAnisetteData encodeWithCoder:0x128811000]
 83937 ms  -[NSXPCCoder dealloc]
 83937 ms  -[AKAnisetteData .cxx_destruct]
 83937 ms  -[NSXPCConnection _decodeAndInvokeReplyBlockWithEvent:0x126a25620 sequence:0x1 replyInfo:0x126b05fd0]
 83937 ms     | -[NSXPCCoder init]
 83937 ms     | -[NSXPCInterface _selectorIsAllowed:0x19d37a17a isReply:0x1 methodSignature:0x16b31a3f0 allowedClasses:0x16b31a3f8]
 83937 ms     | +[AKAnisetteData supportsSecureCoding]
 83937 ms     | -[AKAnisetteData initWithCoder:0x12880d000]
 83937 ms     | -[AKAppleIDSession _genericAppleIDHeadersDictionaryForRequest:0x126a18120]
 83938 ms     |    | +[AKDevice currentDevice]
 83938 ms     |    | -[AKDevice locale]
 83938 ms     | -[AKAnisetteData machineID]
 83938 ms     | -[AKAnisetteData oneTimePassword]
 83938 ms     | -[AKAnisetteData routingInfo]
 83938 ms     | +[AKDevice currentDevice]
 83938 ms     | -[AKDevice localUserUUID]
 83938 ms     | +[AKConfiguration sharedConfiguration]
 83938 ms     | -[AKConfiguration shouldAllowTestApplication]
 83938 ms     |    | -[AKConfiguration configurationValueForKey:0x1ea6efff8]
 83938 ms     | -[AKAppleIDSession _pairedDeviceAnisetteController]
 83938 ms  -[AKAnisetteData .cxx_destruct]
 83938 ms  -[NSXPCCoder dealloc]
 84336 ms  -[NSXPCConnection invalidationHandler]
 84337 ms  -[NSXPCConnection _additionalInvalidationHandler]
 84337 ms  -[NSXPCConnection setInvalidationHandler:0x0]
 84337 ms  -[NSXPCConnection setInterruptionHandler:0x0]
 84337 ms  -[NSXPCConnection setExportedObject:0x0]
 84337 ms     | -[AKAnisetteProvisioningService .cxx_destruct]
 84337 ms     |    | -[AKNativeAnisetteService .cxx_destruct]
 84338 ms     |    | -[AKClient .cxx_destruct]
 84338 ms  -[NSXPCConnection dealloc]
 84342 ms  -[NSXPCListener serviceName]
 84342 ms  -[NSXPCConnection init]
 84342 ms  -[NSXPCListener delegate]
 84342 ms  -[NSXPCListener delegate]
 84343 ms  -[AKDaemonConnectionManager listener:0x126907500 shouldAcceptNewConnection:0x125e33170]
 84343 ms     | -[AKClient initWithConnection:0x125e33170]
 84343 ms     | -[AKDaemonConnectionManager shouldAllowClient:0x125e2b900 logging:0x16b31a598]
 84343 ms     |    | -[AKClient hasWriteAccess]
 84343 ms     |    |    | -[AKClient _boolValueForEntitlement:0x10503a2b0]
 84343 ms     |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a2b0]
 84343 ms     |    |    |    |    | -[NSXPCConnection auditToken]
 84347 ms     |    | -[AKClient description]
 84347 ms     |    |    | -[AKClient name]
 84347 ms     |    |    |    | -[NSXPCConnection processIdentifier]
 84347 ms     |    |    | -[NSXPCConnection processIdentifier]
 84347 ms     | -[AKAnisetteProvisioningService initWithClient:0x125e2b900]
 84347 ms     |    | +[AKAbsintheSigner sharedSigner]
 84347 ms     |    | +[AKAttestationSigner sharedSigner]
 84348 ms     | -[NSXPCConnection setExportedObject:0x126889ce0]
 84348 ms     | +[AKAnisetteProvisioningDaemonInterface XPCInterface]
 84348 ms     | -[NSXPCConnection setExportedInterface:0x125d16640]
 84348 ms     | +[AKAnisetteProvisioningClientInterface XPCInterface]
 84348 ms     | -[NSXPCConnection setRemoteObjectInterface:0x125d16a50]
 84348 ms     | -[NSXPCConnection resume]
 84349 ms  -[NSXPCConnection _decodeAndInvokeMessageWithEvent:0x12688b5c0 flags:0x21]
 84349 ms     | -[NSXPCCoder init]
 84349 ms     | -[NSXPCInterface _selectorIsAllowed:0x19d37a17a isReply:0x0 methodSignature:0x16b31a0d0 allowedClasses:0x16b31a0d8]
 84349 ms     | -[NSXPCCoder dealloc]
 84349 ms     | -[NSXPCInterface _methodSignatureForReplyBlockOfSelector:0x19d37a17a]
 84349 ms     | -[AKAnisetteProvisioningService fetchAnisetteDataAndProvisionIfNecessary:0x1 device:0x0 completion:0x16b31a2a0]
 84349 ms     |    | -[AKClient hasInternalPrivateAccess]
 84349 ms     |    |    | -[AKClient hasInternalPrivateEntitlementAccess]
 84349 ms     |    |    |    | -[AKClient hasInternalAccess]
 84349 ms     |    |    |    |    | -[AKClient hasOwnerAccess]
 84349 ms     |    |    |    |    |    | -[AKClient _boolValueForEntitlement:0x10503a290]
 84349 ms     |    |    |    |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a290]
 84349 ms     |    |    |    |    |    |    |    | -[NSXPCConnection auditToken]
 84352 ms     |    |    |    |    | -[AKClient _boolValueForEntitlement:0x10503a270]
 84352 ms     |    |    |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a270]
 84352 ms     |    |    |    |    |    |    | -[NSXPCConnection auditToken]
 84353 ms     |    | -[AKAnisetteProvisioningService _fetchAnisetteDataAndProvisionIfNecessary:0x1 device:0x0 completion:0x16b31a2a0]
 84353 ms     |    |    | -[AKAnisetteProvisioningService _helperServiceForDevice:0x0]
 84353 ms     |    |    |    | -[AKAnisetteProvisioningService _nativeAnisetteService]
 84353 ms     |    |    |    |    | -[AKNativeAnisetteService initWithClient:0x125e2b900]
 84353 ms     |    |    | -[AKNativeAnisetteService fetchAnisetteDataAndProvisionIfNecessary:0x1 withCompletion:0x16b31a2a0]
 84353 ms  +[AKNativeAnisetteService lastKnownActiveAnisetteDSID]
 84353 ms     | +[AKURLBag bagForAltDSID:0x0]
 84353 ms     |    | +[AKURLBag sharedBag]
 84353 ms     | -[AKURLBag lastKnownIDMSEnvironment]
 84353 ms     |    | +[AKConfiguration sharedConfiguration]
 84353 ms     |    | -[AKConfiguration lastKnownIDMSEnvironment]
 84353 ms     |    |    | -[AKConfiguration configurationValueForKey:0x1ea6f0118]
 84353 ms     | +[AKNativeAnisetteService activeAnisetteDSIDWithEnvironment:0x0]
 84353 ms  -[AKNativeAnisetteService _unsafe_anisetteDataWithRoutingInfoForDSID:0xfffffffffffffffe withError:0x16b31a8a8]
 84353 ms     | +[AKADIProxy getIDMSRoutingInfo:0x16b31a838 forDSID:0xfffffffffffffffe]
 84355 ms     | -[AKNativeAnisetteService _unsafe_anisetteDataForDSID:0xfffffffffffffffe withError:0x16b31a8a8]
 84355 ms     |    | +[AKADIProxy requestOTPForDSID:0xfffffffffffffffe outMID:0x16b31a7e8 outMIDSize:0x16b31a7dc outOTP:0x16b31a7e0 outOTPSize:0x16b31a7d8]
 84355 ms     |    | +[AKADIProxy dispose:0x125e325e0]
 84355 ms     |    | +[AKADIProxy dispose:0x125e2b940]
 84355 ms     |    | -[AKAnisetteData setMachineID:0x125e2bf20]
 84355 ms     |    | -[AKAnisetteData setOneTimePassword:0x125e2c070]
 84355 ms     | -[AKAnisetteData setRoutingInfo:0x3050500]
 84355 ms  -[NSXPCInterface _interfaceForArgument:0x0 ofSelector:0x19d37a17a reply:0x1]
 84355 ms  -[NSXPCCoder init]
 84355 ms  -[AKAnisetteData encodeWithCoder:0x127819800]
 84355 ms  -[NSXPCCoder dealloc]
 84355 ms  -[AKAnisetteData .cxx_destruct]
 84390 ms  -[AKURLSession URLSession:0x125e16f80 didReceiveChallenge:0x12694ab10 completionHandler:0x16b31a698]
 84390 ms     | +[AKCertificatePinning isValidCertificateTrust:0x126949850 forHostname:0x12694a840]
 84687 ms  -[NSXPCConnection invalidationHandler]
 84687 ms  -[NSXPCConnection _additionalInvalidationHandler]
 84688 ms  -[NSXPCConnection setInvalidationHandler:0x0]
 84688 ms  -[NSXPCConnection setInterruptionHandler:0x0]
 84688 ms  -[NSXPCConnection setExportedObject:0x0]
 84688 ms     | -[AKAnisetteProvisioningService .cxx_destruct]
 84688 ms     |    | -[AKNativeAnisetteService .cxx_destruct]
 84689 ms     |    | -[AKClient .cxx_destruct]
           /* TID 0x9e33 */
 84689 ms  -[NSXPCListener serviceName]
 84689 ms  -[NSXPCConnection init]
 84689 ms  -[NSXPCListener delegate]
 84689 ms  -[NSXPCListener delegate]
 84689 ms  -[AKDaemonConnectionManager listener:0x126907500 shouldAcceptNewConnection:0x126a04b30]
 84689 ms     | -[AKClient initWithConnection:0x126a04b30]
 84689 ms     | -[AKDaemonConnectionManager shouldAllowClient:0x126a10290 logging:0x16b432598]
 84689 ms     |    | -[AKClient hasWriteAccess]
 84689 ms     |    |    | -[AKClient _boolValueForEntitlement:0x10503a2b0]
 84689 ms     |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a2b0]
 84689 ms     |    |    |    |    | -[NSXPCConnection auditToken]
 84690 ms     |    | -[AKClient description]
 84690 ms     |    |    | -[AKClient name]
 84690 ms     |    |    |    | -[NSXPCConnection processIdentifier]
 84690 ms     |    |    | -[NSXPCConnection processIdentifier]
 84690 ms     | -[AKAnisetteProvisioningService initWithClient:0x126a10290]
 84690 ms     |    | +[AKAbsintheSigner sharedSigner]
 84690 ms     |    | +[AKAttestationSigner sharedSigner]
 84690 ms     | -[NSXPCConnection setExportedObject:0x126a05f60]
 84690 ms     | +[AKAnisetteProvisioningDaemonInterface XPCInterface]
 84690 ms     | -[NSXPCConnection setExportedInterface:0x125d16640]
 84690 ms     | +[AKAnisetteProvisioningClientInterface XPCInterface]
 84690 ms     | -[NSXPCConnection setRemoteObjectInterface:0x125d16a50]
 84690 ms     | -[NSXPCConnection resume]
 84691 ms  -[NSXPCConnection _decodeAndInvokeMessageWithEvent:0x126a0c780 flags:0x21]
 84691 ms     | -[NSXPCCoder init]
 84691 ms     | -[NSXPCInterface _selectorIsAllowed:0x19d37a17a isReply:0x0 methodSignature:0x16b4320d0 allowedClasses:0x16b4320d8]
 84691 ms     | -[NSXPCCoder dealloc]
 84691 ms     | -[NSXPCInterface _methodSignatureForReplyBlockOfSelector:0x19d37a17a]
 84691 ms     | -[AKAnisetteProvisioningService fetchAnisetteDataAndProvisionIfNecessary:0x1 device:0x0 completion:0x16b4322a0]
 84691 ms     |    | -[AKClient hasInternalPrivateAccess]
 84691 ms     |    |    | -[AKClient hasInternalPrivateEntitlementAccess]
 84691 ms     |    |    |    | -[AKClient hasInternalAccess]
 84691 ms     |    |    |    |    | -[AKClient hasOwnerAccess]
 84691 ms     |    |    |    |    |    | -[AKClient _boolValueForEntitlement:0x10503a290]
 84691 ms     |    |    |    |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a290]
 84691 ms     |    |    |    |    |    |    |    | -[NSXPCConnection auditToken]
           /* TID 0x2767 */
 84691 ms  -[NSXPCConnection dealloc]
           /* TID 0x9e33 */
 84692 ms     |    |    |    |    | -[AKClient _boolValueForEntitlement:0x10503a270]
 84692 ms     |    |    |    |    |    | -[NSXPCConnection valueForEntitlement:0x10503a270]
 84692 ms     |    |    |    |    |    |    | -[NSXPCConnection auditToken]
 84692 ms     |    | -[AKAnisetteProvisioningService _fetchAnisetteDataAndProvisionIfNecessary:0x1 device:0x0 completion:0x16b4322a0]
 84692 ms     |    |    | -[AKAnisetteProvisioningService _helperServiceForDevice:0x0]
 84692 ms     |    |    |    | -[AKAnisetteProvisioningService _nativeAnisetteService]
 84692 ms     |    |    |    |    | -[AKNativeAnisetteService initWithClient:0x126a10290]
 84692 ms     |    |    | -[AKNativeAnisetteService fetchAnisetteDataAndProvisionIfNecessary:0x1 withCompletion:0x16b4322a0]
 84692 ms  +[AKNativeAnisetteService lastKnownActiveAnisetteDSID]
 84692 ms     | +[AKURLBag bagForAltDSID:0x0]
 84692 ms     |    | +[AKURLBag sharedBag]
 84692 ms     | -[AKURLBag lastKnownIDMSEnvironment]
 84692 ms     |    | +[AKConfiguration sharedConfiguration]
 84692 ms     |    | -[AKConfiguration lastKnownIDMSEnvironment]
 84692 ms     |    |    | -[AKConfiguration configurationValueForKey:0x1ea6f0118]
 84692 ms     | +[AKNativeAnisetteService activeAnisetteDSIDWithEnvironment:0x0]
 84692 ms  -[AKNativeAnisetteService _unsafe_anisetteDataWithRoutingInfoForDSID:0xfffffffffffffffe withError:0x16b4328a8]
 84692 ms     | +[AKADIProxy getIDMSRoutingInfo:0x16b432838 forDSID:0xfffffffffffffffe]
 84693 ms     | -[AKNativeAnisetteService _unsafe_anisetteDataForDSID:0xfffffffffffffffe withError:0x16b4328a8]
 84693 ms     |    | +[AKADIProxy requestOTPForDSID:0xfffffffffffffffe outMID:0x16b4327e8 outMIDSize:0x16b4327dc outOTP:0x16b4327e0 outOTPSize:0x16b4327d8]
 84693 ms     |    | +[AKADIProxy dispose:0x126a29160]
 84693 ms     |    | +[AKADIProxy dispose:0x126a2aa70]
 84693 ms     |    | -[AKAnisetteData setMachineID:0x126a0c7d0]
 84693 ms     |    | -[AKAnisetteData setOneTimePassword:0x126a0c830]
 84693 ms     | -[AKAnisetteData setRoutingInfo:0x3050500]
 84693 ms  -[NSXPCInterface _interfaceForArgument:0x0 ofSelector:0x19d37a17a reply:0x1]
 84693 ms  -[NSXPCCoder init]
 84693 ms  -[AKAnisetteData encodeWithCoder:0x128811000]
 84693 ms  -[NSXPCCoder dealloc]
 84693 ms  -[AKAnisetteData .cxx_destruct]
 84866 ms  -[AKURLSession URLSession:0x125e16f80 dataTask:0x126a23790 didReceiveData:0x125d86ce0]
 84866 ms     | -[AKURLDataTask receivedData]
 84867 ms     | -[AKURLDataTask setReceivedData:0x125d87560]
           /* TID 0x2767 */
 84868 ms  -[AKURLSession URLSession:0x125e16f80 task:0x126a23790 didCompleteWithError:0x0]
 84868 ms     | -[AKURLSession _unsafe_completeTask:0x126b043e0 withError:0x0]
 84868 ms     |    | -[AKURLDataTask underlyingTask]
 84868 ms     |    | -[AKURLDataTask _completeWithError:0x0]
 84868 ms     |    |    | -[AKURLDataTask setCanceledOrCompleted:0x1]
 84868 ms     |    |    | -[AKURLDataTask receivedData]
 84869 ms  -[AKURLDataTask description]
 84869 ms  -[AKGrandSlamRequestProvider validateResponseData:0x125d87560 error:0x16b31ade8]
 84869 ms     | -[AKURLRequestProviderImpl validateResponseData:0x125d87560 error:0x16b31ade8]
 84869 ms     |    | -[AKURLRequestProviderImpl _validateDataExists:0x125d87560]
 84869 ms     |    | -[AKURLRequestProviderImpl _validateResponseBodyFormat]
 84869 ms     |    |    | -[AKGrandSlamRequestProvider expectedResponseType]
 84870 ms     |    | -[AKURLRequestProviderImpl _validateErrorCode:0x9b85aafdd9ffd30d withKey:0x1ea6eeb58]
 84870 ms  -[AKAppleIDAuthenticationContext username]
 84870 ms  -[AKAppleIDAuthenticationService _correlateContext:0x126a0bf00 withAuthMode:0x1]
 84870 ms     | -[AKAppleIDAuthenticationContext setAuthenticationMode:0x1]
 84870 ms     | -[AKAppleIDAuthenticationContext authenticationType]
 84870 ms  -[AKAppleIDAuthenticationContext username]
 84870 ms  -[AKAppleIDAuthenticationContext authenticationType]
 84870 ms  -[AKAuthenticationUILiaison presentBasicLoginUIForContext:0x126a0bf00 client:0x1269481d0 completion:0x16b31ab40]
 84871 ms     | +[AKCAAuthPromptReporter reportPromptByClient:0x1269481d0 withContext:0x126a0bf00]
 84871 ms     |    | -[AKAppleIDAuthenticationContext isFirstTimeLogin]
 84871 ms     | +[AKAutoBugCapture shouldCapturePromptBugForContext:0x126a0bf00]
 84871 ms     |    | -[AKAppleIDAuthenticationContext _capabilityForUIDisplay]
 84871 ms     | -[AKAuthenticationUILiaison _performBlockWithClient:0x1269481d0 context:0x126a0bf00 requireFullUICapability:0x0 allowRedirectToSettings:0x1 block:0x16b31aac0]
 84871 ms     |    | -[AKAppleIDAuthenticationContext _capabilityForUIDisplay]
 84871 ms     |    | -[AKAppleIDAuthenticationContext _performUIOutOfProcess]
 84872 ms     |    | -[AKAppleIDAuthenticationContext _performUIOutOfProcess]
 84872 ms  -[AKURLDataTask .cxx_destruct]
 84872 ms     | -[AKAppleIDSession .cxx_destruct]
           /* TID 0x4a03 */
 84872 ms  -[AKClient proxyWithErrorHandler:0x16b4beda0]
 84872 ms     | -[NSXPCConnection remoteObjectProxyWithErrorHandler:0x16b4beda0]
 84872 ms     |    | -[NSXPCConnection _remoteObjectInterfaceClass]
 84872 ms     |    |    | -[NSXPCInterface _customSubclass]
 84873 ms  -[NSXPCConnection _sendSelector:0x19d20bd88 withProxy:0x12688ae80 arg1:0x126a0bf00 arg2:0x16b4bed70]
 84873 ms     | -[NSXPCInterface _methodSignatureForRemoteSelector:0x19d20bd88]
 84873 ms     | -[NSXPCConnection _sendInvocation:0x0 orArguments:0x16b4bece8 count:0x2 methodSignature:0x9d85aafdd9ff885f selector:0x19d20bd88 withProxy:0x12688ae80]
 84873 ms     |    | -[NSXPCInterface _interfaceForArgument:0x0 ofSelector:0x19d20bd88 reply:0x0]
 84873 ms     |    | -[NSXPCCoder init]
           /* TID 0x2767 */
 84873 ms     |    | -[AKAnisetteProvisioningController dealloc]
 84874 ms     |    |    | -[NSXPCConnection invalidate]
           /* TID 0x4a03 */
 84874 ms     |    | -[AKAppleIDAuthenticationContext encodeWithCoder:0x12701d000]
           /* TID 0x2767 */
 84874 ms     |    |    | -[AKAnisetteProvisioningController .cxx_destruct]
           /* TID 0x2ee7 */
 84874 ms  -[NSXPCConnection invalidationHandler]
 84874 ms  -[NSXPCConnection _additionalInvalidationHandler]
 84874 ms  -[NSXPCConnection setInvalidationHandler:0x0]
           /* TID 0x9e33 */
 84874 ms  -[NSXPCConnection invalidationHandler]
           /* TID 0x2ee7 */
 84875 ms  -[NSXPCConnection setInterruptionHandler:0x0]
           /* TID 0x9e33 */
 84875 ms  -[NSXPCConnection _additionalInvalidationHandler]
           /* TID 0x4a03 */
 84875 ms     |    | -[NSXPCCoder dealloc]
           /* TID 0x9e33 */
 84875 ms  -[NSXPCConnection setInvalidationHandler:0x0]
 84876 ms  -[NSXPCConnection setInterruptionHandler:0x0]
 84876 ms  -[NSXPCConnection setExportedObject:0x0]
           /* TID 0x4a03 */
 84876 ms     |    | -[NSXPCInterface _hasProxiesInReplyBlockArgumentsOfSelector:0x19d20bd88]
           /* TID 0x2767 */
 84876 ms  -[AKServiceControllerImpl .cxx_destruct]
 84876 ms     | -[AKURLRequestProviderImpl .cxx_destruct]
           /* TID 0x9e33 */
 84876 ms  -[NSXPCConnection dealloc]
           /* TID 0x2ee7 */
 84877 ms  -[NSXPCConnection setExportedObject:0x0]
 84877 ms     | -[AKAnisetteProvisioningService .cxx_destruct]
 84877 ms     |    | -[AKNativeAnisetteService .cxx_destruct]
 84877 ms     |    | -[AKClient .cxx_destruct]
 84877 ms  -[NSXPCConnection dealloc]
           /* TID 0x4a03 */
 84959 ms  -[NSXPCConnection invalidationHandler]
 84959 ms  -[NSXPCConnection _additionalInvalidationHandler]
 84959 ms  -[NSXPCConnection setInvalidationHandler:0x0]
 84959 ms  -[NSXPCConnection setInterruptionHandler:0x0]
 84959 ms  -[NSXPCConnection setExportedObject:0x0]
 84959 ms     | -[AKAnisetteProvisioningService .cxx_destruct]
 84959 ms     |    | -[AKNativeAnisetteService .cxx_destruct]
 84959 ms     |    | -[AKClient .cxx_destruct]
 84959 ms  -[NSXPCConnection dealloc]
114739 ms  -[NSXPCConnection invalidate]
           /* TID 0x9e33 */
114740 ms  -[NSXPCConnection invalidationHandler]
114740 ms  -[NSXPCConnection _additionalInvalidationHandler]
114740 ms  -[NSXPCConnection setInvalidationHandler:0x0]
114740 ms  -[NSXPCConnection setInterruptionHandler:0x0]
114740 ms  -[NSXPCConnection setExportedObject:0x0]
114740 ms  -[NSXPCInterface dealloc]
114740 ms  -[ACTrackedXPCConnection dealloc]
114740 ms     | -[NSXPCConnection dealloc]

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-27 23:15:35

Preferences中Apple账号登录全过程

Preferences中Apple账号登录全过程

用frida-trace追踪Preferences中

用frida-trace去追踪，Preferences=包名com.apple.Preferences中的：

Apple账号登录的完整过程

第一步：输入账号，点击下一步=账号验证过程

第二步：输入密码，点击下一步=账号登录过程

中的函数调用：

frida命令

frida-trace -U -F com.apple.Preferences -O Preferences_accoutLogin_hook.txt

Option文件Preferences_accoutLogin_hook.txt的内容

-m "*[AA* *]"
-m "*[AK* *]"
-m "*[AMS* *]"
-m "*[AS* *]"
-m "*[AC* *]"
-m "*[NSError *]"
-M "-[* classForCoder]"
-M "-[* classForKeyedArchiver]"
-M "-[AAUISignInViewController numberOfSectionsInTableView:]"
-M "-[AAUISignInViewController tableView*]"
-M "-[NSPath* *]"
-M "-[* copyWithZone:]"
-M "-[*NSCFString *]"
-M "-[*NSCFError *]"
-M "-[* *ayoutSubviews]"
-M "-[* intrinsicContentSize]"
-M "-[* viewForLastBaselineLayout]"
-M "-[* contentLayoutGuide]"
-M "-[* _updateStyleIfNeeded]"
-M "-[* _updateStackViewSpacing]"
-M "-[* _updateLabelFonts]"
-M "-[AAUILabel *]"
-M "-[AAUIBuddyView *]"
-M "-[AAUIHeaderView *]"
-M "-[* .cxx_destruct]"
-M "-[* dealloc]"
-M "-[* supportsSecureCoding]"
-M "-[* initWithCoder:]"
-M "-[ACAccountStore _clearAccountCaches]"

输出

...
-[NSURLError encodeWithCoder:]: Loaded handler at "/Users/crifan/dev/dev_root/iosReverse/AppleStore/Preferences_app/dynamicDebug/frida/frida-trace/__handlers__/NSURLError/encodeWithCoder_.js"
Started tracing 23636 functions. Press Ctrl+C to stop.
           /* TID 0x103 */
 15708 ms  -[AAUISignInController initWithNibName:0x0 bundle:0x0]
 15709 ms     | -[AAUISignInController _commonInit]
 15709 ms     |    | -[AAUISignInController setCanEditUsername:0x1]
 15716 ms  -[AAUISignInController viewDidLoad]
 15716 ms     | -[AAUISignInController _signInViewController]
 15716 ms     |    | +[AAPersonaUtility verifyAndFixPersonaIfNeeded:0x28073b880 desiredContext:0x281024ae0]
 15716 ms     |    | -[AAUISignInViewController initWithNibName:0x0 bundle:0x0]
 15716 ms     |    | -[AAUISignInController serviceType]
 15716 ms     |    | -[AAUISignInViewController _setAkServiceType:0x0]
 15716 ms     |    | -[AAUISignInViewController setUsername:0x0]
 15716 ms     |    | -[AAUISignInController privacyLinkIdentifiers]
 15716 ms     |    | -[AAUISignInViewController setPrivacyLinkIdentifiers:0x281024fa0]
 15716 ms     |    | -[AAUISignInController serviceType]
 15716 ms     |    | -[AAUISignInController _allowsAccountCreationForService:0x0]
 15716 ms     |    | -[AAUISignInViewController setAllowsAccountCreation:0x1]
 15716 ms     |    | -[AAUISignInViewController setDelegate:0x103812200]
 15717 ms     |    | -[AAUISignInController serviceType]
 15717 ms     |    | -[AAUISignInController _showsServiceIconsForService:0x0]
 15717 ms     |    | -[AAUISignInViewController setShowServiceIcons:0x1]
 15717 ms     |    | -[AAUISignInViewController messageLabel]
 15717 ms     |    |    | -[AAUISignInViewController _accountsHeaderView]
 15717 ms     |    |    |    | -[AAUISignInViewController authenticationContext]
 15717 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext init]
 15717 ms     |    |    |    |    |    | -[AKAppleIDAuthenticationContext _initWithIdentifier:0x281321340]
 15717 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext description]
 15717 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext setAuthenticationType:0x2]
 15717 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext setFirstTimeLogin:0x1]
 15717 ms     |    |    |    |    | -[AKAppleIDAuthenticationInAppContext setPresentingViewController:0x10400ce10]
 15717 ms     |    |    |    |    | -[AAUISignInViewController _akServiceType]
 15717 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext setServiceType:0x0]
 15717 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext setShouldOfferSecurityUpgrade:0x0]
 15717 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext setShouldUpdatePersistentServiceTokens:0x1]
 15717 ms     |    |    |    |    | -[AAUISignInViewController _shouldAnticipatePiggybacking]
 15717 ms     |    |    |    | +[AAUIHeaderView requiresConstraintBasedLayout]
 15718 ms     |    |    |    | -[AKAppleIDAuthenticationContext title]
 15719 ms     |    |    |    | -[AKAppleIDAuthenticationContext reason]
 15719 ms     |    | -[AAUISignInController serviceType]
 15719 ms     |    | -[AAUISignInController _messageStringForService:0x0]
 15719 ms     |    | -[AAUISignInController _isAuthenticatingPrimary:0x1ecb2df10]
 15719 ms     |    |    | -[AAUISignInController serviceType]
 15719 ms     |    |    | -[AAUISignInController _serviceOwnersManager]
 15719 ms     |    |    |    | -[ACAccountStore init]
 15719 ms     |    |    |    |    | -[ACAccountStore initWithRemoteEndpoint:0x0 effectiveBundleID:0x0]
 15719 ms     |    |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
 15719 ms     |    |    |    |    |    |    | -[ACTimedExpirer init]
 15719 ms     |    |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
 15719 ms     |    |    |    |    |    |    | -[ACTimedExpirer init]
 15719 ms     |    |    |    |    |    | +[ACNotificationRebroadcaster sharedRebroadcaster]
 15720 ms     |    |    | +[AACloudServiceOwner supportedServices]
 15720 ms     |    |    |    | +[AACloudServiceOwner _serviceTypeForPlatform]
 15720 ms     |    |    | -[AACloudServiceOwner initWithAccountStore:0x2839291f0]
 15720 ms     |    |    | -[AACloudServiceOwner accountForService:0x1ecb2df10]
 15720 ms     |    |    |    | +[AACloudServiceOwner _serviceTypeForPlatform]
 15720 ms     |    |    |    | -[ACAccountStore aa_primaryAppleAccount]
 15720 ms     |    |    |    |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x2810252f0 preloadedProperties:0x0 error:0x0]
 15720 ms     |    |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
 15720 ms     |    |    |    |    |    |    | -[ACAccountStore connectionDelegate]
 15720 ms     |    |    |    |    |    |    | -[ACRemoteAccountStoreSession initWithListenerEndpoint:0x0 delegate:0x0]
 15720 ms     |    |    |    |    |    |    |    | -[ACAccountStoreClientSideListener initWithDelegate:0x0]
 15720 ms     |    |    |    |    |    |    | -[ACAccountStore effectiveBundleID]
 15720 ms     |    |    |    |    |    |    | -[ACRemoteAccountStoreSession setEffectiveBundleID:0x0]
 15720 ms     |    |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fd69750]
 15720 ms     |    |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
 15720 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fd69730]
 15720 ms     |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
 15720 ms     |    |    |    |    |    |    |    | -[ACTrackedXPCConnection init]
 15720 ms     |    |    |    |    |    |    |    | +[ACRemoteAccountStoreInterface XPCInterface]
 15721 ms     |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _locked_configureRemoteAccountStoreWithConnection:0x28233c1e0]
 15729 ms     |    | -[AAUISignInViewController _setShouldAnticipatePiggybacking:0x1]
 15729 ms     |    | -[AAUISignInViewController _setAkServiceType:0x1]
 15740 ms  -[AAUISignInViewController loadView]
 15740 ms     | +[AAUIBuddyView requiresConstraintBasedLayout]
 15741 ms  -[AAUISignInViewController viewDidLoad]
 15741 ms     | -[AAUISignInViewController authenticationContext]
 15741 ms     |    | -[AKAppleIDAuthenticationContext init]
 15741 ms     |    |    | -[AKAppleIDAuthenticationContext _initWithIdentifier:0x281644c40]
 15741 ms     |    | -[AKAppleIDAuthenticationContext description]
 15741 ms     |    | -[AKAppleIDAuthenticationContext setAuthenticationType:0x2]
 15741 ms     |    | -[AKAppleIDAuthenticationContext setFirstTimeLogin:0x1]
 15741 ms     |    | -[AKAppleIDAuthenticationInAppContext setPresentingViewController:0x10400ce10]
 15741 ms     |    | -[AAUISignInViewController _akServiceType]
 15741 ms     |    | -[AKAppleIDAuthenticationContext setServiceType:0x1]
 15741 ms     |    | -[AKAppleIDAuthenticationContext setShouldOfferSecurityUpgrade:0x0]
 15741 ms     |    | -[AKAppleIDAuthenticationContext setShouldUpdatePersistentServiceTokens:0x1]
 15741 ms     |    | -[AAUISignInViewController _shouldAnticipatePiggybacking]
 15741 ms     |    | -[AKAppleIDAuthenticationContext setAnticipateEscrowAttempt:0x1]
 15741 ms     |    | -[AKAppleIDAuthenticationContext setShouldOfferSecurityUpgrade:0x1]
 15741 ms     |    | -[AKAppleIDAuthenticationContext setSupportsPiggybacking:0x1]
 15741 ms     | -[AKAppleIDAuthenticationContext proxiedDevice]
 15741 ms     | -[AAUISignInViewController _cancelBarButtonItem]
 15742 ms     | -[AAUISignInViewController _nextBarButtonItem]
 15742 ms     | -[AAUISignInViewController _tableView]
 15743 ms     | -[AAUISignInViewController _updateConstraintsForTraitCollection:0x282b1aa00]
 15744 ms  -[AAUISignInViewController viewWillAppear:0x1]
 15744 ms     | -[AAUISignInViewController _beginObservingTextFieldDidChangeNotifications]
 15744 ms     | -[AAUISignInViewController _beginObservingKeyboardWillShowNotifications]
 15744 ms     | -[AAUISignInViewController _beginObservingSizeCategoryNotification]
 15744 ms     | -[AAUISignInViewController _setEnabled:0x1]
 15744 ms     |    | -[AAUISignInViewController _hasValidCredentials]
 15744 ms     |    | -[AAUISignInViewController _setUsernameCellWaiting:0x0]
 15744 ms     | +[AAUISignInViewController phoneNumberSupportedWithCompletion:0x16fd67ed8]
           /* TID 0x1503 */
 15744 ms  +[AKURLBag sharedBag]
 15744 ms  -[AKURLBag isPhoneNumberSupportedConfig]
 15744 ms     | -[AKURLBag configurationAtKey:0x1e8b198f8]
 15744 ms     |    | -[AKURLBag configurationAtKey:0x1e8b198f8 fromCache:0x0]
 15744 ms     |    |    | -[AKURLBag _configurationsFromCache:0x0 withError:0x0]
 15744 ms     |    |    |    | -[AKURLBag _urlBagFromCache:0x0 withError:0x0]
 15744 ms     |    |    |    |    | -[AKURLBag bagProvider]
 15744 ms     |    |    |    |    | -[AKAppleIDAuthenticationController init]
 15744 ms     |    |    |    |    |    | -[AKAppleIDAuthenticationController initWithIdentifier:0x0 daemonXPCEndpoint:0x0]
 15744 ms     |    |    |    |    |    |    | -[AKAppleIDAuthenticationContextManager initWithAuthenticationController:0x280781f40]
 15744 ms     |    |    |    |    | -[AKURLBag altDSID]
 15744 ms     |    |    |    |    | -[AKAppleIDAuthenticationController _urlBagFromCache:0x0 altDSID:0x0 withError:0x0]
 15744 ms     |    |    |    |    |    | -[AKAppleIDAuthenticationController _authenticationServiceConnection]
 15744 ms     |    |    |    |    |    |    | +[AKAppleIDAuthenticationDaemonInterface XPCInterface]
 15744 ms     |    |    |    |    |    |    | +[AKAppleIDAuthenticationClientInterface XPCInterface]
           /* TID 0x103 */
 15752 ms  -[AAUISignInViewController traitCollectionDidChange:0x282b29ce0]
 15752 ms  -[AAUISignInViewController _updateContentInsetWithHeight:0x282b69260]
 15752 ms  -[AAUISignInViewController _showOnlyPassword]
 15752 ms  -[AAUISignInViewController _usernameCell]
 15756 ms  -[AAUISignInViewController _tableHeaderView]
 15756 ms     | -[AAUISignInViewController _accountsHeaderView]
 15757 ms     |    | -[AAUISignInViewController authenticationContext]
 15757 ms     |    |    | -[AKAppleIDAuthenticationContext init]
 15757 ms     |    |    |    | -[AKAppleIDAuthenticationContext _initWithIdentifier:0x2816436c0]
 15757 ms     |    |    | -[AKAppleIDAuthenticationContext description]
 15757 ms     |    |    | -[AKAppleIDAuthenticationContext setAuthenticationType:0x2]
 15757 ms     |    |    | -[AKAppleIDAuthenticationContext setFirstTimeLogin:0x1]
 15757 ms     |    |    | -[AKAppleIDAuthenticationInAppContext setPresentingViewController:0x10400ce10]
 15757 ms     |    |    | -[AAUISignInViewController _akServiceType]
 15757 ms     |    |    | -[AKAppleIDAuthenticationContext setServiceType:0x1]
 15757 ms     |    |    | -[AKAppleIDAuthenticationContext setShouldOfferSecurityUpgrade:0x0]
 15757 ms     |    |    | -[AKAppleIDAuthenticationContext setShouldUpdatePersistentServiceTokens:0x1]
 15757 ms     |    |    | -[AAUISignInViewController _shouldAnticipatePiggybacking]
 15757 ms     |    |    | -[AKAppleIDAuthenticationContext setAnticipateEscrowAttempt:0x1]
 15757 ms     |    |    | -[AKAppleIDAuthenticationContext setShouldOfferSecurityUpgrade:0x1]
 15757 ms     |    |    | -[AKAppleIDAuthenticationContext setSupportsPiggybacking:0x1]
 15757 ms     | -[AAUISignInViewController constrainView:0x10400d440 toFillHeaderFooterView:0x1006a4610]
 15760 ms  -[AAUISignInViewController _tableFooterView]
 15760 ms     | +[AAUIBuddyView requiresConstraintBasedLayout]
 15760 ms     | -[AAUISignInViewController allowsAccountCreation]
 15760 ms     | -[AAUIServiceIconView initWithFrame:0x0]
 15760 ms     |    | +[AAUIServiceIconView iconNames]
 15761 ms     | -[AAUISignInViewController showServiceIcons]
 15761 ms     | -[AAUITextView initWithFrame:0x0]
 15763 ms     |    | -[AAUITextView _commonInit]
 15763 ms     | -[AAUISignInViewController _stringForFooter]
 15763 ms     |    | -[AAUISignInViewController _isGreenTeaCapable]
 15765 ms     | -[AAUISignInViewController privacyLinkIdentifiers]
 15765 ms     | -[AAUISignInViewController privacyLinkIdentifiers]
 15765 ms     | -[AAUISignInViewController privacyLinkIdentifiers]
 15772 ms     | -[AAUISignInViewController constrainView:0x100688290 toFillHeaderFooterView:0x1006e63b0]
 15779 ms  -[AAUIServiceIconView didMoveToWindow]
 15800 ms  -[AAUISignInViewController _usernameCell]
 16302 ms  -[AAUISignInController viewDidAppear:0x1]
           /* TID 0x1507 */
 60710 ms  -[ACTimedExpirer _cancelTimer]
 60710 ms     | -[ACTimedExpirer _unsafeCancelTimer]
 60710 ms  -[ACAccountStoreClientSideListener connectionWasInvalidated]
           /* TID 0x103 */
 91748 ms  +[NSError errorWithDomain:0x1f61f0160 code:0x2 userInfo:0x0]
 91748 ms     | -[NSError initWithDomain:0x1f61f0160 code:0x2 userInfo:0x0]
 91748 ms  +[NSError errorWithDomain:0x1f61f01c0 code:0x104 userInfo:0x28164c600]
 91748 ms     | -[NSError initWithDomain:0x1f61f01c0 code:0x104 userInfo:0x28164c600]
 91789 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
 91789 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
 91839 ms  -[AAUISignInViewController _keyboardWillShow:0x2816aab40]
 91839 ms     | -[AAUISignInViewController _updateContentInsetWithHeight:0x1f095f050]
 91840 ms  -[AAUISignInViewController _keyboardWillShow:0x2816aab40]
 91841 ms     | -[AAUISignInViewController _updateContentInsetWithHeight:0x1f095f050]
 93554 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0x0 replacementString:0x0]
 93554 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 93554 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 93563 ms  -[AAUISignInViewController _textFieldDidChange:0x281694e40]
 93563 ms     | -[AAUISignInViewController _hasValidCredentials]
 93897 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0x1 replacementString:0x0]
 93897 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 93897 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 93907 ms  -[AAUISignInViewController _textFieldDidChange:0x281658920]
 93908 ms     | -[AAUISignInViewController _hasValidCredentials]
 94231 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0x3 replacementString:0x0]
 94231 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 94231 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 94240 ms  -[AAUISignInViewController _textFieldDidChange:0x281658de0]
 94240 ms     | -[AAUISignInViewController _hasValidCredentials]
 94496 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0x5 replacementString:0x0]
 94497 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 94497 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 94505 ms  -[AAUISignInViewController _textFieldDidChange:0x281658d20]
 94505 ms     | -[AAUISignInViewController _hasValidCredentials]
 94767 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0x6 replacementString:0x0]
 94767 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 94767 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 94778 ms  -[AAUISignInViewController _textFieldDidChange:0x281261de0]
 94778 ms     | -[AAUISignInViewController _hasValidCredentials]
 94827 ms  -[AAUISignInViewController _textFieldDidChange:0x2816b05e0]
 94827 ms     | -[AAUISignInViewController _hasValidCredentials]
 95134 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0x0 replacementString:0x5]
 95134 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 95134 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 95137 ms  -[AAUISignInViewController _textFieldDidChange:0x2816a2ca0]
 95137 ms     | -[AAUISignInViewController _hasValidCredentials]
 95140 ms  -[AAUISignInViewController _textFieldDidChange:0x2816a2e00]
 95140 ms     | -[AAUISignInViewController _hasValidCredentials]
 95164 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0x5 replacementString:0x0]
 95165 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 95165 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 95169 ms  -[AAUISignInViewController _textFieldDidChange:0x28164ece0]
 95169 ms     | -[AAUISignInViewController _hasValidCredentials]
 95482 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0x6 replacementString:0x0]
 95482 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 95482 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 95492 ms  -[AAUISignInViewController _textFieldDidChange:0x281659b60]
 95493 ms     | -[AAUISignInViewController _hasValidCredentials]
 95863 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0x7 replacementString:0x0]
 95863 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 95863 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 95876 ms  -[AAUISignInViewController _textFieldDidChange:0x281262a40]
 95876 ms     | -[AAUISignInViewController _hasValidCredentials]
 96164 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0x9 replacementString:0x0]
 96164 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 96164 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 96173 ms  -[AAUISignInViewController _textFieldDidChange:0x2816b9480]
 96174 ms     | -[AAUISignInViewController _hasValidCredentials]
 96462 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0xa replacementString:0x0]
 96462 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 96462 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 96470 ms  -[AAUISignInViewController _textFieldDidChange:0x28125c800]
 96470 ms     | -[AAUISignInViewController _hasValidCredentials]
 96812 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0xc replacementString:0x0]
 96813 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 96813 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 96826 ms  -[AAUISignInViewController _textFieldDidChange:0x28165ba80]
 96826 ms     | -[AAUISignInViewController _hasValidCredentials]
 97081 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0xd replacementString:0x0]
 97081 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 97081 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 97091 ms  -[AAUISignInViewController _textFieldDidChange:0x2816bc6c0]
 97091 ms     | -[AAUISignInViewController _hasValidCredentials]
 97352 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0x6 replacementString:0x8]
 97353 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 97353 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 97355 ms  -[AAUISignInViewController _textFieldDidChange:0x2816bd940]
 97355 ms     | -[AAUISignInViewController _hasValidCredentials]
 97358 ms  -[AAUISignInViewController _textFieldDidChange:0x2816beb40]
 97358 ms     | -[AAUISignInViewController _hasValidCredentials]
 97385 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0xc replacementString:0x0]
 97385 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 97385 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 97393 ms  -[AAUISignInViewController _textFieldDidChange:0x281644580]
 97393 ms     | -[AAUISignInViewController _hasValidCredentials]
 97610 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0xd replacementString:0x0]
 97611 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 97611 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 97619 ms  -[AAUISignInViewController _textFieldDidChange:0x2816b2d60]
 97619 ms     | -[AAUISignInViewController _hasValidCredentials]
 97860 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0xe replacementString:0x0]
 97861 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 97861 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 97868 ms  -[AAUISignInViewController _textFieldDidChange:0x2816bb220]
 97869 ms     | -[AAUISignInViewController _hasValidCredentials]
 98077 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0xf replacementString:0x0]
 98077 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 98077 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 98086 ms  -[AAUISignInViewController _textFieldDidChange:0x2816b2dc0]
 98086 ms     | -[AAUISignInViewController _hasValidCredentials]
 98632 ms  -[AAUISignInViewController textField:0x1020abe00 shouldChangeCharactersInRange:0xd replacementString:0x4]
 98632 ms     | -[AAUISignInViewController _isPasswordFieldVisible]
 98632 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 98635 ms  -[AAUISignInViewController _textFieldDidChange:0x2816b1f40]
 98635 ms     | -[AAUISignInViewController _hasValidCredentials]
 98638 ms  -[AAUISignInViewController _textFieldDidChange:0x28164bf60]
 98638 ms     | -[AAUISignInViewController _hasValidCredentials]
 99358 ms  -[AAUISignInViewController _nextButtonSelected:0x10067b1a0]
 99358 ms     | -[AAUISignInViewController _attemptAuthentication]
 99359 ms     |    | -[AAUISignInViewController _isPasswordFieldVisible]
 99359 ms     |    |    | -[AAUISignInViewController _showOnlyPassword]
 99359 ms     |    | -[AAUISignInViewController authenticationContext]
 99359 ms     |    |    | -[AKAppleIDAuthenticationContext init]
 99359 ms     |    |    |    | -[AKAppleIDAuthenticationContext _initWithIdentifier:0x281647760]
 99359 ms     |    |    | -[AKAppleIDAuthenticationContext description]
 99359 ms     |    |    | -[AKAppleIDAuthenticationContext setAuthenticationType:0x2]
 99359 ms     |    |    | -[AKAppleIDAuthenticationContext setFirstTimeLogin:0x1]
 99360 ms     |    |    | -[AKAppleIDAuthenticationInAppContext setPresentingViewController:0x10400ce10]
 99360 ms     |    |    | -[AAUISignInViewController _akServiceType]
 99360 ms     |    |    | -[AKAppleIDAuthenticationContext setServiceType:0x1]
 99360 ms     |    |    | -[AKAppleIDAuthenticationContext setShouldOfferSecurityUpgrade:0x0]
 99360 ms     |    |    | -[AKAppleIDAuthenticationContext setShouldUpdatePersistentServiceTokens:0x1]
 99360 ms     |    |    | -[AAUISignInViewController _shouldAnticipatePiggybacking]
 99360 ms     |    |    | -[AKAppleIDAuthenticationContext setAnticipateEscrowAttempt:0x1]
 99360 ms     |    |    | -[AKAppleIDAuthenticationContext setShouldOfferSecurityUpgrade:0x1]
 99360 ms     |    |    | -[AKAppleIDAuthenticationContext setSupportsPiggybacking:0x1]
 99360 ms     |    | -[AKAppleIDAuthenticationContext setNeedsCredentialRecovery:0x0]
 99360 ms     |    | -[AKAppleIDAuthenticationContext setNeedsNewAppleID:0x0]
 99361 ms     |    | -[AKAppleIDAuthenticationContext setUsername:0x281ce7930]
 99361 ms     |    | -[AKAppleIDAuthenticationContext _setPassword:0x0]
 99361 ms     |    | -[AKAppleIDAuthenticationInAppContext _setPasswordDelegate:0x10400ce10]
 99361 ms     |    | -[AAUISignInViewController _isRunningInSettings]
 99361 ms     |    | -[AKAppleIDAuthenticationContext setAppProvidedContext:0x1e8b17118]
 99361 ms     |    | -[AAUISignInViewController _attemptAuthenticationWithContext:0x10410b850]
 99361 ms     |    |    | -[AAUISignInViewController _setEnabled:0x0]
 99390 ms     |    |    |    | -[AAUISignInViewController _keyboardWillShow:0x28125d800]
 99390 ms     |    |    |    |    | -[AAUISignInViewController _updateContentInsetWithHeight:0x1f095f050]
 99392 ms     |    |    |    | -[AAUISignInViewController _keyboardWillHide:0x28125d800]
 99392 ms     |    |    |    |    | -[AAUISignInViewController _updateContentInsetWithHeight:0x1f095f050]
 99393 ms     |    |    |    | -[AAUISignInViewController _setUsernameCellWaiting:0x1]
 99394 ms     |    |    |    |    | -[AAUISignInViewController _showOnlyPassword]
 99396 ms     |    |    | -[AAUISignInController willAuthenticateWithContext:0x10410b850]
 99396 ms     |    |    | +[AAPersonaUtility verifyAndFixPersonaIfNeeded:0x2807395c0 desiredContext:0x281025010]
 99396 ms     |    |    | -[AKAppleIDAuthenticationController init]
 99396 ms     |    |    |    | -[AKAppleIDAuthenticationController initWithIdentifier:0x0 daemonXPCEndpoint:0x0]
 99396 ms     |    |    |    |    | -[AKAppleIDAuthenticationContextManager initWithAuthenticationController:0x280739600]
 99396 ms     |    |    | -[AKAppleIDAuthenticationController authenticateWithContext:0x10410b850 completion:0x16fd69010]
 99397 ms     |    |    |    | -[AKAppleIDAuthenticationContext authenticationType]
 99397 ms     |    |    |    | -[AKAppleIDAuthenticationContext _proxiedAppBundleID]
 99397 ms     |    |    |    | -[AKAppleIDAuthenticationContextManager registerContext:0x10410b850]
 99397 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext _identifier]
 99397 ms     |    |    |    | -[AKAppleIDAuthenticationContext debugDescription]
 99397 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext _shouldSkipInitialReachabilityCheck]
           /* TID 0xc533 */
 99397 ms  -[AKAppleIDAuthenticationContext _identifier]
           /* TID 0x103 */
 99397 ms     |    |    |    | -[AKAppleIDAuthenticationController _authenticationServiceConnection]
 99397 ms     |    |    |    |    | +[AKAppleIDAuthenticationDaemonInterface XPCInterface]
 99397 ms     |    |    |    |    | +[AKAppleIDAuthenticationClientInterface XPCInterface]
 99397 ms     |    |    |    | -[AKAppleIDAuthenticationContext _sanitizedCopy]
 99398 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext init]
 99398 ms     |    |    |    |    |    | -[AKAppleIDAuthenticationContext _initWithIdentifier:0x28164e340]
 99398 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext description]
 99398 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext _capabilityForUIDisplay]
 99398 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext _shouldSkipInitialReachabilityCheck]
 99398 ms     |    |    |    | -[AKAppleIDAuthenticationContext isContextEligibleForSilentAuth]
 99398 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext authenticationType]
 99398 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext shouldPromptForPasswordOnly]
 99398 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext isEphemeral]
 99398 ms     |    |    |    |    | -[AKAppleIDAuthenticationContext isUsernameEditable]
 99398 ms     |    |    |    | -[AKAppleIDAuthenticationContext encodeWithCoder:0x11383a600]
 99399 ms     |    |    | +[AAPersonaUtility personaConsistencyCheck:0x2807395c0]
 99399 ms     | -[AAUISignInViewController _prewarmSignInFlowIfApplicable]
 99399 ms     |    | -[AAUISignInViewController showServiceIcons]
 99399 ms     |    | -[AASignInFlowController init]
 99399 ms     |    |    | -[ACAccountStore init]
 99399 ms     |    |    |    | -[ACAccountStore initWithRemoteEndpoint:0x0 effectiveBundleID:0x0]
 99399 ms     |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
 99399 ms     |    |    |    |    |    | -[ACTimedExpirer init]
 99399 ms     |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
 99399 ms     |    |    |    |    |    | -[ACTimedExpirer init]
 99399 ms     |    |    |    |    | +[ACNotificationRebroadcaster sharedRebroadcaster]
 99400 ms     |    | -[AASignInFlowController prewarmOperationsWithCompletion:0x0]
 99400 ms     |    |    | +[AARemoteServer sharedServer]
 99400 ms     |    |    |    | -[AARemoteServer init]
 99400 ms     |    |    |    |    | +[AAURLSession sharedSession]
 99400 ms     |    |    |    |    |    | -[AAURLSession _initRequiringSigning:0x0]
 99402 ms     |    |    |    |    |    |    | -[AAURLSessionContext initRequiringSigning:0x0]
 99402 ms     |    |    |    |    |    |    |    | -[AKAppleIDSession initWithIdentifier:0x28164e980]
 99402 ms     |    |    |    |    |    |    |    | -[AAURLSessionContext _initRequiringSigning:0x0 appleIDSession:0x2807e81c0]
 99405 ms     |    |    |    |    |    |    | -[AKAppleIDSession initWithIdentifier:0x281cc6fa0]
 99405 ms     |    |    |    |    |    |    | -[AAURLSessionContext _initRequiringSigning:0x0 appleIDSession:0x280767d40]
 99405 ms     |    |    |    |    |    |    | -[AKAppleIDSession initWithIdentifier:0x281cc6fa0]
 99405 ms     |    |    |    |    |    |    | -[AAURLSessionContext _initRequiringSigning:0x0 appleIDSession:0x280762940]
 99406 ms     |    |    |    |    |    |    | -[AAURLSessionContext relevantHTTPStatusCodes]
 99406 ms     |    |    |    |    |    |    |    | -[AKAppleIDSession relevantHTTPStatusCodes]
 99406 ms     |    |    |    |    |    |    |    | +[AAURLSessionContext _relevantHTTPStatusCodes]
 99406 ms     |    |    |    |    | +[AAURLSession sharedSigningSession]
 99406 ms     |    |    |    |    |    | -[AAURLSession _initRequiringSigning:0x1]
 99406 ms     |    |    |    |    |    |    | -[AAURLSessionContext initRequiringSigning:0x1]
 99406 ms     |    |    |    |    |    |    |    | -[AKAppleIDSession initWithIdentifier:0x28164ed40]
 99406 ms     |    |    |    |    |    |    |    | -[AAURLSessionContext _initRequiringSigning:0x1 appleIDSession:0x2807e81c0]
 99406 ms     |    |    |    |    |    |    | -[AKAppleIDSession initWithIdentifier:0x281cc6e50]
 99406 ms     |    |    |    |    |    |    | -[AAURLSessionContext _initRequiringSigning:0x1 appleIDSession:0x2807e8580]
 99407 ms     |    |    |    |    |    |    | -[AKAppleIDSession initWithIdentifier:0x281cc6e50]
 99407 ms     |    |    |    |    |    |    | -[AAURLSessionContext _initRequiringSigning:0x1 appleIDSession:0x2807e8fc0]
 99407 ms     |    |    |    |    |    |    | -[AAURLSessionContext relevantHTTPStatusCodes]
 99407 ms     |    |    |    |    |    |    |    | -[AKAppleIDSession relevantHTTPStatusCodes]
 99407 ms     |    |    |    |    |    |    |    | +[AAURLSessionContext _relevantHTTPStatusCodes]
 99407 ms     |    |    | -[AARemoteServer configurationWithCompletion:0x16fd690b8]
 99407 ms     |    |    |    | -[AARemoteServer _configurationAndResponseWithCompletion:0x16fd69058]
 99407 ms     |    |    |    |    | -[AARemoteServer _configurationCacheInvalidatingIfNecessary]
 99407 ms     |    |    |    |    |    | -[AARemoteServer _configurationLock_configurationCacheInvalidatingIfNecessary]
           /* TID 0xc533 */
 99407 ms  -[AARemoteServer _configurationCacheInvalidatingIfNecessary]
 99407 ms     | -[AARemoteServer _configurationLock_configurationCacheInvalidatingIfNecessary]
 99407 ms  -[AARemoteServer _fetchConfigurationAndResponseWithCompletion:0x16fe7e890]
           /* TID 0x103 */
 99408 ms  -[ACTimedExpirer _cancelTimer]
 99408 ms     | -[ACTimedExpirer _unsafeCancelTimer]
 99408 ms  -[ACTimedExpirer _cancelTimer]
 99408 ms     | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0xf107 */
 99423 ms  +[AKAppleIDAuthenticationContext supportsSecureCoding]
 99423 ms  -[AKAppleIDAuthenticationContextManager presentBasicLoginUIForContext:0x12032b360 completion:0x2820ba370]
 99423 ms     | -[AKAppleIDAuthenticationContextManager _clientSideContextForServerContext:0x12032b360]
 99423 ms     |    | -[AKAppleIDAuthenticationContext _identifier]
 99423 ms     |    | -[AKAppleIDAuthenticationContext _identifier]
 99423 ms     |    | -[AKAppleIDAuthenticationContext _updateWithValuesFromContext:0x12032b360]
 99423 ms     | -[AKAppleIDAuthenticationInAppContext presentBasicLoginUIWithCompletion:0x2820ba370]
           /* TID 0x103 */
 99423 ms  -[AKAppleIDAuthenticationContext username]
 99423 ms  -[AKAppleIDAuthenticationInAppContext _passwordDelegate]
 99424 ms  -[AKAppleIDAuthenticationContext username]
 99424 ms  -[AKAppleIDAuthenticationInAppContext _passwordDelegate]
 99424 ms  -[AAUISignInViewController context:0x10410b850 needsPasswordWithCompletion:0x16fd6a950]
 99424 ms     | -[AAUISignInViewController _setPasswordFieldHidden:0x0]
 99424 ms     |    | -[AAUISignInViewController _isPasswordFieldVisible]
 99424 ms     |    |    | -[AAUISignInViewController _showOnlyPassword]
 99424 ms     |    | -[AAUISignInViewController _passwordFieldIndexPath]
 99424 ms     |    | -[AAUISignInViewController _showOnlyPassword]
 99425 ms     |    | -[AAUISignInViewController _passwordFieldIndexPath]
 99425 ms     |    | -[AAUISignInViewController _passwordCell]
 99435 ms     | -[AAUISignInViewController _setEnabled:0x1]
 99435 ms     |    | -[AAUISignInViewController _hasValidCredentials]
 99436 ms     |    | -[AAUISignInViewController _setUsernameCellWaiting:0x0]
           /* TID 0xc533 */
 99454 ms     | -[AAURLSession bodyTaskWithRequest:0x28100b030 completion:0x16fe7e740]
 99454 ms     |    | -[AAURLSession dataTaskWithRequest:0x28100b030 completion:0x16fe7e6c8]
 99454 ms     |    |    | -[AAURLSession _enqueueRequest:0x28100b030 completion:0x16fe7e6c8]
 99455 ms     |    |    |    | -[AKAppleIDSession initWithIdentifier:0x281cc6fa0]
 99455 ms     |    |    |    | -[AAURLSessionContext _initRequiringSigning:0x0 appleIDSession:0x2807dddc0]
           /* TID 0x10a03 */
 99455 ms  -[AAURLSession _sessionQueue_enqueueTask:0x129612b80 completion:0x281d62b80]
 99469 ms  -[AAURLSession URLSession:0x10401f340 dataTask:0x129612b80 didReceiveData:0x2807d4a00]
 99469 ms     | -[AAURLSession _sessionQueue_updateTask:0x129612b80 withData:0x2807d4a00]
           /* TID 0xc533 */
 99470 ms  -[AAURLSession URLSession:0x10401f340 task:0x129612b80 didCompleteWithError:0x0]
 99470 ms     | -[AAURLSession _sessionQueue_dequeueTask:0x129612b80 withResponse:0x2816bae20 error:0x0]
 99470 ms     |    | -[AAURLConfiguration _initWithDictionary:0x2816a15c0]
 99470 ms     |    | +[AARemoteServerConfigurationCache cacheWithConfiguration:0x28100c250 response:0x2816bae20]
 99470 ms     |    |    | -[AARemoteServerConfigurationCache initWithConfiguration:0x28100c250 response:0x2816bae20]
 99470 ms     |    | -[AARemoteServer _setConfigurationCache:0x2816bb620]
 99470 ms     |    | -[AAURLConfiguration absintheEnable]
 99470 ms     |    | +[AAAbsintheSigner sharedSigner]
 99470 ms     |    |    | -[AAAbsintheSigner initWithCacheTimeout:0xffffffffffffffc0]
 99470 ms     |    |    |    | +[AAURLSession sharedSession]
 99470 ms     |    | -[AAAbsintheSigner signatureForData:0x281d70f90 completion:0x16fe7e370]
 99470 ms     |    |    | -[AAAbsintheSigner _contextWithCompletion:0x16fe7e2b0]
 99470 ms     |    |    |    | -[AAAbsintheSigner context]
 99470 ms     |    |    |    |    | -[AAAbsintheSigner _contextLock_contextInvalidatingIfNecessary]
 99470 ms     |    | -[AAURLConfiguration baaInterval]
           /* TID 0x10a03 */
 99470 ms  -[AAAbsintheSigner _contextQueue_contextWithCompletion:0x281d71410]
 99471 ms     | -[AAAbsintheSigner context]
 99471 ms     |    | -[AAAbsintheSigner _contextLock_contextInvalidatingIfNecessary]
 99471 ms     | -[AAAbsintheSigner _fetchCertificateDataWithCompletion:0x1703f6808]
 99471 ms     |    | -[AAURLSession dataTaskWithURL:0x28318bcf0 completion:0x1703f67a8]
 99471 ms     |    |    | -[AAURLSession dataTaskWithRequest:0x28100b070 completion:0x1703f67a8]
 99471 ms     |    |    |    | -[AAURLSession _enqueueRequest:0x28100b070 completion:0x1703f67a8]
 99471 ms     |    |    |    |    | -[AKAppleIDSession initWithIdentifier:0x281cc6fa0]
 99471 ms     |    |    |    |    | -[AAURLSessionContext _initRequiringSigning:0x0 appleIDSession:0x2807ddd80]
           /* TID 0xc533 */
 99471 ms  -[AAURLSession _sessionQueue_enqueueTask:0x1006ee7e0 completion:0x281d62ac0]
           /* TID 0x10a03 */
 99471 ms  +[AAURLProtocol canInitWithRequest:0x281008040]
 99471 ms  +[AAURLProtocol canonicalRequestForRequest:0x281008040]
           /* TID 0x873f */
 99472 ms  -[AAURLProtocol initWithRequest:0x281008010 cachedResponse:0x0 client:0x281d70960]
 99472 ms  -[AAURLProtocol startLoading]
 99472 ms     | +[AARemoteServer sharedServer]
 99472 ms     | -[AARemoteServer _configurationAndResponseWithCompletion:0x17050da48]
 99472 ms     |    | -[AARemoteServer _configurationCacheInvalidatingIfNecessary]
 99472 ms     |    |    | -[AARemoteServer _configurationLock_configurationCacheInvalidatingIfNecessary]
 99472 ms     |    |    |    | -[AARemoteServerConfigurationCache creationDate]
 99472 ms     |    | -[AARemoteServerConfigurationCache configuration]
 99472 ms     |    | -[AARemoteServerConfigurationCache response]
 99472 ms     |    | -[AAURLConfiguration urlForEndpoint:0x2816bb260]
 99472 ms  -[AAURLProtocol stopLoading]
           /* TID 0x10a03 */
 99481 ms  -[AAURLSessionContext URLSession:0x10401f340 task:0x1006ee7e0 getAppleIDHeadersForResponse:0x0 completionHandler:0x1703f6650]
 99481 ms     | -[AKAppleIDSession URLSession:0x10401f340 task:0x120360620 getAppleIDHeadersForResponse:0x0 completionHandler:0x1703f65c0]
 99481 ms     |    | -[AKAppleIDSession _generateAppleIDHeadersForSessionTask:0x120360620 withCompletion:0x1703f6538]
 99481 ms     |    |    | -[AKAppleIDSession _nativeAnisetteController]
 99481 ms     |    |    |    | -[AKAnisetteProvisioningController init]
 99481 ms     |    |    | -[AKAnisetteProvisioningController anisetteDataForURLRequest:0x28100c0d0 completion:0x1703f6428]
 99481 ms     |    |    |    | -[AKAnisetteProvisioningController fetchAnisetteDataAndProvisionIfNecessary:0x1 withCompletion:0x1703f6428]
 99481 ms     |    |    |    |    | -[AKAnisetteProvisioningController _anisetteServiceConnection]
 99481 ms     |    |    |    |    |    | +[AKAnisetteProvisioningDaemonInterface XPCInterface]
 99481 ms     |    |    |    |    |    | +[AKAnisetteProvisioningClientInterface XPCInterface]
           /* TID 0x6f1f */
 99500 ms  +[AKAnisetteData supportsSecureCoding]
 99500 ms  -[AKAppleIDSession _genericAppleIDHeadersDictionaryForRequest:0x28100c0d0]
 99502 ms     | +[AKDevice currentDevice]
 99502 ms     |    | -[AKDevice init]
 99502 ms     |    |    | -[AKDevice _setShouldUpdateToValue:0x0]
 99502 ms     |    | -[AKDevice description]
 99502 ms     |    | -[AKDevice setLinkType:0x1]
 99502 ms     |    | -[AKDevice _setShouldUpdateToValue:0x1]
 99503 ms     | -[AKDevice locale]
 99503 ms  -[AKAnisetteData machineID]
 99503 ms  -[AKAnisetteData oneTimePassword]
 99503 ms  -[AKAnisetteData routingInfo]
 99503 ms  +[AKDevice currentDevice]
 99503 ms  -[AKDevice localUserUUID]
 99503 ms  +[AKConfiguration sharedConfiguration]
 99503 ms     | -[AKConfiguration init]
 99504 ms  -[AKConfiguration shouldAllowTestApplication]
 99504 ms     | -[AKConfiguration configurationValueForKey:0x1e8b17ff8]
 99504 ms  -[AKAppleIDSession _pairedDeviceAnisetteController]
 99504 ms  -[AAURLSessionContext _additionalHeadersForRequest:0x28100c260 completion:0x16fdf2270]
 99504 ms     | +[AADeviceInfo currentInfo]
           /* TID 0x1517 */
 99504 ms  +[NSError _web_errorWithDomain:0x1f61f0440 code:0xfffffffffffffc19 URL:0x283ceb000]
 99504 ms     | -[NSError _web_initWithDomain_nowarn:0x1f61f0440 code:0xfffffffffffffc19 URL:0x283ceb000]
 99508 ms     |    | -[NSError initWithDomain:0x1f61f0440 code:0xfffffffffffffc19 userInfo:0x2816bbb20]
 99508 ms  -[NSError userInfo]
 99508 ms  -[NSError domain]
 99508 ms  -[NSError code]
 99508 ms  -[NSError domain]
 99508 ms  -[NSError code]
 99508 ms  -[NSError userInfo]
 99508 ms  -[NSError userInfo]
 99508 ms  -[NSError domain]
 99508 ms  -[NSError code]
 99508 ms  +[NSError errorWithDomain:0x1f61f0440 code:0xfffffffffffffc19 userInfo:0x2816bffa0]
 99508 ms     | -[NSError initWithDomain:0x1f61f0440 code:0xfffffffffffffc19 userInfo:0x2816bffa0]
 99508 ms  -[NSError code]
 99508 ms  -[NSError code]
 99508 ms  -[NSError description]
 99508 ms     | -[NSError userInfo]
 99508 ms     | -[NSError domain]
 99508 ms     | -[NSError userInfo]
 99508 ms     | -[NSError domain]
 99508 ms     | -[NSError userInfo]
 99508 ms     | -[NSError userInfo]
 99508 ms     | -[NSError domain]
 99508 ms     | -[NSError code]
           /* TID 0x6f1f */
 99511 ms     | +[AADeviceInfo clientInfoHeader]
 99511 ms     |    | -[AADeviceInfo productType]
 99511 ms     |    | -[AADeviceInfo osName]
 99511 ms     |    | +[AADeviceInfo osVersion]
 99511 ms     |    | -[AADeviceInfo buildVersion]
 99513 ms     | +[AAPreferences isExperimentalModeEnabled]
 99513 ms     |    | +[AADeviceInfo isInternalBuild]
 99513 ms     | -[AAURLSessionContext requiresSigning]
           /* TID 0x103 */
 99780 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
 99780 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
 99780 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
 99780 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
 99794 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
 99794 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
 99797 ms  -[AAUISignInViewController _keyboardWillShow:0x28169c800]
 99797 ms     | -[AAUISignInViewController _updateContentInsetWithHeight:0x1f095f050]
 99797 ms  -[AAUISignInViewController _keyboardWillShow:0x28169c800]
 99797 ms     | -[AAUISignInViewController _updateContentInsetWithHeight:0x1f095f050]
100321 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
100321 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
           /* TID 0x10a03 */
100579 ms  -[AAURLSession URLSession:0x10401f340 dataTask:0x1006ee7e0 didReceiveData:0x280701280]
100580 ms     | -[AAURLSession _sessionQueue_updateTask:0x1006ee7e0 withData:0x280701280]
100581 ms  -[AAURLSession URLSession:0x10401f340 task:0x1006ee7e0 didCompleteWithError:0x0]
100581 ms     | -[AAURLSession _sessionQueue_dequeueTask:0x1006ee7e0 withResponse:0x28165acc0 error:0x0]
100581 ms     |    | +[AAAbsintheSigner _contextCreationBlock]
100581 ms     |    | -[AAAbsintheContext init]
100582 ms     |    | -[AAAbsintheContext TgBfoO2wtF5L:0x101068e00 error:0x1703f6518]
100651 ms     |    | -[AAAbsintheSigner _fetchSessionInfoWithRequestInfo:0x28169c3e0 completion:0x1703f64e8]
100652 ms     |    |    | -[AAURLSession bodyTaskWithRequest:0x28100c480 completion:0x1703f6468]
100652 ms     |    |    |    | -[AAURLSession dataTaskWithRequest:0x28100c480 completion:0x1703f63f8]
100652 ms     |    |    |    |    | -[AAURLSession _enqueueRequest:0x28100c480 completion:0x1703f63f8]
100652 ms     |    |    |    |    |    | -[AKAppleIDSession initWithIdentifier:0x281cc6fa0]
100652 ms     |    |    |    |    |    | -[AAURLSessionContext _initRequiringSigning:0x0 appleIDSession:0x2807d7340]
100652 ms  -[AAURLSession _sessionQueue_enqueueTask:0x1203690e0 completion:0x281d751d0]
           /* TID 0x6f1f */
100652 ms  +[AAURLProtocol canInitWithRequest:0x281008710]
100652 ms  +[AAURLProtocol canonicalRequestForRequest:0x281008710]
           /* TID 0x873f */
100652 ms  -[AAURLProtocol initWithRequest:0x281009ad0 cachedResponse:0x0 client:0x281d060d0]
100652 ms  -[AAURLProtocol startLoading]
100652 ms     | +[AARemoteServer sharedServer]
100652 ms     | -[AARemoteServer _configurationAndResponseWithCompletion:0x17050da48]
100652 ms     |    | -[AARemoteServer _configurationCacheInvalidatingIfNecessary]
100652 ms     |    |    | -[AARemoteServer _configurationLock_configurationCacheInvalidatingIfNecessary]
100652 ms     |    |    |    | -[AARemoteServerConfigurationCache creationDate]
100652 ms     |    | -[AARemoteServerConfigurationCache configuration]
100652 ms     |    | -[AARemoteServerConfigurationCache response]
100652 ms     |    | -[AAURLConfiguration urlForEndpoint:0x281690140]
100652 ms  -[AAURLProtocol stopLoading]
           /* TID 0x1517 */
100653 ms  -[AAURLSessionContext URLSession:0x10401f340 task:0x1203690e0 getAppleIDHeadersForResponse:0x0 completionHandler:0x170482650]
100653 ms     | -[AKAppleIDSession URLSession:0x10401f340 task:0x129628bd0 getAppleIDHeadersForResponse:0x0 completionHandler:0x1704825c0]
100653 ms     |    | -[AKAppleIDSession _generateAppleIDHeadersForSessionTask:0x129628bd0 withCompletion:0x170482538]
100653 ms     |    |    | -[AKAppleIDSession _nativeAnisetteController]
100653 ms     |    |    |    | -[AKAnisetteProvisioningController init]
100653 ms     |    |    | -[AKAnisetteProvisioningController anisetteDataForURLRequest:0x281008810 completion:0x170482428]
100653 ms     |    |    |    | -[AKAnisetteProvisioningController fetchAnisetteDataAndProvisionIfNecessary:0x1 withCompletion:0x170482428]
100653 ms     |    |    |    |    | -[AKAnisetteProvisioningController _anisetteServiceConnection]
100653 ms     |    |    |    |    |    | +[AKAnisetteProvisioningDaemonInterface XPCInterface]
100653 ms     |    |    |    |    |    | +[AKAnisetteProvisioningClientInterface XPCInterface]
           /* TID 0x6f1f */
100657 ms  +[AKAnisetteData supportsSecureCoding]
100657 ms  -[AKAppleIDSession _genericAppleIDHeadersDictionaryForRequest:0x281008810]
100657 ms     | +[AKDevice currentDevice]
100657 ms     | -[AKDevice locale]
100657 ms  -[AKAnisetteData machineID]
100657 ms  -[AKAnisetteData oneTimePassword]
100657 ms  -[AKAnisetteData routingInfo]
100657 ms  +[AKDevice currentDevice]
100657 ms  -[AKDevice localUserUUID]
100657 ms  +[AKConfiguration sharedConfiguration]
100657 ms  -[AKConfiguration shouldAllowTestApplication]
100657 ms     | -[AKConfiguration configurationValueForKey:0x1e8b17ff8]
100657 ms  -[AKAppleIDSession _pairedDeviceAnisetteController]
100657 ms  -[AAURLSessionContext _additionalHeadersForRequest:0x281008640 completion:0x16fdf2270]
100657 ms     | -[AAURLSessionContext requiresSigning]
           /* TID 0x1517 */
100657 ms  +[NSError _web_errorWithDomain:0x1f61f0440 code:0xfffffffffffffc19 URL:0x28398c0e0]
100657 ms     | -[NSError _web_initWithDomain_nowarn:0x1f61f0440 code:0xfffffffffffffc19 URL:0x28398c0e0]
100657 ms     |    | -[NSError initWithDomain:0x1f61f0440 code:0xfffffffffffffc19 userInfo:0x28169c340]
100657 ms  -[NSError userInfo]
100658 ms  -[NSError domain]
100658 ms  -[NSError code]
100658 ms  -[NSError domain]
100658 ms  -[NSError code]
100658 ms  -[NSError userInfo]
100658 ms  -[NSError userInfo]
100658 ms  -[NSError domain]
100658 ms  -[NSError code]
100658 ms  +[NSError errorWithDomain:0x1f61f0440 code:0xfffffffffffffc19 userInfo:0x28169c7a0]
100658 ms     | -[NSError initWithDomain:0x1f61f0440 code:0xfffffffffffffc19 userInfo:0x28169c7a0]
100658 ms  -[NSError code]
100658 ms  -[NSError code]
100658 ms  -[NSError description]
100658 ms     | -[NSError userInfo]
100658 ms     | -[NSError domain]
100658 ms     | -[NSError userInfo]
100658 ms     | -[NSError domain]
100658 ms     | -[NSError userInfo]
100658 ms     | -[NSError userInfo]
100658 ms     | -[NSError domain]
100658 ms     | -[NSError code]
           /* TID 0x103 */
100683 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
100683 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
100684 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
100684 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
           /* TID 0x1517 */
100849 ms  -[AAURLSession URLSession:0x10401f340 dataTask:0x1203690e0 didReceiveData:0x28073adc0]
100849 ms     | -[AAURLSession _sessionQueue_updateTask:0x1203690e0 withData:0x28073adc0]
           /* TID 0x6f1f */
100850 ms  -[AAURLSession URLSession:0x10401f340 task:0x1203690e0 didCompleteWithError:0x0]
100850 ms     | -[AAURLSession _sessionQueue_dequeueTask:0x1203690e0 withResponse:0x281658520 error:0x0]
100850 ms     |    | -[AAAbsintheContext R6XtwiyjL3q2:0x2816470e0 error:0x16fdf24c8]
100856 ms     |    | -[AAAbsintheSigner setContext:0x281025c00]
100856 ms     |    |    | +[AAAbsintheSignerContextCache cacheWithContext:0x281025c00]
100856 ms     |    |    |    | -[AAAbsintheSignerContextCache initWithContext:0x281025c00]
100856 ms     |    |    | -[AAAbsintheSigner _contextLock_enqueueContextCleanup]
100856 ms     |    |    |    | -[AAAbsintheSigner cacheTimeout]
100857 ms     |    | -[AAAbsintheContext cao1NI5PNJBn:0x281d70f90 error:0x16fdf23f8]
           /* TID 0x103 */
101013 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
101013 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
101015 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
101015 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
101609 ms  -[AAUISignInViewController textField:0x10186c200 shouldChangeCharactersInRange:0x0 replacementString:0x0]
101617 ms  -[AAUISignInViewController _textFieldDidChange:0x2816be1e0]
101617 ms     | -[AAUISignInViewController _hasValidCredentials]
102121 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
102122 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
102124 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
102124 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
102577 ms  -[AAUISignInViewController textField:0x10186c200 shouldChangeCharactersInRange:0x1 replacementString:0x0]
102588 ms  -[AAUISignInViewController _textFieldDidChange:0x28164f8e0]
102588 ms     | -[AAUISignInViewController _hasValidCredentials]
102924 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
102924 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
102926 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
102926 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
103292 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
103293 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
103294 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
103294 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
103991 ms  -[AAUISignInViewController textField:0x10186c200 shouldChangeCharactersInRange:0x2 replacementString:0x0]
104004 ms  -[AAUISignInViewController _textFieldDidChange:0x2816b0640]
104004 ms     | -[AAUISignInViewController _hasValidCredentials]
104028 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
104028 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
104030 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
104030 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
104474 ms  -[AAUISignInViewController textField:0x10186c200 shouldChangeCharactersInRange:0x3 replacementString:0x0]
104488 ms  -[AAUISignInViewController _textFieldDidChange:0x2812fe3e0]
104488 ms     | -[AAUISignInViewController _hasValidCredentials]
104974 ms  -[AAUISignInViewController textField:0x10186c200 shouldChangeCharactersInRange:0x4 replacementString:0x0]
104988 ms  -[AAUISignInViewController _textFieldDidChange:0x28125e020]
104988 ms     | -[AAUISignInViewController _hasValidCredentials]
105393 ms  -[AAUISignInViewController textField:0x10186c200 shouldChangeCharactersInRange:0x5 replacementString:0x0]
105406 ms  -[AAUISignInViewController _textFieldDidChange:0x2812638e0]
105406 ms     | -[AAUISignInViewController _hasValidCredentials]
105674 ms  -[AAUISignInViewController textField:0x10186c200 shouldChangeCharactersInRange:0x6 replacementString:0x0]
105686 ms  -[AAUISignInViewController _textFieldDidChange:0x28165aa40]
105686 ms     | -[AAUISignInViewController _hasValidCredentials]
105907 ms  -[AAUISignInViewController textField:0x10186c200 shouldChangeCharactersInRange:0x7 replacementString:0x0]
105920 ms  -[AAUISignInViewController _textFieldDidChange:0x28125eb60]
105920 ms     | -[AAUISignInViewController _hasValidCredentials]
106173 ms  -[AAUISignInViewController textField:0x10186c200 shouldChangeCharactersInRange:0x8 replacementString:0x0]
106186 ms  -[AAUISignInViewController _textFieldDidChange:0x2812631c0]
106186 ms     | -[AAUISignInViewController _hasValidCredentials]
106490 ms  -[AAUISignInViewController textField:0x10186c200 shouldChangeCharactersInRange:0x9 replacementString:0x0]
106504 ms  -[AAUISignInViewController _textFieldDidChange:0x28125e300]
106505 ms     | -[AAUISignInViewController _hasValidCredentials]
106858 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
106858 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
106860 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
106860 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
107456 ms  -[AAUISignInViewController textField:0x10186c200 shouldChangeCharactersInRange:0xa replacementString:0x0]
107470 ms  -[AAUISignInViewController _textFieldDidChange:0x2816b2fa0]
107470 ms     | -[AAUISignInViewController _hasValidCredentials]
107773 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
107773 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
107775 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
107775 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
108325 ms  -[AAUISignInViewController textField:0x10186c200 shouldChangeCharactersInRange:0xb replacementString:0x0]
108339 ms  -[AAUISignInViewController _textFieldDidChange:0x2816a8640]
108339 ms     | -[AAUISignInViewController _hasValidCredentials]
109055 ms  -[AAUISignInViewController _nextButtonSelected:0x10067b1a0]
109055 ms     | -[AAUISignInViewController _attemptAuthentication]
109055 ms     |    | -[AAUISignInViewController _setEnabled:0x0]
109078 ms     |    |    | -[AAUISignInViewController _keyboardWillShow:0x2816a8240]
109078 ms     |    |    |    | -[AAUISignInViewController _updateContentInsetWithHeight:0x1f095f050]
109079 ms     |    |    | -[AAUISignInViewController _keyboardWillHide:0x28169c3e0]
109079 ms     |    |    |    | -[AAUISignInViewController _updateContentInsetWithHeight:0x1f095f050]
109081 ms     |    |    | -[AAUISignInViewController _setUsernameCellWaiting:0x1]
109081 ms     |    |    |    | -[AAUISignInViewController _showOnlyPassword]
109081 ms     | -[AAUISignInViewController _prewarmSignInFlowIfApplicable]
109081 ms     |    | -[AAUISignInViewController showServiceIcons]
109081 ms     |    | -[AASignInFlowController init]
109081 ms     |    |    | -[ACAccountStore init]
109081 ms     |    |    |    | -[ACAccountStore initWithRemoteEndpoint:0x0 effectiveBundleID:0x0]
109081 ms     |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
109081 ms     |    |    |    |    |    | -[ACTimedExpirer init]
109081 ms     |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
109081 ms     |    |    |    |    |    | -[ACTimedExpirer init]
109081 ms     |    |    |    |    | +[ACNotificationRebroadcaster sharedRebroadcaster]
109081 ms     |    | -[AASignInFlowController prewarmOperationsWithCompletion:0x0]
109081 ms     |    |    | +[AARemoteServer sharedServer]
109081 ms     |    |    | -[AARemoteServer configurationWithCompletion:0x16fd690b8]
109081 ms     |    |    |    | -[AARemoteServer _configurationAndResponseWithCompletion:0x16fd69058]
109081 ms     |    |    |    |    | -[AARemoteServer _configurationCacheInvalidatingIfNecessary]
109081 ms     |    |    |    |    |    | -[AARemoteServer _configurationLock_configurationCacheInvalidatingIfNecessary]
109081 ms     |    |    |    |    |    |    | -[AARemoteServerConfigurationCache creationDate]
109081 ms     |    |    |    |    | -[AARemoteServerConfigurationCache configuration]
109081 ms     |    |    |    |    | -[AARemoteServerConfigurationCache response]
109081 ms     |    |    |    |    | -[AAURLConfiguration absintheEnable]
109081 ms     |    |    |    |    | +[AAAbsintheSigner sharedSigner]
109081 ms     |    |    |    |    | -[AAAbsintheSigner signatureForData:0x281d763d0 completion:0x16fd68e80]
109081 ms     |    |    |    |    |    | -[AAAbsintheSigner _contextWithCompletion:0x16fd68dc0]
109081 ms     |    |    |    |    |    |    | -[AAAbsintheSigner context]
109081 ms     |    |    |    |    |    |    |    | -[AAAbsintheSigner _contextLock_contextInvalidatingIfNecessary]
109081 ms     |    |    |    |    |    |    |    |    | -[AAAbsintheSignerContextCache creationDate]
109082 ms     |    |    |    |    |    |    |    |    | -[AAAbsintheSignerContextCache context]
109082 ms     |    |    |    |    |    |    | -[AAAbsintheContext cao1NI5PNJBn:0x281d763d0 error:0x16fd68d08]
109085 ms     |    |    |    |    | -[AAURLConfiguration baaInterval]
109085 ms  -[ACTimedExpirer _cancelTimer]
109085 ms     | -[ACTimedExpirer _unsafeCancelTimer]
109085 ms  -[ACTimedExpirer _cancelTimer]
109085 ms     | -[ACTimedExpirer _unsafeCancelTimer]
109602 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
109602 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
           /* TID 0x6f1f */
110997 ms  -[AKAppleIDAuthenticationContextManager shouldContinueWithAuthenticationResults:0x2816b3020 error:0x0 forContextID:0x2816b3500 completion:0x283925d50]
110998 ms     | -[AKAppleIDAuthenticationContextManager delegate]
           /* TID 0x103 */
111116 ms  -[ACNotificationRebroadcaster _accountStoreDidChange:0x281d75080]
111117 ms  -[ACAccountStore visibleTopLevelAccountsWithAccountTypeIdentifiers:0x283c26300 completion:0x16fd69d98]
111117 ms     | -[ACAccountStore remoteAccountStoreSession]
111117 ms     |    | -[ACAccountStore connectionDelegate]
111117 ms     |    | -[ACRemoteAccountStoreSession initWithListenerEndpoint:0x0 delegate:0x0]
111117 ms     |    |    | -[ACAccountStoreClientSideListener initWithDelegate:0x0]
111117 ms     |    | -[ACAccountStore effectiveBundleID]
111117 ms     |    | -[ACRemoteAccountStoreSession setEffectiveBundleID:0x0]
111117 ms     |    | -[ACTimedExpirer scheduleExpiration:0x16fd69b90]
111117 ms     |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111117 ms     | -[ACRemoteAccountStoreSession remoteObjectProxyWithErrorHandler:0x16fd69b70]
111117 ms     |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0x6f1f */
111117 ms  -[ACAccountStore dmc_visibleRemoteManagementAccounts]
           /* TID 0x103 */
111117 ms     |    |    | -[ACTrackedXPCConnection init]
111117 ms     |    |    | +[ACRemoteAccountStoreInterface XPCInterface]
111118 ms     |    |    | -[ACRemoteAccountStoreSession _locked_configureRemoteAccountStoreWithConnection:0x282340820]
111119 ms  -[AMSAccountsChangedObservable _accountStoreDidChange:0x281659980]
111119 ms     | +[AMSLogConfig sharedAccountsConfig]
111119 ms     | -[AMSLogConfig OSLogObject]
111119 ms     |    | -[AMSLogConfig propertyAccessQueue]
111119 ms     |    | -[AMSLogConfig backingOSLogObject]
           /* TID 0x6f1f */
111119 ms     | -[ACAccountStore dmc_RemoteManagementAccounts]
111119 ms     |    | -[ACAccountStore dmc_RemoteManagementAccountType]
111119 ms     |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58]
111119 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58 error:0x0]
111119 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111120 ms     |    |    |    |    |    | -[ACAccountStore connectionDelegate]
111120 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession initWithListenerEndpoint:0x0 delegate:0x0]
111120 ms     |    |    |    |    |    |    | -[ACAccountStoreClientSideListener initWithDelegate:0x0]
111120 ms     |    |    |    |    |    | -[ACAccountStore effectiveBundleID]
111120 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession setEffectiveBundleID:0x0]
           /* TID 0xc533 */
111120 ms  -[AACloudServiceOwner accountForService:0x1ecb2df10]
111120 ms     | +[AACloudServiceOwner _serviceTypeForPlatform]
111120 ms     | -[ACAccountStore aa_primaryAppleAccount]
111120 ms     |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x28100d400 preloadedProperties:0x0 error:0x0]
111120 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
           /* TID 0x6f1f */
111121 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fdf24c0]
111121 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111121 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fdf24a0]
111121 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
111121 ms     |    |    |    |    |    |    | -[ACTrackedXPCConnection init]
           /* TID 0xc533 */
111121 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e410]
111121 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111121 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e3f0]
111121 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0x6f1f */
111121 ms     |    |    |    |    |    |    | +[ACRemoteAccountStoreInterface XPCInterface]
111121 ms     |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _locked_configureRemoteAccountStoreWithConnection:0x282342080]
           /* TID 0xc533 */
111139 ms  +[ACAccountStore ams_sharedAccountStoreForMediaType:0x1e77eaeb0]
111139 ms     | +[AMSUnitTests isRunningUnitTests]
           /* TID 0x6f1f */
111146 ms     |    |    |    |    | +[ACAccountType supportsSecureCoding]
           /* TID 0xc533 */
111147 ms     | +[ACAccountStore defaultStore]
           /* TID 0x6f1f */
111147 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111147 ms     |    |    |    |    | -[ACAccountType description]
111147 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111147 ms     |    |    |    |    |    | -[ACAccountType identifier]
           /* TID 0xc533 */
111148 ms  -[ACAccountStore ams_activeiTunesAccount]
111148 ms     | -[ACAccountStore ams_mediaType]
111148 ms     |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
111148 ms     |    |    | +[AMSAccountStoreCache cacheAccessQueue]
111148 ms     |    |    | +[AMSAccountStoreCache cache]
111148 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
           /* TID 0x6f1f */
111148 ms     |    | -[ACAccountStore accountsWithAccountType:0x2839f4620]
111148 ms     |    |    | -[ACAccountType description]
111148 ms     |    |    |    | -[ACAccountType accountTypeDescription]
111148 ms     |    |    |    | -[ACAccountType identifier]
111148 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
111148 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fdf2470]
111148 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111148 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fdf2450]
111148 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xc533 */
111148 ms     |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
           /* TID 0x6f1f */
111148 ms     |    |    | -[ACAccountType encodeWithCoder:0x101a88e00]
111148 ms     |    |    |    | -[ACAccountType identifier]
           /* TID 0xc533 */
111148 ms     |    |    |    | +[AMSUnitTests isRunningUnitTests]
111148 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
           /* TID 0x6f1f */
111148 ms     |    |    |    | -[ACAccountType accountTypeDescription]
111148 ms     |    |    |    | -[ACAccountType objectID]
111149 ms     |    |    |    | -[ACAccountType visibility]
111149 ms     |    |    |    | -[ACAccountType credentialProtectionPolicy]
111149 ms     |    |    |    | -[ACAccountType supportsAuthentication]
111149 ms     |    |    |    | -[ACAccountType supportsMultipleAccounts]
111149 ms     |    |    |    | -[ACAccountType owningBundleID]
111149 ms     |    |    |    | -[ACAccountType isObsolete]
           /* TID 0xc533 */
111149 ms     | -[ACAccountStore ams_iTunesAccounts]
111149 ms     |    | -[ACAccountStore ams_mediaType]
111149 ms     |    |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
111149 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
111149 ms     |    |    |    | +[AMSAccountStoreCache cache]
111149 ms     |    |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
111149 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
111149 ms     |    |    |    |    | +[AMSUnitTests isRunningUnitTests]
111149 ms     |    |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
111149 ms     |    | +[ACAccountStore ams_accountTypeIdentifierForMediaType:0x1e77eaeb0]
111149 ms     |    | -[ACAccountStore _ams_accountsWithAccountTypeIdentifier:0x1e7418878 options:0x1 error:0x16fe7e5c8]
111149 ms     |    |    | -[ACAccountStore _ams_accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x16fe7e5c8]
111149 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x16fe7e4e8]
111149 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111149 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e280]
111149 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111149 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e260]
111149 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
111152 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111152 ms     |    |    |    |    | -[ACAccountType description]
111152 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111152 ms     |    |    |    |    |    | -[ACAccountType identifier]
111152 ms     |    |    | -[ACAccountStore _ams_accountsWithAccountType:0x2839f4540 options:0x1 error:0x16fe7e5c8]
111152 ms     |    |    |    | -[ACAccountStore accountsWithAccountType:0x2839f4540 options:0x1 error:0x16fe7e548]
111152 ms     |    |    |    |    | -[ACAccountType description]
111152 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111152 ms     |    |    |    |    |    | -[ACAccountType identifier]
111152 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111152 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e210]
111152 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111152 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e1f0]
111152 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
111153 ms     |    |    |    |    | -[ACAccountType encodeWithCoder:0x101a88e00]
111153 ms     |    |    |    |    |    | -[ACAccountType identifier]
111153 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111153 ms     |    |    |    |    |    | -[ACAccountType objectID]
111153 ms     |    |    |    |    |    | -[ACAccountType visibility]
111153 ms     |    |    |    |    |    | -[ACAccountType credentialProtectionPolicy]
111153 ms     |    |    |    |    |    | -[ACAccountType supportsAuthentication]
111153 ms     |    |    |    |    |    | -[ACAccountType supportsMultipleAccounts]
111153 ms     |    |    |    |    |    | -[ACAccountType owningBundleID]
111153 ms     |    |    |    |    |    | -[ACAccountType isObsolete]
111163 ms     |    |    |    |    | +[ACAccount supportsSecureCoding]
111163 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
111163 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111163 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
111163 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111163 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
111163 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111164 ms     |    |    |    |    | -[ACAccount description]
111164 ms     |    |    |    |    |    | -[ACAccount username]
111164 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111164 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111164 ms     |    |    |    |    |    | -[ACAccount identifier]
111164 ms     |    |    |    |    | -[ACAccount description]
111164 ms     |    |    |    |    |    | -[ACAccount username]
111164 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111164 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111164 ms     |    |    |    |    |    | -[ACAccount identifier]
111164 ms     |    |    |    |    | -[ACAccount description]
111164 ms     |    |    |    |    |    | -[ACAccount username]
111164 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111164 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111164 ms     |    |    |    |    |    | -[ACAccount identifier]
111164 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
111164 ms     |    | -[ACAccount isActive]
111164 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
111164 ms     |    | -[ACAccount isActive]
111164 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
111164 ms     |    | -[ACAccount isActive]
111186 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807dbf00]
           /* TID 0x103 */
111186 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28165a440]
111186 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807dbf00]
111199 ms  -[ACNotificationRebroadcaster _accountStoreDidChange:0x281d26580]
111199 ms  -[ACAccountStore visibleTopLevelAccountsWithAccountTypeIdentifiers:0x283cd6000 completion:0x16fd69d98]
111199 ms     | -[ACAccountStore remoteAccountStoreSession]
111199 ms     |    | -[ACTimedExpirer scheduleExpiration:0x16fd69b90]
111199 ms     |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111199 ms     | -[ACRemoteAccountStoreSession remoteObjectProxyWithErrorHandler:0x16fd69b70]
111199 ms     |    | -[ACRemoteAccountStoreSession _connection]
111199 ms  -[AMSAccountsChangedObservable _accountStoreDidChange:0x28165a440]
111199 ms     | +[AMSLogConfig sharedAccountsConfig]
111199 ms     | -[AMSLogConfig OSLogObject]
111199 ms     |    | -[AMSLogConfig propertyAccessQueue]
111199 ms     |    | -[AMSLogConfig backingOSLogObject]
           /* TID 0x11c23 */
111201 ms  -[ACAccountStore dmc_visibleRemoteManagementAccounts]
111201 ms     | -[ACAccountStore dmc_RemoteManagementAccounts]
111201 ms     |    | -[ACAccountStore dmc_RemoteManagementAccountType]
111201 ms     |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58]
111201 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58 error:0x0]
111201 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111201 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1703f64c0]
111201 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0xc533 */
111201 ms  -[AACloudServiceOwner accountForService:0x1ecb2df10]
111201 ms     | +[AACloudServiceOwner _serviceTypeForPlatform]
111201 ms     | -[ACAccountStore aa_primaryAppleAccount]
111201 ms     |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x28100d400 preloadedProperties:0x0 error:0x0]
111201 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
111201 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e410]
111201 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111201 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e3f0]
111201 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0x11c23 */
111201 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1703f64a0]
111201 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xc533 */
111202 ms  +[ACAccountStore ams_sharedAccountStoreForMediaType:0x1e77eaeb0]
111202 ms     | +[AMSUnitTests isRunningUnitTests]
111202 ms     | +[ACAccountStore defaultStore]
111202 ms  -[ACAccountStore ams_activeiTunesAccount]
111202 ms     | -[ACAccountStore ams_mediaType]
111202 ms     |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
111202 ms     |    |    | +[AMSAccountStoreCache cacheAccessQueue]
111202 ms     |    |    | +[AMSAccountStoreCache cache]
111202 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
111202 ms     |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
111202 ms     |    |    |    | +[AMSUnitTests isRunningUnitTests]
111202 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
111202 ms     | -[ACAccountStore ams_iTunesAccounts]
111203 ms     |    | -[ACAccountStore ams_mediaType]
111203 ms     |    |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
111203 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
111203 ms     |    |    |    | +[AMSAccountStoreCache cache]
111203 ms     |    |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
111203 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
111203 ms     |    |    |    |    | +[AMSUnitTests isRunningUnitTests]
111203 ms     |    |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
111203 ms     |    | +[ACAccountStore ams_accountTypeIdentifierForMediaType:0x1e77eaeb0]
111203 ms     |    | -[ACAccountStore _ams_accountsWithAccountTypeIdentifier:0x1e7418878 options:0x1 error:0x16fe7e5c8]
111203 ms     |    |    | -[ACAccountStore _ams_accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x16fe7e5c8]
111203 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x16fe7e4e8]
111203 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111203 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e280]
111203 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111203 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e260]
111203 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0x11c23 */
111203 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111203 ms     |    |    |    |    | -[ACAccountType description]
111203 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111203 ms     |    |    |    |    |    | -[ACAccountType identifier]
           /* TID 0xc533 */
111203 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111203 ms     |    |    |    |    | -[ACAccountType description]
111203 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111203 ms     |    |    |    |    |    | -[ACAccountType identifier]
111203 ms     |    |    | -[ACAccountStore _ams_accountsWithAccountType:0x283996e60 options:0x1 error:0x16fe7e5c8]
111203 ms     |    |    |    | -[ACAccountStore accountsWithAccountType:0x283996e60 options:0x1 error:0x16fe7e548]
111203 ms     |    |    |    |    | -[ACAccountType description]
111203 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111203 ms     |    |    |    |    |    | -[ACAccountType identifier]
111203 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111203 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e210]
111203 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0x11c23 */
111203 ms     |    | -[ACAccountStore accountsWithAccountType:0x283928310]
111203 ms     |    |    | -[ACAccountType description]
111203 ms     |    |    |    | -[ACAccountType accountTypeDescription]
111203 ms     |    |    |    | -[ACAccountType identifier]
111203 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
           /* TID 0xc533 */
111203 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e1f0]
111203 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0x11c23 */
111203 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1703f6470]
111203 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0xc533 */
111203 ms     |    |    |    |    | -[ACAccountType encodeWithCoder:0x10225c800]
111203 ms     |    |    |    |    |    | -[ACAccountType identifier]
111203 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111203 ms     |    |    |    |    |    | -[ACAccountType objectID]
111203 ms     |    |    |    |    |    | -[ACAccountType visibility]
111203 ms     |    |    |    |    |    | -[ACAccountType credentialProtectionPolicy]
111203 ms     |    |    |    |    |    | -[ACAccountType supportsAuthentication]
111203 ms     |    |    |    |    |    | -[ACAccountType supportsMultipleAccounts]
111203 ms     |    |    |    |    |    | -[ACAccountType owningBundleID]
111204 ms     |    |    |    |    |    | -[ACAccountType isObsolete]
           /* TID 0x11c23 */
111204 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1703f6450]
111204 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
111204 ms     |    |    | -[ACAccountType encodeWithCoder:0x101a88e00]
111204 ms     |    |    |    | -[ACAccountType identifier]
111204 ms     |    |    |    | -[ACAccountType accountTypeDescription]
111204 ms     |    |    |    | -[ACAccountType objectID]
111204 ms     |    |    |    | -[ACAccountType visibility]
111204 ms     |    |    |    | -[ACAccountType credentialProtectionPolicy]
111204 ms     |    |    |    | -[ACAccountType supportsAuthentication]
111204 ms     |    |    |    | -[ACAccountType supportsMultipleAccounts]
111204 ms     |    |    |    | -[ACAccountType owningBundleID]
111204 ms     |    |    |    | -[ACAccountType isObsolete]
           /* TID 0x1251f */
111205 ms  -[AKAppleIDAuthenticationContextManager dismissBasicLoginUIForContext:0x12036fed0 completion:0x2839f4620]
111205 ms     | -[AKAppleIDAuthenticationContextManager _clientSideContextForServerContext:0x12036fed0]
111205 ms     |    | -[AKAppleIDAuthenticationContext _identifier]
111205 ms     |    | -[AKAppleIDAuthenticationContext _identifier]
111205 ms     |    | -[AKAppleIDAuthenticationContext _updateWithValuesFromContext:0x12036fed0]
111205 ms     | -[AKAppleIDAuthenticationInAppContext dismissBasicLoginUIWithCompletion:0x2839f4620]
111205 ms     |    | -[AKAppleIDAuthenticationInAppContext inAppAuthUIProvider]
111205 ms     |    |    | -[AKInAppAuthenticationRemoteUIProvider initWithContext:0x10410b850]
111205 ms     |    |    |    | -[AKInAppAuthenticationRemoteUIDelegate initWithContext:0x10410b850]
111205 ms     |    | -[AKInAppAuthenticationRemoteUIProvider dismissBasicLoginUIWithCompletion:0x2839f4620]
           /* TID 0x103 */
111205 ms  -[AKInAppAuthenticationRemoteUIProvider cleanUpBasicLoginWithCompletion:0x16fd6a988]
111205 ms     | -[AKInAppAuthenticationRemoteUIProvider _shouldShowAsView]
           /* TID 0xf107 */
111206 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
111206 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
111206 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
           /* TID 0xc533 */
111206 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
111206 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111206 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
111206 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111206 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
111206 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111206 ms     |    |    |    |    | -[ACAccount description]
111206 ms     |    |    |    |    |    | -[ACAccount username]
111206 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111206 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111206 ms     |    |    |    |    |    | -[ACAccount identifier]
111206 ms     |    |    |    |    | -[ACAccount description]
111206 ms     |    |    |    |    |    | -[ACAccount username]
           /* TID 0xf107 */
111206 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
           /* TID 0xc533 */
111206 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
           /* TID 0xf107 */
111206 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
111206 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
           /* TID 0xc533 */
111206 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
           /* TID 0xf107 */
111207 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
111207 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
111207 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
111207 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
111207 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
111207 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
111207 ms  +[AKAppleIDAuthenticationController sensitiveAuthenticationKeys]
           /* TID 0xc533 */
111207 ms     |    |    |    |    |    | -[ACAccount identifier]
111207 ms     |    |    |    |    | -[ACAccount description]
111207 ms     |    |    |    |    |    | -[ACAccount username]
111207 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111207 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111207 ms     |    |    |    |    |    | -[ACAccount identifier]
111207 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
111207 ms     |    | -[ACAccount isActive]
111207 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
111207 ms     |    | -[ACAccount isActive]
111207 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
111207 ms     |    | -[ACAccount isActive]
           /* TID 0xf107 */
111207 ms  -[AKAppleIDAuthenticationContextManager unregisterContext:0x10410b850]
111207 ms     | -[AKAppleIDAuthenticationContext _identifier]
           /* TID 0x103 */
111207 ms  -[AAUISignInViewController _delegate_signInViewControllerDidCompleteWithAuthenticationResults:0x2816ab1e0]
111207 ms     | -[AAUISignInViewController delegate]
111207 ms     | -[AAUISignInController signInViewController:0x10400ce10 didCompleteWithAuthenticationResults:0x2816ab1e0]
111207 ms     |    | -[AAUISignInController _mainQueue_presentSpinnerViewControllerInParentViewController:0x103812200 withCompletion:0x16fd6a8d8]
111207 ms     |    |    | -[AAUISignInController _spinnerViewController]
111207 ms     |    |    |    | -[AAUISpinnerViewController initWithNibName:0x0 bundle:0x0]
111207 ms     |    |    |    |    | -[AAUISpinnerViewController _commonInit]
111208 ms     |    |    |    |    |    | -[AAUISpinnerViewController setSpinning:0x1]
111208 ms     |    |    |    | -[AAUISpinnerViewController label]
111208 ms     |    |    |    | -[AAUISignInController serviceType]
111208 ms     |    |    |    | -[AAUISignInController _spinnerMessageForService:0x0]
           /* TID 0x11c23 */
111208 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807e3e40]
           /* TID 0x1251f */
111210 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807dfb00]
           /* TID 0x103 */
111211 ms     |    |    | -[AAUISignInController _mainQueue_continueSignInWithAuthenticationResults:0x2816ab1e0 parentViewController:0x103812200]
111211 ms     |    |    |    | -[AAUISignInController serviceType]
111211 ms     |    |    |    | -[AAUISignInController serviceContextWithResults:0x2816ab1e0 parentViewController:0x103812200]
111211 ms     |    |    |    |    | -[AAUISignInController _shouldForceOperation]
111212 ms     |    |    |    |    | -[AAUISignInFlowControllerDelegate initWithPresentingViewController:0x103812200]
111212 ms     |    |    |    |    |    | -[ACAccountStore init]
111212 ms     |    |    |    |    |    |    | -[ACAccountStore initWithRemoteEndpoint:0x0 effectiveBundleID:0x0]
111212 ms     |    |    |    |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
111212 ms     |    |    |    |    |    |    |    |    | -[ACTimedExpirer init]
111212 ms     |    |    |    |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
111212 ms     |    |    |    |    |    |    |    |    | -[ACTimedExpirer init]
111212 ms     |    |    |    |    |    |    |    | +[ACNotificationRebroadcaster sharedRebroadcaster]
111212 ms     |    |    |    | -[AAUISignInController _serviceOwnersManager]
111212 ms     |    |    |    | -[AAUISignInController _serviceOwnersManager]
111213 ms     |    |    |    | -[AACloudServiceOwner signInService:0x1ecb2df10 withContext:0x2831f0730 completion:0x16fd6a660]
111213 ms     |    |    |    |    | +[AACloudServiceOwner _serviceTypeForPlatform]
111213 ms     |    |    |    |    | -[AASignInFlowController init]
111213 ms     |    |    |    |    |    | -[ACAccountStore init]
111213 ms     |    |    |    |    |    |    | -[ACAccountStore initWithRemoteEndpoint:0x0 effectiveBundleID:0x0]
111213 ms     |    |    |    |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
111213 ms     |    |    |    |    |    |    |    |    | -[ACTimedExpirer init]
111213 ms     |    |    |    |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
111213 ms     |    |    |    |    |    |    |    |    | -[ACTimedExpirer init]
111213 ms     |    |    |    |    |    |    |    | +[ACNotificationRebroadcaster sharedRebroadcaster]
111213 ms     |    |    |    |    | -[AASignInFlowController setShouldAutomaticallySaveSignInResults:0x1]
111213 ms     |    |    |    |    | -[AASignInFlowController setCdpUIProvider:0x2836f47e0]
111213 ms     |    |    |    |    | -[AASignInFlowController setDelegate:0x2831f0820]
111213 ms     |    |    |    |    | -[AASignInFlowController signInWithIDMSAuthenticationResults:0x28169c620 completion:0x16fd6a5b0]
111213 ms     |    |    |    |    |    | -[AASignInFlowController _updateOrCreateAppleAccountForAuthResults:0x28169c620 accountCreationError:0x16fd6a4b0]
111213 ms     |    |    |    |    |    |    | -[ACAccountStore aa_appleAccountWithPersonID:0x28169cf40]
111213 ms     |    |    |    |    |    |    |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x28100d780 preloadedProperties:0x0 error:0x0]
111213 ms     |    |    |    |    |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111213 ms     |    |    |    |    |    |    |    |    |    | -[ACAccountStore connectionDelegate]
111213 ms     |    |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession initWithListenerEndpoint:0x0 delegate:0x0]
111213 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccountStoreClientSideListener initWithDelegate:0x0]
111213 ms     |    |    |    |    |    |    |    |    |    | -[ACAccountStore effectiveBundleID]
111213 ms     |    |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession setEffectiveBundleID:0x0]
111213 ms     |    |    |    |    |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fd6a030]
111213 ms     |    |    |    |    |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111213 ms     |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fd6a010]
111213 ms     |    |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
111213 ms     |    |    |    |    |    |    |    |    |    |    | -[ACTrackedXPCConnection init]
111213 ms     |    |    |    |    |    |    |    |    |    |    | +[ACRemoteAccountStoreInterface XPCInterface]
111213 ms     |    |    |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _locked_configureRemoteAccountStoreWithConnection:0x282346080]
111215 ms     |    |    |    |    |    |    | -[AASignInFlowController _createNewAppleAccountWithAuthResults:0x28169c620 accountCreationError:0x16fd6a4b0]
111215 ms     |    |    |    |    |    |    |    | -[ACAccountStore aa_appleAccountType]
111215 ms     |    |    |    |    |    |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e74187d8 error:0x0]
111215 ms     |    |    |    |    |    |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111215 ms     |    |    |    |    |    |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fd6a110]
111215 ms     |    |    |    |    |    |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111215 ms     |    |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fd6a0f0]
111215 ms     |    |    |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
111215 ms     |    |    |    |    |    |    |    |    |    | +[ACAccountType supportsSecureCoding]
111215 ms     |    |    |    |    |    |    |    |    |    | -[ACAccountType setAccountStore:0x2839f4a10]
111215 ms     |    |    |    |    |    |    |    |    |    | -[ACAccountType description]
111215 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111216 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccountType identifier]
111216 ms     |    |    |    |    |    |    |    | -[ACAccount initWithAccountType:0x2839f4460]
111216 ms     |    |    |    |    |    |    |    |    | -[ACAccountType supportsAuthentication]
111216 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417f18]
111216 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417f98]
111216 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417e98]
111216 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417f58]
111216 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417f78]
111216 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d78]
111216 ms     |    |    |    |    |    |    |    | -[ACAccount setUsername:0x281d07cc0]
111216 ms     |    |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111216 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111216 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417e58]
111216 ms     |    |    |    |    |    |    |    | -[ACAccount _aa_setPersonID:0x2816599c0]
111216 ms     |    |    |    |    |    |    |    |    | -[ACAccount setAccountProperty:0x2816599c0 forKey:0x1e8b42670]
111216 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
111216 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b42670]
111216 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b42670]
111216 ms     |    |    |    |    |    |    |    | -[AASignInFlowController _userPersonaUniqueString]
111216 ms     |    |    |    |    |    |    |    | +[AAPreferences isMultipleFullAccountsEnabled]
111216 ms     |    |    |    |    |    |    |    |    | +[AADeviceInfo isInternalBuild]
111216 ms     |    |    |    |    |    |    |    | -[ACAccountStore aa_primaryAppleAccount]
111216 ms     |    |    |    |    |    |    |    |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x28100d4e0 preloadedProperties:0x0 error:0x0]
111216 ms     |    |    |    |    |    |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111216 ms     |    |    |    |    |    |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fd69fe0]
111216 ms     |    |    |    |    |    |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111216 ms     |    |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fd69fc0]
111216 ms     |    |    |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
111216 ms     |    |    |    |    |    |    |    | -[ACAccountStore aa_dataSeparatedAccounts]
111216 ms     |    |    |    |    |    |    |    |    | -[ACAccountStore aa_appleAccounts]
111216 ms     |    |    |    |    |    |    |    |    |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x281008790 preloadedProperties:0x0 error:0x0]
111216 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111216 ms     |    |    |    |    |    |    |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fd69fc0]
111216 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111216 ms     |    |    |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fd69fa0]
111216 ms     |    |    |    |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
111216 ms     |    |    |    |    |    |    |    | -[AASignInFlowController _nameForCloudService]
111218 ms     |    |    |    |    |    |    |    | -[ACAccount setAccountDescription:0xb40cf5309fe54ceb]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccount parentAccount]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417e78]
111218 ms     |    |    |    |    |    |    |    | -[ACAccount aa_setAccountClass:0x1e8b42a50]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccount accountType]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccountType identifier]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccount setObject:0x1e8b42a50 forKeyedSubscript:0x1e8b42c10]
111218 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount setAccountProperty:0x1e8b42a50 forKey:0x1e8b42c10]
111218 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
111218 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b42c10]
111218 ms     |    |    |    |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b42c10]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccount setObject:0x1f6189af8 forKeyedSubscript:0x1e8b426f0]
111218 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount setAccountProperty:0x1f6189af8 forKey:0x1e8b426f0]
111218 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
111218 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b426f0]
111218 ms     |    |    |    |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b426f0]
111218 ms     |    |    |    |    |    |    |    | -[AASignInFlowController _saveTermsWithAuthResults:0x28169c620 account:0x282b408c0]
111218 ms     |    |    |    |    |    |    | -[AASignInFlowController _updateAppleAccount:0x282b408c0 withAuthenticationResults:0x28169c620]
111218 ms     |    |    |    |    |    |    |    | +[ACAccountCredential credentialWithPassword:0x100711390]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccountCredential initWithPassword:0x100711390]
111218 ms     |    |    |    |    |    |    |    |    |    | -[ACAccountCredential setPassword:0x100711390]
111218 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccountCredential setCredentialItem:0x100711390 forKey:0x1e7419098]
111218 ms     |    |    |    |    |    |    |    |    |    |    |    | -[ACZeroingString initWithString:0x100711390]
111218 ms     |    |    |    |    |    |    |    |    |    |    |    | -[ACAccountCredential _markPropertyDirty:0x1e7419578]
111218 ms     |    |    |    |    |    |    |    | -[ACAccount setCredential:0x281ce7e70]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111218 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccount _installCredentialsChangedObserver]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccountCredential _setOwningAccount:0x282b408c0]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d98]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccount setLastCredentialRenewalRejectionDate:0x0]
111218 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111218 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111218 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417ed8]
111218 ms     |    |    |    |    |    |    |    | -[ACAccount _aa_setRawPassword:0x2816a8de0]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccount _aa_rawPassword]
111218 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount credential]
111218 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
111218 ms     |    |    |    |    |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111218 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111218 ms     |    |    |    |    |    |    |    |    |    | -[ACAccountCredential credentialItemForKey:0x1e7419198]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccount credential]
111218 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
111218 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111218 ms     |    |    |    |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111218 ms     |    |    |    |    |    |    |    |    | -[ACAccountCredential setCredentialItem:0x2816a8de0 forKey:0x1e7419198]
111219 ms     |    |    |    |    |    |    |    |    |    | -[ACZeroingString initWithString:0x2816a8de0]
111219 ms     |    |    |    |    |    |    |    |    |    | -[ACAccountCredential _markPropertyDirty:0x1e7419578]
111219 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccount _markCredentialDirty]
111219 ms     |    |    |    |    |    |    |    |    |    |    |    | -[ACAccount _markPropertyDirty:0x1e7417d98]
111219 ms     |    |    |    |    |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d98]
111219 ms     |    |    |    |    |    |    | -[ACAccount aa_isAccountClass:0x1e8b42a50]
111219 ms     |    |    |    |    |    |    |    | -[ACAccount aa_accountClass]
111219 ms     |    |    |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
111219 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
111219 ms     |    |    |    |    |    |    | -[AASignInFlowController _createCDPContextForPrimaryAccount:0x282b408c0 withAuthResults:0x28169c620]
111219 ms     |    |    |    |    |    |    |    | -[AASignInFlowController delegate]
111219 ms     |    |    |    |    |    |    |    | -[AASignInFlowController delegate]
111219 ms     |    |    |    |    |    |    |    | -[AAUISignInFlowControllerDelegate skipCDPEnablement]
111219 ms     |    |    |    |    |    |    |    | -[AASignInFlowController delegate]
111219 ms     |    |    |    |    |    |    |    | -[AASignInFlowController delegate]
111219 ms     |    |    |    |    |    |    |    | -[AAUISignInFlowControllerDelegate cdpContext]
111219 ms     |    |    |    |    |    |    |    | -[AASignInFlowController messageSession]
111219 ms     |    |    |    |    |    |    |    | -[AASignInFlowController ignoreLockAssertErrors]
111219 ms     |    |    |    |    |    | -[AASignInFlowController _delegateRequiresTerms]
111219 ms     |    |    |    |    |    |    | -[AASignInFlowController delegate]
111219 ms     |    |    |    |    |    |    | -[AASignInFlowController delegate]
111219 ms     |    |    |    |    |    |    | -[AAUISignInFlowControllerDelegate requiredTerms]
111219 ms     |    |    |    |    |    | -[AASignInFlowController _registerAndVerifyLoginForiCloudAccount:0x282b408c0 withCompletion:0x2807d6400]
111219 ms     |    |    |    |    |    |    | +[AAPreferences shouldUseUnifiedLoginEndpoint]
111221 ms     |    |    |    |    |    |    | +[AAiCloudLoginAccountRequester delegateParamsForAllDelegates]
111221 ms     |    |    |    |    |    |    | -[ACAccountStore aa_loginAndUpdateiCloudAccount:0x282b408c0 delegateParams:0x2807d5040 withCompletion:0x16fd6a398]
111221 ms     |    |    |    |    |    |    |    | -[ACAccount accountType]
111221 ms     |    |    |    |    |    |    |    | -[ACAccountType identifier]
111221 ms     |    |    |    |    |    |    |    | -[AAiCloudLoginAccountRequester loginWithAccount:0x282b408c0 forDelegates:0x2807d5040 completion:0x16fd6a2b0]
111221 ms     |    |    |    |    |    |    |    |    | -[AALoginAccountRequest initWithAccount:0x282b408c0 delegates:0x2807d5040]
111221 ms     |    |    |    |    |    |    |    |    | -[AARequest performSignedRequestWithHandler:0x16fd6a258]
111221 ms     |    |    |    |    |    |    |    |    |    | +[AAURLSession sharedSigningSession]
111221 ms     |    |    |    |    |    |    |    |    |    | -[AARequest performRequestWithSession:0x281cc68b0 withHandler:0x16fd6a258]
111221 ms  -[AAUISignInViewController _setEnabled:0x1]
111221 ms     | -[AAUISignInViewController _hasValidCredentials]
111221 ms     | -[AAUISignInViewController _setUsernameCellWaiting:0x0]
111221 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169d280]
111221 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807e3e40]
111222 ms  -[ACAccount credentialsChanged:0x28169d280]
111222 ms     | -[ACAccount identifier]
111222 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169d0a0]
111222 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807dfb00]
111222 ms  -[ACAccount credentialsChanged:0x28169d0a0]
111222 ms     | -[ACAccount identifier]
           /* TID 0x11c23 */
111222 ms  -[AALoginAccountRequest urlString]
111222 ms     | +[AAURLConfiguration urlConfiguration]
111222 ms     |    | +[AAURLConfiguration _urlConfigurationWithError:0x0]
111222 ms     |    |    | +[AAURLConfiguration remoteServer]
111222 ms     |    |    |    | +[AARemoteServer sharedServer]
111222 ms     |    |    | -[AARemoteServer configurationWithCompletion:0x1703f6d48]
111222 ms     |    |    |    | -[AARemoteServer _configurationAndResponseWithCompletion:0x1703f6ce8]
111222 ms     |    |    |    |    | -[AARemoteServer _configurationCacheInvalidatingIfNecessary]
111222 ms     |    |    |    |    |    | -[AARemoteServer _configurationLock_configurationCacheInvalidatingIfNecessary]
111222 ms     |    |    |    |    |    |    | -[AARemoteServerConfigurationCache creationDate]
111222 ms     |    |    |    |    | -[AARemoteServerConfigurationCache configuration]
111222 ms     |    |    |    |    | -[AARemoteServerConfigurationCache response]
111222 ms     | -[AAURLConfiguration loginAccountURL]
111222 ms     |    | -[AAURLConfiguration _urlStringForKey:0x1e8b3eb10]
111222 ms  -[AALoginAccountRequest urlRequest]
111222 ms     | -[AARequest urlRequest]
111222 ms     |    | -[AALoginAccountRequest urlString]
111222 ms     |    |    | +[AAURLConfiguration urlConfiguration]
111222 ms     |    |    |    | +[AAURLConfiguration _urlConfigurationWithError:0x0]
111222 ms     |    |    |    |    | +[AAURLConfiguration remoteServer]
111222 ms     |    |    |    |    | -[AARemoteServer configurationWithCompletion:0x1703f6b18]
111222 ms     |    |    |    |    |    | -[AARemoteServer _configurationAndResponseWithCompletion:0x1703f6ab8]
111222 ms     |    |    |    |    |    |    | -[AARemoteServer _configurationCacheInvalidatingIfNecessary]
111222 ms     |    |    |    |    |    |    |    | -[AARemoteServer _configurationLock_configurationCacheInvalidatingIfNecessary]
111222 ms     |    |    |    |    |    |    |    |    | -[AARemoteServerConfigurationCache creationDate]
111222 ms     |    |    |    |    |    |    | -[AARemoteServerConfigurationCache configuration]
111223 ms     |    |    |    |    |    |    | -[AARemoteServerConfigurationCache response]
111223 ms     |    |    | -[AAURLConfiguration loginAccountURL]
111223 ms     |    |    |    | -[AAURLConfiguration _urlStringForKey:0x1e8b3eb10]
           /* TID 0x103 */
111226 ms  -[AAUISpinnerViewController viewDidLoad]
           /* TID 0x11c23 */
111227 ms     |    | -[AARequest flushCache]
111227 ms     |    | +[AADeviceInfo clientInfoHeader]
111228 ms     |    |    | +[AADeviceInfo clientInfoHeader]
111228 ms     |    |    |    | -[AADeviceInfo productType]
111228 ms     |    |    |    | -[AADeviceInfo osName]
111228 ms     |    |    |    | +[AADeviceInfo osVersion]
111228 ms     |    |    |    | -[AADeviceInfo buildVersion]
           /* TID 0x103 */
111228 ms  -[AAUISpinnerViewController viewWillAppear:0x1]
           /* TID 0x11c23 */
111230 ms     |    | +[AAPreferences isExperimentalModeEnabled]
111230 ms     |    |    | +[AADeviceInfo isInternalBuild]
111231 ms     | -[AARequest bodyDictionary]
111231 ms     |    | +[AARequest protocolVersion]
111231 ms     |    | +[AADeviceInfo appleIDClientIdentifier]
111231 ms     |    |    | +[AADeviceInfo appleIDClientIdentifier]
111236 ms     | +[AADeviceInfo udid]
111237 ms     | +[AADeviceInfo udid]
111237 ms     |    | +[AADeviceInfo udid]
           /* TID 0x103 */
111237 ms  -[AAUIServiceIconView didMoveToWindow]
           /* TID 0x11c23 */
111237 ms     | -[ACAccount description]
111237 ms     |    | -[ACAccount username]
111237 ms     |    |    | -[ACAccount _useParentForCredentials]
111237 ms     |    |    |    | -[ACAccount authenticationType]
111237 ms     |    | -[ACAccount identifier]
111237 ms     | -[ACAccount username]
111237 ms     |    | -[ACAccount _useParentForCredentials]
111237 ms     |    |    | -[ACAccount authenticationType]
111237 ms     | -[ACAccount aa_password]
111237 ms     |    | -[ACAccount credential]
111237 ms     |    |    | -[ACAccount credentialWithError:0x0]
111237 ms     |    |    |    | -[ACAccount _useParentForCredentials]
111237 ms     |    |    |    |    | -[ACAccount authenticationType]
111237 ms     |    | -[ACAccountCredential password]
111238 ms     |    |    | -[ACAccountCredential credentialItemForKey:0x1e7419098]
111238 ms     |    |    |    | -[ACZeroingString length]
111238 ms     |    |    |    | -[ACZeroingString getCharacters:0x129628580 range:0x0]
111238 ms     | -[ACAccount username]
111238 ms     |    | -[ACAccount _useParentForCredentials]
111238 ms     |    |    | -[ACAccount authenticationType]
111238 ms     | -[ACAccount aa_password]
111238 ms     |    | -[ACAccount credential]
111238 ms     |    |    | -[ACAccount credentialWithError:0x0]
111238 ms     |    |    |    | -[ACAccount _useParentForCredentials]
111238 ms     |    |    |    |    | -[ACAccount authenticationType]
111238 ms     |    | -[ACAccountCredential password]
111238 ms     |    |    | -[ACAccountCredential credentialItemForKey:0x1e7419098]
111238 ms     |    |    |    | -[ACZeroingString length]
111238 ms     |    |    |    | -[ACZeroingString getCharacters:0x12961eb90 range:0x0]
111238 ms     | -[ACAccount aa_altDSID]
111238 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b3c830]
111238 ms     | -[ACAccount aa_repairState]
111238 ms     |    | -[ACAccount parentAccount]
111238 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b42bf0]
111238 ms     | -[ACAccount aa_personID]
111238 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b42670]
111238 ms     | -[AADeviceProvisioningSession initWithDSID:0x2816599c0]
111238 ms     | -[AADeviceProvisioningSession addProvisioningInfoToURLRequest:0x28100c0c0 sendEmptyValues:0x0]
111238 ms     |    | -[AADeviceProvisioningSession deviceProvisioningInfo]
           /* TID 0x103 */
111241 ms  -[AAUIServiceIconView didMoveToWindow]
           /* TID 0x11c23 */
111242 ms     | +[AKDevice currentDeviceAuthenticationMode]
111242 ms     |    | +[AKDevice _currentDeviceAuthenticationMode]
           /* TID 0x1251f */
111242 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807dacc0]
           /* TID 0x11c23 */
111244 ms     | +[AARequest redactedHeadersFromHTTPHeaders:0x2807d67c0]
111244 ms     | -[AARequest redactedBodyStringWithPropertyList:0x281659c00]
111244 ms  -[AAURLSession dataTaskWithRequest:0x28100c0c0 completion:0x1703f6e40]
111244 ms     | -[AAURLSession _enqueueRequest:0x28100c0c0 completion:0x1703f6e40]
111245 ms     |    | -[AKAppleIDSession initWithIdentifier:0x281cc6e50]
111245 ms     |    | -[AAURLSessionContext _initRequiringSigning:0x1 appleIDSession:0x2807d6380]
           /* TID 0xc533 */
111246 ms  -[AAURLSession _sessionQueue_enqueueTask:0x1006f4b90 completion:0x281cc79c0]
           /* TID 0x11c23 */
111248 ms  -[AAURLSessionContext URLSession:0x104216cb0 task:0x1006f4b90 getAppleIDHeadersForResponse:0x0 completionHandler:0x1703f6650]
111248 ms     | -[AKAppleIDSession URLSession:0x104216cb0 task:0x12035aed0 getAppleIDHeadersForResponse:0x0 completionHandler:0x1703f65c0]
111248 ms     |    | -[AKAppleIDSession _generateAppleIDHeadersForSessionTask:0x12035aed0 withCompletion:0x1703f6538]
111248 ms     |    |    | -[AKAppleIDSession _nativeAnisetteController]
111248 ms     |    |    |    | -[AKAnisetteProvisioningController init]
111248 ms     |    |    | -[AKAnisetteProvisioningController anisetteDataForURLRequest:0x28100c4f0 completion:0x1703f6428]
111248 ms     |    |    |    | -[AKAnisetteProvisioningController fetchAnisetteDataAndProvisionIfNecessary:0x1 withCompletion:0x1703f6428]
111248 ms     |    |    |    |    | -[AKAnisetteProvisioningController _anisetteServiceConnection]
111248 ms     |    |    |    |    |    | +[AKAnisetteProvisioningDaemonInterface XPCInterface]
111248 ms     |    |    |    |    |    | +[AKAnisetteProvisioningClientInterface XPCInterface]
           /* TID 0x103 */
111254 ms  -[ACNotificationRebroadcaster _accountStoreDidChange:0x281c22490]
           /* TID 0xf107 */
111254 ms  +[AKAnisetteData supportsSecureCoding]
111254 ms  -[AKAppleIDSession _genericAppleIDHeadersDictionaryForRequest:0x28100c4f0]
           /* TID 0x103 */
111254 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x2816bfce0]
111254 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807dacc0]
111254 ms  -[ACAccount credentialsChanged:0x2816bfce0]
111254 ms     | -[ACAccount identifier]
           /* TID 0xf107 */
111255 ms     | +[AKDevice currentDevice]
111255 ms     | -[AKDevice locale]
111255 ms  -[AKAnisetteData machineID]
111255 ms  -[AKAnisetteData oneTimePassword]
111255 ms  -[AKAnisetteData routingInfo]
111255 ms  +[AKDevice currentDevice]
111255 ms  -[AKDevice localUserUUID]
111255 ms  +[AKConfiguration sharedConfiguration]
111255 ms  -[AKConfiguration shouldAllowTestApplication]
111255 ms     | -[AKConfiguration configurationValueForKey:0x1e8b17ff8]
111255 ms  -[AKAppleIDSession _pairedDeviceAnisetteController]
111255 ms  -[AAURLSessionContext _additionalHeadersForRequest:0x28100daa0 completion:0x1701c6270]
111255 ms     | -[AAURLSessionContext requiresSigning]
           /* TID 0xc533 */
111255 ms  -[ACAccountStore dmc_visibleRemoteManagementAccounts]
111255 ms     | -[ACAccountStore dmc_RemoteManagementAccounts]
111255 ms     |    | -[ACAccountStore dmc_RemoteManagementAccountType]
111255 ms     |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58]
111255 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58 error:0x0]
111255 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111255 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e4c0]
111255 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0x103 */
111255 ms  -[ACAccountStore visibleTopLevelAccountsWithAccountTypeIdentifiers:0x283c29900 completion:0x16fd69d98]
111255 ms     | -[ACAccountStore remoteAccountStoreSession]
111255 ms     |    | -[ACTimedExpirer scheduleExpiration:0x16fd69b90]
111255 ms     |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111255 ms     | -[ACRemoteAccountStoreSession remoteObjectProxyWithErrorHandler:0x16fd69b70]
111255 ms     |    | -[ACRemoteAccountStoreSession _connection]
111256 ms  -[AMSAccountsChangedObservable _accountStoreDidChange:0x2816be8a0]
111256 ms     | +[AMSLogConfig sharedAccountsConfig]
111256 ms     | -[AMSLogConfig OSLogObject]
111256 ms     |    | -[AMSLogConfig propertyAccessQueue]
111256 ms     |    | -[AMSLogConfig backingOSLogObject]
           /* TID 0xf107 */
111256 ms     | -[AAURLSessionContext remoteServer]
111256 ms     |    | +[AARemoteServer sharedServer]
111256 ms     | -[AARemoteServer configurationWithCompletion:0x1701c61f0]
111256 ms     |    | -[AARemoteServer _configurationAndResponseWithCompletion:0x1701c6198]
111256 ms     |    |    | -[AARemoteServer _configurationCacheInvalidatingIfNecessary]
111256 ms     |    |    |    | -[AARemoteServer _configurationLock_configurationCacheInvalidatingIfNecessary]
111256 ms     |    |    |    |    | -[AARemoteServerConfigurationCache creationDate]
111256 ms     |    |    | -[AARemoteServerConfigurationCache configuration]
111256 ms     |    |    | -[AARemoteServerConfigurationCache response]
111256 ms     |    |    | +[AADeviceInfo currentInfo]
111256 ms     |    |    | +[AADeviceInfo udid]
           /* TID 0x1251f */
111256 ms  +[NSError _web_errorWithDomain:0x1f61f0440 code:0xfffffffffffffc19 URL:0x2839f5500]
111256 ms     | -[NSError _web_initWithDomain_nowarn:0x1f61f0440 code:0xfffffffffffffc19 URL:0x2839f5500]
111256 ms     |    | -[NSError initWithDomain:0x1f61f0440 code:0xfffffffffffffc19 userInfo:0x2816bd3e0]
111256 ms  -[NSError userInfo]
111256 ms  -[NSError domain]
111256 ms  -[NSError code]
111256 ms  -[NSError domain]
111256 ms  -[NSError code]
111256 ms  -[NSError userInfo]
111256 ms  -[NSError userInfo]
111256 ms  -[NSError domain]
111256 ms  -[NSError code]
111256 ms  +[NSError errorWithDomain:0x1f61f0440 code:0xfffffffffffffc19 userInfo:0x2816bc540]
111256 ms     | -[NSError initWithDomain:0x1f61f0440 code:0xfffffffffffffc19 userInfo:0x2816bc540]
111256 ms  -[NSError code]
111256 ms  -[NSError code]
111256 ms  -[NSError description]
111256 ms     | -[NSError userInfo]
111256 ms     | -[NSError domain]
111256 ms     | -[NSError userInfo]
111256 ms     | -[NSError domain]
111256 ms     | -[NSError userInfo]
111256 ms     | -[NSError userInfo]
111256 ms     | -[NSError domain]
111256 ms     | -[NSError code]
           /* TID 0x11c23 */
111257 ms  -[AACloudServiceOwner accountForService:0x1ecb2df10]
111257 ms     | +[AACloudServiceOwner _serviceTypeForPlatform]
111257 ms     | -[ACAccountStore aa_primaryAppleAccount]
111257 ms     |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x2810210d0 preloadedProperties:0x0 error:0x0]
111257 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
           /* TID 0xc533 */
111257 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e4a0]
111257 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xf107 */
111257 ms     |    |    | +[AADeviceInfo currentInfo]
111257 ms     |    |    | +[AADeviceInfo serialNumber]
111257 ms     |    |    | -[AAURLConfiguration absintheEnable]
111257 ms     |    |    | -[AAURLSessionContext _additionalAbsintheHeadersForData:0x12032b4b0 completion:0x2807ea140]
111258 ms     |    |    |    | -[AAURLSessionContext absintheSigner]
           /* TID 0x11c23 */
111258 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1703f6410]
111258 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111258 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1703f63f0]
111258 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xc533 */
111258 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111258 ms     |    |    |    |    | -[ACAccountType description]
111258 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111258 ms     |    |    |    |    |    | -[ACAccountType identifier]
111258 ms     |    | -[ACAccountStore accountsWithAccountType:0x2839f4ee0]
111258 ms     |    |    | -[ACAccountType description]
111258 ms     |    |    |    | -[ACAccountType accountTypeDescription]
111258 ms     |    |    |    | -[ACAccountType identifier]
           /* TID 0xf107 */
111258 ms     |    |    |    |    | +[AAAbsintheSigner sharedSigner]
111258 ms     |    |    |    | -[AAAbsintheSigner signatureForData:0x12032b4b0 completion:0x1701c5f28]
111258 ms     |    |    |    |    | -[AAAbsintheSigner _contextWithCompletion:0x1701c5eb0]
111258 ms     |    |    |    |    |    | -[AAAbsintheSigner context]
111258 ms     |    |    |    |    |    |    | -[AAAbsintheSigner _contextLock_contextInvalidatingIfNecessary]
111258 ms     |    |    |    |    |    |    |    | -[AAAbsintheSignerContextCache creationDate]
111258 ms     |    |    |    |    |    |    |    | -[AAAbsintheSignerContextCache context]
111258 ms     |    |    |    |    |    | -[AAAbsintheContext cao1NI5PNJBn:0x12032b4b0 error:0x1701c5df8]
           /* TID 0xc533 */
111259 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
111259 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e470]
111259 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111259 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e450]
111259 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
111259 ms     |    |    | -[ACAccountType encodeWithCoder:0x10225c800]
111259 ms     |    |    |    | -[ACAccountType identifier]
111259 ms     |    |    |    | -[ACAccountType accountTypeDescription]
111259 ms     |    |    |    | -[ACAccountType objectID]
111259 ms     |    |    |    | -[ACAccountType visibility]
111259 ms     |    |    |    | -[ACAccountType credentialProtectionPolicy]
111259 ms     |    |    |    | -[ACAccountType supportsAuthentication]
111259 ms     |    |    |    | -[ACAccountType supportsMultipleAccounts]
111259 ms     |    |    |    | -[ACAccountType owningBundleID]
111259 ms     |    |    |    | -[ACAccountType isObsolete]
           /* TID 0x11c23 */
111259 ms  +[ACAccountStore ams_sharedAccountStoreForMediaType:0x1e77eaeb0]
111259 ms     | +[AMSUnitTests isRunningUnitTests]
111259 ms     | +[ACAccountStore defaultStore]
111260 ms  -[ACAccountStore ams_activeiTunesAccount]
111260 ms     | -[ACAccountStore ams_mediaType]
111260 ms     |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
111260 ms     |    |    | +[AMSAccountStoreCache cacheAccessQueue]
111260 ms     |    |    | +[AMSAccountStoreCache cache]
111260 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
111260 ms     |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
111260 ms     |    |    |    | +[AMSUnitTests isRunningUnitTests]
111260 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
111260 ms     | -[ACAccountStore ams_iTunesAccounts]
111260 ms     |    | -[ACAccountStore ams_mediaType]
111260 ms     |    |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
111260 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
111260 ms     |    |    |    | +[AMSAccountStoreCache cache]
111260 ms     |    |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
111260 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
111260 ms     |    |    |    |    | +[AMSUnitTests isRunningUnitTests]
111260 ms     |    |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
111260 ms     |    | +[ACAccountStore ams_accountTypeIdentifierForMediaType:0x1e77eaeb0]
111260 ms     |    | -[ACAccountStore _ams_accountsWithAccountTypeIdentifier:0x1e7418878 options:0x1 error:0x1703f65c8]
111260 ms     |    |    | -[ACAccountStore _ams_accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x1703f65c8]
111260 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x1703f64e8]
111260 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111260 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1703f6280]
111260 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111260 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1703f6260]
111260 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
111261 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111261 ms     |    |    |    |    | -[ACAccountType description]
111261 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111261 ms     |    |    |    |    |    | -[ACAccountType identifier]
111261 ms     |    |    | -[ACAccountStore _ams_accountsWithAccountType:0x2839a8230 options:0x1 error:0x1703f65c8]
111261 ms     |    |    |    | -[ACAccountStore accountsWithAccountType:0x2839a8230 options:0x1 error:0x1703f6548]
111261 ms     |    |    |    |    | -[ACAccountType description]
111261 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111261 ms     |    |    |    |    |    | -[ACAccountType identifier]
111261 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
111261 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1703f6210]
111261 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
111261 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1703f61f0]
111261 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
111261 ms     |    |    |    |    | -[ACAccountType encodeWithCoder:0x102837c00]
111261 ms     |    |    |    |    |    | -[ACAccountType identifier]
111261 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
111261 ms     |    |    |    |    |    | -[ACAccountType objectID]
111261 ms     |    |    |    |    |    | -[ACAccountType visibility]
111261 ms     |    |    |    |    |    | -[ACAccountType credentialProtectionPolicy]
111261 ms     |    |    |    |    |    | -[ACAccountType supportsAuthentication]
111261 ms     |    |    |    |    |    | -[ACAccountType supportsMultipleAccounts]
111261 ms     |    |    |    |    |    | -[ACAccountType owningBundleID]
111261 ms     |    |    |    |    |    | -[ACAccountType isObsolete]
111266 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
111266 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111267 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
111267 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111267 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
111267 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
111267 ms     |    |    |    |    | -[ACAccount description]
111267 ms     |    |    |    |    |    | -[ACAccount username]
111267 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111267 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111267 ms     |    |    |    |    |    | -[ACAccount identifier]
111267 ms     |    |    |    |    | -[ACAccount description]
111267 ms     |    |    |    |    |    | -[ACAccount username]
111267 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111267 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111267 ms     |    |    |    |    |    | -[ACAccount identifier]
111267 ms     |    |    |    |    | -[ACAccount description]
111267 ms     |    |    |    |    |    | -[ACAccount username]
111267 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
111267 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
111267 ms     |    |    |    |    |    | -[ACAccount identifier]
111267 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
111267 ms     |    | -[ACAccount isActive]
111267 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
111267 ms     |    | -[ACAccount isActive]
111267 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
111267 ms     |    | -[ACAccount isActive]
           /* TID 0x1251f */
111268 ms  +[NSError errorWithDomain:0x1e753a3e0 code:0x1 userInfo:0x281262e60]
111268 ms     | -[NSError initWithDomain:0x1e753a3e0 code:0x1 userInfo:0x281262e60]
           /* TID 0xf107 */
111268 ms     |    |    | -[AAURLConfiguration baaInterval]
           /* TID 0x1251f */
111281 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807dea80]
           /* TID 0x103 */
111281 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28164f7e0]
111281 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807dea80]
111281 ms  -[ACAccount credentialsChanged:0x28164f7e0]
111281 ms     | -[ACAccount identifier]
           /* TID 0x11c23 */
111286 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807daa00]
           /* TID 0x103 */
111287 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x2816a8640]
111287 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807daa00]
111287 ms  -[ACAccount credentialsChanged:0x2816a8640]
111287 ms     | -[ACAccount identifier]
           /* TID 0x11c23 */
111292 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807dedc0]
           /* TID 0x103 */
111292 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28164f860]
111292 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807dedc0]
111292 ms  -[ACAccount credentialsChanged:0x28164f860]
111292 ms     | -[ACAccount identifier]
           /* TID 0x11c23 */
111298 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807c1180]
           /* TID 0x103 */
111298 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169db60]
111298 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807c1180]
111298 ms  -[ACAccount credentialsChanged:0x28169db60]
111298 ms     | -[ACAccount identifier]
           /* TID 0x11c23 */
111304 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807c1140]
           /* TID 0x103 */
111306 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169de60]
111306 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807c1140]
111306 ms  -[ACAccount credentialsChanged:0x28169de60]
111306 ms     | -[ACAccount identifier]
111307 ms  +[NSError errorWithDomain:0x1e753a3e0 code:0x1 userInfo:0x1f13a58c8]
111307 ms     | -[NSError initWithDomain:0x1e753a3e0 code:0x1 userInfo:0x1f13a58c8]
           /* TID 0x1251f */
111310 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807e9240]
           /* TID 0x103 */
111310 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169e200]
111310 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807e9240]
111310 ms  -[ACAccount credentialsChanged:0x28169e200]
111310 ms     | -[ACAccount identifier]
           /* TID 0x1251f */
111316 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807ded00]
           /* TID 0x103 */
111316 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169e200]
111316 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807ded00]
111316 ms  -[ACAccount credentialsChanged:0x28169e200]
111316 ms     | -[ACAccount identifier]
           /* TID 0xf107 */
111318 ms  +[NSError errorWithDomain:0x1e753a3e0 code:0x1 userInfo:0x28164f860]
111318 ms     | -[NSError initWithDomain:0x1e753a3e0 code:0x1 userInfo:0x28164f860]
           /* TID 0x103 */
111319 ms  +[NSError errorWithDomain:0x1e753a3e0 code:0x1 userInfo:0x28169cb60]
111319 ms     | -[NSError initWithDomain:0x1e753a3e0 code:0x1 userInfo:0x28169cb60]
           /* TID 0x1251f */
111322 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807d76c0]
           /* TID 0x103 */
111322 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169df60]
111322 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807d76c0]
111322 ms  -[ACAccount credentialsChanged:0x28169df60]
111322 ms     | -[ACAccount identifier]
           /* TID 0x1251f */
111328 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807dea80]
           /* TID 0x103 */
111328 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169e020]
111328 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807dea80]
111328 ms  -[ACAccount credentialsChanged:0x28169e020]
111328 ms     | -[ACAccount identifier]
           /* TID 0x1251f */
111333 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807c0a00]
           /* TID 0x103 */
111333 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169e020]
111333 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807c0a00]
111333 ms  -[ACAccount credentialsChanged:0x28169e020]
111333 ms     | -[ACAccount identifier]
           /* TID 0x1251f */
111338 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807c54c0]
           /* TID 0x103 */
111338 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169e200]
111338 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807c54c0]
111338 ms  -[ACAccount credentialsChanged:0x28169e200]
111338 ms     | -[ACAccount identifier]
           /* TID 0x1251f */
111343 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807dedc0]
           /* TID 0x103 */
111343 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169e200]
111343 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807dedc0]
111343 ms  -[ACAccount credentialsChanged:0x28169e200]
111343 ms     | -[ACAccount identifier]
           /* TID 0x1251f */
111348 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807dab80]
           /* TID 0x103 */
111348 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169e200]
111348 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807dab80]
111348 ms  -[ACAccount credentialsChanged:0x28169e200]
111348 ms     | -[ACAccount identifier]
           /* TID 0x1251f */
111356 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807dbec0]
           /* TID 0x103 */
111357 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169e200]
111357 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807dbec0]
111357 ms  -[ACAccount credentialsChanged:0x28169e200]
111357 ms     | -[ACAccount identifier]
           /* TID 0x1251f */
111362 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807c0ac0]
           /* TID 0x103 */
111362 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169e200]
111362 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807c0ac0]
111362 ms  -[ACAccount credentialsChanged:0x28169e200]
111362 ms     | -[ACAccount identifier]
           /* TID 0x1251f */
111368 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807c4000]
           /* TID 0x103 */
111368 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169e020]
111368 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807c4000]
111368 ms  -[ACAccount credentialsChanged:0x28169e020]
111368 ms     | -[ACAccount identifier]
           /* TID 0x1251f */
111373 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807c54c0]
           /* TID 0x103 */
111373 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169e200]
111373 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807c54c0]
111373 ms  -[ACAccount credentialsChanged:0x28169e200]
111373 ms     | -[ACAccount identifier]
111769 ms  -[AAUIServiceIconView didMoveToWindow]
111770 ms  -[AAUISignInViewController viewDidDisappear:0x1]
111770 ms     | -[AAUISignInViewController _endObservingSizeCategoryNotification]
111770 ms     | -[AAUISignInViewController _endObservingTextFieldDidChangeNotifications]
111771 ms     | -[AAUISignInViewController _endObservingKeyboardWillShowNotifications]
           /* TID 0x1251f */
116376 ms  -[AAURLSession URLSession:0x104216cb0 dataTask:0x1006f4b90 didReceiveData:0x2807c0b40]
116376 ms     | -[AAURLSession _sessionQueue_updateTask:0x1006f4b90 withData:0x2807c0b40]
116377 ms  -[AAURLSession URLSession:0x104216cb0 task:0x1006f4b90 didCompleteWithError:0x0]
116377 ms     | -[AAURLSession _sessionQueue_dequeueTask:0x1006f4b90 withResponse:0x281263500 error:0x0]
116377 ms     |    | -[AARequest _handleDataTaskCompletionWithData:0x123b14000 response:0x281263500 error:0x0]
116379 ms     |    |    | +[AALoginAccountRequest responseClass]
116379 ms     |    |    | -[AALoginAccountResponse initWithHTTPResponse:0x281263500 data:0x123b14000]
116380 ms     |    |    |    | -[AAResponse initWithHTTPResponse:0x281263500 data:0x123b14000 bodyIsPlist:0x1]
116381 ms     |    |    |    |    | -[AAResponse _parsePlistResponse:0x123b14000]
116384 ms     |    |    |    | -[AAResponse responseDictionary]
116384 ms     |    |    |    | -[AALoginAccountResponse _parseResponse:0xc8 responseBody:0x2816b2020]
116384 ms     |    |    |    |    | -[AAResponse responseDictionary]
116384 ms     |    |    |    |    | -[AAResponse responseDictionary]
116384 ms     |    |    |    |    | -[AAResponse responseDictionary]
116384 ms     |    |    |    |    | -[AALoginResponseAppleAccountInfo initWithDictionary:0x2816591e0]
116384 ms     |    |    |    |    | -[AALoginResponseiCloudTokens initWithTokens:0x281659e60]
116384 ms     |    |    |    |    | -[AALoginResponseDataclasses initWithiCloudServiceData:0x2816b03a0]
116385 ms     |    |    | -[AAResponse error]
116385 ms     |    |    | -[AALoginAccountResponse convertToProvisioningResponse]
116385 ms     |    |    |    | -[AALoginAccountResponse responseParametersForServiceIdentifier:0x1e8b3f330]
116385 ms     |    |    |    |    | -[AALoginAccountResponse responseForDelegates]
116385 ms     |    |    |    | -[AAProvisioningResponse initWithDictionary:0x2816591e0]
116385 ms     |    |    |    |    | -[AAResponse responseDictionary]
116385 ms     |    |    |    |    | -[AAResponse responseDictionary]
116385 ms     |    |    |    |    | -[AAResponse responseDictionary]
116385 ms     |    |    |    |    | -[AAResponse responseDictionary]
116385 ms     |    |    | -[AAResponse responseDictionary]
116385 ms     |    |    | -[ACAccount aa_updateWithProvisioningResponse:0x283126260]
116385 ms     |    |    |    | -[ACAccount username]
116386 ms     |    |    |    |    | -[ACAccount _useParentForCredentials]
116386 ms     |    |    |    |    |    | -[ACAccount authenticationType]
116386 ms     |    |    |    | -[ACAccount aa_needsToVerifyTerms]
116386 ms     |    |    |    |    | -[ACAccount parentAccount]
116386 ms     |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42ad0]
116386 ms     |    |    |    | -[ACAccount aa_suspensionInfo]
116386 ms     |    |    |    |    | -[ACAccount parentAccount]
116386 ms     |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b3fc90]
116386 ms     |    |    |    | -[AAAuthenticationResponse altDSID]
116386 ms     |    |    |    | -[ACAccount setAccountProperty:0x2807e9640 forKey:0x1e8b3c830]
116386 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116386 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3c830]
116386 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3c830]
116386 ms     |    |    |    | -[AAProvisioningResponse dataclassProperties]
116387 ms     |    |    |    |    | -[AAProvisioningResponse provisionedDataclasses]
116387 ms     |    |    |    | -[ACAccount _aa_setDataclassProperties:0x2816591e0]
116387 ms     |    |    |    |    | -[ACAccount setDataclassProperties:0x2816591e0]
116387 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807e9d40]
116387 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807e9d40]
116387 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807e8600]
116387 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807e8600]
116387 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cc7270]
116387 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cc7270]
116387 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cc9aa0]
116387 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cc9aa0]
116387 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281ccaaf0]
116387 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281ccaaf0]
116388 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807e8100]
116388 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807e8100]
116388 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cc9ef0]
116388 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cc9ef0]
116388 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807e8400]
116388 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807e8400]
116388 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cc7e70]
116388 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cc7e70]
116388 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cc9260]
116388 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cc9260]
116388 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807ea3c0]
116388 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807ea3c0]
116388 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cdaaf0]
116388 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cdaaf0]
116388 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cda730]
116388 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cda730]
116389 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807e8a40]
116389 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807e8a40]
116389 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cc8930]
116389 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cc8930]
116389 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281ccbae0]
116389 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281ccbae0]
116389 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807e9400]
116389 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807e9400]
116389 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cca580]
116389 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cca580]
116389 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807e9700]
116389 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807e9700]
116389 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cc9b60]
116389 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cc9b60]
116389 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281ccbfc0]
116389 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281ccbfc0]
116389 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807e8e40]
116390 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807e8e40]
116390 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807ea200]
116390 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807ea200]
116390 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cc8450]
116390 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cc8450]
116390 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807e9e80]
116390 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807e9e80]
116390 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281ce4300]
116390 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281ce4300]
116390 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807e9a40]
116390 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807e9a40]
116390 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281d17210]
116390 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281d17210]
116390 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cc98f0]
116390 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cc98f0]
116390 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281ccbc90]
116390 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281ccbc90]
116390 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cca6a0]
116390 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cca6a0]
116390 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281d17240]
116390 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281d17240]
116390 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807e9940]
116391 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807e9940]
116391 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281ce5740]
116391 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281ce5740]
116391 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x2807ea880]
116391 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x2807ea880]
116391 ms     |    |    |    |    |    | -[ACAccount _markDataclassPropertyDirty:0x281cc8ba0]
116391 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markDataclassPropertyDirty:0x281cc8ba0]
116391 ms     |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417e18]
116391 ms     |    |    |    | -[AAAuthenticationResponse personID]
116391 ms     |    |    |    | -[ACAccount setAccountProperty:0x2816b08e0 forKey:0x1e8b42670]
116391 ms     |    |    |    | -[AAProvisioningResponse firstName]
116391 ms     |    |    |    | -[ACAccount setAccountProperty:0x2816b2200 forKey:0x1e8b3c550]
116391 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116391 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3c550]
116391 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3c550]
116391 ms     |    |    |    | -[AAProvisioningResponse lastName]
116391 ms     |    |    |    | -[ACAccount setAccountProperty:0x2816b03c0 forKey:0x1e8b3c570]
116391 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116391 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3c570]
116391 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3c570]
116392 ms     |    |    |    | -[AAProvisioningResponse primaryEmail]
116392 ms     |    |    |    | -[ACAccount setAccountProperty:0x281cc7ab0 forKey:0x1e8b3f5f0]
116392 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116392 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3f5f0]
116392 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3f5f0]
116392 ms     |    |    |    | -[AAProvisioningResponse primaryEmailVerified]
116392 ms     |    |    |    | -[ACAccount setAccountProperty:0x1f6189af8 forKey:0x1e8b3f610]
116392 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116392 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3f610]
116392 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3f610]
116392 ms     |    |    |    | -[AAProvisioningResponse appleIDAliases]
116392 ms     |    |    |    | -[ACAccount setAccountProperty:0x281cdafa0 forKey:0x1e8b42710]
116392 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116392 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b42710]
116392 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b42710]
116392 ms     |    |    |    | -[AAResponse protocolVersion]
116392 ms     |    |    |    | -[ACAccount setAccountProperty:0xb43ecf8729c4e1d3 forKey:0x1e8b3c650]
116392 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116392 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3c650]
116393 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3c650]
116393 ms     |    |    |    | -[AAProvisioningResponse appleID]
116393 ms     |    |    |    | -[ACAccount setAccountProperty:0x281cc7ab0 forKey:0x1e8b3f630]
116393 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116393 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3f630]
116393 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3f630]
116393 ms     |    |    |    | -[AAProvisioningResponse regionInfo]
116393 ms     |    |    |    | -[ACAccount setAccountProperty:0x2816b1fe0 forKey:0x1e8b3f750]
116393 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116393 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3f750]
116393 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3f750]
116393 ms     |    |    |    | -[AAProvisioningResponse isManagedAppleID]
116393 ms     |    |    |    | -[ACAccount setAccountProperty:0x1f6189b10 forKey:0x1e8b3f670]
116393 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116393 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3f670]
116393 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3f670]
116393 ms     |    |    |    | -[AAProvisioningResponse isNotesMigrated]
116393 ms     |    |    |    | -[ACAccount setAccountProperty:0x1f6189af8 forKey:0x1e8b3f690]
116393 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116393 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3f690]
116393 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3f690]
116394 ms     |    |    |    | -[AAProvisioningResponse isRemindersMigrated]
116394 ms     |    |    |    | -[ACAccount setAccountProperty:0x1f6189b10 forKey:0x1e8b42b90]
116394 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116394 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b42b90]
116394 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b42b90]
116394 ms     |    |    |    | -[AAProvisioningResponse isRemindersAutoMigratableToCK]
116394 ms     |    |    |    | -[ACAccount setAccountProperty:0x1f6189b10 forKey:0x1e8b42bb0]
116394 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116394 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b42bb0]
116394 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b42bb0]
116394 ms     |    |    |    | -[AAProvisioningResponse isSandboxAccount]
116394 ms     |    |    |    | -[ACAccount setAccountProperty:0x1f6189b10 forKey:0x1e8b3f6f0]
116394 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116394 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3f6f0]
116394 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3f6f0]
116394 ms     |    |    |    | -[AAProvisioningResponse isCloudDocsMigrated]
116394 ms     |    |    |    | -[ACAccount setAccountProperty:0x1f6189af8 forKey:0x1e8b42b50]
116394 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116394 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b42b50]
116394 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b42b50]
116394 ms     |    |    |    | -[AAProvisioningResponse isCloudDocsMigrated]
116394 ms     |    |    |    | -[ACAccount setAccountProperty:0x1f6189af8 forKey:0x1e8b42b10]
116394 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116395 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b42b10]
116395 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b42b10]
116395 ms     |    |    |    | -[AAProvisioningResponse hasOptionalTerms]
116395 ms     |    |    |    | -[ACAccount setAccountProperty:0x1f6189b10 forKey:0x1e8b3f730]
116395 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116395 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3f730]
116395 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3f730]
116395 ms     |    |    |    | -[AAProvisioningResponse isFamilyEligible]
116395 ms     |    |    |    | -[ACAccount setAccountProperty:0x1f6189af8 forKey:0x1e8b3f790]
116395 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417df8]
116395 ms     |    |    |    |    | -[ACAccount _markAccountPropertyDirty:0x1e8b3f790]
116395 ms     |    |    |    |    |    | -[ACAccount _unsafe_markAccountPropertyDirty:0x1e8b3f790]
116395 ms     |    |    |    | -[AAProvisioningResponse provisionedDataclasses]
116395 ms     |    |    |    | +[AADataclassManager sharedManager]
116395 ms     |    |    |    |    | -[AADataclassManager init]
116395 ms     |    |    |    |    |    | -[ACAccountStore init]
116396 ms     |    |    |    |    |    |    | -[ACAccountStore initWithRemoteEndpoint:0x0 effectiveBundleID:0x0]
116396 ms     |    |    |    |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
116396 ms     |    |    |    |    |    |    |    |    | -[ACTimedExpirer init]
116396 ms     |    |    |    |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
116396 ms     |    |    |    |    |    |    |    |    | -[ACTimedExpirer init]
116396 ms     |    |    |    |    |    |    |    | +[ACNotificationRebroadcaster sharedRebroadcaster]
116396 ms     |    |    |    | -[AADataclassManager filteredServerProvidedFeatures:0x104013130 forAccount:0x282b408c0]
116396 ms     |    |    |    |    | -[ACAccount aa_accountClass]
116396 ms     |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116396 ms     |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116396 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807e9d40 forAccount:0x282b408c0]
116396 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116396 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807e9d40]
116397 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807e9d40]
116397 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116397 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807e9d40]
116397 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116397 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116397 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116397 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116397 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807e8600 forAccount:0x282b408c0]
116397 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116397 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807e8600]
116397 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807e8600]
116397 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116397 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807e8600]
116397 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116397 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116397 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116397 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116397 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cc7270 forAccount:0x282b408c0]
116397 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116397 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cc7270]
116397 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cc7270]
116400 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116400 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cc7270]
116400 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116400 ms     |    |    |    |    |    |    | -[NSError initWithDomain:0x1f61f0180 code:0xffffffffffffd5c2 userInfo:0x2816bf080]
116400 ms     |    |    |    |    |    |    | -[NSError initWithDomain:0x1f61f0180 code:0xffffffffffffd5c2 userInfo:0x2816bf080]
116401 ms     |    |    |    |    |    |    | -[NSError initWithDomain:0x1f61f0180 code:0xffffffffffffd5c2 userInfo:0x2816bf080]
116402 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cc9aa0 forAccount:0x282b408c0]
116402 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116402 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cc9aa0]
116402 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cc9aa0]
116402 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116402 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cc9aa0]
116402 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116402 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116402 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116403 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116403 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281ccaaf0 forAccount:0x282b408c0]
116403 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116403 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281ccaaf0]
116403 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281ccaaf0]
116403 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116403 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281ccaaf0]
116403 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116405 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116406 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116406 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116406 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807e8100 forAccount:0x282b408c0]
116406 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116406 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807e8100]
116406 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807e8100]
116406 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116406 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807e8100]
116406 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116406 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116406 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116406 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116406 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cc9ef0 forAccount:0x282b408c0]
116406 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116406 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cc9ef0]
116406 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cc9ef0]
116406 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116406 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cc9ef0]
116406 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116406 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116406 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116406 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116406 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807e8400 forAccount:0x282b408c0]
116406 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116406 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807e8400]
116406 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807e8400]
116406 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116406 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807e8400]
116406 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116406 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116406 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116406 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116406 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cc7e70 forAccount:0x282b408c0]
116406 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116406 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cc7e70]
116406 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cc7e70]
116407 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116407 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cc7e70]
116407 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116408 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116408 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116408 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116408 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x1e7416ab8 forAccount:0x282b408c0]
116408 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116408 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x1e7416ab8]
116408 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x1e7416ab8]
116408 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116408 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x1e7416ab8]
116408 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116408 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116408 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116408 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116408 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cc9260 forAccount:0x282b408c0]
116408 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116408 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cc9260]
116408 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cc9260]
116408 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116408 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cc9260]
116408 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116409 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116409 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116409 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116409 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807ea3c0 forAccount:0x282b408c0]
116409 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116409 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807ea3c0]
116409 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807ea3c0]
116409 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116409 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807ea3c0]
116409 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116409 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116409 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116409 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116409 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cdaaf0 forAccount:0x282b408c0]
116409 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116409 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cdaaf0]
116409 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cdaaf0]
116409 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116409 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cdaaf0]
116409 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116410 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116410 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116410 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116410 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cda730 forAccount:0x282b408c0]
116410 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116410 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cda730]
116410 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cda730]
116410 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116410 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cda730]
116410 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116412 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116412 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116412 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116412 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807e8a40 forAccount:0x282b408c0]
116412 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116412 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807e8a40]
116412 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807e8a40]
116412 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116412 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807e8a40]
116412 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116412 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116412 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116412 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116412 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cc8930 forAccount:0x282b408c0]
116412 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116412 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cc8930]
116412 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cc8930]
116412 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116412 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cc8930]
116412 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116412 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116412 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116412 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116412 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281ccbae0 forAccount:0x282b408c0]
116412 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116412 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281ccbae0]
116412 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281ccbae0]
116412 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116413 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281ccbae0]
116413 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116414 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116414 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116414 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116414 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807e9400 forAccount:0x282b408c0]
116414 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116414 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807e9400]
116414 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807e9400]
116414 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116414 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807e9400]
116414 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116414 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116414 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116414 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116414 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cca580 forAccount:0x282b408c0]
116415 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116415 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cca580]
116415 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cca580]
116415 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116415 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cca580]
116415 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116415 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116415 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116415 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116415 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281ccbfc0 forAccount:0x282b408c0]
116415 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116415 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281ccbfc0]
116415 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281ccbfc0]
116415 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116415 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281ccbfc0]
116415 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116416 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116416 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116416 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116416 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cc9b60 forAccount:0x282b408c0]
116416 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116416 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cc9b60]
116416 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cc9b60]
116416 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116416 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cc9b60]
116416 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116416 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116417 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116417 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116417 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807e9700 forAccount:0x282b408c0]
116417 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116417 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807e9700]
116417 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807e9700]
116417 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116417 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807e9700]
116417 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116417 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116417 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116417 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116417 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807e8e40 forAccount:0x282b408c0]
116417 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116417 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807e8e40]
116417 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807e8e40]
116417 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116417 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807e8e40]
116417 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116417 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116417 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116417 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116417 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807ea200 forAccount:0x282b408c0]
116417 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116417 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807ea200]
116417 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807ea200]
116417 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116417 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807ea200]
116417 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116417 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116417 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116417 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116417 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cc8450 forAccount:0x282b408c0]
116417 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116417 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cc8450]
116417 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cc8450]
116417 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116417 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cc8450]
116417 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116417 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116417 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116417 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116417 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807e9e80 forAccount:0x282b408c0]
116417 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116417 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807e9e80]
116417 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807e9e80]
116418 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116418 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807e9e80]
116418 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116418 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116418 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116418 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116418 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807e9a40 forAccount:0x282b408c0]
116418 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116418 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807e9a40]
116418 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807e9a40]
116418 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116418 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807e9a40]
116418 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116418 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116418 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116418 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116418 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281d17210 forAccount:0x282b408c0]
116418 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116418 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281d17210]
116418 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281d17210]
116418 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116418 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281d17210]
116418 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116418 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116418 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116418 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116418 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cc98f0 forAccount:0x282b408c0]
116418 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116418 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cc98f0]
116418 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cc98f0]
116418 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116418 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cc98f0]
116418 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116419 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116419 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116419 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116419 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281ccbc90 forAccount:0x282b408c0]
116419 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116419 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281ccbc90]
116419 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281ccbc90]
116419 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116419 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281ccbc90]
116419 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116420 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116420 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116421 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116421 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cca6a0 forAccount:0x282b408c0]
116421 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116421 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cca6a0]
116421 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cca6a0]
116421 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116421 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cca6a0]
116421 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116421 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116421 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116421 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116421 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281ce5740 forAccount:0x282b408c0]
116421 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116421 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281ce5740]
116421 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281ce5740]
116421 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116421 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281ce5740]
116421 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116421 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116421 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116421 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116421 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807e9940 forAccount:0x282b408c0]
116421 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116421 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807e9940]
116421 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807e9940]
116421 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116421 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807e9940]
116421 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116421 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116421 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116421 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116421 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x2807ea880 forAccount:0x282b408c0]
116421 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116421 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x2807ea880]
116421 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x2807ea880]
116421 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116421 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x2807ea880]
116421 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116421 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116421 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116421 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116421 ms     |    |    |    |    | -[AADataclassManager shouldProvisionDataclass:0x281cc8ba0 forAccount:0x282b408c0]
116421 ms     |    |    |    |    |    | +[AADataclassManager sharedManager]
116421 ms     |    |    |    |    |    | -[AADataclassManager isSystemAppRestrictedOrRemovedForDataclass:0x281cc8ba0]
116421 ms     |    |    |    |    |    |    | -[AADataclassManager _isRestrictedForDataclass:0x281cc8ba0]
116421 ms     |    |    |    |    |    |    | +[AADataclassManager sharedManager]
116421 ms     |    |    |    |    |    |    | -[AADataclassManager appBundleIdentifierForDataclass:0x281cc8ba0]
116421 ms     |    |    |    |    |    |    |    | +[AADataclassManager appBundleIdentifierDictionary]
116421 ms     |    |    |    |    |    | -[ACAccount aa_accountClass]
116421 ms     |    |    |    |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
116421 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
116421 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807e9d40]
116421 ms     |    |    |    |    | -[ACAccount accountStore]
116421 ms     |    |    |    |    |    | +[ACAccountStore defaultStore]
116421 ms     |    |    |    |    | -[ACAccountStore provisionedDataclassesForAccount:0x282b408c0 error:0x170482160]
116421 ms     |    |    |    |    |    | -[ACAccount description]
116421 ms     |    |    |    |    |    |    | -[ACAccount username]
116421 ms     |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116421 ms     |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116422 ms     |    |    |    |    |    |    | -[ACAccount identifier]
116422 ms     |    |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
116422 ms     |    |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x170481f00]
116422 ms     |    |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
116422 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x170481ee0]
116422 ms     |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
116422 ms     |    |    |    |    |    | -[ACAccount identifier]
116423 ms     |    |    |    |    | -[ACTrackedSet init]
116423 ms     |    |    |    |    |    | -[ACTrackedSet initWithObjects:0x0 count:0x0]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807e9d40]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807e8600]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807e8600]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cc9aa0]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cc9aa0]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281ccaaf0]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281ccaaf0]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807e8400]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807e8400]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cc9ef0]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cc9ef0]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cc7e70]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cc7e70]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807e8100]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807e8100]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x1e7416ab8]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x1e7416ab8]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cc9260]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cc9260]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807ea3c0]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807ea3c0]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cdaaf0]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cdaaf0]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cda730]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cda730]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807e8a40]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807e8a40]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cc8930]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cc8930]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281ccbae0]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281ccbae0]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807e9400]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807e9400]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cca580]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cca580]
116423 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116423 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807e9700]
116423 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807e9700]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cc9b60]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cc9b60]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281ccbfc0]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281ccbfc0]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807ea200]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807ea200]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807e8e40]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807e8e40]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cc8450]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cc8450]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807e9e80]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807e9e80]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807e9a40]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807e9a40]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281d17210]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281d17210]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cc98f0]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cc98f0]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281ccbc90]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281ccbc90]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cca6a0]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cca6a0]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281ce5740]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281ce5740]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807e9940]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807e9940]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x2807ea880]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x2807ea880]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount setProvisioned:0x1 forDataclass:0x281cc8ba0]
116424 ms     |    |    |    |    | -[ACMutableTrackedSet addObject:0x281cc8ba0]
116424 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417dd8]
116424 ms     |    |    |    | -[ACAccount enabledDataclasses]
116424 ms     |    |    |    |    | -[ACAccount parentAccount]
116424 ms     |    |    |    |    | -[ACAccount accountStore]
116424 ms     |    |    |    |    |    | +[ACAccountStore defaultStore]
116424 ms     |    |    |    |    | -[ACAccountStore enabledDataclassesForAccount:0x282b408c0 error:0x170482198]
116424 ms     |    |    |    |    |    | -[ACAccount description]
116424 ms     |    |    |    |    |    |    | -[ACAccount username]
116424 ms     |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116424 ms     |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116424 ms     |    |    |    |    |    |    | -[ACAccount identifier]
116424 ms     |    |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
116424 ms     |    |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x170481f30]
116424 ms     |    |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
116424 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x170481f10]
116424 ms     |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
116424 ms     |    |    |    |    |    | -[ACAccount identifier]
116425 ms     |    |    |    | -[ACAccount provisionedDataclasses]
116425 ms     |    |    |    |    | -[ACAccount parentAccount]
116425 ms     |    |    |    | -[ACAccount aa_updateTokensWithProvisioningResponse:0x283126260]
116425 ms     |    |    |    |    | -[AAAuthenticationResponse authToken]
116425 ms     |    |    |    |    | -[ACAccount aa_setAuthToken:0x282b2d960]
116425 ms     |    |    |    |    |    | -[ACAccount credential]
116425 ms     |    |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116425 ms     |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116425 ms     |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116425 ms     |    |    |    |    |    | -[ACAccountCredential token]
116425 ms     |    |    |    |    |    |    | -[ACAccountCredential credentialItemForKey:0x1e74190b8]
116425 ms     |    |    |    |    |    | -[ACAccount credential]
116425 ms     |    |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116425 ms     |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116425 ms     |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116425 ms     |    |    |    |    |    | -[ACAccount credential]
116425 ms     |    |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116425 ms     |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116425 ms     |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116425 ms     |    |    |    |    |    | -[ACAccountCredential setToken:0x282b2d960]
116425 ms     |    |    |    |    |    |    | -[ACAccountCredential setCredentialItem:0x282b2d960 forKey:0x1e74190b8]
116425 ms     |    |    |    |    |    |    |    | -[ACZeroingString initWithString:0x282b2d960]
116425 ms     |    |    |    |    |    |    |    | -[ACAccountCredential _markPropertyDirty:0x1e7419578]
116425 ms     |    |    |    |    |    |    |    |    | -[ACAccount _markCredentialDirty]
116425 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount _markPropertyDirty:0x1e7417d98]
116425 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d98]
116426 ms     |    |    |    |    |    | -[ACAccount setAuthenticated:0x1]
116426 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116426 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116426 ms     |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d78]
116426 ms     |    |    |    |    |    |    | -[ACAccount setLastCredentialRenewalRejectionDate:0x0]
116426 ms     |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116426 ms     |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116426 ms     |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417ed8]
116426 ms     |    |    |    |    | -[AAAuthenticationResponse mapsToken]
116426 ms     |    |    |    |    | -[ACAccount aa_setMapsToken:0x282b2da40]
116426 ms     |    |    |    |    |    | -[ACAccount credential]
116426 ms     |    |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116426 ms     |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116426 ms     |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116426 ms     |    |    |    |    |    | -[ACAccountCredential mapsToken]
116426 ms     |    |    |    |    |    |    | -[ACAccountCredential credentialItemForKey:0x1e7419278]
116426 ms     |    |    |    |    |    | -[ACAccount credential]
116426 ms     |    |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116426 ms     |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116426 ms     |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116426 ms     |    |    |    |    |    | -[ACAccount credential]
116426 ms     |    |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116426 ms     |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116426 ms     |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116426 ms     |    |    |    |    |    | -[ACAccountCredential setMapsToken:0x282b2da40]
116426 ms     |    |    |    |    |    |    | -[ACAccountCredential setCredentialItem:0x282b2da40 forKey:0x1e7419278]
116426 ms     |    |    |    |    |    |    |    | -[ACZeroingString initWithString:0x282b2da40]
116426 ms     |    |    |    |    |    |    |    | -[ACAccountCredential _markPropertyDirty:0x1e7419578]
116426 ms     |    |    |    |    |    |    |    |    | -[ACAccount _markCredentialDirty]
116426 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount _markPropertyDirty:0x1e7417d98]
116426 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d98]
116426 ms     |    |    |    |    | -[AAAuthenticationResponse mdmServerToken]
116426 ms     |    |    |    |    | -[AAProvisioningResponse searchPartyToken]
116426 ms     |    |    |    |    | -[ACAccount credential]
116426 ms     |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116426 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116426 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116426 ms     |    |    |    |    | -[ACAccountCredential setCredentialItem:0x282b2d340 forKey:0x1e74193f8]
116426 ms     |    |    |    |    |    | -[ACZeroingString initWithString:0x282b2d340]
116426 ms     |    |    |    |    |    | -[ACAccountCredential _markPropertyDirty:0x1e7419578]
116426 ms     |    |    |    |    |    |    | -[ACAccount _markCredentialDirty]
116426 ms     |    |    |    |    |    |    |    | -[ACAccount _markPropertyDirty:0x1e7417d98]
116426 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d98]
116426 ms     |    |    |    |    | -[AAProvisioningResponse keyTransparencyToken]
116426 ms     |    |    |    |    | -[ACAccount credential]
116426 ms     |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116426 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116426 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116426 ms     |    |    |    |    | -[ACAccountCredential setCredentialItem:0x282b2c9a0 forKey:0x1e7419418]
116426 ms     |    |    |    |    |    | -[ACZeroingString initWithString:0x282b2c9a0]
116426 ms     |    |    |    |    |    | -[ACAccountCredential _markPropertyDirty:0x1e7419578]
116426 ms     |    |    |    |    |    |    | -[ACAccount _markCredentialDirty]
116426 ms     |    |    |    |    |    |    |    | -[ACAccount _markPropertyDirty:0x1e7417d98]
116426 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d98]
116426 ms     |    |    |    |    | -[AAAuthenticationResponse cloudKitToken]
116426 ms     |    |    |    |    | -[ACAccount credential]
116426 ms     |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116426 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116426 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116426 ms     |    |    |    |    | -[ACAccountCredential setCredentialItem:0x282b2df80 forKey:0x1e7419318]
116426 ms     |    |    |    |    |    | -[ACZeroingString initWithString:0x282b2df80]
116426 ms     |    |    |    |    |    | -[ACAccountCredential _markPropertyDirty:0x1e7419578]
116426 ms     |    |    |    |    |    |    | -[ACAccount _markCredentialDirty]
116426 ms     |    |    |    |    |    |    |    | -[ACAccount _markPropertyDirty:0x1e7417d98]
116426 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d98]
116426 ms     |    |    |    |    | -[ACAccount aa_cloudKitAccount]
116426 ms     |    |    |    |    |    | -[ACAccount childAccountsWithAccountTypeIdentifier:0x1e7418a58]
116426 ms     |    |    |    |    |    |    | -[ACAccount accountStore]
116426 ms     |    |    |    |    |    |    |    | +[ACAccountStore defaultStore]
116426 ms     |    |    |    |    |    |    | -[ACAccountStore childAccountsForAccount:0x282b408c0 withTypeIdentifier:0x1e7418a58]
116427 ms     |    |    |    |    |    |    |    | -[ACAccount description]
116427 ms     |    |    |    |    |    |    |    |    | -[ACAccount username]
116427 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116427 ms     |    |    |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116427 ms     |    |    |    |    |    |    |    |    | -[ACAccount identifier]
116427 ms     |    |    |    |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
116427 ms     |    |    |    |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x170481d00]
116427 ms     |    |    |    |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
116427 ms     |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x170481ce0]
116427 ms     |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
116427 ms     |    |    |    |    |    |    |    | -[ACAccount identifier]
116427 ms     |    |    |    |    | -[ACAccount username]
116427 ms     |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116427 ms     |    |    |    |    |    |    | -[ACAccount authenticationType]
116427 ms     |    |    |    |    | +[AAKeychainManager initialize]
116432 ms     |    |    |    |    | +[AAKeychainManager setPassword:0x282b2df80 forServiceName:0x1e8b42d10 username:0x281d07cc0 accessGroup:0x1e8b42d30]
116432 ms     |    |    |    |    |    | +[AAKeychainManager passwordForServiceName:0x1e8b42d10 username:0x281d07cc0 accessGroup:0x1e8b42d30]
116440 ms     |    |    |    |    | -[AAAuthenticationResponse fmipToken]
116440 ms     |    |    |    |    | -[ACAccount credential]
116440 ms     |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116440 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116440 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116440 ms     |    |    |    |    | -[ACAccountCredential setFindMyiPhoneToken:0x282b2db20]
116440 ms     |    |    |    |    |    | -[ACAccountCredential setCredentialItem:0x282b2db20 forKey:0x1e7419218]
116440 ms     |    |    |    |    |    |    | -[ACZeroingString initWithString:0x282b2db20]
116440 ms     |    |    |    |    |    |    | -[ACAccountCredential _markPropertyDirty:0x1e7419578]
116440 ms     |    |    |    |    |    |    |    | -[ACAccount _markCredentialDirty]
116440 ms     |    |    |    |    |    |    |    |    | -[ACAccount _markPropertyDirty:0x1e7417d98]
116440 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d98]
116440 ms     |    |    |    |    | -[AAProvisioningResponse fmipAppToken]
116440 ms     |    |    |    |    | -[ACAccount credential]
116440 ms     |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116440 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116440 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116440 ms     |    |    |    |    | -[ACAccountCredential setCredentialItem:0x282b2dce0 forKey:0x1e7419238]
116440 ms     |    |    |    |    |    | -[ACZeroingString initWithString:0x282b2dce0]
116440 ms     |    |    |    |    |    | -[ACAccountCredential _markPropertyDirty:0x1e7419578]
116440 ms     |    |    |    |    |    |    | -[ACAccount _markCredentialDirty]
116440 ms     |    |    |    |    |    |    |    | -[ACAccount _markPropertyDirty:0x1e7417d98]
116440 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d98]
116440 ms     |    |    |    |    | -[AAProvisioningResponse fmipSiriToken]
116440 ms     |    |    |    |    | -[ACAccount credential]
116440 ms     |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116440 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116440 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116440 ms     |    |    |    |    | -[ACAccountCredential setCredentialItem:0x282b2dea0 forKey:0x1e7419258]
116440 ms     |    |    |    |    |    | -[ACZeroingString initWithString:0x282b2dea0]
116441 ms     |    |    |    |    |    | -[ACAccountCredential _markPropertyDirty:0x1e7419578]
116441 ms     |    |    |    |    |    |    | -[ACAccount _markCredentialDirty]
116441 ms     |    |    |    |    |    |    |    | -[ACAccount _markPropertyDirty:0x1e7417d98]
116441 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d98]
116441 ms     |    |    |    |    | -[AAAuthenticationResponse fmfToken]
116441 ms     |    |    |    |    | -[ACAccount credential]
116441 ms     |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116441 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116441 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116441 ms     |    |    |    |    | -[ACAccountCredential setCredentialItem:0x282b2d880 forKey:0x1e74192b8]
116441 ms     |    |    |    |    |    | -[ACZeroingString initWithString:0x282b2d880]
116441 ms     |    |    |    |    |    | -[ACAccountCredential _markPropertyDirty:0x1e7419578]
116441 ms     |    |    |    |    |    |    | -[ACAccount _markCredentialDirty]
116441 ms     |    |    |    |    |    |    |    | -[ACAccount _markPropertyDirty:0x1e7417d98]
116441 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d98]
116441 ms     |    |    |    |    | -[AAAuthenticationResponse fmfAppToken]
116441 ms     |    |    |    |    | -[ACAccount credential]
116441 ms     |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116441 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116441 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116441 ms     |    |    |    |    | -[ACAccountCredential setCredentialItem:0x282b2e680 forKey:0x1e74192d8]
116441 ms     |    |    |    |    |    | -[ACZeroingString initWithString:0x282b2e680]
116441 ms     |    |    |    |    |    | -[ACAccountCredential _markPropertyDirty:0x1e7419578]
116441 ms     |    |    |    |    |    |    | -[ACAccount _markCredentialDirty]
116441 ms     |    |    |    |    |    |    |    | -[ACAccount _markPropertyDirty:0x1e7417d98]
116441 ms     |    |    |    |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d98]
116441 ms     |    |    | -[AASignInFlowController _verifyLoginResponseForiCloudAccount:0x282b408c0 withSuccess:0x1 error:0x0 completion:0x2807d6400]
116441 ms     |    |    |    | -[ACAccount aa_password]
116441 ms     |    |    |    |    | -[ACAccount credential]
116441 ms     |    |    |    |    |    | -[ACAccount credentialWithError:0x0]
116441 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116441 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116441 ms     |    |    |    |    | -[ACAccountCredential password]
116441 ms     |    |    |    |    |    | -[ACAccountCredential credentialItemForKey:0x1e7419098]
116441 ms     |    |    |    |    |    |    | -[ACZeroingString length]
116441 ms     |    |    |    |    |    |    | -[ACZeroingString getCharacters:0x120370c70 range:0x0]
116441 ms     |    |    |    | -[ACAccount setAuthenticated:0x0]
116441 ms     |    |    |    |    | -[ACAccount _useParentForCredentials]
116441 ms     |    |    |    |    |    | -[ACAccount authenticationType]
116441 ms     |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417d78]
116441 ms     |    |    |    | -[AASignInFlowController _validateAndEnrollCDPStateForAccount:0x282b408c0 withCDPContext:0x282558580 completion:0x1704823b8]
116441 ms     |    |    |    |    | -[ACAccount setWarmingUp:0x1]
116441 ms     |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417eb8]
116441 ms     |    |    |    |    | -[ACAccount setEnabled:0x1 forDataclass:0x1e7416758]
116441 ms     |    |    |    |    |    | -[ACAccount parentAccount]
116441 ms     |    |    |    |    |    | -[ACAccount accountStore]
116441 ms     |    |    |    |    |    |    | +[ACAccountStore defaultStore]
116441 ms     |    |    |    |    |    | -[ACAccountStore enabledDataclassesForAccount:0x282b408c0 error:0x170482220]
116441 ms     |    |    |    |    |    |    | -[ACAccount description]
116441 ms     |    |    |    |    |    |    |    | -[ACAccount username]
116441 ms     |    |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116441 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116441 ms     |    |    |    |    |    |    |    | -[ACAccount identifier]
116441 ms     |    |    |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
116441 ms     |    |    |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x170481fc0]
116441 ms     |    |    |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
116441 ms     |    |    |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x170481fa0]
116441 ms     |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
116441 ms     |    |    |    |    |    |    | -[ACAccount identifier]
116442 ms     |    |    |    |    |    | -[ACTrackedSet init]
116442 ms     |    |    |    |    |    |    | -[ACTrackedSet initWithObjects:0x0 count:0x0]
116442 ms     |    |    |    |    |    | -[ACMutableTrackedSet addObject:0x1e7416758]
116442 ms     |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417db8]
116442 ms     |    |    |    |    | -[ACAccount isProvisionedForDataclass:0x1e7416798]
116442 ms     |    |    |    |    |    | -[ACAccount provisionedDataclasses]
116442 ms     |    |    |    |    |    |    | -[ACAccount parentAccount]
116442 ms     |    |    |    |    | -[ACAccount setEnabled:0x1 forDataclass:0x1e7416798]
116442 ms     |    |    |    |    |    | -[ACAccount parentAccount]
116442 ms     |    |    |    |    |    | -[ACMutableTrackedSet addObject:0x1e7416798]
116442 ms     |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417db8]
116442 ms     |    |    |    |    | -[ACAccount setEnabled:0x1 forDataclass:0x1e74167b8]
116442 ms     |    |    |    |    |    | -[ACAccount parentAccount]
116442 ms     |    |    |    |    |    | -[ACMutableTrackedSet addObject:0x1e74167b8]
116442 ms     |    |    |    |    |    | -[ACAccount _unsafe_markPropertyDirty:0x1e7417db8]
116442 ms     |    |    |    |    | -[ACAccountStore saveAccount:0x282b408c0 withCompletionHandler:0x1704822a0]
116442 ms     |    |    |    |    |    | -[ACAccountStore _saveAccount:0x282b408c0 verify:0x1 dataclassActions:0x0 completion:0x1704822a0]
116442 ms     |    |    |    |    |    |    | -[ACAccount accountType]
116442 ms     |    |    |    |    |    |    | -[ACAccountType identifier]
116442 ms     |    |    |    |    |    |    | -[ACAccount description]
116442 ms     |    |    |    |    |    |    |    | -[ACAccount username]
116442 ms     |    |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116442 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116442 ms     |    |    |    |    |    |    |    | -[ACAccount identifier]
116442 ms     |    |    |    |    |    |    | -[ACAccount description]
116442 ms     |    |    |    |    |    |    |    | -[ACAccount username]
116442 ms     |    |    |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
116442 ms     |    |    |    |    |    |    |    |    |    | -[ACAccount authenticationType]
116442 ms     |    |    |    |    |    |    |    | -[ACAccount identifier]
116442 ms     |    |    |    |    |    |    | -[ACAccount isDirty]
116442 ms     |    |    |    |    |    |    | -[ACAccount accountType]
116442 ms     |    |    |    |    |    |    | -[ACAccountType identifier]
116442 ms     |    |    |    |    |    |    | -[ACAccountStore _checkSaveRateLimitForAccountType:0x281d76580]
116442 ms     |    |    |    |    |    |    | -[ACAccountStore longLivedRemoteAccountStoreSession]
116442 ms     |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession initWithListenerEndpoint:0x0 delegate:0x0]
116442 ms     |    |    |    |    |    |    |    |    | -[ACAccountStoreClientSideListener initWithDelegate:0x0]
116442 ms     |    |    |    |    |    |    |    | -[ACAccountStore effectiveBundleID]
116442 ms     |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession setEffectiveBundleID:0x0]
116442 ms     |    |    |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x170482030]
116442 ms     |    |    |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
116442 ms     |    |    |    |    |    |    | -[ACRemoteAccountStoreSession remoteObjectProxyWithErrorHandler:0x170482010]
116442 ms     |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
116442 ms     |    |    |    |    |    |    |    |    | -[ACTrackedXPCConnection init]
116442 ms     |    |    |    |    |    |    |    |    | +[ACRemoteAccountStoreInterface XPCInterface]
116443 ms     |    |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _locked_configureRemoteAccountStoreWithConnection:0x282341900]
116443 ms     |    |    |    |    |    |    | -[ACAccount encodeWithCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    | -[ACAccountType encodeWithCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    |    | -[ACAccountType identifier]
116443 ms     |    |    |    |    |    |    |    |    | -[ACAccountType accountTypeDescription]
116443 ms     |    |    |    |    |    |    |    |    | -[ACAccountType objectID]
116443 ms     |    |    |    |    |    |    |    |    | -[ACAccountType visibility]
116443 ms     |    |    |    |    |    |    |    |    | -[ACAccountType credentialProtectionPolicy]
116443 ms     |    |    |    |    |    |    |    |    | -[ACAccountType supportsAuthentication]
116443 ms     |    |    |    |    |    |    |    |    | -[ACAccountType supportsMultipleAccounts]
116443 ms     |    |    |    |    |    |    |    |    | -[ACAccountType owningBundleID]
116443 ms     |    |    |    |    |    |    |    |    | -[ACAccountType isObsolete]
116443 ms     |    |    |    |    |    |    |    | -[ACAccountCredential encodeWithCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString replacementObjectForCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString _allowsDirectEncoding]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString encodeWithCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString replacementObjectForCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString _allowsDirectEncoding]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString encodeWithCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString replacementObjectForCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString _allowsDirectEncoding]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString encodeWithCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString replacementObjectForCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString _allowsDirectEncoding]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString encodeWithCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString replacementObjectForCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString _allowsDirectEncoding]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString encodeWithCoder:0x101a84800]
116443 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString replacementObjectForCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString _allowsDirectEncoding]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString encodeWithCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString replacementObjectForCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString _allowsDirectEncoding]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString encodeWithCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString replacementObjectForCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString _allowsDirectEncoding]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString encodeWithCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString replacementObjectForCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString _allowsDirectEncoding]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString encodeWithCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString replacementObjectForCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString _allowsDirectEncoding]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString encodeWithCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString replacementObjectForCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString _allowsDirectEncoding]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString encodeWithCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString replacementObjectForCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString _allowsDirectEncoding]
116444 ms     |    |    |    |    |    |    |    |    | -[ACZeroingString encodeWithCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    | -[ACAccount accountProperties]
116444 ms     |    |    |    |    |    |    |    | -[ACAccount accountPropertiesTransformer]
116444 ms     |    |    |    |    |    |    |    | -[ACTrackedSet encodeWithCoder:0x101a84800]
116444 ms     |    |    |    |    |    |    |    | -[ACTrackedSet encodeWithCoder:0x101a84800]
           /* TID 0xf107 */
118692 ms  -[ACAccountStore dmc_visibleRemoteManagementAccounts]
118692 ms     | -[ACAccountStore dmc_RemoteManagementAccounts]
118692 ms     |    | -[ACAccountStore dmc_RemoteManagementAccountType]
118692 ms     |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58]
118692 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58 error:0x0]
           /* TID 0x103 */
118692 ms  -[ACNotificationRebroadcaster _accountStoreDidChange:0x281d109f0]
118692 ms  -[ACAccountStore visibleTopLevelAccountsWithAccountTypeIdentifiers:0x283c27780 completion:0x16fd69d98]
118692 ms     | -[ACAccountStore remoteAccountStoreSession]
118692 ms     |    | -[ACTimedExpirer scheduleExpiration:0x16fd69b90]
118692 ms     |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118692 ms     | -[ACRemoteAccountStoreSession remoteObjectProxyWithErrorHandler:0x16fd69b70]
118692 ms     |    | -[ACRemoteAccountStoreSession _connection]
118693 ms  -[AMSAccountsChangedObservable _accountStoreDidChange:0x281696a20]
118693 ms     | +[AMSLogConfig sharedAccountsConfig]
118693 ms     | -[AMSLogConfig OSLogObject]
118693 ms     |    | -[AMSLogConfig propertyAccessQueue]
118693 ms     |    | -[AMSLogConfig backingOSLogObject]
           /* TID 0xf107 */
118693 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118693 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1701c64c0]
118693 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0xc533 */
118693 ms  -[AACloudServiceOwner accountForService:0x1ecb2df10]
118693 ms     | +[AACloudServiceOwner _serviceTypeForPlatform]
118693 ms     | -[ACAccountStore aa_primaryAppleAccount]
118693 ms     |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x2810094b0 preloadedProperties:0x0 error:0x0]
118693 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
118693 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e410]
118693 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118693 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e3f0]
118693 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xf107 */
118693 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1701c64a0]
118693 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xc533 */
118694 ms  +[ACAccountStore ams_sharedAccountStoreForMediaType:0x1e77eaeb0]
118694 ms     | +[AMSUnitTests isRunningUnitTests]
118694 ms     | +[ACAccountStore defaultStore]
           /* TID 0xf107 */
118694 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
           /* TID 0xc533 */
118694 ms  -[ACAccountStore ams_activeiTunesAccount]
           /* TID 0xf107 */
118694 ms     |    |    |    |    | -[ACAccountType description]
118694 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118694 ms     |    |    |    |    |    | -[ACAccountType identifier]
118694 ms     |    | -[ACAccountStore accountsWithAccountType:0x2839f4e00]
           /* TID 0xc533 */
118694 ms     | -[ACAccountStore ams_mediaType]
           /* TID 0xf107 */
118694 ms     |    |    | -[ACAccountType description]
118694 ms     |    |    |    | -[ACAccountType accountTypeDescription]
118694 ms     |    |    |    | -[ACAccountType identifier]
118694 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
118694 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1701c6470]
118694 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118694 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1701c6450]
118694 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xc533 */
118695 ms     |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
118695 ms     |    |    | +[AMSAccountStoreCache cacheAccessQueue]
           /* TID 0xf107 */
118695 ms     |    |    | -[ACAccountType encodeWithCoder:0x101a84800]
118695 ms     |    |    |    | -[ACAccountType identifier]
118695 ms     |    |    |    | -[ACAccountType accountTypeDescription]
           /* TID 0xc533 */
118695 ms     |    |    | +[AMSAccountStoreCache cache]
118695 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
           /* TID 0xf107 */
118695 ms     |    |    |    | -[ACAccountType objectID]
118695 ms     |    |    |    | -[ACAccountType visibility]
           /* TID 0xc533 */
118695 ms     |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
           /* TID 0xf107 */
118695 ms     |    |    |    | -[ACAccountType credentialProtectionPolicy]
           /* TID 0xc533 */
118695 ms     |    |    |    | +[AMSUnitTests isRunningUnitTests]
118695 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
118695 ms     | -[ACAccountStore ams_iTunesAccounts]
118695 ms     |    | -[ACAccountStore ams_mediaType]
118695 ms     |    |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
118695 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118695 ms     |    |    |    | +[AMSAccountStoreCache cache]
118695 ms     |    |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
           /* TID 0xf107 */
118695 ms     |    |    |    | -[ACAccountType supportsAuthentication]
           /* TID 0xc533 */
118695 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
118695 ms     |    |    |    |    | +[AMSUnitTests isRunningUnitTests]
           /* TID 0xf107 */
118695 ms     |    |    |    | -[ACAccountType supportsMultipleAccounts]
118695 ms     |    |    |    | -[ACAccountType owningBundleID]
           /* TID 0xc533 */
118695 ms     |    |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
           /* TID 0xf107 */
118695 ms     |    |    |    | -[ACAccountType isObsolete]
           /* TID 0xc533 */
118695 ms     |    | +[ACAccountStore ams_accountTypeIdentifierForMediaType:0x1e77eaeb0]
118695 ms     |    | -[ACAccountStore _ams_accountsWithAccountTypeIdentifier:0x1e7418878 options:0x1 error:0x16fe7e5c8]
118695 ms     |    |    | -[ACAccountStore _ams_accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x16fe7e5c8]
118695 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x16fe7e4e8]
118695 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118695 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e280]
118695 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118695 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e260]
118695 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118696 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118697 ms     |    |    |    |    | -[ACAccountType description]
118697 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118697 ms     |    |    |    |    |    | -[ACAccountType identifier]
118697 ms     |    |    | -[ACAccountStore _ams_accountsWithAccountType:0x283928310 options:0x1 error:0x16fe7e5c8]
118697 ms     |    |    |    | -[ACAccountStore accountsWithAccountType:0x283928310 options:0x1 error:0x16fe7e548]
118697 ms     |    |    |    |    | -[ACAccountType description]
118697 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118697 ms     |    |    |    |    |    | -[ACAccountType identifier]
118697 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118697 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e210]
118697 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118697 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e1f0]
118697 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118697 ms     |    |    |    |    | -[ACAccountType encodeWithCoder:0x101069e00]
118697 ms     |    |    |    |    |    | -[ACAccountType identifier]
118697 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118697 ms     |    |    |    |    |    | -[ACAccountType objectID]
118697 ms     |    |    |    |    |    | -[ACAccountType visibility]
118697 ms     |    |    |    |    |    | -[ACAccountType credentialProtectionPolicy]
118697 ms     |    |    |    |    |    | -[ACAccountType supportsAuthentication]
118697 ms     |    |    |    |    |    | -[ACAccountType supportsMultipleAccounts]
118697 ms     |    |    |    |    |    | -[ACAccountType owningBundleID]
118697 ms     |    |    |    |    |    | -[ACAccountType isObsolete]
118700 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118701 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118701 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118701 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118701 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118701 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118701 ms     |    |    |    |    | -[ACAccount description]
118701 ms     |    |    |    |    |    | -[ACAccount username]
118701 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118701 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118701 ms     |    |    |    |    |    | -[ACAccount identifier]
118701 ms     |    |    |    |    | -[ACAccount description]
118701 ms     |    |    |    |    |    | -[ACAccount username]
118701 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118701 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118701 ms     |    |    |    |    |    | -[ACAccount identifier]
118701 ms     |    |    |    |    | -[ACAccount description]
118701 ms     |    |    |    |    |    | -[ACAccount username]
118701 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118701 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118701 ms     |    |    |    |    |    | -[ACAccount identifier]
118701 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
118701 ms     |    | -[ACAccount isActive]
118701 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
118701 ms     |    | -[ACAccount isActive]
118701 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
118701 ms     |    | -[ACAccount isActive]
           /* TID 0xf107 */
118705 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807daac0]
118708 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807c0b80]
           /* TID 0x103 */
118709 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x281697420]
118709 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807daac0]
118709 ms  -[ACAccount credentialsChanged:0x281697420]
118709 ms     | -[ACAccount identifier]
118709 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x281697420]
118709 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807c0b80]
118709 ms  -[ACAccount credentialsChanged:0x281697420]
118709 ms     | -[ACAccount identifier]
           /* TID 0xf107 */
118721 ms  -[ACAccountStore dmc_visibleRemoteManagementAccounts]
           /* TID 0x103 */
118721 ms  -[ACNotificationRebroadcaster _accountStoreDidChange:0x281d27c30]
118722 ms  -[ACAccountStore visibleTopLevelAccountsWithAccountTypeIdentifiers:0x283c2b400 completion:0x16fd69d98]
118722 ms     | -[ACAccountStore remoteAccountStoreSession]
118722 ms     |    | -[ACTimedExpirer scheduleExpiration:0x16fd69b90]
118722 ms     |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118722 ms     | -[ACRemoteAccountStoreSession remoteObjectProxyWithErrorHandler:0x16fd69b70]
118722 ms     |    | -[ACRemoteAccountStoreSession _connection]
118722 ms  -[AMSAccountsChangedObservable _accountStoreDidChange:0x281696260]
118722 ms     | +[AMSLogConfig sharedAccountsConfig]
118722 ms     | -[AMSLogConfig OSLogObject]
118722 ms     |    | -[AMSLogConfig propertyAccessQueue]
118722 ms     |    | -[AMSLogConfig backingOSLogObject]
           /* TID 0xf107 */
118724 ms     | -[ACAccountStore dmc_RemoteManagementAccounts]
118724 ms     |    | -[ACAccountStore dmc_RemoteManagementAccountType]
118724 ms     |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58]
118724 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58 error:0x0]
118724 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118724 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1701c64c0]
118724 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0xec47 */
118724 ms  -[AACloudServiceOwner accountForService:0x1ecb2df10]
118724 ms     | +[AACloudServiceOwner _serviceTypeForPlatform]
118724 ms     | -[ACAccountStore aa_primaryAppleAccount]
118724 ms     |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x281008fb0 preloadedProperties:0x0 error:0x0]
118724 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
           /* TID 0xf107 */
118724 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1701c64a0]
           /* TID 0xec47 */
118724 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x17059a410]
118724 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0xf107 */
118724 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xec47 */
118724 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x17059a3f0]
118724 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xf107 */
118725 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118725 ms     |    |    |    |    | -[ACAccountType description]
118725 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118725 ms     |    |    |    |    |    | -[ACAccountType identifier]
118725 ms     |    | -[ACAccountStore accountsWithAccountType:0x2839220d0]
118725 ms     |    |    | -[ACAccountType description]
118725 ms     |    |    |    | -[ACAccountType accountTypeDescription]
118725 ms     |    |    |    | -[ACAccountType identifier]
118725 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
118725 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1701c6470]
118725 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118725 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1701c6450]
118725 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
118725 ms     |    |    | -[ACAccountType encodeWithCoder:0x102837400]
118725 ms     |    |    |    | -[ACAccountType identifier]
118725 ms     |    |    |    | -[ACAccountType accountTypeDescription]
118725 ms     |    |    |    | -[ACAccountType objectID]
118725 ms     |    |    |    | -[ACAccountType visibility]
118725 ms     |    |    |    | -[ACAccountType credentialProtectionPolicy]
118725 ms     |    |    |    | -[ACAccountType supportsAuthentication]
           /* TID 0xec47 */
118725 ms  +[ACAccountStore ams_sharedAccountStoreForMediaType:0x1e77eaeb0]
118725 ms     | +[AMSUnitTests isRunningUnitTests]
118725 ms     | +[ACAccountStore defaultStore]
118725 ms  -[ACAccountStore ams_activeiTunesAccount]
118725 ms     | -[ACAccountStore ams_mediaType]
118725 ms     |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
118725 ms     |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118725 ms     |    |    | +[AMSAccountStoreCache cache]
118725 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118725 ms     |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
118725 ms     |    |    |    | +[AMSUnitTests isRunningUnitTests]
118725 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
118726 ms     | -[ACAccountStore ams_iTunesAccounts]
118726 ms     |    | -[ACAccountStore ams_mediaType]
118726 ms     |    |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
118726 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118726 ms     |    |    |    | +[AMSAccountStoreCache cache]
118726 ms     |    |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118726 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
118726 ms     |    |    |    |    | +[AMSUnitTests isRunningUnitTests]
118726 ms     |    |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
118726 ms     |    | +[ACAccountStore ams_accountTypeIdentifierForMediaType:0x1e77eaeb0]
118726 ms     |    | -[ACAccountStore _ams_accountsWithAccountTypeIdentifier:0x1e7418878 options:0x1 error:0x17059a5c8]
118726 ms     |    |    | -[ACAccountStore _ams_accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x17059a5c8]
118726 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x17059a4e8]
118726 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118726 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x17059a280]
118726 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0xf107 */
118726 ms     |    |    |    | -[ACAccountType supportsMultipleAccounts]
118726 ms     |    |    |    | -[ACAccountType owningBundleID]
118726 ms     |    |    |    | -[ACAccountType isObsolete]
           /* TID 0xec47 */
118726 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x17059a260]
118726 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118727 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118727 ms     |    |    |    |    | -[ACAccountType description]
118727 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118727 ms     |    |    |    |    |    | -[ACAccountType identifier]
118727 ms     |    |    | -[ACAccountStore _ams_accountsWithAccountType:0x2839f55e0 options:0x1 error:0x17059a5c8]
118727 ms     |    |    |    | -[ACAccountStore accountsWithAccountType:0x2839f55e0 options:0x1 error:0x17059a548]
118727 ms     |    |    |    |    | -[ACAccountType description]
118727 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118727 ms     |    |    |    |    |    | -[ACAccountType identifier]
118727 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118727 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x17059a210]
118727 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118727 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x17059a1f0]
118727 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118727 ms     |    |    |    |    | -[ACAccountType encodeWithCoder:0x102837400]
118727 ms     |    |    |    |    |    | -[ACAccountType identifier]
118727 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118728 ms     |    |    |    |    |    | -[ACAccountType objectID]
118728 ms     |    |    |    |    |    | -[ACAccountType visibility]
118728 ms     |    |    |    |    |    | -[ACAccountType credentialProtectionPolicy]
118728 ms     |    |    |    |    |    | -[ACAccountType supportsAuthentication]
118728 ms     |    |    |    |    |    | -[ACAccountType supportsMultipleAccounts]
118728 ms     |    |    |    |    |    | -[ACAccountType owningBundleID]
118728 ms     |    |    |    |    |    | -[ACAccountType isObsolete]
118732 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118732 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118732 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118732 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118732 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118732 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118732 ms     |    |    |    |    | -[ACAccount description]
118732 ms     |    |    |    |    |    | -[ACAccount username]
118732 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118732 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118732 ms     |    |    |    |    |    | -[ACAccount identifier]
118732 ms     |    |    |    |    | -[ACAccount description]
118732 ms     |    |    |    |    |    | -[ACAccount username]
118732 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118732 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118732 ms     |    |    |    |    |    | -[ACAccount identifier]
118732 ms     |    |    |    |    | -[ACAccount description]
118732 ms     |    |    |    |    |    | -[ACAccount username]
118732 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118732 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118732 ms     |    |    |    |    |    | -[ACAccount identifier]
118732 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
118732 ms     |    | -[ACAccount isActive]
118732 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
118732 ms     |    | -[ACAccount isActive]
118732 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
118732 ms     |    | -[ACAccount isActive]
           /* TID 0xf107 */
118768 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807dae40]
           /* TID 0x103 */
118768 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169d2c0]
118768 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807dae40]
118768 ms  -[ACAccount credentialsChanged:0x28169d2c0]
118768 ms     | -[ACAccount identifier]
           /* TID 0xf107 */
118783 ms  -[ACAccountStore dmc_visibleRemoteManagementAccounts]
           /* TID 0x103 */
118783 ms  -[ACNotificationRebroadcaster _accountStoreDidChange:0x281d08ea0]
118783 ms  -[ACAccountStore visibleTopLevelAccountsWithAccountTypeIdentifiers:0x283cf8080 completion:0x16fd69d98]
118783 ms     | -[ACAccountStore remoteAccountStoreSession]
118783 ms     |    | -[ACTimedExpirer scheduleExpiration:0x16fd69b90]
118783 ms     |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118783 ms     | -[ACRemoteAccountStoreSession remoteObjectProxyWithErrorHandler:0x16fd69b70]
118783 ms     |    | -[ACRemoteAccountStoreSession _connection]
118783 ms  -[AMSAccountsChangedObservable _accountStoreDidChange:0x28169f1e0]
118783 ms     | +[AMSLogConfig sharedAccountsConfig]
118783 ms     | -[AMSLogConfig OSLogObject]
118783 ms     |    | -[AMSLogConfig propertyAccessQueue]
118783 ms     |    | -[AMSLogConfig backingOSLogObject]
           /* TID 0xf107 */
118784 ms     | -[ACAccountStore dmc_RemoteManagementAccounts]
118784 ms     |    | -[ACAccountStore dmc_RemoteManagementAccountType]
118784 ms     |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58]
118784 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58 error:0x0]
118784 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118784 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1701c64c0]
118784 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0xc533 */
118785 ms  -[AACloudServiceOwner accountForService:0x1ecb2df10]
118785 ms     | +[AACloudServiceOwner _serviceTypeForPlatform]
           /* TID 0xf107 */
118785 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1701c64a0]
118785 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xc533 */
118785 ms     | -[ACAccountStore aa_primaryAppleAccount]
118785 ms     |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x2810257f0 preloadedProperties:0x0 error:0x0]
118785 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
118785 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e410]
118785 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118785 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e3f0]
118785 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xf107 */
118785 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118785 ms     |    |    |    |    | -[ACAccountType description]
118785 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118785 ms     |    |    |    |    |    | -[ACAccountType identifier]
118785 ms     |    | -[ACAccountStore accountsWithAccountType:0x283990fc0]
118785 ms     |    |    | -[ACAccountType description]
118785 ms     |    |    |    | -[ACAccountType accountTypeDescription]
118785 ms     |    |    |    | -[ACAccountType identifier]
118785 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
118785 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1701c6470]
118785 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118785 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1701c6450]
118785 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
118785 ms     |    |    | -[ACAccountType encodeWithCoder:0x10227d000]
118785 ms     |    |    |    | -[ACAccountType identifier]
118785 ms     |    |    |    | -[ACAccountType accountTypeDescription]
118785 ms     |    |    |    | -[ACAccountType objectID]
118785 ms     |    |    |    | -[ACAccountType visibility]
118785 ms     |    |    |    | -[ACAccountType credentialProtectionPolicy]
118785 ms     |    |    |    | -[ACAccountType supportsAuthentication]
118785 ms     |    |    |    | -[ACAccountType supportsMultipleAccounts]
118785 ms     |    |    |    | -[ACAccountType owningBundleID]
118786 ms     |    |    |    | -[ACAccountType isObsolete]
           /* TID 0xc533 */
118786 ms  +[ACAccountStore ams_sharedAccountStoreForMediaType:0x1e77eaeb0]
118786 ms     | +[AMSUnitTests isRunningUnitTests]
118786 ms     | +[ACAccountStore defaultStore]
118786 ms  -[ACAccountStore ams_activeiTunesAccount]
118786 ms     | -[ACAccountStore ams_mediaType]
118786 ms     |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
118786 ms     |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118786 ms     |    |    | +[AMSAccountStoreCache cache]
118786 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118786 ms     |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
118786 ms     |    |    |    | +[AMSUnitTests isRunningUnitTests]
118786 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
118786 ms     | -[ACAccountStore ams_iTunesAccounts]
118786 ms     |    | -[ACAccountStore ams_mediaType]
118786 ms     |    |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
118786 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118786 ms     |    |    |    | +[AMSAccountStoreCache cache]
118786 ms     |    |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118787 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
118787 ms     |    |    |    |    | +[AMSUnitTests isRunningUnitTests]
118787 ms     |    |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
118787 ms     |    | +[ACAccountStore ams_accountTypeIdentifierForMediaType:0x1e77eaeb0]
118787 ms     |    | -[ACAccountStore _ams_accountsWithAccountTypeIdentifier:0x1e7418878 options:0x1 error:0x16fe7e5c8]
118787 ms     |    |    | -[ACAccountStore _ams_accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x16fe7e5c8]
118787 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x16fe7e4e8]
118787 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118787 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e280]
118787 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118787 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e260]
118787 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118787 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118787 ms     |    |    |    |    | -[ACAccountType description]
118787 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118787 ms     |    |    |    |    |    | -[ACAccountType identifier]
118787 ms     |    |    | -[ACAccountStore _ams_accountsWithAccountType:0x2839f5ab0 options:0x1 error:0x16fe7e5c8]
118787 ms     |    |    |    | -[ACAccountStore accountsWithAccountType:0x2839f5ab0 options:0x1 error:0x16fe7e548]
118787 ms     |    |    |    |    | -[ACAccountType description]
118787 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118787 ms     |    |    |    |    |    | -[ACAccountType identifier]
118787 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118787 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e210]
118787 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118787 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e1f0]
118787 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118787 ms     |    |    |    |    | -[ACAccountType encodeWithCoder:0x101a8d400]
118787 ms     |    |    |    |    |    | -[ACAccountType identifier]
118787 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118787 ms     |    |    |    |    |    | -[ACAccountType objectID]
118787 ms     |    |    |    |    |    | -[ACAccountType visibility]
118787 ms     |    |    |    |    |    | -[ACAccountType credentialProtectionPolicy]
118787 ms     |    |    |    |    |    | -[ACAccountType supportsAuthentication]
118787 ms     |    |    |    |    |    | -[ACAccountType supportsMultipleAccounts]
118787 ms     |    |    |    |    |    | -[ACAccountType owningBundleID]
118787 ms     |    |    |    |    |    | -[ACAccountType isObsolete]
118789 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118789 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118789 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118789 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118789 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118789 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118789 ms     |    |    |    |    | -[ACAccount description]
118789 ms     |    |    |    |    |    | -[ACAccount username]
118789 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118789 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118789 ms     |    |    |    |    |    | -[ACAccount identifier]
118789 ms     |    |    |    |    | -[ACAccount description]
118789 ms     |    |    |    |    |    | -[ACAccount username]
118789 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118789 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118789 ms     |    |    |    |    |    | -[ACAccount identifier]
118789 ms     |    |    |    |    | -[ACAccount description]
118789 ms     |    |    |    |    |    | -[ACAccount username]
118789 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118789 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118789 ms     |    |    |    |    |    | -[ACAccount identifier]
118789 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
118789 ms     |    | -[ACAccount isActive]
118789 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
118789 ms     |    | -[ACAccount isActive]
118789 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
118789 ms     |    | -[ACAccount isActive]
           /* TID 0x103 */
118798 ms  -[ACNotificationRebroadcaster _accountStoreDidChange:0x281d0c4b0]
           /* TID 0xc533 */
118798 ms  -[ACAccountStore dmc_visibleRemoteManagementAccounts]
118798 ms     | -[ACAccountStore dmc_RemoteManagementAccounts]
118798 ms     |    | -[ACAccountStore dmc_RemoteManagementAccountType]
118798 ms     |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58]
118798 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58 error:0x0]
118798 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
           /* TID 0x103 */
118798 ms  -[ACAccountStore visibleTopLevelAccountsWithAccountTypeIdentifiers:0x283c0ee00 completion:0x16fd69d98]
           /* TID 0xc533 */
118798 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e4c0]
           /* TID 0x103 */
118798 ms     | -[ACAccountStore remoteAccountStoreSession]
118798 ms     |    | -[ACTimedExpirer scheduleExpiration:0x16fd69b90]
           /* TID 0xc533 */
118798 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0x103 */
118798 ms     |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118798 ms     | -[ACRemoteAccountStoreSession remoteObjectProxyWithErrorHandler:0x16fd69b70]
118798 ms     |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xc533 */
118798 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e4a0]
118799 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0x103 */
118799 ms  -[AMSAccountsChangedObservable _accountStoreDidChange:0x281697600]
118799 ms     | +[AMSLogConfig sharedAccountsConfig]
118799 ms     | -[AMSLogConfig OSLogObject]
118799 ms     |    | -[AMSLogConfig propertyAccessQueue]
118799 ms     |    | -[AMSLogConfig backingOSLogObject]
           /* TID 0x1251f */
118799 ms  -[AACloudServiceOwner accountForService:0x1ecb2df10]
118799 ms     | +[AACloudServiceOwner _serviceTypeForPlatform]
118799 ms     | -[ACAccountStore aa_primaryAppleAccount]
118799 ms     |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x281038a30 preloadedProperties:0x0 error:0x0]
           /* TID 0xc533 */
118799 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118799 ms     |    |    |    |    | -[ACAccountType description]
118799 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118799 ms     |    |    |    |    |    | -[ACAccountType identifier]
           /* TID 0x1251f */
118799 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
118799 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x170482410]
118799 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0xc533 */
118799 ms     |    | -[ACAccountStore accountsWithAccountType:0x2839f4e00]
118799 ms     |    |    | -[ACAccountType description]
118799 ms     |    |    |    | -[ACAccountType accountTypeDescription]
118799 ms     |    |    |    | -[ACAccountType identifier]
           /* TID 0x1251f */
118799 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1704823f0]
118799 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xc533 */
118799 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
118799 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x16fe7e470]
118799 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118799 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x16fe7e450]
118799 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
118799 ms     |    |    | -[ACAccountType encodeWithCoder:0x101a84800]
118799 ms     |    |    |    | -[ACAccountType identifier]
118799 ms     |    |    |    | -[ACAccountType accountTypeDescription]
118799 ms     |    |    |    | -[ACAccountType objectID]
118799 ms     |    |    |    | -[ACAccountType visibility]
118799 ms     |    |    |    | -[ACAccountType credentialProtectionPolicy]
118799 ms     |    |    |    | -[ACAccountType supportsAuthentication]
118799 ms     |    |    |    | -[ACAccountType supportsMultipleAccounts]
118799 ms     |    |    |    | -[ACAccountType owningBundleID]
118799 ms     |    |    |    | -[ACAccountType isObsolete]
           /* TID 0x1251f */
118800 ms  +[ACAccountStore ams_sharedAccountStoreForMediaType:0x1e77eaeb0]
118800 ms     | +[AMSUnitTests isRunningUnitTests]
118800 ms     | +[ACAccountStore defaultStore]
118800 ms  -[ACAccountStore ams_activeiTunesAccount]
118800 ms     | -[ACAccountStore ams_mediaType]
118800 ms     |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
118800 ms     |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118800 ms     |    |    | +[AMSAccountStoreCache cache]
118800 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118800 ms     |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
118800 ms     |    |    |    | +[AMSUnitTests isRunningUnitTests]
118800 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
118800 ms     | -[ACAccountStore ams_iTunesAccounts]
118800 ms     |    | -[ACAccountStore ams_mediaType]
118800 ms     |    |    | +[AMSAccountStoreCache mediaTypeForAccountStore:0x283916df0]
118800 ms     |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118800 ms     |    |    |    | +[AMSAccountStoreCache cache]
118800 ms     |    |    |    |    | +[AMSAccountStoreCache cacheAccessQueue]
118800 ms     |    |    |    | +[AMSProcessInfo defaultMediaTypeForCurrentProcess]
118800 ms     |    |    |    |    | +[AMSUnitTests isRunningUnitTests]
118800 ms     |    |    |    |    | +[AMSProcessInfo defaultMediaTypeAccessQueue]
118800 ms     |    | +[ACAccountStore ams_accountTypeIdentifierForMediaType:0x1e77eaeb0]
118800 ms     |    | -[ACAccountStore _ams_accountsWithAccountTypeIdentifier:0x1e7418878 options:0x1 error:0x1704825c8]
118800 ms     |    |    | -[ACAccountStore _ams_accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x1704825c8]
118800 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418878 error:0x1704824e8]
118800 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118800 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x170482280]
118800 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118800 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x170482260]
118800 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118801 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118801 ms     |    |    |    |    | -[ACAccountType description]
118801 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118801 ms     |    |    |    |    |    | -[ACAccountType identifier]
118801 ms     |    |    | -[ACAccountStore _ams_accountsWithAccountType:0x2839f4e00 options:0x1 error:0x1704825c8]
118801 ms     |    |    |    | -[ACAccountStore accountsWithAccountType:0x2839f4e00 options:0x1 error:0x170482548]
118801 ms     |    |    |    |    | -[ACAccountType description]
118801 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118801 ms     |    |    |    |    |    | -[ACAccountType identifier]
118801 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118801 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x170482210]
118801 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118801 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1704821f0]
118801 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118801 ms     |    |    |    |    | -[ACAccountType encodeWithCoder:0x10227d000]
118801 ms     |    |    |    |    |    | -[ACAccountType identifier]
118801 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118801 ms     |    |    |    |    |    | -[ACAccountType objectID]
118801 ms     |    |    |    |    |    | -[ACAccountType visibility]
118801 ms     |    |    |    |    |    | -[ACAccountType credentialProtectionPolicy]
118801 ms     |    |    |    |    |    | -[ACAccountType supportsAuthentication]
118801 ms     |    |    |    |    |    | -[ACAccountType supportsMultipleAccounts]
118801 ms     |    |    |    |    |    | -[ACAccountType owningBundleID]
118801 ms     |    |    |    |    |    | -[ACAccountType isObsolete]
118803 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118803 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118803 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118803 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118803 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118803 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118803 ms     |    |    |    |    | -[ACAccount description]
118803 ms     |    |    |    |    |    | -[ACAccount username]
118803 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118803 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118803 ms     |    |    |    |    |    | -[ACAccount identifier]
118803 ms     |    |    |    |    | -[ACAccount description]
118803 ms     |    |    |    |    |    | -[ACAccount username]
118803 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118803 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118803 ms     |    |    |    |    |    | -[ACAccount identifier]
118803 ms     |    |    |    |    | -[ACAccount description]
118803 ms     |    |    |    |    |    | -[ACAccount username]
118803 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118803 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118803 ms     |    |    |    |    |    | -[ACAccount identifier]
118803 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
118803 ms     |    | -[ACAccount isActive]
118803 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
118803 ms     |    | -[ACAccount isActive]
118803 ms     | -[ACAccount ams_isActiveForMediaType:0x1e77eaeb0]
118803 ms     |    | -[ACAccount isActive]
           /* TID 0xf107 */
118835 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807dac40]
           /* TID 0x103 */
118835 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169dc40]
118835 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807dac40]
118835 ms  -[ACAccount credentialsChanged:0x28169dc40]
118835 ms     | -[ACAccount identifier]
118835 ms     | -[ACAccount isPropertyDirty:0x1e7417d98]
           /* TID 0xf107 */
118843 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807c0b00]
           /* TID 0x103 */
118843 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x28169dc40]
118843 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807c0b00]
118843 ms  -[ACAccount credentialsChanged:0x28169dc40]
118843 ms     | -[ACAccount identifier]
118843 ms     | -[ACAccount isPropertyDirty:0x1e7417d98]
118856 ms  -[ACNotificationRebroadcaster _accountStoreDidChange:0x281d0a460]
118856 ms  -[ACAccountStore visibleTopLevelAccountsWithAccountTypeIdentifiers:0x283cfb080 completion:0x16fd69d98]
118856 ms     | -[ACAccountStore remoteAccountStoreSession]
118856 ms     |    | -[ACTimedExpirer scheduleExpiration:0x16fd69b90]
118856 ms     |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118856 ms     | -[ACRemoteAccountStoreSession remoteObjectProxyWithErrorHandler:0x16fd69b70]
118856 ms     |    | -[ACRemoteAccountStoreSession _connection]
118857 ms  -[AMSAccountsChangedObservable _accountStoreDidChange:0x28169e520]
118857 ms     | +[AMSLogConfig sharedAccountsConfig]
118857 ms     | -[AMSLogConfig OSLogObject]
118857 ms     |    | -[AMSLogConfig propertyAccessQueue]
118857 ms     |    | -[AMSLogConfig backingOSLogObject]
           /* TID 0xf107 */
118858 ms  -[ACAccountStore dmc_visibleRemoteManagementAccounts]
118858 ms     | -[ACAccountStore dmc_RemoteManagementAccounts]
118858 ms     |    | -[ACAccountStore dmc_RemoteManagementAccountType]
118858 ms     |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58]
118858 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58 error:0x0]
118858 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118858 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1701c64c0]
118858 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0xf427 */
118858 ms  -[AACloudServiceOwner accountForService:0x1ecb2df10]
           /* TID 0xf107 */
118858 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1701c64a0]
118858 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xf427 */
118858 ms     | +[AACloudServiceOwner _serviceTypeForPlatform]
118858 ms     | -[ACAccountStore aa_primaryAppleAccount]
118858 ms     |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x281020b20 preloadedProperties:0x0 error:0x0]
118858 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
118858 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x170626410]
118858 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0xf107 */
118858 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118858 ms     |    |    |    |    | -[ACAccountType description]
118858 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118858 ms     |    |    |    |    |    | -[ACAccountType identifier]
           /* TID 0xf427 */
118859 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1706263f0]
           /* TID 0xf107 */
118859 ms     |    | -[ACAccountStore accountsWithAccountType:0x2839f4e00]
118859 ms     |    |    | -[ACAccountType description]
118859 ms     |    |    |    | -[ACAccountType accountTypeDescription]
118859 ms     |    |    |    | -[ACAccountType identifier]
118859 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
118859 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1701c6470]
118859 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
           /* TID 0xf427 */
118859 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0xf107 */
118859 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1701c6450]
118859 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
118859 ms     |    |    | -[ACAccountType encodeWithCoder:0x101a84800]
118859 ms     |    |    |    | -[ACAccountType identifier]
118859 ms     |    |    |    | -[ACAccountType accountTypeDescription]
118859 ms     |    |    |    | -[ACAccountType objectID]
118859 ms     |    |    |    | -[ACAccountType visibility]
118859 ms     |    |    |    | -[ACAccountType credentialProtectionPolicy]
118859 ms     |    |    |    | -[ACAccountType supportsAuthentication]
118859 ms     |    |    |    | -[ACAccountType supportsMultipleAccounts]
118859 ms     |    |    |    | -[ACAccountType owningBundleID]
118859 ms     |    |    |    | -[ACAccountType isObsolete]
           /* TID 0xf427 */
118861 ms     |    |    | -[ACAccount _setAccountStore:0x283916df0]
118861 ms     |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118861 ms     |    |    | -[ACAccount description]
118861 ms     |    |    |    | -[ACAccount username]
118861 ms     |    |    |    |    | -[ACAccount _useParentForCredentials]
118861 ms     |    |    |    |    |    | -[ACAccount authenticationType]
118861 ms     |    |    |    | -[ACAccount identifier]
           /* TID 0x1251f */
118861 ms  +[ACAccount supportsSecureCoding]
           /* TID 0xf427 */
118861 ms     |    | -[ACAccount aa_isAccountClass:0x1e8b42a50]
118861 ms     |    |    | -[ACAccount aa_accountClass]
118861 ms     |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
118861 ms     |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
           /* TID 0x1251f */
118861 ms  +[ACAccountType supportsSecureCoding]
           /* TID 0xf427 */
118861 ms  -[ACAccount userFullName]
118861 ms     | -[ACAccount objectForKeyedSubscript:0x1e7417798]
118861 ms     |    | -[ACAccount accountPropertyForKey:0x1e7417798]
118861 ms     | -[ACAccount objectForKeyedSubscript:0x1e74177d8]
118861 ms     |    | -[ACAccount accountPropertyForKey:0x1e74177d8]
118862 ms     | -[ACAccount objectForKeyedSubscript:0x1e7417798]
118862 ms     |    | -[ACAccount accountPropertyForKey:0x1e7417798]
118862 ms     | -[ACAccount objectForKeyedSubscript:0x1e74177b8]
118862 ms     |    | -[ACAccount accountPropertyForKey:0x1e74177b8]
118862 ms     | -[ACAccount objectForKeyedSubscript:0x1e74177d8]
118862 ms     |    | -[ACAccount accountPropertyForKey:0x1e74177d8]
           /* TID 0x1251f */
118862 ms  -[ACAccount _setAccountStore:0x283911b90]
118862 ms     | -[ACAccountType setAccountStore:0x283911b90]
           /* TID 0xf427 */
118863 ms  -[ACAccount isSubscriber]
118863 ms     | -[ACAccount accountPropertyForKey:0x1ed6c7680]
           /* TID 0x1251f */
118867 ms  -[ACAccountStore dmc_visibleRemoteManagementAccounts]
           /* TID 0x103 */
118867 ms  -[ACNotificationRebroadcaster _accountStoreDidChange:0x281d0d080]
118867 ms  -[ACAccountStore visibleTopLevelAccountsWithAccountTypeIdentifiers:0x283cf3380 completion:0x16fd69d98]
118867 ms     | -[ACAccountStore remoteAccountStoreSession]
118867 ms     |    | -[ACTimedExpirer scheduleExpiration:0x16fd69b90]
118867 ms     |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118867 ms     | -[ACRemoteAccountStoreSession remoteObjectProxyWithErrorHandler:0x16fd69b70]
118867 ms     |    | -[ACRemoteAccountStoreSession _connection]
118867 ms  -[AMSAccountsChangedObservable _accountStoreDidChange:0x281697e00]
118867 ms     | +[AMSLogConfig sharedAccountsConfig]
118867 ms     | -[AMSLogConfig OSLogObject]
118867 ms     |    | -[AMSLogConfig propertyAccessQueue]
118867 ms     |    | -[AMSLogConfig backingOSLogObject]
           /* TID 0x1251f */
118869 ms     | -[ACAccountStore dmc_RemoteManagementAccounts]
118869 ms     |    | -[ACAccountStore dmc_RemoteManagementAccountType]
118869 ms     |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58]
118869 ms     |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418c58 error:0x0]
118869 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118869 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1704824c0]
118869 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118869 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1704824a0]
118869 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118870 ms     |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118870 ms     |    |    |    |    | -[ACAccountType description]
118870 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118870 ms     |    |    |    |    |    | -[ACAccountType identifier]
118870 ms     |    | -[ACAccountStore accountsWithAccountType:0x2839934f0]
118870 ms     |    |    | -[ACAccountType description]
118870 ms     |    |    |    | -[ACAccountType accountTypeDescription]
118870 ms     |    |    |    | -[ACAccountType identifier]
118870 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
118870 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x170482470]
118870 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118870 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x170482450]
118870 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
118870 ms     |    |    | -[ACAccountType encodeWithCoder:0x10227d000]
118870 ms     |    |    |    | -[ACAccountType identifier]
118870 ms     |    |    |    | -[ACAccountType accountTypeDescription]
118870 ms     |    |    |    | -[ACAccountType objectID]
118870 ms     |    |    |    | -[ACAccountType visibility]
118870 ms     |    |    |    | -[ACAccountType credentialProtectionPolicy]
118870 ms     |    |    |    | -[ACAccountType supportsAuthentication]
118870 ms     |    |    |    | -[ACAccountType supportsMultipleAccounts]
118870 ms     |    |    |    | -[ACAccountType owningBundleID]
118870 ms     |    |    |    | -[ACAccountType isObsolete]
           /* TID 0xf427 */
118871 ms  -[ACAccountStore aa_primaryAppleAccount]
118871 ms     | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x28100c120 preloadedProperties:0x0 error:0x0]
118871 ms     |    | -[ACAccountStore remoteAccountStoreSession]
118871 ms     |    |    | -[ACTimedExpirer scheduleExpiration:0x170626450]
118871 ms     |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118871 ms     |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x170626430]
118871 ms     |    |    | -[ACRemoteAccountStoreSession _connection]
           /* TID 0x1251f */
118875 ms  -[ACAccount _setAccountStore:0x283911b90]
118875 ms     | -[ACAccountType setAccountStore:0x283911b90]
           /* TID 0xf427 */
118876 ms     |    | -[ACAccount _setAccountStore:0x283916df0]
118876 ms     |    |    | -[ACAccountType setAccountStore:0x283916df0]
118876 ms     |    | -[ACAccount description]
118876 ms     |    |    | -[ACAccount username]
118876 ms     |    |    |    | -[ACAccount _useParentForCredentials]
118876 ms     |    |    |    |    | -[ACAccount authenticationType]
118876 ms     |    |    | -[ACAccount identifier]
118876 ms     | -[ACAccount aa_isAccountClass:0x1e8b42a50]
118876 ms     |    | -[ACAccount aa_accountClass]
118876 ms     |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
118876 ms     |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
118877 ms  -[AAUIProfilePictureStore initWithAppleAccount:0x282b40ee0 store:0x283916df0]
118877 ms     | -[ACAccountStore aa_grandSlamAccountForiCloudAccount:0x282b40ee0]
118877 ms     |    | -[ACAccountStore aida_accountForiCloudAccount:0x282b40ee0]
118877 ms     |    |    | -[ACAccount aida_alternateDSID]
118877 ms     |    |    |    | -[ACAccount accountPropertyForKey:0x1ecb2ded0]
118877 ms     |    |    | -[ACAccountStore aida_AppleIDAuthenticationAccounts]
118877 ms     |    |    |    | -[ACAccountStore aida_AppleIDAuthenticationAccountType]
118877 ms     |    |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418a38]
118877 ms     |    |    |    |    |    | -[ACAccountStore accountTypeWithAccountTypeIdentifier:0x1e7418a38 error:0x0]
118877 ms     |    |    |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118877 ms     |    |    |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1706263a0]
118877 ms     |    |    |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118877 ms     |    |    |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x170626380]
118877 ms     |    |    |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118878 ms     |    |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118878 ms     |    |    |    |    |    |    | -[ACAccountType description]
118878 ms     |    |    |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118878 ms     |    |    |    |    |    |    |    | -[ACAccountType identifier]
118878 ms     |    |    |    | -[ACAccountStore accountsWithAccountType:0x2839938e0]
118878 ms     |    |    |    |    | -[ACAccountType description]
118878 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118878 ms     |    |    |    |    |    | -[ACAccountType identifier]
118878 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118878 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x170626350]
118878 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118878 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x170626330]
118878 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118878 ms     |    |    |    |    | -[ACAccountType encodeWithCoder:0x10227fa00]
118878 ms     |    |    |    |    |    | -[ACAccountType identifier]
118878 ms     |    |    |    |    |    | -[ACAccountType accountTypeDescription]
118878 ms     |    |    |    |    |    | -[ACAccountType objectID]
118878 ms     |    |    |    |    |    | -[ACAccountType visibility]
118878 ms     |    |    |    |    |    | -[ACAccountType credentialProtectionPolicy]
118878 ms     |    |    |    |    |    | -[ACAccountType supportsAuthentication]
118878 ms     |    |    |    |    |    | -[ACAccountType supportsMultipleAccounts]
118878 ms     |    |    |    |    |    | -[ACAccountType owningBundleID]
118878 ms     |    |    |    |    |    | -[ACAccountType isObsolete]
118880 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118880 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118880 ms     |    |    |    |    | -[ACAccount _setAccountStore:0x283916df0]
118880 ms     |    |    |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118880 ms     |    |    |    |    | -[ACAccount description]
118880 ms     |    |    |    |    |    | -[ACAccount username]
118880 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118880 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118880 ms     |    |    |    |    |    | -[ACAccount identifier]
118880 ms     |    |    |    |    | -[ACAccount description]
118880 ms     |    |    |    |    |    | -[ACAccount username]
118880 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118880 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118880 ms     |    |    |    |    |    | -[ACAccount identifier]
118880 ms     |    |    | -[ACAccount aida_alternateDSID]
118880 ms     |    |    |    | -[ACAccount accountPropertyForKey:0x1ecb2ded0]
118880 ms     |    |    | -[ACAccount accountPropertyForKey:0x1ecb2e030]
118880 ms     |    |    | -[ACAccount username]
118880 ms     |    |    |    | -[ACAccount _useParentForCredentials]
118880 ms     |    |    |    |    | -[ACAccount authenticationType]
118880 ms     |    |    | -[ACAccount username]
118880 ms     |    |    |    | -[ACAccount _useParentForCredentials]
118880 ms     |    |    |    |    | -[ACAccount authenticationType]
118880 ms     |    |    | -[ACAccount aida_alternateDSID]
118880 ms     |    |    |    | -[ACAccount accountPropertyForKey:0x1ecb2ded0]
118880 ms     | -[AAUIProfilePictureStore initWithAppleAccount:0x282b40ee0 grandSlamAccount:0x282b441c0 accountStore:0x283916df0]
118880 ms     |    | -[ACAccount accountType]
118880 ms     |    | -[ACAccountType identifier]
118880 ms     |    | -[AAGrandSlamSigner initWithAccountStore:0x283916df0 grandSlamAccount:0x282b441c0 appTokenID:0x1e8b3e6d0]
118880 ms     |    | -[AAUIProfilePictureStore initWithAppleAccount:0x282b40ee0 grandSlamSigner:0x281d0c6c0]
118881 ms     |    |    | -[AAGrandSlamSigner accountStore]
118897 ms     |    |    | -[ACAccountStore init]
118897 ms     |    |    |    | -[ACAccountStore initWithRemoteEndpoint:0x0 effectiveBundleID:0x0]
118897 ms     |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
118897 ms     |    |    |    |    |    | -[ACTimedExpirer init]
118897 ms     |    |    |    |    | +[ACTimedExpirer expirerWithTimeout:0x1e]
118897 ms     |    |    |    |    |    | -[ACTimedExpirer init]
118897 ms     |    |    |    |    | +[ACNotificationRebroadcaster sharedRebroadcaster]
118897 ms     |    |    | -[AAUIProfilePictureStore _beginObservingContactStoreDidChangeNotifications]
118897 ms  -[AAUIProfilePictureStore profilePictureForAccountOwnerWithoutMonogramFallback]
118897 ms     | -[ACAccount isEnabledForDataclass:0x1e74165f8]
118897 ms     |    | -[ACAccount enabledDataclasses]
118897 ms     |    |    | -[ACAccount parentAccount]
118897 ms     |    |    | -[ACAccount accountStore]
118897 ms     |    |    | -[ACAccountStore enabledDataclassesForAccount:0x282b40ee0 error:0x170626738]
118897 ms     |    |    |    | -[ACAccount description]
118897 ms     |    |    |    |    | -[ACAccount username]
118897 ms     |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118897 ms     |    |    |    |    |    |    | -[ACAccount authenticationType]
118897 ms     |    |    |    |    | -[ACAccount identifier]
118897 ms     |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118897 ms     |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1706264d0]
118897 ms     |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118897 ms     |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1706264b0]
118897 ms     |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118897 ms     |    |    |    | -[ACAccount identifier]
118899 ms     |    |    | -[ACTrackedSet initWithSet:0x28169e720]
118899 ms     |    |    |    | -[ACTrackedSet _initWithEnumerable:0x28169e720 count:0x3]
118899 ms     |    |    |    |    | -[ACTrackedSet initWithObjects:0x28169f900 count:0x3]
118899 ms     | -[ACAccount aa_personID]
118899 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b42670]
118899 ms     | +[AAUIServerSuppliedProfilePictureCache sharedCache]
118899 ms     |    | -[AAUIServerSuppliedProfilePictureCache init]
118899 ms     | -[AAUIServerSuppliedProfilePictureCache profilePictureForPersonID:0x28164eb60 diameter:0x1706267b0 serverFetchBlock:0x70377d30]
118899 ms     |    | -[AAUIServerSuppliedProfilePictureCache _ensureMinimumPictureDiameter_mustBeSynchronized:0xf427]
118899 ms     |    | -[AAUIServerSuppliedProfilePictureCacheEntry description]
118899 ms     |    | -[AAUIServerSuppliedProfilePictureCacheEntry description]
118899 ms     |    | -[AAUIServerSuppliedProfilePictureCacheEntry picture]
118899 ms     |    | -[AAUIServerSuppliedProfilePictureCacheEntry updating]
118899 ms     |    | -[AAUIServerSuppliedProfilePictureCacheEntry expired]
118899 ms     |    | -[AAUIServerSuppliedProfilePictureCacheEntry setUpdating:0x1]
118899 ms     |    | -[AAUIServerSuppliedProfilePictureCacheEntry serverCacheTag]
118899 ms     |    | -[AAUIProfilePictureStore _fetchProfilePictureForAccountOwnerFromServer:0x28164eb60 serverCacheTag:0x0 completion:0x0]
118899 ms     |    |    | -[AAMyPhotoRequest initWithAccount:0x282b40ee0]
118899 ms     |    |    | -[AAMyPhotoRequest setServerCacheTag:0x0]
118899 ms     |    |    | -[AAUIProfilePictureStore _fetchProfilePictureWithRequest:0x2836f6340 personID:0x28164eb60 completion:0x0]
118899 ms     |    |    |    | -[AAUIProfilePictureStore _fetchProfilePictureSupersetWithRequest:0x2836f6340 personID:0x28164eb60 completion:0x170626658]
118899 ms     |    |    |    |    | -[AARequest performRequestWithHandler:0x1706265e8]
118899 ms     |    |    |    |    |    | +[AAURLSession sharedSession]
118899 ms     |    |    |    |    |    | -[AARequest performRequestWithSession:0x281c395c0 withHandler:0x1706265e8]
118899 ms  -[AAUIProfilePictureStore profilePictureForAccountOwner]
118899 ms     | -[AAUIProfilePictureStore profilePictureForAccountOwnerWithoutMonogramFallback]
118899 ms     |    | -[ACAccount isEnabledForDataclass:0x1e74165f8]
118899 ms     |    |    | -[ACAccount enabledDataclasses]
118899 ms     |    |    |    | -[ACAccount parentAccount]
118899 ms     |    | -[ACAccount aa_personID]
118899 ms     |    |    | -[ACAccount accountPropertyForKey:0x1e8b42670]
118899 ms     |    | +[AAUIServerSuppliedProfilePictureCache sharedCache]
118899 ms     |    | -[AAUIServerSuppliedProfilePictureCache profilePictureForPersonID:0x28164eb60 diameter:0x170626760 serverFetchBlock:0x8]
118899 ms     |    |    | -[AAUIServerSuppliedProfilePictureCache _ensureMinimumPictureDiameter_mustBeSynchronized:0xf427]
118899 ms     |    |    | -[AAUIServerSuppliedProfilePictureCacheEntry description]
118899 ms     |    |    | -[AAUIServerSuppliedProfilePictureCacheEntry picture]
118899 ms     |    |    | -[AAUIServerSuppliedProfilePictureCacheEntry updating]
118899 ms     | -[ACAccount aa_firstName]
118899 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b3c550]
118899 ms     | -[ACAccount aa_lastName]
118899 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b3c570]
118899 ms     | -[AAUIProfilePictureStore _fallbackProfilePictureForPersonWithFirstName:0x28164d340 lastName:0x28164f8a0]
118899 ms     |    | -[AAUIProfilePictureStore _monogrammer]
           /* TID 0xf107 */
118899 ms  -[AAMyPhotoRequest urlString]
118899 ms     | +[AAURLConfiguration urlConfiguration]
118899 ms     |    | +[AAURLConfiguration _urlConfigurationWithError:0x0]
118899 ms     |    |    | +[AAURLConfiguration remoteServer]
118899 ms     |    |    | -[AARemoteServer configurationWithCompletion:0x1701c6d48]
118899 ms     |    |    |    | -[AARemoteServer _configurationAndResponseWithCompletion:0x1701c6ce8]
118899 ms     |    |    |    |    | -[AARemoteServer _configurationCacheInvalidatingIfNecessary]
118899 ms     |    |    |    |    |    | -[AARemoteServer _configurationLock_configurationCacheInvalidatingIfNecessary]
118899 ms     |    |    |    |    |    |    | -[AARemoteServerConfigurationCache creationDate]
118899 ms     |    |    |    |    | -[AARemoteServerConfigurationCache configuration]
118900 ms     |    |    |    |    | -[AARemoteServerConfigurationCache response]
118900 ms     | -[AAURLConfiguration getMyPhotoURL]
118900 ms     |    | -[AAURLConfiguration _urlStringForKey:0x1e8b3ee90]
118900 ms  -[AAMyPhotoRequest urlRequest]
118900 ms     | -[AARequest urlRequest]
118900 ms     |    | -[AAMyPhotoRequest urlString]
118900 ms     |    |    | +[AAURLConfiguration urlConfiguration]
118900 ms     |    |    |    | +[AAURLConfiguration _urlConfigurationWithError:0x0]
118900 ms     |    |    |    |    | +[AAURLConfiguration remoteServer]
118900 ms     |    |    |    |    | -[AARemoteServer configurationWithCompletion:0x1701c6b78]
118900 ms     |    |    |    |    |    | -[AARemoteServer _configurationAndResponseWithCompletion:0x1701c6b18]
118900 ms     |    |    |    |    |    |    | -[AARemoteServer _configurationCacheInvalidatingIfNecessary]
118900 ms     |    |    |    |    |    |    |    | -[AARemoteServer _configurationLock_configurationCacheInvalidatingIfNecessary]
118900 ms     |    |    |    |    |    |    |    |    | -[AARemoteServerConfigurationCache creationDate]
118900 ms     |    |    |    |    |    |    | -[AARemoteServerConfigurationCache configuration]
118900 ms     |    |    |    |    |    |    | -[AARemoteServerConfigurationCache response]
118900 ms     |    |    | -[AAURLConfiguration getMyPhotoURL]
118900 ms     |    |    |    | -[AAURLConfiguration _urlStringForKey:0x1e8b3ee90]
118900 ms     |    | -[AARequest flushCache]
118901 ms     |    | +[AADeviceInfo clientInfoHeader]
118901 ms     |    |    | +[AADeviceInfo clientInfoHeader]
118901 ms     |    |    |    | -[AADeviceInfo productType]
118901 ms     |    |    |    | -[AADeviceInfo osName]
118901 ms     |    |    |    | +[AADeviceInfo osVersion]
118901 ms     |    |    |    | -[AADeviceInfo buildVersion]
118902 ms     |    | +[AAPreferences isExperimentalModeEnabled]
118902 ms     |    |    | +[AADeviceInfo isInternalBuild]
118902 ms     | -[ACAccount description]
118902 ms     |    | -[ACAccount username]
118902 ms     |    |    | -[ACAccount _useParentForCredentials]
118902 ms     |    |    |    | -[ACAccount authenticationType]
118902 ms     |    | -[ACAccount identifier]
118902 ms     | -[ACAccount aa_personID]
118902 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b42670]
118902 ms     | -[ACAccount aa_authToken]
118902 ms     |    | -[ACAccount credential]
118902 ms     |    |    | -[ACAccount credentialWithError:0x0]
118902 ms     |    |    |    | -[ACAccount _useParentForCredentials]
118902 ms     |    |    |    |    | -[ACAccount authenticationType]
118902 ms     |    |    |    | -[ACAccount accountStore]
118902 ms     |    |    |    | -[ACAccountStore credentialForAccount:0x282b40ee0 error:0x0]
118902 ms     |    |    |    |    | -[ACAccount description]
118902 ms     |    |    |    |    |    | -[ACAccount username]
118902 ms     |    |    |    |    |    |    | -[ACAccount _useParentForCredentials]
118902 ms     |    |    |    |    |    |    |    | -[ACAccount authenticationType]
118902 ms     |    |    |    |    |    | -[ACAccount identifier]
118902 ms     |    |    |    |    | -[ACAccountStore remoteAccountStoreSession]
118902 ms     |    |    |    |    |    | -[ACTimedExpirer scheduleExpiration:0x1701c69d0]
118902 ms     |    |    |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118902 ms     |    |    |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1701c69b0]
118902 ms     |    |    |    |    |    | -[ACRemoteAccountStoreSession _connection]
118903 ms     |    |    |    |    | -[ACAccount identifier]
118907 ms     |    |    |    |    | +[ACAccountCredential supportsSecureCoding]
118907 ms     |    |    |    |    | +[ACZeroingString supportsSecureCoding]
118907 ms     |    |    |    |    | -[ACAccountCredential _setOwningAccount:0x282b40ee0]
118907 ms     |    |    |    |    | -[ACAccountCredential description]
118907 ms     |    |    |    | -[ACAccount _installCredentialsChangedObserver]
118908 ms     |    | -[ACAccountCredential token]
118908 ms     |    |    | -[ACAccountCredential credentialItemForKey:0x1e74190b8]
118908 ms     |    |    |    | -[ACZeroingString length]
118908 ms     |    |    |    | -[ACZeroingString getCharacters:0x1203769e0 range:0x0]
118908 ms     | -[ACAccount aa_personID]
118908 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b42670]
118908 ms     | -[ACAccount aa_authToken]
118908 ms     |    | -[ACAccount credential]
118908 ms     |    |    | -[ACAccount credentialWithError:0x0]
118908 ms     |    |    |    | -[ACAccount _useParentForCredentials]
118908 ms     |    |    |    |    | -[ACAccount authenticationType]
118908 ms     |    | -[ACAccountCredential token]
118908 ms     |    |    | -[ACAccountCredential credentialItemForKey:0x1e74190b8]
118908 ms     |    |    |    | -[ACZeroingString length]
118908 ms     |    |    |    | -[ACZeroingString getCharacters:0x120373360 range:0x0]
118908 ms     | -[ACAccount aa_altDSID]
118908 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b3c830]
118908 ms     | -[ACAccount aa_repairState]
118908 ms     |    | -[ACAccount parentAccount]
118908 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b42bf0]
118908 ms  -[AAURLSession dataTaskWithRequest:0x28100a090 completion:0x1701c6e40]
118908 ms     | -[AAURLSession _enqueueRequest:0x28100a090 completion:0x1701c6e40]
118908 ms     |    | -[AKAppleIDSession initWithIdentifier:0x281cc6fa0]
118908 ms     |    | -[AAURLSessionContext _initRequiringSigning:0x0 appleIDSession:0x2807c83c0]
118908 ms  -[AAURLSession _sessionQueue_enqueueTask:0x120376ee0 completion:0x281d00720]
           /* TID 0xc533 */
118910 ms  -[AAURLSessionContext URLSession:0x10401f340 task:0x120376ee0 getAppleIDHeadersForResponse:0x0 completionHandler:0x16fe7e650]
118910 ms     | -[AKAppleIDSession URLSession:0x10401f340 task:0x1203769e0 getAppleIDHeadersForResponse:0x0 completionHandler:0x16fe7e5c0]
118910 ms     |    | -[AKAppleIDSession _generateAppleIDHeadersForSessionTask:0x1203769e0 withCompletion:0x16fe7e538]
118910 ms     |    |    | -[AKAppleIDSession _nativeAnisetteController]
118910 ms     |    |    |    | -[AKAnisetteProvisioningController init]
118910 ms     |    |    | -[AKAnisetteProvisioningController anisetteDataForURLRequest:0x28100dfd0 completion:0x16fe7e428]
118910 ms     |    |    |    | -[AKAnisetteProvisioningController fetchAnisetteDataAndProvisionIfNecessary:0x1 withCompletion:0x16fe7e428]
118910 ms     |    |    |    |    | -[AKAnisetteProvisioningController _anisetteServiceConnection]
118910 ms     |    |    |    |    |    | +[AKAnisetteProvisioningDaemonInterface XPCInterface]
118910 ms     |    |    |    |    |    | +[AKAnisetteProvisioningClientInterface XPCInterface]
           /* TID 0xf427 */
118911 ms     | -[AAUIProfilePictureStore pictureDiameter]
118911 ms  -[AACloudServiceOwner accountForService:0x1ecb2df10]
118912 ms     | +[AACloudServiceOwner _serviceTypeForPlatform]
118912 ms     | -[ACAccountStore aa_primaryAppleAccount]
118912 ms     |    | -[ACAccountStore accountsWithAccountTypeIdentifiers:0x281025dc0 preloadedProperties:0x0 error:0x0]
118912 ms     |    |    | -[ACAccountStore remoteAccountStoreSession]
118912 ms     |    |    |    | -[ACTimedExpirer scheduleExpiration:0x170626410]
118912 ms     |    |    |    |    | -[ACTimedExpirer _unsafeCancelTimer]
118912 ms     |    |    | -[ACRemoteAccountStoreSession synchronousRemoteObjectProxyWithErrorHandler:0x1706263f0]
118912 ms     |    |    |    | -[ACRemoteAccountStoreSession _connection]
118918 ms     |    |    | -[ACAccount _setAccountStore:0x283916df0]
118918 ms     |    |    |    | -[ACAccountType setAccountStore:0x283916df0]
118918 ms     |    |    | -[ACAccount description]
118918 ms     |    |    |    | -[ACAccount username]
118918 ms     |    |    |    |    | -[ACAccount _useParentForCredentials]
118918 ms     |    |    |    |    |    | -[ACAccount authenticationType]
118918 ms     |    |    |    | -[ACAccount identifier]
118918 ms     |    | -[ACAccount aa_isAccountClass:0x1e8b42a50]
118918 ms     |    |    | -[ACAccount aa_accountClass]
118918 ms     |    |    |    | -[ACAccount objectForKeyedSubscript:0x1e8b42c10]
118918 ms     |    |    |    |    | -[ACAccount accountPropertyForKey:0x1e8b42c10]
118918 ms  -[ACAccount userFullName]
118918 ms     | -[ACAccount objectForKeyedSubscript:0x1e7417798]
118918 ms     |    | -[ACAccount accountPropertyForKey:0x1e7417798]
118918 ms     | -[ACAccount objectForKeyedSubscript:0x1e74177d8]
118918 ms     |    | -[ACAccount accountPropertyForKey:0x1e74177d8]
118919 ms     | -[ACAccount objectForKeyedSubscript:0x1e7417798]
118919 ms     |    | -[ACAccount accountPropertyForKey:0x1e7417798]
118919 ms     | -[ACAccount objectForKeyedSubscript:0x1e74177b8]
118919 ms     |    | -[ACAccount accountPropertyForKey:0x1e74177b8]
118919 ms     | -[ACAccount objectForKeyedSubscript:0x1e74177d8]
118919 ms     |    | -[ACAccount accountPropertyForKey:0x1e74177d8]
           /* TID 0x1251f */
118919 ms  +[AKAnisetteData supportsSecureCoding]
118919 ms  -[AKAppleIDSession _genericAppleIDHeadersDictionaryForRequest:0x28100dfd0]
           /* TID 0xf427 */
118919 ms  -[ACAccount isSubscriber]
118919 ms     | -[ACAccount accountPropertyForKey:0x1ed6c7680]
           /* TID 0x1251f */
118920 ms     | +[AKDevice currentDevice]
118920 ms     | -[AKDevice locale]
118920 ms  -[AKAnisetteData machineID]
118920 ms  -[AKAnisetteData oneTimePassword]
118920 ms  -[AKAnisetteData routingInfo]
118921 ms  +[AKDevice currentDevice]
118921 ms  -[AKDevice localUserUUID]
118921 ms  +[AKConfiguration sharedConfiguration]
118921 ms  -[AKConfiguration shouldAllowTestApplication]
118921 ms     | -[AKConfiguration configurationValueForKey:0x1e8b17ff8]
118921 ms  -[AKAppleIDSession _pairedDeviceAnisetteController]
118921 ms  -[AAURLSessionContext _additionalHeadersForRequest:0x281025f50 completion:0x170482270]
118921 ms     | -[AAURLSessionContext requiresSigning]
           /* TID 0xc533 */
118921 ms  +[NSError _web_errorWithDomain:0x1f61f0440 code:0xfffffffffffffc19 URL:0x283993c60]
118921 ms     | -[NSError _web_initWithDomain_nowarn:0x1f61f0440 code:0xfffffffffffffc19 URL:0x283993c60]
118921 ms     |    | -[NSError initWithDomain:0x1f61f0440 code:0xfffffffffffffc19 userInfo:0x281691260]
118921 ms  -[NSError userInfo]
118921 ms  -[NSError domain]
118921 ms  -[NSError code]
118921 ms  -[NSError domain]
118921 ms  -[NSError code]
118921 ms  -[NSError userInfo]
118921 ms  -[NSError userInfo]
           /* TID 0xf427 */
118921 ms  -[AAUIProfilePictureStore profilePictureForAccountOwnerWithoutMonogramFallback]
118921 ms     | -[ACAccount isEnabledForDataclass:0x1e74165f8]
118921 ms     |    | -[ACAccount enabledDataclasses]
118921 ms     |    |    | -[ACAccount parentAccount]
118921 ms     | -[ACAccount aa_personID]
118921 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b42670]
118921 ms     | +[AAUIServerSuppliedProfilePictureCache sharedCache]
118921 ms     | -[AAUIServerSuppliedProfilePictureCache profilePictureForPersonID:0x28164eb60 diameter:0x1706267b0 serverFetchBlock:0x8]
118921 ms     |    | -[AAUIServerSuppliedProfilePictureCache _ensureMinimumPictureDiameter_mustBeSynchronized:0xf427]
118921 ms     |    | -[AAUIServerSuppliedProfilePictureCacheEntry description]
           /* TID 0xc533 */
118921 ms  -[NSError domain]
118922 ms  -[NSError code]
118922 ms  +[NSError errorWithDomain:0x1f61f0440 code:0xfffffffffffffc19 userInfo:0x2816a06c0]
118922 ms     | -[NSError initWithDomain:0x1f61f0440 code:0xfffffffffffffc19 userInfo:0x2816a06c0]
118922 ms  -[NSError code]
118922 ms  -[NSError code]
118922 ms  -[NSError description]
118922 ms     | -[NSError userInfo]
118922 ms     | -[NSError domain]
118922 ms     | -[NSError userInfo]
118922 ms     | -[NSError domain]
118922 ms     | -[NSError userInfo]
118922 ms     | -[NSError userInfo]
118922 ms     | -[NSError domain]
118922 ms     | -[NSError code]
           /* TID 0xf427 */
118922 ms     |    | -[AAUIServerSuppliedProfilePictureCacheEntry picture]
118922 ms     |    | -[AAUIServerSuppliedProfilePictureCacheEntry updating]
118922 ms  -[AAUIProfilePictureStore profilePictureForAccountOwner]
118922 ms     | -[AAUIProfilePictureStore profilePictureForAccountOwnerWithoutMonogramFallback]
118922 ms     |    | -[ACAccount isEnabledForDataclass:0x1e74165f8]
118922 ms     |    |    | -[ACAccount enabledDataclasses]
118922 ms     |    |    |    | -[ACAccount parentAccount]
118922 ms     |    | -[ACAccount aa_personID]
118922 ms     |    |    | -[ACAccount accountPropertyForKey:0x1e8b42670]
118922 ms     |    | +[AAUIServerSuppliedProfilePictureCache sharedCache]
118922 ms     |    | -[AAUIServerSuppliedProfilePictureCache profilePictureForPersonID:0x28164eb60 diameter:0x170626760 serverFetchBlock:0x8]
118922 ms     |    |    | -[AAUIServerSuppliedProfilePictureCache _ensureMinimumPictureDiameter_mustBeSynchronized:0xf427]
118922 ms     |    |    | -[AAUIServerSuppliedProfilePictureCacheEntry description]
118922 ms     |    |    | -[AAUIServerSuppliedProfilePictureCacheEntry picture]
118922 ms     |    |    | -[AAUIServerSuppliedProfilePictureCacheEntry updating]
118922 ms     | -[ACAccount aa_firstName]
118922 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b3c550]
118922 ms     | -[ACAccount aa_lastName]
118922 ms     |    | -[ACAccount accountPropertyForKey:0x1e8b3c570]
118922 ms     | -[AAUIProfilePictureStore _fallbackProfilePictureForPersonWithFirstName:0x28164d340 lastName:0x28164f8a0]
118922 ms     |    | -[AAUIProfilePictureStore _monogrammer]
118922 ms     | -[AAUIProfilePictureStore pictureDiameter]
           /* TID 0xf107 */
118969 ms  -[ACAccount _setObjectID:0x2839a8230]
118969 ms  -[ACAccount _clearCachedChildAccounts]
118969 ms  -[ACAccount _setAccountStore:0x2839f4a10]
118969 ms     | -[ACAccountType setAccountStore:0x2839f4a10]
118969 ms  -[ACAccount _clearDirtyProperties]
118969 ms     | -[ACTrackedSet allObjects]
118969 ms     | -[ACTrackedSet initWithArray:0x281690840]
118969 ms     |    | -[ACTrackedSet _initWithEnumerable:0x281690840 count:0x22]
118969 ms     |    |    | -[ACTrackedSet initWithObjects:0x12962ddb0 count:0x22]
118969 ms     | -[ACTrackedSet allObjects]
118969 ms     | -[ACTrackedSet initWithArray:0x281690940]
118969 ms     |    | -[ACTrackedSet _initWithEnumerable:0x281690940 count:0x3]
118969 ms     |    |    | -[ACTrackedSet initWithObjects:0x281690dc0 count:0x3]
118969 ms     | -[ACAccountCredential _clearDirtyProperties]
118969 ms  -[ACAccountStore _unsanitizeError:0x0]
           /* TID 0x1251f */
118969 ms  -[AASignInFlowController _addKeysAndEnrollCDPStateForAccount:0x282b408c0 withCDPContext:0x282558580 completion:0x281d08510]
118969 ms     | -[AASignInFlowController _enrollCDPStateForAccount:0x282b408c0 withCDPContext:0x282558580 completion:0x281d08510]
           /* TID 0xf107 */
119050 ms  -[ACAccountStoreClientSideListener accountCredentialsDidChangeForAccountWithIdentifier:0x2807dba40]
           /* TID 0x103 */
119051 ms  -[ACMonitoredAccountStore credentialsChangedNotification:0x281690da0]
119051 ms     | -[ACMonitoredAccountStore monitoredAccountWithIdentifier:0x2807dba40]
119051 ms  -[ACAccount credentialsChanged:0x281690da0]
119051 ms     | -[ACAccount identifier]
119051 ms  -[ACAccount credentialsChanged:0x281690da0]
119051 ms     | -[ACAccount identifier]
           /* TID 0xf107 */
119473 ms  -[AAURLSession URLSession:0x10401f340 task:0x120376ee0 didCompleteWithError:0x0]
119473 ms     | -[AAURLSession _sessionQueue_dequeueTask:0x120376ee0 withResponse:0x2816a24e0 error:0x0]
119473 ms     |    | -[AARequest _handleDataTaskCompletionWithData:0x0 response:0x2816a24e0 error:0x0]
119474 ms     |    |    | +[AAMyPhotoRequest responseClass]
119475 ms     |    |    | -[AAPhotoResponse initWithHTTPResponse:0x2816a24e0 data:0x0]
119475 ms     |    |    |    | -[AAResponse initWithHTTPResponse:0x2816a24e0 data:0x0]
119475 ms     |    |    |    |    | -[AAResponse initWithHTTPResponse:0x2816a24e0 data:0x0 bodyIsPlist:0x1]
119476 ms     |    |    |    |    |    | -[AAResponse _parsePlistResponse:0x0]
119476 ms     |    |    |    |    |    | -[AAResponse responseDictionary]
119476 ms     |    |    |    |    |    | -[AAResponse responseDictionary]
119477 ms     |    |    |    |    |    | -[AAResponse error]
119477 ms     |    |    |    |    |    | +[NSError errorWithDomain:0x1e8b3abf0 code:0x194 userInfo:0x2816a31e0]
119477 ms     |    |    |    |    |    |    | -[NSError initWithDomain:0x1e8b3abf0 code:0x194 userInfo:0x2816a31e0]
119477 ms     |    |    |    |    |    | -[AAResponse setError:0x281d60db0]
119477 ms     |    |    |    | -[AAResponse data]
119477 ms     |    |    | -[AAResponse statusCode]
119478 ms     |    |    | +[AAUIServerSuppliedProfilePictureCache sharedCache]
119478 ms     |    |    | -[AAUIServerSuppliedProfilePictureCache updateProfilePicture:0x0 didReceiveNewPicture:0x1 serverCacheTag:0x0 forPersonID:0x28164eb60]
119478 ms     |    |    |    | -[AAUIServerSuppliedProfilePictureCacheEntry description]
119478 ms     |    |    |    | -[AAUIServerSuppliedProfilePictureCacheEntry setUpdating:0x0]
119478 ms     |    |    |    | -[AAUIServerSuppliedProfilePictureCacheEntry picture]
119479 ms     |    |    |    | -[AAUIServerSuppliedProfilePictureCacheEntry setPicture:0x0]
119479 ms     |    |    |    | -[AAUIServerSuppliedProfilePictureCacheEntry description]
           /* TID 0x103 */
124786 ms  -[AAUISpinnerViewController viewWillDisappear:0x1]
124860 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
124860 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
124869 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
124869 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
124870 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
124870 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
124899 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
124899 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
124913 ms  +[NSError errorWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
124913 ms     | -[NSError initWithDomain:0x1e856c458 code:0x191 userInfo:0x0]
           /* TID 0xf427 */
141362 ms  -[ACTimedExpirer _cancelTimer]
141363 ms     | -[ACTimedExpirer _unsafeCancelTimer]
141363 ms  -[ACAccountStoreClientSideListener connectionWasInvalidated]
146495 ms  -[ACTimedExpirer _cancelTimer]
146495 ms     | -[ACTimedExpirer _unsafeCancelTimer]
146496 ms  -[ACAccountStoreClientSideListener connectionWasInvalidated]
149545 ms  -[ACTimedExpirer _cancelTimer]
149549 ms     | -[ACTimedExpirer _unsafeCancelTimer]
149549 ms  -[ACAccountStoreClientSideListener connectionWasInvalidated]
           /* TID 0x11c3b */
149549 ms  -[ACTimedExpirer _cancelTimer]
149549 ms     | -[ACTimedExpirer _unsafeCancelTimer]
149550 ms  -[ACAccountStoreClientSideListener connectionWasInvalidated]

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2023-06-24 23:46:25

Android

Android

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-04-29 09:27:09

commands

常用命令举例

此处列出，Frida的frida-trace去hook安卓的app时，常用的具体命令：

frida-trace -U -n system_server --runtime=v8 -j '*ActivityManagerService!*'

frida-trace -U -n system_server --runtime=v8 -j '*handleProcessStartedLocked!*'

frida-trace -U -n system_server --runtime=v8 -j '*ActivityManager!*' -j '*!startProcessLocked' -j '*!handleProcessStartedLocked'

frida-trace -U -n system_server --runtime=v8 -j '*ActivityManager!*' -j '*!startProcessLocked' -j '*!handleProcessStartedLocked' -J '*!checkComponentPermission'

frida-trace -U -n system_server --runtime=v8 -j '*ActivityManager!*' -j '*!*startProcessLocked*' -j '*!*handleProcessStartedLocked*' -J '*!checkComponentPermission'

frida-trace -U -N com.wallpaper.hd.funny --runtime=v8 -j '*ActivityManager!*' -j '*!*startProcessLocked*' -j '*!*handleProcessStartedLocked*' -J '*!checkComponentPermission'

frida-trace -U -n system_server --runtime=v8 -j '*!startInstrumentation'

frida-trace -U -n system_server --runtime=v8 -j '*!bindService'
frida-trace -U -n system_server --runtime=v8 -j '*!bindService' -j '*!handleProcessStartedLocked'

frida-trace -U -n system_server --runtime=v8 -j '*!startService' -j '*!handleProcessStartedLocked' -j '*!forceStopPackage'

frida-trace -U -N com.wallpaper.hd.funny --runtime=v8 -j '*!execTransact' -j '*!onTransact'

frida-trace -U -N com.wallpaper.hd.funny -i 'onTransact'

frida-trace -U -i 'onTransact' -p 21925

frida-trace -U -N com.wallpaper.hd.funny -i '*onTransact*'

frida-trace -U -n system_server -i '*onTransact*'

frida-trace -U -n system_server --runtime=v8 -j '*!startService' -j '*!handleProcessStartedLocked' -j '*!forceStopPackage'  -J '*!checkComponentPermission' -i '*onTransact*'

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-04-29 09:28:09

安卓进程system_server

安卓系统进程system_server

此处列出frida-trace去hook安卓系统进程system_server的效果：

去hook：

类的全部函数

ActivityManager

类的部分函数

ProcessList

ActivityManagerService

命令：

frida-trace -U -n system_server --runtime=v8 -j '*ActivityManager!*' -j '*!startProcessLocked' -j '*!handleProcessStartedLocked'

测试和触发：

测试了2次进程被杀和重启

redfin:/ # ps -A | grep lift
u0_a243      14053 12478 14853776 110652 do_epoll_wait      0 S com.lift.filemanager.android:sist
u0_a243      14380 12478 33445164 159208 do_epoll_wait      0 S com.lift.filemanager.android
u0_a243      16957 12478 14876024 110164 do_epoll_wait      0 S com.lift.filemanager.android:lift
u0_a243      20739 12478 14909548 110300 do_epoll_wait      0 S com.lift.filemanager.android:dae
redfin:/ # kill 16957
redfin:/ # ps -A | grep lift
u0_a243      28151 26549 14881452 110076 do_epoll_wait      0 S com.lift.filemanager.android:sist
u0_a243      28164 26549 14828204 109280 do_epoll_wait      0 S com.lift.filemanager.android:dae
u0_a243      28337 26549 33535192 167804 do_epoll_wait      0 S com.lift.filemanager.android
u0_a243      30398 26549 14895600 112296 do_epoll_wait      0 S com.lift.filemanager.android:lift
redfin:/ # kill 28164
redfin:/ # ps -A | grep lift
u0_a243       2519 26549 14968296 108068 do_epoll_wait      0 S com.lift.filemanager.android:dae
u0_a243      28151 26549 14881452 108304 do_epoll_wait      0 S com.lift.filemanager.android:sist
u0_a243      28337 26549 33482836 166176 do_epoll_wait      0 S com.lift.filemanager.android
u0_a243      30398 26549 14878116 110572 do_epoll_wait      0 S com.lift.filemanager.android:lift
redfin:/ # kill 30398

log：

➜  frida git:(master) ✗ frida-trace -U -n system_server --runtime=v8 -j '*ActivityManager!*' -j '*!startProcessLocked' -j '*!handleProcessStartedLocked'
Instrumenting...
NfcActivityManager.$init: Loaded handler at "/Users/crifan/dev/dev_root/androidReverse/keepAlive/LiftFileManager/dynamicDebug/frida/frida/__handlers__/android.nfc.NfcActivityManager/_init.js"
...
IActivityManager.addInstrumentationResults: Loaded handler at "/Users/crifan/dev/dev_root/androidReverse/keepAlive/LiftFileManager/dynamicDebug/frida/frida/__handlers__/android.app.IActivityManager/addInstrumentationResults.js"
...
ActivityManager.-$$Nest$smgetTaskService: Loaded handler at "/Users/crifan/dev/dev_root/androidReverse/keepAlive/LiftFileManager/dynamicDebug/frida/frida/__handlers__/android.app.ActivityManager/___Nest_smgetTaskService.js"
ActivityManager.$init: Loaded handler at "/Users/crifan/dev/dev_root/androidReverse/keepAlive/LiftFileManager/dynamicDebug/frida/frida/__handlers__/android.app.ActivityManager/_init.js"
ActivityManager.broadcastStickyIntent: Loaded handler at "/Users/crifan/dev/dev_root/androidReverse/keepAlive/LiftFileManager/dynamicDebug/frida/frida/__handlers__/android.app.ActivityManager/broadcastStickyIntent.js"
...
ActivityManagerService.startProcessLocked: Loaded handler at "/Users/crifan/dev/dev_root/androidReverse/keepAlive/LiftFileManager/dynamicDebug/frida/frida/__handlers__/com.android.server.am.ActivityManagerService/startProcessLocked.js"
Started tracing 375 functions. Press Ctrl+C to stop.
           /* TID 0x71c9 */
  1223 ms  ActivityManager.checkUidPermission("android.permission.INTERACT_ACROSS_USERS_FULL", 10241)
  1227 ms  <= -1
...

 11257 ms  ActivityManager.checkComponentPermission("android.permission.GET_TASKS", 10241, -1, true)
 11257 ms  <= 0
           /* TID 0x6880 */
 12225 ms  ActivityManagerService.startProcessLocked("com.lift.filemanager.android:dae", "<instance: android.content.pm.ApplicationInfo>", true, 0, "<instance: com.android.server.am.HostingRecord>", 0, false, false)
 12230 ms     | ProcessList.startProcessLocked("com.lift.filemanager.android:dae", "<instance: android.content.pm.ApplicationInfo>", true, 0, "<instance: com.android.server.am.HostingRecord>", 0, false, false, 0, false, 0, null, null, null, null, null)
 12232 ms     |    | ProcessList.startProcessLocked("<instance: com.android.server.am.ProcessRecord>", "<instance: com.android.server.am.HostingRecord>", 0, null)
 12233 ms     |    |    | ProcessList.startProcessLocked("<instance: com.android.server.am.ProcessRecord>", "<instance: com.android.server.am.HostingRecord>", 0, false, false, null)
 12234 ms     |    |    |    | ProcessList.startProcessLocked("<instance: com.android.server.am.HostingRecord>", "android.app.ActivityThread", "<instance: com.android.server.am.ProcessRecord>", 10243, [3002,3003,50243,20243,9997], 17377280, 0, 1, "default:targetSdkVersion=33:complete", "arm64-v8a", "arm64", null, "371714070", "371714070")
 12235 ms     |    |    |    | <= true
 12235 ms     |    |    | <= true
 12235 ms     |    | <= true
 12236 ms     | <= "<instance: com.android.server.am.ProcessRecord>"
 12236 ms  <= "<instance: com.android.server.am.ProcessRecord>"
           /* TID 0x6881 */
 12272 ms  ProcessList.handleProcessStartedLocked("<instance: com.android.server.am.ProcessRecord>", "<instance: android.os.Process$ProcessStartResult>", "132")
 12273 ms     | ProcessList.handleProcessStartedLocked("<instance: com.android.server.am.ProcessRecord>", 2519, false, "132", false)
 12274 ms     | <= true
 12274 ms  <= true
           /* TID 0x71c8 */
 12368 ms  ActivityManager.processStateAmToProto(4)

...

 62818 ms  ActivityManager.isForegroundService(8)
 62818 ms  <= false
 62818 ms  ActivityManager.processStateAmToProto(19)
 62818 ms  <= 1018
 62818 ms  ActivityManager.isForegroundService(19)
 62819 ms  <= false
           /* TID 0x6880 */
 63812 ms  ActivityManagerService.startProcessLocked("com.lift.filemanager.android:lift", "<instance: android.content.pm.ApplicationInfo>", true, 0, "<instance: com.android.server.am.HostingRecord>", 0, false, false)
 63818 ms     | ProcessList.startProcessLocked("com.lift.filemanager.android:lift", "<instance: android.content.pm.ApplicationInfo>", true, 0, "<instance: com.android.server.am.HostingRecord>", 0, false, false, 0, false, 0, null, null, null, null, null)
 63823 ms     |    | ProcessList.startProcessLocked("<instance: com.android.server.am.ProcessRecord>", "<instance: com.android.server.am.HostingRecord>", 0, null)
 63826 ms     |    |    | ProcessList.startProcessLocked("<instance: com.android.server.am.ProcessRecord>", "<instance: com.android.server.am.HostingRecord>", 0, false, false, null)
 63834 ms     |    |    |    | ProcessList.startProcessLocked("<instance: com.android.server.am.HostingRecord>", "android.app.ActivityThread", "<instance: com.android.server.am.ProcessRecord>", 10243, [3002,3003,50243,20243,9997], 17377280, 0, 1, "default:targetSdkVersion=33:complete", "arm64-v8a", "arm64", null, "371765665", "371765665")
 63838 ms     |    |    |    | <= true
 63839 ms     |    |    | <= true
 63840 ms     |    | <= true
 63841 ms     | <= "<instance: com.android.server.am.ProcessRecord>"
 63843 ms  <= "<instance: com.android.server.am.ProcessRecord>"
           /* TID 0x6881 */
 63861 ms  ProcessList.handleProcessStartedLocked("<instance: com.android.server.am.ProcessRecord>", "<instance: android.os.Process$ProcessStartResult>", "133")
 63862 ms     | ProcessList.handleProcessStartedLocked("<instance: com.android.server.am.ProcessRecord>", 2782, false, "133", false)
 63863 ms     | <= true
 63863 ms  <= true
           /* TID 0x71c9 */
 63927 ms  ActivityManager.processStateAmToProto(4)
...

截图：

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-04-29 09:38:26

Frida工具函数

Frida工具类函数

最新完整代码详见：

JS的工具类：JsUtil

https://github.com/crifan/crifanLib/blob/master/javascript/JsUtil.js

Frida

Frida的通用的工具类：FridaUtil

https://github.com/crifan/crifanLib/blob/master/javascript/FridaUtil.js

Frida的Android的工具类：FridaAndroidUtil

https://github.com/crifan/crifanLib/blob/master/javascript/FridaAndroidUtil.js

Frida的iOS的工具类：FridaiOSUtil

https://github.com/crifan/crifanLib/blob/master/javascript/FridaiOSUtil.js

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-08-24 11:07:13

通用js函数

通用js函数

最新完整代码详见：

JS的工具类：JsUtil

https://github.com/crifan/crifanLib/blob/master/javascript/JsUtil.js

此处整理Frida的js中，通用的js方面的函数：

对象=Object: Dict/List/...

toJsonStr：转换成JSON字符串（用于打印js对象）

// convert Object(dict/list/...) to JSON string
function toJsonStr(curObj, singleLine=false, space=2){
  // console.log("toJsonStr: singleLine=" + singleLine)
  // var jsonStr = JSON.stringify(curObj, null, 2)
  var jsonStr = JSON.stringify(curObj, null, space)
  if(singleLine) {
    // jsonStr = jsonStr.replace(/\\n/g, '')
    jsonStr = jsonStr.replace(/\n/g, '')
  }
  return jsonStr
  // return curObj.toString()
}

用法举例：

console.log("Add: address=" + address + ", moduleInfoDict=" + toJsonStr(moduleInfoDict) + " into cache gAddrToModuleInfoDict")

输出：

[*] Add: address=0x1098ad910, moduleInfoDict={
  "fileName": "/private/var/containers/Bundle/Application/02BED373-87F5-4B48-9F4B-70E853B20267/WhatsApp.app/Frameworks/SharedModules.framework/SharedModules",
  "fileAddress": "0x108c84000",
  "symbolName": "WAGetWCIHttpImpl",
  "symbolAddress": "0x1098abad0"
} into cache gAddrToModuleInfoDict

String字符串

occurrences：字符串搜索

/** Function that count occurrences of a substring in a string;
 * @param {String} string               The string
 * @param {String} subString            The sub string to search for
 * @param {Boolean} [allowOverlapping]  Optional. (Default:false)
 *
 * @author Vitim.us https://gist.github.com/victornpb/7736865
 * @see Unit Test https://jsfiddle.net/Victornpb/5axuh96u/
 * @see https://stackoverflow.com/a/7924240/938822
 * @example occurrences("- setExportedObject:", ":") => 1
 */
function occurrences(string, subString, allowOverlapping) {
    // console.log("string=" + string + ",subString=" + subString + ", allowOverlapping=" + allowOverlapping)
    string += "";
    subString += "";
    if (subString.length <= 0) return (string.length + 1);

    var n = 0,
        pos = 0,
        step = allowOverlapping ? 1 : subString.length;

    while (true) {
        pos = string.indexOf(subString, pos);
        // console.log("pos=" + pos)
        if (pos >= 0) {
            ++n;
            pos += step;
        } else break;
    }

    return n;
}

用法举例：

const argSel = args[1];
console.log("argSel: ", argSel);
const argSelStr = ObjC.selectorAsString(argSel);
console.log("argSelStr: ", argSelStr);

const argCount = occurrences(argSelStr, ":");
console.log("argCount: ", argCount);

输出：

argSel:  0x19cf48d27
argSelStr:  fileURLWithPath:isDirectory:
argCount:  2

含义：

（iOS的ObjC中的SEL）字符串：fileURLWithPath:isDirectory: 中有2个冒号:

String - Log日志

// Generate single line log string
// input: logStr="Called: -[NSURLRequest initWithURL:]"
// output: "=============================== Called: -[NSURLRequest initWithURL:] ==============================="
// function generateLineStr(logStr, isWithSpace=true, paddingChar="=", lineWidth=80){
function generateLineStr(logStr, isWithSpace=true, paddingChar="=", lineWidth=100){
// function generateLineStr(logStr, isWithSpace=true, paddingChar="=", lineWidth=120){
    // console.log("logStr=" + logStr, ", isWithSpace=" + isWithSpace + ", paddingChar=" + paddingChar + ", lineWidth=" + lineWidth)
    var lineStr = ""

    var realLogStr = ""
    if (isWithSpace) {
        realLogStr = " " + logStr + " "
    } else {
        realLogStr = logStr
    }

    var realLogStrLen = realLogStr.length
    if ((realLogStrLen % 2) > 0){
        realLogStr += " "
        realLogStrLen = realLogStr.length
    }

    var leftRightPaddingStr = ""
    var paddingLen = lineWidth - realLogStrLen
    if (paddingLen > 0) {
        var leftRightPaddingLen = paddingLen / 2
        leftRightPaddingStr = times(paddingChar, leftRightPaddingLen)
    }

    lineStr = leftRightPaddingStr + realLogStr + leftRightPaddingStr

    // console.log("lineStr:\n" + lineStr)
    return lineStr
}

用法举例：

var logStr="Called: -[NSURLRequest initWithURL:]"
generateLineStr(logStr)

输出：

=============================== Called: -[NSURLRequest initWithURL:] ===============================

其他输出举例：

=========== Called: +[WARegistrationURLBuilder preChatdABPropURLWithPhoneNumber:abHash:] ===========

============================= Called: +[NSURLRequest requestWithURL:]  =============================

times：字符串相乘

代码：

// String multiple
// eg: str="=", num=5 => "====="
function times(str, num){
    return new Array(num + 1).join(str)
}

用法举例：

var paddingChar = "-"
var leftRightPaddingLen = 10
var leftRightPaddingStr = times(paddingChar, leftRightPaddingLen)
console.log(leftRightPaddingStr)

输出：

----------

List列表

isItemInList：判断元素是否在列表中

// check whether is item inside the list
// eg: curItem="abc", curList=["abc", "def"] => true
function isItemInList(curItem, curList){
    // method1:
    return curList.includes(curItem)
    // // method2:
    // return curList.indexOf(curItem) > -1
}

用法举例：

var iOSObjCallStr = "+[NSURLRequest requestWithURL:]"
let cfgPrintOnceStackExceptionList = [
    "+[NSURLRequest requestWithURL:]",
]

console.log(isItemInList(iOSObjCallStr, cfgPrintOnceStackExceptionList)))

输出：

true

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-08-24 11:17:51

小的代码段

js小的代码段

判断元素是否在列表数组中

概述

  array.includes(item, fromIndex)
  string.includes(substring, fromIndex)

详解

数组列表

举例：

const array = [1, 2, 3];
const value = 1;
const isInArray = array.includes(value);
console.log(isInArray); // true

特殊情况

此处传入的obj1，其实是个object

但是数值对比：

console.log("typeof obj1=" +  (typeof obj1))
// typeof obj1=object
if(obj1 == 1903654775) {

也是返回true的

所以之前误以为用：

let ApkUtilReadJsonKeyList = [-262969152, 1903654773, 1114793335, 1896449818, 1903654775 ]

if(ApkUtilReadJsonKeyList.includes(obj1)) {

是可行的。结果实际不行。

实际要改为：

把obj1的object，转换成Number：

let ApkUtilReadJsonKeyList = [-262969152, 1903654773, 1114793335, 1896449818, 1903654775 ]
var objInt = Number(obj1)

// if(obj1 == 1903654775) {
// if(obj1 in ApkUtilReadJsonKeyList) {
// if(ApkUtilReadJsonKeyList.includes(obj1)) {
if(ApkUtilReadJsonKeyList.includes(objInt)) {
    // 1903654775 == 0x71777777
    isPrintStack = true
    console.log("typeof obj1=" +  (typeof obj1))
    console.log("typeof objInt=" +  (typeof objInt))
    console.log("objInt=" + objInt)
    console.log("found HashMap.put for ApkUtilReadJsonKeyList")

才可以

typeof obj1=object
typeof objInt=number
objInt=1903654775
found HashMap.put for ApkUtilReadJsonKeyList

字符串

判断主字符串是否包含子字符串：

概述：用str的includes

  mainString.includes(subString)

详解

测试代码：

  var mainStr = "Stack: X.0Pru.LIZ(Native Method)"
  var subStr = "X.0Pru.LIZ"
  var isMatch = mainStr.includes(subStr)
  console.log("isMatch=" + isMatch)

输出：

isMatch=true

判断字符串是否在dict的key中

判断key是否在字典dict中

  curKey in someDict

举例：

let cfgPrintOnceStackExceptionDict = {
    // key: arg list(arg0, arg1, ...)
    "+[NSURLRequest requestWithURL:]": [],
    "+[WAURLQueryItem queryItemWithName:value:]": ["ENC", undefined],
}

var iOSObjCallStr = "+[WAURLQueryItem queryItemWithName:value:]"
var isMatch = iOSObjCallStr in cfgPrintOnceStackExceptionDict
console.log("isMatch=" + isMatch)

输出：isMatch=true

获取列表的子列表

var argList = [0, 1, 2, 3, 4]
var subArgList = argList.slice(2)
console.log("argList=" + argList + " -> subArgList=" + subArgList)

输出：

argList=0,1,2,3,4 -> subArgList=2,3,4

函数默认参数

定义=写法 举例：

function printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls, filterList=undefined){
...
  if (filterList != undefined) {
    ...
  }
...
}

调用：

不传递（带默认参数值的）最后一个参数

  printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

传递（带默认参数值的）最后一个参数

  printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls, ["X.0Pru.LIZ"])

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-08-24 11:17:47

Frida的js通用函数

Frida的js通用函数

最新完整代码详见：

Frida的通用的工具类：FridaUtil

https://github.com/crifan/crifanLib/blob/master/javascript/FridaUtil.js

isValidPointer：判断指针是否有效

背景：

正常的指针值：

0x194d20320

0x103e79420

0x2831ac880

异常的一些指针指：

0x0

0xc

代码：

// check pointer is valid or not
// example
//         0x103e79560 => true
//         0xc => false
function isValidPointer(curPtr){
    let MinValidPointer = 0x10000
    var isValid = curPtr > MinValidPointer
    return isValid
}

用法举例：

console.log(isValidPointer(0xc))

输出：

false

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-08-24 11:15:49

iOS函数

iOS函数

最新完整代码详见：

Frida的iOS的工具类：FridaiOSUtil

https://github.com/crifan/crifanLib/blob/master/javascript/FridaiOSUtil.js

此处整理Frida的js中，iOS（的OjbC）方面的函数：

objcArgsToArgArray

/* Convert args to real Javascript Array

    Note:
        Interceptor.attach onEnter(args), args is not real JS array -> later operation will fail
            args.slice(2)
            Array.from(args)
        -> so need here to conver to real Array, then all is OK
*/
function objcArgsToArgArray(args, realArgCount){
    var argsArr = Array()
    // console.log("initial: argsArr=" + argsArr)
    argsArr.push(args[0])
    argsArr.push(args[1])
    // console.log("add frist two: argsArr=" + argsArr)

    for (let curArgIdx = 0; curArgIdx < realArgCount; curArgIdx++) {
        const curArg = args[curArgIdx + 2]
        argsArr.push(curArg)
    }
    // console.log("add all args: argsArr=" + argsArr)
    return argsArr
}

用法举例：

Interceptor.attach(curMethod.implementation, {
  onEnter: function(args) {
    const realArgCount = occurrences(funcName, ":")
    console.log("realArgCount: " + realArgCount)

    args = objcArgsToArgArray(args, realArgCount)

效果：

// 后续针对js的Array的args去操作，就不会报错了
var realArgList = args.slice(2)

详见：

【已解决】iOS逆向WhatsApp：Frida的js的函数堆栈打印优化：支持特定函数的特定参数值时打印

【已解决】Frida中js去获取Interceptor.attach的onEnter的args时报错：RangeError invalid array index

objcObjToStr：ObjC的Object转换为C的string

// convert ObjC Object to C string
function objcObjToStr(objcObj){
  return objcObj.toString()
}

nsStrToJsStr：NSString转换为js的String

代码：

// NSString instance -> js string
function nsStrToJsStr(curNsStr){
  // method 1
  return curNsStr.UTF8String()
  // // method 2:
  // const NSUTF8StringEncoding = 4;
  // https://developer.apple.com/documentation/foundation/nsstring/1408489-cstringusingencoding?language=objc
  // return curNsStr.cStringUsingEncoding_(NSUTF8StringEncoding)
}

用法举例：

const connnServiceNameNSStr = nsxpcconnectionObj.serviceName();
const connnServiceNameJsStr = nsStrToJsStr(connnServiceNameNSStr)
console.log("connnServiceNameNSStr: ", connnServiceNameNSStr);
console.log("connnServiceNameJsStr: ", connnServiceNameJsStr);

输出：

connnServiceNameNSStr:  com.apple.ak.auth.xpc
connnServiceNameJsStr:  com.apple.ak.auth.xpc

toiOSObjcCall：把Firda的ObjC函数写法，转换成ObjC的函数写法

// convert from frida function call to ObjC function call
// "NSURL", "- initWithString:" => "-[NSURL initWithString:]"
function toiOSObjcCall(class_name, method_name){
    const instanceCallStart = "-[" + class_name + " ";
    const classCallStart = "+[" + class_name + " ";
    var objcFuncCall = method_name.replace("- ", instanceCallStart);
    objcFuncCall = objcFuncCall.replace("+ ", classCallStart);
    objcFuncCall = objcFuncCall + "]";
    // console.log(class_name + " -> " + method_name + " => " + objcFuncCall);
    return objcFuncCall;
}

用法举例：

function hook_specific_method_of_class(className, funcName)
{
  console.log("className=" + className + ", funcName=" + funcName)
  var iOSObjCallStr = toiOSObjcCall(className, funcName)
  console.log("iOSObjCallStr=", iOSObjCallStr)
  ...

输出：

className=NSXPCConnection, funcName=- setExportedObject:
iOSObjCallStr= -[NSXPCConnection setExportedObject:]

其他举例：

"NSURL", "- _cfurl" => "-[NSURL _cfurl]"

"NSURL", "+ fileURLWithPath:isDirectory:" => +[NSURL fileURLWithPath:isDirectory:]

"NSURL", "- initFileURLWithPath:isDirectory:" => "-[NSURL initFileURLWithPath:isDirectory:]"

toFridaObjcCall：把ObjC函数写法，转换成Frida的ObjC函数写法

// convert from ObjC function call to frida function call
// "-[NSURL initWithString:]" => ["NSURL", "- initWithString:"]
function toFridaObjcCall(fridaObjcCallStr){
    // console.log("fridaObjcCallStr=" + fridaObjcCallStr)
    const funcCallP = /^([+-])\[(\w+)\s+([\w:]+)\]$/
    // console.log("funcCallP=" + funcCallP)
    const funcCallMatch = fridaObjcCallStr.match(funcCallP)
    // console.log("funcCallMatch=" + funcCallMatch)
    const objcFuncTypeChar = funcCallMatch[1]
    const objcClassName = funcCallMatch[2]
    const objcFuncName = funcCallMatch[3]
    const fridaFuncCallList = [objcClassName, objcFuncTypeChar + " " + objcFuncName]
    // console.log("fridaFuncCallList=" + fridaFuncCallList)
    return fridaFuncCallList
}

用法举例：

输入

"+[NSURL URLWithString:]"

"-[NSURLConnection start]"

"-[NSURL initWithString:relativeToURL:]"

输出

["NSURL", "+ URLWithString:"]

["NSURLConnection", "- start"]

["NSURL", "- initWithString:relativeToURL:"]

initCommonLibFunctions：初始化常用库中的常用函数

代码：

/*******************************************************************************
 * Global Variables
*******************************************************************************/

var free = null
var objc_getClass = null
var class_copyMethodList = null
var objc_getMetaClass = null
var method_getName = null
var dladdr = null
var _dyld_image_count = null
var _dyld_get_image_name = null
var _dyld_get_image_vmaddr_slide = null
var objc_copyClassNamesForImage = null

/******************** iOS Common Lib Functions ********************/

function initCommonLibFunctions(){
    console.log("Init common functions in common libs:")

// free
    free = new NativeFunction(
        Module.findExportByName(null, 'free'),
        'void',
        ['pointer']
    )
    console.log("free=" + free)

    objc_getClass = new NativeFunction(
        Module.findExportByName(null, 'objc_getClass'),
        'pointer',
        ['pointer']
    )
    console.log("objc_getClass=" + objc_getClass)

    class_copyMethodList = new NativeFunction(
        Module.findExportByName(null, 'class_copyMethodList'),
        'pointer',
        ['pointer', 'pointer']
    )
    console.log("class_copyMethodList=" + class_copyMethodList)

    objc_getMetaClass = new NativeFunction(
        Module.findExportByName(null, 'objc_getMetaClass'),
        'pointer',
        ['pointer']
    )
    console.log("objc_getMetaClass=" + objc_getMetaClass)

    method_getName = new NativeFunction(
        Module.findExportByName(null, 'method_getName'),
        'pointer',
        ['pointer']
    )
    console.log("method_getName=" + method_getName)

    /*
    int dladdr(const void *, Dl_info *);

    typedef struct dl_info {
                    const char      *dli_fname;     // Pathname of shared object
                    void            *dli_fbase;     // Base address of shared object
                    const char      *dli_sname;     // Name of nearest symbol
                    void            *dli_saddr;     // Address of nearest symbol
    } Dl_info;

    */
    dladdr = new NativeFunction(
        Module.findExportByName(null, 'dladdr'),
        'int',
        ['pointer','pointer']
    )
    console.log("dladdr=" + dladdr)

    // uint32_t  _dyld_image_count(void)
    _dyld_image_count = new NativeFunction(
        Module.findExportByName(null, '_dyld_image_count'),
        'uint32',
        []
    )
    console.log("_dyld_image_count=" + _dyld_image_count)

    // const char*  _dyld_get_image_name(uint32_t image_index)
    _dyld_get_image_name = new NativeFunction(
        Module.findExportByName(null, '_dyld_get_image_name'),
        'pointer',
        ['uint32']
    )
    console.log("_dyld_get_image_name=" + _dyld_get_image_name)

    // intptr_t   _dyld_get_image_vmaddr_slide(uint32_t image_index)
    _dyld_get_image_vmaddr_slide = new NativeFunction(
        Module.findExportByName(null, '_dyld_get_image_vmaddr_slide'),
        'pointer',
        ['uint32']
    )
    console.log("_dyld_get_image_vmaddr_slide=" + _dyld_get_image_vmaddr_slide)

    // const char * objc_copyClassNamesForImage(const char *image, unsigned int *outCount)
    objc_copyClassNamesForImage = new NativeFunction(
        Module.findExportByName(null, 'objc_copyClassNamesForImage'),
        'pointer',
        ['pointer', 'pointer']
    );
    console.log("objc_copyClassNamesForImage=" + objc_copyClassNamesForImage)
}

用法举例：

/*******************************************************************************
 * Main
*******************************************************************************/
initCommonLibFunctions()

输出：

Init common functions in common libs:
free=0x190f57f10
objc_getClass=0x190f9c098
class_copyMethodList=0x190f96cf8
objc_getMetaClass=0x190f9c100
method_getName=0x190f93b54
dladdr=0x191068174
_dyld_image_count=0x191067b40
_dyld_get_image_name=0x19106806c
_dyld_get_image_vmaddr_slide=0x191068004
objc_copyClassNamesForImage=0x190f97e68

说明：

后续其他地方，即可调用这些函数：

    free(pClasses)
...

function get_info_form_address(address){
...
    var dl_info = Memory.alloc(Process.pointerSize*4);
    dladdr(ptr(address), dl_info)

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-08-24 11:16:06

iOS函数调用堆栈

iOS函数调用堆栈

对于Frida中，打印iOS函数调用堆栈，此处整理出2个函数：

地址版本 = 精简版：printFunctionCallStack_addr

解释：（尤其是对于自己的二进制）只能输出地址，无法输出完整精确的符号名

优点：代码简洁

缺点：只有地址，没有符号，不够用

符号版本 = 详细版：printFunctionCallStack_symbol

解释：从地址解析后得到准确的符号=函数名的版本

优点：能看到函数名=解析后的符号名，更好用

缺点：代码比较多比较复杂

包括子函数

get_image_vm_slide

get_all_objc_class

get_all_class_methods

get_info_form_address

find_symbol_from_address

说明

参考自

https://github.com/4ch12dy/FridaLib/blob/master/iOS/iOSFridaLib.js

且做了额外优化

加上cache缓存，提高解析速度

printFunctionCallStack_addr

function printFunctionCallStack_addr(curContext){
    console.log('Stack:\n' +
        Thread.backtrace(curContext, Backtracer.ACCURATE)
        .map(DebugSymbol.fromAddress).join('\n') + '\n');
}

用法举例：

Interceptor.attach(curMethod.implementation, {
  onEnter: function(args) {
    printFunctionCallStack_addr(this.context)

输出：

Stack:
0x109afd910 SharedModules!WAGetWCIHttpImpl
0x106a14cb4 !0x2304cb4 (0x102304cb4)
0x1062e9ff4 !0x1bd9ff4 (0x101bd9ff4)
0x1062e9f80 !0x1bd9f80 (0x101bd9f80)
0x1069da1fc !0x22ca1fc (0x1022ca1fc)
0x1069d9ee4 !0x22c9ee4 (0x1022c9ee4)
0x1069d16a8 !0x22c16a8 (0x1022c16a8)
0x1952e99ac UIKitCore!-[UIApplication sendAction:to:from:forEvent:]
0x194d1ffbc UIKitCore!-[UIControl sendAction:to:forEvent:]
0x194d20320 UIKitCore!-[UIControl _sendActionsForEvents:withEvent:]
0x194d1f33c UIKitCore!-[UIControl touchesEnded:withEvent:]
0x195323050 UIKitCore!-[UIWindow _sendTouchesForEvent:]
0x195324390 UIKitCore!-[UIWindow sendEvent:]
0x195300a9c UIKitCore!-[UIApplication sendEvent:]
0x1061487b8 !0x1a387b8 (0x101a387b8)
0x195378c20 UIKitCore!__dispatchPreprocessedEventFromEventQueue

printFunctionCallStack_symbol

代码：

/*******************************************************************************
 * Config && Settings
*******************************************************************************/

// Print Function Stack Call
let isUseCache = true

// print only once stack for every function
let isPrintOnlyOnceStack = true

let cfgPrintOnceStackExceptionList = [
    "+[NSURLRequest requestWithURL:]",
]

/*******************************************************************************
 * Global Variables
*******************************************************************************/

var gPrintedStackDict = {}

var gAddrToModuleInfoDict = {}
var gModulePathToSlideDict = {}
var gModulePathToClassesDict = {}
var gModulePathAddrToSymbolDict = {}
var gClassnameToAllMethodsDict = {}

var free = null
var objc_getClass = null
var class_copyMethodList = null
var objc_getMetaClass = null
var method_getName = null
var dladdr = null
var _dyld_image_count = null
var _dyld_get_image_name = null
var _dyld_get_image_vmaddr_slide = null
var objc_copyClassNamesForImage = null

/******************** iOS Common Lib Functions ********************/

function initCommonLibFunctions(){
    console.log("Init common functions in common libs:")

    // free
    free = new NativeFunction(
        Module.findExportByName(null, 'free'),
        'void',
        ['pointer']
    )
    console.log("free=" + free)

    objc_getClass = new NativeFunction(
        Module.findExportByName(null, 'objc_getClass'),
        'pointer',
        ['pointer']
    )
    console.log("objc_getClass=" + objc_getClass)

    class_copyMethodList = new NativeFunction(
        Module.findExportByName(null, 'class_copyMethodList'),
        'pointer',
        ['pointer', 'pointer']
    )
    console.log("class_copyMethodList=" + class_copyMethodList)

    objc_getMetaClass = new NativeFunction(
        Module.findExportByName(null, 'objc_getMetaClass'),
        'pointer',
        ['pointer']
    )
    console.log("objc_getMetaClass=" + objc_getMetaClass)

    method_getName = new NativeFunction(
        Module.findExportByName(null, 'method_getName'),
        'pointer',
        ['pointer']
    )
    console.log("method_getName=" + method_getName)

    /*
    int dladdr(const void *, Dl_info *);

    typedef struct dl_info {
                    const char      *dli_fname;     // Pathname of shared object
                    void            *dli_fbase;     // Base address of shared object
                    const char      *dli_sname;     // Name of nearest symbol
                    void            *dli_saddr;     // Address of nearest symbol
    } Dl_info;

    */
    dladdr = new NativeFunction(
        Module.findExportByName(null, 'dladdr'),
        'int',
        ['pointer','pointer']
    )
    console.log("dladdr=" + dladdr)

    // uint32_t  _dyld_image_count(void)
    _dyld_image_count = new NativeFunction(
        Module.findExportByName(null, '_dyld_image_count'),
        'uint32',
        []
    )
    console.log("_dyld_image_count=" + _dyld_image_count)

    // const char*  _dyld_get_image_name(uint32_t image_index)
    _dyld_get_image_name = new NativeFunction(
        Module.findExportByName(null, '_dyld_get_image_name'),
        'pointer',
        ['uint32']
    )
    console.log("_dyld_get_image_name=" + _dyld_get_image_name)

    // intptr_t   _dyld_get_image_vmaddr_slide(uint32_t image_index)
    _dyld_get_image_vmaddr_slide = new NativeFunction(
        Module.findExportByName(null, '_dyld_get_image_vmaddr_slide'),
        'pointer',
        ['uint32']
    )
    console.log("_dyld_get_image_vmaddr_slide=" + _dyld_get_image_vmaddr_slide)

    // const char * objc_copyClassNamesForImage(const char *image, unsigned int *outCount)
    objc_copyClassNamesForImage = new NativeFunction(
        Module.findExportByName(null, 'objc_copyClassNamesForImage'),
        'pointer',
        ['pointer', 'pointer']
    );
    console.log("objc_copyClassNamesForImage=" + objc_copyClassNamesForImage)
}

// https://github.com/4ch12dy/FridaLib/blob/master/iOS/iOSFridaLib.js

// xia0 log
function XLOG(log) {
    console.log("[*] " + log)
}

// format string with width
function format(str,width){
    str = str + ""
    var len = str.length;

    if(len > width){
            return str
    }

    for(var i = 0; i < width-len; i++){
            str += " "
    }
    return str
}

function getExecFileName(modulePath){
    modulePath += ""
    return modulePath.split("/").pop()
}

// get module info from address
function get_info_form_address(address){
    var moduleInfoDict = null
    var needAddToCache = false

    if (isUseCache){
        if (address in gAddrToModuleInfoDict){
            moduleInfoDict = gAddrToModuleInfoDict[address]
            // XLOG("Found: address=" + address + " in gAddrToModuleInfoDict, moduleInfoDict=" + toJsonStr(moduleInfoDict))
            return moduleInfoDict
        } else {
            needAddToCache = true
        }
    }

    var dl_info = Memory.alloc(Process.pointerSize*4);

    dladdr(ptr(address), dl_info)

    var dli_fname = Memory.readCString(Memory.readPointer(dl_info))
    var dli_fbase = Memory.readPointer(dl_info.add(Process.pointerSize))
    var dli_sname = Memory.readCString(Memory.readPointer(dl_info.add(Process.pointerSize*2)))
    var dli_saddr = Memory.readPointer(dl_info.add(Process.pointerSize*3))

    //XLOG("dli_fname:"+dli_fname)
    //XLOG("dli_fbase:"+dli_fbase)
    //XLOG("dli_sname:"+dli_sname)
    //XLOG("dli_saddr:"+dli_saddr)

    // var addrInfo = new Array();

    // addrInfo.push(dli_fname);
    // addrInfo.push(dli_fbase);
    // addrInfo.push(dli_sname);
    // addrInfo.push(dli_saddr);

    // //XLOG(addrInfo)
    // return addrInfo;

    moduleInfoDict = {
        "fileName": dli_fname,
        "fileAddress": dli_fbase,
        "symbolName": dli_sname,
        "symbolAddress": dli_saddr,
    }

    if (needAddToCache){
        // XLOG("Add: address=" + address + ", moduleInfoDict=" + toJsonStr(moduleInfoDict) + " into cache gAddrToModuleInfoDict")
        gAddrToModuleInfoDict[address] = moduleInfoDict
    }

    return moduleInfoDict
}

function get_image_vm_slide(modulePath){
    var moduleSlide = 0

    var needAddToCache = false

    if (isUseCache){
        if (modulePath in gModulePathToSlideDict){
            moduleSlide = gModulePathToSlideDict[modulePath]
            // XLOG("Found: modulePath=" + modulePath + " in gModulePathToSlideDict, moduleSlide=" + moduleSlide)
            return moduleSlide
        } else {
            needAddToCache = true
        }
    }

    var image_count = _dyld_image_count()

    for (var i = 0; i < image_count; i++) {
            var image_name_ptr = _dyld_get_image_name(i)
            var image_silde_ptr = _dyld_get_image_vmaddr_slide(i)
            var image_name = Memory.readUtf8String(image_name_ptr)

            if (image_name == modulePath) {
                    //XLOG(Memory.readUtf8String(image_name_ptr) + " slide:"+image_silde_ptr)
                    // return image_silde_ptr
                    moduleSlide = image_silde_ptr
                    break
            }
            //XLOG(Memory.readUtf8String(image_name_ptr) + "slide:"+image_silde_ptr)
    }

    // return 0

    if (needAddToCache){
        // XLOG("Add: modulePath=" + modulePath + ", moduleSlide=" + moduleSlide + " into cache gModulePathToSlideDict")
        gModulePathToSlideDict[modulePath] = moduleSlide
    }

    return moduleSlide
}

function get_all_objc_class(modulePath){
    var classes = new Array()

    var needAddToCache = false

    if (isUseCache){
        if (modulePath in gModulePathToClassesDict){
            classes = gModulePathToClassesDict[modulePath]
            // XLOG("Found: modulePath=" + modulePath + " in gModulePathToClassesDict, classes=" + classes)
            // XLOG("Found: modulePath=" + modulePath + " in gModulePathToClassesDict, classes.length=" + classes.length)
            return classes
        } else {
            needAddToCache = true
        }
    }

    // if given modulePath nil, default is mainBundle
    if(!modulePath){
        var path = ObjC.classes.NSBundle.mainBundle().executablePath().UTF8String()
    }else{
        var path = modulePath
    }

    // create args
    var pPath = Memory.allocUtf8String(path)
    var p = Memory.alloc(Process.pointerSize)
    Memory.writeUInt(p, 0)

    var pClasses = objc_copyClassNamesForImage(pPath, p)
    var count = Memory.readUInt(p)
    classes = new Array(count)

    for (var i = 0; i < count; i++) {
            var pClassName = Memory.readPointer(pClasses.add(i * Process.pointerSize))
            classes[i] = Memory.readUtf8String(pClassName)
    }

    free(pClasses)

    if (needAddToCache){
        // XLOG("Add: modulePath=" + modulePath + ", classes=" + classes + " into cache gModulePathToClassesDict")
        // XLOG("Add: modulePath=" + modulePath + ", classes.length=" + classes.length + " into cache gModulePathToClassesDict")
        gModulePathToClassesDict[modulePath] = classes
    }

    // XLOG(classes)
    return classes
}

function get_all_class_methods(classname){
    var allMethods = new Array()

    var needAddToCache = false

    if (isUseCache){
        if (classname in gClassnameToAllMethodsDict){
            allMethods = gClassnameToAllMethodsDict[classname]
            // XLOG("Found: classname=" + classname + " in gClassnameToAllMethodsDict, allMethods=" + toJsonStr(allMethods))
            // XLOG("Found: classname=" + classname + " in gClassnameToAllMethodsDict, allMethods.length=" + allMethods.length)
            return allMethods
        } else {
            needAddToCache = true
        }
    }

    // get objclass and metaclass
    var name = Memory.allocUtf8String(classname)
    var objClass = objc_getClass(name)
    var metaClass = objc_getMetaClass(name)

    // get obj class all methods
    var size_ptr = Memory.alloc(Process.pointerSize)
    Memory.writeUInt(size_ptr, 0)
    var pObjMethods = class_copyMethodList(objClass, size_ptr)
    var count = Memory.readUInt(size_ptr)

    var allObjMethods = new Array()

    // get obj class all methods name and IMP
    for (var i = 0; i < count; i++) {
        var curObjMethod = new Array()
        var pObjMethodSEL = method_getName(pObjMethods.add(i * Process.pointerSize))
        var pObjMethodName = Memory.readCString(Memory.readPointer(pObjMethodSEL))
        var objMethodIMP = Memory.readPointer(pObjMethodSEL.add(2*Process.pointerSize))
        // XLOG("-["+classname+ " " + pObjMethodName+"]" + ":" + objMethodIMP)
        curObjMethod.push(pObjMethodName)
        curObjMethod.push(objMethodIMP)
        allObjMethods.push(curObjMethod)
    }

    var allMetaMethods = new Array()

    // get meta class all methods name and IMP
    var pMetaMethods = class_copyMethodList(metaClass, size_ptr)
    var count = Memory.readUInt(size_ptr)
    for (var i = 0; i < count; i++) {
        var curMetaMethod = new Array()

        var pMetaMethodSEL = method_getName(pMetaMethods.add(i * Process.pointerSize))
        var pMetaMethodName = Memory.readCString(Memory.readPointer(pMetaMethodSEL))
        var metaMethodIMP = Memory.readPointer(pMetaMethodSEL.add(2*Process.pointerSize))
        //XLOG("+["+classname+ " " + pMetaMethodName+"]" + ":" + metaMethodIMP)
        curMetaMethod.push(pMetaMethodName)
        curMetaMethod.push(metaMethodIMP)
        allMetaMethods.push(curMetaMethod)
    }

    allMethods.push(allObjMethods)
    allMethods.push(allMetaMethods)

    free(pObjMethods)
    free(pMetaMethods)

    if (needAddToCache){
        // XLOG("Add: classname=" + classname + ", allMethods=" + toJsonStr(allMethods) + " into cache gClassnameToAllMethodsDict")
        // XLOG("Add: classname=" + classname + ", allMethods.length=" + allMethods.length + " into cache gClassnameToAllMethodsDict")
        gClassnameToAllMethodsDict[classname] = allMethods
    }

    return allMethods
}

function find_symbol_from_address(modulePath, addr){
    var symbol = "???"
    var modulePathAddr = modulePath + "|" + addr

    var needAddToCache = false

    if (isUseCache){
        if (modulePathAddr in gModulePathAddrToSymbolDict){
            symbol = gModulePathAddrToSymbolDict[modulePathAddr]
            // XLOG("Found: modulePathAddr=" + modulePathAddr + " in gModulePathAddrToSymbolDict, symbol=" + symbol)
            return symbol
        } else {
            needAddToCache = true
        }
    }

    var frameAddr = addr
    var theDis = 0xffffffffffffffff
    var tmpDis = 0
    var theClass = "None"
    var theMethodName = "None"
    var theMethodType = "-"
    var theMethodIMP = 0

    var allClassInfo = {}

    var allClass = get_all_objc_class(modulePath)

    for(var i = 0, len = allClass.length; i < len; i++){
        var curClassName = allClass[i]
        // var mInfo = get_all_class_method(curClassName)
        var mInfo = get_all_class_methods(curClassName)

        var objms = mInfo[0]
        for(var j = 0, olen = objms.length; j < olen; j++){
            var mname = objms[j][0]
            var mIMP = objms[j][1]
            if(frameAddr >= mIMP){
                var tmpDis = frameAddr-mIMP
                if(tmpDis < theDis){
                    theDis = tmpDis
                    theClass = curClassName
                    theMethodName = mname
                    theMethodIMP = mIMP
                    theMethodType = "-"
                }
            }
        }

        var metams = mInfo[1]
        for(var k = 0, mlen = metams.length; k < mlen; k++){
            var mname = metams[k][0]
            var mIMP = metams[k][1]
            if(frameAddr >= mIMP){
                var tmpDis = frameAddr-mIMP
                if(tmpDis < theDis){
                    theDis = tmpDis
                    theClass = curClassName
                    theMethodName = mname
                    theMethodIMP = mIMP
                    theMethodType = "+"
                }
            }
        }
    }

    symbol = theMethodType+"["+theClass+" "+theMethodName+"]"

    if(symbol.indexOf(".cxx") != -1){
            symbol = "maybe C function?"
    }

    // if distance > 3000, maybe a c function
    if(theDis > 3000){
            symbol = "maybe C function? symbol:" + symbol
    }

    if (needAddToCache){
        // XLOG("Add: modulePathAddr=" + modulePathAddr + ", symbol=" + symbol + " into cache gModulePathAddrToSymbolDict")
        gModulePathAddrToSymbolDict[modulePathAddr] = symbol
    }

    return symbol
}

function generateFunctionCallStackList(context){
    var functionCallList = new Array()

    var mainPath = ObjC.classes.NSBundle.mainBundle().executablePath().UTF8String()
    // XLOG("mainPath=" + mainPath)
    var mainModuleName = getExecFileName(mainPath)
    // XLOG("mainModuleName=" + mainModuleName)

    var backtrace = Thread.backtrace(context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress)
    for (var i = 0;i < backtrace.length;i ++)
    {
        // curStackFrame=0x10a1d1910 SharedModules!WAGetWCIHttpImpl
        // curStackFrame=0x1070f0cb4 !0x2304cb4 (0x102304cb4)
        // curStackFrame=0x1944a9614 /System/Library/Frameworks/CFNetwork.framework/CFNetwork!+[NSURLRequest requestWithURL:]
        var curStackFrame = backtrace[i] + ''
        // XLOG("curStackFrame=" + curStackFrame)

        // var curSym = curStackFrame.split("!")[1]
        var stackFrameSplittedArr = curStackFrame.split("!")
        var curAddrAndModuleStr = stackFrameSplittedArr[0]
        // XLOG("curAddrAndModuleStr=" + curAddrAndModuleStr)
        var curSym = stackFrameSplittedArr[1]
        // XLOG("curSym=" + curSym)

        // var curAddr = curStackFrame.split("!")[0].split(" ")[0]
        var curAddrAndModuleArr = curAddrAndModuleStr.split(" ")
        // XLOG("curAddrAndModuleArr=" + curAddrAndModuleArr)
        var curAddr = curAddrAndModuleArr[0]
        // XLOG("curAddr=" + curAddr)
        // var curModuleName = curStackFrame.split("!")[0].split(" ")[1]
        var curModuleName = curAddrAndModuleArr[1]
        // XLOG("curModuleName=" + curModuleName)

        var moduleInfoDict = get_info_form_address(curAddr);
        // XLOG("moduleInfoDict=" + toJsonStr(moduleInfoDict))

        var curModulePath = moduleInfoDict["fileName"]
        // XLOG("curModulePath=" + curModulePath)
        var fileAddress = moduleInfoDict["fileAddress"]
        // XLOG("fileAddress=" + fileAddress)
        var symbolName = moduleInfoDict["symbolName"]
        // XLOG("symbolName=" + symbolName)
        var symbolAddress = moduleInfoDict["symbolAddress"]
        // XLOG("symbolAddress=" + symbolAddress)

        // skip frida call stack
        if(!curModulePath){
            XLOG("! Omit for empty module path, parsed from curAddr=" + curAddr + ", moduleInfoDict=" + moduleInfoDict)
            continue
        }

        // var fileAddr = curAddr - get_image_vm_slide(curModulePath);
        var curModuleSlide = get_image_vm_slide(curModulePath)
        // XLOG("curModuleSlide=" + curModuleSlide)
        var fileAddr = curAddr - curModuleSlide
        // XLOG("fileAddr=" + fileAddr)

        // is the image in app dir?
        if (curModulePath.indexOf(mainModuleName) != -1 ) {
            curSym = find_symbol_from_address(curModulePath, curAddr)
            // XLOG("new curSym=" + curSym)
        }

        var curFunctionCallDict = {
            "curModulePath": curModulePath,
            "curAddr": curAddr,
            "fileAddr": fileAddr,
            "curSym": curSym,
        }
        functionCallList.push(curFunctionCallDict)
    }

    return functionCallList
}

function generateFunctionCallStackStr(functionCallList){
    var functionCallStackStr = "------------------------ printFunctionCallStack_symbol  ------------------------"
    functionCallStackStr += "\n"
    for (var i = 0;i < functionCallList.length; i++){
        var curFunctionCallDict = functionCallList[i]
        var curModulePath = curFunctionCallDict["curModulePath"]
        var curAddr = curFunctionCallDict["curAddr"]
        var fileAddr = curFunctionCallDict["fileAddr"]
        var curSym = curFunctionCallDict["curSym"]
        var executableFilename = getExecFileName(curModulePath)
        let execMaxWidth = 20
        // let execMaxWidth = 25
        var curFuncCallStr = format(i, 4)+format(executableFilename, execMaxWidth)+"mem:"+format(ptr(curAddr),13)+"file:"+format(ptr(fileAddr),13)+format(curSym,80)
        functionCallStackStr += curFuncCallStr + "\n"
    }
    functionCallStackStr += "--------------------------------------------------------------------------------"
    return functionCallStackStr
}

function printFunctionCallStack_symbol(context){
    var functionCallStackList = generateFunctionCallStackList(context)
    var functionCallStackStr = generateFunctionCallStackStr(functionCallStackList)
    console.log(functionCallStackStr)
    return functionCallStackStr
}

调用举例：

/*******************************************************************************
 * Main
*******************************************************************************/

initCommonLibFunctions()

...
                Interceptor.attach(curMethod.implementation, {
                    onEnter: function(args) {
                        // console.log("==================== [*] Detected call to: " + iOSObjCallStr);
                        var logstr = "Called: " + iOSObjCallStr
                        var lineStr = generateLineStr(logstr)
                        console.log(lineStr)

                        var shouldPrintStack = true
                        if (iOSObjCallStr in gPrintedStackDict){
                            // console.log("iOSObjCallStr=" + iOSObjCallStr + " in gPrintedStackDict=" + toJsonStr(gPrintedStackDict.keys))
                            if (isPrintOnlyOnceStack){
                                // if (iOSObjCallStr in cfgPrintOnceStackExceptionList){
                                if (isItemInList(iOSObjCallStr, cfgPrintOnceStackExceptionList)){
                                    // console.log("iOSObjCallStr=" + iOSObjCallStr + " in cfgPrintOnceStackExceptionList=" + toJsonStr(cfgPrintOnceStackExceptionList))
                                    shouldPrintStack = true
                                } else {
                                    shouldPrintStack = false
                                }
                            }
                        }

                        // console.log("shouldPrintStack=" + shouldPrintStack)

                        if (shouldPrintStack) {
                            // printFunctionCallStack_addr(this.context)

                            // printFunctionCallStack_symbol(this.context)
                            var functionCallStackList = generateFunctionCallStackList(this.context)
                            var functionCallStackStr = generateFunctionCallStackStr(functionCallStackList)
                            console.log(functionCallStackStr)

                            gPrintedStackDict[iOSObjCallStr] = functionCallStackStr
                        }
...

（相关）输出：

新

图

[iPhone::WhatsApp ]-> ==================== [*] Detected call to: +[NSURLRequest requestWithURL:]
[*] ================================================xbacktrace==========================================
[*] 0   SharedModules       mem:0x109cb1910  file:0xc29910     +[WACertPinning sharedPinnedWhatsAppCertificateWithoutDomainValidation]
[*] 1   WhatsApp            mem:0x106d74cb4  file:0x102304cb4  +[WARegistrationURLBuilder preChatdABPropURLRequestWithPhoneNumber:abHash:]
[*] 2   WhatsApp            mem:0x106649ff4  file:0x101bd9ff4  -[WACompanionModeGatingManager fetchPhoneCompanionAbPropValue:]
[*] 3   WhatsApp            mem:0x106649f80  file:0x101bd9f80  -[WACompanionModeGatingManager shouldShowPhoneCompanionEntryPointWithCompletion:]
[*] 4   WhatsApp            mem:0x106d3a1fc  file:0x1022ca1fc  -[WAVerificationRegistrationController fetchPhoneCompanionEntryPointPreChatdAbProp]
[*] 5   WhatsApp            mem:0x106d39ee4  file:0x1022c9ee4  -[WAVerificationRegistrationController didAcceptedTOSMoveToNextScreen]
[*] 6   WhatsApp            mem:0x106d316a8  file:0x1022c16a8  -[WAConsumerWelcomeViewController acceptAction:]
[*] 7   UIKitCore           mem:0x1952e99ac  file:0x1845199ac  -[UIApplication sendAction:to:from:forEvent:]
[*] 8   UIKitCore           mem:0x194d1ffbc  file:0x183f4ffbc  -[UIControl sendAction:to:forEvent:]
[*] 9   UIKitCore           mem:0x194d20320  file:0x183f50320  -[UIControl _sendActionsForEvents:withEvent:]
[*] 10  UIKitCore           mem:0x194d1f33c  file:0x183f4f33c  -[UIControl touchesEnded:withEvent:]
[*] 11  UIKitCore           mem:0x195323050  file:0x184553050  -[UIWindow _sendTouchesForEvent:]
[*] 12  UIKitCore           mem:0x195324390  file:0x184554390  -[UIWindow sendEvent:]
[*] 13  UIKitCore           mem:0x195300a9c  file:0x184530a9c  -[UIApplication sendEvent:]
[*] 14  WhatsApp            mem:0x1064a87b8  file:0x101a387b8  -[WAApplication sendEvent:]
[*] 15  UIKitCore           mem:0x195378c20  file:0x1845a8c20  __dispatchPreprocessedEventFromEventQueue
[*] ==============================================================================================================
argCount:  1
---------- [0] curArgPtr=0x2838aa180
curArgPtrObj: className= NSURL, value= https://v.whatsapp.net/v2/reg_onboard_abprop?cc=1&in=2155550000&rc=0
==================== [*] Detected call to: -[NSURLRequest initWithURL:]
[*] ================================================xbacktrace==========================================
[*] 0   CFNetwork           mem:0x1944a9614  file:0x1836d9614  +[NSURLRequest requestWithURL:]
[*] 1   SharedModules       mem:0x109cb1910  file:0xc29910     +[WACertPinning sharedPinnedWhatsAppCertificateWithoutDomainValidation]
[*] 2   WhatsApp            mem:0x106d74cb4  file:0x102304cb4  +[WARegistrationURLBuilder preChatdABPropURLRequestWithPhoneNumber:abHash:]
[*] 3   WhatsApp            mem:0x106649ff4  file:0x101bd9ff4  -[WACompanionModeGatingManager fetchPhoneCompanionAbPropValue:]
[*] 4   WhatsApp            mem:0x106649f80  file:0x101bd9f80  -[WACompanionModeGatingManager shouldShowPhoneCompanionEntryPointWithCompletion:]
[*] 5   WhatsApp            mem:0x106d3a1fc  file:0x1022ca1fc  -[WAVerificationRegistrationController fetchPhoneCompanionEntryPointPreChatdAbProp]
[*] 6   WhatsApp            mem:0x106d39ee4  file:0x1022c9ee4  -[WAVerificationRegistrationController didAcceptedTOSMoveToNextScreen]
[*] 7   WhatsApp            mem:0x106d316a8  file:0x1022c16a8  -[WAConsumerWelcomeViewController acceptAction:]
[*] 8   UIKitCore           mem:0x1952e99ac  file:0x1845199ac  -[UIApplication sendAction:to:from:forEvent:]
[*] 9   UIKitCore           mem:0x194d1ffbc  file:0x183f4ffbc  -[UIControl sendAction:to:forEvent:]
[*] 10  UIKitCore           mem:0x194d20320  file:0x183f50320  -[UIControl _sendActionsForEvents:withEvent:]
[*] 11  UIKitCore           mem:0x194d1f33c  file:0x183f4f33c  -[UIControl touchesEnded:withEvent:]
[*] 12  UIKitCore           mem:0x195323050  file:0x184553050  -[UIWindow _sendTouchesForEvent:]
[*] 13  UIKitCore           mem:0x195324390  file:0x184554390  -[UIWindow sendEvent:]
[*] 14  UIKitCore           mem:0x195300a9c  file:0x184530a9c  -[UIApplication sendEvent:]
[*] 15  WhatsApp            mem:0x1064a87b8  file:0x101a387b8  -[WAApplication sendEvent:]
[*] ==============================================================================================================
argCount:  1
---------- [0] curArgPtr=0x2838aa180
curArgPtrObj: className= NSURL, value= https://v.whatsapp.net/v2/reg_onboard_abprop?cc=1&in=2155550000&rc=0
==================== [*] Detected call to: -[NSMutableURLRequest initWithURL:]
[*] ================================================xbacktrace==========================================
[*] 0   CFNetwork           mem:0x1944a9614  file:0x1836d9614  +[NSURLRequest requestWithURL:]
[*] 1   SharedModules       mem:0x109cb1910  file:0xc29910     +[WACertPinning sharedPinnedWhatsAppCertificateWithoutDomainValidation]
[*] 2   WhatsApp            mem:0x106d74cb4  file:0x102304cb4  +[WARegistrationURLBuilder preChatdABPropURLRequestWithPhoneNumber:abHash:]
[*] 3   WhatsApp            mem:0x106649ff4  file:0x101bd9ff4  -[WACompanionModeGatingManager fetchPhoneCompanionAbPropValue:]
[*] 4   WhatsApp            mem:0x106649f80  file:0x101bd9f80  -[WACompanionModeGatingManager shouldShowPhoneCompanionEntryPointWithCompletion:]
[*] 5   WhatsApp            mem:0x106d3a1fc  file:0x1022ca1fc  -[WAVerificationRegistrationController fetchPhoneCompanionEntryPointPreChatdAbProp]
[*] 6   WhatsApp            mem:0x106d39ee4  file:0x1022c9ee4  -[WAVerificationRegistrationController didAcceptedTOSMoveToNextScreen]
[*] 7   WhatsApp            mem:0x106d316a8  file:0x1022c16a8  -[WAConsumerWelcomeViewController acceptAction:]
[*] 8   UIKitCore           mem:0x1952e99ac  file:0x1845199ac  -[UIApplication sendAction:to:from:forEvent:]
[*] 9   UIKitCore           mem:0x194d1ffbc  file:0x183f4ffbc  -[UIControl sendAction:to:forEvent:]
[*] 10  UIKitCore           mem:0x194d20320  file:0x183f50320  -[UIControl _sendActionsForEvents:withEvent:]
[*] 11  UIKitCore           mem:0x194d1f33c  file:0x183f4f33c  -[UIControl touchesEnded:withEvent:]
[*] 12  UIKitCore           mem:0x195323050  file:0x184553050  -[UIWindow _sendTouchesForEvent:]
[*] 13  UIKitCore           mem:0x195324390  file:0x184554390  -[UIWindow sendEvent:]
[*] 14  UIKitCore           mem:0x195300a9c  file:0x184530a9c  -[UIApplication sendEvent:]
[*] 15  WhatsApp            mem:0x1064a87b8  file:0x101a387b8  -[WAApplication sendEvent:]
[*] ==============================================================================================================
argCount:  1
---------- [0] curArgPtr=0x2838aa180
curArgPtrObj: className= NSURL, value= https://v.whatsapp.net/v2/reg_onboard_abprop?cc=1&in=2155550000&rc=0
==================== [*] Detected call to: -[NSURLRequest initWithURL:cachePolicy:timeoutInterval:]
[*] ================================================xbacktrace==========================================
[*] 0   CFNetwork           mem:0x1944a9614  file:0x1836d9614  +[NSURLRequest requestWithURL:]
[*] 1   SharedModules       mem:0x109cb1910  file:0xc29910     +[WACertPinning sharedPinnedWhatsAppCertificateWithoutDomainValidation]
[*] 2   WhatsApp            mem:0x106d74cb4  file:0x102304cb4  +[WARegistrationURLBuilder preChatdABPropURLRequestWithPhoneNumber:abHash:]
[*] 3   WhatsApp            mem:0x106649ff4  file:0x101bd9ff4  -[WACompanionModeGatingManager fetchPhoneCompanionAbPropValue:]
[*] 4   WhatsApp            mem:0x106649f80  file:0x101bd9f80  -[WACompanionModeGatingManager shouldShowPhoneCompanionEntryPointWithCompletion:]
[*] 5   WhatsApp            mem:0x106d3a1fc  file:0x1022ca1fc  -[WAVerificationRegistrationController fetchPhoneCompanionEntryPointPreChatdAbProp]
[*] 6   WhatsApp            mem:0x106d39ee4  file:0x1022c9ee4  -[WAVerificationRegistrationController didAcceptedTOSMoveToNextScreen]
[*] 7   WhatsApp            mem:0x106d316a8  file:0x1022c16a8  -[WAConsumerWelcomeViewController acceptAction:]
[*] 8   UIKitCore           mem:0x1952e99ac  file:0x1845199ac  -[UIApplication sendAction:to:from:forEvent:]
[*] 9   UIKitCore           mem:0x194d1ffbc  file:0x183f4ffbc  -[UIControl sendAction:to:forEvent:]
[*] 10  UIKitCore           mem:0x194d20320  file:0x183f50320  -[UIControl _sendActionsForEvents:withEvent:]
[*] 11  UIKitCore           mem:0x194d1f33c  file:0x183f4f33c  -[UIControl touchesEnded:withEvent:]
[*] 12  UIKitCore           mem:0x195323050  file:0x184553050  -[UIWindow _sendTouchesForEvent:]
[*] 13  UIKitCore           mem:0x195324390  file:0x184554390  -[UIWindow sendEvent:]
[*] 14  UIKitCore           mem:0x195300a9c  file:0x184530a9c  -[UIApplication sendEvent:]
[*] 15  WhatsApp            mem:0x1064a87b8  file:0x101a387b8  -[WAApplication sendEvent:]
[*] ==============================================================================================================
argCount:  3
---------- [0] curArgPtr=0x2838aa180
curArgPtrObj: className= NSURL, value= https://v.whatsapp.net/v2/reg_onboard_abprop?cc=1&in=2155550000&rc=0
---------- [1] curArgPtr=0x0
---------- [2] curArgPtr=0x0
onLeave: retValObjStr=<NSMutableURLRequest: 0x2814fa130> { URL: https://v.whatsapp.net/v2/reg_onboard_abprop?cc=1&in=2155550000&rc=0 }
onLeave: retValObjStr=<NSMutableURLRequest: 0x2814fa130> { URL: https://v.whatsapp.net/v2/reg_onboard_abprop?cc=1&in=2155550000&rc=0 }
onLeave: retValObjStr=<NSMutableURLRequest: 0x2814fa130> { URL: https://v.whatsapp.net/v2/reg_onboard_abprop?cc=1&in=2155550000&rc=0 }
onLeave: retValObjStr=<NSMutableURLRequest: 0x2814fa130> { URL: https://v.whatsapp.net/v2/reg_onboard_abprop?cc=1&in=2155550000&rc=0 }
==================== [*] Detected call to: -[NSMutableURLRequest setHTTPBody:]
[*] ================================================xbacktrace==========================================
[*] 0   CFNetwork           mem:0x1944a7c10  file:0x1836d7c10  -[__NSCFLocalSessionTask _onqueue_strippedMutableRequest]
[*] 1   CFNetwork           mem:0x1944c8c94  file:0x1836f8c94  0x25c94 (0x1836f8c94)
[*] 2   CFNetwork           mem:0x1944a4b44  file:0x1836d4b44  -[__NSCFLocalSessionTask _onqueue_completeInitialization]
[*] 3   CFNetwork           mem:0x1946d2188  file:0x183902188  0x22f188 (0x183902188)
[*] 4   libdispatch.dylib   mem:0x190f2e610  file:0x18015e610  _dispatch_call_block_and_release
[*] 5   libdispatch.dylib   mem:0x190f2f184  file:0x18015f184  _dispatch_client_callout
[*] 6   libdispatch.dylib   mem:0x190edb404  file:0x18010b404  _dispatch_lane_serial_drain$VARIANT$mp
[*] 7   libdispatch.dylib   mem:0x190edbe28  file:0x18010be28  _dispatch_lane_invoke$VARIANT$mp
[*] 8   libdispatch.dylib   mem:0x190ee5314  file:0x180115314  _dispatch_workloop_worker_thread
[*] 9   libsystem_pthread.dylibmem:0x190f7eb88  file:0x1801aeb88  _pthread_wqthread
[*] ==============================================================================================================
argCount:  1
---------- [0] curArgPtr=0x0
onLeave: retValObjStr=nil

旧

图

======================================= Called: +[NSURLRequest requestWithURL:]  =======================================
------------------------ printFunctionCallStack_symbol  ------------------------
0   SharedModules       mem:0x1072fd910  file:0xc29910     +[WACertPinning sharedPinnedWhatsAppCertificateWithoutDomainValidation]
1   WhatsApp            mem:0x104584cb4  file:0x102304cb4  +[WARegistrationURLBuilder preChatdABPropURLRequestWithPhoneNumber:abHash:]
2   WhatsApp            mem:0x10458befc  file:0x10230befc  -[WARegistrationManager requestPreChatdABPropsForPhoneNumber:userContext:completion:]
3   WhatsApp            mem:0x1045876a0  file:0x1023076a0  -[WARegistrationManager performSameDeviceCheckForSession:updateRegistrationTokenIfNecessary:fetchPreChatdABProps:withCompletion:]
4   WhatsApp            mem:0x10455c220  file:0x1022dc220  -[WAPhoneInputViewController performDeviceCheckForPhoneNumber:session:isFirstCheck:]
5   WhatsApp            mem:0x10455bff8  file:0x1022dbff8  -[WAPhoneInputViewController performSameDeviceCheckForPhoneNumber:]
6   WhatsApp            mem:0x10455f658  file:0x1022df658  maybe C function?
7   WhatsApp            mem:0x10453e038  file:0x1022be038  +[WATwoFactorWipeToken tokenFromResponseDictionary:]
8   WhatsApp            mem:0x10455e834  file:0x1022de834  -[WAPhoneInputViewController doneWithVideo:]
9   WhatsApp            mem:0x10455f758  file:0x1022df758  maybe C function?
10  SharedModules       mem:0x106a775b0  file:0x3a35b0     -[WDSButtonConfiguration setDidTap:]
11  SharedModules       mem:0x106b451e8  file:0x4711e8     +[WDSViewCallback callback:]
12  SharedModules       mem:0x106aacb84  file:0x3d8b84     -[_TtCC15UILibraryShared6Button12NativeButton intrinsicContentSize]
13  SharedModules       mem:0x106aacbc0  file:0x3d8bc0     -[_TtCC15UILibraryShared6Button12NativeButton didTap]
14  UIKitCore           mem:0x1c14b99ac  file:0x1845199ac  -[UIApplication sendAction:to:from:forEvent:]
15  UIKitCore           mem:0x1c0eeffbc  file:0x183f4ffbc  -[UIControl sendAction:to:forEvent:]
--------------------------------------------------------------------------------
argCount:  1
---------------- [0] curArgPtr=0x283c61e00  ----------------
curArgPtrObj: className= NSURL, value= https://v.whatsapp.net/v2/reg_onboard_abprop?cc=1&in=8784650468&rc=0&ab_hash=1zduBG

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-04-26 09:42:36

Android函数

Android函数

最新完整代码详见：

Frida的Android的工具类：FridaAndroidUtil

https://github.com/crifan/crifanLib/blob/master/javascript/FridaAndroidUtil.js

此处整理Frida的js中，Android方面的通用的或工具类的函数。下面详细介绍：

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-08-24 11:08:14

Java通用

Java通用

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-07-26 10:54:27

类的处理

Java的类的处理

findClass

// find loaded classes that match a pattern (async)
// for 抖音：会崩溃 Process terminated
function findClass(pattern)
{
  console.log("Finding all classes that match pattern: " + pattern + "\n");

  Java.enumerateLoadedClasses({
    onMatch: function(aClass) {
      if (aClass.match(pattern)){
        console.log(aClass)
      }
    },
    onComplete: function() {}
  });
}

printAllClasses

// emulate print all Java Classes
// for 抖音：会崩溃 Process terminated
function printAllClasses(){
  // findClass("*")
  Java.enumerateLoadedClasses({
    onMatch: function(className) {
      console.log(className);
    },
    onComplete: function() {}
  });
}

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-07-26 10:54:31

函数和属性

Java类的函数和属性

describeJavaClass

function describeJavaClass(className) {
  var jClass = Java.use(className);
  console.log(JSON.stringify({
    _name: className,
    _methods: Object.getOwnPropertyNames(jClass.__proto__).filter(m => {
    // _methods: Object.getOwnPropertyDescriptor(jClass.__proto__).filter(m => {
    // _methods: Object.getOwnPropertySymbols(jClass.__proto__).filter(m => {
      return !m.startsWith('$') // filter out Frida related special properties
         || m == 'class' || m == 'constructor' // optional
    }),
    _fields: jClass.class.getFields().map(f => {
      return f.toString()
    })
  }, null, 2))
}

enumMethods

// enumerate all methods declared in a Java class
function enumMethods(targetClass)
{
  var hook = Java.use(targetClass);
  var ownMethods = hook.class.getDeclaredMethods();
  console.log("use getDeclaredMethods")

  // var ownMethods = hook.class.getMethods();
  // console.log("use getMethods")

  hook.$dispose;
  return ownMethods;
}

调用：

  // enumerate all methods in a class
  var allMethods = enumMethods(javaClassName)
  allMethods.forEach(function(singleMethod) {
    console.log(singleMethod)
  })

enumProperties

// enumerate all property=field declared in a Java class
function enumProperties(targetClass)
{
  var hook = Java.use(targetClass);
  // var ownMethods = hook.class.getFields();
  // console.log("use getFields")

  var ownFields = hook.class.getDeclaredFields();
  console.log("use getDeclaredFields")

  hook.$dispose;
  return ownFields;
}

调用：

  var allProperties = enumProperties(javaClassName)
  allProperties.forEach(function(singleProperty) {
    console.log(singleProperty)
  })

printClassAllMethodsFields

// print single java class all Functions=Methods and Fields=Properties
function printClassAllMethodsFields(javaClassName){
  console.log("==========" + "Class: " + javaClassName + " ==========")

  console.log("-----" + "All Properties" + "-----")
  var allProperties = enumProperties(javaClassName)
  allProperties.forEach(function(singleProperty) {
    console.log(singleProperty)
  })

  console.log("-----" + "All Methods" + "-----")
  // enumerate all methods in a class
  var allMethods = enumMethods(javaClassName)
  allMethods.forEach(function(singleMethod) {
    console.log(singleMethod)
  })
  console.log("")
}

举例

调用1：

    var ContextImplClassName = "android.app.ContextImpl"
    printClassAllMethodsFields(ContextImplClassName)

调用2：

  // var C660660PrrClassName = "X.C660660Prr"
  var C660660PrrClassName = "X.0Prr"
  printClassAllMethodsFields(C660660PrrClassName)

输出：

==========Class: X.0Prr ==========
-----All Properties-----
use getDeclaredFields
public static java.lang.String X.0Prr.LIZ
public static com.ss.android.common.AppContext X.0Prr.LIZIZ
public static java.lang.String X.0Prr.LIZJ
public static java.lang.String X.0Prr.LIZLLL
public static int X.0Prr.LJ
public static int X.0Prr.LJFF
public static java.lang.String X.0Prr.LJI
public static java.lang.String X.0Prr.LJII
public static java.util.concurrent.ConcurrentHashMap X.0Prr.LJIIIIZZ
public static boolean X.0Prr.LJIIIZ
public static volatile org.json.JSONObject X.0Prr.LJIIJ
public static java.lang.String X.0Prr.LJIIJJI
public static java.lang.String X.0Prr.LJIIL
public static java.lang.String X.0Prr.LJIILIIL
public static java.lang.String X.0Prr.LJIILJJIL
public static final java.lang.Object X.0Prr.LJIILL
public static X.0Pro X.0Prr.LJIILLIIL
public static X.0PsA X.0Prr.LJIIZILJ
public static boolean X.0Prr.LJIJ
public static java.lang.String X.0Prr.LJIJI
public static volatile com.ss.android.deviceregister.DeviceCategory X.0Prr.LJIJJ
public static java.lang.String X.0Prr.LJIJJLI
public static volatile boolean X.0Prr.LJIL
public static java.util.concurrent.ConcurrentHashMap X.0Prr.LJJ
-----All Methods-----
use getDeclaredMethods
public static android.content.pm.PackageInfo X.0Prr.LIZ(android.content.pm.PackageManager,java.lang.String,int)
public static java.lang.String X.0Prr.LIZ()
public static java.lang.String X.0Prr.LIZ(android.content.Context)
public static void X.0Prr.LIZ(int)
public static void X.0Prr.LIZ(X.0Pro)
public static void X.0Prr.LIZ(X.0PsA)
public static void X.0Prr.LIZ(android.content.Context,java.lang.String)
public static void X.0Prr.LIZ(com.ss.android.common.AppContext)
public static void X.0Prr.LIZ(com.ss.android.deviceregister.DeviceCategory)
public static void X.0Prr.LIZ(java.lang.String)
public static void X.0Prr.LIZ(java.lang.String,java.lang.Object)
public static void X.0Prr.LIZ(java.lang.String,java.lang.String)
public static void X.0Prr.LIZ(java.lang.Throwable)
public static void X.0Prr.LIZ(org.json.JSONObject)
public static void X.0Prr.LIZ(org.json.JSONObject,org.json.JSONObject)
public static void X.0Prr.LIZ(boolean)
public static boolean X.0Prr.LIZ(android.content.Context,org.json.JSONObject,boolean)
public static android.content.pm.ApplicationInfo X.0Prr.LIZIZ(android.content.pm.PackageManager,java.lang.String,int)
public static java.lang.String X.0Prr.LIZIZ()
public static java.lang.String X.0Prr.LIZIZ(android.content.Context)
public static void X.0Prr.LIZIZ(android.content.Context,java.lang.String)
public static void X.0Prr.LIZIZ(java.lang.String)
public static java.lang.String X.0Prr.LIZJ()
public static java.lang.String X.0Prr.LIZJ(android.content.Context)
public static void X.0Prr.LIZJ(java.lang.String)
public static int X.0Prr.LIZLLL()
public static void X.0Prr.LIZLLL(java.lang.String)
public static int X.0Prr.LJ()
public static void X.0Prr.LJ(java.lang.String)
public static java.lang.String X.0Prr.LJFF()
public static void X.0Prr.LJFF(java.lang.String)
public static java.lang.String X.0Prr.LJI()
public static boolean X.0Prr.LJII()
public static void X.0Prr.LJIIIIZZ()

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-07-26 10:52:56

函数调用堆栈

Java函数调用堆栈

genStackStr

// generate current stack trace string
function genStackStr(ThrowableCls) {
  let newThrowable = ThrowableCls.$new()
  // console.log("genStackStr: newThrowable=" + newThrowable)
  var stackElements = newThrowable.getStackTrace()
  // console.log("genStackStr: stackElements=" + stackElements)
  var stackStr = "Stack: " + stackElements[0] //method//stackElements[0].getMethodName()
  for (var i = 1; i < stackElements.length; i++) {
    stackStr += "\n    at " + stackElements[i]
  }
  // stackStr = "\n\n" + stackStr
  stackStr = stackStr + "\n"
  // console.log("genStackStr: stackStr=" + stackStr)

  return stackStr
}

调用：

  var stackStr = genStackStr(ThrowableCls)
  console.log(stackStr)

PrintStack

// 打印当前调用堆栈信息 print call stack
function PrintStack(ThrowableCls) {
  var stackStr = genStackStr(ThrowableCls)
  console.log(stackStr)

  // let newThrowable = ThrowableCls.$new()
  // let curLog = Java.use("android.util.Log")
  // let stackStr = curLog.getStackTraceString(newThrowable)
  // console.log("stackStr=" + stackStr)
}

调用：

    var ThrowableCls = Java.use("java.lang.Throwable")
    console.log("ThrowableCls=" + ThrowableCls)

    PrintStack(ThrowableCls)

genFunctionCallStr

// generate Function call string
function genFunctionCallStr(funcName, funcParaDict){
  var logStr = `${funcName}:`
  // var logStr = funcName + ":"
  var isFirst = true

  for(var curParaName in funcParaDict){
    let curParaValue = funcParaDict[curParaName]
    var prevStr = ""
    if (isFirst){
      prevStr = " "
      isFirst = false
    } else {
      prevStr = ", "
    }

    logStr = `${logStr}${prevStr}${curParaName}=` + curParaValue
    // logStr = logStr + prevStr + curParaName + "=" + curParaValue
  }

  return logStr
}

调用：

  var functionCallStr = genFunctionCallStr(funcName, funcParaDict)

printFunctionCallAndStack

// print Function call and stack trace string
function printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls, filterList=undefined){
  // console.log("filterList=" + filterList)

  var needPrint = true

  var functionCallStr = genFunctionCallStr(funcName, funcParaDict)

  var stackStr = genStackStr(ThrowableCls)

  if (filterList != undefined) {
    needPrint = false

    for (const curFilter of filterList) {
      // console.log("curFilter=" + curFilter)
      if (stackStr.includes(curFilter)) {
        needPrint = true
        // console.log("needPrint=" + needPrint)
        break
      }
    }
  }

  if (needPrint) {
    var functionCallAndStackStr = `${functionCallStr}\n${stackStr}`
    // var functionCallAndStackStr = functionCallStr + "\n" + stackStr

    // return functionCallAndStackStr
    console.log(functionCallAndStackStr)
  }
}

调用：

场景1：不传递filter，没过滤条件，直接全都打印

    // ---------------------------------------- android.app.ContextImpl
    var ContextImplClassName = "android.app.ContextImpl"
    var ContextImplCls = Java.use(ContextImplClassName)
    console.log("ContextImplCls=" + ContextImplCls)
    // printClassAllMethodsFields(ContextImplClassName)

    // public boolean bindServiceAsUser(Intent service, ServiceConnection conn, int flags, UserHandle user)
    var bindServiceAsUserFunc4 = ContextImplCls.bindServiceAsUser.overload('android.content.Intent', 'android.content.ServiceConnection', 'int', 'android.os.UserHandle')
    if (bindServiceAsUserFunc4) {
      bindServiceAsUserFunc4.implementation = function (service, conn, flags, user) {
        // console.log("ContextImpl.bindServiceAsUser 4: service=" + service + ", conn=" + conn + ", flags=" + flags + ", user=" + user)
        // PrintStack(ThrowableCls)
        var funcName = "ContextImpl.bindServiceAsUser 4"
        var funcParaDict = {
          "service": service,
          "conn": conn,
          "flags": flags,
          "user": user,
        }
        printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)

        return this.bindServiceAsUser(service, conn, flags, user)
      }
    }

场景2：传递filter，只有堆栈中出现filter的字符串，才打印

      var funcName = "GlobalProxyLancet.com_ss_android_ugc_aweme_lancet_MemoryOptLancet_toString"
      var funcParaDict = {
        "jSONObject": jSONObject
      }
      // printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls)
      // printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls, filterList=["X.0Pru.LIZ"])
      printFunctionCallAndStack(funcName, funcParaDict, ThrowableCls, ["X.0Pru.LIZ"])

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-07-26 10:53:30

Android类

Android类

Android类

ProcessRecord

printProcessRecord

function printProcessRecord(curProcessRecord){
  console.log("printProcessRecord: curProcessRecord=" + curProcessRecord)
  console.log("  mService=" + curProcessRecord.mService.value)
  console.log("  mProcLock=" + curProcessRecord.mProcLock.value)
  console.log("  info=" + curProcessRecord.info.value)
  console.log("  processInfo=" + curProcessRecord.processInfo.value)
  console.log("  isolated=" + curProcessRecord.isolated.value)
  console.log("  isSdkSandbox=" + curProcessRecord.isSdkSandbox.value)
  console.log("  appZygote=" + curProcessRecord.appZygote.value)
  console.log("  uid=" + curProcessRecord.uid.value)
  console.log("  userId=" + curProcessRecord.userId.value)
  console.log("  processName=" + curProcessRecord.processName.value)
  console.log("  sdkSandboxClientAppPackage=" + curProcessRecord.sdkSandboxClientAppPackage.value)
  console.log("  sdkSandboxClientAppVolumeUuid=" + curProcessRecord.sdkSandboxClientAppVolumeUuid.value)
}

调用：

    var handleProcessStartedLockedFunc = ProcessListCls.handleProcessStartedLocked.overload('com.android.server.am.ProcessRecord', 'int', 'boolean', 'long', 'boolean')
    if (handleProcessStartedLockedFunc) {
      handleProcessStartedLockedFunc.implementation = function (app, pid, usingWrapper, expectedStartSeq, procAttached) {
...
        printProcessRecord(app)

Parcel

getParcelInfo

function getParcelInfo(curParcel){
  var parcelDataSize = curParcel.dataSize()
  var parcelDataCapacity = curParcel.dataCapacity()
  // var parcelDataPosition = curParcel.dataPosition()
  // var parcelInfoStr = "dataSize=" + parcelDataSize + ", dataCapacity=" + parcelDataCapacity + ", dataPositon = " + parcelDataPosition
  var parcelInfoStr = "Parcel: " + curParcel + ", dataSize=" + parcelDataSize + ", dataCapacity=" + parcelDataCapacity
  return parcelInfoStr
}

调用：

  var dataParcelInfoStr = getParcelInfo(dataParcel)

tryReadParcelString

// try to read Parcel string
function tryReadParcelString(curParcel){
  var parcelDataSize = curParcel.dataSize()
  // console.log("curParcel=" + curParcel + ": parcelDataSize=" + parcelDataSize)
  let StepSize = 4

  var isFoundStr = false
  var strDictList = []

  var curStr = null
  var curStepSize = 0
  // var foundStr = null
  // var strPos = -1
  var foundStrNum = 0
  for (var curPos = 0; curPos < parcelDataSize; curPos++) {
    curStepSize = StepSize
    curParcel.setDataPosition(curPos)
    curStr = curParcel.readString()
    if (curStr){
      if (curStr === "") {
        // empty string, continue try read other string
      } else {
        isFoundStr = true
        foundStrNum += 1

        // foundStr = curStr
        // strPos = curPos
        // console.log("  [" + curPos + "] string=" + curStr)
        // console.log("  [" + strPos + "] string=" + foundStr)
        var curStrDict = {"str": curStr, "pos": curPos}
        strDictList.push(curStrDict)
        var newPosition = curParcel.dataPosition()
        var posDiff = newPosition - curPos
        curStepSize = posDiff
        // console.log("  [" + foundStrNum + "] strDict=" + toJsonStr(curStrDict, true) + ", pos: " + curPos + " -> " + newPosition +", curStepSize=" + curStepSize)
        // break
      }
    }
    curPos += curStepSize
  }

  // setDataPosition and readString maybe CHANGED position, so need reset position
  curParcel.setDataPosition(0)

  // if(isFoundStr){
  //   // var logStr = toJsonStr(strDictList, true, 1)
  //   var logStr = toJsonStr(strDictList, true, 0)
  //   console.log("  logStr=" + logStr)
  // }

  return {
    "isFoundStr": isFoundStr,
    "strDictList": strDictList
  }
}

调用：

    var readResultDict = tryReadParcelString(dataParcel)
    console.log("parcelStr=" + parcelStr + ", strPos=" + strPos)
    var isFoundStr = readResultDict.isFoundStr
    var strDictList = readResultDict.strDictList
    if (isFoundStr) {
      // var foundStrLog = ""
      var strDictListStr = toJsonStr(strDictList, true, 0)

Intent

printIntentInfo

// print Intent info
function printIntentInfo(curIntent){
  console.log("printIntentInfo: curIntent=" + curIntent)
  var curComponent = curIntent.getComponent()
  console.log("  Intent component=" + curComponent)
  if (curComponent) {
    var pkgName = curComponent.getPackageName()
    var clsName = curComponent.getClassName()
    var shortClsName = curComponent.getShortClassName()
    var flattenedShortStr = curComponent.flattenToShortString()
    var flattenedStr = curComponent.flattenToString()
    console.log("    Intent Component info: pkgName=" + pkgName + ", clsName=" + clsName + ", shortClsName=" + shortClsName  + ", flattenedStr=" + flattenedStr + ",flattenedShortStr=" + flattenedShortStr)
  }
}

调用：

printIntentInfo(service)

TransactCode

hookPrintTransactCodeValue

function hookPrintTransactCodeValue(){
    // ---------------------------------------- android.app.IActivityManager$Stub
    var IActivityManagerStubClassName = "android.app.IActivityManager$Stub"
    var IActivityManagerStubCls = Java.use(IActivityManagerStubClassName)
    console.log("IActivityManagerStubCls=" + IActivityManagerStubCls)
    // printClassAllMethodsFields(IActivityManagerStubClassName)

    // console.log("IActivityManager$Stub: code_startService=" + code_startService + ", code_broadcastIntent=" + code_broadcastIntent + ", code_startInstrumentation=" + code_startInstrumentation + ", code_unbindService=" + code_unbindService)
    var TRANSACTION_startService = IActivityManagerStubCls.TRANSACTION_startService.value
    console.log("TRANSACTION_startService=" + TRANSACTION_startService)
    var TRANSACTION_broadcastIntent = IActivityManagerStubCls.TRANSACTION_broadcastIntent.value
    console.log("TRANSACTION_broadcastIntent=" + TRANSACTION_broadcastIntent)
    var TRANSACTION_unbindService = IActivityManagerStubCls.TRANSACTION_unbindService.value
    console.log("TRANSACTION_unbindService=" + TRANSACTION_unbindService)
    var TRANSACTION_publishService = IActivityManagerStubCls.TRANSACTION_publishService.value
    console.log("TRANSACTION_publishService=" + TRANSACTION_publishService)
    var TRANSACTION_startInstrumentation = IActivityManagerStubCls.TRANSACTION_startInstrumentation.value
    console.log("TRANSACTION_startInstrumentation=" + TRANSACTION_startInstrumentation)
    var TRANSACTION_startActivity = IActivityManagerStubCls.TRANSACTION_startActivity.value
    console.log("TRANSACTION_startActivity=" + TRANSACTION_startActivity)
    // var TRANSACTION_startActivityAndWait = IActivityManagerStubCls.TRANSACTION_startActivityAndWait.value
    // console.log("TRANSACTION_startActivityAndWait=" + TRANSACTION_startActivityAndWait)
    // var TRANSACTION_startActivityAsCaller = IActivityManagerStubCls.TRANSACTION_startActivityAsCaller.value
    // console.log("TRANSACTION_startActivityAsCaller=" + TRANSACTION_startActivityAsCaller)
    var TRANSACTION_startActivityAsUser = IActivityManagerStubCls.TRANSACTION_startActivityAsUser.value
    console.log("TRANSACTION_startActivityAsUser=" + TRANSACTION_startActivityAsUser)
    var TRANSACTION_startActivityFromRecents = IActivityManagerStubCls.TRANSACTION_startActivityFromRecents.value
    console.log("TRANSACTION_startActivityFromRecents=" + TRANSACTION_startActivityFromRecents)
    // var TRANSACTION_startActivityIntentSender = IActivityManagerStubCls.TRANSACTION_startActivityIntentSender.value
    // console.log("TRANSACTION_startActivityIntentSender=" + TRANSACTION_startActivityIntentSender)
    // var TRANSACTION_startActivityWithConfig = IActivityManagerStubCls.TRANSACTION_startActivityWithConfig.value
    // console.log("TRANSACTION_startActivityWithConfig=" + TRANSACTION_startActivityWithConfig)

    var TRANSACTION_registerUidObserver = IActivityManagerStubCls.TRANSACTION_registerUidObserver.value
    console.log("TRANSACTION_registerUidObserver=" + TRANSACTION_registerUidObserver)
    var TRANSACTION_unhandledBack = IActivityManagerStubCls.TRANSACTION_unhandledBack.value
    console.log("TRANSACTION_unhandledBack=" + TRANSACTION_unhandledBack)
    var TRANSACTION_registerReceiver = IActivityManagerStubCls.TRANSACTION_registerReceiver.value
    console.log("TRANSACTION_registerReceiver=" + TRANSACTION_registerReceiver)
    var TRANSACTION_attachApplication = IActivityManagerStubCls.TRANSACTION_attachApplication.value
    console.log("TRANSACTION_attachApplication=" + TRANSACTION_attachApplication)
    // var TRANSACTION_activityIdle = IActivityManagerStubCls.TRANSACTION_activityIdle.value
    // console.log("TRANSACTION_activityIdle=" + TRANSACTION_activityIdle)
    var TRANSACTION_stopService = IActivityManagerStubCls.TRANSACTION_stopService.value
    console.log("TRANSACTION_stopService=" + TRANSACTION_stopService)
    var TRANSACTION_bindService = IActivityManagerStubCls.TRANSACTION_bindService.value
    console.log("TRANSACTION_bindService=" + TRANSACTION_bindService)
    var TRANSACTION_noteWakeupAlarm = IActivityManagerStubCls.TRANSACTION_noteWakeupAlarm.value
    console.log("TRANSACTION_noteWakeupAlarm=" + TRANSACTION_noteWakeupAlarm)
    var TRANSACTION_openContentUri = IActivityManagerStubCls.TRANSACTION_openContentUri.value
    console.log("TRANSACTION_openContentUri=" + TRANSACTION_openContentUri)
    var TRANSACTION_finishReceiver = IActivityManagerStubCls.TRANSACTION_finishReceiver.value
    console.log("TRANSACTION_finishReceiver=" + TRANSACTION_finishReceiver)
    // var TRANSACTION_startNextMatchingActivity = IActivityManagerStubCls.TRANSACTION_startNextMatchingActivity.value
    // console.log("TRANSACTION_startNextMatchingActivity=" + TRANSACTION_startNextMatchingActivity)

    var TRANSACTION_finishActivity = IActivityManagerStubCls.TRANSACTION_finishActivity.value
    console.log("TRANSACTION_finishActivity=" + TRANSACTION_finishActivity)
}

调用：

hookPrintTransactCodeValue()

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-08-23 11:06:59

JNI

Android的JNI函数

用Frida去hook安卓的JNI函数：

RegisterNatives

GetMethodID

NewStringUTF

的相关代码：

class FridaUtil {
  ...

  static {
    ...
  }

  // constructor(curThrowableCls) {
  constructor() {
    console.log("FridaUtil constructor")
    // this.curThrowableCls = curThrowableCls
    // console.log("this.curThrowableCls=" + this.curThrowableCls)
  }

  // Frida pointer to UTF-8 string
  static ptrToUtf8Str(curPtr){
    var curUtf8Str = curPtr.readUtf8String()
    // console.log("curUtf8Str=" + curUtf8Str)
    return curUtf8Str
  }

  // Frida pointer to C string
  static ptrToCStr(curPtr){
    var curCStr = curPtr.readCString()
    // console.log("curCStr=" + curCStr)
    return curCStr
  }

  // get java class name
  // example:
  //  clazz=0x35 -> className=java.lang.ref.Reference
  //  clazz=0xa1 -> className=com.tencent.wcdb.database.SQLiteConnection
  //  clazz=0x91 -> className=java.lang.String
  static getJclassName(clazz){
    var env = Java.vm.tryGetEnv()
    // console.log("env=" + env) // env=[object Object]
    var className = env.getClassName(clazz)
    // console.log("className=" + className)
    return className
  }

  static findSymbolFromLib(soLibName, jniFuncName, callback_isFound) {
    console.log("soLibName=" + soLibName + ", jniFuncName=" + jniFuncName + ", callback_isFound=" + callback_isFound)

    var foundSymbolList = []
    let libSymbolList = Module.enumerateSymbolsSync(soLibName)
    // console.log("libSymbolList=" + libSymbolList)
    for (let i = 0; i < libSymbolList.length; i++) {
        var curSymbol = libSymbolList[i]
        // console.log("[" + i  + "] curSymbol=" + curSymbol)

        var symbolName = curSymbol.name
        // console.log("[" + i  + "] symbolName=" + symbolName)

        // var isFound = callback_isFound(symbolName)
        var isFound = callback_isFound(curSymbol, jniFuncName)
        // console.log("isFound=" + isFound)

        if (isFound) {
          var symbolAddr = curSymbol.address
          // console.log("symbolAddr=" + symbolAddr)

          foundSymbolList.push(curSymbol)
          console.log("+++ Found [" + i + "] symbol: addr=" + symbolAddr + ", name=" + symbolName)
        }
    }

    // console.log("foundSymbolList=" + foundSymbolList)
    return foundSymbolList
  }

  static android_findFunction_libart_so(jniFuncName, func_isFound) {
    var foundSymbolList = FridaUtil.findSymbolFromLib("libart.so", jniFuncName, func_isFound)
    console.log("foundSymbolList=" + foundSymbolList)
    return foundSymbolList
  }

  static android_isFoundSymbol(curSymbol, symbolName){
    // return symbolName.includes("NewStringUTF")
    // return symbolName.includes("CheckJNI12NewStringUTF")
    // return symbol.name.includes("CheckJNI12NewStringUTF")

    // _ZN3art12_GLOBAL__N_18CheckJNI12NewStringUTFEP7_JNIEnvPKc.llvm.16005601603641821307
    // _ZN3art3JNIILb0EE12NewStringUTFEP7_JNIEnvPKc
    // _ZN3art2gc4Heap24AllocObjectWithAllocatorILb1ELb1ENS_12_GLOBAL__N_119NewStringUTFVisitorEEEPNS_6mirror6ObjectEPNS_6ThreadENS_6ObjPtrINS5_5ClassEEEmNS0_13AllocatorTypeERKT1_
    // _ZNK3art12_GLOBAL__N_119NewStringUTFVisitorclENS_6ObjPtrINS_6mirror6ObjectEEEm
    // _ZN3art2gc4Heap16AllocLargeObjectILb1ENS_12_GLOBAL__N_119NewStringUTFVisitorEEEPNS_6mirror6ObjectEPNS_6ThreadEPNS_6ObjPtrINS5_5ClassEEEmRKT0_
    // _ZZN3art2gc4Heap24AllocObjectWithAllocatorILb1ELb0ENS_12_GLOBAL__N_119NewStringUTFVisitorEEEPNS_6mirror6ObjectEPNS_6ThreadENS_6ObjPtrINS5_5ClassEEEmNS0_13AllocatorTypeERKT1_ENKUlvE_clEv
    // _ZN3art3JNIILb1EE12NewStringUTFEP7_JNIEnvPKc
    // _ZZN3art3JNIILb0EE12NewStringUTFEP7_JNIEnvPKcE19prev_bad_input_time
    // _ZZN3art3JNIILb1EE12NewStringUTFEP7_JNIEnvPKcE19prev_bad_input_time
    // return symbol.name.includes("NewStringUTF")

    // symbolName.includes("RegisterNatives") && symbolName.includes("CheckJNI")
    // return symbolName.includes("CheckJNI15RegisterNatives")
    // return symbolName.includes("RegisterNatives")

    // _ZN3art12_GLOBAL__N_18CheckJNI15RegisterNativesEP7_JNIEnvP7_jclassPK15JNINativeMethodi.llvm.16005601603641821307
    // _ZN3art3JNIILb0EE15RegisterNativesEP7_JNIEnvP7_jclassPK15JNINativeMethodi
    // _ZN3art3JNIILb1EE15RegisterNativesEP7_JNIEnvP7_jclassPK15JNINativeMethodi
    // return symbol.name.includes("RegisterNatives")

    // return symbolName.includes("CheckJNI11GetMethodID")
    // return symbolName.includes("GetMethodID")

    // _ZN3art12_GLOBAL__N_18CheckJNI19GetMethodIDInternalEPKcP7_JNIEnvP7_jclassS3_S3_b
    // _ZN3art12_GLOBAL__N_18CheckJNI11GetMethodIDEP7_JNIEnvP7_jclassPKcS7_.llvm.16005601603641821307
    // _ZN3art3JNIILb0EE11GetMethodIDEP7_JNIEnvP7_jclassPKcS7_
    // _ZN3art3JNIILb1EE11GetMethodIDEP7_JNIEnvP7_jclassPKcS7_
    // return symbol.name.includes("GetMethodID")

    return curSymbol.name.includes(symbolName)
  }

  static android_findJniFunc(jniFuncName){
    var jniSymbolList = FridaUtil.android_findFunction_libart_so(jniFuncName, FridaUtil.android_isFoundSymbol)
    return jniSymbolList
  }

  static android_doHookJniFunc_multipleMatch(foundSymbolList, callback_hookFunc){
    if (null == foundSymbolList){
      return
    }

    var symbolNum = foundSymbolList.length
    console.log("symbolNum=" + symbolNum)
    if (symbolNum == 0){
      return
    }

    for(var i = 0; i < symbolNum; ++i) {
      var eachSymbol = foundSymbolList[i]
      // console.log("eachSymbol=" + eachSymbol)
      var curSymbolAddr = eachSymbol.address
      console.log("curSymbolAddr=" + curSymbolAddr)

      Interceptor.attach(curSymbolAddr, {
        onEnter: function (args) {
          callback_hookFunc(eachSymbol, args)
        }
      })
    }

  }

  static android_hookJniFunc(jniFuncName, hookFunc){
    var jniSymbolList = FridaUtil.android_findJniFunc(jniFuncName)
    FridaUtil.android_doHookJniFunc_multipleMatch(jniSymbolList, hookFunc)
  }

}

注：

FridaUtil的最新完整代码，详见：

https://github.com/crifan/crifanLib/blob/master/javascript/FridaUtil.js

调用=hook代码：

function hookNative_NewStringUTF(){
  // var symbolList_NewStringUTF = find_NewStringUTF()
  // hoook_NewStringUTF(symbolList_NewStringUTF)

  FridaUtil.android_hookJniFunc("NewStringUTF", function(curSymbol, args){
    JsUtil.logStr("Trigged NewStringUTF [" + curSymbol.address + "]")
      // jstring NewStringUTF(JNIEnv *env, const char *bytes);
      var jniEnv = args[0]
      console.log("jniEnv=" + jniEnv)

      var newStrPtr = args[1]
      // var newStr = newStrPtr.readCString()
      // var newStr = FridaUtil.ptrToUtf8Str(newStrPtr)
      var newStr = FridaUtil.ptrToCStr(newStrPtr)
      console.log("newStrPtr=" + newStrPtr + " -> newStr=" + newStr)
  })
}

function hookNative_GetMethodID(){
  // var symbolList_GetMethodID = find_GetMethodID()
  // hoook_GetMethodID(symbolList_GetMethodID)

  FridaUtil.android_hookJniFunc("GetMethodID", function(curSymbol, args){
    JsUtil.logStr("Trigged GetMethodID [" + curSymbol.address + "]")
      // jmethodID GetMethodID(JNIEnv *env, jclass clazz, const char *name, const char *sig);
      var jniEnv = args[0]
      console.log("jniEnv=" + jniEnv)

      var clazz = args[1]
      var jclassName = FridaUtil.getJclassName(clazz)
      console.log("clazz=" + clazz + " -> jclassName=" + jclassName)

      var namePtr = args[2]
      var nameStr = FridaUtil.ptrToUtf8Str(namePtr)
      console.log("namePtr=" + namePtr + " -> nameStr=" + nameStr)

      var sigPtr = args[3]
      var sigStr = FridaUtil.ptrToUtf8Str(sigPtr)
      console.log("sigPtr=" + sigPtr + " -> sigStr=" + sigStr)
  })
}

function hookNative_RegisterNatives(){
  // var symbolList_RegisterNatives = find_RegisterNatives()
  // hoook_RegisterNatives(symbolList_RegisterNatives)

  FridaUtil.android_hookJniFunc("RegisterNatives", function(curSymbol, args){
    JsUtil.logStr("Trigged RegisterNatives [" + curSymbol.address + "]")

    /*
      typedef struct {
        const char* name;
        const char* signature;
        void* fnPtr;
      } JNINativeMethod;

      jint RegisterNatives(JNIEnv *env, jclass clazz, const JNINativeMethod *methods, jint nMethods);
    */
    var jniEnv = args[0]
    console.log("jniEnv=" + jniEnv)

    var clazz = args[1]
    var jclassName = FridaUtil.getJclassName(clazz)
    console.log("clazz=" + clazz + " -> jclassName=" + jclassName)

    var methods = args[2]
    console.log("methods=" + methods)

    var nMethods = args[3]
    var methodNum = parseInt(nMethods)
    console.log("nMethods=" + nMethods + " -> methodNum=" + methodNum)
  })
}

function hookNative(){
  hookNative_RegisterNatives()
  hookNative_GetMethodID()
  hookNative_NewStringUTF()
}

function hookAndroid() {
  if(!Java.available){
    console.error("Java is not available")
    return
  }

  console.log("Java is available")
  console.log("Java.androidVersion=" + Java.androidVersion)

  Java.perform(function () {
    hookNative()

    console.log("-------------------- Begin Hook --------------------")
  })

}

setImmediate(hookAndroid)

输出：

RegisterNatives

[8588] curSymbol=[object Object]
+++ Found smbol: addr=0x738cc36550, name=_ZN3art12_GLOBAL__N_18CheckJNI15RegisterNativesEP7_JNIEnvP7_jclassPK15JNINativeMethodi.llvm.16005601603641821307
[9254] curSymbol=[object Object]
+++ Found smbol: addr=0x738ccb070c, name=_ZN3art3JNIILb0EE15RegisterNativesEP7_JNIEnvP7_jclassPK15JNINativeMethodi
[9761] curSymbol=[object Object]
+++ Found smbol: addr=0x738cd109f8, name=_ZN3art3JNIILb1EE15RegisterNativesEP7_JNIEnvP7_jclassPK15JNINativeMethodi
foundSymbolList=[object Object],[object Object],[object Object]
foundFuncPtr=[object Object],[object Object],[object Object]
symbolList_RegisterNatives.length=3
curAddr_RegisterNatives=0x738cc36550
curAddr_RegisterNatives=0x738ccb070c
curAddr_RegisterNatives=0x738cd109f8

-------------------- Trigged RegisterNatives [0x738cd109f8]--------------------
jniEnv=0xb4000074504b0b10
clazz=0x129
jclassName=android.net.NetworkUtils
methods=0x7375709008
nMethods=0xc
methodNum=12

-------------------- Trigged RegisterNatives [0x738cd109f8]--------------------
jniEnv=0x74504e88d0
clazz=0x45
jclassName=J.N
methods=0x72a0fa3b78
nMethods=0x3e
methodNum=62
-------------------- Trigged RegisterNatives [0x738cd109f8]--------------------
jniEnv=0x74504e88d0
clazz=0x49
jclassName=J.N
methods=0x72a0fa4148
nMethods=0x8f
methodNum=143

GetMethodID

+++ Found [8067] symbol: addr=0x738cc40520, name=_ZN3art12_GLOBAL__N_18CheckJNI19GetMethodIDInternalEPKcP7_JNIEnvP7_jclassS3_S3_b
+++ Found [8406] symbol: addr=0x738cc2f90c, name=_ZN3art12_GLOBAL__N_18CheckJNI11GetMethodIDEP7_JNIEnvP7_jclassPKcS7_.llvm.16005601603641821307
+++ Found [8879] symbol: addr=0x738cc6385c, name=_ZN3art3JNIILb0EE11GetMethodIDEP7_JNIEnvP7_jclassPKcS7_
+++ Found [9392] symbol: addr=0x738ccc3778, name=_ZN3art3JNIILb1EE11GetMethodIDEP7_JNIEnvP7_jclassPKcS7_
foundSymbolList=[object Object],[object Object],[object Object],[object Object]
symbolNum=4
curSymbolAddr=0x738cc40520
curSymbolAddr=0x738cc2f90c
curSymbolAddr=0x738cc6385c
curSymbolAddr=0x738ccc3778

-------------------- Trigged GetMethodID [0x738ccc3778] --------------------
jniEnv=0x74504ef410
clazz=0x45 -> jclassName=android.system.ErrnoException
namePtr=0x7382448900 -> nameStr=<init>
sigPtr=0x73824490b0 -> sigStr=(Ljava/lang/String;I)V

-------------------- Trigged GetMethodID [0x738ccc3778] --------------------
jniEnv=0x74504e8770
clazz=0xd -> jclassName=java.lang.Class
namePtr=0x72af707f32 -> nameStr=getDeclaredMethod
sigPtr=0x72af707f44 -> sigStr=(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;

-------------------- Trigged GetMethodID [0x738ccc3778] --------------------
jniEnv=0x74504e5750
clazz=0x45 -> jclassName=android.system.ErrnoException
namePtr=0x7382448900 -> nameStr=<init>
sigPtr=0x73824490b0 -> sigStr=(Ljava/lang/String;I)V

NewStringUTF

+++ Found [8540] symbol: addr=0x738cc337c8, name=_ZN3art12_GLOBAL__N_18CheckJNI12NewStringUTFEP7_JNIEnvPKc.llvm.16005601603641821307
+++ Found [9143] symbol: addr=0x738cc9b938, name=_ZN3art3JNIILb0EE12NewStringUTFEP7_JNIEnvPKc
+++ Found [9145] symbol: addr=0x738ccb64f0, name=_ZN3art2gc4Heap24AllocObjectWithAllocatorILb1ELb1ENS_12_GLOBAL__N_119NewStringUTFVisitorEEEPNS_6mirror6ObjectEPNS_6ThreadENS_6ObjPtrINS5_5ClassEEEmNS0_13AllocatorTypeERKT1_
+++ Found [9300] symbol: addr=0x738ccb7b6c, name=_ZNK3art12_GLOBAL__N_119NewStringUTFVisitorclENS_6ObjPtrINS_6mirror6ObjectEEEm
+++ Found [9301] symbol: addr=0x738ccb7750, name=_ZN3art2gc4Heap16AllocLargeObjectILb1ENS_12_GLOBAL__N_119NewStringUTFVisitorEEEPNS_6mirror6ObjectEPNS_6ThreadEPNS_6ObjPtrINS5_5ClassEEEmRKT0_
+++ Found [9302] symbol: addr=0x738ca308d8, name=_ZZN3art2gc4Heap24AllocObjectWithAllocatorILb1ELb0ENS_12_GLOBAL__N_119NewStringUTFVisitorEEEPNS_6mirror6ObjectEPNS_6ThreadENS_6ObjPtrINS5_5ClassEEEmNS0_13AllocatorTypeERKT1_ENKUlvE_clEv
+++ Found [9656] symbol: addr=0x738ccfbc24, name=_ZN3art3JNIILb1EE12NewStringUTFEP7_JNIEnvPKc
+++ Found [23806] symbol: addr=0x738d215948, name=_ZZN3art3JNIILb0EE12NewStringUTFEP7_JNIEnvPKcE19prev_bad_input_time
+++ Found [23812] symbol: addr=0x738d215950, name=_ZZN3art3JNIILb1EE12NewStringUTFEP7_JNIEnvPKcE19prev_bad_input_time
foundSymbolList=[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
symbolNum=9
curSymbolAddr=0x738cc337c8
curSymbolAddr=0x738cc9b938
curSymbolAddr=0x738ccb64f0
curSymbolAddr=0x738ccb7b6c
curSymbolAddr=0x738ccb7750
curSymbolAddr=0x738ca308d8
curSymbolAddr=0x738ccfbc24
curSymbolAddr=0x738d215948
curSymbolAddr=0x738d215950

-------------------- Trigged NewStringUTF [0x738d215950] --------------------
jniEnv=0xb4000074504b0b10
newStrPtr=0x7ff3cc3650 -> newStr=false

-------------------- Trigged NewStringUTF [0x738d215950] --------------------
jniEnv=0xb4000074504b0b10
newStrPtr=0x7379c4c468 -> newStr=arm64-v8a

-------------------- Trigged NewStringUTF [0x738d215950] --------------------
jniEnv=0xb4000074504b0b10
newStrPtr=0x7379c4c5ac -> newStr=default:targetSdkVersion=30

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-08-23 11:16:53

C

C

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-04-29 09:21:38

native C

native C

hookNativeFunc

function hookNativeFunc(){
  // /Users/crifan/dev/dev_src/androidReverse/Android/android.googlesource.com/base-refs_heads_main/core/jni/android_util_Binder.cpp
  // status_t onTransact( uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags = 0) override {
  // var foundOnTransact = Module.findExportByName(null, "onTransact")

  // let transactModuleName = "libBinder.so"
  // let transactModuleName = "libbinder.so"
  let transactModuleName = "libbinder_ndk.so"

  var foundOnTransact = Module.findExportByName(transactModuleName, "onTransact")

  console.log("foundOnTransact=" + foundOnTransact)
  if (foundOnTransact) {
    Interceptor.attach(foundOnTransact, {
      onEnter: function(args) {
        var code = args[0]
        var data = args[1]
        var reply = args[2]
        var flags = args[3]
        console.log("onTransact: code=" + code + ", data=" + data + ", reply=" + reply + ", flags=" + flags)
      },
      onLeave: function(retVal) {
        console.log("onTransact: retval=" + retVal)
      }
    })
  }

  // var foundTransact = Module.findExportByName(null, "transact")
  var foundTransact = Module.findExportByName(transactModuleName, "transact")
  console.log("foundTransact=" + foundTransact)
}

调用：

function hookForceStop() {
  if(!Java.available){
    console.error("Java is not available")
    return
  }
  console.log("Java is available")
  console.log("Java.androidVersion=" + Java.androidVersion)
  Java.perform(function () {
    ...
    hookNativeFunc()
    ...
  }
}

setImmediate(hookForceStop)

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-04-29 09:23:03

附录

附录

下面列出相关参考资料。

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-03-19 09:23:11

参考资料

参考资料

4ch12dy/FridaLib: iOS/android frida library for reversing (github.com)

Check if an Item is in an Array in JavaScript – JS Contains with Array.includes() (freecodecamp.org)

【已解决】Frida的js中判断int整数是否在整数列表中

【已解决】Frida中js判断字符串是否在字典dict的key键中

【已解决】Frida中js从数组中截取获取部分子数组元素

【已解决】Frida中js打印日志log优化：自动生成中间字符串加上左右对称的单行log日志

【已解决】Frida去hook函数时打印iOS函数调用堆栈且带符号解析后的函数名

【已解决】frida调试iOS函数打印函数堆栈且带符号解析后的函数：加缓存结果以优化速度提高性能

【已解决】Frida打印iOS函数调用堆栈：优化同一函数只输出一次

【已解决】iOS逆向WhatsApp：Frida的js的函数堆栈打印优化：给个别特定函数加到排除列表

【已解决】iOS逆向WhatsApp：Frida的js的函数堆栈打印优化：支持特定函数的特定参数值时打印

【已解决】Frida无法hook到类ActivityManagerService：hook系统进程system_server

【未解决】Frida去hook抖音：打印所有的Java的类名

【已解决】Frida的js中判断字符串是否包含子字符串

crifan.org，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2024-08-24 11:12:31