Explore the core architecture of the operating system, including the kernel, memory management, and process scheduling.

Posts under Core OS subtopic

Post

Replies

Boosts

Views

Activity

Ability to detect macOS upgrade using Endpoint Security Events
Use case: Enable more efficient and quick OS Upgrade on mac systems by detecting the OS upgrade. Our observations: To understand how OS upgrade works, we observed ES events during the upgrade (using eslogger) and found the below observations: For OTA upgrade: nsurlsessiond starts downloading the UpdateBrainService to a temporary location nsurlsessiond also downloads the Mac OS update to the same temporary location com.apple.StreamingUnzipService.privileged service unzips the update archive to the same temp folder mobileassetd later moves it to a permanent folder UpdateBrainService is started For full installer upgrade: Processes from within the full installer App like InstallAssistant_springboard, InstallAssistant, osinstallersetupd, osisstashhelper, osishelperd_intel. Information needed Confirm if the above processes and events we are looking at are good enough, or if there are more significant events (file operations or process launches) that we can look at to more certainly detect the OS upgrade start. We want to understand the exact start point of the OS upgrades in different methods OTA, full installer etc for both major and minor OS upgrades. Information on additional fields in ES message which we could look that make the processes involved in OS upgrade unique, for example "signing_id".
2
1
475
Aug ’24
Unable to get certificates via TKTokenWatcher
Hello, We have an application which gets our HSM certificates via TKTokenWatcher, there is a snippet: let tokens = TKTokenWatcher() for token in tokens.tokenIDs { // Use our HSM certs if token.contains("SPECIFIC_IDENTIFIER") { let tokenQuery = [kSecClass as String: kSecClassIdentity, kSecAttrTokenID as String: token, kSecAttrKeyType as String: kSecAttrKeyTypeRSA, kSecReturnRef as String: true] as CFDictionary var item: CFTypeRef? let result = SecItemCopyMatching(tokenQuery as CFDictionary, &item) if result == noErr.... Normally, result is all right, but problem occurred when we added "App Groups" entitlement. This application has to share some Defaults with other app, so they need to be in the same App Group. So, when we added this App Group entitlement, result from the code snippet is -34018, which according to OSStatus means errSecMissingEntitlement. Does anybody know, which entitlement has to be added, so app can be in the App Group, and at the same time it is able to get certificates? Thank you.
0
1
735
Aug ’24
Multiple Resolutions in one Virtual Machine
Hi team, I was trying to launch Virtual machine on MacOS 14 using native framework with different Resolutions. let graphicsConfiguration = VZMacGraphicsDeviceConfiguration() graphicsConfiguration.displays = [ VZMacGraphicsDisplayConfiguration(widthInPixels: 2700, heightInPixels: 2200, pixelsPerInch: 100), VZMacGraphicsDisplayConfiguration(widthInPixels: 1920, heightInPixels: 1200, pixelsPerInch: 80) ] return graphicsConfiguration } But I'm getting below error: Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=VZErrorDomain Code=2 "More than one display is configured." UserInfo={NSLocalizedFailure=Invalid virtual machine configuration., NSLocalizedFailureReason=More than one display is configured.} Please let me know it is possible to have multiple resolutions in single VM or not. My use case is to get support of multiple resolutions like 1920x1080, 2048x1536, 1024x728 etc. Thanks.
4
0
719
Aug ’24
Inconsistent return values from open function between libc and kernel syscall
Description: When attempting to open a non-existent file on an iOS device, I observed inconsistent return values between the open function from the standard libc library and the kernel syscall (syscall number 5). While the libc open function returns -1, as expected and documented, the kernel syscall open function unexpectedly returns 2. This discrepancy necessitates clarification and documentation to understand the underlying behavior and ensure predictable results when working with file I/O operations in iOS. Code snippet for ASM code: #if defined(__arm64__) #define __asm_syscall(...) do { \ asm volatile ("svc 0x80" : "=r"(x0) : __VA_ARGS__ : "memory", "cc"); \ return x0; \ } while (0) __attribute__((always_inline)) static inline long asm_open(const void* __path, int __flags, int __mode) { register long x16 __asm__("x16") = 5; // 5: open register long x0 __asm__("x0") = (long)__path; register long x1 __asm__("x1") = (long)__flags; register long x2 __asm__("x2") = (long)__mode; __asm_syscall("r"(x16), "0"(x0), "r"(x1), "r"(x2)); } #endif This is how I call the function: char file_path[1024]; int fd = 0; // Set the file path strcpy(file_path, getenv("HOME")); strcat(file_path, "/Documents/non-existent.txt"); // Open file fd = (int)asm_open(file_path, (O_RDWR | O_CREAT), 0666); // -> This returns 2 instead of -1 like stand open function from libc LOGI("[INFO] : Open %d", fd); // [INFO] : Open 2
0
1
252
Aug ’24
iOS18 WebKit crash when use System Input Method(系统输入法)
When using the system input method to input Chinese, deleting the input character will crash when the last character is deleted. crash info: reason:NSMutableRLEArray objectAtIndex:effectiveRange:: Out of bounds -[WKContentView(WKInteraction) setAttributedMarkedText:selectedRange:]_block_invoke -[WKContentView(WKInteraction) objc_msgSend$attributesAtIndex:effectiveRange: (像是WebKit处理系统输入法删除输入信息时,处理文本编辑的问题)
5
3
1.2k
Aug ’24
app to develop
i have a suggestion for an app that will help many families and once installed you won't be able to do without it. I'm sure that at least 70% of families will use it at least twice a day. who do I sell my project to? applace many families will remember me. finally sorry my english comes from a translator.
1
0
316
Aug ’24
Integrating Two Separate Apps for Parental Control: Queries on Family Picker, Filtering, and Screen Time Permissions
Hello Apple Developer Community, We have developed two totally separate apps for parental control: one for parents (xyz/parent.com) and one for children (abc/child.com). These are not two sides of the same app, but rather distinct applications. Recently, we integrated these two apps and encountered a few challenges and questions that we hope the community can help with. Family Picker Behavior: We noticed that only the parent app on the current device is displayed in the Family Activity Picker. Is this the intended behavior? Our expectation was that the Family Activity Picker would show both the parent and child apps available on the device. Is there a way to ensure that both types of apps are listed? Filtering Apps in Family Picker: Is it possible to filter the apps displayed in the Family Activity Picker to show only the child’s app and exclude the parent app? Our goal is to streamline the selection process for users by removing irrelevant apps from the picker. If direct filtering is not possible, are there any recommended workarounds or best practices to achieve a similar result? Screen Time Permission Requirements: We’ve successfully implemented screen time permissions using the Authorization Center for the child app. However, do we also need to request screen time permissions from within the parent app? If so, are there any specific guidelines or best practices for managing screen time permissions across two interconnected apps? Triggering Child Managed Settings from Multiple Apps: Is it feasible to trigger managed settings (e.g., enabling restrictions) for the child app from both the parent and child apps? We want to ensure consistent enforcement of settings regardless of which app initiates the change. Are there any limitations or conflicts we should be aware of when managing settings from two different apps? We appreciate any guidance or insights you can provide on these issues. We’ve referred to the Family Controls and Screen Time documentation, but we're seeking more specific advice related to the integration of two separate apps in this context. Thank you in advance for your help!
0
0
528
Aug ’24
Eye tracking data access for researchers
Hi, Is there a way for researchers to get or request access to eye tracking data from the Apple Vision Pro within the boundaries of the app to be developed? I'm currently involved in research where access to eye tracking data would be beneficial (I'm aware of many existing discussions about this, but I was still wondering if there might be an option, particularly for research labs.) Thank you for your answer.
1
1
565
Aug ’24
Bluetooth peripheral failed to connect with status=702
Hello, I'm troubleshooting why my custom Bluetooth peripheral won't connect to my iPad. My Bluetooth peripheral is named "0471". I installed the Bluetooth profile and exported the system diagnostic logs from the iPad to troubleshoot the connection. Here are the relevant system logs from my iPad. 0471 connecting: default 2024-08-05 13:28:53.664196 -0500 bluetoothd Device connecting - {cbuuid: 0BB0FBE0-F708-23DD-B310-E487518668BE, devicename: Reader 0471, result: 0, adv-addr: 4C:5B:B3:85:CD:D6-Public, resolved-addr: } 0471 failure to connect: default 2024-08-05 13:28:53.987319 -0500 bluetoothd handleConnectionCompleteCallback address=Public 4C:5B:B3:85:CD:D6 handle=0x0 status=702 connectionIsActive=0, wakeupEvent=0 default 2024-08-05 13:28:59.673271 -0500 bluetoothd handleConnectionCompleteCallback address=Public 4C:5B:B3:85:CD:D6 handle=0x0 status=702 connectionIsActive=0, wakeupEvent=0 default 2024-08-05 13:29:08.684653 -0500 bluetoothd handleConnectionCompleteCallback address=Public 4C:5B:B3:85:CD:D6 handle=0x0 status=702 connectionIsActive=0, wakeupEvent=0 Another connecetion attempt to 0471 default 2024-08-05 13:29:18.985399 -0500 bluetoothd Device connecting - {cbuuid: 0BB0FBE0-F708-23DD-B310-E487518668BE, devicename: Reader 0471, result: 0, adv-addr: 4C:5B:B3:85:CD:D6-Public, resolved-addr: } 0471 failed to connect again default 2024-08-05 13:29:24.993122 -0500 bluetoothd handleConnectionCompleteCallback address=Public 4C:5B:B3:85:CD:D6 handle=0x0 status=702 connectionIsActive=0, wakeupEvent=0 default 2024-08-05 13:29:27.449115 -0500 bluetoothd handleConnectionCompleteCallback address=Public 4C:5B:B3:85:CD:D6 handle=0x0 status=702 connectionIsActive=0, wakeupEvent=0 default 2024-08-05 13:29:33.992337 -0500 bluetoothd handleConnectionCompleteCallback address=Public 4C:5B:B3:85:CD:D6 handle=0x0 status=702 connectionIsActive=0, wakeupEvent=0 State dump of 0471 default 2024-08-05 13:30:52.056771 -0500 bluetoothd statedump: 0BB0FBE0-F708-23DD-B310-E487518668BE → Public 4C:5B:B3:85:CD:D6, Adv.Name: "Reader 0471", LastSeen: 71.12s ago, CoexPriority: 2, DIS:Unavailable, EstablishedFastLeConnection:N, linkReadyDuration:0ms (added to WL 0.000 ago) disableDisconnect:0 useCase:23 scanDutyCycle screenON:0 screenOFF:3 pendingDelete:0 type:Other FindMy: default 2024-08-05 13:30:52.073019 -0500 bluetoothd statedump: 0BB0FBE0-F708-23DD-B310-E487518668BE → Public 4C:5B:B3:85:CD:D6, Adv.Name: "", LastSeen: 22881591 What does handleConnectionCompleteCallback's status 702 mean? Any leads on why the connection failed?
4
0
686
Aug ’24
App not releasing memory immediately
Hi Team, We have been working on one image processing app developed using react. In this app we are making the XMLHttpRequests to the server and storing the response in the cache which has around 200MB - 250MB of size. We are tracking the memory footprint using the Xcode instrument tool. While downloading and rendering the data in app the Xcode instrument shows the memory footprint around 800MB - 1000MB. We are assuming that garbage collection is not working as expected or some resources are not released after use and because of this we get this high memory footprint for 200MB - 250MB data. If the data is changed then we are removing the existing data from cache and storing the new data. But here, when we delete the data from cache, it does not release the memory immediately and takes some time of 3 seconds or more. In between this, the memory gets allocated to new data too and that increases the overall memory footprint of the app and in some cases the app is crashing. The maximum memory we have seen is average 1.5GB which varies with the device configuration. When we try the same activity on a safari browser where memory gets released immediately. If an app releases the initial acquired memory while loading new data we see very less app crashes. We need help to understand if there is a way to release the memory immediately to avoid the app crash. To reproduce this scenario, we have created a simple app which creates an array with size of 100MB and checks the memory footprint using the Xcode instrument tool. When we create an array of 100MB size, sometimes it shows the memory footprint peak of around 700MB-800MB and when we clear the array by assigning it with an empty array it releases the memory after 2-3 seconds. Created an array and then removed it and after removal of the array, created a new array of the same size immediately and again removed it. Because the memory is not released in time, if you repeat these steps a few times the app memory footprint will increase and that crashes the app. cache-memory.txt
2
0
407
Aug ’24
Kext run well on Xcode but kextload failed after archive to others
I was developing kext for use on Apple Silicon Mac, the kext ran well when I put into the app project. However, after I archived the app and installed it on other computers, I got some error messages while doing kextload command. I have no idea what to do, the error messages are as following: "Error domain=KMErrorDomain Code=71 Incompatible architecture: Cannot find arm64e in fat binary. Unsupported Error: one or more extensions are unsupported to load." I run Xcode projects on M2 Pro MAX and I'm sure the other Mac have been closed SIP. If I use the other Mac to run xcode project, the kext works fine too.
1
0
613
Aug ’24
vnop_advlock not being called for my filesystem
When running AJA System Test for my custom filesystem, the write and read tests get stuck intermittently. I didn't observe any error codes being returned by my vnop_read/write or sock_receive/send functions. Dtrace(1)'ing the vnops being called by AJA System Test for smbfs revealed that amongst other things vnop_advlock is being called: 0 -> smbfs_vnop_advlock ajasystemtest -> smbfs_vnop_advlock(ajatest.dat, op: 0x2, fl->l_start: 0, fl->l_len: 0, fl->l_pid: 0, fl->l_type: 2, fl->l_whence: 0, flags: 0x40, timeout: 0) 0 <- smbfs_vnop_advlock ajasystemtest -> smbfs_vnop_advlock(ajatest.dat) -> -1934627947504 op: 0x2 #define F_SETFD 2 /* set file descriptor flags */ fl->l_len: 0 ;len = 0 means until end of file fl->l_type: 2 ;#define F_UNLCK 2 /* unlock */ fl->l_whence: 0 ;#define SEEK_SET 0 /* set file offset to offset */ flags: 0x40 ;#define F_POSIX 0x040 /* Use POSIX semantics for lock */ As my filesystem didn't implement vnop_advlock, I thought I'd explore that avenue. My vnop_advlock simply returns KERN_SUCCESS. Both f_capabilities.valid and f_capabilities.capabilities of struct vfs_attr have VOL_CAP_INT_ADVLOCK and VOL_CAP_INT_FLOCK set. Yet, vnop_advlock doesn't get called for my filesystem when running AJA System Test. Any tips on what could be amiss there would be much appreciated.
4
0
749
Aug ’24
Custom icons for folder aliases not showing
Problem: custom icons for folder aliases not showing System drive and external drive custom alias folder icons don't showup on desktop or external drive (OS14.6 Sonoma 2023); they only show-up as plain folders or with an odd document icon. Alias doesn't connect to image; however it's there, easily accessible via spacebar. Finder doesn't save the custom icon to the alias. See below for workaround. Summary: I have custom alias icons on my desktop linking to their source files on the system drive and external drive.. however they do not display the custom icon. After upgrading from OS10.14 Mojave to OS14.6 Sonoma 2023, system drive & external drive custom alias icons no longer display the icon on either drive (there is a work-around for Mojave; see history section). Personal impact: hampered file navigation and workflow; I'm lost, can't tell where anything is; not having my icons makes it especially difficult to navigate my files and hampers my workflow significantly. Desired outcome: all custom icons for folder aliases linking to source files (on system & external drives) appear on the desktop, and in all directories on system & external drives (including encrypted external drives). Status.. August 2024: called apple support, they said there is no solution, and there are no plans to fix it, and no plans for a fix in OS 15 Sequoia (in public beta now) Action: ❯ leave feedback at https://www.apple.com/feedback/macos/ ❯ join this campaign to fix this once and for all! -- After 20 years of dealing with this issue.. we need to fix this. History: ▪ OS 10.14 Mojave 2018: external drive alias icons don't work; because upon startup, the icon images for these files disappear; because when system starts it loads the system drive icons but not the external drive icons because it's password protected, hence icon information does not get loaded; alias icons can't connect with unmounted external drive @ boot; however it's there, easily accessible via spacebar the FIX: alias the icons on the desktop each time after boot, however the names are altered ▪ OS X 10.11 El Cap 2015: drag the icons to a folder then back to desktop.. sometimes this works I stayed on OS9 as long as possible because of the OS10 icon problem ▪ OS 9: all custom alias folder icons worked fine Givens: space bar has fast access to icon -highlight alias and press space bar -- seems that it would be a simple solution, since the image is there -- get info for alias also has the image in preview How to make a custom icon: open a pic (typically from a screenshot; .png), select image with cursor with shift key down (for a perfect square), copy ⌘C, click target folder, get info ⌘I, click on folder icon on top left corner, paste ⌘V Fix -- How? --make a solution approach for a macOS dev? some bash process to link to icon; how to access icon Swift? process to renew the alias icon process goes through all desktop icons.. fixes them; new icon, correct name routine where all icons on desktop link to their files easily making a new alias.. as easy as making a regular alias; cammand L, etc make alias search for the image app that makes alias create custom desktop.. a GUI w links -- INTERIM FIX / WORKAROUND create a new folder on your desktop, name it, place it's alias inside the folder, fix the icon, when you open the desktop folder, you will then have to click on the alias --this is very time-consuming and tedious note: there may be easier options for OSs prior to Sonoma; review History section workflow: symbol note: ⇧ shift, ⌃ control, ⌥ option, ⌘ cammand create new folder on desktop ⌘⇧N , name it.. if the name is already taken by the alias, change the alias's name; for example.. alias it ⌘^A click on this new folder then ⌘I (get info) click on the alias, open source location ⌘R (or ⌘⌥^A on older OSs), click on source file (if not highlighted) then ⌘I (get info) , click on folder icon on top left corner, copy ⌘C click on the get-info window you opened for the new folder, click on folder icon on top left corner, paste ⌘V (if not working see ¹ below), close each of these windows with ⌘W place the associated aliased folder into the new folder you can also do this in groups of folders (3-6 seems is optimal).. for example.. move 3 alias icons to clear area on desktop, create 3 new folders and place them below the aliases, select all aliases and ⌘C, open a text document and ⌘V, fix names & name new folders, select new folders, ⌘I, select target aliases, ⌘R, ⌘I for each, move the alias windows below the new folder windows, copy/paste icons from source to new file, close these windows, place alias folders into new folders ¹ if paste function not working.. move on to the next folder and come back.. it can be moody, if it's not working at all.. restart the computer note2: some icons now have a yellow streak at the bottom let us know if you have any solutions or workarounds, or can code this (provide a script or app)
4
0
1.1k
Aug ’24
UINavigationBar layoutSubviews crash
I've noticed an increase in the number of crashes reported in our app since the release of iOS 17.4. According to the logs, the crash seems to be occurring within the iOS core, specifically at [UINavigationBar layoutSubviews]. Unfortunately, I haven't been able to reproduce the crash on my end. I've attached a screenshot of the crash log for your reference.
0
0
423
Aug ’24
Unable to see Beta Updates for an active Developer account
Hey everyone, I’m inquiring on how to possibly resolve this issue I’m having. My Apple Account/ID is not showing any device Developer Beta (iOS, iPadOS, macOS, tvOS, visionOS, and watchOS). I’m only seeing Public Beta and AppleSeed Beta. I know some will say just use AppleSeed or Public Beta but the reason this is important for me is due to visionOS as it is only available for Developer Beta This is an image of what I see on my iPhone for example. Apple Vision Pro won’t show any at all as AppleSeed and Public Betas are not available for visionOS.
0
0
324
Aug ’24
kext for x86_64 + arm64e change into only x86_64 after codesign.
I have a kext in app, and I can run it well on Xcode, but I cannot successfully run kextload command after archive. According to the error message, I then use "lipo -archs" to check kext archs, I found some strange things. Checkout the result of app in Xcode product directory: The result of app in Archive directory: Is there a way to resolve this issue? Where might the mistake be? Or Can I just copy app and code sign, notarize the app, then provide it for others to use?
1
0
537
Aug ’24