diff --git a/Makefile b/Makefile index c923371..2fa55a0 100644 --- a/Makefile +++ b/Makefile @@ -74,7 +74,7 @@ $(DB_TARGETS):: exit 1 ; \ fi -dyld: /System/Cryptexes/OS/System/Library/dyld/dyld_shared_cache_x86_64h /System/Cryptexes/OS/System/DriverKit/System/Library/dyld/dyld_shared_cache_x86_64h +dyld: /System/Cryptexes/OS/System/Library/dyld/dyld_shared_cache_arm64e /System/Cryptexes/OS/System/DriverKit/System/Library/dyld/dyld_shared_cache_arm64e for i in $+ ; do $(DSCEXTRACTOR) $$i $@ ; done > /dev/null find $@ -type f -print0 | xargs -0 chmod a+x @@ -132,12 +132,13 @@ db_binaries:: dyld $(call find,-follow -type f -perm +111) | while read -r os path ; do \ echo "UPDATE files SET executable = true WHERE os = '$$os' AND path = '$$(echo "$$path" | sed "s/'/''/g")';" ; \ if test -r "$(call prefix,$$os)$$path" && file --no-dereference --brief --mime-type "$(call prefix,$$os)$$path" | grep -Fq application/x-mach-binary ; then \ - objdump --macho --dylibs-used "$(call prefix,$$os)$$path" | \ + case "$$(lipo -archs "$(call prefix,$$os)$$path")" in (*arm64e*) arch=arm64e ;; (*arm64_32*) arch=arm64_32 ;; (*arm64*) arch=arm64 ;; (*x86_64h*) arch=x86_64h ;; (*x86_64*) arch=x86_64 ;; (*) continue ;; esac ; \ + objdump --arch=$$arch --macho --dylibs-used "$(call prefix,$$os)$$path" | \ sed "1d;s/^.//;s/ ([^)]*)$$//;s/'/''/g;s|.*|INSERT OR IGNORE INTO linkages $(call file,'&');|" ; \ codesign --display --xml --entitlements - "$(call prefix,$$os)$$path" 2> /dev/null | \ plutil -convert json - -o - | \ sed "/^: Property List error/d;/^{}/d;s/'/''/g;s|.*|INSERT INTO entitlements $(call file,json('&'));\n|" ; \ - strings -n 8 "$(call prefix,$$os)$$path" | \ + strings -n 8 "$(call prefix,$$os)$$path" 2> /dev/null | \ LANG=C sed "s/'/''/g;s|.*|INSERT OR IGNORE INTO strings $(call file,'&');|" ; \ fi ; \ done diff --git a/flake.nix b/flake.nix index 6d813b3..fe16e14 100644 --- a/flake.nix +++ b/flake.nix @@ -19,12 +19,12 @@ }; }; outputs = { self, nixpkgs, acextract, command-line, dsc-extractor, snap-util }: { - packages.x86_64-darwin = let - xcode = nixpkgs.legacyPackages.x86_64-darwin.xcodeenv.composeXcodeWrapper {}; + packages.aarch64-darwin = let + xcode = nixpkgs.legacyPackages.aarch64-darwin.xcodeenv.composeXcodeWrapper {}; in { acextract = - with nixpkgs.legacyPackages.x86_64-darwin; + with nixpkgs.legacyPackages.aarch64-darwin; let xcodeHook = makeSetupHook { name = "xcode-hook"; propagatedBuildInputs = [ xcode ]; @@ -79,7 +79,7 @@ }; dsc-extractor = - with nixpkgs.legacyPackages.x86_64-darwin; + with nixpkgs.legacyPackages.aarch64-darwin; stdenv.mkDerivation { name = "dsc-extractor-${lib.substring 0 8 self.inputs.dsc-extractor.lastModifiedDate}"; src = dsc-extractor; @@ -87,7 +87,7 @@ }; snap-util = - with nixpkgs.legacyPackages.x86_64-darwin; + with nixpkgs.legacyPackages.aarch64-darwin; let snapshot-header = fetchFromGitHub { owner = "apple"; repo = "darwin-xnu"; diff --git a/internals.tsv b/internals.tsv index a2bf54d..f6d8c5e 100644 --- a/internals.tsv +++ b/internals.tsv @@ -231,7 +231,7 @@ Notarization app security scan by Apple; cryptographic proof stapled to code sig Noticeboard User Notifications for Software Update and App Store, Noticeboard.framework; launchd services: com.apple.noticeboard.state (nbstated), com.apple.noticeboard.agent (nbagent) Notifications system notification bus, unrelated to the local/remote push notifications; launchd service: com.apple.notifyd, com.apple.kuncd (invoked by kernel through host special port 10); command line tool: notifyutil; complemented by framework-level notification system (CFNotification, NSNotification); launchd services: com.apple.distnoted.xpc.daemon, com.apple.distnoted.xpc.agent NSP Network Service Proxy; per-app VPN and proxy settings, implements Private Relay; launchd service: com.apple.networkserviceproxy -OAH Rosetta; ahead-of-time compiler for Intel code on Apple Silicon, usable from Linux VMs by way of a custom binformat; /usr/libexec/rosetta; launchd service: com.apple.oahd +OAH Rosetta; ahead-of-time compiler for Intel code on Apple Silicon, usable from Linux VMs by way of a custom binformat; /usr/libexec/rosetta, /var/db/oah (AOT cache); launchd service: com.apple.oahd ODR On-Demand Resources; loaded from App Store; launchd service: com.apple.appstored Omni Search fuzzy semantic search with results recognized in images; OmniSearch.framework Onboarding data protection splash screen shown by service-connected apps; /System/Library/OnBoardingBundles; OnBoardingKit.framework @@ -358,7 +358,7 @@ USD Universal Scene Description; storage format for 3D assets; /usr/lib/usd; com User Activity abstraction for deep-linking into apps with structured context (people, places); used for Universal Links (schema.org on websites), Handoff, Parsec (app links in search), Quick Note (context awareness); now part of Intents; UserActivity.framework; launchd service: com.apple.coreservices.useractivityd User Notifications user interface for notification center; launchd service: com.apple.usernoted UTI Uniform Type Identifiers; system for document types; file extensions and MIME types are mapped to UTIs, UTIs form a conformance graph, apps register their UTIs with Launch Services; /System/Library/CoreServices/CoreTypes.bundle; also Apple’s hardware devices are represented as UTIs -VA Video Acceleration; AppleGVA.framework, AppleVA.framework, AppleVPA.framework +VA Video Acceleration; AppleVA.framework VDAF Verifiable Distributed Aggregation Function; part of Differential Privacy; VDAF.framework Viceroy video conferencing used by FaceTime and ReplayKit; ViceroyTrace.framework Virtualisation running virtual machines on macOS; Hypervisor.framework (for basic VMs and vCPUs), Virtualization.framework (brings a robust set of device models)