1.Dd March 6, 2009 2.Os Darwin 3.Dt MKEXTUNPACK 8 4.Sh NAME 5.Nm mkextunpack 6.Nd extract or list the contents of a multikext (mkext) archive 7.Sh SYNOPSIS 8.Nm 9.Op Fl v 10.Op Fl a Ar arch 11.Op Fl d Ar output_directory 12.Ar mkext_file 13.Sh DESCRIPTION 14The 15.Nm 16program lists the contents of a multikext file, 17.Ar mkext_file , 18or unarchives the contents into 19.Ar output_directory 20(which must exist). 21The 22.Fl v 23option causes 24.Nm 25to print the name if each kext as it finds them. 26.Sh DIAGNOSTICS 27.Nm 28exits with a zero status upon success. 29Upon failure, it prints an error message 30and exits with a nonzero status. 31.Pp 32With a nonsegreated format 1 mkext file, 33wherein each kext may contain a universal binary, 34.Nm 35simply unpacks the contents. 36With an mkext file segregated by architecture 37(that is, with distinct internal archives of architecture-specific kexts), 38.Nm 39attempts by default to unpack or list kexts 40for the current machine's architecture. 41To choose a particular architecture 42to extract or list, 43use the 44.Fl a 45option. 46.Pp 47There is no simple way to unpack a segregated mkext file 48into a set of kexts with universal binaries, 49but you can unpack each of its component architectures 50to separate directories for examination. 51.Sh SEE ALSO 52.Xr kextcache 8 53.Sh BUGS 54Many single-letter options are inconsistent in meaning 55with (or directly contradictory to) the same letter options 56in other kext tools. 57.Pp 58For version 1 mkext files, note that the file format 59doesn't record the original filenames 60of the kexts, so 61.Nm 62has to guess at what they are. 63It does this by using the value of the CFBundleExecutable 64property of the kext's info dictionary 65(Project Builder sets this to the base name of the kext 66bundle by default, but the developer can change it). 67If that property doesn't exist, the last component of the 68CFBundleIdentifier is used. 69Duplicates have an incrementing index appended to the name. 70Kexts that have no CFBundleExecutable or CFBundleIdentifier property 71are named 72.Do Ns Pa NameUnknown- Ns Ar n Ns Pa .kext Dc Ns , 73where 74.Ar n 75is a number. 76