Skip to content

Instantly share code, notes, and snippets.

@Liam0205
Last active May 27, 2023 05:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Liam0205/761998f54c0649c4ecb8289bb7ab1bab to your computer and use it in GitHub Desktop.
Save Liam0205/761998f54c0649c4ecb8289bb7ab1bab to your computer and use it in GitHub Desktop.
Feedback on using Crane with Dopamine.

Environment

  • iPhone 13 Pro
  • iOS 15.4.1
  • Dopamine 1.0.5
  • Choicy 1.4.9
  • Crane 1.3.10
  • Ellekit 1.0

Issues

I have encountered two issues:

  1. Preferences crashes when overwriting Choicy settings for a specific container in Crane. (I have also reported this issue in the Dopamine GitHub Issue: opa334/Dopamine#169)
  2. Even with container protection enabled, data within the container can still be accidentally deleted by the default container.

Reproduction Steps

Preferences crashes

The crash can be consistently reproduced on my iPhone using the following steps:

  • Open Preferences
  • Navigate to Crane
  • In Crane's settings, choose any app, create a new container or select an existing container
  • Tap to change Choicy settings for the specific container
  • Crash occurs

Crash logs can be found in 01. Preferences.ips.

Container protection issue

This issue is not as easily reproducible.

  1. Open Preferences, go to Crane, and locate WeChat in Applications (a widely used instant messaging app in mainland China).
  2. Enable container protection and add a new container.
  3. Switch to the home screen.
  4. Open the newly created container in WeChat and log in with an account.
  5. Switch back to WeChat's default container and use it normally for a period of time (around two days).
  6. Switch to the newly created container and observe that the account has been logged out, and upon re-login, the chat history within the container has been deleted as well.
{"app_name":"Preferences","timestamp":"2023-05-13 18:59:34.00 +0800","app_version":"1","slice_uuid":"c2abf198-e030-3481-9fae-5ee03708b817","build_version":"1112.96","platform":2,"bundleID":"com.apple.Preferences","share_with_app_devs":0,"is_first_party":1,"bug_type":"309","os_version":"iPhone OS 15.4.1 (19E258)","incident_id":"82C3C62B-3BFC-42B1-9525-7E60DCC3083B","name":"Preferences"}
{
"uptime" : 420,
"procLaunch" : "2023-05-13 18:57:59.9041 +0800",
"procRole" : "Foreground",
"version" : 2,
"userID" : 501,
"deployVersion" : 210,
"modelCode" : "iPhone14,2",
"procStartAbsTime" : 7823423747,
"coalitionID" : 897,
"osVersion" : {
"isEmbedded" : true,
"train" : "iPhone OS 15.4.1",
"releaseType" : "User",
"build" : "19E258"
},
"captureTime" : "2023-05-13 18:59:34.5333 +0800",
"incident" : "82C3C62B-3BFC-42B1-9525-7E60DCC3083B",
"bug_type" : "309",
"pid" : 1822,
"procExitAbsTime" : 10094483032,
"cpuType" : "ARM-64",
"procName" : "Preferences",
"procPath" : "\/Applications\/Preferences.app\/Preferences",
"bundleInfo" : {"CFBundleShortVersionString":"1","CFBundleVersion":"1112.96","CFBundleIdentifier":"com.apple.Preferences"},
"storeInfo" : {"deviceIdentifierForVendor":"52B17DCF-56DD-48C0-82A8-865885A4A3B1"},
"parentProc" : "launchd",
"parentPid" : 1,
"coalitionName" : "com.apple.Preferences",
"crashReporterKey" : "5a79321ee308138227a5224fd62003840cbd89f9",
"basebandVersion" : "1.59.03",
"isCorpse" : 1,
"exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"},
"ktriageinfo" : "VM - Compressor failed a blocking pager_get\nVM - Compressor failed a blocking pager_get\nVM - Compressor failed a blocking pager_get\nVM - Compressor failed a blocking pager_get\n",
"asi" : {"libsystem_c.dylib":["abort() called"]},
"lastExceptionBacktrace" : [{"imageOffset":630136,"symbol":"__exceptionPreprocess","symbolLocation":220,"imageIndex":5},{"imageOffset":91956,"symbol":"objc_exception_throw","symbolLocation":60,"imageIndex":4},{"imageOffset":1538952,"symbol":"+[NSObject(NSObject) _copyDescription]","symbolLocation":0,"imageIndex":5},{"imageOffset":16199988,"symbol":"-[UIResponder doesNotRecognizeSelector:]","symbolLocation":296,"imageIndex":7},{"imageOffset":190856,"symbol":"___forwarding___","symbolLocation":1764,"imageIndex":5},{"imageOffset":186976,"symbol":"_CF_forwarding_prep_0","symbolLocation":96,"imageIndex":5},{"imageOffset":237824,"imageIndex":12},{"imageOffset":61360,"imageIndex":13},{"imageOffset":63636,"symbol":"-[PSListController viewDidLoad]","symbolLocation":300,"imageIndex":14},{"imageOffset":58856,"imageIndex":13},{"imageOffset":1750724,"symbol":"-[UIViewController _sendViewDidLoadWithAppearanceProxyObjectTaggingEnabled]","symbolLocation":108,"imageIndex":7},{"imageOffset":1761812,"symbol":"-[UIViewController loadViewIfRequired]","symbolLocation":1048,"imageIndex":7},{"imageOffset":1577588,"symbol":"-[UIViewController view]","symbolLocation":32,"imageIndex":7},{"imageOffset":3631228,"symbol":"-[UINavigationController _startCustomTransition:]","symbolLocation":1140,"imageIndex":7},{"imageOffset":5065084,"symbol":"-[UINavigationController _startDeferredTransitionIfNeeded:]","symbolLocation":696,"imageIndex":7},{"imageOffset":3842368,"symbol":"-[UINavigationController __viewWillLayoutSubviews]","symbolLocation":168,"imageIndex":7},{"imageOffset":2956088,"symbol":"-[UILayoutContainerView layoutSubviews]","symbolLocation":228,"imageIndex":7},{"imageOffset":415892,"symbol":"-[UILayoutContainerViewAccessibility layoutSubviews]","symbolLocation":52,"imageIndex":15},{"imageOffset":1620036,"symbol":"-[UIView(CALayerDelegate) layoutSublayersOfLayer:]","symbolLocation":2592,"imageIndex":7},{"imageOffset":262592,"symbol":"CA::Layer::layout_if_needed(CA::Transaction*)","symbolLocation":532,"imageIndex":16},{"imageOffset":206332,"symbol":"CA::Layer::layout_and_display_if_needed(CA::Transaction*)","symbolLocation":136,"imageIndex":16},{"imageOffset":290672,"symbol":"CA::Context::commit_transaction(CA::Transaction*, double, double*)","symbolLocation":452,"imageIndex":16},{"imageOffset":327288,"symbol":"CA::Transaction::commit()","symbolLocation":704,"imageIndex":16},{"imageOffset":5495284,"symbol":"_UIApplicationFlushCATransaction","symbolLocation":100,"imageIndex":7},{"imageOffset":8224900,"symbol":"_UIUpdateSequenceRun","symbolLocation":84,"imageIndex":7},{"imageOffset":15064240,"symbol":"schedulerStepScheduledMainSection","symbolLocation":144,"imageIndex":7},{"imageOffset":15062136,"symbol":"runloopSourceCallback","symbolLocation":92,"imageIndex":7},{"imageOffset":769796,"symbol":"__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__","symbolLocation":28,"imageIndex":5},{"imageOffset":838800,"symbol":"__CFRunLoopDoSource0","symbolLocation":208,"imageIndex":5},{"imageOffset":24964,"symbol":"__CFRunLoopDoSources0","symbolLocation":268,"imageIndex":5},{"imageOffset":47948,"symbol":"__CFRunLoopRun","symbolLocation":828,"imageIndex":5},{"imageOffset":128696,"symbol":"CFRunLoopRunSpecific","symbolLocation":600,"imageIndex":5},{"imageOffset":4980,"symbol":"GSEventRunModal","symbolLocation":164,"imageIndex":6},{"imageOffset":5324424,"symbol":"-[UIApplication _run]","symbolLocation":1100,"imageIndex":7},{"imageOffset":2708972,"symbol":"UIApplicationMain","symbolLocation":364,"imageIndex":7},{"imageOffset":52140,"imageIndex":8},{"imageOffset":105700,"symbol":"start","symbolLocation":520,"imageIndex":9}],
"faultingThread" : 0,
"threads" : [{"triggered":true,"id":14863,"threadState":{"x":[{"value":0},{"value":0},{"value":0},{"value":0},{"value":7385125109},{"value":6155187136},{"value":110},{"value":8448},{"value":5212768696309032636},{"value":5213975964355814204},{"value":512},{"value":11},{"value":11},{"value":6971763455},{"value":7385125147},{"value":0},{"value":328},{"value":4313630080,"symbolLocation":0,"symbol":"_main_thread"},{"value":0},{"value":6},{"value":259},{"value":4313630304,"symbolLocation":224,"symbol":"_main_thread"},{"value":1},{"value":10792853648},{"value":0},{"value":1},{"value":63113990400},{"value":8469901312,"symbolLocation":0,"symbol":"_CFXRegistrationPost.blockOperationClass"},{"value":1}],"flavor":"ARM_THREAD_STATE64","lr":{"value":8871756732},"cpsr":{"value":1073745920},"fp":{"value":6155186992},"sp":{"value":6155186960},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":7902419832,"matchesCrashFrame":1},"far":{"value":8429602256}},"queue":"com.apple.main-thread","frames":[{"imageOffset":31608,"symbol":"__pthread_kill","symbolLocation":8,"imageIndex":0},{"imageOffset":29628,"symbol":"pthread_kill","symbolLocation":268,"imageIndex":1},{"imageOffset":132380,"symbol":"abort","symbolLocation":168,"imageIndex":2},{"imageOffset":72572,"symbol":"abort_message","symbolLocation":132,"imageIndex":3},{"imageOffset":6596,"symbol":"demangling_terminate_handler()","symbolLocation":336,"imageIndex":3},{"imageOffset":117896,"symbol":"_objc_terminate()","symbolLocation":144,"imageIndex":4},{"imageOffset":69400,"symbol":"std::__terminate(void (*)())","symbolLocation":20,"imageIndex":3},{"imageOffset":81596,"symbol":"__cxa_rethrow","symbolLocation":148,"imageIndex":3},{"imageOffset":100016,"symbol":"objc_exception_rethrow","symbolLocation":44,"imageIndex":4},{"imageOffset":128932,"symbol":"CFRunLoopRunSpecific","symbolLocation":836,"imageIndex":5},{"imageOffset":4980,"symbol":"GSEventRunModal","symbolLocation":164,"imageIndex":6},{"imageOffset":5324424,"symbol":"-[UIApplication _run]","symbolLocation":1100,"imageIndex":7},{"imageOffset":2708972,"symbol":"UIApplicationMain","symbolLocation":364,"imageIndex":7},{"imageOffset":52140,"imageIndex":8},{"imageOffset":105700,"symbol":"start","symbolLocation":520,"imageIndex":9}]},{"id":14888,"name":"com.apple.uikit.eventfetch-thread","frames":[{"imageOffset":5344,"symbol":"mach_msg_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":6948,"symbol":"mach_msg","symbolLocation":76,"imageIndex":0},{"imageOffset":30752,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":372,"imageIndex":5},{"imageOffset":48300,"symbol":"__CFRunLoopRun","symbolLocation":1180,"imageIndex":5},{"imageOffset":128696,"symbol":"CFRunLoopRunSpecific","symbolLocation":600,"imageIndex":5},{"imageOffset":99348,"symbol":"-[NSRunLoop(NSRunLoop) runMode:beforeDate:]","symbolLocation":236,"imageIndex":10},{"imageOffset":367788,"symbol":"-[NSRunLoop(NSRunLoop) runUntilDate:]","symbolLocation":92,"imageIndex":10},{"imageOffset":4775856,"symbol":"-[UIEventFetcher threadMain]","symbolLocation":524,"imageIndex":7},{"imageOffset":427356,"symbol":"__NSThread__start__","symbolLocation":808,"imageIndex":10},{"imageOffset":6572,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":1},{"imageOffset":3688,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":14892,"name":"WFWiFiStateMonitor callback thread","frames":[{"imageOffset":5344,"symbol":"mach_msg_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":6948,"symbol":"mach_msg","symbolLocation":76,"imageIndex":0},{"imageOffset":30752,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":372,"imageIndex":5},{"imageOffset":48300,"symbol":"__CFRunLoopRun","symbolLocation":1180,"imageIndex":5},{"imageOffset":128696,"symbol":"CFRunLoopRunSpecific","symbolLocation":600,"imageIndex":5},{"imageOffset":99348,"symbol":"-[NSRunLoop(NSRunLoop) runMode:beforeDate:]","symbolLocation":236,"imageIndex":10},{"imageOffset":101328,"symbol":"-[NSRunLoop(NSRunLoop) run]","symbolLocation":92,"imageIndex":10},{"imageOffset":411980,"symbol":"-[WFWiFiStateMonitor _runManagerCallbackThread]","symbolLocation":280,"imageIndex":11},{"imageOffset":427356,"symbol":"__NSThread__start__","symbolLocation":808,"imageIndex":10},{"imageOffset":6572,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":1},{"imageOffset":3688,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":15537,"frames":[{"imageOffset":3668,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":1}]},{"id":15540,"frames":[{"imageOffset":3668,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":1}]},{"id":15541,"frames":[{"imageOffset":3668,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":1}]},{"id":15544,"frames":[{"imageOffset":3668,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":1}]}],
"usedImages" : [
{
"source" : "P",
"arch" : "arm64e",
"base" : 7902388224,
"size" : 221184,
"uuid" : "c2fcc058-7480-3c14-b479-0064a3f843e3",
"path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
"name" : "libsystem_kernel.dylib"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 8871727104,
"size" : 49152,
"uuid" : "b48efcbe-d4f7-308b-a3fa-172e0ea78e33",
"path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
"name" : "libsystem_pthread.dylib"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 7153713152,
"size" : 524288,
"uuid" : "b0793d31-ed1b-3549-b861-92a10841bf68",
"path" : "\/usr\/lib\/system\/libsystem_c.dylib",
"name" : "libsystem_c.dylib"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 7385038848,
"size" : 98304,
"uuid" : "fe24cee6-11ec-3951-aa18-32594f98ef0d",
"path" : "\/usr\/lib\/libc++abi.dylib",
"name" : "libc++abi.dylib"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 7383924736,
"size" : 249856,
"uuid" : "a196a0f6-cadb-325b-bc1f-5965e670f9b6",
"path" : "\/usr\/lib\/libobjc.A.dylib",
"name" : "libobjc.A.dylib"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 6967738368,
"size" : 4546560,
"uuid" : "d2716f2f-688b-3d51-ba8b-17e6553b209e",
"path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/CoreFoundation",
"name" : "CoreFoundation"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 7438254080,
"size" : 36864,
"uuid" : "75a910dc-87a4-3b3a-8c0e-a868b945f5d4",
"path" : "\/System\/Library\/PrivateFrameworks\/GraphicsServices.framework\/GraphicsServices",
"name" : "GraphicsServices"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 7005949952,
"size" : 25800704,
"uuid" : "e6e89bb5-b586-3725-bf8f-4c85dcd443bd",
"path" : "\/System\/Library\/PrivateFrameworks\/UIKitCore.framework\/UIKitCore",
"name" : "UIKitCore"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 4311695360,
"size" : 81920,
"uuid" : "c2abf198-e030-3481-9fae-5ee03708b817",
"path" : "\/Applications\/Preferences.app\/Preferences",
"name" : "Preferences"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 4313186304,
"size" : 360448,
"uuid" : "d16b72c0-d619-3e48-9262-2c10a1d3066f",
"path" : "\/usr\/lib\/dyld",
"name" : "dyld"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 6992830464,
"size" : 3182592,
"uuid" : "feeef9b1-b0e6-3561-adfa-3ef0302d23f8",
"path" : "\/System\/Library\/Frameworks\/Foundation.framework\/Foundation",
"name" : "Foundation"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 7959310336,
"size" : 897024,
"uuid" : "46949149-9faf-3b81-8dff-44c9b529dc5f",
"path" : "\/System\/Library\/PrivateFrameworks\/WiFiKit.framework\/WiFiKit",
"name" : "WiFiKit"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 4830674944,
"size" : 311296,
"uuid" : "6c77f008-eb59-3e4e-bd9a-8501f2a8267f",
"path" : "\/private\/preboot\/9C4B5D6366FB65AAF443B69D2A6C0406864A84F6268A6C716E680EE79B05F1F4EB984D2CFD3DAC71500FF34FEE7493C6\/jb-ZLELQq\/procursus\/Library\/PreferenceBundles\/CranePrefs.bundle\/CranePrefs",
"name" : "CranePrefs"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 4838932480,
"size" : 131072,
"uuid" : "1923335f-a866-3a59-b35b-c9aeff0dd838",
"path" : "\/private\/preboot\/9C4B5D6366FB65AAF443B69D2A6C0406864A84F6268A6C716E680EE79B05F1F4EB984D2CFD3DAC71500FF34FEE7493C6\/jb-ZLELQq\/procursus\/Library\/PreferenceBundles\/ChoicyPrefs.bundle\/ChoicyPrefs",
"name" : "ChoicyPrefs"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 7051603968,
"size" : 1462272,
"uuid" : "0cba6ad3-efdd-38c9-a55b-a906e2b96950",
"path" : "\/System\/Library\/PrivateFrameworks\/Preferences.framework\/Preferences",
"name" : "Preferences"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 8874135552,
"size" : 1286144,
"uuid" : "2eaae3fe-bfb1-3e62-b103-6b14136d43ae",
"path" : "\/System\/Library\/AccessibilityBundles\/UIKit.axbundle\/UIKit",
"name" : "UIKit"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 7031906304,
"size" : 3211264,
"uuid" : "a491ae8b-354b-35c1-ab22-af42a96b6704",
"path" : "\/System\/Library\/Frameworks\/QuartzCore.framework\/QuartzCore",
"name" : "QuartzCore"
}
],
"sharedCache" : {
"base" : 6964248576,
"size" : 2566684672,
"uuid" : "46820f72-53b2-3566-ab58-5d78032ccf34"
},
"vmSummary" : "ReadOnly portion of Libraries: Total=1.0G resident=0K(0%) swapped_out_or_unallocated=1.0G(100%)\nWritable regions: Total=629.2M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=629.2M(100%)\n\n VIRTUAL REGION \nREGION TYPE SIZE COUNT (non-coalesced) \n=========== ======= ======= \nActivity Tracing 256K 1 \nCG raster data 880K 9 \nColorSync 336K 21 \nCoreAnimation 8912K 256 \nCoreData Object IDs 4112K 2 \nCoreUI image data 144K 1 \nFoundation 16K 1 \nImage IO 544K 18 \nKernel Alloc Once 32K 1 \nMALLOC 599.2M 185 \nMALLOC guard page 128K 8 \nMach message 12.9M 824 \nSQLite page cache 576K 9 \nSTACK GUARD 112K 7 \nStack 4272K 7 \nVM_ALLOCATE 224K 6 \n__AUTH 6621K 764 \n__AUTH_CONST 33.9M 959 \n__CTF 759 1 \n__DATA 32.1M 1065 \n__DATA_CONST 39.3M 1082 \n__DATA_DIRTY 3368K 791 \n__FONT_DATA 4K 1 \n__LINKEDIT 194.6M 120 \n__OBJC_CONST 9456K 731 \n__OBJC_RO 92.1M 1 \n__OBJC_RW 3520K 1 \n__TEXT 850.4M 1195 \n__UNICODE 592K 1 \ndyld private memory 1024K 1 \nmapped file 409.1M 356 \nshared memory 48K 3 \n=========== ======= ======= \nTOTAL 2.3G 8428 \n",
"legacyInfo" : {
"threadTriggered" : {
"queue" : "com.apple.main-thread"
}
},
"trialInfo" : {
"rollouts" : [
{
"rolloutId" : "61af99aeda72d16a4beb7756",
"factorPackIds" : {
"SIRI_DIALOG_ASSETS" : "6360366bc8a2104545a56eeb"
},
"deploymentId" : 250000407
},
{
"rolloutId" : "5f72dc58705eff005a46b3a9",
"factorPackIds" : {
},
"deploymentId" : 250000014
}
],
"experiments" : [
{
"treatmentId" : "6dd670af-0633-45e4-ae5f-122ae4df02be",
"experimentId" : "64406ba83deb637ac8a04419",
"deploymentId" : 900000005
}
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment