appleargs

Crates.ioappleargs
lib.rsappleargs
version0.1.1
sourcesrc
created_at2022-08-01 07:05:19.823852
updated_at2022-08-01 07:12:28.08555
descriptionObtain the current process' apple arguments
homepage
repositoryhttps://github.com/BlackHoleFox/appleargs
max_upload_size
id636590
size25,018
BlackHoleFox (BlackHoleFox)

documentation

README

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
Commit count: 6

cargo fmt