Expand description

appleargs

CI Status Docs Latest Version

A smol crate to grab your process’ “apple arguments”

What are apple arguments?

They are an extra set of strings optionally passed to an executable by the kernel on Darwin-based operating systems. They are entirely undocumented (Open an issue if you find it :D), and as far as anyone can tell, solely intended to store or hint precomputed information about the running process for dyld to use.

The values are set during the exec sequence of a process and subsequently read by dyld at various points when it starts an executable. While these can easily change, dyld is open source so it can be referenced for good examples like…

kern_exec.c seems to have the full list of parameters that could appear. This crate doesn’t attempt to document or parse them because of their amazingly unstable nature.

Example

"executable_path=/Users/person/dev/project/target/debug/bin"
"ptr_munge="
"main_stack="
"executable_file=0x1a0100000f,0x71b112"
"dyld_file=0x1a0100000f,0xfffffff000dc897"
"executable_cdhash=acd984a2fa40d1b36ba71094e7c0318a6bf15084"
"executable_boothash=cd0228d404782f85c4ef3d65dc2ae92aaa66578b"
"arm64e_abi=os"
"th_port="

Supported Operating Systems

This crate should on most macOS and iOS versions (but is not explictly tested). Automated testing occurs on:

  • macOS 10.15
  • macOS 11
  • macOS 12
  • iOS 12.4

Structs

An iterator over the process’ apple arguments.

An iterator over the process’ apple arguments.

Functions

Returns the Apple arguments of the current process as UTF-8 strings.

Returns the Apple arguments of the current process.