From ad4b1e3eb6f84cd5f296198718d443f99e12de7b Mon Sep 17 00:00:00 2001 From: kat Date: Sat, 11 Nov 2023 07:22:34 -0500 Subject: [PATCH] armv7/64_32 Support across board. Structs: Support Variable Sizes, Streamline defs. --- .gitignore | 1 + src/ktool/codesign.py | 8 +- src/ktool/image.py | 11 +- src/ktool/ktool_script.py | 2 +- src/ktool/loader.py | 14 +- src/ktool/macho.py | 82 +- src/ktool/objc.py | 165 +- src/ktool/structs.py | 138 +- src/ktool/swift.py | 2 +- src/ktool/window.py | 4 +- src/ktool_macho/load_commands.py | 10 +- src/ktool_macho/mach_header.py | 8 + src/ktool_macho/structs.py | 386 ++-- src/ktool_swift/structs.py | 171 +- src/lib0cyn/structs.py | 127 +- tests/build.ninja | 15 +- tests/src/libSystem.tbd | 3125 ++++++++++++++++++++++++++++++ tests/unit.py | 14 +- 18 files changed, 3811 insertions(+), 472 deletions(-) create mode 100644 tests/src/libSystem.tbd diff --git a/.gitignore b/.gitignore index 637fa65..bcafa44 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ poetry.lock tests/bins/testbin1 tests/bins/testbin1.fat tests/bins/testlib1.dylib +/tests/.build/ diff --git a/src/ktool/codesign.py b/src/ktool/codesign.py index fe0b010..1ca9e92 100644 --- a/src/ktool/codesign.py +++ b/src/ktool/codesign.py @@ -30,7 +30,7 @@ class CodesignInfo(Constructable): def from_image(cls, image, codesign_cmd: linkedit_data_command): superblob: SuperBlob = image.read_struct(codesign_cmd.dataoff, SuperBlob) slots: List[BlobIndex] = [] - off = codesign_cmd.dataoff + SuperBlob.SIZE + off = codesign_cmd.dataoff + SuperBlob.size() req_dat = None @@ -41,7 +41,7 @@ def from_image(cls, image, codesign_cmd: linkedit_data_command): blob_index.type = swap_32(blob_index.type) blob_index.offset = swap_32(blob_index.offset) slots.append(blob_index) - off += BlobIndex.SIZE + off += BlobIndex.size() for blob in slots: if blob.type == CSSLOT_ENTITLEMENTS: @@ -50,14 +50,14 @@ def from_image(cls, image, codesign_cmd: linkedit_data_command): ent_blob.magic = swap_32(ent_blob.magic) ent_blob.length = swap_32(ent_blob.length) ent_size = ent_blob.length - entitlements = image.read_fixed_len_str(start + Blob.SIZE, ent_size - Blob.SIZE) + entitlements = image.read_fixed_len_str(start + Blob.size(), ent_size - Blob.size()) elif blob.type == CSSLOT_REQUIREMENTS: start = superblob.off + blob.offset req_blob = image.read_struct(start, Blob) req_blob.magic = swap_32(req_blob.magic) req_blob.length = swap_32(req_blob.length) - req_dat = image.read_bytearray(start + Blob.SIZE, req_blob.length - Blob.SIZE) + req_dat = image.read_bytearray(start + Blob.size(), req_blob.length - Blob.size()) return cls(superblob, slots, entitlements=entitlements, req_dat=req_dat) diff --git a/src/ktool/image.py b/src/ktool/image.py index fa3d729..2f91755 100644 --- a/src/ktool/image.py +++ b/src/ktool/image.py @@ -187,7 +187,7 @@ def serialize(self): return {'install_name': self.install_name, 'load_command': LOAD_COMMAND(self.cmd.cmd).name} def _get_name(self, cmd) -> str: - read_address = cmd.off + dylib_command.SIZE + read_address = cmd.off + dylib_command.size() return self.source_image.read_cstr(read_address) @@ -248,6 +248,7 @@ def __init__(self, macho_slice: Slice, force_misaligned_vm=False): self.vm = MisalignedVM() else: self.vm_realign() + self.ptr_size = self.slice.ptr_size self.base_name = "" # copy of self.name self.install_name = "" @@ -398,6 +399,14 @@ def read_uint(self, offset: int, length: int, vm=False): offset = self.vm.translate(offset) return self.slice.read_uint(offset, length) + def read_ptr(self, offset: int, vm=False): + """ Read a ptr (uint of size self.ptr_size) + + :param offset: + :param vm: + """ + return self.read_uint(offset, self.ptr_size, vm=vm) + def read_int(self, offset: int, length: int, vm=False): return uint_to_int(self.read_uint(offset, length, vm), length * 8) diff --git a/src/ktool/ktool_script.py b/src/ktool/ktool_script.py index 2645750..5e4fdef 100644 --- a/src/ktool/ktool_script.py +++ b/src/ktool/ktool_script.py @@ -879,7 +879,7 @@ def _list(args): lc_dat = str(lc) if LOAD_COMMAND(lc.cmd) in [LOAD_COMMAND.LOAD_DYLIB, LOAD_COMMAND.ID_DYLIB, LOAD_COMMAND.SUB_CLIENT]: - lc_dat += '\n"' + image.read_cstr(lc.off + lc.SIZE, vm=False) + '"' + lc_dat += '\n"' + image.read_cstr(lc.off + lc.size(), vm=False) + '"' table.rows.append([str(i), LOAD_COMMAND(lc.cmd).name.ljust(15, ' '), lc_dat]) print(table.fetch_all(get_terminal_size().columns - 5)) elif args.get_classes: diff --git a/src/ktool/loader.py b/src/ktool/loader.py index 26a1332..d457019 100644 --- a/src/ktool/loader.py +++ b/src/ktool/loader.py @@ -355,7 +355,7 @@ def _load_symbol_table(self) -> List[Symbol]: typing = symtab_entry if self.image.macho_header.is64 else symtab_entry_32 for i in range(0, self.cmd.nsyms): - entry = self.image.read_struct(read_address + typing.SIZE * i, typing) + entry = self.image.read_struct(read_address + typing.size() * i, typing) symbol = Symbol.from_image(self.image, self.cmd, entry) symbol_table.append(symbol) @@ -381,7 +381,7 @@ def from_image(cls, image: Image, chained_fixup_cmd: linkedit_data_command): log.error("Unknown Fixup Format") return cls([]) - import_table_size = fixup_header.imports_count * dyld_chained_import.SIZE + import_table_size = fixup_header.imports_count * dyld_chained_import.size() if import_table_size > chained_fixup_cmd.datasize: log.error("Chained fixup import table is larger than chained fixup linkedit region") return cls([]) @@ -753,7 +753,7 @@ def _load_binding_info(self, table_start: int, table_size: int) -> List[record]: import_stack.append( record(cmd_start_addr, seg_index, seg_offset, lib_ordinal, btype, flags, name, addend, special_dylib)) - seg_offset += 8 + seg_offset += self.image.ptr_size o, read_address = self.image.read_uleb128(read_address) seg_offset += o @@ -761,7 +761,7 @@ def _load_binding_info(self, table_start: int, table_size: int) -> List[record]: import_stack.append( record(cmd_start_addr, seg_index, seg_offset, lib_ordinal, btype, flags, name, addend, special_dylib)) - seg_offset = seg_offset + (value * 8) + 8 + seg_offset = seg_offset + (value * self.image.ptr_size) + self.image.ptr_size elif binding_opcode == BINDING_OPCODE.DO_BIND_ULEB_TIMES_SKIPPING_ULEB: count, read_address = self.image.read_uleb128(read_address) @@ -771,18 +771,18 @@ def _load_binding_info(self, table_start: int, table_size: int) -> List[record]: import_stack.append( record(cmd_start_addr, seg_index, seg_offset, lib_ordinal, btype, flags, name, addend, special_dylib)) - seg_offset += skip + 8 + seg_offset += skip + self.image.ptr_size elif binding_opcode == BINDING_OPCODE.DO_BIND: if not uses_threaded_bind: import_stack.append( record(cmd_start_addr, seg_index, seg_offset, lib_ordinal, btype, flags, name, addend, special_dylib)) - seg_offset += 8 + seg_offset += self.image.ptr_size else: threaded_stack.append( record(cmd_start_addr, seg_index, seg_offset, lib_ordinal, btype, flags, name, addend, special_dylib)) - seg_offset += 8 + seg_offset += self.image.ptr_size return import_stack diff --git a/src/ktool/macho.py b/src/ktool/macho.py index 8cd391a..0b41d02 100644 --- a/src/ktool/macho.py +++ b/src/ktool/macho.py @@ -134,7 +134,7 @@ def __init__(self, file, use_mmaped_io=True): if self.type == MachOFileType.FAT: self.header: fat_header = self._load_struct(0, fat_header, "big") for off in range(0, self.header.nfat_archs): - offset = fat_header.SIZE + (off * fat_arch.SIZE) + offset = fat_header.size() + (off * fat_arch.size()) arch_struct: fat_arch = self._load_struct(offset, fat_arch, "big") if not self.file.read_int(arch_struct.offset, 4) in [MH_MAGIC, MH_CIGAM, MH_MAGIC_64, MH_CIGAM_64]: @@ -148,7 +148,7 @@ def __init__(self, file, use_mmaped_io=True): self.slices.append(Slice(self, self.file, None)) def _load_struct(self, address: int, struct_type, endian="little"): - size = struct_type.SIZE + size = struct_type.size() data = self.file.read_bytes(address, size) struct = Struct.create_with_bytes(struct_type, data, endian) @@ -161,8 +161,6 @@ def __del__(self): self.file.close() - - class Section: """ @@ -235,13 +233,13 @@ def serialize(self): def _process_sections(self) -> Dict[str, Section]: sections = {} - ea = self.cmd.off + self.cmd.SIZE + ea = self.cmd.off + self.cmd.size() for sect in range(0, self.cmd.nsects): sect = self.image.read_struct(ea, section_64 if self.is64 else section) sect = Section(self, sect, 8 if self.is64 else 4) sections[sect.name] = sect - ea += section_64.SIZE if self.is64 else section.SIZE + ea += section_64.size() if self.is64 else section.size() return sections @@ -264,6 +262,10 @@ def __init__(self, macho_file, sliced_backing_file: Union[BackingFile, SlicedBac self.type = self._load_type() self.subtype = self._load_subtype(self.type) + self.ptr_size = 8 + if self.type in [CPUType.ARM, CPUType.X86, CPUType.POWERPC, CPUType.ARM6432]: + self.ptr_size = 4 + self.size = sliced_backing_file.size # noinspection PyArgumentList @@ -286,10 +288,10 @@ def find(self, pattern: Union[str, bytes]): return self.file.file.find(pattern) def read_struct(self, addr: int, struct_type, endian="little"): - size = struct_type.SIZE + size = struct_type.size(self.ptr_size) data = self.read_bytearray(addr, size) - struct = Struct.create_with_bytes(struct_type, data, endian) + struct = Struct.create_with_bytes(struct_type, data, endian, ptr_size=self.ptr_size) struct.off = addr return struct @@ -400,7 +402,7 @@ def from_image(cls, macho_slice, offset=0) -> 'ImageHeader': if header.flags & flag.value: image_header.flags.append(flag) - offset += header.SIZE + offset += header.size() load_commands = [] @@ -460,12 +462,12 @@ def from_values(cls, is_64: bool, cpu_type, cpu_subtype, filetype: MH_FILETYPE, lc_count = 0 - off = struct_type.SIZE + off = struct_type.size() for lc in load_commands: if issubclass(lc.__class__, Struct): - assert len(lc.raw) == lc.__class__.SIZE + assert len(lc.raw) == lc.__class__.size() assert hasattr(lc, 'cmdsize') lc.off = off lcs.append(lc) @@ -553,9 +555,9 @@ def insert_load_command(self, load_command, index=-1, suffix=None): elif load_command.__class__ in [dylib_command, rpath_command]: assert suffix is not None, "Inserting dylib_command requires suffix" encoded = suffix.encode('utf-8') + b'\x00' - while (len(encoded) + load_command.__class__.SIZE) % 8 != 0: + while (len(encoded) + load_command.__class__.size()) % 8 != 0: encoded += b'\x00' - cmdsize = load_command.__class__.SIZE + len(encoded) + cmdsize = load_command.__class__.size() + len(encoded) load_command.cmdsize = cmdsize load_command_items.append(load_command) load_command_items.append(encoded) @@ -567,11 +569,11 @@ def insert_load_command(self, load_command, index=-1, suffix=None): if isinstance(command, segment_command) or isinstance(command, segment_command_64): sects = [] - sect_data = self.raw[command.off + command.__class__.SIZE:] + sect_data = self.raw[command.off + command.__class__.size():] struct_class = section_64 if isinstance(command, segment_command_64) else section for i in range(command.nsects): - sects.append(Section(None, Struct.create_with_bytes(struct_class, sect_data[i * struct_class.SIZE:( - i + 1) * struct_class.SIZE], + sects.append(Section(None, Struct.create_with_bytes(struct_class, sect_data[i * struct_class.size():( + i + 1) * struct_class.size()], "little"), 8 if self.is64 else 4)) seg = SegmentLoadCommand.from_values(isinstance(command, segment_command_64), command.segname, command.vmaddr, command.vmsize, command.fileoff, command.filesize, @@ -580,18 +582,18 @@ def insert_load_command(self, load_command, index=-1, suffix=None): elif command.__class__ in [dylib_command, rpath_command]: _suffix = "" i = 0 - while self.raw[command.off + command.__class__.SIZE + i] != 0: - _suffix += chr(self.raw[command.off + command.__class__.SIZE + i]) + while self.raw[command.off + command.__class__.size() + i] != 0: + _suffix += chr(self.raw[command.off + command.__class__.size() + i]) i += 1 encoded = _suffix.encode('utf-8') + b'\x00' - while (len(encoded) + command.__class__.SIZE) % 8 != 0: + while (len(encoded) + command.__class__.size()) % 8 != 0: encoded += b'\x00' load_command_items.append(command) load_command_items.append(encoded) elif command.__class__ in [dylinker_command, build_version_command]: load_command_items.append(command) actual_size = command.cmdsize - dat = self.raw[command.off + command.SIZE:(command.off + command.SIZE) + actual_size - command.SIZE] + dat = self.raw[command.off + command.size():(command.off + command.size()) + actual_size - command.size()] load_command_items.append(dat) else: load_command_items.append(command) @@ -604,9 +606,9 @@ def insert_load_command(self, load_command, index=-1, suffix=None): load_command_items.append(load_command) assert suffix is not None, f"Inserting {load_command.__class__.__name__} requires suffix" encoded = suffix.encode('utf-8') + b'\x00' - while (len(encoded) + load_command.__class__.SIZE) % 8 != 0: + while (len(encoded) + load_command.__class__.size()) % 8 != 0: encoded += b'\x00' - cmdsize = load_command.__class__.SIZE + len(encoded) + cmdsize = load_command.__class__.size() + len(encoded) load_command.cmdsize = cmdsize load_command_items.append(encoded) elif load_command.__class__ in [dylinker_command, build_version_command]: @@ -635,11 +637,11 @@ def remove_load_command(self, index): if isinstance(command, segment_command) or isinstance(command, segment_command_64): sects = [] - sect_data = self.raw[command.off + command.__class__.SIZE:] + sect_data = self.raw[command.off + command.__class__.size():] struct_class = section_64 if isinstance(command, segment_command_64) else section for i in range(command.nsects): - sects.append(Section(None, Struct.create_with_bytes(struct_class, sect_data[i * struct_class.SIZE:( - i + 1) * struct_class.SIZE], + sects.append(Section(None, Struct.create_with_bytes(struct_class, sect_data[i * struct_class.size():( + i + 1) * struct_class.size()], "little"), 8 if self.is64 else 4)) seg = SegmentLoadCommand.from_values(isinstance(command, segment_command_64), command.segname, command.vmaddr, command.vmsize, command.fileoff, command.filesize, @@ -648,18 +650,18 @@ def remove_load_command(self, index): elif command.__class__ in [dylib_command, rpath_command]: suffix = "" i = 0 - while self.raw[command.off + command.__class__.SIZE + i] != 0: - suffix += chr(self.raw[command.off + command.__class__.SIZE + i]) + while self.raw[command.off + command.__class__.size() + i] != 0: + suffix += chr(self.raw[command.off + command.__class__.size() + i]) i += 1 encoded = suffix.encode('utf-8') + b'\x00' - while (len(encoded) + command.__class__.SIZE) % 8 != 0: + while (len(encoded) + command.__class__.size()) % 8 != 0: encoded += b'\x00' load_command_items.append(command) load_command_items.append(encoded) elif command.__class__ in [dylinker_command, build_version_command]: load_command_items.append(command) actual_size = command.cmdsize - dat = self.raw[command.off + command.SIZE:(command.off + command.SIZE) + actual_size - command.SIZE] + dat = self.raw[command.off + command.size():(command.off + command.size()) + actual_size - command.size()] load_command_items.append(dat) else: load_command_items.append(command) @@ -687,9 +689,9 @@ def replace_load_command(self, load_command, index=-1, suffix=None): elif load_command.__class__ in [dylib_command, rpath_command]: assert suffix is not None, "Inserting dylib_command requires suffix" encoded = suffix.encode('utf-8') + b'\x00' - while (len(encoded) + load_command.__class__.SIZE) % 8 != 0: + while (len(encoded) + load_command.__class__.size()) % 8 != 0: encoded += b'\x00' - cmdsize = load_command.__class__.SIZE + len(encoded) + cmdsize = load_command.__class__.size() + len(encoded) load_command.cmdsize = cmdsize load_command_items.append(load_command) load_command_items.append(encoded) @@ -703,11 +705,11 @@ def replace_load_command(self, load_command, index=-1, suffix=None): if isinstance(command, segment_command) or isinstance(command, segment_command_64): sects = [] - sect_data = self.raw[command.off + command.__class__.SIZE:] + sect_data = self.raw[command.off + command.__class__.size():] struct_class = section_64 if isinstance(command, segment_command_64) else section for i in range(command.nsects): - sects.append(Section(None, Struct.create_with_bytes(struct_class, sect_data[i * struct_class.SIZE:( - i + 1) * struct_class.SIZE], + sects.append(Section(None, Struct.create_with_bytes(struct_class, sect_data[i * struct_class.size():( + i + 1) * struct_class.size()], "little"), 8 if self.is64 else 4)) seg = SegmentLoadCommand.from_values(isinstance(command, segment_command_64), command.segname, command.vmaddr, command.vmsize, command.fileoff, command.filesize, @@ -716,18 +718,18 @@ def replace_load_command(self, load_command, index=-1, suffix=None): elif command.__class__ in [dylib_command, rpath_command]: _suffix = "" i = 0 - while self.raw[command.off + command.__class__.SIZE + i] != 0: - _suffix += chr(self.raw[command.off + command.__class__.SIZE + i]) + while self.raw[command.off + command.__class__.size() + i] != 0: + _suffix += chr(self.raw[command.off + command.__class__.size() + i]) i += 1 encoded = _suffix.encode('utf-8') + b'\x00' - while (len(encoded) + command.__class__.SIZE) % 8 != 0: + while (len(encoded) + command.__class__.size()) % 8 != 0: encoded += b'\x00' load_command_items.append(command) load_command_items.append(encoded) elif command.__class__ in [dylinker_command, build_version_command]: load_command_items.append(command) actual_size = command.cmdsize - dat = self.raw[command.off + command.SIZE:(command.off + command.SIZE) + actual_size - command.SIZE] + dat = self.raw[command.off + command.size():(command.off + command.size()) + actual_size - command.size()] load_command_items.append(dat) else: load_command_items.append(command) @@ -740,9 +742,9 @@ def replace_load_command(self, load_command, index=-1, suffix=None): load_command_items.append(load_command) assert suffix is not None, "Inserting dylib_command requires suffix" encoded = suffix.encode('utf-8') + b'\x00' - while (len(encoded) + load_command.__class__.SIZE) % 8 != 0: + while (len(encoded) + load_command.__class__.size()) % 8 != 0: encoded += b'\x00' - cmdsize = load_command.__class__.SIZE + len(encoded) + cmdsize = load_command.__class__.size() + len(encoded) load_command.cmdsize = cmdsize load_command_items.append(encoded) elif load_command.__class__ in [dylinker_command, build_version_command]: diff --git a/src/ktool/objc.py b/src/ktool/objc.py index 4aabcc9..fd81c95 100644 --- a/src/ktool/objc.py +++ b/src/ktool/objc.py @@ -3,6 +3,19 @@ # objc.py # # This file contains utilities for parsing objective C classes within a MachO binary +# I dont like it. The structure is bad and it needs gutted and reassembled. +# +# Basically, ktool was originally this horrible hacked together single python script called 'kdump' that +# did the bare minimum to try and dump objc metadata and spit out headers, bc we wanted a class dump that worked on +# non-apple platforms +# +# I at some point realized "oh this could be like, insanely useful as a portable mach-o introspection lib", +# and having to write and use it on a Windows on Arm laptop (when NOTHING worked and all I had was a half-functional +# python w/ no pip) solidified that. That constraint may inform other decisions made in this library. +# +# A *lot* of code in specifically this file is a holdover from that crappy original script. It was written before I +# had any professional development experience and it shows. Eventually I will gut and rewrite it, but if you need +# therapeutic code to go view after digging through this, the new swift stuff is not bad. # # This file is part of ktool. ktool is free software that # is made available under the MIT license. Consult the @@ -53,12 +66,12 @@ def from_image(cls, image: Image): # cats = [] # meow if sect is not None: - count = sect.size // 0x8 + count = sect.size // image.ptr_size for offset in range(0, count): try: item = QueueItem() item.func = Category.from_image - item.args = [objc_image, sect.vm_address + offset * 0x8] + item.args = [objc_image, sect.vm_address + offset * image.ptr_size] cat_prot_queue.items.append(item) except Exception as ex: if not ignore.OBJC_ERRORS: @@ -72,13 +85,13 @@ def from_image(cls, image: Image): sect = image.segments[seg].sections[sec] if sect is not None: - cnt = sect.size // 0x8 + cnt = sect.size // image.ptr_size for i in range(0, cnt): try: # c = Class.from_image(objc_image, sect.vm_address + i * 0x8) item = QueueItem() item.func = Class.from_image - item.args = [objc_image, sect.vm_address + i * 0x8] + item.args = [objc_image, sect.vm_address + i * image.ptr_size] class_queue.items.append(item) except Exception as ex: if not ignore.OBJC_ERRORS: @@ -92,11 +105,11 @@ def from_image(cls, image: Image): sect = image.segments[seg].sections[sec] if sect is not None: - cnt = sect.size // 0x8 + cnt = sect.size // image.ptr_size for i in range(0, cnt): - ptr = sect.vm_address + i * 0x8 + ptr = sect.vm_address + i * image.ptr_size if objc_image.vm_check(ptr): - loc = image.read_uint(ptr, 0x8, vm=True) + loc = image.read_ptr(ptr) try: proto = image.read_struct(loc, objc2_prot, vm=True) item = QueueItem() @@ -168,16 +181,19 @@ def serialize(self): def vm_check(self, address): return self.image.vm.vm_check(address) - def get_uint_at(self, offset: int, length: int, vm=False, sectname=None): + def read_uint(self, offset: int, length: int, vm=False): return self.image.read_uint(offset, length, vm) + + def read_ptr(self, offset: int, vm=False): + return self.image.read_ptr(offset, vm) - def load_struct(self, addr: int, struct_type, vm=True, sectname=None, endian="little"): + def read_struct(self, addr: int, struct_type, vm=True, endian="little"): return self.image.read_struct(addr, struct_type, vm, endian) - def get_str_at(self, addr: int, count: int, vm=True, sectname=None): + def read_fixed_len_str(self, addr: int, count: int, vm=True): return self.image.read_fixed_len_str(addr, count, vm) - def get_cstr_at(self, addr: int, limit: int = 0, vm=True, sectname=None): + def read_cstr(self, addr: int, limit: int = 0, vm=True): return self.image.read_cstr(addr, limit, vm) @@ -390,8 +406,8 @@ class Ivar(Constructable): @classmethod def from_image(cls, objc_image: ObjCImage, ivar: objc2_ivar): - name: str = objc_image.get_cstr_at(ivar.name, 0, True, "__objc_methname") - type_string: str = objc_image.get_cstr_at(ivar.type, 0, True, "__objc_methtype") + name: str = objc_image.read_cstr(ivar.name, 0, vm=True) + type_string: str = objc_image.read_cstr(ivar.type, 0, vm=True) return cls(name, type_string, objc_image.tp) @classmethod @@ -470,18 +486,18 @@ def _process_methlist(self, base_meths): uses_relative_methods = self.methlist_head.entrysize & METHOD_LIST_FLAGS_MASK & RELATIVE_METHOD_FLAG != 0 rms_are_direct = self.methlist_head.entrysize & METHOD_LIST_FLAGS_MASK & RELATIVE_METHODS_SELECTORS_ARE_DIRECT_FLAG != 0 - ea += objc2_meth_list.SIZE - vm_ea += objc2_meth_list.SIZE + ea += objc2_meth_list.size(self.objc_image.image.ptr_size) + vm_ea += objc2_meth_list.size(self.objc_image.image.ptr_size) for i in range(1, self.methlist_head.count + 1): if uses_relative_methods: - sel = self.objc_image.get_uint_at(ea, 4, vm=False) + sel = self.objc_image.read_uint(ea, 4, vm=False) sel = usi32_to_si32(sel) - types = self.objc_image.get_uint_at(ea + 4, 4, vm=False) + types = self.objc_image.read_uint(ea + 4, 4, vm=False) types = usi32_to_si32(types) else: - sel = self.objc_image.get_uint_at(ea, 8, vm=False) - types = self.objc_image.get_uint_at(ea + 8, 8, vm=False) + sel = self.objc_image.read_ptr(ea, vm=False) + types = self.objc_image.read_ptr(ea + self.objc_image.image.ptr_size, vm=False) try: method = Method.from_image(self.objc_image, sel, types, self.meta, vm_ea, uses_relative_methods, @@ -507,11 +523,11 @@ def _process_methlist(self, base_meths): self.load_errors.append(f'Failed to load a method with {str(ex)}') if uses_relative_methods: - ea += objc2_meth_list_entry.SIZE - vm_ea += objc2_meth_list_entry.SIZE + ea += objc2_meth_list_entry.size(self.objc_image.image.ptr_size) + vm_ea += objc2_meth_list_entry.size(self.objc_image.image.ptr_size) else: - ea += objc2_meth.SIZE - vm_ea += objc2_meth.SIZE + ea += objc2_meth.size(self.objc_image.image.ptr_size) + vm_ea += objc2_meth.size(self.objc_image.image.ptr_size) return methods @@ -527,40 +543,39 @@ def from_image(cls, objc_image: ObjCImage, sel_addr, types_addr, is_meta, vm_add raise AssertionError if not rms_base: rms_base = vm_addr - sel = objc_image.get_cstr_at(sel_addr + rms_base, 0, vm=True, sectname="__objc_methname") + sel = objc_image.read_cstr(sel_addr + rms_base, 0, vm=True) except Exception as ex: try: - imp = objc_image.get_uint_at(vm_addr + 8, 4, vm=True) - imp = usi32_to_si32(imp) + vm_addr + 8 + imp = objc_image.read_ptr(vm_addr + objc_image.image.ptr_size) + imp = usi32_to_si32(imp) + vm_addr + objc_image.image.ptr_size if imp in objc_image.image.symbols: sel = objc_image.image.symbols[imp].fullname.split(" ")[-1][:-1] else: raise ex except Exception: raise ex - type_string = objc_image.get_cstr_at(types_addr + vm_addr + 4, 0, vm=True, sectname="__objc_methtype") + type_string = objc_image.read_cstr(types_addr + vm_addr + 4, 0, vm=True) else: - selector_pointer = objc_image.get_uint_at(sel_addr + vm_addr, 8, vm=True) + selector_pointer = objc_image.read_ptr(sel_addr + vm_addr, vm=True) try: if opts.USE_SYMTAB_INSTEAD_OF_SELECTORS: raise AssertionError - sel = objc_image.get_cstr_at(selector_pointer, 0, vm=True, sectname="__objc_methname") + sel = objc_image.read_cstr(selector_pointer, 0, vm=True) except Exception as ex: try: - imp = objc_image.get_uint_at(vm_addr + 8, 4, vm=True) - # no idea if this is correct - imp = usi32_to_si32(imp) + vm_addr + 8 + imp = objc_image.read_ptr(vm_addr + objc_image.image.ptr_size) + imp = usi32_to_si32(imp) + vm_addr + objc_image.image.ptr_size if imp in objc_image.image.symbols: sel = objc_image.image.symbols[imp].fullname.split(" ")[-1][:-1] else: raise ex except Exception: raise ex - type_string = objc_image.get_cstr_at(types_addr + vm_addr + 4, 0, vm=True, sectname="__objc_methtype") + type_string = objc_image.read_cstr(types_addr + vm_addr + 4, 0, vm=True) else: - sel = objc_image.get_cstr_at(sel_addr, 0, vm=True, sectname="__objc_methname") - type_string = objc_image.get_cstr_at(types_addr, 0, vm=True, sectname="__objc_methtype") + sel = objc_image.read_cstr(sel_addr, 0, vm=True) + type_string = objc_image.read_cstr(types_addr, 0, vm=True) return cls(is_meta, sel, type_string, objc_image.tp) @classmethod @@ -647,6 +662,7 @@ def from_image(cls, objc_image: ObjCImage, class_ptr: int, meta=False, class_ptr load_errors = [] struct_list = [] + # FIXME REBASE OPCODES PLEASEEE class_ptr = class_ptr & 0xFFFFFFFFF if not meta: @@ -655,9 +671,13 @@ def from_image(cls, objc_image: ObjCImage, class_ptr: int, meta=False, class_ptr log.debug_more(f'Loading metaclass From {hex(class_ptr)}') if not class_ptr_is_direct: if not objc_image.vm_check(class_ptr): - objc2_class_location = objc_image.get_uint_at(class_ptr, 8, vm=False) + # k this just looks wrong, like this isn't how it works, something is WEIRD here + # maybe this is like me horribly misunderstanding chainedfixup rebase opcodes at the time + # and it works by some stroke of horrible luck?? + # TODO RANCID HORRIBLE FIX THIS IMPLEMENT REBASE OPCODES + objc2_class_location = objc_image.read_ptr(class_ptr, vm=False) else: - objc2_class_location = objc_image.get_uint_at(class_ptr, 8, vm=True) + objc2_class_location = objc_image.read_ptr(class_ptr, vm=True) else: objc2_class_location = class_ptr @@ -672,13 +692,13 @@ def from_image(cls, objc_image: ObjCImage, class_ptr: int, meta=False, class_ptr objc_image.class_map[class_ptr] = None return None - objc2_class_item: objc2_class = objc_image.load_struct(objc2_class_location, objc2_class, vm=True) + objc2_class_item: objc2_class = objc_image.read_struct(objc2_class_location, objc2_class, vm=True) superclass = None if not meta: - if objc2_class_location + 8 in objc_image.image.import_table: - symbol = objc_image.image.import_table[objc2_class_location + 8] + if objc2_class_location + objc_image.image.ptr_size in objc_image.image.import_table: + symbol = objc_image.image.import_table[objc2_class_location + objc_image.image.ptr_size] superclass_name = symbol.name[1:] elif objc2_class_item.superclass in objc_image.image.export_table: symbol = objc_image.image.export_table[objc2_class_item.superclass] @@ -687,7 +707,7 @@ def from_image(cls, objc_image: ObjCImage, class_ptr: int, meta=False, class_ptr if objc_image.vm_check(objc2_class_item.superclass): # noinspection PyBroadException try: - superclass = Class.from_image(objc_image, objc2_class_location + 8) + superclass = Class.from_image(objc_image, objc2_class_location + objc_image.image.ptr_size) except Exception: pass if superclass is not None: @@ -701,16 +721,17 @@ def from_image(cls, objc_image: ObjCImage, class_ptr: int, meta=False, class_ptr else: superclass_name = '' + # girl what ro_location = objc2_class_item.info >> (1 << 1) << 2 try: - objc2_class_ro_item = objc_image.load_struct(ro_location, objc2_class_ro, vm=True) + objc2_class_ro_item = objc_image.read_struct(ro_location, objc2_class_ro, vm=True) except ValueError: log.warn("Class Data is off-image") return None if not meta: try: - name = objc_image.get_cstr_at(objc2_class_ro_item.name, 0, vm=True) + name = objc_image.read_cstr(objc2_class_ro_item.name, 0, vm=True) except ValueError: log.warning(f'Classname out of bounds') name = "" @@ -721,12 +742,12 @@ def from_image(cls, objc_image: ObjCImage, class_ptr: int, meta=False, class_ptr properties = [] if objc2_class_ro_item.base_props != 0: - proplist_head = objc_image.load_struct(objc2_class_ro_item.base_props, objc2_prop_list) + proplist_head = objc_image.read_struct(objc2_class_ro_item.base_props, objc2_prop_list) ea = objc2_class_ro_item.base_props - ea += objc2_prop_list.SIZE + ea += objc2_prop_list.size(objc_image.image.ptr_size) for i in range(1, proplist_head.count + 1): - prop = objc_image.load_struct(ea, objc2_prop, vm=True) + prop = objc_image.read_struct(ea, objc2_prop, vm=True) try: property = Property.from_image(objc_image, prop) @@ -746,10 +767,10 @@ def from_image(cls, objc_image: ObjCImage, class_ptr: int, meta=False, class_ptr log.warning(f'Failed to load a property in {name} with {ex.__class__.__name__}: {str(ex)}') load_errors.append(f'Failed to load a property with {ex.__class__.__name__}: {str(ex)}') - ea += objc2_prop.SIZE + ea += objc2_prop.size(objc_image.image.ptr_size) if objc2_class_ro_item.base_meths != 0: - methlist_head = objc_image.load_struct(objc2_class_ro_item.base_meths, objc2_meth_list) + methlist_head = objc_image.read_struct(objc2_class_ro_item.base_meths, objc2_meth_list) methlist = MethodList(objc_image, methlist_head, objc2_class_ro_item.base_meths, meta, name) @@ -765,14 +786,14 @@ def from_image(cls, objc_image: ObjCImage, class_ptr: int, meta=False, class_ptr prots = [] if objc2_class_ro_item.base_prots != 0: - protlist: objc2_prot_list = objc_image.load_struct(objc2_class_ro_item.base_prots, objc2_prot_list) + protlist: objc2_prot_list = objc_image.read_struct(objc2_class_ro_item.base_prots, objc2_prot_list) ea = objc2_class_ro_item.base_prots for i in range(1, protlist.cnt + 1): - prot_loc = objc_image.get_uint_at(ea + i * 8, 8, vm=True) + prot_loc = objc_image.read_ptr(ea + i * objc_image.image.ptr_size, vm=True) if prot_loc in objc_image.prot_map: prots.append(objc_image.prot_map[prot_loc]) else: - prot = objc_image.load_struct(prot_loc, objc2_prot, vm=True) + prot = objc_image.read_struct(prot_loc, objc2_prot, vm=True) try: p = Protocol.from_image(objc_image, prot, prot_loc) prots.append(p) @@ -788,11 +809,11 @@ def from_image(cls, objc_image: ObjCImage, class_ptr: int, meta=False, class_ptr ivars = [] if objc2_class_ro_item.ivars != 0: - ivarlist: objc2_ivar_list = objc_image.load_struct(objc2_class_ro_item.ivars, objc2_ivar_list) - ea = objc2_class_ro_item.ivars + 8 + ivarlist: objc2_ivar_list = objc_image.read_struct(objc2_class_ro_item.ivars, objc2_ivar_list) + ea = objc2_class_ro_item.ivars + objc2_ivar_list.size(objc_image.image.ptr_size) for i in range(1, ivarlist.cnt + 1): - ivar_loc = ea + objc2_ivar.SIZE * (i - 1) - ivar = objc_image.load_struct(ivar_loc, objc2_ivar, vm=True) + ivar_loc = ea + objc2_ivar.size(ptr_size=objc_image.image.ptr_size) * (i - 1) + ivar = objc_image.read_struct(ivar_loc, objc2_ivar, vm=True) try: ivar_object = Ivar.from_image(objc_image, ivar) ivars.append(ivar_object) @@ -862,8 +883,8 @@ class Property(Constructable): @classmethod def from_image(cls, objc_image: ObjCImage, property: objc2_prop): - name = objc_image.get_cstr_at(property.name, 0, True, "__objc_methname") - attr_string = objc_image.get_cstr_at(property.attr, 0, True, "__objc_methname") + name = objc_image.read_cstr(property.name, 0, vm=True) + attr_string = objc_image.read_cstr(property.attr, 0, vm=True) return cls(name, attr_string, objc_image.tp) @classmethod @@ -991,16 +1012,16 @@ class Category(Constructable): @classmethod def from_image(cls, objc_image: ObjCImage, category_ptr): try: - loc = objc_image.get_uint_at(category_ptr, 8, vm=True) - struct: objc2_category = objc_image.load_struct(loc, objc2_category, vm=True) - name = objc_image.get_cstr_at(struct.name, vm=True) + loc = objc_image.read_ptr(category_ptr, vm=True) + struct: objc2_category = objc_image.read_struct(loc, objc2_category, vm=True) + name = objc_image.read_cstr(struct.name, vm=True) except ValueError as ex: log.error("Couldn't load basic info about a Category: " + str(ex)) return None classname = "" try: - sym = objc_image.image.import_table[loc + 8] + sym = objc_image.image.import_table[loc + objc_image.image.ptr_size] classname = sym.name[1:] except KeyError: pass @@ -1012,7 +1033,7 @@ def from_image(cls, objc_image: ObjCImage, category_ptr): if struct.inst_meths != 0: try: - methlist_head = objc_image.load_struct(struct.inst_meths, objc2_meth_list) + methlist_head = objc_image.read_struct(struct.inst_meths, objc2_meth_list) methlist = MethodList(objc_image, methlist_head, struct.inst_meths, False, f'{classname}+{name}') load_errors += methlist.load_errors @@ -1023,7 +1044,7 @@ def from_image(cls, objc_image: ObjCImage, category_ptr): if struct.class_meths != 0: try: - methlist_head = objc_image.load_struct(struct.class_meths, objc2_meth_list) + methlist_head = objc_image.read_struct(struct.class_meths, objc2_meth_list) methlist = MethodList(objc_image, methlist_head, struct.class_meths, True, f'{classname}+{name}') load_errors += methlist.load_errors @@ -1034,18 +1055,18 @@ def from_image(cls, objc_image: ObjCImage, category_ptr): if struct.props != 0: try: - proplist_head = objc_image.load_struct(struct.props, objc2_prop_list) + proplist_head = objc_image.read_struct(struct.props, objc2_prop_list) ea = struct.props - ea += 8 + ea += objc_image.image.ptr_size for i in range(1, proplist_head.count + 1): - prop = objc_image.load_struct(ea, objc2_prop, vm=True) + prop = objc_image.read_struct(ea, objc2_prop, vm=True) try: properties.append(Property.from_image(objc_image, prop)) except Exception as ex: log.warning(f'Failed to load property with {str(ex)}') - ea += objc2_prop.SIZE + ea += objc2_prop.size(objc_image.image.ptr_size) except ValueError: log.warn("Properties for this category are off-image.") @@ -1090,7 +1111,7 @@ def from_image(cls, objc_image: 'ObjCImage', protocol: objc2_prot, loc): return objc_image.prot_map[loc] try: - name = objc_image.get_cstr_at(protocol.name, 0, vm=True) + name = objc_image.read_cstr(protocol.name, 0, vm=True) except ValueError as ex: log.error("Couldn't load basic info about a Category: " + str(ex)) return None @@ -1123,18 +1144,18 @@ def from_image(cls, objc_image: 'ObjCImage', protocol: objc2_prot, loc): opt_methods += methlist.methods if protocol.inst_props != 0: - proplist_head = objc_image.load_struct(protocol.inst_props, objc2_prop_list) + proplist_head = objc_image.read_struct(protocol.inst_props, objc2_prop_list) ea = protocol.inst_props - ea += 8 + ea += objc_image.image.ptr_size for i in range(1, proplist_head.count + 1): - prop = objc_image.load_struct(ea, objc2_prop, vm=True) + prop = objc_image.read_struct(ea, objc2_prop, vm=True) try: properties.append(Property.from_image(objc_image, prop)) except Exception as ex: log.warning(f'Failed to load property with {str(ex)}') - ea += objc2_prop.SIZE + ea += objc2_prop.size(objc_image.image.ptr_size) return cls(name, methods, opt_methods, properties, load_errors, struct_list, loc=loc) diff --git a/src/ktool/structs.py b/src/ktool/structs.py index fbb11a5..3651281 100644 --- a/src/ktool/structs.py +++ b/src/ktool/structs.py @@ -16,12 +16,16 @@ class objc2_class(Struct): - _FIELDNAMES = ['isa', 'superclass', 'cache', 'vtable', 'info'] - _SIZES = [8, 8, 8, 8, 8] - SIZE = sum(_SIZES) + FIELDS = { + 'isa': uintptr_t, + 'superclass': uintptr_t, + 'cache': uintptr_t, + 'vtable': uintptr_t, + 'info': uintptr_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.isa = 0 self.superclass = 0 self.cache = 0 @@ -30,13 +34,22 @@ def __init__(self, byte_order="little"): class objc2_class_ro(Struct): - _FIELDNAMES = ['flags', 'ivar_base_start', 'ivar_base_size', 'reserved', 'ivar_lyt', 'name', 'base_meths', - 'base_prots', 'ivars', 'weak_ivar_lyt', 'base_props'] - _SIZES = [4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8] - SIZE = sum(_SIZES) + FIELDS = { + 'flags': uint32_t, + 'ivar_base_start': uint32_t, + 'ivar_base_size': uint32_t, + 'reserved': pad_for_64_bit_only(4), + 'ivar_lyt': uintptr_t, + 'name': uintptr_t, + 'base_meths': uintptr_t, + 'base_prots': uintptr_t, + 'ivars': uintptr_t, + 'weak_ivar_lyt': uintptr_t, + 'base_props': uintptr_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.flags = 0 self.ivar_base_start = 0 self.ivar_base_size = 0 @@ -51,81 +64,96 @@ def __init__(self, byte_order="little"): class objc2_meth(Struct): - _FIELDNAMES = ['selector', 'types', 'imp'] - _SIZES = [8, 8, 8] - SIZE = sum(_SIZES) + FIELDS = { + 'selector': uintptr_t, + 'types': uintptr_t, + 'imp': uintptr_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.selector = 0 self.types = 0 self.imp = 0 class objc2_meth_list_entry(Struct): - _FIELDNAMES = ['selector', 'types', 'imp'] - _SIZES = [4, 4, 4] - SIZE = sum(_SIZES) + FIELDS = { + 'selector': uint32_t, + 'types': uint32_t, + 'imp': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.selector = 0 self.types = 0 self.imp = 0 class objc2_meth_list(Struct): - _FIELDNAMES = ['entrysize', 'count'] - _SIZES = [4, 4] - SIZE = sum(_SIZES) + FIELDS = { + 'entrysize': uint32_t, + 'count': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.entrysize = 0 self.count = 0 class objc2_prop_list(Struct): - _FIELDNAMES = ['entrysize', 'count'] - _SIZES = [4, 4] - SIZE = sum(_SIZES) + FIELDS = { + 'entrysize': uint32_t, + 'count': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.entrysize = 0 self.count = 0 class objc2_prop(Struct): - _FIELDNAMES = ['name', 'attr'] - _SIZES = [8, 8] - SIZE = sum(_SIZES) + FIELDS = { + 'name': uintptr_t, + 'attr': uintptr_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.name = 0 self.attr = 0 class objc2_prot_list(Struct): - _FIELDNAMES = ['cnt'] - _SIZES = [8] - SIZE = 8 + FIELDS = { + 'cnt': uint64_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cnt = 0 class objc2_prot(Struct): - _FIELDNAMES = ['isa', 'name', 'prots', 'inst_meths', 'class_meths', 'opt_inst_meths', 'opt_class_meths', - 'inst_props', 'cb', 'flags'] - _SIZES = [8, 8, 8, 8, 8, 8, 8, 8, 4, 4] - SIZE = sum(_SIZES) + FIELDS = { + 'isa': uintptr_t, + 'name': uintptr_t, + 'prots': uintptr_t, + 'inst_meths': uintptr_t, + 'class_meths': uintptr_t, + 'opt_inst_meths': uintptr_t, + 'opt_class_meths': uintptr_t, + 'inst_props': uintptr_t, + 'cb': uint32_t, + 'flags': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.isa = 0 self.name = 0 self.prots = 0 @@ -139,34 +167,44 @@ def __init__(self, byte_order="little"): class objc2_ivar_list(Struct): - _FIELDNAMES = ['entrysize', 'cnt'] - _SIZES = [4, 4] - SIZE = 8 + FIELDS = { + 'entrysize': uint32_t, + 'cnt': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.entrysize = 0 self.cnt = 0 class objc2_ivar(Struct): - _FIELDNAMES = ['offs', 'name', 'type', 'align', 'size'] - _SIZES = [8, 8, 8, 4, 4] - SIZE = sum(_SIZES) + FIELDS = { + 'offs': uintptr_t, + 'name': uintptr_t, + 'type': uintptr_t, + 'align': uint32_t, + 'size': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.offs = 0 self.name = 0 class objc2_category(Struct): - _FIELDNAMES = ['name', 's_class', 'inst_meths', 'class_meths', 'prots', 'props'] - _SIZES = [8, 8, 8, 8, 8, 8] - SIZE = sum(_SIZES) + FIELDS = { + 'name': uintptr_t, + 's_class': uintptr_t, + 'inst_meths': uintptr_t, + 'class_meths': uintptr_t, + 'prots': uintptr_t, + 'props': uintptr_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.name = 0 self.s_class = 0 self.inst_meths = 0 diff --git a/src/ktool/swift.py b/src/ktool/swift.py index 69d5c83..e09615e 100644 --- a/src/ktool/swift.py +++ b/src/ktool/swift.py @@ -55,7 +55,7 @@ def from_image(cls, objc_image, location): fd = image.read_struct(location, FieldDescriptor, vm=True) for i in range(fd.NumFields): - ea = location + FieldDescriptor.SIZE + (i * 0xc) + ea = location + FieldDescriptor.size() + (i * 0xc) record = image.read_struct(ea, FieldRecord, vm=True, force_reload=True) flags = record.Flags diff --git a/src/ktool/window.py b/src/ktool/window.py index 68a2b46..2a32100 100644 --- a/src/ktool/window.py +++ b/src/ktool/window.py @@ -2,9 +2,7 @@ # ktool | ktool # window.py # -# This file houses Command Line GUI rendering code. A lot of it. -# If you're looking to contribute to this right now, and are lost, please hit me up; -# this file is a slight mess, and the entire UI framework is custom. +# This is what happens when you work retail for like a year and try to stay sane. # # This file is part of ktool. ktool is free software that # is made available under the MIT license. Consult the diff --git a/src/ktool_macho/load_commands.py b/src/ktool_macho/load_commands.py index bded578..cdbb187 100644 --- a/src/ktool_macho/load_commands.py +++ b/src/ktool_macho/load_commands.py @@ -68,13 +68,13 @@ def from_image(cls, image, command: Union[segment_command, segment_command_64]) lc.type = SectionType(S_FLAGS_MASKS.SECTION_TYPE & command.flags) lc.is64 = isinstance(command, segment_command_64) - ea = command.off + command.SIZE + ea = command.off + command.size() for sect in range(command.nsects): sect = image.read_struct(ea, section_64 if lc.is64 else section) _section = Section(sect) lc.sections[sect.name] = _section - ea += section_64.SIZE if lc.is64 else section.SIZE + ea += section_64.size() if lc.is64 else section.size() return lc @@ -88,8 +88,8 @@ def from_values(cls, is_64, name, vm_addr, vm_size, file_addr, file_size, maxpro section_type = section_64 if is_64 else section cmd = 0x19 if is_64 else 0x1 - cmdsize = command_type.SIZE - cmdsize += (len(sections) * section_type.SIZE) + cmdsize = command_type.size() + cmdsize += (len(sections) * section_type.size()) command = Struct.create_with_values(command_type, [cmd, cmdsize, name, vm_addr, vm_size, file_addr, file_size, maxprot, @@ -148,7 +148,7 @@ def from_image(cls, command: symtab_command): @classmethod def from_values(cls, symtab_offset, symtab_size, string_table_offset, string_table_size): - cmd = Struct.create_with_values(symtab_command, [LOAD_COMMAND.SYMTAB.value, symtab_command.SIZE, symtab_offset, + cmd = Struct.create_with_values(symtab_command, [LOAD_COMMAND.SYMTAB.value, symtab_command.size(), symtab_offset, symtab_size, string_table_offset, string_table_size]) return cls.from_image(cmd) diff --git a/src/ktool_macho/mach_header.py b/src/ktool_macho/mach_header.py index 2bd1042..0643e98 100644 --- a/src/ktool_macho/mach_header.py +++ b/src/ktool_macho/mach_header.py @@ -216,6 +216,7 @@ class SectionAttributesSys(IntEnum): CPU_ARCH_MASK = 0xff000000 # Mask for architecture bits CPU_ARCH_ABI64 = 0x01000000 +CPU_ARCH_ABI6432 = 0x02000000 class CPUType(IntEnum): @@ -228,6 +229,7 @@ class CPUType(IntEnum): SPARC = 14 POWERPC = 18 POWERPC64 = POWERPC | CPU_ARCH_ABI64 + ARM6432 = ARM | CPU_ARCH_ABI6432 class CPUSubTypeX86(IntEnum): @@ -281,11 +283,17 @@ class CPUSubTypePowerPC(IntEnum): _970 = 100 +class CPUSubTypeARM6432(IntEnum): + ALL = 0 + V8 = 1 + + CPU_SUBTYPES = { CPUType.X86: CPUSubTypeX86, CPUType.X86_64: CPUSubTypeX86_64, CPUType.POWERPC: CPUSubTypePowerPC, CPUType.ARM: CPUSubTypeARM, CPUType.ARM64: CPUSubTypeARM64, + CPUType.ARM6432: CPUSubTypeARM6432, CPUType.SPARC: CPUSubTypeSPARC } diff --git a/src/ktool_macho/structs.py b/src/ktool_macho/structs.py index cd5cd20..7f0c4c2 100644 --- a/src/ktool_macho/structs.py +++ b/src/ktool_macho/structs.py @@ -2,7 +2,8 @@ # ktool | ktool_macho # structs.py # -# +# the __init__ defs here are unnecessary and only required for my IDE (pycharm) to recognize and autocomplete +# the struct attributes # # This file is part of ktool. ktool is free software that # is made available under the MIT license. Consult the @@ -24,12 +25,15 @@ class fat_header(Struct): self.nfat_archs: Number of Fat Arch entries after these bytes """ - _FIELDNAMES = ['magic', 'nfat_archs'] - _SIZES = [uint32_t, uint32_t] - SIZE = 8 + FIELDS = { + 'magic': uint32_t, + 'nfat_archs': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) + self.magic = 0 + self.nfat_archs = 0 class fat_arch(Struct): @@ -39,12 +43,16 @@ class fat_arch(Struct): Attribs: cpu_type: """ - _FIELDNAMES = ['cpu_type', 'cpu_subtype', 'offset', 'size', 'align'] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t, uint32_t] - SIZE = 20 + FIELDS = { + 'cpu_type': uint32_t, + 'cpu_subtype': uint32_t, + 'offset': uint32_t, + 'size': uint32_t, + 'align': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cpu_type = 0 self.cpu_subtype = 0 self.offset = 0 @@ -53,12 +61,18 @@ def __init__(self, byte_order="little"): class mach_header(Struct): - _FIELDNAMES = ['magic', 'cpu_type', 'cpu_subtype', 'filetype', 'loadcnt', 'loadsize', 'flags'] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t] - SIZE = 28 + FIELDS = { + 'magic': uint32_t, + 'cpu_type': uint32_t, + 'cpu_subtype': uint32_t, + 'filetype': uint32_t, + 'loadcnt': uint32_t, + 'loadsize': uint32_t, + 'flags': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.magic = 0 self.cpu_type = 0 self.cpu_subtype = 0 @@ -69,12 +83,19 @@ def __init__(self, byte_order="little"): class mach_header_64(Struct): - _FIELDNAMES = ['magic', 'cpu_type', 'cpu_subtype', 'filetype', 'loadcnt', 'loadsize', 'flags', 'reserved'] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t] - SIZE = 32 + FIELDS = { + 'magic': uint32_t, + 'cpu_type': uint32_t, + 'cpu_subtype': uint32_t, + 'filetype': uint32_t, + 'loadcnt': uint32_t, + 'loadsize': uint32_t, + 'flags': uint32_t, + 'reserved': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.magic = 0 self.cpu_type = 0 self.cpu_subtype = 0 @@ -86,25 +107,34 @@ def __init__(self, byte_order="little"): class unk_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize'] - _SIZES = [uint32_t, uint32_t] - SIZE = 8 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 class segment_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'segname', 'vmaddr', 'vmsize', 'fileoff', 'filesize', 'maxprot', 'initprot', - 'nsects', 'flags'] - _SIZES = [uint32_t, uint32_t, char_t[16], uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, - uint32_t] - SIZE = 56 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'segname': char_t[16], + 'vmaddr': uint32_t, + 'vmsize': uint32_t, + 'fileoff': uint32_t, + 'filesize': uint32_t, + 'maxprot': uint32_t, + 'initprot': uint32_t, + 'nsects': uint32_t, + 'flags': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.segname = 0 @@ -119,14 +149,22 @@ def __init__(self, byte_order="little"): class segment_command_64(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'segname', 'vmaddr', 'vmsize', 'fileoff', 'filesize', 'maxprot', 'initprot', - 'nsects', 'flags'] - _SIZES = [uint32_t, uint32_t, char_t[16], uint64_t, uint64_t, uint64_t, uint64_t, uint32_t, uint32_t, uint32_t, - uint32_t] - SIZE = 72 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'segname': char_t[16], + 'vmaddr': uint64_t, + 'vmsize': uint64_t, + 'fileoff': uint64_t, + 'filesize': uint64_t, + 'maxprot': uint32_t, + 'initprot': uint32_t, + 'nsects': uint32_t, + 'flags': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.segname = 0 @@ -141,14 +179,22 @@ def __init__(self, byte_order="little"): class section(Struct): - _FIELDNAMES = ['sectname', 'segname', 'addr', 'size', 'offset', 'align', 'reloff', 'nreloc', 'flags', 'reserved1', - 'reserved2'] - _SIZES = [char_t[16], char_t[16], uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, - uint32_t] - SIZE = 68 + FIELDS = { + 'sectname': char_t[16], + 'segname': char_t[16], + 'addr': uint32_t, + 'size': uint32_t, + 'offset': uint32_t, + 'align': uint32_t, + 'reloff': uint32_t, + 'nreloc': uint32_t, + 'flags': uint32_t, + 'reserved1': uint32_t, + 'reserved2': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.sectname = 0 self.segname = 0 self.addr = 0 @@ -163,14 +209,23 @@ def __init__(self, byte_order="little"): class section_64(Struct): - _FIELDNAMES = ['sectname', 'segname', 'addr', 'size', 'offset', 'align', 'reloff', 'nreloc', 'flags', 'reserved1', - 'reserved2', 'reserved3'] - _SIZES = [char_t[16], char_t[16], uint64_t, uint64_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, - uint32_t, uint32_t] - SIZE = 80 + FIELDS = { + 'sectname': char_t[16], + 'segname': char_t[16], + 'addr': uint64_t, + 'size': uint64_t, + 'offset': uint32_t, + 'align': uint32_t, + 'reloff': uint32_t, + 'nreloc': uint32_t, + 'flags': uint32_t, + 'reserved1': uint32_t, + 'reserved2': uint32_t, + 'reserved3': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.sectname = 0 self.segname = 0 self.addr = 0 @@ -186,12 +241,17 @@ def __init__(self, byte_order="little"): class symtab_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'symoff', 'nsyms', 'stroff', 'strsize'] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t] - SIZE = 4 * 6 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'symoff': uint32_t, + 'nsyms': uint32_t, + 'stroff': uint32_t, + 'strsize': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.symoff = 0 @@ -201,15 +261,31 @@ def __init__(self, byte_order="little"): class dysymtab_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'ilocalsym', 'nlocalsym', 'iextdefsym', 'nextdefsym', 'iundefsym', 'nundefsym', - 'tocoff', 'ntoc', 'modtaboff', 'nmodtab', 'extrefsymoff', 'nextrefsyms', 'indirectsymoff', - 'nindirectsyms', 'extreloff', 'nextrel', 'locreloff', 'nlocrel'] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, - uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t] - SIZE = 80 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'ilocalsym': uint32_t, + 'nlocalsym': uint32_t, + 'iextdefsym': uint32_t, + 'nextdefsym': uint32_t, + 'iundefsym': uint32_t, + 'nundefsym': uint32_t, + 'tocoff': uint32_t, + 'ntoc': uint32_t, + 'modtaboff': uint32_t, + 'nmodtab': uint32_t, + 'extrefsymoff': uint32_t, + 'nextrefsyms': uint32_t, + 'indirectsymoff': uint32_t, + 'nindirectsyms': uint32_t, + 'extreloff': uint32_t, + 'nextrel': uint32_t, + 'locreloff': uint32_t, + 'nlocrel': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.ilocalsym = 0 @@ -233,12 +309,15 @@ def __init__(self, byte_order="little"): class dylib(Struct): - _FIELDNAMES = ['name', 'timestamp', 'current_version', 'compatibility_version'] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t] - SIZE = 16 + FIELDS = { + 'name': uint32_t, + 'timestamp': uint32_t, + 'current_version': uint32_t, + 'compatibility_version': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.name = 0 self.timestamp = 0 self.current_version = 0 @@ -246,60 +325,73 @@ def __init__(self, byte_order="little"): class dylib_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'dylib'] - _SIZES = [uint32_t, uint32_t, dylib] - SIZE = 24 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'dylib': dylib + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.dylib = 0 class dylinker_command(Struct): - _FIELDNAMES = ["cmd", "cmdsize", "name"] - _SIZES = [uint32_t, uint32_t, uint32_t] - SIZE = 12 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'name': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.name = 0 class sub_client_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'offset'] - _SIZES = [uint32_t, uint32_t, uint32_t] - SIZE = 12 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'offset': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.offset = 0 class uuid_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'uuid'] - _SIZES = [uint32_t, uint32_t, type_bytes | 16] - SIZE = 24 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'uuid': bytes_t[16] + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.uuid = 0 class build_version_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'platform', 'minos', 'sdk', 'ntools'] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t] - SIZE = 24 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'platform': uint32_t, + 'minos': uint32_t, + 'sdk': uint32_t, + 'ntools': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.platform = 0 @@ -309,12 +401,15 @@ def __init__(self, byte_order="little"): class entry_point_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'entryoff', 'stacksize'] - _SIZES = [uint32_t, uint32_t, uint64_t, uint64_t] - SIZE = 24 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'entryoff': uint64_t, + 'stacksize': uint64_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.entryoff = 0 @@ -322,36 +417,43 @@ def __init__(self, byte_order="little"): class rpath_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'path'] - _SIZES = [uint32_t, uint32_t, uint32_t] - SIZE = 12 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'path': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.path = 0 class source_version_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'version'] - _SIZES = [uint32_t, uint32_t, uint64_t] - SIZE = sum(_SIZES) + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'version': uint64_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.version = 0 class linkedit_data_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'dataoff', 'datasize'] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t] - SIZE = sum(_SIZES) + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'dataoff': uint32_t, + 'datasize': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.dataoff = 0 @@ -359,14 +461,23 @@ def __init__(self, byte_order="little"): class dyld_info_command(Struct): - _FIELDNAMES = ['cmd', 'cmdsize', 'rebase_off', 'rebase_size', 'bind_off', 'bind_size', 'weak_bind_off', - 'weak_bind_size', 'lazy_bind_off', 'lazy_bind_size', 'export_off', 'export_size'] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, - uint32_t, uint32_t] - SIZE = 48 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'rebase_off': uint32_t, + 'rebase_size': uint32_t, + 'bind_off': uint32_t, + 'bind_size': uint32_t, + 'weak_bind_off': uint32_t, + 'weak_bind_size': uint32_t, + 'lazy_bind_off': uint32_t, + 'lazy_bind_size': uint32_t, + 'export_off': uint32_t, + 'export_size': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdisze = 0 self.rebase_off = 0 @@ -382,12 +493,16 @@ def __init__(self, byte_order="little"): class symtab_entry_32(Struct): - _FIELDNAMES = ["str_index", "type", "sect_index", "desc", "value"] - _SIZES = [uint32_t, uint8_t, uint8_t, uint16_t, uint32_t] - SIZE = sum(_SIZES) + FIELDS = { + 'str_index': uint32_t, + 'type': uint8_t, + 'sect_index': uint8_t, + 'desc': uint16_t, + 'value': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.str_index = 0 self.type = 0 self.sect_index = 0 @@ -396,12 +511,16 @@ def __init__(self, byte_order="little"): class symtab_entry(Struct): - _FIELDNAMES = ["str_index", "type", "sect_index", "desc", "value"] - _SIZES = [uint32_t, uint8_t, uint8_t, uint16_t, uint64_t] - SIZE = sum(_SIZES) + FIELDS = { + 'str_index': uint32_t, + 'type': uint8_t, + 'sect_index': uint8_t, + 'desc': uint16_t, + 'value': uint64_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.str_index = 0 self.type = 0 self.sect_index = 0 @@ -410,12 +529,15 @@ def __init__(self, byte_order="little"): class version_min_command(Struct): - _FIELDNAMES = ["cmd", "cmdsize", "version", "reserved"] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t] - SIZE = 16 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'version': uint32_t, + 'reserved': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.version = 0 @@ -423,12 +545,16 @@ def __init__(self, byte_order="little"): class encryption_info_command(Struct): - _FIELDNAMES = ["cmd", "cmdsize", "cryptoff", "cryptsize", "cryptid"] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t, uint32_t] - SIZE = 20 + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'cryptoff': uint32_t, + 'cryptsize': uint32_t, + 'cryptid': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.cryptoff = 0 @@ -437,12 +563,17 @@ def __init__(self, byte_order="little"): class encryption_info_command_64(Struct): - _FIELDNAMES = ["cmd", "cmdsize", "cryptoff", "cryptsize", "cryptid", "pad"] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t] - SIZE = sum(_SIZES) + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'cryptoff': uint32_t, + 'cryptsize': uint32_t, + 'cryptid': uint32_t, + 'pad': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.cryptoff = 0 @@ -452,12 +583,15 @@ def __init__(self, byte_order="little"): class thread_command(Struct): - _FIELDNAMES = ["cmd", "cmdsize", "flavor", "count"] - _SIZES = [uint32_t, uint32_t, uint32_t, uint32_t] - SIZE = sum(_SIZES) + FIELDS = { + 'cmd': uint32_t, + 'cmdsize': uint32_t, + 'flavor': uint32_t, + 'count': uint32_t + } def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + super().__init__(byte_order=byte_order) self.cmd = 0 self.cmdsize = 0 self.flavor = 0 diff --git a/src/ktool_swift/structs.py b/src/ktool_swift/structs.py index a73b81d..08e9f46 100644 --- a/src/ktool_swift/structs.py +++ b/src/ktool_swift/structs.py @@ -15,36 +15,9 @@ import enum from lib0cyn.structs import * -""" -struct _NominalTypeDescriptor { - var property1: Int32 - var property2: Int32 - var mangledName: Int32 - var property4: Int32 - var numberOfFields: Int32 - var fieldOffsetVector: Int32 -}""" - -""" -type FieldRecord struct { - Flags uint32 - MangledTypeName int32 - FieldName int32 -} - -type FieldDescriptor struct { - MangledTypeName int32 - Superclass int32 - Kind uint16 - FieldRecordSize uint16 - NumFields uint32 - FieldRecords []FieldRecord -} -""" - class ProtocolDescriptor(Struct): - _FIELDS = { + FIELDS = { 'Flags': uint32_t, 'Parent': int32_t, 'Name': int32_t, @@ -52,27 +25,19 @@ class ProtocolDescriptor(Struct): 'NumRequirements': uint32_t, 'AssociatedTypeNames': int32_t } - SIZE = 24 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class ProtocolConformanceDescriptor(Struct): - _FIELDS = { + FIELDS = { 'ProtocolDescriptor': int32_t, 'NominalTypeDescriptor': int32_t, 'ProtocolWitnessTable': int32_t, 'ConformanceFlags': uint32_t } - SIZE = 16 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class EnumDescriptor(Struct): - _FIELDS = { + FIELDS = { 'Flags': uint32_t, 'Parent': int32_t, 'Name': int32_t, @@ -81,14 +46,10 @@ class EnumDescriptor(Struct): 'NumPayloadCasesAndPayloadSizeOffset': uint32_t, 'NumEmptyCases': uint32_t } - SIZE = 28 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class StructDescriptor(Struct): - _FIELDS = { + FIELDS = { 'Flags': uint32_t, 'Parent': int32_t, 'Name': int32_t, @@ -97,14 +58,10 @@ class StructDescriptor(Struct): 'NumFields': uint32_t, 'FieldOffsetVectorOffset': uint32_t } - SIZE = 28 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class ClassDescriptor(Struct): - _FIELDS = { + FIELDS = { 'Flags': uint32_t, 'Parent': int32_t, 'Name': int32_t, @@ -116,179 +73,123 @@ class ClassDescriptor(Struct): 'NumImmediateMembers': uint32_t, 'NumFields': uint32_t } - SIZE = 4 * len(_FIELDS.values()) - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class FieldDescriptor(Struct): - _FIELDNAMES = ['MangledTypeName', - 'Superclass', - 'Kind', - 'FieldRecordSize', - 'NumFields'] - _SIZES = [int32_t, int32_t, uint16_t, int16_t, int32_t] - SIZE = 16 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + FIELDS = { + 'MangledTypeName': int32_t, + 'Superclass': int32_t, + 'Kind': uint16_t, + 'FieldRecordSize': int16_t, + 'NumFields': int32_t + } class FieldRecord(Struct): - _FIELDNAMES = ['Flags', 'MangledTypeName', 'FieldName'] - _SIZES = [uint32_t, int32_t, int32_t] - SIZE = 0xc - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + FIELDS = { + 'Flags': uint32_t, + 'MangledTypeName': int32_t, + 'FieldName': int32_t + } class AssociatedTypeRecord(Struct): - _FIELDS = { + FIELDS = { 'Name': int32_t, 'SubstitutedTypename': int32_t } - SIZE = 8 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class AssociatedTypeDescriptor(Struct): - _FIELDS = { + FIELDS = { 'ConformingTypeName': int32_t, 'ProtocolTypeName': int32_t, 'NumAssociatedTypes': uint32_t, 'AssociatedTypeRecordSize': uint32_t } - SIZE = 16 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class BuiltinTypeDescriptor(Struct): - _FIELDS = { + FIELDS = { 'TypeName': int32_t, 'Size': uint32_t, 'AlignmentAndFlags': uint32_t, 'Stride': uint32_t, 'NumExtraInhabitants': uint32_t } - SIZE = 20 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class CaptureTypeRecord(Struct): - _FIELDS = { + FIELDS = { 'MangledTypeName': int32_t } - SIZE = 4 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class MetadataSourceRecord(Struct): - _FIELDS = { + FIELDS = { 'MangledTypeName': int32_t, 'MangledMetadataSource': int32_t } - SIZE = 8 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class CaptureDescriptor(Struct): - _FIELDS = { + FIELDS = { 'NumCaptureTypes': uint32_t, 'NumMetadataSources': uint32_t, 'NumBindings': uint32_t } - SIZE = 12 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class Replacement(Struct): - _FIELDS = { + FIELDS = { 'ReplacedFunctionKey': int32_t, 'NewFunction': int32_t, 'Replacement': int32_t, 'Flags': uint32_t } - SIZE = 16 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class ReplacementScope(Struct): - _FIELDS = { + FIELDS = { 'Flags': uint32_t, 'NumReplacements': uint32_t } - SIZE = 8 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class AutomaticReplacements(Struct): - _FIELDS = { + FIELDS = { 'Flags': uint32_t, 'NumReplacements': uint32_t, 'Replacements': int32_t } - SIZE = 12 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class OpaqueReplacement(Struct): - _FIELDS = { + FIELDS = { 'Original': int32_t, 'Replacement': int32_t } - SIZE = 8 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class OpaqueAutomaticReplacement(Struct): - _FIELDS = { + FIELDS = { 'Flags': uint32_t, 'NumReplacements': uint32_t, } - SIZE = 8 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDS.keys(), sizes=self._FIELDS.values(), byte_order=byte_order) class ClassMethodListTable(Struct): - _FIELDNAMES = ['VTableOffset', 'VTableSize'] - _SIZES = [4, 4] - SIZE = 8 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + FIELDS = { + 'VTableOffset': uint32_t, + 'VTableSize': uint32_t + } class TargetMethodDescriptor(Struct): - _FIELDNAMES = ['Flags', 'Impl'] - _SIZES = [uint32_t, int32_t] - SIZE = 8 - - def __init__(self, byte_order="little"): - super().__init__(fields=self._FIELDNAMES, sizes=self._SIZES, byte_order=byte_order) + FIELDS = { + 'Flags': uint32_t, + 'Impl': int32_t + } class ContextDescriptorKind(enum.Enum): diff --git a/src/lib0cyn/structs.py b/src/lib0cyn/structs.py index 6f98950..1029bc2 100644 --- a/src/lib0cyn/structs.py +++ b/src/lib0cyn/structs.py @@ -14,6 +14,9 @@ # from typing import List +# At a glance this looks insane for python, +# But size calc is *very* hot code, and if we can reduce the computation of sizes to bit manipulation, +# it provides a sizable speedup. type_mask = 0xffff0000 size_mask = 0xffff @@ -32,8 +35,29 @@ int32_t = type_sint | 4 int64_t = type_sint | 8 +# "wtf is going on here?" +# this is a bit cursed, but makes it possible to specify an arbitrary length of characters/bytes in a field +# by passing, e.g. char_t[16] for the size. This is just making an array of size values with a str type +# and size between 1 and 64 +# if you need more than 64 just pass `(type_str | n)` where `n` is your size, as the size. char_t = [type_str | i for i in range(65)] bytes_t = [type_bytes | i for i in range(65)] +# can you tell I miss C + + +class uintptr_t: + pass + + +class pad_for_64_bit_only: + """ Sometimes, arm64/x64 variations of structures may differ from 32 bit ones only in variables to pad + things out for the sake of byte-aligned reads. This allows us to account for that without having to make + a separate 64 and 32 bit struct. + + This acts as a variable length field, and will have a size of 0 if ptr_size passed to struct code isn't 8 + """ + def __init__(self, size=4): + self.size = size class Bitfield: @@ -83,7 +107,6 @@ def __init__(): # |size | list of Struct types like `mach_header`, etc valueIWant = unionInst.my_struct_1.someFieldInIt """ - SIZE = 0 def __init__(self, size: int, types: List[object]): self.size = size @@ -98,7 +121,7 @@ def load_from_bytes(self, data): getattr(self, t.__name__).load_from_bytes(data) def __int__(self): - return self.__class__.SIZE + return self.__class__.size() def _bytes_to_hex(data) -> str: @@ -133,14 +156,69 @@ class Struct: """ + @classmethod + def size(cls, ptr_size=None): + if not hasattr(cls, 'FIELDS'): + return cls.SIZE + if not hasattr(cls, '___SIZE'): + size = 0 + for _, value in cls.FIELDS.items(): + if isinstance(value, int): + size += value & size_mask + elif isinstance(value, Bitfield): + size += value.size + elif isinstance(value, pad_for_64_bit_only): + if ptr_size is None: + from lib0cyn.log import log + err = "Trying to get size on variable (ptr) sized type directly without a ptr_size! This is programmer error!" + print(err) + log.error(err) + import traceback + traceback.print_stack() + print(err) + log.error(err) + log.error("Exiting now. Go fix this.") + exit(404) + if ptr_size == 8: + size += value.size + elif issubclass(value, uintptr_t): + if ptr_size is None: + from lib0cyn.log import log + err = "Trying to get size on variable (ptr) sized type directly without a ptr_size! This is programmer error!" + print(err) + log.error(err) + import traceback + traceback.print_stack() + print(err) + log.error(err) + log.error("Exiting now. Go fix this.") + exit(404) + size += ptr_size + setattr(cls, '___VARIABLE_SIZE', True) + elif issubclass(value, StructUnion): + size += value.size + elif issubclass(value, Struct): + if value == cls: + raise AssertionError(f"Recursive type definition on {cls.__name__}") + if hasattr(value, 'FIELDS'): + size += value.size(ptr_size=ptr_size) + else: + size += value.size(ptr_size=ptr_size) + if not hasattr(cls, '___VARIABLE_SIZE'): + setattr(cls, "___SIZE", size) + return size + else: + return getattr(cls, "___SIZE") + # noinspection PyProtectedMember @staticmethod - def create_with_bytes(struct_class, raw, byte_order="little"): + def create_with_bytes(struct_class, raw, byte_order="little", ptr_size=8): """ Unpack a struct from raw bytes :param struct_class: Struct subclass :param raw: Bytes + :param ptr_size: :param byte_order: Little/Big Endian Struct Unpacking :return: struct_class Instance """ @@ -150,7 +228,7 @@ def create_with_bytes(struct_class, raw, byte_order="little"): inst_raw = bytearray() # I *Genuinely* cannot figure out where in the program the size mismatch is happening. This should hotfix? - raw = raw[:struct_class.SIZE] + raw = raw[:struct_class.size(ptr_size=ptr_size)] for field in instance._fields: value = instance._field_sizes[field] @@ -186,6 +264,20 @@ def create_with_bytes(struct_class, raw, byte_order="little"): setattr(instance, f, fv) field_value = None + elif isinstance(value, pad_for_64_bit_only): + size = value.size if ptr_size == 8 else 0 + if size != 0: + data = raw[current_off:current_off + size] + field_value = int.from_bytes(data, byte_order) + else: + data = bytearray() + field_value = 0 + + elif issubclass(value, uintptr_t): + size = ptr_size + data = raw[current_off:current_off + size] + field_value = int.from_bytes(data, byte_order) + elif issubclass(value, StructUnion): data = raw[current_off:current_off + value.SIZE] size = value.SIZE @@ -193,7 +285,7 @@ def create_with_bytes(struct_class, raw, byte_order="little"): field_value.load_from_bytes(data) elif issubclass(value, Struct): - size = value.SIZE + size = value.size(ptr_size=ptr_size) data = raw[current_off:current_off + size] field_value = Struct.create_with_bytes(value, data) @@ -350,16 +442,21 @@ def serialize(self): return struct_dict def __init__(self, fields=None, sizes=None, byte_order="little"): - if sizes is None: - raise AssertionError( - "Do not use the bare Struct class; it must be implemented in an actual type; Missing Sizes") - - if fields is None: - raise AssertionError( - "Do not use the bare Struct class; it must be implemented in an actual type; Missing Fields") - - fields = list(fields) - sizes = list(sizes) + if hasattr(self.__class__, 'FIELDS'): + # new method + fields = list(self.__class__.FIELDS.keys()) + sizes = list(self.__class__.FIELDS.values()) + else: + if sizes is None: + raise AssertionError( + "Do not use the bare Struct class; it must be implemented in an actual type; Missing Sizes") + + if fields is None: + raise AssertionError( + "Do not use the bare Struct class; it must be implemented in an actual type; Missing Fields") + + fields = list(fields) + sizes = list(sizes) self.initialized = False diff --git a/tests/build.ninja b/tests/build.ninja index de234ff..e10e284 100644 --- a/tests/build.ninja +++ b/tests/build.ninja @@ -3,15 +3,18 @@ rule build_library_x86 command = clang $in -o $out -framework Foundation -dynamiclib -arch x86_64 -rule build_library_arm6 - command = clang $in -o $out -framework Foundation -arch arm64 - rule build_bin_x86 command = clang $in -o $out -framework Foundation -arch x86_64 rule build_bin_arm64 command = clang $in -o $out -framework Foundation -arch arm64 +rule build_bin_armv7 + command = clang $in -o $out -framework Foundation -arch armv7 -target armv7-apple-ios -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + +rule build_bin_arm6432 + command = clang $in -o $out -L./src/ -framework Foundation -Wl,-undefined,dynamic_lookup -target arm64_32-apple-watchos7.0 -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/ + rule lipo_combine command = lipo -create $in -output $out @@ -19,7 +22,7 @@ rule sign command = cp $in $out; codesign -s - --ent src/testent.xml $out --force rule clean - command = rm -r $out + command = #rm -r $out build bins/testlib1.dylib: build_library_x86 src/testlib1.m @@ -28,6 +31,8 @@ build bins/testbin1.signed: sign bins/testbin1 build .build/testbin1_arm: build_bin_arm64 src/testbin1.m build .build/testbin1_x86: build_bin_x86 src/testbin1.m -build bins/testbin1.fat: lipo_combine .build/testbin1_arm .build/testbin1_x86 +build .build/testbin1_v7: build_bin_armv7 src/testbin1.m +build .build/testbin1_6432: build_bin_arm6432 src/testbin1.m +build bins/testbin1.fat: lipo_combine .build/testbin1_arm .build/testbin1_x86 .build/testbin1_v7 .build/testbin1_6432 build .build: clean bins/testbin1.fat diff --git a/tests/src/libSystem.tbd b/tests/src/libSystem.tbd new file mode 100644 index 0000000..f517fb3 --- /dev/null +++ b/tests/src/libSystem.tbd @@ -0,0 +1,3125 @@ +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/libSystem.B.dylib' +current-version: 1336 +reexported-libraries: + - targets: [ armv7k-watchos ] + libraries: [ '/usr/lib/system/libsystem_product_info_filter.dylib' ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + libraries: [ '/usr/lib/system/libcache.dylib', '/usr/lib/system/libcommonCrypto.dylib', + '/usr/lib/system/libcompiler_rt.dylib', '/usr/lib/system/libcopyfile.dylib', + '/usr/lib/system/libcorecrypto.dylib', '/usr/lib/system/libdispatch.dylib', + '/usr/lib/system/libdyld.dylib', '/usr/lib/system/libmacho.dylib', + '/usr/lib/system/libremovefile.dylib', '/usr/lib/system/libsystem_asl.dylib', + '/usr/lib/system/libsystem_blocks.dylib', '/usr/lib/system/libsystem_c.dylib', + '/usr/lib/system/libsystem_collections.dylib', '/usr/lib/system/libsystem_configuration.dylib', + '/usr/lib/system/libsystem_containermanager.dylib', '/usr/lib/system/libsystem_coreservices.dylib', + '/usr/lib/system/libsystem_darwin.dylib', '/usr/lib/system/libsystem_dnssd.dylib', + '/usr/lib/system/libsystem_featureflags.dylib', '/usr/lib/system/libsystem_info.dylib', + '/usr/lib/system/libsystem_kernel.dylib', '/usr/lib/system/libsystem_m.dylib', + '/usr/lib/system/libsystem_malloc.dylib', '/usr/lib/system/libsystem_networkextension.dylib', + '/usr/lib/system/libsystem_notify.dylib', '/usr/lib/system/libsystem_platform.dylib', + '/usr/lib/system/libsystem_pthread.dylib', '/usr/lib/system/libsystem_sandbox.dylib', + '/usr/lib/system/libsystem_symptoms.dylib', '/usr/lib/system/libsystem_trace.dylib', + '/usr/lib/system/libunwind.dylib', '/usr/lib/system/libxpc.dylib' ] +exports: + - targets: [ armv7k-watchos ] + symbols: [ ___asan_default_options, _dynamic_asan_opts ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ ___crashreporter_info__, _libSystem_init_after_boot_tasks_4launchd, + _mach_init_routine ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libcache.dylib' +current-version: 92 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _cache_create, _cache_destroy, _cache_get, _cache_get_and_retain, + _cache_get_cost_hint, _cache_get_count_hint, _cache_get_info, + _cache_get_info_for_key, _cache_get_info_for_keys, _cache_get_minimum_values_hint, + _cache_get_name, _cache_hash_byte_string, _cache_invoke, _cache_key_hash_cb_cstring, + _cache_key_hash_cb_integer, _cache_key_is_equal_cb_cstring, + _cache_key_is_equal_cb_integer, _cache_print, _cache_print_stats, + _cache_release, _cache_release_cb_free, _cache_release_value, + _cache_remove, _cache_remove_all, _cache_remove_with_block, + _cache_retain, _cache_set_and_retain, _cache_set_cost_hint, + _cache_set_count_hint, _cache_set_minimum_values_hint, _cache_set_name, + _cache_simulate_memory_warning_event, _cache_value_make_nonpurgeable_cb, + _cache_value_make_purgeable_cb ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libcommonCrypto.dylib' +current-version: 65535 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _CCAESCmac, _CCAESCmacCreate, _CCAESCmacDestroy, _CCAESCmacFinal, + _CCAESCmacOutputSizeFromContext, _CCAESCmacUpdate, _CCBigNumAdd, + _CCBigNumAddI, _CCBigNumBitCount, _CCBigNumByteCount, _CCBigNumClear, + _CCBigNumCompare, _CCBigNumCompareI, _CCBigNumCopy, _CCBigNumCreateRandom, + _CCBigNumDiv, _CCBigNumFree, _CCBigNumFromData, _CCBigNumFromDecimalString, + _CCBigNumFromHexString, _CCBigNumGetI, _CCBigNumIsNegative, + _CCBigNumIsPrime, _CCBigNumIsZero, _CCBigNumLeftShift, _CCBigNumMod, + _CCBigNumModExp, _CCBigNumModI, _CCBigNumMul, _CCBigNumMulI, + _CCBigNumMulMod, _CCBigNumRightShift, _CCBigNumSetI, _CCBigNumSetNegative, + _CCBigNumSub, _CCBigNumSubI, _CCBigNumToData, _CCBigNumToDecimalString, + _CCBigNumToHexString, _CCBigNumZeroLSBCount, _CCCKGContributorCommit, + _CCCKGContributorCreate, _CCCKGContributorDestroy, _CCCKGContributorFinish, + _CCCKGGetCommitmentSize, _CCCKGGetOpeningSize, _CCCKGGetShareSize, + _CCCKGOwnerCreate, _CCCKGOwnerDestroy, _CCCKGOwnerFinish, + _CCCKGOwnerGenerateShare, _CCCalibratePBKDF, _CCCreateBigNum, + _CCCrypt, _CCCryptorAddParameter, _CCCryptorChaCha20, _CCCryptorChaCha20Poly1305OneshotDecrypt, + _CCCryptorChaCha20Poly1305OneshotEncrypt, _CCCryptorCreate, + _CCCryptorCreateFromData, _CCCryptorCreateFromDataWithMode, + _CCCryptorCreateWithMode, _CCCryptorDecryptDataBlock, _CCCryptorEncryptDataBlock, + _CCCryptorFinal, _CCCryptorGCM, _CCCryptorGCMAddAAD, _CCCryptorGCMAddADD, + _CCCryptorGCMAddIV, _CCCryptorGCMDecrypt, _CCCryptorGCMEncrypt, + _CCCryptorGCMFinal, _CCCryptorGCMFinalize, _CCCryptorGCMOneshotDecrypt, + _CCCryptorGCMOneshotEncrypt, _CCCryptorGCMReset, _CCCryptorGCMSetIV, + _CCCryptorGCMaddAAD, _CCCryptorGetIV, _CCCryptorGetOutputLength, + _CCCryptorGetParameter, _CCCryptorRelease, _CCCryptorReset, + _CCCryptorReset_binary_compatibility, _CCCryptorUpdate, _CCDHComputeKey, + _CCDHCreate, _CCDHGenerateKey, _CCDHRelease, _CCDeriveKey, + _CCDesCBCCksum, _CCDesIsWeakKey, _CCDesSetOddParity, _CCDigest, + _CCDigestBlockSize, _CCDigestCreate, _CCDigestCreateByOID, + _CCDigestDestroy, _CCDigestFinal, _CCDigestGetBlockSize, _CCDigestGetBlockSizeFromRef, + _CCDigestGetOutputSize, _CCDigestGetOutputSizeFromRef, _CCDigestInit, + _CCDigestOID, _CCDigestOIDLen, _CCDigestOutputSize, _CCDigestReset, + _CCDigestUpdate, _CCECCryptorBlind, _CCECCryptorBlindingKeysRelease, + _CCECCryptorComputeSharedSecret, _CCECCryptorCreateFromData, + _CCECCryptorExportKey, _CCECCryptorExportPublicKey, _CCECCryptorGenerateBlindingKeys, + _CCECCryptorGeneratePair, _CCECCryptorGetKeyComponents, _CCECCryptorGetPublicKeyFromPrivateKey, + _CCECCryptorH2C, _CCECCryptorImportKey, _CCECCryptorImportPublicKey, + _CCECCryptorRelease, _CCECCryptorSignHash, _CCECCryptorTwinDiversifyEntropySize, + _CCECCryptorTwinDiversifyKey, _CCECCryptorUnblind, _CCECCryptorUnwrapKey, + _CCECCryptorVerifyHash, _CCECCryptorWrapKey, _CCECGetKeySize, + _CCECGetKeyType, _CCHKDFExpand, _CCHKDFExtract, _CCHmac, _CCHmacClone, + _CCHmacCreate, _CCHmacDestroy, _CCHmacFinal, _CCHmacInit, + _CCHmacOneShot, _CCHmacOutputSize, _CCHmacOutputSizeFromRef, + _CCHmacUpdate, _CCKDFParametersCreateAnsiX963, _CCKDFParametersCreateCtrHmac, + _CCKDFParametersCreateCtrHmacFixed, _CCKDFParametersCreateHkdf, + _CCKDFParametersCreatePbkdf2, _CCKDFParametersDestroy, _CCKeyDerivationHMac, + _CCKeyDerivationPBKDF, _CCRSACryptorCreateFromData, _CCRSACryptorCreatePublicKeyFromPrivateKey, + _CCRSACryptorCrypt, _CCRSACryptorDecrypt, _CCRSACryptorEncrypt, + _CCRSACryptorExport, _CCRSACryptorGeneratePair, _CCRSACryptorGetPublicKeyFromPrivateKey, + _CCRSACryptorImport, _CCRSACryptorRecoverPrivateKey, _CCRSACryptorRelease, + _CCRSACryptorSign, _CCRSACryptorVerify, _CCRSAGetCRTComponents, + _CCRSAGetCRTComponentsSizes, _CCRSAGetKeyComponents, _CCRSAGetKeySize, + _CCRSAGetKeyType, _CCRandomCopyBytes, _CCRandomGenerateBytes, + _CCRandomUniform, _CCSymmetricKeyUnwrap, _CCSymmetricKeyWrap, + _CCSymmetricUnwrappedSize, _CCSymmetricWrappedSize, _CC_MD2, + _CC_MD2_Final, _CC_MD2_Init, _CC_MD2_Update, _CC_MD4, _CC_MD4_Final, + _CC_MD4_Init, _CC_MD4_Update, _CC_MD5, _CC_MD5_Final, _CC_MD5_Init, + _CC_MD5_Update, _CC_SHA1, _CC_SHA1_Final, _CC_SHA1_Init, _CC_SHA1_Update, + _CC_SHA224, _CC_SHA224_Final, _CC_SHA224_Init, _CC_SHA224_Update, + _CC_SHA256, _CC_SHA256_Final, _CC_SHA256_Init, _CC_SHA256_Update, + _CC_SHA384, _CC_SHA384_Final, _CC_SHA384_Init, _CC_SHA384_Update, + _CC_SHA512, _CC_SHA512_Final, _CC_SHA512_Init, _CC_SHA512_Update, + _CCrfc3394_iv, _CCrfc3394_ivLen, _CNCRC, _CNCRCDumpTable, + _CNCRCFinal, _CNCRCInit, _CNCRCRelease, _CNCRCUpdate, _CNCRCWeakTest, + _CNEncode, _CNEncoderBlocksize, _CNEncoderBlocksizeFromRef, + _CNEncoderCreate, _CNEncoderCreateCustom, _CNEncoderFinal, + _CNEncoderGetOutputLength, _CNEncoderGetOutputLengthFromEncoding, + _CNEncoderRelease, _CNEncoderUpdate, _MD5Final, _ccDRBGGetRngState, + _ccDevRandomGetRngState, _kCCRandomDefault, _kCCRandomDevRandom ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libcompiler_rt.dylib' +current-version: 103.1 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos ] + symbols: [ ___absvdi2, ___absvsi2, ___adddf3, ___adddf3vfp, ___addsf3, + ___addsf3vfp, ___addvdi3, ___addvsi3, ___ashldi3, ___ashrdi3, + ___bswapdi2, ___bswapsi2, ___clzdi2, ___clzsi2, ___cmpdi2, + ___ctzdi2, ___ctzsi2, ___divdc3, ___divdf3, ___divdf3vfp, + ___divdi3, ___divmodsi4, ___divsc3, ___divsf3, ___divsf3vfp, + ___divsi3, ___eqdf2, ___eqdf2vfp, ___eqsf2, ___eqsf2vfp, ___extendsfdf2, + ___extendsfdf2vfp, ___ffsdi2, ___fixdfdi, ___fixdfsi, ___fixdfsivfp, + ___fixsfdi, ___fixsfsi, ___fixsfsivfp, ___fixunsdfdi, ___fixunsdfsi, + ___fixunsdfsivfp, ___fixunssfdi, ___fixunssfsi, ___fixunssfsivfp, + ___floatdidf, ___floatdisf, ___floatsidf, ___floatsidfvfp, + ___floatsisf, ___floatsisfvfp, ___floatundidf, ___floatundisf, + ___floatunsidf, ___floatunsisf, ___floatunssidfvfp, ___floatunssisfvfp, + ___gedf2, ___gedf2vfp, ___gesf2, ___gesf2vfp, ___gtdf2, ___gtdf2vfp, + ___gtsf2, ___gtsf2vfp, ___ledf2, ___ledf2vfp, ___lesf2, ___lesf2vfp, + ___lshrdi3, ___ltdf2, ___ltdf2vfp, ___ltsf2, ___ltsf2vfp, + ___moddi3, ___modsi3, ___muldf3, ___muldf3vfp, ___muldi3, + ___mulodi4, ___mulosi4, ___mulsf3, ___mulsf3vfp, ___mulvdi3, + ___mulvsi3, ___nedf2, ___nedf2vfp, ___negdi2, ___negvdi2, + ___negvsi2, ___nesf2, ___nesf2vfp, ___paritydi2, ___paritysi2, + ___popcountdi2, ___popcountsi2, ___subdf3, ___subdf3vfp, ___subsf3, + ___subsf3vfp, ___subvdi3, ___subvsi3, ___truncdfsf2, ___truncdfsf2vfp, + ___ucmpdi2, ___udivdi3, ___udivmoddi4, ___udivmodsi4, ___udivsi3, + ___umoddi3, ___umodsi3, ___unorddf2, ___unorddf2vfp, ___unordsf2, + ___unordsf2vfp ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ ___atomic_compare_exchange, ___atomic_compare_exchange_1, + ___atomic_compare_exchange_2, ___atomic_compare_exchange_4, + ___atomic_compare_exchange_8, ___atomic_exchange, ___atomic_exchange_1, + ___atomic_exchange_2, ___atomic_exchange_4, ___atomic_exchange_8, + ___atomic_fetch_add_1, ___atomic_fetch_add_2, ___atomic_fetch_add_4, + ___atomic_fetch_add_8, ___atomic_fetch_and_1, ___atomic_fetch_and_2, + ___atomic_fetch_and_4, ___atomic_fetch_and_8, ___atomic_fetch_or_1, + ___atomic_fetch_or_2, ___atomic_fetch_or_4, ___atomic_fetch_or_8, + ___atomic_fetch_sub_1, ___atomic_fetch_sub_2, ___atomic_fetch_sub_4, + ___atomic_fetch_sub_8, ___atomic_fetch_xor_1, ___atomic_fetch_xor_2, + ___atomic_fetch_xor_4, ___atomic_fetch_xor_8, ___atomic_is_lock_free, + ___atomic_load, ___atomic_load_1, ___atomic_load_2, ___atomic_load_4, + ___atomic_load_8, ___atomic_store, ___atomic_store_1, ___atomic_store_2, + ___atomic_store_4, ___atomic_store_8, ___extendhfsf2, ___gcc_personality_v0, + ___gnu_f2h_ieee, ___gnu_h2f_ieee, ___muldc3, ___mulsc3, ___powidf2, + ___powisf2, ___truncdfhf2, ___truncsfhf2, _atomic_flag_clear, + _atomic_flag_clear_explicit, _atomic_flag_test_and_set, _atomic_flag_test_and_set_explicit, + _atomic_signal_fence, _atomic_thread_fence ] + - targets: [ arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ '$ld$hide$os3.0$___chkstk_darwin', '$ld$hide$os3.1$___chkstk_darwin', + '$ld$hide$os3.2$___chkstk_darwin', '$ld$hide$os4.0$___chkstk_darwin', + '$ld$hide$os4.1$___chkstk_darwin', '$ld$hide$os4.2$___chkstk_darwin', + '$ld$hide$os4.3$___chkstk_darwin', '$ld$hide$os5.0$___chkstk_darwin', + '$ld$hide$os5.1$___chkstk_darwin', ___chkstk_darwin, ___clzti2, + ___divti3, ___fixdfti, ___fixsfti, ___fixunsdfti, ___fixunssfti, + ___floattidf, ___floattisf, ___floatuntidf, ___floatuntisf, + ___modti3, ___udivmodti4, ___udivti3, ___umodti3 ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libcopyfile.dylib' +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _copyfile, _copyfile_state_alloc, _copyfile_state_free, _copyfile_state_get, + _copyfile_state_set, _fcopyfile, _xattr_flags_from_name, _xattr_intent_with_flags, + _xattr_name_with_flags, _xattr_name_without_flags, _xattr_preserve_for_intent ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libcorecrypto.dylib' +current-version: 1608.0.18 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +allowable-clients: + - targets: [ armv7k-watchos ] + clients: [ cc_fips_test, corecrypto_test ] +exports: + - targets: [ armv7k-watchos ] + symbols: [ _cc_muxp, _ccaes_ios_hardware_cbc_decrypt_mode, _ccaes_ios_hardware_cbc_encrypt_mode, + _ccaes_ios_hardware_ctr_crypt_mode, _ccaes_ios_hardware_enabled, + _ccaes_ios_mux_cbc_decrypt_mode, _ccaes_ios_mux_cbc_encrypt_mode, + _ccaes_ios_mux_ctr_crypt_mode, _ccdh_compute_key, _ccdh_init_safe_gp_from_bytes, + _ccn_n, _ccn_random_bits, _ccn_set, _ccn_shift_right, _ccn_sub1, + _ccn_zero_multi, _ccnistkdf_fb_hmac, _ccnistkdf_fb_hmac_fixed, + _ccsae_gen_kck_and_pmk, _ccsae_gen_password_value ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _CCEC_FAULT_CANARY, _CCRSA_PKCS1_FAULT_CANARY, _CCRSA_PSS_FAULT_CANARY, + _CCSS_PRIME_P192, _CCSS_PRIME_P224, _CCSS_PRIME_P256, _CCSS_PRIME_P384, + _CCSS_PRIME_P521, _cc_abort, _cc_atfork_child, _cc_atfork_parent, + _cc_atfork_prepare, _cc_clear, _cc_cmp_safe, _cc_impl_name, + _cc_try_abort, _cc_try_abort_if, _ccaes_arm_cbc_decrypt_mode, + _ccaes_arm_cbc_encrypt_mode, _ccaes_arm_cfb_decrypt_mode, + _ccaes_arm_cfb_encrypt_mode, _ccaes_arm_ecb_decrypt_mode, + _ccaes_arm_ecb_encrypt_mode, _ccaes_arm_ofb_crypt_mode, _ccaes_arm_xts_decrypt_mode, + _ccaes_arm_xts_encrypt_mode, _ccaes_cbc_decrypt_mode, _ccaes_cbc_encrypt_mode, + _ccaes_ccm_decrypt_mode, _ccaes_ccm_encrypt_mode, _ccaes_cfb8_decrypt_mode, + _ccaes_cfb8_encrypt_mode, _ccaes_cfb_decrypt_mode, _ccaes_cfb_encrypt_mode, + _ccaes_ctr_crypt_mode, _ccaes_ecb_decrypt_mode, _ccaes_ecb_encrypt_mode, + _ccaes_gcm_decrypt_mode, _ccaes_gcm_encrypt_mode, _ccaes_gladman_cbc_decrypt_mode, + _ccaes_gladman_cbc_encrypt_mode, _ccaes_ltc_ecb_decrypt_mode, + _ccaes_ltc_ecb_encrypt_mode, _ccaes_ofb_crypt_mode, _ccaes_siv_decrypt_mode, + _ccaes_siv_encrypt_mode, _ccaes_siv_hmac_sha256_decrypt_mode, + _ccaes_siv_hmac_sha256_encrypt_mode, _ccaes_unwind, _ccaes_xts_decrypt_mode, + _ccaes_xts_encrypt_mode, _ccansikdf_x963, _ccapsic_client_check_intersect_response, + _ccapsic_client_generate_match_response, _ccapsic_client_init, + _ccapsic_client_state_sizeof, _ccapsic_server_determine_intersection, + _ccapsic_server_encode_element, _ccapsic_server_init, _ccapsic_server_state_sizeof, + _ccbfv_bytes_to_coeffs, _ccbfv_ciphertext_apply_galois, _ccbfv_ciphertext_coeff_compose, + _ccbfv_ciphertext_coeff_dcrt_plaintext_mul, _ccbfv_ciphertext_coeff_decompose, + _ccbfv_ciphertext_coeff_decompose_nptexts, _ccbfv_ciphertext_coeff_plaintext_mul, + _ccbfv_ciphertext_eval_dcrt_plaintext_mul, _ccbfv_ciphertext_eval_plaintext_mul, + _ccbfv_ciphertext_fresh_npolys, _ccbfv_ciphertext_fwd_ntt, + _ccbfv_ciphertext_galois_elt_rotate_rows_left, _ccbfv_ciphertext_galois_elt_rotate_rows_right, + _ccbfv_ciphertext_galois_elt_swap_columns, _ccbfv_ciphertext_inv_ntt, + _ccbfv_ciphertext_plaintext_add, _ccbfv_ciphertext_sizeof, + _ccbfv_coeffs_to_bytes, _ccbfv_dcrt_plaintext_encode, _ccbfv_dcrt_plaintext_sizeof, + _ccbfv_decode_poly_uint64, _ccbfv_decode_simd_int64, _ccbfv_decode_simd_uint64, + _ccbfv_decrypt, _ccbfv_deserialize_ciphertext_coeff, _ccbfv_deserialize_ciphertext_eval, + _ccbfv_deserialize_seeded_ciphertext_coeff, _ccbfv_deserialize_seeded_ciphertext_eval, + _ccbfv_encode_poly_uint64, _ccbfv_encode_simd_int64, _ccbfv_encode_simd_uint64, + _ccbfv_encrypt_symmetric, _ccbfv_encryption_params_coefficient_moduli, + _ccbfv_encryption_params_coefficient_nmoduli, _ccbfv_encryption_params_plaintext_modulus, + _ccbfv_encryption_params_polynomial_degree, _ccbfv_galois_key_generate, + _ccbfv_galois_key_load, _ccbfv_galois_key_save, _ccbfv_galois_key_sizeof, + _ccbfv_param_ctx_ciphertext_ctx_nmoduli, _ccbfv_param_ctx_init, + _ccbfv_param_ctx_key_ctx_nmoduli, _ccbfv_param_ctx_key_ctx_poly_nbytes, + _ccbfv_param_ctx_plaintext_modulus, _ccbfv_param_ctx_plaintext_modulus_inverse, + _ccbfv_param_ctx_polynomial_degree, _ccbfv_param_ctx_sizeof, + _ccbfv_param_ctx_supports_simd_encoding, _ccbfv_plaintext_sizeof, + _ccbfv_relin_key_generate, _ccbfv_relin_key_load, _ccbfv_relin_key_save, + _ccbfv_relin_key_sizeof, _ccbfv_rng_seed_sizeof, _ccbfv_secret_key_generate, + _ccbfv_secret_key_generate_from_seed, _ccbfv_secret_key_sizeof, + _ccbfv_serialize_ciphertext_coeff, _ccbfv_serialize_ciphertext_coeff_nbytes, + _ccbfv_serialize_ciphertext_eval, _ccbfv_serialize_ciphertext_eval_nbytes, + _ccbfv_serialize_seeded_ciphertext_coeff, _ccbfv_serialize_seeded_ciphertext_coeff_nbytes, + _ccbfv_serialize_seeded_ciphertext_eval, _ccbfv_serialize_seeded_ciphertext_eval_nbytes, + _ccblowfish_cbc_decrypt_mode, _ccblowfish_cbc_encrypt_mode, + _ccblowfish_cfb8_decrypt_mode, _ccblowfish_cfb8_encrypt_mode, + _ccblowfish_cfb_decrypt_mode, _ccblowfish_cfb_encrypt_mode, + _ccblowfish_ctr_crypt_mode, _ccblowfish_ecb_decrypt_mode, + _ccblowfish_ecb_encrypt_mode, _ccblowfish_ofb_crypt_mode, + _cccast_cbc_decrypt_mode, _cccast_cbc_encrypt_mode, _cccast_cfb8_decrypt_mode, + _cccast_cfb8_encrypt_mode, _cccast_cfb_decrypt_mode, _cccast_cfb_encrypt_mode, + _cccast_ctr_crypt_mode, _cccast_ecb_decrypt_mode, _cccast_ecb_encrypt_mode, + _cccast_ofb_crypt_mode, _cccbc_block_size, _cccbc_clear_iv, + _cccbc_context_size, _cccbc_copy_iv, _cccbc_init, _cccbc_one_shot, + _cccbc_one_shot_explicit, _cccbc_set_iv, _cccbc_update, _ccccm_aad, + _ccccm_block_size, _ccccm_cbcmac, _ccccm_context_size, _ccccm_decrypt, + _ccccm_encrypt, _ccccm_finalize, _ccccm_finalize_and_generate_tag, + _ccccm_finalize_and_verify_tag, _ccccm_init, _ccccm_one_shot, + _ccccm_one_shot_decrypt, _ccccm_one_shot_encrypt, _ccccm_reset, + _ccccm_set_iv, _ccccm_update, _cccfb8_block_size, _cccfb8_context_size, + _cccfb8_init, _cccfb8_one_shot, _cccfb8_update, _cccfb_block_size, + _cccfb_context_size, _cccfb_init, _cccfb_one_shot, _cccfb_update, + _ccchacha20, _ccchacha20_final, _ccchacha20_init, _ccchacha20_reset, + _ccchacha20_setcounter, _ccchacha20_setnonce, _ccchacha20_update, + _ccchacha20poly1305_aad, _ccchacha20poly1305_decrypt, _ccchacha20poly1305_decrypt_oneshot, + _ccchacha20poly1305_encrypt, _ccchacha20poly1305_encrypt_oneshot, + _ccchacha20poly1305_finalize, _ccchacha20poly1305_incnonce, + _ccchacha20poly1305_info, _ccchacha20poly1305_init, _ccchacha20poly1305_reset, + _ccchacha20poly1305_setnonce, _ccchacha20poly1305_verify, + _ccckg_contributor_commit, _ccckg_contributor_finish, _ccckg_init, + _ccckg_owner_finish, _ccckg_owner_generate_share, _ccckg_sizeof_commitment, + _ccckg_sizeof_ctx, _ccckg_sizeof_opening, _ccckg_sizeof_share, + _cccmac_final_generate, _cccmac_final_verify, _cccmac_init, + _cccmac_one_shot_generate, _cccmac_one_shot_verify, _cccmac_update, + _ccctr_block_size, _ccctr_context_size, _ccctr_init, _ccctr_one_shot, + _ccctr_update, _cccurve25519, _cccurve25519_make_key_pair, + _cccurve25519_make_priv, _cccurve25519_make_pub, _cccurve25519_make_pub_with_rng, + _cccurve25519_with_rng, _cccurve448, _cccurve448_make_key_pair, + _cccurve448_make_priv, _cccurve448_make_pub, _ccder_blob_decode_bitstring, + _ccder_blob_decode_eckey, _ccder_blob_decode_len, _ccder_blob_decode_len_strict, + _ccder_blob_decode_oid, _ccder_blob_decode_range, _ccder_blob_decode_range_strict, + _ccder_blob_decode_seqii, _ccder_blob_decode_seqii_strict, + _ccder_blob_decode_sequence_tl, _ccder_blob_decode_sequence_tl_strict, + _ccder_blob_decode_tag, _ccder_blob_decode_tl, _ccder_blob_decode_tl_strict, + _ccder_blob_decode_uint, _ccder_blob_decode_uint64, _ccder_blob_decode_uint_n, + _ccder_blob_decode_uint_strict, _ccder_blob_encode_body, _ccder_blob_encode_body_tl, + _ccder_blob_encode_eckey, _ccder_blob_encode_implicit_integer, + _ccder_blob_encode_implicit_octet_string, _ccder_blob_encode_implicit_raw_octet_string, + _ccder_blob_encode_implicit_uint64, _ccder_blob_encode_integer, + _ccder_blob_encode_len, _ccder_blob_encode_octet_string, _ccder_blob_encode_oid, + _ccder_blob_encode_raw_octet_string, _ccder_blob_encode_tag, + _ccder_blob_encode_tl, _ccder_blob_encode_uint64, _ccder_blob_reserve, + _ccder_blob_reserve_tl, _ccder_decode_bitstring, _ccder_decode_constructed_tl, + _ccder_decode_constructed_tl_strict, _ccder_decode_dhparam_n, + _ccder_decode_dhparams, _ccder_decode_eckey, _ccder_decode_len, + _ccder_decode_len_strict, _ccder_decode_oid, _ccder_decode_rsa_priv, + _ccder_decode_rsa_priv_n, _ccder_decode_rsa_pub, _ccder_decode_rsa_pub_n, + _ccder_decode_rsa_pub_x509, _ccder_decode_rsa_pub_x509_n, + _ccder_decode_seqii, _ccder_decode_seqii_strict, _ccder_decode_sequence_tl, + _ccder_decode_sequence_tl_strict, _ccder_decode_tag, _ccder_decode_tl, + _ccder_decode_tl_strict, _ccder_decode_uint, _ccder_decode_uint64, + _ccder_decode_uint_n, _ccder_decode_uint_strict, _ccder_encode_body, + _ccder_encode_body_nocopy, _ccder_encode_constructed_tl, _ccder_encode_dhparams, + _ccder_encode_dhparams_size, _ccder_encode_eckey, _ccder_encode_eckey_size, + _ccder_encode_implicit_integer, _ccder_encode_implicit_octet_string, + _ccder_encode_implicit_raw_octet_string, _ccder_encode_implicit_uint64, + _ccder_encode_integer, _ccder_encode_len, _ccder_encode_octet_string, + _ccder_encode_oid, _ccder_encode_raw_octet_string, _ccder_encode_rsa_priv, + _ccder_encode_rsa_priv_size, _ccder_encode_rsa_pub, _ccder_encode_rsa_pub_size, + _ccder_encode_tag, _ccder_encode_tl, _ccder_encode_uint64, + _ccder_sizeof, _ccder_sizeof_eckey, _ccder_sizeof_implicit_integer, + _ccder_sizeof_implicit_octet_string, _ccder_sizeof_implicit_raw_octet_string, + _ccder_sizeof_implicit_raw_octet_string_overflow, _ccder_sizeof_implicit_uint64, + _ccder_sizeof_integer, _ccder_sizeof_len, _ccder_sizeof_octet_string, + _ccder_sizeof_oid, _ccder_sizeof_overflow, _ccder_sizeof_raw_octet_string, + _ccder_sizeof_tag, _ccder_sizeof_uint64, _ccdes3_cbc_decrypt_mode, + _ccdes3_cbc_encrypt_mode, _ccdes3_cfb8_decrypt_mode, _ccdes3_cfb8_encrypt_mode, + _ccdes3_cfb_decrypt_mode, _ccdes3_cfb_encrypt_mode, _ccdes3_ctr_crypt_mode, + _ccdes3_ecb_decrypt_mode, _ccdes3_ecb_encrypt_mode, _ccdes3_ltc_ecb_decrypt_mode, + _ccdes3_ltc_ecb_encrypt_mode, _ccdes3_ofb_crypt_mode, _ccdes_cbc_cksum, + _ccdes_cbc_decrypt_mode, _ccdes_cbc_encrypt_mode, _ccdes_cfb8_decrypt_mode, + _ccdes_cfb8_encrypt_mode, _ccdes_cfb_decrypt_mode, _ccdes_cfb_encrypt_mode, + _ccdes_ctr_crypt_mode, _ccdes_ecb_decrypt_mode, _ccdes_ecb_encrypt_mode, + _ccdes_key_is_weak, _ccdes_key_set_odd_parity, _ccdes_ofb_crypt_mode, + _ccdh_ccn_size, _ccdh_compute_shared_secret, _ccdh_ctx_init, + _ccdh_ctx_public, _ccdh_export_pub, _ccdh_export_pub_size, + _ccdh_generate_key, _ccdh_gp_apple768, _ccdh_gp_g, _ccdh_gp_l, + _ccdh_gp_n, _ccdh_gp_order, _ccdh_gp_order_bitlen, _ccdh_gp_prime, + _ccdh_gp_rfc2409group02, _ccdh_gp_rfc3526group05, _ccdh_gp_rfc3526group14, + _ccdh_gp_rfc3526group15, _ccdh_gp_rfc3526group16, _ccdh_gp_rfc3526group17, + _ccdh_gp_rfc3526group18, _ccdh_gp_rfc5114_MODP_1024_160, _ccdh_gp_rfc5114_MODP_2048_224, + _ccdh_gp_rfc5114_MODP_2048_256, _ccdh_gp_size, _ccdh_import_full, + _ccdh_import_priv, _ccdh_import_pub, _ccdh_init_gp_from_bytes, + _ccdigest, _ccdigest_init, _ccdigest_oid_lookup, _ccdigest_update, + _ccdrbg_context_size, _ccdrbg_df_bc_init, _ccdrbg_done, _ccdrbg_factory_nistctr, + _ccdrbg_factory_nisthmac, _ccdrbg_generate, _ccdrbg_init, + _ccdrbg_must_reseed, _ccdrbg_reseed, _ccec_affinify, _ccec_blind, + _ccec_compact_export, _ccec_compact_export_pub, _ccec_compact_generate_key, + _ccec_compact_generate_key_init, _ccec_compact_generate_key_step, + _ccec_compact_import_priv, _ccec_compact_import_priv_size, + _ccec_compact_import_pub, _ccec_compact_import_pub_size, _ccec_compact_transform_key, + _ccec_compressed_x962_export_pub, _ccec_compressed_x962_export_pub_size, + _ccec_compressed_x962_import_pub, _ccec_compute_key, _ccec_cp_192, + _ccec_cp_224, _ccec_cp_256, _ccec_cp_384, _ccec_cp_521, _ccec_curve_for_length_lookup, + _ccec_der_export_diversified_pub, _ccec_der_export_diversified_pub_size, + _ccec_der_export_priv, _ccec_der_export_priv_size, _ccec_der_import_diversified_pub, + _ccec_der_import_priv, _ccec_der_import_priv_keytype, _ccec_diversify_min_entropy_len, + _ccec_diversify_priv_twin, _ccec_diversify_pub, _ccec_diversify_pub_twin, + _ccec_export_affine_point, _ccec_export_affine_point_size, + _ccec_export_pub, _ccec_extract_rs, _ccec_full_add, _ccec_generate_blinding_keys, + _ccec_generate_key, _ccec_generate_key_deterministic, _ccec_generate_key_fips, + _ccec_generate_key_legacy, _ccec_generate_scalar_fips_retry, + _ccec_get_cp, _ccec_get_fullkey_components, _ccec_get_pubkey_components, + _ccec_import_affine_point, _ccec_import_pub, _ccec_is_compactable_pub, + _ccec_keysize_is_supported, _ccec_make_priv, _ccec_make_pub, + _ccec_mult_blinded, _ccec_pairwise_consistency_check, _ccec_print_full_key, + _ccec_print_public_key, _ccec_projectify, _ccec_raw_import_priv_only, + _ccec_raw_import_pub, _ccec_rfc6637_dh_curve_p256, _ccec_rfc6637_dh_curve_p521, + _ccec_rfc6637_unwrap_key, _ccec_rfc6637_unwrap_sha256_kek_aes128, + _ccec_rfc6637_unwrap_sha512_kek_aes256, _ccec_rfc6637_wrap_key, + _ccec_rfc6637_wrap_key_diversified, _ccec_rfc6637_wrap_key_size, + _ccec_rfc6637_wrap_sha256_kek_aes128, _ccec_rfc6637_wrap_sha512_kek_aes256, + _ccec_sign, _ccec_sign_composite, _ccec_sign_composite_msg, + _ccec_sign_msg, _ccec_signature_r_s_size, _ccec_unblind, _ccec_validate_pub, + _ccec_verify, _ccec_verify_composite, _ccec_verify_composite_digest, + _ccec_verify_composite_msg, _ccec_verify_digest, _ccec_verify_msg, + _ccec_x963_export, _ccec_x963_import_priv, _ccec_x963_import_priv_size, + _ccec_x963_import_pub, _ccec_x963_import_pub_size, _ccecb_block_size, + _ccecb_context_size, _ccecb_init, _ccecb_one_shot, _ccecb_one_shot_explicit, + _ccecb_update, _ccecdh_compute_shared_secret, _ccecdh_generate_key, + _ccecies_decrypt_gcm, _ccecies_decrypt_gcm_composite, _ccecies_decrypt_gcm_from_shared_secret, + _ccecies_decrypt_gcm_plaintext_size, _ccecies_decrypt_gcm_plaintext_size_cp, + _ccecies_decrypt_gcm_setup, _ccecies_encrypt_gcm, _ccecies_encrypt_gcm_ciphertext_size, + _ccecies_encrypt_gcm_composite, _ccecies_encrypt_gcm_from_shared_secret, + _ccecies_encrypt_gcm_setup, _ccecies_import_eph_pub, _ccecies_pub_key_size, + _ccecies_pub_key_size_cp, _cced25519_make_key_pair, _cced25519_make_pub, + _cced25519_make_pub_with_rng, _cced25519_sign, _cced25519_sign_with_rng, + _cced25519_verify, _cced448_make_key_pair, _cced448_make_pub, + _cced448_sign, _cced448_verify, _ccentropy_add_entropy, _ccentropy_digest_init, + _ccentropy_get_seed, _ccentropy_rng_init, _ccgcm_aad, _ccgcm_block_size, + _ccgcm_context_size, _ccgcm_finalize, _ccgcm_gmac, _ccgcm_inc_iv, + _ccgcm_init, _ccgcm_init_with_iv, _ccgcm_one_shot, _ccgcm_one_shot_legacy, + _ccgcm_reset, _ccgcm_set_iv, _ccgcm_set_iv_legacy, _ccgcm_update, + _cch2c, _cch2c_name, _cch2c_p256_sha256_sae_compat_info, _cch2c_p256_sha256_sswu_ro_info, + _cch2c_p384_sha384_sae_compat_info, _cch2c_p384_sha512_sswu_ro_info, + _cch2c_p521_sha512_sswu_ro_info, _cchkdf, _cchkdf_expand, + _cchkdf_extract, _cchmac, _cchmac_final, _cchmac_init, _cchmac_update, + _cchpke_initiator_encrypt, _cchpke_initiator_export, _cchpke_initiator_seal, + _cchpke_initiator_setup, _cchpke_kem_generate_key_pair, _cchpke_params_sizeof_aead_key, + _cchpke_params_sizeof_aead_nonce, _cchpke_params_sizeof_aead_tag, + _cchpke_params_sizeof_kdf_hash, _cchpke_params_sizeof_kem_enc, + _cchpke_params_sizeof_kem_pk, _cchpke_params_sizeof_kem_pk_marshalled, + _cchpke_params_sizeof_kem_shared_secret, _cchpke_params_sizeof_kem_sk, + _cchpke_params_x25519_AESGCM128_HKDF_SHA256, _cchpke_responder_decrypt, + _cchpke_responder_export, _cchpke_responder_open, _cchpke_responder_setup, + _cckem_decapsulate, _cckem_encapsulate, _cckem_encapsulated_key_nbytes_ctx, + _cckem_encapsulated_key_nbytes_info, _cckem_export_privkey, + _cckem_export_pubkey, _cckem_full_ctx_init, _cckem_generate_key, + _cckem_import_privkey, _cckem_import_pubkey, _cckem_kyber768, + _cckem_privkey_nbytes_ctx, _cckem_privkey_nbytes_info, _cckem_pub_ctx_init, + _cckem_pubkey_nbytes_ctx, _cckem_pubkey_nbytes_info, _cckem_public_ctx, + _cckem_shared_key_nbytes_ctx, _cckem_shared_key_nbytes_info, + _cckem_sizeof_full_ctx, _cckem_sizeof_pub_ctx, _cclr_aes_init, + _cclr_block_nbytes, _cclr_decrypt_block, _cclr_encrypt_block, + _ccmd2_ltc_di, _ccmd4_ltc_di, _ccmd5_di, _ccmd5_ltc_di, _ccmgf, + _ccmode_factory_cbc_decrypt, _ccmode_factory_cbc_encrypt, + _ccmode_factory_ccm_decrypt, _ccmode_factory_ccm_encrypt, + _ccmode_factory_cfb8_decrypt, _ccmode_factory_cfb8_encrypt, + _ccmode_factory_cfb_decrypt, _ccmode_factory_cfb_encrypt, + _ccmode_factory_ctr_crypt, _ccmode_factory_gcm_decrypt, _ccmode_factory_gcm_encrypt, + _ccmode_factory_ofb_crypt, _ccmode_factory_omac_decrypt, _ccmode_factory_omac_encrypt, + _ccmode_factory_siv_decrypt, _ccmode_factory_siv_encrypt, + _ccmode_factory_xts_decrypt, _ccmode_factory_xts_encrypt, + _ccn_add, _ccn_add1, _ccn_bitlen, _ccn_cmp, _ccn_cmpn, _ccn_lprint, + _ccn_print, _ccn_read_uint, _ccn_set_bit, _ccn_seti, _ccn_sub, + _ccn_swap, _ccn_write_int, _ccn_write_int_size, _ccn_write_uint, + _ccn_write_uint_padded, _ccn_write_uint_padded_ct, _ccn_write_uint_size, + _ccn_xor, _ccn_zero, _ccnistkdf_ctr_cmac, _ccnistkdf_ctr_cmac_fixed, + _ccnistkdf_ctr_hmac, _ccnistkdf_ctr_hmac_fixed, _ccofb_block_size, + _ccofb_context_size, _ccofb_init, _ccofb_one_shot, _ccofb_update, + _ccoid_equal, _ccoid_payload, _ccoid_size, _ccomac_block_size, + _ccomac_context_size, _ccomac_init, _ccomac_one_shot, _ccomac_update, + _ccpad_cts1_decrypt, _ccpad_cts1_encrypt, _ccpad_cts2_decrypt, + _ccpad_cts2_encrypt, _ccpad_cts3_decrypt, _ccpad_cts3_encrypt, + _ccpad_pkcs7_decode, _ccpad_pkcs7_decrypt, _ccpad_pkcs7_ecb_decrypt, + _ccpad_pkcs7_ecb_encrypt, _ccpad_pkcs7_encrypt, _ccpad_xts_decrypt, + _ccpad_xts_encrypt, _ccpbkdf2_hmac, _ccpoly1305, _ccpoly1305_final, + _ccpoly1305_init, _ccpoly1305_update, _ccrc2_cbc_decrypt_mode, + _ccrc2_cbc_encrypt_mode, _ccrc2_cfb8_decrypt_mode, _ccrc2_cfb8_encrypt_mode, + _ccrc2_cfb_decrypt_mode, _ccrc2_cfb_encrypt_mode, _ccrc2_ctr_crypt_mode, + _ccrc2_ecb_decrypt_mode, _ccrc2_ecb_encrypt_mode, _ccrc2_ofb_crypt_mode, + _ccrc4, _ccrc4_eay, _ccrmd160_ltc_di, _ccrng, _ccrng_drbg_done, + _ccrng_drbg_init, _ccrng_drbg_init_withdrbg, _ccrng_drbg_reseed, + _ccrng_ecfips_test_init, _ccrng_pbkdf2_prng_init, _ccrng_prng, + _ccrng_rsafips_test_init, _ccrng_rsafips_test_set_next, _ccrng_sequence_init, + _ccrng_system_done, _ccrng_system_init, _ccrng_test_done, + _ccrng_test_init, _ccrng_trng, _ccrng_uniform, _ccrsa_block_size, + _ccrsa_block_start, _ccrsa_ctx_private_zp, _ccrsa_ctx_public, + _ccrsa_decrypt_eme_pkcs1v15, _ccrsa_decrypt_oaep, _ccrsa_dump_full_key, + _ccrsa_dump_public_key, _ccrsa_eme_pkcs1v15_decode, _ccrsa_eme_pkcs1v15_encode, + _ccrsa_emsa_pkcs1v15_encode, _ccrsa_emsa_pkcs1v15_verify, + _ccrsa_emsa_pss_decode, _ccrsa_emsa_pss_encode, _ccrsa_encrypt_eme_pkcs1v15, + _ccrsa_encrypt_oaep, _ccrsa_export_priv, _ccrsa_export_priv_size, + _ccrsa_export_pub, _ccrsa_export_pub_size, _ccrsa_generate_fips186_key, + _ccrsa_generate_key, _ccrsa_generate_key_deterministic, _ccrsa_get_fullkey_components, + _ccrsa_get_pubkey_components, _ccrsa_import_priv, _ccrsa_import_priv_n, + _ccrsa_import_pub, _ccrsa_import_pub_n, _ccrsa_init_pub, _ccrsa_make_priv, + _ccrsa_make_pub, _ccrsa_n_from_size, _ccrsa_oaep_decode, _ccrsa_oaep_decode_parameter, + _ccrsa_oaep_encode, _ccrsa_oaep_encode_parameter, _ccrsa_priv_crypt, + _ccrsa_pub_crypt, _ccrsa_pubkeylength, _ccrsa_recover_priv, + _ccrsa_sign_pkcs1v15, _ccrsa_sign_pkcs1v15_msg, _ccrsa_sign_pss, + _ccrsa_sign_pss_msg, _ccrsa_sizeof_n_from_size, _ccrsa_verify_pkcs1v15, + _ccrsa_verify_pkcs1v15_allowshortsigs, _ccrsa_verify_pkcs1v15_digest, + _ccrsa_verify_pkcs1v15_msg, _ccrsa_verify_pss_digest, _ccrsa_verify_pss_msg, + _ccrsabssa_blind_message, _ccrsabssa_ciphersuite_rsa2048_sha384, + _ccrsabssa_ciphersuite_rsa3072_sha384, _ccrsabssa_ciphersuite_rsa4096_sha384, + _ccrsabssa_sign_blinded_message, _ccrsabssa_unblind_signature, + _ccsae_generate_commitment, _ccsae_generate_commitment_finalize, + _ccsae_generate_commitment_init, _ccsae_generate_commitment_partial, + _ccsae_generate_confirmation, _ccsae_generate_h2c_commit, + _ccsae_generate_h2c_commit_finalize, _ccsae_generate_h2c_commit_init, + _ccsae_generate_h2c_pt, _ccsae_get_keys, _ccsae_init, _ccsae_init_p256_sha256, + _ccsae_init_p384_sha384, _ccsae_lexographic_order_key, _ccsae_sizeof_commitment, + _ccsae_sizeof_confirmation, _ccsae_sizeof_ctx, _ccsae_sizeof_kck, + _ccsae_sizeof_kck_h2c, _ccsae_sizeof_pt, _ccsae_verify_commitment, + _ccsae_verify_confirmation, _ccscrypt, _ccscrypt_storage_size, + _ccsha1_di, _ccsha1_eay_di, _ccsha1_ltc_di, _ccsha1_vng_arm_di, + _ccsha224_di, _ccsha224_ltc_di, _ccsha224_vng_arm_di, _ccsha256_di, + _ccsha256_ltc_di, _ccsha256_vng_arm_di, _ccsha384_di, _ccsha384_ltc_di, + _ccsha384_vng_arm_di, _ccsha3_224_di, _ccsha3_256_di, _ccsha3_384_di, + _ccsha3_512_di, _ccsha512_256_di, _ccsha512_256_ltc_di, _ccsha512_256_vng_arm_di, + _ccsha512_di, _ccsha512_ltc_di, _ccsha512_vng_arm_di, _ccsigma_clear, + _ccsigma_clear_key, _ccsigma_compute_mac, _ccsigma_derive_session_keys, + _ccsigma_export_key_share, _ccsigma_import_peer_key_share, + _ccsigma_import_peer_verification_key, _ccsigma_import_signing_key, + _ccsigma_init, _ccsigma_kex_init_ctx, _ccsigma_kex_resp_ctx, + _ccsigma_mfi_info, _ccsigma_mfi_nvm_info, _ccsigma_open, _ccsigma_peer_role, + _ccsigma_seal, _ccsigma_set_signing_function, _ccsigma_sign, + _ccsigma_verify, _ccsiv_aad, _ccsiv_block_size, _ccsiv_ciphertext_size, + _ccsiv_context_size, _ccsiv_crypt, _ccsiv_hmac_aad, _ccsiv_hmac_block_size, + _ccsiv_hmac_ciphertext_size, _ccsiv_hmac_context_size, _ccsiv_hmac_crypt, + _ccsiv_hmac_init, _ccsiv_hmac_one_shot, _ccsiv_hmac_plaintext_size, + _ccsiv_hmac_reset, _ccsiv_hmac_set_nonce, _ccsiv_init, _ccsiv_one_shot, + _ccsiv_plaintext_size, _ccsiv_reset, _ccsiv_set_nonce, _ccspake_cp_256, + _ccspake_cp_256_rfc, _ccspake_cp_384, _ccspake_cp_384_rfc, + _ccspake_cp_521, _ccspake_cp_521_rfc, _ccspake_generate_L, + _ccspake_kex_generate, _ccspake_kex_process, _ccspake_mac_compute, + _ccspake_mac_hkdf_cmac_aes128_sha256, _ccspake_mac_hkdf_hmac_sha256, + _ccspake_mac_hkdf_hmac_sha512, _ccspake_mac_verify_and_get_session_key, + _ccspake_prover_init, _ccspake_prover_initialize, _ccspake_reduce_w, + _ccspake_sizeof_ctx, _ccspake_sizeof_point, _ccspake_sizeof_w, + _ccspake_verifier_init, _ccspake_verifier_initialize, _ccsrp_client_process_challenge, + _ccsrp_client_set_noUsernameInX, _ccsrp_client_start_authentication, + _ccsrp_client_verify_session, _ccsrp_ctx_init, _ccsrp_ctx_init_option, + _ccsrp_ctx_init_with_size_option, _ccsrp_exchange_size, _ccsrp_generate_salt_and_verification, + _ccsrp_generate_verifier, _ccsrp_get_premaster_secret, _ccsrp_get_session_key, + _ccsrp_get_session_key_length, _ccsrp_gp_rfc5054_1024, _ccsrp_gp_rfc5054_2048, + _ccsrp_gp_rfc5054_3072, _ccsrp_gp_rfc5054_4096, _ccsrp_gp_rfc5054_8192, + _ccsrp_is_authenticated, _ccsrp_server_compute_session, _ccsrp_server_generate_public_key, + _ccsrp_server_start_authentication, _ccsrp_server_verify_session, + _ccsrp_session_size, _ccsrp_sizeof_M_HAMK, _ccsrp_sizeof_public_key, + _ccsrp_sizeof_session_key, _ccsrp_sizeof_verifier, _ccss_shamir_parameters_init, + _ccss_shamir_parameters_maximum_secret_length, _ccss_shamir_share_bag_add_share, + _ccss_shamir_share_bag_init, _ccss_shamir_share_bag_recover_secret, + _ccss_shamir_share_export, _ccss_shamir_share_generator_deserialize, + _ccss_shamir_share_generator_generate_share, _ccss_shamir_share_generator_init, + _ccss_shamir_share_generator_init_with_secrets_less_than_prime, + _ccss_shamir_share_generator_serialize, _ccss_shamir_share_import, + _ccss_shamir_share_init, _ccss_shamir_share_sizeof_y, _ccss_sizeof_generator, + _ccss_sizeof_parameters, _ccss_sizeof_shamir_share_generator_serialization, + _ccss_sizeof_share, _ccss_sizeof_share_bag, _ccvrf_derive_public_key, + _ccvrf_factory_irtfdraft03, _ccvrf_factory_irtfdraft03_default, + _ccvrf_proof_to_hash, _ccvrf_prove, _ccvrf_sizeof_hash, _ccvrf_sizeof_proof, + _ccvrf_sizeof_public_key, _ccvrf_sizeof_secret_key, _ccvrf_verify, + _ccwrap_auth_decrypt, _ccwrap_auth_decrypt_withiv, _ccwrap_auth_encrypt, + _ccwrap_auth_encrypt_withiv, _ccwrap_unwrapped_size, _ccwrap_wrapped_size, + _ccxts_block_size, _ccxts_context_size, _ccxts_init, _ccxts_one_shot, + _ccxts_set_tweak, _ccxts_update, _ccz_add, _ccz_addi, _ccz_bit, + _ccz_bitlen, _ccz_capacity, _ccz_cmp, _ccz_cmpi, _ccz_divmod, + _ccz_expmod, _ccz_free, _ccz_init, _ccz_is_negative, _ccz_is_one, + _ccz_is_prime, _ccz_is_zero, _ccz_lsl, _ccz_lsr, _ccz_mod, + _ccz_mul, _ccz_muli, _ccz_mulmod, _ccz_n, _ccz_neg, _ccz_random_bits, + _ccz_read_radix, _ccz_read_uint, _ccz_set, _ccz_set_bit, _ccz_set_capacity, + _ccz_set_n, _ccz_set_sign, _ccz_seti, _ccz_sign, _ccz_size, + _ccz_sub, _ccz_subi, _ccz_trailing_zeros, _ccz_write_int, + _ccz_write_int_size, _ccz_write_radix, _ccz_write_radix_size, + _ccz_write_uint, _ccz_write_uint_size, _ccz_zero, _cczp_add, + _cczp_bitlen, _cczp_inv, _cczp_mod, _cczp_mul, _cczp_n, _cczp_prime, + _cczp_sub, _csss_shamir_share_bag_can_recover_secret, _fipspost_post, + _fipspost_trace_vtable, _map_to_curve_sswu ] + - targets: [ arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _ccsha256_vng_arm64neon_di ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libdispatch.dylib' +current-version: 1462.0.4 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ '$ld$hide$os3.0$_dispatch_assert_queue', '$ld$hide$os3.0$_dispatch_assert_queue_not', + '$ld$hide$os3.0$_dispatch_queue_create_with_target', __dispatch_begin_NSAutoReleasePool, + __dispatch_bug, __dispatch_data_destructor_free, __dispatch_data_destructor_munmap, + __dispatch_data_destructor_none, __dispatch_data_destructor_vm_deallocate, + __dispatch_data_empty, __dispatch_data_format_type_base32, + __dispatch_data_format_type_base32hex, __dispatch_data_format_type_base64, + __dispatch_data_format_type_none, __dispatch_data_format_type_utf16be, + __dispatch_data_format_type_utf16le, __dispatch_data_format_type_utf8, + __dispatch_data_format_type_utf_any, __dispatch_end_NSAutoReleasePool, + __dispatch_get_main_queue_handle_4CF, __dispatch_get_main_queue_port_4CF, + __dispatch_iocntl, __dispatch_is_fork_of_multithreaded_parent, + __dispatch_is_multithreaded, __dispatch_log, __dispatch_mach_hooks_install_default, + __dispatch_main_q, __dispatch_main_queue_callback_4CF, __dispatch_poll_for_events_4launchd, + __dispatch_prohibit_transition_to_multithreaded, __dispatch_pthread_root_queue_create_with_observer_hooks_4IOHID, + __dispatch_queue_attr_concurrent, __dispatch_queue_is_exclusively_owned_by_current_thread_4IOHID, + __dispatch_runloop_root_queue_create_4CF, __dispatch_runloop_root_queue_get_port_4CF, + __dispatch_runloop_root_queue_perform_4CF, __dispatch_runloop_root_queue_wakeup_4CF, + __dispatch_source_set_runloop_timer_4CF, __dispatch_source_type_data_add, + __dispatch_source_type_data_or, __dispatch_source_type_data_replace, + __dispatch_source_type_interval, __dispatch_source_type_mach_recv, + __dispatch_source_type_mach_send, __dispatch_source_type_memorypressure, + __dispatch_source_type_memorystatus, __dispatch_source_type_nw_channel, + __dispatch_source_type_proc, __dispatch_source_type_read, + __dispatch_source_type_signal, __dispatch_source_type_sock, + __dispatch_source_type_timer, __dispatch_source_type_vfs, + __dispatch_source_type_vm, __dispatch_source_type_vnode, __dispatch_source_type_write, + __dispatch_source_will_reenable_kevent_4NW, __dispatch_wait_for_enqueuer, + __dispatch_workloop_set_observer_hooks_4IOHID, __dispatch_workloop_should_yield_4NW, + __firehose_spi_version, __os_object_alloc, __os_object_alloc_realized, + __os_object_dealloc, __os_object_release, __os_object_release_internal, + __os_object_release_internal_n, __os_object_release_without_xref_dispose, + __os_object_retain, __os_object_retain_internal, __os_object_retain_internal_n, + __os_object_retain_with_resurrect, _dispatch_activate, _dispatch_after, + _dispatch_after_f, _dispatch_allocator_layout, _dispatch_apply, + _dispatch_apply_attr_destroy, _dispatch_apply_attr_init, _dispatch_apply_attr_query, + _dispatch_apply_attr_set_parallelism, _dispatch_apply_f, _dispatch_apply_with_attr, + _dispatch_apply_with_attr_f, _dispatch_assert_queue, '_dispatch_assert_queue$V2', + _dispatch_assert_queue_barrier, _dispatch_assert_queue_not, + '_dispatch_assert_queue_not$V2', _dispatch_async, _dispatch_async_and_wait, + _dispatch_async_and_wait_f, _dispatch_async_enforce_qos_class_f, + _dispatch_async_f, _dispatch_async_swift_job, _dispatch_atfork_child, + _dispatch_atfork_parent, _dispatch_atfork_prepare, _dispatch_barrier_async, + _dispatch_barrier_async_and_wait, _dispatch_barrier_async_and_wait_f, + _dispatch_barrier_async_f, _dispatch_barrier_sync, _dispatch_barrier_sync_f, + _dispatch_benchmark, _dispatch_benchmark_f, _dispatch_block_cancel, + _dispatch_block_create, _dispatch_block_create_with_qos_class, + _dispatch_block_create_with_voucher, _dispatch_block_create_with_voucher_and_qos_class, + _dispatch_block_notify, _dispatch_block_perform, _dispatch_block_testcancel, + _dispatch_block_wait, _dispatch_channel_async, _dispatch_channel_async_f, + _dispatch_channel_cancel, _dispatch_channel_create, _dispatch_channel_drain, + _dispatch_channel_drain_f, _dispatch_channel_enqueue, _dispatch_channel_foreach_work_item_peek, + _dispatch_channel_foreach_work_item_peek_f, _dispatch_channel_testcancel, + _dispatch_channel_wakeup, _dispatch_data_apply, _dispatch_data_apply_f, + _dispatch_data_copy_region, _dispatch_data_create, _dispatch_data_create_alloc, + _dispatch_data_create_concat, _dispatch_data_create_f, _dispatch_data_create_map, + _dispatch_data_create_subrange, _dispatch_data_create_with_transform, + _dispatch_data_get_flattened_bytes_4libxpc, _dispatch_data_get_size, + _dispatch_data_make_memory_entry, _dispatch_debug, _dispatch_debugv, + _dispatch_get_context, _dispatch_get_current_queue, _dispatch_get_global_queue, + _dispatch_get_specific, _dispatch_group_async, _dispatch_group_async_f, + _dispatch_group_create, _dispatch_group_enter, _dispatch_group_leave, + _dispatch_group_notify, _dispatch_group_notify_f, _dispatch_group_wait, + _dispatch_io_barrier, _dispatch_io_barrier_f, _dispatch_io_close, + _dispatch_io_create, _dispatch_io_create_f, _dispatch_io_create_with_io, + _dispatch_io_create_with_io_f, _dispatch_io_create_with_path, + _dispatch_io_create_with_path_f, _dispatch_io_get_descriptor, + _dispatch_io_read, _dispatch_io_read_f, _dispatch_io_set_high_water, + _dispatch_io_set_interval, _dispatch_io_set_low_water, _dispatch_io_write, + _dispatch_io_write_f, _dispatch_lock_override_end, _dispatch_lock_override_start_with_debounce, + _dispatch_mach_can_handoff_4libxpc, _dispatch_mach_cancel, + _dispatch_mach_connect, _dispatch_mach_create, _dispatch_mach_create_4libxpc, + _dispatch_mach_create_f, _dispatch_mach_get_checkin_port, + _dispatch_mach_handoff_reply, _dispatch_mach_handoff_reply_f, + _dispatch_mach_hooks_install_4libxpc, _dispatch_mach_mig_demux, + _dispatch_mach_mig_demux_get_context, _dispatch_mach_msg_create, + _dispatch_mach_msg_get_context, _dispatch_mach_msg_get_filter_policy_id, + _dispatch_mach_msg_get_msg, _dispatch_mach_notify_no_senders, + _dispatch_mach_receive_barrier, _dispatch_mach_receive_barrier_f, + _dispatch_mach_reconnect, _dispatch_mach_request_no_senders, + _dispatch_mach_send, _dispatch_mach_send_and_wait_for_reply, + _dispatch_mach_send_barrier, _dispatch_mach_send_barrier_f, + _dispatch_mach_send_with_result, _dispatch_mach_send_with_result_and_async_reply_4libxpc, + _dispatch_mach_send_with_result_and_wait_for_reply, _dispatch_mach_set_flags, + _dispatch_main, _dispatch_mig_server, _dispatch_once, _dispatch_once_f, + _dispatch_pthread_root_queue_copy_current, _dispatch_pthread_root_queue_create, + _dispatch_queue_attr_make_initially_inactive, _dispatch_queue_attr_make_with_autorelease_frequency, + _dispatch_queue_attr_make_with_overcommit, _dispatch_queue_attr_make_with_qos_class, + _dispatch_queue_create, _dispatch_queue_create_with_accounting_override_voucher, + _dispatch_queue_create_with_target, '_dispatch_queue_create_with_target$V2', + _dispatch_queue_get_label, _dispatch_queue_get_qos_class, + _dispatch_queue_get_specific, _dispatch_queue_offsets, _dispatch_queue_set_label_nocopy, + _dispatch_queue_set_specific, _dispatch_queue_set_width, _dispatch_read, + _dispatch_read_f, _dispatch_release, _dispatch_resume, _dispatch_retain, + _dispatch_semaphore_create, _dispatch_semaphore_signal, _dispatch_semaphore_wait, + _dispatch_set_context, _dispatch_set_finalizer_f, _dispatch_set_qos_class, + _dispatch_set_qos_class_fallback, _dispatch_set_qos_class_floor, + _dispatch_set_target_queue, _dispatch_source_cancel, _dispatch_source_cancel_and_wait, + _dispatch_source_create, _dispatch_source_get_data, _dispatch_source_get_extended_data, + _dispatch_source_get_handle, _dispatch_source_get_mask, _dispatch_source_merge_data, + _dispatch_source_set_cancel_handler, _dispatch_source_set_cancel_handler_f, + _dispatch_source_set_event_handler, _dispatch_source_set_event_handler_f, + _dispatch_source_set_mandatory_cancel_handler, _dispatch_source_set_mandatory_cancel_handler_f, + _dispatch_source_set_registration_handler, _dispatch_source_set_registration_handler_f, + _dispatch_source_set_timer, _dispatch_source_testcancel, _dispatch_suspend, + _dispatch_swift_job_should_yield, _dispatch_sync, _dispatch_sync_f, + _dispatch_thread_get_current_override_qos_floor, _dispatch_thread_override_self, + _dispatch_time, _dispatch_time_from_nsec, _dispatch_time_to_nsec, + _dispatch_time_to_nsecs, _dispatch_tsd_indexes, _dispatch_walltime, + _dispatch_workloop_copy_current, _dispatch_workloop_create, + _dispatch_workloop_create_inactive, _dispatch_workloop_is_current, + _dispatch_workloop_set_autorelease_frequency, _dispatch_workloop_set_cpupercent, + _dispatch_workloop_set_os_workgroup, _dispatch_workloop_set_qos_class, + _dispatch_workloop_set_qos_class_floor, _dispatch_workloop_set_scheduler_priority, + _dispatch_write, _dispatch_write_f, _libdispatch_init, _mach_voucher_persona_for_originator, + _mach_voucher_persona_self, _os_eventlink_activate, _os_eventlink_associate, + _os_eventlink_cancel, _os_eventlink_create, _os_eventlink_create_remote_with_eventlink, + _os_eventlink_create_with_port, _os_eventlink_disassociate, + _os_eventlink_extract_remote_port, _os_eventlink_signal, _os_eventlink_signal_and_wait, + _os_eventlink_signal_and_wait_until, _os_eventlink_wait, _os_eventlink_wait_until, + _os_release, _os_retain, _os_workgroup_attr_set_flags, _os_workgroup_attr_set_interval_type, + _os_workgroup_attr_set_telemetry_flavor, _os_workgroup_cancel, + _os_workgroup_copy_port, _os_workgroup_create, _os_workgroup_create_with_port, + _os_workgroup_create_with_workgroup, _os_workgroup_create_with_workload_id, + _os_workgroup_create_with_workload_id_and_port, _os_workgroup_create_with_workload_id_and_workgroup, + _os_workgroup_get_working_arena, _os_workgroup_interval_copy_current_4AudioToolbox, + _os_workgroup_interval_create, _os_workgroup_interval_create_with_workload_id, + _os_workgroup_interval_data_set_flags, _os_workgroup_interval_data_set_telemetry, + _os_workgroup_interval_finish, _os_workgroup_interval_start, + _os_workgroup_interval_update, _os_workgroup_join, _os_workgroup_join_self, + _os_workgroup_leave, _os_workgroup_leave_self, _os_workgroup_max_parallel_threads, + _os_workgroup_parallel_create, _os_workgroup_set_working_arena, + _os_workgroup_testcancel, _voucher_activity_create_with_data, + _voucher_activity_create_with_location, _voucher_activity_flush, + _voucher_activity_get_logging_preferences, _voucher_activity_get_metadata_buffer, + _voucher_activity_id_allocate, _voucher_activity_initialize_4libtrace, + _voucher_activity_should_send_strings, _voucher_activity_trace, + _voucher_activity_trace_v, _voucher_activity_trace_v_2, _voucher_adopt, + _voucher_copy, _voucher_copy_with_persona_mach_voucher, _voucher_copy_without_importance, + _voucher_create_with_mach_msg, _voucher_decrement_importance_count4CF, + _voucher_get_activity_id, _voucher_get_activity_id_and_creator, + _voucher_get_current_persona, _voucher_get_current_persona_originator_info, + _voucher_get_current_persona_proximate_info, _voucher_kvoucher_debug, + _voucher_process_can_use_arbitrary_personas, _voucher_release, + _voucher_replace_default_voucher, _voucher_retain ] + objc-classes: [ OS_dispatch_channel, OS_dispatch_data, OS_dispatch_disk, OS_dispatch_group, + OS_dispatch_io, OS_dispatch_mach, OS_dispatch_mach_msg, OS_dispatch_object, + OS_dispatch_operation, OS_dispatch_queue, OS_dispatch_queue_attr, + OS_dispatch_queue_concurrent, OS_dispatch_queue_global, OS_dispatch_queue_main, + OS_dispatch_queue_serial, OS_dispatch_queue_serial_executor, + OS_dispatch_semaphore, OS_dispatch_source, OS_dispatch_workloop, + OS_object, OS_os_eventlink, OS_os_workgroup, OS_os_workgroup_interval, + OS_os_workgroup_parallel, OS_voucher ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libdyld.dylib' +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos ] + symbols: [ _dyld_shared_cache_create, _dyld_shared_cache_dispose ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _NSVersionOfLinkTimeLibrary, _NSVersionOfRunTimeLibrary, _NXArgc, + _NXArgv, __NSGetExecutablePath, ___progname, __dyld_atfork_parent, + __dyld_atfork_prepare, __dyld_dlopen_atfork_child, __dyld_dlopen_atfork_parent, + __dyld_dlopen_atfork_prepare, __dyld_find_foreign_type_protocol_conformance, + __dyld_find_foreign_type_protocol_conformance_on_disk, __dyld_find_protocol_conformance, + __dyld_find_protocol_conformance_on_disk, __dyld_find_unwind_sections, + __dyld_for_each_objc_class, __dyld_for_each_objc_protocol, + __dyld_for_objc_header_opt_ro, __dyld_for_objc_header_opt_rw, + __dyld_fork_child, __dyld_get_dlopen_image_header, __dyld_get_image_header, + __dyld_get_image_name, __dyld_get_image_slide, __dyld_get_image_uuid, + __dyld_get_image_vmaddr_slide, __dyld_get_objc_selector, __dyld_get_prog_image_header, + __dyld_get_shared_cache_range, __dyld_get_shared_cache_uuid, + __dyld_has_fix_for_radar, __dyld_has_preoptimized_swift_protocol_conformances, + __dyld_image_count, __dyld_images_for_addresses, __dyld_initializer, + __dyld_is_memory_immutable, __dyld_is_objc_constant, __dyld_is_preoptimized_objc_image_loaded, + __dyld_launch_mode, __dyld_lookup_section_info, __dyld_missing_symbol_abort, + __dyld_objc_class_count, __dyld_objc_notify_register, __dyld_objc_register_callbacks, + __dyld_objc_uses_large_shared_cache, __dyld_process_info_create, + __dyld_process_info_for_each_image, __dyld_process_info_for_each_segment, + __dyld_process_info_get_aot_cache, __dyld_process_info_get_cache, + __dyld_process_info_get_platform, __dyld_process_info_get_state, + __dyld_process_info_notify, __dyld_process_info_notify_main, + __dyld_process_info_notify_release, __dyld_process_info_notify_retain, + __dyld_process_info_release, __dyld_process_info_retain, __dyld_pseudodylib_deregister, + __dyld_pseudodylib_deregister_callbacks, __dyld_pseudodylib_register, + __dyld_pseudodylib_register_callbacks, __dyld_register_driverkit_main, + __dyld_register_for_bulk_image_loads, __dyld_register_for_image_loads, + __dyld_register_func_for_add_image, __dyld_register_func_for_remove_image, + __dyld_shared_cache_contains_path, __dyld_shared_cache_is_locally_built, + __dyld_shared_cache_optimized, __dyld_shared_cache_real_path, + __dyld_swift_optimizations_version, __dyld_visit_objc_classes, + __tlv_atexit, __tlv_bootstrap, __tlv_exit, _dladdr, _dlclose, + _dlerror, _dlopen, _dlopen_audited, _dlopen_from, _dlopen_preflight, + _dlsym, _dyldVersionNumber, _dyldVersionString, _dyld_dynamic_interpose, + _dyld_for_each_installed_shared_cache, _dyld_for_each_installed_shared_cache_with_system_path, + _dyld_get_active_platform, _dyld_get_base_platform, _dyld_get_image_versions, + _dyld_get_min_os_version, _dyld_get_program_min_os_version, + _dyld_get_program_min_watch_os_version, _dyld_get_program_sdk_version, + _dyld_get_program_sdk_watch_os_version, _dyld_get_sdk_version, + _dyld_has_inserted_or_interposing_libraries, _dyld_image_content_for_section, + _dyld_image_content_for_segment, _dyld_image_copy_uuid, _dyld_image_for_each_section_info, + _dyld_image_for_each_segment_info, _dyld_image_get_file_path, + _dyld_image_get_installname, _dyld_image_header_containing_address, + _dyld_image_local_nlist_content_4Symbolication, _dyld_image_path_containing_address, + _dyld_is_simulator_platform, _dyld_minos_at_least, _dyld_need_closure, + _dyld_process_create_for_current_task, _dyld_process_create_for_task, + _dyld_process_dispose, _dyld_process_has_objc_patches, _dyld_process_is_restricted, + _dyld_process_register_for_event_notification, _dyld_process_register_for_image_notifications, + _dyld_process_snapshot_create_for_process, _dyld_process_snapshot_create_from_data, + _dyld_process_snapshot_dispose, _dyld_process_snapshot_for_each_image, + _dyld_process_snapshot_get_shared_cache, _dyld_process_unregister_for_notification, + _dyld_program_minos_at_least, _dyld_program_sdk_at_least, + _dyld_sdk_at_least, _dyld_shared_cache_copy_uuid, _dyld_shared_cache_file_path, + _dyld_shared_cache_find_iterate_text, _dyld_shared_cache_for_each_file, + _dyld_shared_cache_for_each_image, _dyld_shared_cache_for_file, + _dyld_shared_cache_get_base_address, _dyld_shared_cache_get_mapped_size, + _dyld_shared_cache_is_mapped_private, _dyld_shared_cache_iterate_text, + _dyld_shared_cache_pin_mapping, _dyld_shared_cache_some_image_overridden, + _dyld_shared_cache_unpin_mapping, _environ, _macho_arch_name_for_cpu_type, + _macho_arch_name_for_mach_header, _macho_best_slice, _macho_best_slice_in_fd, + _macho_cpu_type_for_arch_name, _macho_dylib_install_name, + _macho_for_each_slice, _macho_for_each_slice_in_fd, dyld_stub_binder ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libmacho.dylib' +current-version: 1009 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _NXCombineCpuSubtypes, _NXFindBestFatArch, _NXFindBestFatArch_64, + _NXFreeArchInfo, _NXGetAllArchInfos, _NXGetArchInfoFromCpuType, + _NXGetArchInfoFromName, _NXGetLocalArchInfo, _get_edata, _get_end, + _get_etext, _getsectbyname, _getsectbynamefromheader, _getsectbynamefromheader_64, + _getsectbynamefromheaderwithswap, _getsectbynamefromheaderwithswap_64, + _getsectdata, _getsectdatafromFramework, _getsectdatafromheader, + _getsectdatafromheader_64, _getsectiondata, _getsegbyname, + _getsegmentdata, _slot_name, _swap_build_tool_version, _swap_build_version_command, + _swap_dyld_info_command, _swap_dylib_command, _swap_dylib_module, + _swap_dylib_module_64, _swap_dylib_reference, _swap_dylib_table_of_contents, + _swap_dylinker_command, _swap_dysymtab_command, _swap_encryption_command, + _swap_encryption_command_64, _swap_entry_point_command, _swap_fat_arch, + _swap_fat_arch_64, _swap_fat_header, _swap_fileset_entry_command, + _swap_fvmfile_command, _swap_fvmlib_command, _swap_hppa_fp_thread_state, + _swap_hppa_frame_thread_state, _swap_hppa_integer_thread_state, + _swap_i386_exception_state, _swap_i386_float_state, _swap_i386_thread_state, + _swap_i860_thread_state_regs, _swap_ident_command, _swap_indirect_symbols, + _swap_linkedit_data_command, _swap_linker_option_command, + _swap_load_command, _swap_m68k_thread_state_68882, _swap_m68k_thread_state_regs, + _swap_m68k_thread_state_user_reg, _swap_m88110_thread_state_impl_t, + _swap_m88k_thread_state_grf_t, _swap_m88k_thread_state_user_t, + _swap_m88k_thread_state_xrf_t, _swap_mach_header, _swap_mach_header_64, + _swap_nlist, _swap_nlist_64, _swap_note_command, _swap_ppc_exception_state_t, + _swap_ppc_float_state_t, _swap_ppc_thread_state_t, _swap_prebind_cksum_command, + _swap_prebound_dylib_command, _swap_ranlib, _swap_ranlib_64, + _swap_relocation_info, _swap_routines_command, _swap_routines_command_64, + _swap_rpath_command, _swap_section, _swap_section_64, _swap_segment_command, + _swap_segment_command_64, _swap_source_version_command, _swap_sparc_thread_state_fpu, + _swap_sparc_thread_state_regs, _swap_sub_client_command, _swap_sub_framework_command, + _swap_sub_library_command, _swap_sub_umbrella_command, _swap_symseg_command, + _swap_symtab_command, _swap_thread_command, _swap_twolevel_hint, + _swap_twolevel_hints_command, _swap_uuid_command, _swap_version_min_command, + _swap_x86_debug_state, _swap_x86_debug_state32, _swap_x86_debug_state64, + _swap_x86_exception_state, _swap_x86_exception_state64, _swap_x86_float_state, + _swap_x86_float_state64, _swap_x86_state_hdr, _swap_x86_thread_state, + _swap_x86_thread_state64 ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libremovefile.dylib' +current-version: 70 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ ___removefile_init_random, ___removefile_random_char, ___removefile_randomize_buffer, + ___removefile_rename_unlink, ___removefile_sunlink, ___removefile_tree_walker, + _removefile, _removefile_cancel, _removefile_state_alloc, + _removefile_state_free, _removefile_state_get, _removefile_state_set, + _removefileat ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_asl.dylib' +current-version: 398 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _ASL_LEVEL_TO_STRING, __asl_evaluate_send, __asl_fork_child, + __asl_lib_log, __asl_log_args_to_xpc, __asl_msg_dump, __asl_server_cancel_direct_watch, + __asl_server_control_query, __asl_server_create_aux_link, + __asl_server_match, __asl_server_message, __asl_server_query_2, + __asl_server_register_direct_watch, _asl_add_log_file, _asl_add_output, + _asl_add_output_file, _asl_append, _asl_base_msg, _asl_client_add_output_file, + _asl_client_get_control, _asl_client_kvdict, _asl_client_match, + _asl_client_open, _asl_client_open_from_file, _asl_client_release, + _asl_client_remove_output_file, _asl_client_retain, _asl_client_search, + _asl_client_send, _asl_client_set_control, _asl_client_set_filter, + _asl_client_set_output_file_filter, _asl_close, _asl_close_auxiliary_file, + _asl_core_check_access, _asl_core_decode_buffer, _asl_core_encode_buffer, + _asl_core_error, _asl_core_get_service_port, _asl_core_htonq, + _asl_core_level_to_string, _asl_core_new_msg_id, _asl_core_ntohq, + _asl_core_parse_time, _asl_core_str_match, _asl_core_str_match_c_time, + _asl_core_str_match_char, _asl_core_str_to_size, _asl_core_str_to_time, + _asl_core_str_to_uint32, _asl_core_string_hash, _asl_core_time_to_str, + _asl_count, _asl_create_auxiliary_file, _asl_fetch_key_val_op, + _asl_file_close, _asl_file_compact, _asl_file_ctime, _asl_file_fetch, + _asl_file_fetch_next, _asl_file_fetch_previous, _asl_file_filter, + _asl_file_filter_level, _asl_file_list_add, _asl_file_list_close, + _asl_file_list_match, _asl_file_list_match_end, _asl_file_list_match_next, + _asl_file_list_match_start, _asl_file_match, _asl_file_open_read, + _asl_file_open_write, _asl_file_read_set_position, _asl_file_release, + _asl_file_retain, _asl_file_save, _asl_file_size, _asl_filesystem_path, + _asl_format, _asl_format_message, _asl_free, _asl_get, _asl_get_filter, + _asl_get_index, _asl_get_local_control, _asl_get_type, _asl_get_value_for_key, + _asl_key, _asl_legacy1_close, _asl_legacy1_fetch, _asl_legacy1_match, + _asl_legacy1_open, _asl_list_from_string, _asl_log, _asl_log_auxiliary_location, + _asl_log_descriptor, _asl_log_message, _asl_match, _asl_msg_cmp, + _asl_msg_cmp_list, _asl_msg_copy, _asl_msg_count, _asl_msg_fetch, + _asl_msg_from_string, _asl_msg_get_val_for_key, _asl_msg_key, + _asl_msg_list_append, _asl_msg_list_count, _asl_msg_list_from_string, + _asl_msg_list_get_index, _asl_msg_list_insert, _asl_msg_list_match, + _asl_msg_list_new, _asl_msg_list_new_count, _asl_msg_list_next, + _asl_msg_list_prepend, _asl_msg_list_prev, _asl_msg_list_release, + _asl_msg_list_remove_index, _asl_msg_list_reset_iteration, + _asl_msg_list_retain, _asl_msg_list_search, _asl_msg_list_to_asl_string, + _asl_msg_list_to_string, _asl_msg_lookup, _asl_msg_merge, + _asl_msg_new, _asl_msg_release, _asl_msg_retain, _asl_msg_set_key_val, + _asl_msg_set_key_val_op, _asl_msg_to_string, _asl_msg_type, + _asl_msg_unset, _asl_msg_unset_index, _asl_new, _asl_next, + _asl_object_append, _asl_object_count, _asl_object_get_key_val_op_at_index, + _asl_object_get_object_at_index, _asl_object_get_val_op_for_key, + _asl_object_match, _asl_object_next, _asl_object_prepend, + _asl_object_prev, _asl_object_remove_object_at_index, _asl_object_search, + _asl_object_set_iteration_index, _asl_object_set_key_val_op, + _asl_object_unset_key, _asl_open, _asl_open_from_file, _asl_open_path, + _asl_parse_time, _asl_prepend, _asl_prev, _asl_release, _asl_remote_notify_name, + _asl_remove_log_file, _asl_remove_output, _asl_remove_output_file, + _asl_reset_iteration, _asl_retain, _asl_search, _asl_send, + _asl_set, _asl_set_filter, _asl_set_key_val_op, _asl_set_local_control, + _asl_set_output_file_filter, _asl_set_query, _asl_store_close, + _asl_store_location, _asl_store_match, _asl_store_match_next, + _asl_store_match_start, _asl_store_match_timeout, _asl_store_max_file_size, + _asl_store_open_aux, _asl_store_open_read, _asl_store_open_write, + _asl_store_release, _asl_store_retain, _asl_store_save, _asl_store_set_flags, + _asl_store_statistics, _asl_store_sweep_file_cache, _asl_string_allocated_size, + _asl_string_append, _asl_string_append_asl_key, _asl_string_append_asl_msg, + _asl_string_append_char_no_encoding, _asl_string_append_no_encoding, + _asl_string_append_no_encoding_len, _asl_string_append_op, + _asl_string_append_xml_tag, _asl_string_bytes, _asl_string_length, + _asl_string_new, _asl_string_release, _asl_string_release_return_bytes, + _asl_string_retain, _asl_syslog_faciliy_name_to_num, _asl_syslog_faciliy_num_to_name, + _asl_trigger_aslmanager, _asl_unset, _asl_unset_key, _asl_vlog, + _aslresponse_free, _aslresponse_next, _closelog, _openlog, + _setlogmask, _syslog, _vsyslog ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_blocks.dylib' +current-version: 90 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _Block_size, __Block_copy, __Block_extended_layout, __Block_has_signature, + __Block_isDeallocating, __Block_layout, __Block_object_assign, + __Block_object_dispose, __Block_release, __Block_signature, + __Block_tryRetain, __Block_use_RR2, __Block_use_stret, __NSConcreteAutoBlock, + __NSConcreteFinalizingBlock, __NSConcreteGlobalBlock, __NSConcreteMallocBlock, + __NSConcreteStackBlock, __NSConcreteWeakBlockVariable ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_c.dylib' +current-version: 1583.4.1 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos ] + symbols: [ ___ULtod_D2A, ___decrement_D2A, ___fdnlist, ___gethex_D2A, + ___hexdig_D2A, ___hexdig_init_D2A, ___hexnan_D2A, ___increment_D2A, + ___set_ones_D2A, ___strtodg, ___strtopdd, _kvm_close, _kvm_getargv, + _kvm_getenvv, _kvm_geterr, _kvm_getfiles, _kvm_getloadavg, + _kvm_getprocs, _kvm_nlist, _kvm_open, _kvm_openfiles, _kvm_read, + _kvm_uread, _kvm_write, _nlist ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _OSMemoryNotificationCurrentLevel, _OSThermalNotificationCurrentLevel, + __CurrentRuneLocale, __DefaultRuneLocale, __Exit, __NSGetArgc, + __NSGetArgv, __NSGetEnviron, __NSGetMachExecuteHeader, __NSGetProgname, + __OSThermalNotificationLevelForBehavior, __OSThermalNotificationSetLevelForBehavior, + __PathLocale, __Read_RuneMagi, ___Balloc_D2A, ___Bfree_D2A, + ____mb_cur_max, ____mb_cur_max_l, ____runetype, ____runetype_l, + ____tolower, ____tolower_l, ____toupper, ____toupper_l, ___add_ovflpage, + ___addel, ___any_on_D2A, ___assert_rtn, ___b2d_D2A, ___big_delete, + ___big_insert, ___big_keydata, ___big_return, ___big_split, + ___bigtens_D2A, ___bt_close, ___bt_cmp, ___bt_defcmp, ___bt_defpfx, + ___bt_delete, ___bt_dleaf, ___bt_fd, ___bt_free, ___bt_get, + ___bt_new, ___bt_open, ___bt_pgin, ___bt_pgout, ___bt_put, + ___bt_ret, ___bt_search, ___bt_seq, ___bt_setcur, ___bt_split, + ___bt_sync, ___buf_free, ___call_hash, ___cleanup, ___cmp_D2A, + ___collate_equiv_match, ___collate_load_error, ___collate_lookup, + ___collate_lookup_l, ___copybits_D2A, ___cxa_atexit, ___cxa_finalize, + ___cxa_finalize_ranges, ___d2b_D2A, ___dbpanic, ___default_hash, + ___default_utx, ___delpair, ___diff_D2A, ___dtoa, ___expand_table, + ___fflush, ___fgetwc, ___find_bigpair, ___find_last_page, + ___fix_locale_grouping_str, ___fread, ___free_ovflpage, ___freedtoa, + ___gdtoa, ___gdtoa_locks, ___get_buf, ___get_page, ___hash_open, + ___hdtoa, ___hi0bits_D2A, ___hldtoa, ___i2b_D2A, ___ibitmap, + ___isctype, ___istype, ___istype_l, ___ldtoa, ___libc_init, + ___lo0bits_D2A, ___log2, ___lshift_D2A, ___maskrune, ___maskrune_l, + ___match_D2A, ___mb_cur_max, ___mb_sb_limit, ___memccpy_chk, + ___memcpy_chk, ___memmove_chk, ___memset_chk, ___mult_D2A, + ___multadd_D2A, ___nrv_alloc_D2A, ___opendir2, ___ovfl_delete, + ___ovfl_get, ___ovfl_put, ___pow5mult_D2A, ___put_page, ___quorem_D2A, + ___ratio_D2A, ___rec_close, ___rec_delete, ___rec_dleaf, ___rec_fd, + ___rec_fmap, ___rec_fpipe, ___rec_get, ___rec_iput, ___rec_open, + ___rec_put, ___rec_ret, ___rec_search, ___rec_seq, ___rec_sync, + ___rec_vmap, ___rec_vpipe, ___reclaim_buf, ___rshift_D2A, + ___rv_alloc_D2A, ___s2b_D2A, ___sF, ___sclose, ___sdidinit, + ___sflags, ___sflush, ___sfp, ___sfvwrite, ___sglue, ___sinit, + ___slbexpand, ___smakebuf, ___snprintf_chk, ___snprintf_object_size_chk, + ___split_page, ___sprintf_chk, ___sprintf_object_size_chk, + ___sread, ___srefill, ___srget, ___sseek, ___stack_chk_fail, + ___stack_chk_guard, ___stderrp, ___stdinp, ___stdoutp, ___stpcpy_chk, + ___stpncpy_chk, ___strcat_chk, ___strcp_D2A, ___strcpy_chk, + ___strlcat_chk, ___strlcpy_chk, ___strncat_chk, ___strncpy_chk, + ___sum_D2A, ___svfscanf, ___swbuf, ___swhatbuf, ___swrite, + ___swsetup, ___tens_D2A, ___tinytens_D2A, ___tolower, ___tolower_l, + ___toupper, ___toupper_l, ___trailz_D2A, ___ulp_D2A, ___ungetc, + ___ungetwc, ___vsnprintf_chk, ___vsprintf_chk, ___wcwidth, + ___wcwidth_l, __allocenvstate, __c_locale, __cleanup, __closeutx, + __copyenv, __cthread_init_routine, __deallocenvstate, __endutxent, + __flockfile_debug_stub, __fseeko, __ftello, __fwalk, __getenvp, + __getutxent, __getutxid, __getutxline, __inet_aton_check, + __init_clock_port, __int_to_time, __libc_fork_child, __libc_fork_parent, + __libc_fork_prepare, __libc_initializer, __long_to_time, __mkpath_np, + __mktemp, __openutx, __os_assert_log, __os_assert_log_ctx, + __os_assumes_log, __os_assumes_log_ctx, __os_avoid_tail_call, + __os_crash, __os_crash_callback, __os_crash_fmt, __os_crash_msg, + __os_debug_log, __os_debug_log_error_offset, __os_debug_log_error_str, + __putenvp, __pututxline, __rand48_add, __rand48_mult, __rand48_seed, + __readdir_unlocked, __reclaim_telldir, __seekdir, __setenvp, + __setutxent, __sigaction_nobind, __sigintr, __signal_nobind, + __sigvec_nobind, __sread, __sseek, __subsystem_init, __swrite, + __time32_to_time, __time64_to_time, __time_to_int, __time_to_long, + __time_to_time32, __time_to_time64, __unsetenvp, __utmpxname, + _a64l, _abort, _abort_report_np, _abs, _acl_add_flag_np, _acl_add_perm, + _acl_calc_mask, _acl_clear_flags_np, _acl_clear_perms, _acl_copy_entry, + _acl_copy_ext, _acl_copy_ext_native, _acl_copy_int, _acl_copy_int_native, + _acl_create_entry, _acl_create_entry_np, _acl_delete_def_file, + _acl_delete_entry, _acl_delete_fd_np, _acl_delete_file_np, + _acl_delete_flag_np, _acl_delete_link_np, _acl_delete_perm, + _acl_dup, _acl_free, _acl_from_text, _acl_get_entry, _acl_get_fd, + _acl_get_fd_np, _acl_get_file, _acl_get_flag_np, _acl_get_flagset_np, + _acl_get_link_np, _acl_get_perm_np, _acl_get_permset, _acl_get_permset_mask_np, + _acl_get_qualifier, _acl_get_tag_type, _acl_init, _acl_maximal_permset_mask_np, + _acl_set_fd, _acl_set_fd_np, _acl_set_file, _acl_set_flagset_np, + _acl_set_link_np, _acl_set_permset, _acl_set_permset_mask_np, + _acl_set_qualifier, _acl_set_tag_type, _acl_size, _acl_to_text, + _acl_valid, _acl_valid_fd_np, _acl_valid_file_np, _acl_valid_link, + _addr2ascii, _alarm, _alphasort, _arc4random, _arc4random_addrandom, + _arc4random_buf, _arc4random_stir, _arc4random_uniform, _ascii2addr, + _asctime, _asctime_r, _asprintf, _asprintf_l, _asxprintf, + _asxprintf_exec, _atexit, _atexit_b, _atof, _atof_l, _atoi, + _atoi_l, _atol, _atol_l, _atoll, _atoll_l, _backtrace, _backtrace_async, + _backtrace_from_fp, _backtrace_image_offsets, _backtrace_set_pcs_func, + _backtrace_symbols, _backtrace_symbols_fd, _basename, _basename_r, + _bcopy, _brk, _bsd_signal, _bsearch, _bsearch_b, _btowc, _btowc_l, + _catclose, _catgets, _catopen, _cfgetispeed, _cfgetospeed, + _cfmakeraw, _cfsetispeed, _cfsetospeed, _cfsetspeed, _cgetcap, + _cgetclose, _cgetent, _cgetfirst, _cgetmatch, _cgetnext, _cgetnum, + _cgetset, _cgetstr, _cgetustr, _chmodx_np, _clearerr, _clearerr_unlocked, + _clock, _clock_getres, _clock_gettime, _clock_gettime_nsec_np, + _clock_port, _clock_sem, _clock_settime, _closedir, _compat_mode, + _confstr, _copy_printf_domain, _creat, '_creat$NOCANCEL', + _crypt, _ctermid, _ctermid_r, _ctime, _ctime_r, _daemon, _daylight, + _dbm_clearerr, _dbm_close, _dbm_delete, _dbm_dirfno, _dbm_error, + _dbm_fetch, _dbm_firstkey, _dbm_nextkey, _dbm_open, _dbm_store, + _dbopen, _devname, _devname_r, _difftime, _digittoint, _digittoint_l, + _dirfd, _dirname, _dirname_r, _div, _dprintf, _dprintf_l, + _drand48, _duplocale, _dxprintf, _dxprintf_exec, _ecvt, _encrypt, + _endttyent, _endusershell, _endutxent, _endutxent_wtmp, _environ_lock_np, + _environ_unlock_np, _erand48, _err, _err_set_exit, _err_set_exit_b, + _err_set_file, _errc, _errx, _execl, _execle, _execlp, _execv, + _execvP, _execvp, _exit, _f_prealloc, _fchmodx_np, _fclose, + _fcvt, _fdopen, '_fdopen$DARWIN_EXTSN', _fdopendir, _feof, + _feof_unlocked, _ferror, _ferror_unlocked, _fflagstostr, _fflush, + _fgetc, _fgetln, _fgetpos, _fgets, _fgetwc, _fgetwc_l, _fgetwln, + _fgetwln_l, _fgetws, _fgetws_l, _fileno, _fileno_unlocked, + _filesec_dup, _filesec_free, _filesec_get_property, _filesec_init, + _filesec_query_property, _filesec_set_property, _filesec_unset_property, + _flockfile, _fmemopen, _fmtcheck, _fmtmsg, _fnmatch, _fopen, + '_fopen$DARWIN_EXTSN', _fork, _forkpty, _fparseln, _fprintf, + _fprintf_l, _fpurge, _fputc, _fputs, _fputwc, _fputwc_l, _fputws, + _fputws_l, _fread, _free_printf_comp, _free_printf_domain, + _freelocale, _freopen, _fscanf, _fscanf_l, _fseek, _fseeko, + _fsetpos, _fstatvfs, _fstatx_np, _fsync_volume_np, _ftell, + _ftello, _ftime, _ftok, _ftrylockfile, _fts_children, _fts_close, + _fts_open, _fts_open_b, _fts_read, _fts_set, _ftw, _funlockfile, + _funopen, _fwide, _fwprintf, _fwprintf_l, _fwrite, _fwscanf, + _fwscanf_l, _fxprintf, _fxprintf_exec, _gcvt, _getbsize, _getc, + _getc_unlocked, _getchar, _getchar_unlocked, _getcwd, _getdate, + _getdate_err, _getdelim, _getdiskbyname, _getenv, '_getgroups$DARWIN_EXTSN', + _gethostid, _gethostname, _getipv4sourcefilter, _getlastlogx, + _getlastlogxbyname, _getline, _getloadavg, _getlogin, _getlogin_r, + _getmntinfo, _getmntinfo_r_np, _getmode, _getopt, _getopt_long, + _getopt_long_only, _getpagesize, _getpass, _getpeereid, _getprogname, + _gets, _getsourcefilter, _getsubopt, _gettimeofday, _getttyent, + _getttynam, _getusershell, _getutxent, _getutxent_wtmp, _getutxid, + _getutxline, _getvfsbyname, _getw, _getwc, _getwc_l, _getwchar, + _getwchar_l, _getwd, _glob, _glob_b, _globfree, _gmtime, _gmtime_r, + _grantpt, _hash_create, _hash_destroy, _hash_purge, _hash_search, + _hash_stats, _hash_traverse, _hcreate, _hdestroy, _heapsort, + _heapsort_b, _hsearch, _imaxabs, _imaxdiv, _inet_addr, _inet_aton, + _inet_lnaof, _inet_makeaddr, _inet_net_ntop, _inet_net_pton, + _inet_neta, _inet_netof, _inet_network, _inet_nsap_addr, _inet_nsap_ntoa, + _inet_ntoa, _inet_ntop, _inet_ntop4, _inet_ntop6, _inet_pton, + _initstate, _insque, _isalnum, _isalnum_l, _isalpha, _isalpha_l, + _isascii, _isatty, _isblank, _isblank_l, _iscntrl, _iscntrl_l, + _isdigit, _isdigit_l, _isgraph, _isgraph_l, _ishexnumber, + _ishexnumber_l, _isideogram, _isideogram_l, _islower, _islower_l, + _isnumber, _isnumber_l, _isphonogram, _isphonogram_l, _isprint, + _isprint_l, _ispunct, _ispunct_l, _isrune, _isrune_l, _isspace, + _isspace_l, _isspecial, _isspecial_l, _isupper, _isupper_l, + _iswalnum, _iswalnum_l, _iswalpha, _iswalpha_l, _iswascii, + _iswblank, _iswblank_l, _iswcntrl, _iswcntrl_l, _iswctype, + _iswctype_l, _iswdigit, _iswdigit_l, _iswgraph, _iswgraph_l, + _iswhexnumber, _iswhexnumber_l, _iswideogram, _iswideogram_l, + _iswlower, _iswlower_l, _iswnumber, _iswnumber_l, _iswphonogram, + _iswphonogram_l, _iswprint, _iswprint_l, _iswpunct, _iswpunct_l, + _iswrune, _iswrune_l, _iswspace, _iswspace_l, _iswspecial, + _iswspecial_l, _iswupper, _iswupper_l, _iswxdigit, _iswxdigit_l, + _isxdigit, _isxdigit_l, _jrand48, _kOSMemoryNotificationName, + _kOSThermalNotificationAlert, _kOSThermalNotificationDecision, + _kOSThermalNotificationName, _kOSThermalNotificationPressureLevelName, + _killpg, _l64a, _labs, _lchflags, _lchmod, _lcong48, _ldiv, + _lfind, _link_addr, _link_ntoa, _llabs, _lldiv, _localeconv, + _localeconv_l, _localtime, _localtime_r, _lockf, '_lockf$NOCANCEL', + _login_tty, _logwtmp, _lrand48, _lsearch, _lstatx_np, _lutimes, + _mblen, _mblen_l, _mbrlen, _mbrlen_l, _mbrtowc, _mbrtowc_l, + _mbsinit, _mbsinit_l, _mbsnrtowcs, _mbsnrtowcs_l, _mbsrtowcs, + _mbsrtowcs_l, _mbstowcs, _mbstowcs_l, _mbtowc, _mbtowc_l, + _memmem, _memset_s, _mergesort, _mergesort_b, _mkdirx_np, + _mkdtemp, _mkdtempat_np, _mkfifox_np, _mkostemp, _mkostemps, + _mkostempsat_np, _mkpath_np, _mkpathat_np, _mkstemp, _mkstemp_dprotected_np, + _mkstemps, _mkstempsat_np, _mktemp, _mktime, _monaddition, + _moncontrol, _moncount, _moninit, _monitor, _monoutput, _monreset, + _monstartup, _mpool_close, _mpool_filter, _mpool_get, _mpool_new, + _mpool_open, _mpool_put, _mpool_sync, _mrand48, _nanosleep, + '_nanosleep$NOCANCEL', _new_printf_comp, _new_printf_domain, + _newlocale, _nextwctype, _nextwctype_l, _nftw, _nice, _nl_langinfo, + _nl_langinfo_l, _nrand48, _nvis, _offtime, _open_memstream, + _open_with_subsystem, _open_wmemstream, _opendev, _opendir, + _openpty, _openx_np, _optarg, _opterr, _optind, _optopt, _optreset, + _pause, '_pause$NOCANCEL', _pclose, _perror, _popen, '_popen$DARWIN_EXTSN', + _posix2time, _posix_openpt, _posix_spawnp, _printf, _printf_l, + _psignal, _psort, _psort_b, _psort_r, _ptsname, _ptsname_r, + _putc, _putc_unlocked, _putchar, _putchar_unlocked, _putenv, + _puts, _pututxline, _putw, _putwc, _putwc_l, _putwchar, _putwchar_l, + _qsort, _qsort_b, _qsort_r, _querylocale, _radixsort, _raise, + _rand, _rand_r, _random, _rb_tree_count, _rb_tree_find_node, + _rb_tree_find_node_geq, _rb_tree_find_node_leq, _rb_tree_init, + _rb_tree_insert_node, _rb_tree_iterate, _rb_tree_remove_node, + _readdir, _readdir_r, _readpassphrase, _reallocf, _realpath, + '_realpath$DARWIN_EXTSN', _recv, '_recv$NOCANCEL', _regcomp, + _regcomp_l, _regerror, _regexec, _regfree, _register_printf_domain_function, + _register_printf_domain_render_std, _regncomp, _regncomp_l, + _regnexec, _regwcomp, _regwcomp_l, _regwexec, _regwncomp, + _regwncomp_l, _regwnexec, _remove, _remque, _rewind, _rewinddir, + _rindex, _rpmatch, _sbrk, _scandir, _scandir_b, _scanf, _scanf_l, + _seed48, _seekdir, _send, '_send$NOCANCEL', _setbuf, _setbuffer, + _setenv, _sethostid, _sethostname, _setipv4sourcefilter, _setkey, + _setlinebuf, _setlocale, _setlogin, _setmode, _setpgrp, _setprogname, + _setrgid, _setruid, _setsourcefilter, _setstate, _settimeofday, + _setttyent, _setusershell, _setutxent, _setutxent_wtmp, _setvbuf, + _sigaction, _sigaddset, _sigaltstack, _sigblock, _sigdelset, + _sigemptyset, _sigfillset, _sighold, _sigignore, _siginterrupt, + _sigismember, _signal, _sigpause, '_sigpause$NOCANCEL', _sigrelse, + _sigset, _sigsetmask, _sigvec, _sl_add, _sl_find, _sl_free, + _sl_init, _sleep, '_sleep$NOCANCEL', _snprintf, _snprintf_l, + _snvis, _sockatmark, _sprintf, _sprintf_l, _sradixsort, _srand, + _srand48, _sranddev, _srandom, _srandomdev, _sscanf, _sscanf_l, + _stat_with_subsystem, _statvfs, _statx_np, _stpcpy, _stpncpy, + _stravis, _strcasecmp, _strcasecmp_l, _strcasestr, _strcasestr_l, + _strcat, _strcoll, _strcoll_l, _strcspn, _strdup, _strenvisx, + _strerror, _strerror_r, _strfmon, _strfmon_l, _strftime, _strftime_l, + _strmode, _strncasecmp, _strncasecmp_l, _strncat, _strndup, + _strnstr, _strnunvis, _strnunvisx, _strnvis, _strnvisx, _strpbrk, + _strptime, _strptime_l, _strrchr, _strsenvisx, _strsep, _strsignal, + _strsignal_r, _strsnvis, _strsnvisx, _strspn, _strsvis, _strsvisx, + _strtod, _strtod_l, _strtoencf16, _strtoencf32, _strtoencf64, + _strtoencf64x, _strtof, _strtof_l, _strtofflags, _strtoimax, + _strtoimax_l, _strtok, _strtok_r, _strtol, _strtol_l, _strtold, + _strtold_l, _strtoll, _strtoll_l, _strtonum, _strtoq, _strtoq_l, + _strtoul, _strtoul_l, _strtoull, _strtoull_l, _strtoumax, + _strtoumax_l, _strtouq, _strtouq_l, _strunvis, _strunvisx, + _strvis, _strvisx, _strxfrm, _strxfrm_l, _suboptarg, _svis, + _swab, _swprintf, _swprintf_l, _swscanf, _swscanf_l, _sxprintf, + _sxprintf_exec, _sync_volume_np, _sys_errlist, _sys_nerr, + _sys_siglist, _sys_signame, _sysconf, _sysctl, _sysctlbyname, + _sysctlnametomib, _system, '_system$NOCANCEL', _tcdrain, '_tcdrain$NOCANCEL', + _tcflow, _tcflush, _tcgetattr, _tcgetpgrp, _tcgetsid, _tcsendbreak, + _tcsetattr, _tcsetpgrp, _tdelete, _telldir, _tempnam, _tfind, + _thread_stack_async_pcs, _thread_stack_pcs, _time, _time2posix, + _timegm, _timelocal, _timeoff, _times, _timespec_get, _timezone, + _timingsafe_bcmp, _tmpfile, _tmpnam, _toascii, _tolower, _tolower_l, + _toupper, _toupper_l, _towctrans, _towctrans_l, _towlower, + _towlower_l, _towupper, _towupper_l, _tre_ast_new_catenation, + _tre_ast_new_iter, _tre_ast_new_literal, _tre_ast_new_node, + _tre_ast_new_union, _tre_compile, _tre_fill_pmatch, _tre_free, + _tre_mem_alloc_impl, _tre_mem_destroy, _tre_mem_new_impl, + _tre_parse, _tre_stack_destroy, _tre_stack_new, _tre_stack_num_objects, + _tre_tnfa_run_backtrack, _tre_tnfa_run_parallel, _tsearch, + _ttyname, _ttyname_r, _ttyslot, _twalk, _tzname, _tzset, _tzsetwall, + _ualarm, _ulimit, _umaskx_np, _uname, _ungetc, _ungetwc, _ungetwc_l, + _unlockpt, _unsetenv, _unvis, _uselocale, _usleep, '_usleep$NOCANCEL', + _utime, _utmpxname, _uuid_clear, _uuid_compare, _uuid_copy, + _uuid_generate, _uuid_generate_random, _uuid_generate_time, + _uuid_is_null, _uuid_pack, _uuid_parse, _uuid_unpack, _uuid_unparse, + _uuid_unparse_lower, _uuid_unparse_upper, _vasprintf, _vasprintf_l, + _vasxprintf, _vasxprintf_exec, _vdprintf, _vdprintf_l, _vdxprintf, + _vdxprintf_exec, _verr, _verrc, _verrx, _vfork, _vfprintf, + _vfprintf_l, _vfscanf, _vfscanf_l, _vfwprintf, _vfwprintf_l, + _vfwscanf, _vfwscanf_l, _vfxprintf, _vfxprintf_exec, _vis, + _vprintf, _vprintf_l, _vscanf, _vscanf_l, _vsnprintf, _vsnprintf_l, + _vsprintf, _vsprintf_l, _vsscanf, _vsscanf_l, _vswprintf, + _vswprintf_l, _vswscanf, _vswscanf_l, _vsxprintf, _vsxprintf_exec, + _vwarn, _vwarnc, _vwarnx, _vwprintf, _vwprintf_l, _vwscanf, + _vwscanf_l, _vxprintf, _vxprintf_exec, _wait, '_wait$NOCANCEL', + _wait3, _waitpid, '_waitpid$NOCANCEL', _warn, _warnc, _warnx, + _wcpcpy, _wcpncpy, _wcrtomb, _wcrtomb_l, _wcscasecmp, _wcscasecmp_l, + _wcscat, _wcschr, _wcscmp, _wcscoll, _wcscoll_l, _wcscpy, + _wcscspn, _wcsdup, _wcsftime, _wcsftime_l, _wcslcat, _wcslcpy, + _wcslen, _wcsncasecmp, _wcsncasecmp_l, _wcsncat, _wcsncmp, + _wcsncpy, _wcsnlen, _wcsnrtombs, _wcsnrtombs_l, _wcspbrk, + _wcsrchr, _wcsrtombs, _wcsrtombs_l, _wcsspn, _wcsstr, _wcstod, + _wcstod_l, _wcstof, _wcstof_l, _wcstoimax, _wcstoimax_l, _wcstok, + _wcstol, _wcstol_l, _wcstold, _wcstold_l, _wcstoll, _wcstoll_l, + _wcstombs, _wcstombs_l, _wcstoul, _wcstoul_l, _wcstoull, _wcstoull_l, + _wcstoumax, _wcstoumax_l, _wcswidth, _wcswidth_l, _wcsxfrm, + _wcsxfrm_l, _wctob, _wctob_l, _wctomb, _wctomb_l, _wctrans, + _wctrans_l, _wctype, _wctype_l, _wcwidth, _wcwidth_l, _wmemchr, + _wmemcmp, _wmemcpy, _wmemmove, _wmemset, _wprintf, _wprintf_l, + _wscanf, _wscanf_l, _wtmpxname, _xprintf, _xprintf_exec ] + - targets: [ armv7k-watchos, arm64_32-watchos ] + symbols: [ _wordexp, _wordfree ] + - targets: [ arm64-watchos, arm64e-watchos ] + symbols: [ _off32, _off64, _skip ] +reexports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _bcmp, _bzero, _index, _memccpy, _memchr, _memcmp, _memcpy, + _memmove, _memset, _memset_pattern16, _memset_pattern4, _memset_pattern8, + _strchr, _strcmp, _strcpy, _strlcat, _strlcpy, _strlen, _strncmp, + _strncpy, _strnlen, _strstr ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_collections.dylib' +current-version: 1583.4.1 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _os_map_128_clear, _os_map_128_count, _os_map_128_delete, + _os_map_128_destroy, _os_map_128_find, _os_map_128_foreach, + _os_map_128_init, _os_map_128_insert, _os_map_32_clear, _os_map_32_count, + _os_map_32_delete, _os_map_32_destroy, _os_map_32_find, _os_map_32_foreach, + _os_map_32_init, _os_map_32_insert, _os_map_64_clear, _os_map_64_count, + _os_map_64_delete, _os_map_64_destroy, _os_map_64_find, _os_map_64_foreach, + _os_map_64_init, _os_map_64_insert, _os_map_str_clear, _os_map_str_count, + _os_map_str_delete, _os_map_str_destroy, _os_map_str_entry, + _os_map_str_find, _os_map_str_foreach, _os_map_str_init, _os_map_str_insert, + _os_set_32_ptr_clear, _os_set_32_ptr_count, _os_set_32_ptr_delete, + _os_set_32_ptr_destroy, _os_set_32_ptr_find, _os_set_32_ptr_foreach, + _os_set_32_ptr_init, _os_set_32_ptr_insert, _os_set_64_ptr_clear, + _os_set_64_ptr_count, _os_set_64_ptr_delete, _os_set_64_ptr_destroy, + _os_set_64_ptr_find, _os_set_64_ptr_foreach, _os_set_64_ptr_init, + _os_set_64_ptr_insert, _os_set_str_ptr_clear, _os_set_str_ptr_count, + _os_set_str_ptr_delete, _os_set_str_ptr_destroy, _os_set_str_ptr_find, + _os_set_str_ptr_foreach, _os_set_str_ptr_init, _os_set_str_ptr_insert ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_configuration.dylib' +current-version: 1296.4.1 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ __dns_configuration_ack, __libSC_info_fork_child, __libSC_info_fork_parent, + __libSC_info_fork_prepare, __nwi_config_agent_copy_data, __nwi_state_ack, + __nwi_state_force_refresh, _config_agent_copy_dns_information, + _config_agent_copy_proxy_information, _config_agent_free_dns_information, + _config_agent_free_proxy_information, _config_agent_get_dns_nameservers, + _config_agent_get_dns_searchdomains, _config_agent_update_proxy_information, + _dns_configuration_copy, _dns_configuration_free, _dns_configuration_notify_key, + _is_config_agent_type_dns, _is_config_agent_type_proxy, _nwi_ifstate_compare_rank, + _nwi_ifstate_get_dns_signature, _nwi_ifstate_get_flags, _nwi_ifstate_get_generation, + _nwi_ifstate_get_ifname, _nwi_ifstate_get_next, _nwi_ifstate_get_reachability_flags, + _nwi_ifstate_get_signature, _nwi_ifstate_get_vpn_server, _nwi_state_copy, + _nwi_state_get_first_ifstate, _nwi_state_get_generation, _nwi_state_get_ifstate, + _nwi_state_get_interface_names, _nwi_state_get_notify_key, + _nwi_state_get_reachability_flags, _nwi_state_release ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_containermanager.dylib' +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos ] + symbols: [ _CONTAINER_LINK_ARRAY_NONE, _CONTAINER_NOTIFY_CLEANUP_COMPLETE, + _CONTAINER_NOTIFY_REBOOT_CLEANUP_COMPLETE, _container_copy_links_array, + _container_link_apply, _container_link_copy, _container_link_copy_container_a, + _container_link_copy_container_b, _container_link_copy_unlocalized_description, + _container_link_create, _container_link_exists, _container_link_free, + _container_link_free_array, _container_link_get_attributes, + _container_link_is_implicit, _container_link_remove, _container_query_set_links ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _CMFSSEAM_DEFAULT, _CONTAINER_CURRENT_MOBILE_UID, _CONTAINER_INSTALLATION_UID, + _CONTAINER_NOTIFY_USER_INVALIDATED, _CONTAINER_PERSONA_CURRENT, + _CONTAINER_PERSONA_PRIMARY, _CONTAINER_SYSTEM_UID, __container_init, + __container_query_get_servicing_pid, __container_references_get_servicing_pid, + _container_acquire_sandbox_extension, _container_audit_token_copy_codesign_hash, + _container_audit_token_copy_codesign_identifier, _container_audit_token_copy_entitlement, + _container_audit_token_copy_executable_name, _container_audit_token_for_pid, + _container_audit_token_get_codesign_status, _container_audit_token_get_egid, + _container_audit_token_get_euid, _container_audit_token_get_pid, + _container_audit_token_get_platform, _container_audit_token_is_valid, + _container_base64_decode, _container_base64_decode_string, + _container_base64_encode, _container_base64_encode_string, + _container_bundle_copy_data_container, _container_bundle_copy_data_container_path, + _container_class_for_each_normalized_class, _container_class_normalized, + _container_class_supports_data_subdirectory, _container_class_supports_randomized_path, + _container_class_supports_randomized_path_on_current_platform, + _container_client_copy_decoded_from_xpc_object, _container_client_copy_encoded_xpc_object, + _container_client_copy_entitlement, _container_client_create_from_audit_token, + _container_client_get_audit_token, _container_client_get_codesign_identifier, + _container_client_get_egid, _container_client_get_euid, _container_client_get_persona_unique_string, + _container_client_get_pid, _container_client_get_platform, + _container_client_initializer, _container_client_is_alive, + _container_client_is_platform_binary, _container_client_is_sandboxed, + _container_client_is_signature_valid, _container_client_is_signed, + _container_client_is_test_client, _container_codesign_copy_cdhash, + _container_codesign_copy_cs_identity, _container_codesign_copy_current_identifier, + _container_codesign_get_self_audit_token, _container_codesign_get_status, + _container_copy_client, _container_copy_code_signing_info_for_identifier, + _container_copy_from_path, _container_copy_info, _container_copy_info_value_for_key, + _container_copy_object, _container_copy_path, _container_copy_persona_unique_strings, + _container_copy_sandbox_token, _container_copy_unlocalized_description, + _container_create_merged_array, _container_create_or_lookup, + _container_create_or_lookup_app_group_path_by_app_group_identifier, + _container_create_or_lookup_app_group_paths, _container_create_or_lookup_app_group_paths_for_current_user, + _container_create_or_lookup_app_group_paths_for_platform, + _container_create_or_lookup_app_group_paths_from_entitlements, + _container_create_or_lookup_app_group_paths_from_entitlements_4ls, + _container_create_or_lookup_for_current_user, _container_create_or_lookup_for_platform, + _container_create_or_lookup_group_container_paths_for_current_user, + _container_create_or_lookup_path, _container_create_or_lookup_path_for_current_user, + _container_create_or_lookup_path_for_platform, _container_create_or_lookup_system_group_paths, + _container_create_or_lookup_user_managed_assets_path, _container_create_or_lookup_user_managed_assets_relative_path, + _container_delete, _container_delete_all_container_content, + _container_delete_all_data_container_content, _container_delete_all_data_container_content_for_current_user, + _container_delete_array_of_containers, _container_delete_user_managed_assets, + _container_delete_with_class_and_identifier_for_current_user, + _container_delete_with_uid_class_and_identifier, _container_disk_usage, + _container_disposition, _container_disposition_for_array, + _container_entitlements_copy_container_identifiers, _container_error_copy, + _container_error_copy_unlocalized_description, _container_error_create, + _container_error_free, _container_error_get_category, _container_error_get_path, + _container_error_get_posix_errno, _container_error_get_type, + _container_error_is_fatal, _container_error_is_file_system_error, + _container_error_reinitialize, _container_flush_container_cache, + _container_flush_persona_cache, _container_free_array_of_containers, + _container_free_client, _container_free_object, _container_frozenset_copyout_external_bytes, + _container_frozenset_create, _container_frozenset_create_from_external_bytes, + _container_frozenset_destroy, _container_frozenset_enumerate_matches, + _container_frozenset_get_container_class_of_container_at_index, + _container_frozenset_get_count, _container_frozenset_get_generation, + _container_frozenset_get_identifier_of_container_at_index, + _container_frozenset_get_is_new_of_container_at_index, _container_frozenset_get_is_transient_of_container_at_index, + _container_frozenset_get_path_of_container_at_index, _container_frozenset_get_persona_unique_string_of_container_at_index, + _container_frozenset_get_stored_string, _container_frozenset_get_uid_of_container_at_index, + _container_frozenset_get_uma_relative_path_of_container_at_index, + _container_frozenset_get_unique_path_component_of_container_at_index, + _container_frozenset_get_uuid_of_container_at_index, _container_fs_add_path_component, + _container_fs_append_trailing_slash, _container_fs_item_exists, + _container_fs_item_exists_at, _container_fs_load_plist_at, + _container_fs_path_at, _container_fs_resolve_dirent_type_at, + _container_get_all_with_class, _container_get_all_with_class_for_current_user, + _container_get_class, _container_get_error_description, _container_get_identifier, + _container_get_info, _container_get_info_value_for_key, _container_get_path, + _container_get_persona_unique_string, _container_get_uid, + _container_get_unique_path_component, _container_get_user_managed_assets_relative_path, + _container_group_container_identifiers_for_current_user, _container_internal_get_first_boot_uuid, + _container_invalidate_code_signing_cache, _container_is_equal, + _container_is_new, _container_is_transient, _container_log_client_fault_logging_is_enabled, + _container_log_error, _container_log_error_with_faults, _container_log_ext_error, + _container_log_ext_error_with_faults, _container_log_handle_for_category, + _container_log_replication_disable, _container_log_replication_enable_to_uid_relative_path, + _container_log_replication_prune_for_uid, _container_log_set_client_fault_logging, + _container_object_copy, _container_object_create, _container_object_create_blank, + _container_object_free, _container_object_get_class, _container_object_get_identifier, + _container_object_get_info, _container_object_get_path, _container_object_get_persona_unique_string, + _container_object_get_query, _container_object_get_sandbox_token, + _container_object_get_uid, _container_object_get_unique_path_component, + _container_object_get_user_managed_assets_relative_path, _container_object_get_uuid, + _container_object_is_new, _container_object_is_transient, + _container_object_sandbox_extension_activate, _container_object_set_backing_store_from_query, + _container_object_set_class, _container_object_set_info, _container_object_set_path, + _container_object_set_sandbox_token, _container_object_set_transient, + _container_object_set_unique_path_component, _container_object_set_user_managed_assets_relative_path, + _container_object_set_uuid, _container_object_update_metadata, + _container_operation_complete_background_tasks, _container_operation_delete, + _container_operation_delete_array, _container_operation_delete_reclaim_disk_space, + _container_paths_context_create, _container_paths_context_free, + _container_paths_context_set_class, _container_paths_context_set_flags, + _container_paths_context_set_persona_unique_string, _container_paths_context_set_transient, + _container_paths_context_set_uid, _container_paths_copy_container_at, + _container_paths_copy_container_from_path, _container_paths_copy_container_root_path_for_context, + _container_paths_copy_uid_home_relative, _container_paths_create_uid_home_relative, + _container_paths_enumerate_containers_at, _container_perfect_hash_copyout_external_bytes, + _container_perfect_hash_count, _container_perfect_hash_create, + _container_perfect_hash_create_from_external_bytes, _container_perfect_hash_destroy, + _container_perfect_hash_index_of, _container_perfect_hash_num_indexes, + _container_perform_data_migration, _container_perform_data_migration_for_current_user, + _container_perform_with_client_context, _container_persona_collect_all_ids, + _container_persona_convert_unique_string_to_persona_uid, _container_persona_foreach, + _container_process_restored_container, _container_pwd_copy_user_home_path, + _container_pwd_for_name, _container_pwd_for_uid, _container_query_copy, + _container_query_count_results, _container_query_create, _container_query_create_from_container, + _container_query_free, _container_query_get_last_error, _container_query_get_single_result, + _container_query_iterate_results_sync, _container_query_iterate_results_with_identifier_sync, + _container_query_iterate_results_with_subquery_sync, _container_query_operation_set_client, + _container_query_operation_set_flags, _container_query_operation_set_platform, + _container_query_set_class, _container_query_set_group_identifiers, + _container_query_set_identifiers, _container_query_set_include_other_owners, + _container_query_set_persona_unique_string, _container_query_set_transient, + _container_query_set_uid, _container_realpath, _container_recreate_structure, + _container_references_add, _container_references_create, _container_references_free, + _container_references_get_last_error, _container_references_iterate_by_group_sync, + _container_references_iterate_by_owner_sync, _container_references_operation_set_flags, + _container_references_remove, _container_references_set_class, + _container_references_set_persona_unique_string, _container_references_set_uid, + _container_regenerate_uuid, _container_repair_user_data, _container_replace, + _container_retry_test, _container_sandbox_extension_consume, + _container_sandbox_extension_revoke, _container_sandbox_issue_custom_extension, + _container_sandbox_issue_extension, _container_seam_fs_ensure_lazy_loaded, + _container_seam_fs_reset, _container_seam_fs_set_common, _container_serialize_copy_deserialized_reference, + _container_serialize_copy_serialized_reference, _container_set_code_signing_info_for_identifier, + _container_set_data_protection_for_current_user, _container_set_info_value, + _container_set_test_lock, _container_stage_shared_system_content, + _container_string_rom_copyout_external_bytes, _container_string_rom_count, + _container_string_rom_create, _container_string_rom_create_from_external_bytes, + _container_string_rom_destroy, _container_string_rom_index_of, + _container_string_rom_string_at_index, _container_subdirectories_for_class, + _container_system_group_path_for_identifier, _container_system_path_for_identifier, + _container_update_with_container, _container_user_managed_assets_path, + _container_user_managed_assets_relative_path, _container_xpc_connection_is_shared, + _container_xpc_create_connection, _container_xpc_decode_container_object, + _container_xpc_decode_create_container_object_array, _container_xpc_decode_error, + _container_xpc_encode_client_onto_message, _container_xpc_encode_container_array, + _container_xpc_encode_container_as_object, _container_xpc_encode_container_metadata_as_object, + _container_xpc_encode_container_object, _container_xpc_encode_error, + _container_xpc_encode_error_as_object, _container_xpc_get_incoming_reply_preprocess_block, + _container_xpc_get_outgoing_message_postprocess_block, _container_xpc_get_outgoing_message_send_block, + _container_xpc_get_raw_connection, _container_xpc_invalidate_connection, + _container_xpc_release, _container_xpc_send_message, _container_xpc_send_sync_message, + _container_xpc_send_sync_message_with_object, _container_xpc_set_client_context_during_block, + _container_xpc_set_incoming_reply_preprocess_block, _container_xpc_set_outgoing_message_postprocess_block, + _container_xpc_set_outgoing_message_send_block, _container_xpc_set_use_shared_connection, + _container_xpc_shared_copy_connection, _gCMFSSeam ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_coreservices.dylib' +current-version: 129 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _NSGetNextSearchPathEnumeration, _NSStartSearchPathEnumeration, + _NSStartSearchPathEnumerationPrivate, ___user_local_dirname, + ___user_relative_dirname, __append_relative_path_component, + __dirhelper, __dirhelper_relative, __get_user_dir_suffix, + __libcoreservices_fork_child, __set_user_dir_suffix, _sysdir_get_next_search_path_enumeration, + _sysdir_start_search_path_enumeration, _sysdir_start_search_path_enumeration_private ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_darwin.dylib' +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ ___libdarwin_init, ___os_temporary_resource_shortage, _claimfd_np, + _close_drop_np, _close_drop_optional_np, _crfprintf_np, _dirstat_np, + _dirstatat_np, _dup_np, _err_np, _errc_np, _fcheck_np, _memdup2_np, + _memdup_np, _os_assert_mach, _os_assert_mach_port_status, + _os_boot_arg_string_to_int, _os_crash_get_reporter_port_array, + _os_crash_port_array_deallocate, _os_crash_set_reporter_port, + _os_crash_spawnattr_set_reporter_port, _os_enumerate_boot_args, + _os_enumerate_boot_args_b, _os_enumerate_boot_args_from_buffer, + _os_enumerate_boot_args_from_buffer_b, _os_flagset_copy_string, + _os_localtime_file, _os_mach_msg_copy_description, _os_mach_msg_get_audit_trailer, + _os_mach_msg_get_context_trailer, _os_mach_msg_get_trailer, + _os_mach_msg_trailer_copy_description, _os_mach_port_copy_description, + _os_parse_boot_arg_from_buffer_int, _os_parse_boot_arg_from_buffer_string, + _os_parse_boot_arg_int, _os_parse_boot_arg_string, _os_simple_hash, + _os_simple_hash_string, _os_simple_hash_string_with_seed, + _os_simple_hash_with_seed, _os_subcommand_fprintf, _os_subcommand_main, + _os_subcommand_vfprintf, _os_variant_allows_internal_security_policies, + _os_variant_allows_security_research, _os_variant_check, _os_variant_copy_description, + _os_variant_has_factory_content, _os_variant_has_internal_content, + _os_variant_has_internal_diagnostics, _os_variant_has_internal_ui, + _os_variant_init_4launchd, _os_variant_is_darwinos, _os_variant_is_recovery, + _os_variant_uses_ephemeral_storage, _realpath_np, _strerror_np, + _strexit_np, _symerror_np, _symexit_np, _sysctl_get_data_np, + _sysctlbyname_get_data_np, _sysexit_np, _vcrfprintf_np, _verr_np, + _verrc_np, _vwarn_np, _vwfprintf_np, _warn_np, _wfprintf_np, + _xferfd_np, _zsnprintf_np ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_dnssd.dylib' +current-version: 2200.0.8 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos ] + symbols: [ _DNSServiceQueryAttrCreate, _DNSServiceQueryAttrFree, _DNSServiceQueryAttrSetAAAAPolicy, + _DNSServiceQueryAttrSetFailoverPolicy, _kDNSServiceQueryAttrAAAAFallback, + _kDNSServiceQueryAttrAllowFailover ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _DNSServiceAddRecord, _DNSServiceAttrCreate, _DNSServiceAttrFree, + _DNSServiceAttrSetFailoverPolicy, _DNSServiceAttrSetValidationData, + _DNSServiceAttrSetValidationPolicy, _DNSServiceAttributeCreate, + _DNSServiceAttributeDeallocate, _DNSServiceAttributeSetAAAAPolicy, + _DNSServiceAttributeSetTimestamp, _DNSServiceBrowse, _DNSServiceBrowseEx, + _DNSServiceConstructFullName, _DNSServiceCreateConnection, + _DNSServiceCreateDelegateConnection, _DNSServiceEnumerateDomains, + _DNSServiceErrorCodeToString, _DNSServiceGetAddrInfo, _DNSServiceGetAddrInfoEx, + _DNSServiceGetPID, _DNSServiceGetProperty, _DNSServiceGetValidationData, + _DNSServiceNATPortMappingCreate, _DNSServiceProcessResult, + _DNSServiceQueryRecord, _DNSServiceQueryRecordEx, _DNSServiceQueryRecordWithAttribute, + _DNSServiceReconfirmRecord, _DNSServiceRefDeallocate, _DNSServiceRefSockFD, + _DNSServiceRegister, _DNSServiceRegisterRecord, _DNSServiceRegisterRecordWithAttribute, + _DNSServiceRegisterWithAttribute, _DNSServiceRemoveRecord, + _DNSServiceResolve, _DNSServiceResolveEx, _DNSServiceSendQueuedRequests, + _DNSServiceSetDefaultDomainForUser, _DNSServiceSetDispatchQueue, + _DNSServiceSetResolverDefaults, _DNSServiceSleepKeepalive, + _DNSServiceSleepKeepalive_sockaddr, _DNSServiceUpdateRecord, + _DNSServiceUpdateRecordWithAttribute, _PeerConnectionRelease, + _TXTRecordContainsKey, _TXTRecordCreate, _TXTRecordDeallocate, + _TXTRecordGetBytesPtr, _TXTRecordGetCount, _TXTRecordGetItemAtIndex, + _TXTRecordGetLength, _TXTRecordGetValuePtr, _TXTRecordRemoveValue, + _TXTRecordSetValue, _kDNSServiceAttrAllowFailover, _kDNSServiceAttrValidationRequired, + _kDNSServiceAttributeAAAAFallback ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_featureflags.dylib' +current-version: 85 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ __os_feature_enabled_impl, __os_feature_enabled_simple_impl ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_info.dylib' +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _LI_get_thread_item, _LI_get_thread_list, _LI_ils_create, + _LI_set_thread_item, _LI_set_thread_list, ___dn_skipname, + __authenticate, __gai_nat64_can_v4_address_be_synthesized, + __gai_serv_to_port, __gai_simple, __getaddrinfo_interface_async_call, + __getlong, __getnameinfo_interface_async_call, __getshort, + __null_auth, __res, __seterr_reply, __yp_dobind, _alias_endent, + _alias_getbyname, _alias_getent, _alias_setent, _authnone_create, + _authunix_create, _authunix_create_default, _bindresvport, + _bindresvport_sa, _bootparams_endent, _bootparams_getbyname, + _bootparams_getent, _bootparams_setent, _clnt_broadcast, _clnt_create, + _clnt_pcreateerror, _clnt_perrno, _clnt_perror, _clnt_spcreateerror, + _clnt_sperrno, _clnt_sperror, _clntraw_create, _clnttcp_create, + _clntudp_bufcreate, _clntudp_create, _configuration_profile_copy_property_list, + _configuration_profile_create_notification_key, _dn_expand, + _endfsent, _endgrent, _endhostent, _endnetent, _endnetgrent, + _endprotoent, _endpwent, _endrpcent, _endservent, _ether_aton, + _ether_hostton, _ether_line, _ether_ntoa, _ether_ntohost, + _freeaddrinfo, _freehostent, _freeifaddrs, _freeifmaddrs, + _gL1CacheEnabled, _gai_strerror, _getaddrinfo, _getaddrinfo_async_cancel, + _getaddrinfo_async_handle_reply, _getaddrinfo_async_receive, + _getaddrinfo_async_send, _getaddrinfo_async_start, _getdomainname, + _getfsent, _getfsfile, _getfsspec, _getgrent, _getgrgid, _getgrgid_r, + _getgrnam, _getgrnam_r, _getgroupcount, _getgrouplist, _getgrouplist_2, + _getgruuid, _getgruuid_r, _gethostbyaddr, _gethostbyaddr_async_cancel, + _gethostbyaddr_async_handleReply, _gethostbyaddr_async_start, + _gethostbyname, _gethostbyname2, _gethostbyname_async_cancel, + _gethostbyname_async_handleReply, _gethostbyname_async_start, + _gethostent, _getifaddrs, _getifmaddrs, _getipnodebyaddr, + _getipnodebyname, _getnameinfo, _getnameinfo_async_cancel, + _getnameinfo_async_handle_reply, _getnameinfo_async_send, + _getnameinfo_async_start, _getnetbyaddr, _getnetbyname, _getnetent, + _getnetgrent, _getprotobyname, _getprotobynumber, _getprotoent, + _getpwent, _getpwnam, _getpwnam_r, _getpwuid, _getpwuid_r, + _getpwuuid, _getpwuuid_r, _getrpcbyname, _getrpcbynumber, + _getrpcent, _getrpcport, _getservbyname, _getservbyport, _getservent, + _group_from_gid, _h_errno, _herror, _hstrerror, _htonl, _htons, + _if_freenameindex, _if_indextoname, _if_nameindex, _if_nametoindex, + _in6addr_any, _in6addr_linklocal_allnodes, _in6addr_linklocal_allrouters, + _in6addr_linklocal_allv2routers, _in6addr_loopback, _in6addr_nodelocal_allnodes, + _inet6_opt_append, _inet6_opt_find, _inet6_opt_finish, _inet6_opt_get_val, + _inet6_opt_init, _inet6_opt_next, _inet6_opt_set_val, _inet6_option_alloc, + _inet6_option_append, _inet6_option_find, _inet6_option_init, + _inet6_option_next, _inet6_option_space, _inet6_rth_add, _inet6_rth_getaddr, + _inet6_rth_init, _inet6_rth_reverse, _inet6_rth_segments, + _inet6_rth_space, _inet6_rthdr_add, _inet6_rthdr_getaddr, + _inet6_rthdr_getflags, _inet6_rthdr_init, _inet6_rthdr_lasthop, + _inet6_rthdr_segments, _inet6_rthdr_space, _initgroups, _innetgr, + _iruserok, _iruserok_sa, _kvarray_free, _kvbuf_add_dict, _kvbuf_add_key, + _kvbuf_add_val, _kvbuf_add_val_len, _kvbuf_append_kvbuf, _kvbuf_decode, + _kvbuf_free, _kvbuf_get_len, _kvbuf_init, _kvbuf_init_zone, + _kvbuf_make_nonpurgeable, _kvbuf_make_purgeable, _kvbuf_new, + _kvbuf_new_zone, _kvbuf_next_dict, _kvbuf_next_key, _kvbuf_next_val, + _kvbuf_next_val_len, _kvbuf_query, _kvbuf_query_key_int, _kvbuf_query_key_uint, + _kvbuf_query_key_val, _kvbuf_reset, _mbr_check_membership, + _mbr_check_membership_by_id, _mbr_check_membership_ext, _mbr_check_membership_refresh, + _mbr_check_service_membership, _mbr_close_connections, _mbr_gid_to_uuid, + _mbr_group_name_to_uuid, _mbr_identifier_to_uuid, _mbr_identifier_translate, + _mbr_reset_cache, _mbr_set_identifier_ttl, _mbr_sid_to_string, + _mbr_sid_to_uuid, _mbr_string_to_sid, _mbr_string_to_uuid, + _mbr_uid_to_uuid, _mbr_user_name_to_uuid, _mbr_uuid_to_id, + _mbr_uuid_to_sid, _mbr_uuid_to_sid_type, _mbr_uuid_to_string, + _ntohl, _ntohs, _pmap_getmaps, _pmap_getport, _pmap_rmtcall, + _pmap_set, _pmap_unset, _prdb_end, _prdb_get, _prdb_getbyname, + _prdb_set, _rcmd, _rcmd_af, _res_init, _res_query, _res_search, + _rpc_createerr, _rresvport, _rresvport_af, _ruserok, _setdomainname, + _setfsent, _setgrent, _setgroupent, _sethostent, _setnetent, + _setnetgrent, _setpassent, _setprotoent, _setpwent, _setrpcent, + _setservent, _si_addrinfo, _si_addrinfo_list, _si_addrinfo_list_from_hostent, + _si_addrinfo_v4, _si_addrinfo_v4_mapped, _si_addrinfo_v6, + _si_alias_all, _si_alias_byname, _si_async_call, _si_async_cancel, + _si_async_handle_reply, _si_destination_compare, _si_destination_compare_no_dependencies, + _si_fs_all, _si_fs_byfile, _si_fs_byspec, _si_group_all, _si_group_bygid, + _si_group_byname, _si_group_byuuid, _si_grouplist, _si_host_all, + _si_host_byaddr, _si_host_byname, _si_in_netgroup, _si_ipnode_byname, + _si_item_call, _si_item_is_valid, _si_item_match, _si_item_release, + _si_item_retain, _si_list_add, _si_list_call, _si_list_concat, + _si_list_next, _si_list_release, _si_list_reset, _si_list_retain, + _si_mac_all, _si_mac_bymac, _si_mac_byname, _si_module_allows_caching, + _si_module_name, _si_module_release, _si_module_retain, _si_module_vers, + _si_module_with_name, _si_nameinfo, _si_netgroup_byname, _si_network_all, + _si_network_byaddr, _si_network_byname, _si_protocol_all, + _si_protocol_byname, _si_protocol_bynumber, _si_rpc_all, _si_rpc_byname, + _si_rpc_bynumber, _si_search, _si_search_module_set_flags, + _si_service_all, _si_service_byname, _si_service_byport, _si_set_nat64_v4_requires_synthesis, + _si_set_nat64_v4_synthesize, _si_set_path_check, _si_srv_byname, + _si_standardize_mac_address, _si_user_all, _si_user_byname, + _si_user_byuid, _si_user_byuuid, _si_wants_addrinfo, _svc_fdset, + _svc_getreq, _svc_getreqset, _svc_register, _svc_run, _svc_sendreply, + _svc_unregister, _svcerr_auth, _svcerr_decode, _svcerr_noproc, + _svcerr_noprog, _svcerr_progvers, _svcerr_systemerr, _svcerr_weakauth, + _svcfd_create, _svcraw_create, _svctcp_create, _svcudp_bufcreate, + _svcudp_create, _user_from_uid, _xdr_array, _xdr_authunix_parms, + _xdr_bool, _xdr_bytes, _xdr_callhdr, _xdr_callmsg, _xdr_char, + _xdr_des_block, _xdr_domainname, _xdr_double, _xdr_enum, _xdr_float, + _xdr_free, _xdr_hyper, _xdr_int, _xdr_int16_t, _xdr_int32_t, + _xdr_int64_t, _xdr_keydat, _xdr_long, _xdr_longlong_t, _xdr_mapname, + _xdr_netobj, _xdr_opaque, _xdr_peername, _xdr_pmap, _xdr_pmaplist, + _xdr_pointer, _xdr_reference, _xdr_replymsg, _xdr_rmtcall_args, + _xdr_rmtcallres, _xdr_short, _xdr_string, _xdr_u_char, _xdr_u_hyper, + _xdr_u_int, _xdr_u_int16_t, _xdr_u_int32_t, _xdr_u_int64_t, + _xdr_u_long, _xdr_u_longlong_t, _xdr_u_short, _xdr_union, + _xdr_valdat, _xdr_vector, _xdr_void, _xdr_wrapstring, _xdr_x_passwd, + _xdr_ypbind_binding, _xdr_ypbind_resp, _xdr_ypbind_resptype, + _xdr_ypbind_setdom, _xdr_ypmaplist, _xdr_yppasswd, _xdr_ypreq_key, + _xdr_ypreq_nokey, _xdr_ypresp_all, _xdr_ypresp_all_seq, _xdr_ypresp_key_val, + _xdr_ypresp_maplist, _xdr_ypresp_master, _xdr_ypresp_order, + _xdr_ypresp_val, _xdr_ypstat, _xdrmem_create, _xdrrec_create, + _xdrrec_endofrecord, _xdrrec_eof, _xdrrec_skiprecord, _xdrstdio_create, + _xprt_register, _xprt_unregister, _yp_all, _yp_bind, _yp_first, + _yp_get_default_domain, _yp_maplist, _yp_master, _yp_match, + _yp_next, _yp_order, _yp_unbind, _yperr_string, _ypprot_err ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_kernel.dylib' +current-version: 10002.4.6 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos ] + symbols: [ _____old_semwait_signal_nocancel, ___old_semwait_signal, ___shared_region_map_and_slide_np, + _lock_acquire, _lock_handoff, _lock_handoff_accept, _lock_make_stable, + _lock_release, _lock_try ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos ] + symbols: [ _mach_vm_reclaim_is_available, _mach_vm_reclaim_mark_free, + _mach_vm_reclaim_mark_used, _mach_vm_reclaim_ringbuffer_init, + _mach_vm_reclaim_synchronize, _mach_vm_reclaim_update_kernel_accounting ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _NDR_record, _____sigwait_nocancel, ____kernelVersionNumber, + ____kernelVersionString, ___abort_with_payload, ___accept, + ___accept_nocancel, ___access_extended, ___aio_suspend_nocancel, + ___bind, ___bsdthread_create, ___bsdthread_ctl, ___bsdthread_register, + ___bsdthread_terminate, ___carbon_delete, ___channel_get_info, + ___channel_get_opt, ___channel_open, ___channel_set_opt, ___channel_sync, + ___chmod, ___chmod_extended, ___close_nocancel, ___coalition, + ___coalition_info, ___coalition_ledger, ___commpage_gettimeofday, + ___connect, ___connect_nocancel, ___copyfile, ___crossarch_trap, + ___csrctl, ___darwin_check_fd_set_overflow, ___debug_syscall_reject, + ___debug_syscall_reject_config, ___delete, ___disable_threadsignal, + ___error, ___execve, ___exit, ___fchmod, ___fchmod_extended, + ___fcntl, ___fcntl_nocancel, ___fork, ___fs_snapshot, ___fstat64_extended, + ___fstat_extended, ___fsync_nocancel, ___get_remove_counter, + ___getattrlist, ___getdirentries64, ___gethostuuid, ___getlogin, + ___getpeername, ___getpid, ___getrlimit, ___getsgroups, ___getsockname, + ___gettid, ___gettimeofday, ___getwgroups, ___guarded_open_dprotected_np, + ___guarded_open_np, ___identitysvc, ___inc_remove_counter, + ___initgroups, ___ioctl, ___iopolicysys, ___kdebug_trace, + ___kdebug_trace64, ___kdebug_trace_string, ___kdebug_typefilter, + ___kill, ___kqueue_workloop_ctl, ___lchown, ___libkernel_init, + ___libkernel_init_after_boot_tasks, ___libkernel_init_late, + ___libkernel_platform_init, ___libkernel_voucher_init, ___listen, + ___log_data, ___lseek, ___lstat64_extended, ___lstat_extended, + ___mac_execve, ___mac_get_fd, ___mac_get_file, ___mac_get_link, + ___mac_get_mount, ___mac_get_pid, ___mac_get_proc, ___mac_getfsstat, + ___mac_mount, ___mac_set_fd, ___mac_set_file, ___mac_set_link, + ___mac_set_proc, ___mac_syscall, ___mach_bridge_remote_time, + ___mach_eventlink_signal, ___mach_eventlink_signal_wait_until, + ___mach_eventlink_wait_until, ___map_with_linking_np, ___memorystatus_available_memory, + ___microstackshot, ___mkdir_extended, ___mkfifo_extended, + ___mmap, ___mprotect, ___msgctl, ___msgrcv_nocancel, ___msgsnd_nocancel, + ___msgsys, ___msync, ___msync_nocancel, ___munmap, ___nexus_create, + ___nexus_deregister, ___nexus_destroy, ___nexus_get_opt, ___nexus_open, + ___nexus_register, ___nexus_set_opt, ___open, ___open_dprotected_np, + ___open_extended, ___open_nocancel, ___openat, ___openat_dprotected_np, + ___openat_nocancel, ___os_nexus_flow_add, ___os_nexus_flow_del, + ___os_nexus_get_llink_info, ___os_nexus_ifattach, ___os_nexus_ifdetach, + ___persona, ___pipe, ___poll_nocancel, ___posix_spawn, ___pread_nocancel, + ___preadv_nocancel, ___proc_info, ___proc_info_extended_id, + ___process_policy, ___pselect, ___pselect_nocancel, ___psynch_cvbroad, + ___psynch_cvclrprepost, ___psynch_cvsignal, ___psynch_cvwait, + ___psynch_mutexdrop, ___psynch_mutexwait, ___psynch_rw_downgrade, + ___psynch_rw_longrdlock, ___psynch_rw_rdlock, ___psynch_rw_unlock, + ___psynch_rw_unlock2, ___psynch_rw_upgrade, ___psynch_rw_wrlock, + ___psynch_rw_yieldwrlock, ___pthread_canceled, ___pthread_chdir, + ___pthread_fchdir, ___pthread_kill, ___pthread_markcancel, + ___pthread_sigmask, ___ptrace, ___pwrite_nocancel, ___pwritev_nocancel, + ___read_nocancel, ___readv_nocancel, ___reboot, ___record_system_event, + ___recvfrom, ___recvfrom_nocancel, ___recvmsg, ___recvmsg_nocancel, + ___rename, ___renameat, ___renameatx_np, ___rmdir, ___sandbox_me, + ___sandbox_mm, ___sandbox_ms, ___sandbox_msp, ___select, ___select_nocancel, + ___sem_open, ___sem_wait_nocancel, ___semctl, ___semsys, ___semwait_signal, + ___semwait_signal_nocancel, ___sendmsg, ___sendmsg_nocancel, + ___sendto, ___sendto_nocancel, ___setattrlist, ___setlogin, + ___setpriority, ___setregid, ___setreuid, ___setrlimit, ___setsgroups, + ___settid, ___settid_with_pid, ___settimeofday, ___setwgroups, + ___sfi_ctl, ___sfi_pidctl, ___shared_region_check_np, ___shared_region_map_and_slide_2_np, + ___shm_open, ___shmctl, ___shmsys, ___sigaction, ___sigaltstack, + ___sigreturn, ___sigsuspend, ___sigsuspend_nocancel, ___sigwait, + ___socketpair, ___stack_snapshot_with_config, ___stat64_extended, + ___stat_extended, ___syscall, ___syscall_logger, ___sysctl, + ___sysctlbyname, ___telemetry, ___terminate_with_payload, + ___thread_selfid, ___thread_selfusage, ___ulock_wait, ___ulock_wait2, + ___ulock_wake, ___umask_extended, ___unlink, ___unlinkat, + ___vfork, ___wait4, ___wait4_nocancel, ___waitid_nocancel, + ___work_interval_ctl, ___workq_kernreturn, ___workq_open, + ___write_nocancel, ___writev_nocancel, __cpu_capabilities, + __cpu_has_altivec, __current_pid, __exclaves_ctl_trap, __exit, + __get_cpu_capabilities, __getprivatesystemidentifier, __host_page_size, + __init_cpu_capabilities, __kernelrpc_host_create_mach_voucher, + __kernelrpc_mach_port_allocate, __kernelrpc_mach_port_allocate_full, + __kernelrpc_mach_port_allocate_name, __kernelrpc_mach_port_allocate_qos, + __kernelrpc_mach_port_allocate_trap, __kernelrpc_mach_port_assert_attributes, + __kernelrpc_mach_port_construct, __kernelrpc_mach_port_construct_trap, + __kernelrpc_mach_port_deallocate, __kernelrpc_mach_port_deallocate_trap, + __kernelrpc_mach_port_destroy, __kernelrpc_mach_port_destruct, + __kernelrpc_mach_port_destruct_trap, __kernelrpc_mach_port_dnrequest_info, + __kernelrpc_mach_port_extract_member, __kernelrpc_mach_port_extract_member_trap, + __kernelrpc_mach_port_extract_right, __kernelrpc_mach_port_get_attributes, + __kernelrpc_mach_port_get_attributes_trap, __kernelrpc_mach_port_get_context, + __kernelrpc_mach_port_get_refs, __kernelrpc_mach_port_get_service_port_info, + __kernelrpc_mach_port_get_set_status, __kernelrpc_mach_port_get_srights, + __kernelrpc_mach_port_guard, __kernelrpc_mach_port_guard_trap, + __kernelrpc_mach_port_guard_with_flags, __kernelrpc_mach_port_insert_member, + __kernelrpc_mach_port_insert_member_trap, __kernelrpc_mach_port_insert_right, + __kernelrpc_mach_port_insert_right_trap, __kernelrpc_mach_port_is_connection_for_service, + __kernelrpc_mach_port_kernel_object, __kernelrpc_mach_port_kobject, + __kernelrpc_mach_port_kobject_description, __kernelrpc_mach_port_mod_refs, + __kernelrpc_mach_port_mod_refs_trap, __kernelrpc_mach_port_move_member, + __kernelrpc_mach_port_move_member_trap, __kernelrpc_mach_port_names, + __kernelrpc_mach_port_peek, __kernelrpc_mach_port_rename, + __kernelrpc_mach_port_request_notification, __kernelrpc_mach_port_request_notification_trap, + __kernelrpc_mach_port_set_attributes, __kernelrpc_mach_port_set_context, + __kernelrpc_mach_port_set_mscount, __kernelrpc_mach_port_set_seqno, + __kernelrpc_mach_port_space_basic_info, __kernelrpc_mach_port_space_info, + __kernelrpc_mach_port_special_reply_port_reset_link, __kernelrpc_mach_port_swap_guard, + __kernelrpc_mach_port_type, __kernelrpc_mach_port_type_trap, + __kernelrpc_mach_port_unguard, __kernelrpc_mach_port_unguard_trap, + __kernelrpc_mach_task_is_self, __kernelrpc_mach_vm_allocate, + __kernelrpc_mach_vm_allocate_trap, __kernelrpc_mach_vm_deallocate, + __kernelrpc_mach_vm_deallocate_trap, __kernelrpc_mach_vm_map, + __kernelrpc_mach_vm_map_trap, __kernelrpc_mach_vm_protect, + __kernelrpc_mach_vm_protect_trap, __kernelrpc_mach_vm_purgable_control, + __kernelrpc_mach_vm_purgable_control_trap, __kernelrpc_mach_vm_read, + __kernelrpc_mach_vm_remap, __kernelrpc_mach_vm_remap_new, + __kernelrpc_mach_voucher_extract_attr_recipe, __kernelrpc_task_set_port_space, + __kernelrpc_thread_policy, __kernelrpc_thread_policy_set, + __kernelrpc_thread_set_policy, __kernelrpc_vm_map, __kernelrpc_vm_purgable_control, + __kernelrpc_vm_read, __kernelrpc_vm_remap, __kernelrpc_vm_remap_new, + __mach_errors, __mach_fork_child, __mach_snprintf, __mach_vsnprintf, + __os_alloc_once_table, __register_gethostuuid_callback, __thread_set_tsd_base, + _abort_with_payload, _abort_with_reason, _accept, '_accept$NOCANCEL', + _access, _accessx_np, _acct, _act_get_state, _act_set_state, + _adjtime, _aio_cancel, _aio_error, _aio_fsync, _aio_read, + _aio_return, _aio_suspend, '_aio_suspend$NOCANCEL', _aio_write, + _audit, _audit_session_join, _audit_session_port, _audit_session_self, + _auditctl, _auditon, _bind, _bootstrap_port, _cerror, _cerror_nocancel, + _change_fdguard_np, _chdir, _chflags, _chmod, _chown, _chroot, + _clock_alarm, _clock_alarm_reply, _clock_get_attributes, _clock_get_time, + _clock_set_attributes, _clock_set_time, _clock_sleep, _clock_sleep_trap, + _clonefile, _clonefileat, _close, '_close$NOCANCEL', _coalition_create, + _coalition_info_debug_info, _coalition_info_resource_usage, + _coalition_info_set_efficiency, _coalition_info_set_name, + _coalition_ledger_set_logical_writes_limit, _coalition_reap, + _coalition_terminate, _connect, '_connect$NOCANCEL', _connectx, + _csops, _csops_audittoken, _csr_check, _csr_get_active_config, + _debug_control_port_for_pid, _debug_syscall_reject, _debug_syscall_reject_config, + _denap_boost_assertion_token, _disconnectx, _dup, _dup2, _errno, + _etap_trace_thread, _exc_server, _exc_server_routine, _exception_raise, + _exception_raise_state, _exception_raise_state_identity, _exchangedata, + _exclaves_boot, _exclaves_endpoint_call, _exclaves_named_buffer_copyin, + _exclaves_named_buffer_copyout, _exclaves_named_buffer_create, + _execve, _faccessat, _fchdir, _fchflags, _fchmod, _fchmodat, + _fchown, _fchownat, _fclonefileat, _fcntl, '_fcntl$NOCANCEL', + _fdatasync, _ffsctl, _fgetattrlist, _fgetxattr, _fhopen, _fileport_makefd, + _fileport_makeport, _flistxattr, _flock, _fmount, _fpathconf, + _freadlink, _fremovexattr, _fs_snapshot_create, _fs_snapshot_delete, + _fs_snapshot_list, _fs_snapshot_mount, _fs_snapshot_rename, + _fs_snapshot_revert, _fs_snapshot_root, _fsctl, _fsetattrlist, + _fsetxattr, _fsgetpath, _fsgetpath_ext, _fstat, _fstat64, + _fstatat, _fstatat64, _fstatfs, _fstatfs64, _fsync, '_fsync$NOCANCEL', + _ftruncate, _futimens, _futimes, _getattrlist, _getattrlistat, + _getattrlistbulk, _getaudit, _getaudit_addr, _getauid, _getdirentries, + _getdirentriesattr, _getdtablesize, _getegid, _getentropy, + _geteuid, _getfh, _getfsstat, _getfsstat64, _getgid, _getgroups, + _gethostuuid, _getiopolicy_np, _getitimer, _getpeername, _getpgid, + _getpgrp, _getpid, _getppid, _getpriority, _getrlimit, _getrusage, + _getsgroups_np, _getsid, _getsockname, _getsockopt, _getuid, + _getwgroups_np, _getxattr, _grab_pgo_data, _graftdmg, _guarded_close_np, + _guarded_kqueue_np, _guarded_open_dprotected_np, _guarded_open_np, + _guarded_pwrite_np, _guarded_write_np, _guarded_writev_np, + _host_check_multiuser_mode, _host_create_mach_voucher, _host_create_mach_voucher_trap, + _host_default_memory_manager, _host_get_UNDServer, _host_get_atm_diagnostic_flag, + _host_get_boot_info, _host_get_clock_control, _host_get_clock_service, + _host_get_exception_ports, _host_get_io_main, _host_get_io_master, + _host_get_multiuser_config_flags, _host_get_special_port, + _host_info, _host_kernel_version, _host_lockgroup_info, _host_page_size, + _host_priv_statistics, _host_processor_info, _host_processor_set_priv, + _host_processor_sets, _host_processors, _host_reboot, _host_register_mach_voucher_attr_manager, + _host_register_well_known_mach_voucher_attr_manager, _host_request_notification, + _host_security_create_task_token, _host_security_set_task_token, + _host_self, _host_self_trap, _host_set_UNDServer, _host_set_atm_diagnostic_flag, + _host_set_exception_ports, _host_set_multiuser_config_flags, + _host_set_special_port, _host_statistics, _host_statistics64, + _host_swap_exception_ports, _host_virtual_physical_table_info, + _important_boost_assertion_token, _internal_catch_exc_subsystem, + _ioctl, _issetugid, _kas_info, _kdebug_is_enabled, _kdebug_signpost, + _kdebug_signpost_end, _kdebug_signpost_start, _kdebug_timestamp, + _kdebug_timestamp_from_absolute, _kdebug_timestamp_from_continuous, + _kdebug_trace, _kdebug_trace_string, _kdebug_typefilter, _kdebug_using_continuous_time, + _kevent, _kevent64, _kevent_id, _kevent_qos, _kext_request, + _kill, _kmod_control, _kmod_create, _kmod_destroy, _kmod_get_info, + _kpersona_alloc, _kpersona_dealloc, _kpersona_find, _kpersona_find_by_type, + _kpersona_get, _kpersona_getpath, _kpersona_info, _kpersona_palloc, + _kpersona_pidinfo, _kqueue, _lchown, _ledger, _link, _linkat, + _lio_listio, _listen, _listxattr, _lock_set_create, _lock_set_destroy, + _log_data_as_kernel, _lseek, _lstat, _lstat64, _mach_absolute_time, + _mach_absolute_time_kernel, _mach_approximate_time, _mach_boottime_usec, + _mach_continuous_approximate_time, _mach_continuous_time, + _mach_continuous_time_kernel, _mach_error, _mach_error_full_diag, + _mach_error_string, _mach_error_type, _mach_eventlink_associate, + _mach_eventlink_create, _mach_eventlink_destroy, _mach_eventlink_disassociate, + _mach_eventlink_signal, _mach_eventlink_signal_wait_until, + _mach_eventlink_wait_until, _mach_generate_activity_id, _mach_get_times, + _mach_host_self, _mach_host_special_port_description, _mach_host_special_port_for_id, + _mach_init, _mach_make_memory_entry, _mach_make_memory_entry_64, + _mach_memory_entry_access_tracking, _mach_memory_entry_ownership, + _mach_memory_entry_purgable_control, _mach_memory_info, _mach_memory_object_memory_entry, + _mach_memory_object_memory_entry_64, _mach_msg, _mach_msg2_internal, + _mach_msg2_trap, _mach_msg_destroy, _mach_msg_overwrite, _mach_msg_overwrite_trap, + _mach_msg_priority_encode, _mach_msg_priority_is_pthread_priority, + _mach_msg_priority_overide_qos, _mach_msg_priority_qos, _mach_msg_priority_relpri, + _mach_msg_receive, _mach_msg_send, _mach_msg_server, _mach_msg_server_importance, + _mach_msg_server_once, _mach_msg_trap, _mach_notify_dead_name, + _mach_notify_no_senders, _mach_notify_port_deleted, _mach_notify_port_destroyed, + _mach_notify_send_once, _mach_port_allocate, _mach_port_allocate_full, + _mach_port_allocate_name, _mach_port_allocate_qos, _mach_port_assert_attributes, + _mach_port_construct, _mach_port_deallocate, _mach_port_destroy, + _mach_port_destruct, _mach_port_dnrequest_info, _mach_port_extract_member, + _mach_port_extract_right, _mach_port_get_attributes, _mach_port_get_context, + _mach_port_get_refs, _mach_port_get_service_port_info, _mach_port_get_set_status, + _mach_port_get_srights, _mach_port_guard, _mach_port_guard_with_flags, + _mach_port_insert_member, _mach_port_insert_right, _mach_port_is_connection_for_service, + _mach_port_kernel_object, _mach_port_kobject, _mach_port_kobject_description, + _mach_port_mod_refs, _mach_port_move_member, _mach_port_names, + _mach_port_peek, _mach_port_rename, _mach_port_request_notification, + _mach_port_set_attributes, _mach_port_set_context, _mach_port_set_mscount, + _mach_port_set_seqno, _mach_port_space_basic_info, _mach_port_space_info, + _mach_port_swap_guard, _mach_port_type, _mach_port_unguard, + _mach_ports_lookup, _mach_ports_register, _mach_reply_port, + _mach_right_recv_construct, _mach_right_recv_destruct, _mach_right_send_create, + _mach_right_send_once_consume, _mach_right_send_once_create, + _mach_right_send_release, _mach_right_send_retain, _mach_sync_ipc_link_monitoring_start, + _mach_sync_ipc_link_monitoring_stop, _mach_task_is_self, _mach_task_self, + _mach_task_self_, _mach_task_special_port_description, _mach_task_special_port_for_id, + _mach_thread_self, _mach_thread_special_port_description, + _mach_thread_special_port_for_id, _mach_timebase_info, _mach_timebase_info_trap, + _mach_vm_allocate, _mach_vm_behavior_set, _mach_vm_copy, _mach_vm_deallocate, + _mach_vm_deferred_reclamation_buffer_init, _mach_vm_deferred_reclamation_buffer_synchronize, + _mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes, + _mach_vm_inherit, _mach_vm_machine_attribute, _mach_vm_map, + _mach_vm_msync, _mach_vm_page_info, _mach_vm_page_query, _mach_vm_page_range_query, + _mach_vm_protect, _mach_vm_purgable_control, _mach_vm_range_create, + _mach_vm_read, _mach_vm_read_list, _mach_vm_read_overwrite, + _mach_vm_region, _mach_vm_region_recurse, _mach_vm_remap, + _mach_vm_remap_new, _mach_vm_wire, _mach_vm_write, _mach_voucher_attr_command, + _mach_voucher_deallocate, _mach_voucher_debug_info, _mach_voucher_extract_all_attr_recipes, + _mach_voucher_extract_attr_content, _mach_voucher_extract_attr_recipe, + _mach_voucher_extract_attr_recipe_trap, _mach_wait_until, + _mach_zone_force_gc, _mach_zone_get_btlog_records, _mach_zone_get_zlog_zones, + _mach_zone_info, _mach_zone_info_for_largest_zone, _mach_zone_info_for_zone, + _macx_backing_store_recovery, _macx_backing_store_suspend, + _macx_swapoff, _macx_swapon, _macx_triggers, _madvise, _memorystatus_control, + _memorystatus_get_level, _mig_allocate, _mig_dealloc_reply_port, + _mig_dealloc_special_reply_port, _mig_deallocate, _mig_get_reply_port, + _mig_get_special_reply_port, _mig_put_reply_port, _mig_reply_setup, + _mig_strncpy, _mig_strncpy_zerofill, _mincore, _minherit, + _mk_timer_arm, _mk_timer_arm_leeway, _mk_timer_cancel, _mk_timer_create, + _mk_timer_destroy, _mkdir, _mkdirat, _mkfifo, _mkfifoat, _mknod, + _mknodat, _mlock, _mlockall, _mmap, _mount, _mprotect, _mremap_encrypted, + _msg_receive, _msg_rpc, _msg_send, _msgctl, _msgget, _msgrcv, + '_msgrcv$NOCANCEL', _msgsnd, '_msgsnd$NOCANCEL', _msgsys, + _msync, '_msync$NOCANCEL', _munlock, _munlockall, _munmap, + _necp_client_action, _necp_match_policy, _necp_open, _necp_session_action, + _necp_session_open, _net_qos_guideline, _netagent_trigger, + _netname_check_in, _netname_check_out, _netname_look_up, _netname_version, + _nfsclnt, _nfssvc, _non_boost_assertion_token, _normal_boost_assertion_token, + _ntp_adjtime, _ntp_gettime, _objc_bp_assist_cfg_np, _open, + '_open$NOCANCEL', _open_dprotected_np, _openat, '_openat$NOCANCEL', + _openat_authenticated_np, _openat_dprotected_np, _openbyid_np, + _os_buflet_get_data_address, _os_buflet_get_data_length, _os_buflet_get_data_limit, + _os_buflet_get_data_offset, _os_buflet_get_object_address, + _os_buflet_get_object_limit, _os_buflet_set_data_length, _os_buflet_set_data_offset, + _os_channel_advance_slot, _os_channel_attr_clone, _os_channel_attr_create, + _os_channel_attr_destroy, _os_channel_attr_get, _os_channel_attr_get_key, + _os_channel_attr_set, _os_channel_attr_set_key, _os_channel_available_slot_count, + _os_channel_buflet_alloc, _os_channel_buflet_free, _os_channel_configure_interface_advisory, + _os_channel_create, _os_channel_create_extended, _os_channel_destroy, + _os_channel_event_free, _os_channel_event_get_event_data, + _os_channel_event_get_next_event, _os_channel_flow_admissible, + _os_channel_flow_adv_get_ce_count, _os_channel_get_advisory_region, + _os_channel_get_fd, _os_channel_get_interface_advisory, _os_channel_get_next_event_handle, + _os_channel_get_next_slot, _os_channel_get_stats_region, _os_channel_is_defunct, + _os_channel_large_packet_alloc, _os_channel_packet_alloc, + _os_channel_packet_free, _os_channel_packet_pool_purge, _os_channel_pending, + _os_channel_read_attr, _os_channel_read_nexus_extension_info, + _os_channel_ring_id, _os_channel_ring_notify_time, _os_channel_ring_sync_time, + _os_channel_rx_ring, _os_channel_set_slot_properties, _os_channel_slot_attach_packet, + _os_channel_slot_detach_packet, _os_channel_slot_get_packet, + _os_channel_sync, _os_channel_tx_ring, _os_channel_write_attr, + _os_copy_and_inet_checksum, _os_cpu_copy_in_cksum, _os_cpu_in_cksum, + _os_cpu_in_cksum_mbuf, _os_fault_with_payload, _os_inet_checksum, + _os_nexus_attr_clone, _os_nexus_attr_create, _os_nexus_attr_destroy, + _os_nexus_attr_get, _os_nexus_attr_set, _os_nexus_controller_add_traffic_rule, + _os_nexus_controller_alloc_provider_instance, _os_nexus_controller_bind_provider_instance, + _os_nexus_controller_create, _os_nexus_controller_deregister_provider, + _os_nexus_controller_destroy, _os_nexus_controller_free_provider_instance, + _os_nexus_controller_get_fd, _os_nexus_controller_iterate_traffic_rules, + _os_nexus_controller_read_provider_attr, _os_nexus_controller_register_provider, + _os_nexus_controller_remove_traffic_rule, _os_nexus_controller_unbind_provider_instance, + _os_nexus_flow_set_wake_from_sleep, _os_packet_add_buflet, + _os_packet_add_inet_csum_flags, _os_packet_clear_flow_uuid, + _os_packet_decrement_use_count, _os_packet_finalize, _os_packet_get_aggregation_type, + _os_packet_get_buflet_count, _os_packet_get_compression_generation_count, + _os_packet_get_data_length, _os_packet_get_expire_time, _os_packet_get_expiry_action, + _os_packet_get_flow_uuid, _os_packet_get_group_end, _os_packet_get_group_start, + _os_packet_get_headroom, _os_packet_get_inet_checksum, _os_packet_get_keep_alive, + _os_packet_get_link_broadcast, _os_packet_get_link_ethfcs, + _os_packet_get_link_header_length, _os_packet_get_link_multicast, + _os_packet_get_next_buflet, _os_packet_get_packetid, _os_packet_get_segment_count, + _os_packet_get_service_class, _os_packet_get_token, _os_packet_get_trace_id, + _os_packet_get_traffic_class, _os_packet_get_transport_retransmit, + _os_packet_get_transport_traffic_background, _os_packet_get_transport_traffic_realtime, + _os_packet_get_truncated, _os_packet_get_vlan_id, _os_packet_get_vlan_priority, + _os_packet_get_vlan_tag, _os_packet_get_wake_flag, _os_packet_increment_use_count, + _os_packet_set_app_metadata, _os_packet_set_compression_generation_count, + _os_packet_set_expire_time, _os_packet_set_expiry_action, + _os_packet_set_flow_uuid, _os_packet_set_group_end, _os_packet_set_group_start, + _os_packet_set_headroom, _os_packet_set_inet_checksum, _os_packet_set_keep_alive, + _os_packet_set_l4s_flag, _os_packet_set_link_broadcast, _os_packet_set_link_ethfcs, + _os_packet_set_link_header_length, _os_packet_set_link_multicast, + _os_packet_set_packetid, _os_packet_set_protocol_segment_size, + _os_packet_set_service_class, _os_packet_set_token, _os_packet_set_trace_id, + _os_packet_set_traffic_class, _os_packet_set_transport_last_packet, + _os_packet_set_transport_retransmit, _os_packet_set_transport_traffic_background, + _os_packet_set_transport_traffic_realtime, _os_packet_set_tso_flags, + _os_packet_set_tx_timestamp, _os_packet_set_vlan_tag, _os_packet_trace_event, + _os_proc_available_memory, _panic, _panic_init, _panic_with_data, + _pathconf, _peeloff, _pid_for_task, _pid_hibernate, _pid_resume, + _pid_shutdown_networking, _pid_shutdown_sockets, _pid_suspend, + _pipe, _pivot_root, _pkt_subtype_assert_fail, _pkt_type_assert_fail, + _poll, '_poll$NOCANCEL', _port_obj_init, _port_obj_table, + _port_obj_table_size, _posix_madvise, _posix_spawn, _posix_spawn_file_actions_add_fileportdup2_np, + _posix_spawn_file_actions_addchdir_np, _posix_spawn_file_actions_addclose, + _posix_spawn_file_actions_adddup2, _posix_spawn_file_actions_addfchdir_np, + _posix_spawn_file_actions_addinherit_np, _posix_spawn_file_actions_addopen, + _posix_spawn_file_actions_destroy, _posix_spawn_file_actions_init, + _posix_spawnattr_destroy, _posix_spawnattr_disable_ptr_auth_a_keys_np, + _posix_spawnattr_get_darwin_role_np, _posix_spawnattr_get_qos_clamp_np, + _posix_spawnattr_getarchpref_np, _posix_spawnattr_getbinpref_np, + _posix_spawnattr_getcpumonitor, _posix_spawnattr_getflags, + _posix_spawnattr_getmacpolicyinfo_np, _posix_spawnattr_getpcontrol_np, + _posix_spawnattr_getpgroup, _posix_spawnattr_getprocesstype_np, + _posix_spawnattr_getsigdefault, _posix_spawnattr_getsigmask, + _posix_spawnattr_init, _posix_spawnattr_set_alt_rosetta_np, + _posix_spawnattr_set_conclave_id_np, _posix_spawnattr_set_crash_behavior_deadline_np, + _posix_spawnattr_set_crash_behavior_np, _posix_spawnattr_set_crash_count_np, + _posix_spawnattr_set_csm_np, _posix_spawnattr_set_darwin_role_np, + _posix_spawnattr_set_filedesclimit_ext, _posix_spawnattr_set_gid_np, + _posix_spawnattr_set_groups_np, _posix_spawnattr_set_importancewatch_port_np, + _posix_spawnattr_set_jetsam_ttr_np, _posix_spawnattr_set_launch_type_np, + _posix_spawnattr_set_login_np, _posix_spawnattr_set_max_addr_np, + _posix_spawnattr_set_persona_gid_np, _posix_spawnattr_set_persona_groups_np, + _posix_spawnattr_set_persona_np, _posix_spawnattr_set_persona_uid_np, + _posix_spawnattr_set_platform_np, _posix_spawnattr_set_portlimits_ext, + _posix_spawnattr_set_ptrauth_task_port_np, _posix_spawnattr_set_qos_clamp_np, + _posix_spawnattr_set_registered_ports_np, _posix_spawnattr_set_subsystem_root_path_np, + _posix_spawnattr_set_threadlimit_ext, _posix_spawnattr_set_uid_np, + _posix_spawnattr_setarchpref_np, _posix_spawnattr_setauditsessionport_np, + _posix_spawnattr_setbinpref_np, _posix_spawnattr_setcoalition_np, + _posix_spawnattr_setcpumonitor, _posix_spawnattr_setcpumonitor_default, + _posix_spawnattr_setdataless_iopolicy_np, _posix_spawnattr_setexceptionports_np, + _posix_spawnattr_setflags, _posix_spawnattr_setjetsam, _posix_spawnattr_setjetsam_ext, + _posix_spawnattr_setmacpolicyinfo_np, _posix_spawnattr_setnosmt_np, + _posix_spawnattr_setpcontrol_np, _posix_spawnattr_setpgroup, + _posix_spawnattr_setprocesstype_np, _posix_spawnattr_setsigdefault, + _posix_spawnattr_setsigmask, _posix_spawnattr_setspecialport_np, + _pread, '_pread$NOCANCEL', _preadv, '_preadv$NOCANCEL', _proc_appstate, + _proc_can_use_foreground_hw, _proc_clear_cpulimits, _proc_clear_dirty, + _proc_current_thread_schedinfo, _proc_denap_assertion_begin_with_msg, + _proc_denap_assertion_complete, _proc_devstatusnotify, _proc_disable_cpumon, + _proc_disable_wakemon, _proc_donate_importance_boost, _proc_get_cpumon_params, + _proc_get_dirty, _proc_get_wakemon_params, _proc_importance_assertion_begin_with_msg, + _proc_importance_assertion_complete, _proc_kmsgbuf, _proc_libversion, + _proc_list_dynkqueueids, _proc_list_uptrs, _proc_listallpids, + _proc_listchildpids, _proc_listcoalitions, _proc_listpgrppids, + _proc_listpids, _proc_listpidspath, _proc_name, _proc_pid_rusage, + _proc_pidbind, _proc_piddynkqueueinfo, _proc_pidfdinfo, _proc_pidfileportinfo, + _proc_pidinfo, _proc_pidoriginatorinfo, _proc_pidpath, _proc_pidpath_audittoken, + _proc_regionfilename, _proc_reset_footprint_interval, _proc_resume_cpumon, + _proc_rlimit_control, _proc_set_cpumon_defaults, _proc_set_cpumon_params, + _proc_set_cpumon_params_fatal, _proc_set_csm, _proc_set_dirty, + _proc_set_no_smt, _proc_set_wakemon_defaults, _proc_set_wakemon_params, + _proc_setappstate, _proc_setcpu_deadline, _proc_setcpu_percentage, + _proc_setcpu_percentage_withdeadline, _proc_setpcontrol, _proc_setthread_cpupercent, + _proc_setthread_csm, _proc_setthread_no_smt, _proc_terminate, + _proc_terminate_all_rsr, _proc_trace_log, _proc_track_dirty, + _proc_udata_info, _proc_uuid_policy, _processor_assign, _processor_control, + _processor_exit, _processor_get_assignment, _processor_info, + _processor_set_create, _processor_set_default, _processor_set_destroy, + _processor_set_info, _processor_set_max_priority, _processor_set_policy_control, + _processor_set_policy_disable, _processor_set_policy_enable, + _processor_set_stack_usage, _processor_set_statistics, _processor_set_tasks, + _processor_set_tasks_with_flavor, _processor_set_threads, + _processor_start, _pselect, '_pselect$DARWIN_EXTSN', '_pselect$DARWIN_EXTSN$NOCANCEL', + '_pselect$NOCANCEL', _pthread_getugid_np, _pthread_setugid_np, + _ptrace, _pwrite, '_pwrite$NOCANCEL', _pwritev, '_pwritev$NOCANCEL', + _quotactl, _read, '_read$NOCANCEL', _readlink, _readlinkat, + _readv, '_readv$NOCANCEL', _reboot, _reboot_np, _record_system_event_as_kernel, + _recvfrom, '_recvfrom$NOCANCEL', _recvmsg, '_recvmsg$NOCANCEL', + _recvmsg_x, _register_uexc_handler, _removexattr, _rename, + _rename_ext, _renameat, _renameatx_np, _renamex_np, _revoke, + _rmdir, _searchfs, _select, '_select$DARWIN_EXTSN', '_select$DARWIN_EXTSN$NOCANCEL', + '_select$NOCANCEL', _sem_close, _sem_destroy, _sem_getvalue, + _sem_init, _sem_open, _sem_post, _sem_trywait, _sem_unlink, + _sem_wait, '_sem_wait$NOCANCEL', _semaphore_create, _semaphore_destroy, + _semaphore_signal, _semaphore_signal_all, _semaphore_signal_all_trap, + _semaphore_signal_thread, _semaphore_signal_thread_trap, _semaphore_signal_trap, + _semaphore_timedwait, _semaphore_timedwait_signal, _semaphore_timedwait_signal_trap, + _semaphore_timedwait_trap, _semaphore_wait, _semaphore_wait_signal, + _semaphore_wait_signal_trap, _semaphore_wait_trap, _semctl, + _semget, _semop, _semsys, _sendfile, _sendmsg, '_sendmsg$NOCANCEL', + _sendmsg_x, _sendto, '_sendto$NOCANCEL', _setattrlist, _setattrlistat, + _setaudit, _setaudit_addr, _setauid, _setegid, _seteuid, _setgid, + _setgroups, _setiopolicy_np, _setitimer, _setpgid, _setpriority, + _setprivexec, _setregid, _setreuid, _setrlimit, _setsgroups_np, + _setsid, _setsockopt, _setuid, _setwgroups_np, _setxattr, + _sfi_get_class_offtime, _sfi_process_get_flags, _sfi_process_set_flags, + _sfi_set_class_offtime, _shm_open, _shm_unlink, _shmat, _shmctl, + _shmdt, _shmget, _shmsys, _shutdown, _sigpending, _sigprocmask, + _sigsuspend, '_sigsuspend$NOCANCEL', _socket, _socket_delegate, + _socketpair, _stackshot_capture_with_config, _stackshot_config_create, + _stackshot_config_dealloc, _stackshot_config_dealloc_buffer, + _stackshot_config_get_stackshot_buffer, _stackshot_config_get_stackshot_size, + _stackshot_config_set_delta_timestamp, _stackshot_config_set_flags, + _stackshot_config_set_pagetable_mask, _stackshot_config_set_pid, + _stackshot_config_set_size_hint, _stat, _stat64, _statfs, + _statfs64, _swapon, _swtch, _swtch_pri, _symlink, _symlinkat, + _sync, _syscall, _syscall_thread_switch, _system_get_sfi_window, + _system_override, _system_set_sfi_window, _task_assign, _task_assign_default, + _task_create, _task_create_identity_token, _task_dyld_process_info_notify_deregister, + _task_dyld_process_info_notify_get, _task_dyld_process_info_notify_register, + _task_for_pid, _task_generate_corpse, _task_get_assignment, + _task_get_dyld_image_infos, _task_get_emulation_vector, _task_get_exc_guard_behavior, + _task_get_exception_ports, _task_get_exception_ports_info, + _task_get_mach_voucher, _task_get_special_port, _task_get_state, + _task_identity_token_get_task_port, _task_info, _task_inspect, + _task_inspect_for_pid, _task_map_corpse_info, _task_map_corpse_info_64, + _task_map_kcdata_object_64, _task_name_for_pid, _task_policy, + _task_policy_get, _task_policy_set, _task_purgable_info, _task_read_for_pid, + _task_register_dyld_get_process_state, _task_register_dyld_image_infos, + _task_register_dyld_set_dyld_state, _task_register_dyld_shared_cache_image_info, + _task_restartable_ranges_register, _task_restartable_ranges_synchronize, + _task_resume, _task_resume2, _task_sample, _task_self_, _task_self_trap, + _task_set_corpse_forking_behavior, _task_set_emulation, _task_set_emulation_vector, + _task_set_exc_guard_behavior, _task_set_exception_ports, _task_set_info, + _task_set_mach_voucher, _task_set_phys_footprint_limit, _task_set_policy, + _task_set_port_space, _task_set_ras_pc, _task_set_special_port, + _task_set_state, _task_suspend, _task_suspend2, _task_swap_exception_ports, + _task_swap_mach_voucher, _task_terminate, _task_test_async_upcall_propagation, + _task_test_sync_upcall, _task_threads, _task_unregister_dyld_image_infos, + _task_zone_info, _terminate_with_payload, _terminate_with_reason, + _thread_abort, _thread_abort_safely, _thread_assign, _thread_assign_default, + _thread_convert_thread_state, _thread_create, _thread_create_running, + _thread_depress_abort, _thread_destruct_special_reply_port, + _thread_get_assignment, _thread_get_exception_ports, _thread_get_exception_ports_info, + _thread_get_mach_voucher, _thread_get_register_pointer_values, + _thread_get_special_port, _thread_get_special_reply_port, + _thread_get_state, _thread_info, _thread_policy, _thread_policy_get, + _thread_policy_set, _thread_resume, _thread_sample, _thread_self_trap, + _thread_selfcounts, _thread_set_exception_ports, _thread_set_mach_voucher, + _thread_set_policy, _thread_set_special_port, _thread_set_state, + _thread_suspend, _thread_swap_exception_ports, _thread_swap_mach_voucher, + _thread_switch, _thread_terminate, _thread_wire, _tracker_action, + _truncate, _umask, _undelete, _ungraftdmg, _unlink, _unlinkat, + _unmount, _usrctl, _utimensat, _utimes, _vfs_purge, _vm_allocate, + _vm_allocate_cpm, _vm_behavior_set, _vm_copy, _vm_deallocate, + _vm_inherit, _vm_kernel_page_mask, _vm_kernel_page_shift, + _vm_kernel_page_size, _vm_machine_attribute, _vm_map, _vm_map_page_query, + _vm_msync, _vm_page_mask, _vm_page_shift, _vm_page_size, _vm_pressure_monitor, + _vm_protect, _vm_purgable_control, _vm_read, _vm_read_list, + _vm_read_overwrite, _vm_region_64, _vm_region_recurse_64, + _vm_remap, _vm_remap_new, _vm_wire, _vm_write, _voucher_mach_msg_adopt, + _voucher_mach_msg_clear, _voucher_mach_msg_revert, _voucher_mach_msg_set, + _vprintf_stderr_func, _wait4, _waitid, '_waitid$NOCANCEL', + _work_interval_copy_port, _work_interval_create, _work_interval_destroy, + _work_interval_get_flags_from_port, _work_interval_instance_alloc, + _work_interval_instance_clear, _work_interval_instance_finish, + _work_interval_instance_free, _work_interval_instance_get_complexity, + _work_interval_instance_get_deadline, _work_interval_instance_get_finish, + _work_interval_instance_get_id, _work_interval_instance_get_start, + _work_interval_instance_get_telemetry_data, _work_interval_instance_set_complexity, + _work_interval_instance_set_deadline, _work_interval_instance_set_finish, + _work_interval_instance_set_start, _work_interval_instance_start, + _work_interval_instance_update, _work_interval_join, _work_interval_join_port, + _work_interval_leave, _work_interval_notify, _work_interval_notify_simple, + _write, '_write$NOCANCEL', _writev, '_writev$NOCANCEL' ] + - targets: [ armv7k-watchos, arm64_32-watchos ] + symbols: [ __mach_make_memory_entry, _mach_vm_region_info, _mach_vm_region_info_64, + _task_wire, _vm_map_64, _vm_map_exec_lockdown, _vm_mapped_pages_info, + _vm_region, _vm_region_recurse ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_m.dylib' +current-version: 3252.4.1 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos ] + symbols: [ __simd_ceil_d2, __simd_ceil_f4, __simd_floor_d2, __simd_floor_f4, + __simd_rint_d2, __simd_rint_f4, __simd_trunc_d2, __simd_trunc_f4 ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ __FE_DFL_ENV, ___Libm_version, ___cos_d2, ___cos_f4, ___cospi, + ___cospif, ___exp10, ___exp10f, ___fegetfltrounds, ___fpclassifyd, + ___fpclassifyf, ___fpclassifyl, ___inline_isfinited, ___inline_isfinitef, + ___inline_isfinitel, ___inline_isinfd, ___inline_isinff, ___inline_isinfl, + ___inline_isnand, ___inline_isnanf, ___inline_isnanl, ___inline_isnormald, + ___inline_isnormalf, ___inline_isnormall, ___inline_signbitd, + ___inline_signbitf, ___inline_signbitl, ___invert_d2, ___invert_d3, + ___invert_d4, ___invert_f2, ___invert_f3, ___invert_f4, ___isfinited, + ___isfinitef, ___isfinitel, ___isinfd, ___isinff, ___isinfl, + ___isnand, ___isnanf, ___isnanl, ___isnormald, ___isnormalf, + ___isnormall, ___math_errhandling, ___signbitd, ___signbitf, + ___signbitl, ___sin_d2, ___sin_f4, ___sincos, ___sincos_stret, + ___sincosf, ___sincosf_stret, ___sincospi, ___sincospi_stret, + ___sincospif, ___sincospif_stret, ___sinpi, ___sinpif, ___tanpi, + ___tanpif, __simd_acos_d2, __simd_acos_f4, __simd_acosh_d2, + __simd_acosh_f4, __simd_asin_d2, __simd_asin_f4, __simd_asinh_d2, + __simd_asinh_f4, __simd_atan2_d2, __simd_atan2_f4, __simd_atan_d2, + __simd_atan_f4, __simd_atanh_d2, __simd_atanh_f4, __simd_cbrt_d2, + __simd_cbrt_f4, __simd_cos_d2, __simd_cos_f4, __simd_cosh_d2, + __simd_cosh_f4, __simd_cospi_d2, __simd_cospi_f4, __simd_erf_d2, + __simd_erf_f4, __simd_erfc_d2, __simd_erfc_f4, __simd_exp10_d2, + __simd_exp10_f4, __simd_exp2_d2, __simd_exp2_f4, __simd_exp_d2, + __simd_exp_f4, __simd_expm1_d2, __simd_expm1_f4, __simd_fma_d2, + __simd_fma_f4, __simd_fmod_d2, __simd_fmod_f4, __simd_hypot_d2, + __simd_hypot_f4, __simd_incircle_pd2, __simd_incircle_pf2, + __simd_insphere_pd3, __simd_insphere_pf3, __simd_lgamma_d2, + __simd_lgamma_f4, __simd_log10_d2, __simd_log10_f4, __simd_log1p_d2, + __simd_log1p_f4, __simd_log2_d2, __simd_log2_f4, __simd_log_d2, + __simd_log_f4, __simd_nextafter_d2, __simd_nextafter_f4, __simd_orient_pd2, + __simd_orient_pd3, __simd_orient_pf2, __simd_orient_pf3, __simd_orient_vd2, + __simd_orient_vd3, __simd_orient_vf2, __simd_orient_vf3, __simd_pow_d2, + __simd_pow_f4, __simd_remainder_d2, __simd_remainder_f4, __simd_round_d2, + __simd_round_f4, __simd_sin_d2, __simd_sin_f4, __simd_sincos_d2, + __simd_sincos_f4, __simd_sincospi_d2, __simd_sincospi_f4, + __simd_sinh_d2, __simd_sinh_f4, __simd_sinpi_d2, __simd_sinpi_f4, + __simd_tan_d2, __simd_tan_f4, __simd_tanh_d2, __simd_tanh_f4, + __simd_tanpi_d2, __simd_tanpi_f4, __simd_tgamma_d2, __simd_tgamma_f4, + _acos, _acosf, _acosh, _acoshf, _acoshl, _acosl, _asin, _asinf, + _asinh, _asinhf, _asinhl, _asinl, _atan, _atan2, _atan2f, + _atan2l, _atanf, _atanh, _atanhf, _atanhl, _atanl, _cabs, + _cabsf, _cabsl, _cacos, _cacosf, _cacosh, _cacoshf, _cacoshl, + _cacosl, _carg, _cargf, _cargl, _casin, _casinf, _casinh, + _casinhf, _casinhl, _casinl, _catan, _catanf, _catanh, _catanhf, + _catanhl, _catanl, _cbrt, _cbrtf, _cbrtl, _ccos, _ccosf, _ccosh, + _ccoshf, _ccoshl, _ccosl, _ceil, _ceilf, _ceill, _cexp, _cexpf, + _cexpl, _cimag, _cimagf, _cimagl, _clog, _clogf, _clogl, _conj, + _conjf, _conjl, _copysign, _copysignf, _copysignl, _cos, _cosf, + _cosh, _coshf, _coshl, _cosl, _cpow, _cpowf, _cpowl, _cproj, + _cprojf, _cprojl, _creal, _crealf, _creall, _csin, _csinf, + _csinh, _csinhf, _csinhl, _csinl, _csqrt, _csqrtf, _csqrtl, + _ctan, _ctanf, _ctanh, _ctanhf, _ctanhl, _ctanl, _erf, _erfc, + _erfcf, _erfcl, _erff, _erfl, _exp, _exp2, _exp2f, _exp2l, + _expf, _expl, _expm1, _expm1f, _expm1l, _fabs, _fabsf, _fabsl, + _fdim, _fdimf, _fdiml, _feclearexcept, _fegetenv, _fegetexceptflag, + _fegetround, _feholdexcept, _feraiseexcept, _fesetenv, _fesetexceptflag, + _fesetround, _fetestexcept, _feupdateenv, _floor, _floorf, + _floorl, _fma, _fmaf, _fmal, _fmax, _fmaxf, _fmaxl, _fmin, + _fminf, _fminl, _fmod, _fmodf, _fmodl, _frexp, _frexpf, _frexpl, + _hypot, _hypotf, _hypotl, _ilogb, _ilogbf, _ilogbl, _isinf, + _isnan, _j0, _j1, _jn, _ldexp, _ldexpf, _ldexpl, _lgamma, + _lgamma_r, _lgammaf, _lgammaf_r, _lgammal, _lgammal_r, _llrint, + _llrintf, _llrintl, _llround, _llroundf, _llroundl, _log, + _log10, _log10f, _log10l, _log1p, _log1pf, _log1pl, _log2, + _log2f, _log2l, _logb, _logbf, _logbl, _logf, _logl, _lrint, + _lrintf, _lrintl, _lround, _lroundf, _lroundl, _matrix_identity_double2x2, + _matrix_identity_double3x3, _matrix_identity_double4x4, _matrix_identity_float2x2, + _matrix_identity_float3x3, _matrix_identity_float4x4, _modf, + _modff, _modfl, _nan, _nanf, _nanl, _nearbyint, _nearbyintf, + _nearbyintl, _nextafter, _nextafterf, _nextafterl, _nexttoward, + _nexttowardf, _nexttowardl, _pow, _powf, _powl, _remainder, + _remainderf, _remainderl, _remquo, _remquof, _remquol, _rint, + _rintf, _rintl, _round, _roundf, _roundl, _scalb, _scalbln, + _scalblnf, _scalblnl, _scalbn, _scalbnf, _scalbnl, _signgam, + _sin, _sinf, _sinh, _sinhf, _sinhl, _sinl, _sqrt, _sqrtf, + _sqrtl, _tan, _tanf, _tanh, _tanhf, _tanhl, _tanl, _tgamma, + _tgammaf, _tgammal, _trunc, _truncf, _truncl, _y0, _y1, _yn ] + - targets: [ arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ __FE_DFL_DISABLE_DENORMS_ENV ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_malloc.dylib' +current-version: 474.0.13 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos ] + symbols: [ _quarantine_diagnose_fault_from_crash_reporter ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos ] + symbols: [ _malloc_type_aligned_alloc, _malloc_type_calloc, _malloc_type_free, + _malloc_type_malloc, _malloc_type_posix_memalign, _malloc_type_realloc, + _malloc_type_valloc, _malloc_type_zone_calloc, _malloc_type_zone_free, + _malloc_type_zone_malloc, _malloc_type_zone_memalign, _malloc_type_zone_realloc, + _malloc_type_zone_valloc, _xzm_ptr_lookup_4test ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ ___mach_stack_logging_copy_uniquing_table, ___mach_stack_logging_enumerate_records, + ___mach_stack_logging_frames_for_uniqued_stack, ___mach_stack_logging_get_frames, + ___mach_stack_logging_get_frames_for_stackid, ___mach_stack_logging_set_file_path, + ___mach_stack_logging_shared_memory_address, ___mach_stack_logging_stackid_for_vm_region, + ___mach_stack_logging_start_reading, ___mach_stack_logging_stop_reading, + ___mach_stack_logging_uniquing_table_copy_from_serialized, + ___mach_stack_logging_uniquing_table_read_stack, ___mach_stack_logging_uniquing_table_release, + ___mach_stack_logging_uniquing_table_retain, ___mach_stack_logging_uniquing_table_serialize, + ___mach_stack_logging_uniquing_table_sizeof, ___malloc_init, + ___malloc_late_init, __malloc_fork_child, __malloc_fork_parent, + __malloc_fork_prepare, __malloc_no_asl_log, __os_cpu_number_override, + _aligned_alloc, _calloc, _free, _mag_set_thread_index, _malloc, + _malloc_check_counter, _malloc_check_each, _malloc_check_start, + _malloc_claimed_address, _malloc_create_legacy_default_zone, + _malloc_create_zone, _malloc_debug, _malloc_default_purgeable_zone, + _malloc_default_zone, _malloc_destroy_zone, _malloc_engaged_nano, + _malloc_enter_process_memory_limit_warn_mode, _malloc_error, + _malloc_freezedry, _malloc_get_all_zones, _malloc_get_thread_options, + _malloc_get_zone_name, _malloc_good_size, _malloc_jumpstart, + _malloc_logger, _malloc_make_nonpurgeable, _malloc_make_purgeable, + _malloc_memory_event_handler, _malloc_memorypressure_mask_default_4libdispatch, + _malloc_memorypressure_mask_msl_4libdispatch, _malloc_num_zones, + _malloc_num_zones_allocated, _malloc_printf, _malloc_register_stack_logger, + _malloc_sanitizer_get_functions, _malloc_sanitizer_is_enabled, + _malloc_sanitizer_set_functions, _malloc_set_thread_options, + _malloc_set_zone_name, _malloc_singlethreaded, _malloc_size, + _malloc_zero_on_free_disable, _malloc_zone_batch_free, _malloc_zone_batch_malloc, + _malloc_zone_calloc, _malloc_zone_check, _malloc_zone_claimed_address, + _malloc_zone_disable_discharge_checking, _malloc_zone_discharge, + _malloc_zone_enable_discharge_checking, _malloc_zone_enumerate_discharged_pointers, + _malloc_zone_free, _malloc_zone_from_ptr, _malloc_zone_log, + _malloc_zone_malloc, _malloc_zone_memalign, _malloc_zone_pressure_relief, + _malloc_zone_print, _malloc_zone_print_ptr_info, _malloc_zone_realloc, + _malloc_zone_register, _malloc_zone_statistics, _malloc_zone_unregister, + _malloc_zone_valloc, _malloc_zones, _mstats, _pgm_diagnose_fault_from_crash_reporter, + _pgm_extract_report_from_corpse, _posix_memalign, _realloc, + '_reallocarray$DARWIN_EXTSN', '_reallocarrayf$DARWIN_EXTSN', + _sanitizer_diagnose_fault_from_crash_reporter, _scalable_zone_info, + _scalable_zone_statistics, _set_malloc_singlethreaded, _stack_logging_enable_logging, + _szone_check_counter, _szone_check_modulo, _szone_check_start, + _tiny_print_region_free_list, _turn_off_stack_logging, _turn_on_stack_logging, + _valloc, _vfree, _zeroify_scalable_zone ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_networkextension.dylib' +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos ] + symbols: [ _ne_copy_cached_preferred_bundle_for_bundle_identifier ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _NEHelperCacheAddRedirectedAddress, _NEHelperCacheClearRedirectedAddresses, + _NEHelperCacheClearUUIDs, _NEHelperCacheCopyAppUUIDMapping, + _NEHelperCacheCopyAppUUIDMappingExtended, _NEHelperCacheCopyAppUUIDMappingForUIDExtended, + _NEHelperCacheCopySigningIdentifierMapping, _NEHelperCacheSetDomainDictionaries, + _NEHelperCacheSetMatchDomains, _NEHelperCacheSetRoutes, _NEHelperCopyAggregatePathRules, + _NEHelperCopyAppInfo, _NEHelperCopyCurrentNetworkAsync, _NEHelperCopyCurrentNetworkInfo, + _NEHelperCopyDataForCertificate, _NEHelperCopyPerAppDomains, + _NEHelperCopyResponse, _NEHelperCopyXPCEndpointForIdentityProxy, + _NEHelperGetAppTrackerDomains, _NEHelperGetIKESocket, _NEHelperGetIKESocketWithResult, + _NEHelperGetKernelControlSocket, _NEHelperGetKernelControlSocketExtended, + _NEHelperGetNECPSessionFD, _NEHelperGetPFKeySocket, _NEHelperHandleConfigurationsChangedBySC, + _NEHelperInit, _NEHelperInterfaceCreate, _NEHelperInterfaceDestroy, + _NEHelperInterfaceRemoveAddress, _NEHelperInterfaceSetAddress, + _NEHelperInterfaceSetAddressWithLifetime, _NEHelperInterfaceSetDelegate, + _NEHelperInterfaceSetDescription, _NEHelperInterfaceSetMTU, + _NEHelperInterfaceSetOption, _NEHelperSendRequest, _NEHelperSettingsRemove, + _NEHelperSettingsSetArray, _NEHelperSettingsSetBool, _NEHelperSettingsSetNumber, + _NEHelperVPNConfigurationExists, _NEHelperVPNSetEnabled, _g_ne_read_uuid_cache, + _g_ne_uuid_cache_hit, _ne_copy_cached_bundle_identifier_for_uuid, + _ne_copy_cached_uuids_for_bundle_identifier, _ne_copy_signature_info_for_pid, + _ne_copy_signing_identifier_for_pid, _ne_copy_signing_identifier_for_pid_with_audit_token, + _ne_copy_uuid_cache, _ne_force_reset_uuid_cache, _ne_get_configuration_generation, + _ne_is_sockaddr_valid, _ne_log_large_obj, _ne_log_obj, _ne_print_backtrace, + _ne_privacy_dns_netagent_id, _ne_privacy_proxy_netagent_id, + _ne_session_add_necp_drop_dest_from_dest_list, _ne_session_add_necp_drop_dest_from_path, + _ne_session_address_matches_subnets, _ne_session_agent_get_advisory, + _ne_session_agent_get_advisory_interface_index, _ne_session_always_on_vpn_configs_present, + _ne_session_always_on_vpn_configs_present_at_boot, _ne_session_app_vpn_configs_present, + _ne_session_cancel, _ne_session_clear_caches, _ne_session_content_filter_configs_present, + _ne_session_copy_app_data_from_flow_divert_socket, _ne_session_copy_app_data_from_flow_divert_token, + _ne_session_copy_os_version_string, _ne_session_copy_policy_match, + _ne_session_copy_security_session_info, _ne_session_copy_socket_attributes, + _ne_session_copy_socket_domain_attributes, _ne_session_create, + _ne_session_disable_restrictions, _ne_session_dns_proxy_configs_present, + _ne_session_dns_settings_configs_present, _ne_session_establish_ipc, + _ne_session_fallback_advisory, _ne_session_fallback_default, + _ne_session_get_config_id_from_network_agent, _ne_session_get_configuration_id, + _ne_session_get_info, _ne_session_get_info2, _ne_session_get_status, + _ne_session_info_type_to_string, _ne_session_initialize_necp_drop_all, + _ne_session_is_always_on_vpn_enabled, _ne_session_is_safeboot, + _ne_session_local_communication_configs_present, _ne_session_local_communication_send_info, + _ne_session_manager_get_pid, _ne_session_manager_has_active_sessions, + _ne_session_manager_is_running, _ne_session_map_interface_to_provider_uuid, + _ne_session_on_demand_configs_present, _ne_session_path_controller_configs_present, + _ne_session_policy_copy_flow_divert_token, _ne_session_policy_copy_flow_divert_token_with_key, + _ne_session_policy_match_get_filter_unit, _ne_session_policy_match_get_flow_divert_unit, + _ne_session_policy_match_get_scoped_interface_index, _ne_session_policy_match_get_service, + _ne_session_policy_match_get_service_action, _ne_session_policy_match_get_service_type, + _ne_session_policy_match_is_drop, _ne_session_policy_match_is_flow_divert, + _ne_session_policy_match_service_is_registered, _ne_session_relay_configs_present, + _ne_session_release, _ne_session_retain, _ne_session_send_barrier, + _ne_session_service_copy_cached_match_domains, _ne_session_service_get_dns_service_id, + _ne_session_service_get_dns_service_id_for_interface, _ne_session_service_matches_address, + _ne_session_service_matches_address_for_interface, _ne_session_set_event_handler, + _ne_session_set_socket_attributes, _ne_session_set_socket_context_attribute, + _ne_session_set_socket_tracker_attributes, _ne_session_should_disable_nexus, + _ne_session_start, _ne_session_start_on_behalf_of, _ne_session_start_with_options, + _ne_session_status_to_string, _ne_session_stop, _ne_session_stop_all_with_plugin_type, + _ne_session_stop_reason_to_string, _ne_session_type_to_string, + _ne_session_use_as_system_vpn, _ne_session_vod_evaluate_connection_present, + _ne_session_vpn_include_all_networks_configs_present, _ne_socket_set_attribution, + _ne_socket_set_domains, _ne_socket_set_is_app_initiated, _ne_socket_set_website_attribution, + _ne_tracker_build_cache, _ne_tracker_build_trie, _ne_tracker_check_info_changed, + _ne_tracker_check_is_hostname_blocked, _ne_tracker_check_tcc, + _ne_tracker_clear_cache, _ne_tracker_context_can_block_request, + _ne_tracker_context_get_domain, _ne_tracker_context_get_domain_owner, + _ne_tracker_context_is_from_app_list, _ne_tracker_context_is_from_web_list, + _ne_tracker_copy_current_stacktrace, _ne_tracker_create_xcode_issue, + _ne_tracker_get_ddg_dictionary, _ne_tracker_get_disposition, + _ne_tracker_lookup_app_domains, _ne_tracker_set_test_domains, + _ne_tracker_should_save_stacktrace, _ne_tracker_validate_domain, + _ne_trie_free, _ne_trie_has_high_ascii, _ne_trie_init, _ne_trie_init_from_file, + _ne_trie_insert, _ne_trie_save_to_file, _ne_trie_search, _necp_drop_dest_copy_dest_entry_list, + _nehelper_copy_connection_for_delegate_class, _nehelper_queue, + _nelog_is_debug_logging_enabled, _nelog_is_extra_vpn_logging_enabled, + _nelog_is_info_logging_enabled ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_notify.dylib' +current-version: 317 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ __notify_fork_child, _notify_cancel, _notify_check, _notify_dump_status, + _notify_get_event, _notify_get_state, _notify_is_valid_token, + _notify_monitor_file, _notify_peek, _notify_post, _notify_register_check, + _notify_register_dispatch, _notify_register_file_descriptor, + _notify_register_mach_port, _notify_register_plain, _notify_register_signal, + _notify_resume, _notify_resume_pid, _notify_set_options, _notify_set_state, + _notify_simple_post, _notify_suspend, _notify_suspend_pid ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_platform.dylib' +current-version: 306.0.1 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos ] + symbols: [ _MKGetTimeBaseInfo, __simple_memcmp, _platform_task_attach, + _platform_task_copy_next_thread, _platform_task_detach, _platform_task_is_64_bit, + _platform_task_perform, _platform_task_resume_threads, _platform_task_suspend_threads, + _platform_task_update_threads, _platform_thread_abort_safely, + _platform_thread_get_pthread, _platform_thread_get_state, + _platform_thread_get_unique_id, _platform_thread_info, _platform_thread_perform, + _platform_thread_release, _platform_thread_resume, _platform_thread_set_state, + _platform_thread_suspend, _udiv10 ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _OSAtomicAdd32, _OSAtomicAdd32Barrier, _OSAtomicAdd64, _OSAtomicAdd64Barrier, + _OSAtomicAnd32, _OSAtomicAnd32Barrier, _OSAtomicAnd32Orig, + _OSAtomicAnd32OrigBarrier, _OSAtomicCompareAndSwap32, _OSAtomicCompareAndSwap32Barrier, + _OSAtomicCompareAndSwap64, _OSAtomicCompareAndSwap64Barrier, + _OSAtomicCompareAndSwapInt, _OSAtomicCompareAndSwapIntBarrier, + _OSAtomicCompareAndSwapLong, _OSAtomicCompareAndSwapLongBarrier, + _OSAtomicCompareAndSwapPtr, _OSAtomicCompareAndSwapPtrBarrier, + _OSAtomicDecrement32, _OSAtomicDecrement32Barrier, _OSAtomicDecrement64, + _OSAtomicDecrement64Barrier, _OSAtomicDequeue, _OSAtomicEnqueue, + _OSAtomicIncrement32, _OSAtomicIncrement32Barrier, _OSAtomicIncrement64, + _OSAtomicIncrement64Barrier, _OSAtomicOr32, _OSAtomicOr32Barrier, + _OSAtomicOr32Orig, _OSAtomicOr32OrigBarrier, _OSAtomicTestAndClear, + _OSAtomicTestAndClearBarrier, _OSAtomicTestAndSet, _OSAtomicTestAndSetBarrier, + _OSAtomicXor32, _OSAtomicXor32Barrier, _OSAtomicXor32Orig, + _OSAtomicXor32OrigBarrier, _OSMemoryBarrier, _OSSpinLockLock, + _OSSpinLockTry, _OSSpinLockUnlock, __OSSpinLockLockSlow, ___bzero, + ___libplatform_init, ___os_log_simple_offset, ___os_once_reset, + ___platform_sigaction, __longjmp, __os_alloc_once, __os_lock_type_eliding, + __os_lock_type_handoff, __os_lock_type_nospin, __os_lock_type_spin, + __os_lock_type_transactional, __os_lock_type_unfair, __os_log_simple, + __os_log_simple_parse, __os_log_simple_parse_identifiers, + __os_log_simple_parse_message, __os_log_simple_parse_subsystem, + __os_log_simple_parse_timestamp, __os_log_simple_parse_type, + __os_log_simple_reinit_4launchd, __os_log_simple_send, __os_log_simple_shim, + __os_nospin_lock_lock, __os_nospin_lock_trylock, __os_nospin_lock_unlock, + __os_once, __os_semaphore_create, __os_semaphore_dispose, + __os_semaphore_signal, __os_semaphore_wait, __platform_bzero, + __platform_memccpy, __platform_memchr, __platform_memcmp, + __platform_memcmp_zero_aligned8, __platform_memmove, __platform_memset, + __platform_memset_pattern16, __platform_memset_pattern4, __platform_memset_pattern8, + __platform_strchr, __platform_strcmp, __platform_strcpy, __platform_strlcat, + __platform_strlcpy, __platform_strlen, __platform_strncmp, + __platform_strncpy, __platform_strnlen, __platform_strstr, + __setjmp, __simple_asl_get_fd, __simple_asl_log, __simple_asl_log_prog, + __simple_asl_msg_new, __simple_asl_msg_set, __simple_asl_send, + __simple_dprintf, __simple_esappend, __simple_esprintf, __simple_getenv, + __simple_put, __simple_putline, __simple_salloc, __simple_sappend, + __simple_sfree, __simple_sprintf, __simple_sresize, __simple_string, + __simple_vdprintf, __simple_vesprintf, __simple_vsprintf, + __spin_lock, __spin_lock_try, __spin_unlock, _ffs, _ffsl, + _ffsll, _fls, _flsl, _flsll, _longjmp, _os_lock_lock, _os_lock_trylock, + _os_lock_unlock, _os_log_simple_now, _os_log_simple_type_from_asl, + _os_unfair_lock_assert_not_owner, _os_unfair_lock_assert_owner, + _os_unfair_lock_lock, _os_unfair_lock_lock_no_tsd, _os_unfair_lock_lock_with_options, + _os_unfair_lock_trylock, _os_unfair_lock_unlock, _os_unfair_lock_unlock_no_tsd, + _os_unfair_recursive_lock_lock_with_options, _os_unfair_recursive_lock_owned, + _os_unfair_recursive_lock_trylock, _os_unfair_recursive_lock_tryunlock4objc, + _os_unfair_recursive_lock_unlock, _os_unfair_recursive_lock_unlock_forked_child, + _setjmp, _siglongjmp, _sigsetjmp, _spin_lock, _spin_lock_try, + _spin_unlock, _sys_cache_control, _sys_dcache_flush, _sys_icache_invalidate ] + - targets: [ arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _getcontext, _makecontext, _setcontext, _swapcontext ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_product_info_filter.dylib' +current-version: 10 +parent-umbrella: + - targets: [ armv7k-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_pthread.dylib' +current-version: 519 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ ___is_threaded, ___pthread_init, ___pthread_late_init, ___pthread_workqueue_setkill, + ___unix_conforming, __pthread_atfork_child, __pthread_atfork_child_handlers, + __pthread_atfork_parent, __pthread_atfork_parent_handlers, + __pthread_atfork_prepare, __pthread_atfork_prepare_handlers, + __pthread_clear_qos_tsd, __pthread_exit_if_canceled, __pthread_fork_child, + __pthread_fork_child_postinit, __pthread_fork_parent, __pthread_fork_prepare, + __pthread_is_threaded, __pthread_override_qos_class_end_direct, + __pthread_override_qos_class_start_direct, __pthread_qos_class_and_override_decode, + __pthread_qos_class_and_override_encode, __pthread_qos_class_decode, + __pthread_qos_class_encode, __pthread_qos_class_encode_workqueue, + __pthread_qos_override_end_direct, __pthread_qos_override_start_direct, + __pthread_sched_pri_decode, __pthread_sched_pri_encode, __pthread_self, + __pthread_set_properties_self, __pthread_set_self, __pthread_setspecific_static, + __pthread_start, __pthread_tsd_shared_cache_first, __pthread_tsd_shared_cache_last, + __pthread_workloop_create, __pthread_workloop_destroy, __pthread_workqueue_add_cooperativethreads, + __pthread_workqueue_addthreads, __pthread_workqueue_asynchronous_override_add, + __pthread_workqueue_asynchronous_override_reset_all_self, + __pthread_workqueue_asynchronous_override_reset_self, __pthread_workqueue_init, + __pthread_workqueue_init_with_kevent, __pthread_workqueue_init_with_workloop, + __pthread_workqueue_override_reset, __pthread_workqueue_override_start_direct, + __pthread_workqueue_override_start_direct_check_owner, __pthread_workqueue_set_event_manager_priority, + __pthread_workqueue_should_narrow, __pthread_workqueue_supported, + __pthread_wqthread, __pthread_yield_to_enqueuer_4dispatch, + _cthread_yield, _posix_spawnattr_get_qos_class_np, _posix_spawnattr_set_qos_class_np, + _pthread_atfork, _pthread_attr_destroy, _pthread_attr_get_qos_class_np, + _pthread_attr_getdetachstate, _pthread_attr_getguardsize, + _pthread_attr_getinheritsched, _pthread_attr_getschedparam, + _pthread_attr_getschedpolicy, _pthread_attr_getscope, _pthread_attr_getstack, + _pthread_attr_getstackaddr, _pthread_attr_getstacksize, _pthread_attr_init, + _pthread_attr_set_qos_class_np, _pthread_attr_setcpupercent_np, + _pthread_attr_setdetachstate, _pthread_attr_setguardsize, + _pthread_attr_setinheritsched, _pthread_attr_setschedparam, + _pthread_attr_setschedpolicy, _pthread_attr_setscope, _pthread_attr_setstack, + _pthread_attr_setstackaddr, _pthread_attr_setstacksize, _pthread_cancel, + _pthread_chdir_np, _pthread_cond_broadcast, _pthread_cond_destroy, + _pthread_cond_init, _pthread_cond_signal, _pthread_cond_signal_thread_np, + _pthread_cond_timedwait, '_pthread_cond_timedwait$NOCANCEL', + _pthread_cond_timedwait_relative_np, _pthread_cond_wait, '_pthread_cond_wait$NOCANCEL', + _pthread_condattr_destroy, _pthread_condattr_getpshared, _pthread_condattr_init, + _pthread_condattr_setpshared, _pthread_cpu_number_np, _pthread_create, + _pthread_create_from_mach_thread, _pthread_create_suspended_np, + _pthread_create_with_workgroup_np, _pthread_current_stack_contains_np, + _pthread_dependency_fulfill_np, _pthread_dependency_init_np, + _pthread_dependency_wait_np, _pthread_detach, _pthread_equal, + _pthread_exit, _pthread_fchdir_np, _pthread_from_mach_thread_np, + _pthread_get_qos_class_np, _pthread_get_stackaddr_np, _pthread_get_stacksize_np, + _pthread_getconcurrency, _pthread_getname_np, _pthread_getschedparam, + _pthread_getspecific, _pthread_install_workgroup_functions_np, + _pthread_introspection_getspecific_np, _pthread_introspection_hook_install, + _pthread_introspection_setspecific_np, _pthread_is_threaded_np, + _pthread_join, '_pthread_join$NOCANCEL', _pthread_key_create, + _pthread_key_delete, _pthread_key_init_np, _pthread_kill, + _pthread_layout_offsets, _pthread_mach_thread_np, _pthread_main_np, + _pthread_main_thread_np, _pthread_mutex_destroy, _pthread_mutex_getprioceiling, + _pthread_mutex_init, _pthread_mutex_lock, _pthread_mutex_setprioceiling, + _pthread_mutex_trylock, _pthread_mutex_unlock, _pthread_mutexattr_destroy, + _pthread_mutexattr_getpolicy_np, _pthread_mutexattr_getprioceiling, + _pthread_mutexattr_getprotocol, _pthread_mutexattr_getpshared, + _pthread_mutexattr_gettype, _pthread_mutexattr_init, _pthread_mutexattr_setpolicy_np, + _pthread_mutexattr_setprioceiling, _pthread_mutexattr_setprotocol, + _pthread_mutexattr_setpshared, _pthread_mutexattr_settype, + _pthread_once, _pthread_override_qos_class_end_np, _pthread_override_qos_class_start_np, + _pthread_prefer_alternate_amx_self, _pthread_prefer_alternate_cluster_self, + _pthread_qos_max_parallelism, _pthread_rwlock_destroy, _pthread_rwlock_init, + _pthread_rwlock_rdlock, _pthread_rwlock_tryrdlock, _pthread_rwlock_trywrlock, + _pthread_rwlock_unlock, _pthread_rwlock_wrlock, _pthread_rwlockattr_destroy, + _pthread_rwlockattr_getpshared, _pthread_rwlockattr_init, + _pthread_rwlockattr_setpshared, _pthread_self, _pthread_self_is_exiting_np, + _pthread_set_fixedpriority_self, _pthread_set_qos_class_np, + _pthread_set_qos_class_self_np, _pthread_set_timeshare_self, + _pthread_setcancelstate, _pthread_setcanceltype, _pthread_setconcurrency, + _pthread_setname_np, _pthread_setschedparam, _pthread_setspecific, + _pthread_sigmask, _pthread_stack_frame_decode_np, _pthread_testcancel, + _pthread_threadid_np, _pthread_time_constraint_max_parallelism, + _pthread_workqueue_addthreads_np, _pthread_workqueue_setdispatch_np, + _pthread_workqueue_setdispatchoffset_np, _pthread_workqueue_setup, + _pthread_yield_np, _qos_class_main, _qos_class_self, _sched_get_priority_max, + _sched_get_priority_min, _sched_yield, _sigwait, '_sigwait$NOCANCEL', + _start_wqthread, _thread_start ] + - targets: [ arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ ____chkstk_darwin, _thread_chkstk_darwin ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_sandbox.dylib' +current-version: 2169.0.12 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _APP_SANDBOX_IOKIT_CLIENT, _APP_SANDBOX_MACH, _APP_SANDBOX_READ, + _APP_SANDBOX_READ_WRITE, _IOS_SANDBOX_APPLICATION_GROUP, _IOS_SANDBOX_CONTAINER, + _SANDBOX_CHECK_ALLOW_APPROVAL, _SANDBOX_CHECK_CANONICAL, _SANDBOX_CHECK_NOFOLLOW, + _SANDBOX_CHECK_NO_APPROVAL, _SANDBOX_CHECK_NO_REPORT, _SANDBOX_CHECK_POSIX_READABLE, + _SANDBOX_EXTENSION_CANONICAL, _SANDBOX_EXTENSION_DEFAULT, + _SANDBOX_EXTENSION_MAGIC, _SANDBOX_EXTENSION_NOFOLLOW, _SANDBOX_EXTENSION_NO_REPORT, + _SANDBOX_EXTENSION_NO_STORAGE_CLASS, _SANDBOX_EXTENSION_PREFIXMATCH, + _SANDBOX_EXTENSION_UNRESOLVED, __amkrtemp, __sandbox_in_a_container, + __sandbox_register_app_bundle_0, __sandbox_register_app_bundle_1, + _kSBXProfileNoInternet, _kSBXProfileNoNetwork, _kSBXProfileNoWrite, + _kSBXProfileNoWriteExceptTemporary, _kSBXProfilePureComputation, + _kSandboxAppBundleAnySigningId, _kSandboxAppBundlePlatformTeamId, + _kSandboxAppContainerAnySigningId, _kSandboxAppContainerPlatformTeamId, + _rootless_allows_task_for_pid, _rootless_check_datavault_flag, + _rootless_check_restricted_flag, _rootless_check_trusted, + _rootless_check_trusted_class, _rootless_check_trusted_fd, + _rootless_convert_to_datavault, _rootless_mkdir_datavault, + _rootless_mkdir_nounlink, _rootless_mkdir_restricted, _rootless_protected_volume, + _rootless_protected_volume_fd, _rootless_register_trusted_storage_class, + _rootless_remove_datavault_in_favor_of_static_storage_class, + _rootless_remove_restricted_in_favor_of_static_storage_class, + _rootless_restricted_environment, _rootless_suspend, _rootless_trusted_by_self_token, + _rootless_verify_trusted_by_self_token, _sandbox_builtin_query, + _sandbox_check, _sandbox_check_bulk, _sandbox_check_by_audit_token, + _sandbox_check_by_reference, _sandbox_check_by_uniqueid, _sandbox_check_message_filter_integer, + _sandbox_check_message_filter_string, _sandbox_check_protected_app_container, + _sandbox_consume_extension, _sandbox_consume_fs_extension, + _sandbox_consume_mach_extension, _sandbox_container_path_for_audit_token, + _sandbox_container_path_for_pid, _sandbox_enable_root_translation, + _sandbox_enable_state_flag, _sandbox_extension_consume, _sandbox_extension_issue_file, + _sandbox_extension_issue_file_to_process, _sandbox_extension_issue_file_to_process_by_pid, + _sandbox_extension_issue_file_to_self, _sandbox_extension_issue_generic, + _sandbox_extension_issue_generic_to_process, _sandbox_extension_issue_generic_to_process_by_pid, + _sandbox_extension_issue_iokit_registry_entry_class, _sandbox_extension_issue_iokit_registry_entry_class_to_process, + _sandbox_extension_issue_iokit_registry_entry_class_to_process_by_pid, + _sandbox_extension_issue_iokit_user_client_class, _sandbox_extension_issue_mach, + _sandbox_extension_issue_mach_to_process, _sandbox_extension_issue_mach_to_process_by_pid, + _sandbox_extension_issue_posix_ipc, _sandbox_extension_issue_related_file_to_process, + _sandbox_extension_reap, _sandbox_extension_release, _sandbox_extension_release_file, + _sandbox_extension_update_file, _sandbox_extension_update_file_by_fileid, + _sandbox_free_error, _sandbox_get_container_expected, _sandbox_init, + _sandbox_init_from_pid, _sandbox_init_with_extensions, _sandbox_init_with_parameters, + _sandbox_issue_extension, _sandbox_issue_fs_extension, _sandbox_issue_fs_rw_extension, + _sandbox_issue_mach_extension, _sandbox_message_filter_query, + _sandbox_message_filter_release, _sandbox_message_filter_retain, + _sandbox_note, _sandbox_passthrough_access, _sandbox_proc_getcontainer, + _sandbox_proc_getprofilename, _sandbox_query_approval_policy_for_path, + _sandbox_query_user_intent_for_process_with_audit_token, _sandbox_reference_release, + _sandbox_reference_retain_by_audit_token, _sandbox_register_app_bundle, + _sandbox_register_app_bundle_exception, _sandbox_register_app_bundle_package_exception, + _sandbox_register_app_container, _sandbox_register_app_container_exception, + _sandbox_register_app_container_package_exception, _sandbox_register_bastion_profile, + _sandbox_register_sync_root, _sandbox_release_fs_extension, + _sandbox_requests_integrity_protection_for_preference_domain, + _sandbox_set_container_path_for_application_group, _sandbox_set_container_path_for_application_group_with_persona, + _sandbox_set_container_path_for_audit_token, _sandbox_set_container_path_for_signing_id, + _sandbox_set_container_path_for_signing_id_with_persona, _sandbox_spawnattrs_getcontainer, + _sandbox_spawnattrs_getprofilename, _sandbox_spawnattrs_init, + _sandbox_spawnattrs_setcontainer, _sandbox_spawnattrs_setprofilename, + _sandbox_suspend, _sandbox_unregister_app_bundle, _sandbox_unregister_app_container, + _sandbox_unregister_bastion_profile, _sandbox_unsuspend ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_symptoms.dylib' +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ __symptoms_daemon_fallback_initial_disposition, __symptoms_daemon_fallback_subseq_disposition, + __symptoms_is_daemon_fallback_blacklisted, _symptom_framework_init, + _symptom_framework_set_version, _symptom_new, _symptom_send, + _symptom_send_immediate, _symptom_set_additional_qualifier, + _symptom_set_qualifier ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libsystem_trace.dylib' +current-version: 1481.0.12 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ __libtrace_fork_child, __libtrace_init, __os_activity_create, + __os_activity_current, __os_activity_initiate, __os_activity_initiate_f, + __os_activity_label_useraction, __os_activity_none, __os_activity_set_breadcrumb, + __os_activity_start, __os_activity_stream_entry_encode, __os_log_create, + __os_log_debug, __os_log_debug_impl, __os_log_default, __os_log_disabled, + __os_log_error, __os_log_error_impl, __os_log_fault, __os_log_fault_impl, + __os_log_get_nscf_formatter, __os_log_impl, __os_log_internal, + __os_log_pack_fill, __os_log_pack_size, __os_log_preferences_compute, + __os_log_preferences_copy_cache, __os_log_preferences_load, + __os_log_preferences_load_sysprefs, __os_log_release, __os_log_send_and_compose_impl, + __os_log_set_nscf_formatter, __os_signpost_emit_impl, __os_signpost_emit_unreliably_with_name_impl, + __os_signpost_emit_with_name_impl, __os_signpost_pack_fill, + __os_signpost_pack_send, __os_state_request_for_pidlist, __os_trace_app_cryptex_sysprefsdir_path, + __os_trace_atm_diagnostic_config, __os_trace_calloc, __os_trace_commpage_compute, + __os_trace_fdscandir_b, __os_trace_get_boot_uuid, __os_trace_get_image_info, + __os_trace_get_mode_for_pid, __os_trace_get_times_now, __os_trace_getxattr_at, + __os_trace_intprefsdir_path, __os_trace_is_development_build, + __os_trace_lazy_init_completed_4libxpc, __os_trace_log_simple, + __os_trace_macho_for_each_slice, __os_trace_malloc, __os_trace_memdup, + __os_trace_mmap, __os_trace_mmap_at, __os_trace_mmap_offset, + __os_trace_mode_match_4tests, __os_trace_os_cryptex_sysprefsdir_path, + __os_trace_prefs_latest_version_4tests, __os_trace_prefsdir_path, + __os_trace_read_file_at, __os_trace_read_plist_at, __os_trace_realloc, + __os_trace_scandir_free_namelist, __os_trace_sect_names, __os_trace_set_diagnostic_flags, + __os_trace_set_mode_for_pid, __os_trace_strdup, __os_trace_sysprefsdir_path, + __os_trace_update_with_datavolume_4launchd, __os_trace_with_buffer, + __os_trace_write, __os_trace_writev, __os_trace_zalloc, _amfi_check_dyld_policy_for_pid, + _amfi_check_dyld_policy_self, _amfi_load_trust_cache, _os_activity_apply, + _os_activity_apply_f, _os_activity_diagnostic_for_pid, _os_activity_end, + _os_activity_for_task_thread, _os_activity_for_thread, _os_activity_get_active, + _os_activity_get_identifier, _os_activity_iterate_activities, + _os_activity_iterate_breadcrumbs, _os_activity_iterate_messages, + _os_activity_iterate_processes, _os_activity_messages_for_thread, + _os_activity_scope_enter, _os_activity_scope_leave, _os_log_backtrace_copy_description, + _os_log_backtrace_copy_serialized_buffer, _os_log_backtrace_create_from_buffer, + _os_log_backtrace_create_from_current, _os_log_backtrace_create_from_pcs, + _os_log_backtrace_create_from_return_address, _os_log_backtrace_destroy, + _os_log_backtrace_get_frames, _os_log_backtrace_get_length, + _os_log_backtrace_print_to_blob, _os_log_backtrace_serialize_to_blob, + _os_log_compare_enablement, _os_log_copy_decorated_message, + _os_log_copy_message_string, _os_log_create, _os_log_errors_count, + _os_log_fault_default_callback, _os_log_faults_count, _os_log_fmt_compose, + _os_log_fmt_convert_trace, _os_log_fmt_extract_pubdata, _os_log_fmt_get_plugin, + _os_log_get_type, _os_log_is_debug_enabled, _os_log_is_enabled, + _os_log_pack_compose, _os_log_pack_send, _os_log_pack_send_and_compose, + _os_log_set_client_type, _os_log_set_enabled, _os_log_set_fault_callback, + _os_log_set_hook, _os_log_set_hook_with_params, _os_log_set_test_callback, + _os_log_shim_enabled, _os_log_shim_legacy_logging_enabled, + _os_log_shim_with_CFString, _os_log_type_enabled, _os_log_type_get_name, + _os_log_with_args, _os_signpost_enabled, _os_signpost_id_generate, + _os_signpost_id_make_with_pointer, _os_signpost_set_introspection_hook_4Perf, + _os_state_add_handler, _os_state_remove_handler, _os_trace_debug_enabled, + _os_trace_get_mode, _os_trace_get_type, _os_trace_info_enabled, + _os_trace_set_mode ] + objc-classes: [ OS_os_log ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libunwind.dylib' +current-version: 1600.112 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos ] + symbols: [ _unw_save_vfp_as_X ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ __Unwind_Backtrace, __Unwind_DeleteException, __Unwind_FindEnclosingFunction, + __Unwind_Find_FDE, __Unwind_ForcedUnwind, __Unwind_GetCFA, + __Unwind_GetDataRelBase, __Unwind_GetGR, __Unwind_GetIP, __Unwind_GetIPInfo, + __Unwind_GetLanguageSpecificData, __Unwind_GetRegionStart, + __Unwind_GetTextRelBase, __Unwind_RaiseException, __Unwind_Resume, + __Unwind_Resume_or_Rethrow, __Unwind_SetGR, __Unwind_SetIP, + ___deregister_frame, ___register_frame, ___unw_add_dynamic_eh_frame_section, + ___unw_add_dynamic_fde, ___unw_add_find_dynamic_unwind_sections, + ___unw_remove_dynamic_eh_frame_section, ___unw_remove_dynamic_fde, + ___unw_remove_find_dynamic_unwind_sections, _unw_get_fpreg, + _unw_get_proc_info, _unw_get_proc_name, _unw_get_reg, _unw_getcontext, + _unw_init_local, _unw_is_fpreg, _unw_is_signal_frame, _unw_iterate_dwarf_unwind_cache, + _unw_local_addr_space, _unw_regname, _unw_resume, _unw_set_fpreg, + _unw_set_reg, _unw_step ] + - targets: [ arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ __ZN9libunwind25findDynamicUnwindSectionsEPvP27unw_dynamic_unwind_sections ] +--- !tapi-tbd +tbd-version: 4 +targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] +install-name: '/usr/lib/system/libxpc.dylib' +current-version: 2679.0.25 +parent-umbrella: + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + umbrella: System +exports: + - targets: [ armv7k-watchos ] + symbols: [ _CEAcquireManagedContext, _CEAcquireUnmanagedContext, _CEBuffer_cmp, + _CEConjureContextFromDER, _CEContextQuery, _CEGetErrorString, + _CEPrepareQuery, _CEReleaseManagedContext, _CEValidate, _cc_clear, + _ccder_blob_decode_bitstring, _ccder_blob_decode_eckey, _ccder_blob_decode_len, + _ccder_blob_decode_len_strict, _ccder_blob_decode_oid, _ccder_blob_decode_range, + _ccder_blob_decode_range_strict, _ccder_blob_decode_seqii, + _ccder_blob_decode_seqii_strict, _ccder_blob_decode_sequence_tl, + _ccder_blob_decode_sequence_tl_strict, _ccder_blob_decode_tag, + _ccder_blob_decode_tl, _ccder_blob_decode_tl_internal, _ccder_blob_decode_tl_strict, + _ccder_blob_decode_uint, _ccder_blob_decode_uint64, _ccder_blob_decode_uint_n, + _ccder_blob_decode_uint_strict, _ccder_blob_encode_body, _ccder_blob_encode_body_tl, + _ccder_blob_encode_eckey, _ccder_blob_encode_implicit_integer, + _ccder_blob_encode_implicit_octet_string, _ccder_blob_encode_implicit_raw_octet_string, + _ccder_blob_encode_implicit_uint64, _ccder_blob_encode_integer, + _ccder_blob_encode_len, _ccder_blob_encode_octet_string, _ccder_blob_encode_oid, + _ccder_blob_encode_raw_octet_string, _ccder_blob_encode_tag, + _ccder_blob_encode_tl, _ccder_blob_encode_uint64, _ccder_blob_reserve, + _ccder_blob_reserve_tl, _ccder_decode_bitstring, _ccder_decode_constructed_tl, + _ccder_decode_constructed_tl_strict, _ccder_decode_eckey, + _ccder_decode_len, _ccder_decode_len_strict, _ccder_decode_oid, + _ccder_decode_seqii, _ccder_decode_seqii_strict, _ccder_decode_sequence_tl, + _ccder_decode_sequence_tl_strict, _ccder_decode_tag, _ccder_decode_tl, + _ccder_decode_tl_strict, _ccder_decode_uint, _ccder_decode_uint64, + _ccder_decode_uint_n, _ccder_decode_uint_strict, _ccder_encode_body, + _ccder_encode_body_nocopy, _ccder_encode_constructed_tl, _ccder_encode_eckey, + _ccder_encode_eckey_size, _ccder_encode_implicit_integer, + _ccder_encode_implicit_octet_string, _ccder_encode_implicit_raw_octet_string, + _ccder_encode_implicit_uint64, _ccder_encode_integer, _ccder_encode_len, + _ccder_encode_octet_string, _ccder_encode_oid, _ccder_encode_raw_octet_string, + _ccder_encode_tag, _ccder_encode_tl, _ccder_encode_uint64, + _ccder_sizeof, _ccder_sizeof_eckey, _ccder_sizeof_implicit_integer, + _ccder_sizeof_implicit_uint64, _ccder_sizeof_len, _ccder_sizeof_oid, + _ccder_sizeof_tag, _ccder_sizeof_uint64, _ccn_bitlen, _ccn_read_uint, + _ccn_write_int, _ccn_write_int_size, _ccn_write_uint, _ccn_write_uint_padded_ct, + _ccn_write_uint_size, _der_decode_boolean, _der_decode_key_value, + _der_decode_number, _der_decode_string, _der_encode_number_body, + _der_size_array, _der_size_dictionary, _der_size_element, + _der_size_number, _der_vm_CEType_from_context, _der_vm_bool_from_context, + _der_vm_buffer_from_context, _der_vm_context_create, _der_vm_context_is_valid, + _der_vm_execute, _der_vm_execute_match_bool, _der_vm_execute_match_integer, + _der_vm_execute_match_string, _der_vm_execute_match_string_prefix, + _der_vm_execute_nocopy, _der_vm_execute_select_index, _der_vm_execute_select_key, + _der_vm_execute_select_longest_matching_key, _der_vm_execute_string_prefix_value_allowed, + _der_vm_execute_string_value_allowed, _der_vm_integer_from_context, + _der_vm_iterate, _der_vm_string_from_context, _kCEAPIMisuse, + _kCEAllocationFailed, _kCEInvalidArgument, _kCEMalformedEntitlements, + _kCENoError, _kCEQueryCannotBeSatisfied, _recursivelyValidateEntitlements ] + - targets: [ armv7k-watchos, arm64-watchos, arm64e-watchos, arm64_32-watchos ] + symbols: [ _XPC_ACTIVITY_ALLOW_BATTERY, _XPC_ACTIVITY_APP_REFRESH, _XPC_ACTIVITY_CHECK_IN, + _XPC_ACTIVITY_COMMUNICATES_WITH_PAIRED_DEVICE, _XPC_ACTIVITY_CPU_INTENSIVE, + _XPC_ACTIVITY_DELAY, _XPC_ACTIVITY_DESIRED_MOTION_STATE, _XPC_ACTIVITY_DISK_INTENSIVE, + _XPC_ACTIVITY_DO_IT_LATER, _XPC_ACTIVITY_DUET_ACTIVITY_SCHEDULER_DATA, + _XPC_ACTIVITY_DUET_ATTRIBUTE_COST, _XPC_ACTIVITY_DUET_ATTRIBUTE_NAME, + _XPC_ACTIVITY_DUET_ATTRIBUTE_VALUE, _XPC_ACTIVITY_DUET_RELATED_APPLICATIONS, + _XPC_ACTIVITY_EXCLUSIVE, _XPC_ACTIVITY_EXPECTED_DURATION, + _XPC_ACTIVITY_GRACE_PERIOD, _XPC_ACTIVITY_GROUP_CONCURRENCY_LIMIT, + _XPC_ACTIVITY_GROUP_NAME, _XPC_ACTIVITY_INTERVAL, _XPC_ACTIVITY_INTERVAL_15_MIN, + _XPC_ACTIVITY_INTERVAL_1_DAY, _XPC_ACTIVITY_INTERVAL_1_HOUR, + _XPC_ACTIVITY_INTERVAL_1_MIN, _XPC_ACTIVITY_INTERVAL_30_MIN, + _XPC_ACTIVITY_INTERVAL_4_HOURS, _XPC_ACTIVITY_INTERVAL_5_MIN, + _XPC_ACTIVITY_INTERVAL_7_DAYS, _XPC_ACTIVITY_INTERVAL_8_HOURS, + _XPC_ACTIVITY_INVOLVED_PROCESSES, _XPC_ACTIVITY_MAY_REBOOT_DEVICE, + _XPC_ACTIVITY_MEMORY_INTENSIVE, _XPC_ACTIVITY_MOTION_STATE_AUTOMOTIVE, + _XPC_ACTIVITY_MOTION_STATE_AUTOMOTIVE_MOVING, _XPC_ACTIVITY_MOTION_STATE_AUTOMOTIVE_STATIONARY, + _XPC_ACTIVITY_MOTION_STATE_CYCLING, _XPC_ACTIVITY_MOTION_STATE_RUNNING, + _XPC_ACTIVITY_MOTION_STATE_STATIONARY, _XPC_ACTIVITY_MOTION_STATE_WALKING, + _XPC_ACTIVITY_NETWORK_DOWNLOAD_SIZE, _XPC_ACTIVITY_NETWORK_TRANSFER_BIDIRECTIONAL, + _XPC_ACTIVITY_NETWORK_TRANSFER_DIRECTION, _XPC_ACTIVITY_NETWORK_TRANSFER_DIRECTION_DOWNLOAD, + _XPC_ACTIVITY_NETWORK_TRANSFER_DIRECTION_UPLOAD, _XPC_ACTIVITY_NETWORK_TRANSFER_ENDPOINT, + _XPC_ACTIVITY_NETWORK_TRANSFER_PARAMETERS, _XPC_ACTIVITY_NETWORK_TRANSFER_SIZE, + _XPC_ACTIVITY_NETWORK_UPLOAD_SIZE, _XPC_ACTIVITY_POST_INSTALL, + _XPC_ACTIVITY_POWER_NAP, _XPC_ACTIVITY_PREVENT_DEVICE_SLEEP, + _XPC_ACTIVITY_PRIORITY, _XPC_ACTIVITY_PRIORITY_MAINTENANCE, + _XPC_ACTIVITY_PRIORITY_UTILITY, _XPC_ACTIVITY_RANDOM_INITIAL_DELAY, + _XPC_ACTIVITY_REPEATING, _XPC_ACTIVITY_REPLY_ENDPOINT, _XPC_ACTIVITY_REQUIRES_BUDDY_COMPLETE, + _XPC_ACTIVITY_REQUIRES_CLASS_A, _XPC_ACTIVITY_REQUIRES_CLASS_B, + _XPC_ACTIVITY_REQUIRES_CLASS_C, _XPC_ACTIVITY_REQUIRE_BATTERY_LEVEL, + _XPC_ACTIVITY_REQUIRE_HDD_SPINNING, _XPC_ACTIVITY_REQUIRE_INEXPENSIVE_NETWORK_CONNECTIVITY, + _XPC_ACTIVITY_REQUIRE_NETWORK_CONNECTIVITY, _XPC_ACTIVITY_REQUIRE_SCREEN_SLEEP, + _XPC_ACTIVITY_REQUIRE_SIGNIFICANT_USER_INACTIVITY, _XPC_ACTIVITY_RUN_WHEN_APP_FOREGROUNDED, + _XPC_ACTIVITY_SEQUENCE_NUMBER, _XPC_ACTIVITY_SHOULD_WAKE_DEVICE, + _XPC_ACTIVITY_USER_REQUESTED_BACKUP_TASK, _XPC_ACTIVITY_USES_DATA_BUDGETING, + _XPC_ACTIVITY_USES_DUET_POWER_BUDGETING, _XPC_COALITION_INFO_KEY_BUNDLE_IDENTIFIER, + _XPC_COALITION_INFO_KEY_CID, _XPC_COALITION_INFO_KEY_NAME, + _XPC_COALITION_INFO_KEY_RESOURCE_USAGE_BLOB, ___xpc_connection_set_logging, + __availability_version_check, __launch_job_routine, __launch_job_routine_async, + __launch_msg2, __launch_server_test_routine, __launch_service_stats_copy_4ppse_impl, + __launch_service_stats_copy_impl, __libxpc_initializer, __spawn_via_launchd, + __system_version_copy_string_plist, __system_version_copy_string_sysctl, + __system_version_fallback, __system_version_parse_string, + __vproc_get_last_exit_status, __vproc_grab_subset, __vproc_kickstart_by_label, + __vproc_log, __vproc_log_error, __vproc_logv, __vproc_pid_is_managed, + __vproc_post_fork_ping, __vproc_send_signal_by_label, __vproc_set_global_on_demand, + __vproc_standby_begin, __vproc_standby_count, __vproc_standby_end, + __vproc_standby_timeout, __vproc_transaction_begin, __vproc_transaction_count, + __vproc_transaction_count_for_pid, __vproc_transaction_end, + __vproc_transaction_set_clean_callback, __vproc_transaction_try_exit, + __vproc_transactions_enable, __vprocmgr_detach_from_console, + __vprocmgr_getsocket, __vprocmgr_init, __vprocmgr_log_drain, + __vprocmgr_log_forward, __vprocmgr_move_subset_to_user, __vprocmgr_switch_to_session, + __xpc_bool_create_distinct, __xpc_bool_false, __xpc_bool_set_value, + __xpc_bool_true, __xpc_connection_create_internal_listener, + __xpc_connection_get_parent_4test, __xpc_connection_get_recvp_4test, + __xpc_connection_set_event_handler_f, __xpc_data_set_value, + __xpc_dictionary_create_reply_with_port, __xpc_dictionary_extract_mach_send, + __xpc_dictionary_extract_reply_msg_id, __xpc_dictionary_extract_reply_port, + __xpc_dictionary_get_reply_msg_id, __xpc_dictionary_set_remote_connection, + __xpc_dictionary_set_reply_msg_id, __xpc_domain_routine, __xpc_double_set_value, + __xpc_error_connection_interrupted, __xpc_error_connection_invalid, + __xpc_error_key_description, __xpc_error_peer_code_signing_requirement, + __xpc_error_termination_imminent, __xpc_event_key_name, __xpc_event_key_stream_name, + __xpc_fd_get_port, __xpc_int64_set_value, __xpc_payload_create_from_mach_msg, + __xpc_pipe_handle_mig, __xpc_pipe_interface_routine, __xpc_pipe_interface_routine_async, + __xpc_pipe_interface_simpleroutine, __xpc_runtime_get_entitlements_data, + __xpc_runtime_get_self_entitlements, __xpc_runtime_is_app_sandboxed, + __xpc_service_last_xref_cancel, __xpc_service_routine, __xpc_shmem_get_mach_port, + __xpc_spawnattr_binprefs_pack, __xpc_spawnattr_binprefs_size, + __xpc_spawnattr_binprefs_unpack, __xpc_spawnattr_pack_bytes, + __xpc_spawnattr_pack_string, __xpc_spawnattr_pack_string_fragment, + __xpc_spawnattr_unpack_bytes, __xpc_spawnattr_unpack_string, + __xpc_spawnattr_unpack_strings, __xpc_string_set_value, __xpc_type_activity, + __xpc_type_array, __xpc_type_base, __xpc_type_bool, __xpc_type_bundle, + __xpc_type_connection, __xpc_type_data, __xpc_type_date, __xpc_type_dictionary, + __xpc_type_double, __xpc_type_endpoint, __xpc_type_error, + __xpc_type_fd, __xpc_type_file_transfer, __xpc_type_int64, + __xpc_type_mach_recv, __xpc_type_mach_send, __xpc_type_mach_send_once, + __xpc_type_null, __xpc_type_pipe, __xpc_type_pointer, __xpc_type_rich_error, + __xpc_type_serializer, __xpc_type_service, __xpc_type_service_instance, + __xpc_type_session, __xpc_type_shmem, __xpc_type_string, __xpc_type_uint64, + __xpc_type_uuid, __xpc_vtables, _bootstrap_check_in, _bootstrap_check_in2, + _bootstrap_check_in3, _bootstrap_create_server, _bootstrap_create_service, + _bootstrap_get_root, _bootstrap_info, _bootstrap_init, _bootstrap_look_up, + _bootstrap_look_up2, _bootstrap_look_up3, _bootstrap_look_up_per_user, + _bootstrap_lookup_children, _bootstrap_parent, _bootstrap_register, + _bootstrap_register2, _bootstrap_status, _bootstrap_strerror, + _bootstrap_subset, _bootstrap_unprivileged, _create_and_switch_to_per_session_launchd, + _launch_activate_socket, _launch_active_user_login, _launch_active_user_logout, + _launch_active_user_switch, _launch_add_external_service, + _launch_bootout_user_service_4coresim, _launch_copy_busy_extension_instances, + _launch_copy_endpoints_properties_for_pid, _launch_copy_extension_properties, + _launch_copy_extension_properties_for_pid, _launch_copy_properties_for_pid_4assertiond, + _launch_create_persona, _launch_cryptex_terminate, _launch_data_alloc, + _launch_data_array_get_count, _launch_data_array_get_index, + _launch_data_array_set_index, _launch_data_copy, _launch_data_dict_get_count, + _launch_data_dict_insert, _launch_data_dict_iterate, _launch_data_dict_lookup, + _launch_data_dict_remove, _launch_data_free, _launch_data_get_bool, + _launch_data_get_errno, _launch_data_get_fd, _launch_data_get_integer, + _launch_data_get_machport, _launch_data_get_opaque, _launch_data_get_opaque_size, + _launch_data_get_real, _launch_data_get_string, _launch_data_get_type, + _launch_data_new_bool, _launch_data_new_errno, _launch_data_new_fd, + _launch_data_new_integer, _launch_data_new_machport, _launch_data_new_opaque, + _launch_data_new_real, _launch_data_new_string, _launch_data_pack, + _launch_data_set_bool, _launch_data_set_errno, _launch_data_set_fd, + _launch_data_set_integer, _launch_data_set_machport, _launch_data_set_opaque, + _launch_data_set_real, _launch_data_set_string, _launch_data_unpack, + _launch_destroy_persona, _launch_disable_directory, _launch_enable_directory, + _launch_extension_check_in_live_4UIKit, _launch_extension_property_bundle_id, + _launch_extension_property_host_bundle_id, _launch_extension_property_host_pid, + _launch_extension_property_path, _launch_extension_property_pid, + _launch_extension_property_version, _launch_extension_property_xpc_bundle, + _launch_get_fd, _launch_get_service_enabled, _launch_get_system_service_enabled, + _launch_load_mounted_jetsam_properties, _launch_msg, _launch_path_for_user_service_4coresim, + _launch_perfcheck_property_endpoint_active, _launch_perfcheck_property_endpoint_event, + _launch_perfcheck_property_endpoint_name, _launch_perfcheck_property_endpoint_needs_activation, + _launch_perfcheck_property_endpoints, _launch_remove_external_service, + _launch_service_instance_copy_uuids, _launch_service_instance_create, + _launch_service_instance_remove, _launch_service_stats_disable, + _launch_service_stats_disable_4ppse, _launch_service_stats_enable, + _launch_service_stats_enable_4ppse, _launch_service_stats_is_enabled, + _launch_service_stats_is_enabled_4ppse, _launch_set_service_enabled, + _launch_set_system_service_enabled, _launch_socket_service_check_in, + _launch_version_for_user_service_4coresim, _launch_wait, _launchd_close, + _launchd_fdopen, _launchd_getfd, _launchd_msg_recv, _launchd_msg_send, + _load_launchd_jobs_at_loginwindow_prompt, _mpm_uncork_fork, + _mpm_wait, _os_system_version_get_current_version, _os_system_version_sim_get_current_host_version, + _os_transaction_copy_description, _os_transaction_create, + _os_transaction_get_description, _os_transaction_get_timestamp, + _os_transaction_needs_more_time, _place_hold_on_real_loginwindow, + _reboot2, _reboot3, _vproc_release, _vproc_retain, _vproc_standby_begin, + _vproc_standby_end, _vproc_swap_complex, _vproc_swap_integer, + _vproc_swap_string, _vproc_transaction_begin, _vproc_transaction_end, + _vprocmgr_lookup_vproc, _xpc_activity_add_eligibility_changed_handler, + _xpc_activity_copy_criteria, _xpc_activity_copy_dispatch_queue, + _xpc_activity_copy_identifier, _xpc_activity_debug, _xpc_activity_defer_until_network_change, + _xpc_activity_defer_until_percentage, _xpc_activity_get_percentage, + _xpc_activity_get_state, _xpc_activity_list, _xpc_activity_register, + _xpc_activity_remove_eligibility_changed_handler, _xpc_activity_run, + _xpc_activity_set_completion_status, _xpc_activity_set_criteria, + _xpc_activity_set_network_threshold, _xpc_activity_set_state, + _xpc_activity_should_be_data_budgeted, _xpc_activity_should_defer, + _xpc_activity_unregister, _xpc_add_bundle, _xpc_add_bundles_for_domain, + _xpc_array_append_value, _xpc_array_apply, _xpc_array_apply_f, + _xpc_array_copy_mach_send, _xpc_array_create, _xpc_array_create_connection, + _xpc_array_create_empty, _xpc_array_dup_fd, _xpc_array_get_array, + _xpc_array_get_bool, _xpc_array_get_count, _xpc_array_get_data, + _xpc_array_get_date, _xpc_array_get_dictionary, _xpc_array_get_double, + _xpc_array_get_int64, _xpc_array_get_pointer, _xpc_array_get_string, + _xpc_array_get_uint64, _xpc_array_get_uuid, _xpc_array_get_value, + _xpc_array_set_bool, _xpc_array_set_connection, _xpc_array_set_data, + _xpc_array_set_date, _xpc_array_set_double, _xpc_array_set_fd, + _xpc_array_set_int64, _xpc_array_set_mach_send, _xpc_array_set_pointer, + _xpc_array_set_string, _xpc_array_set_uint64, _xpc_array_set_uuid, + _xpc_array_set_value, _xpc_atfork_child, _xpc_atfork_parent, + _xpc_atfork_prepare, _xpc_binprefs_add, _xpc_binprefs_alloc, + _xpc_binprefs_copy, _xpc_binprefs_copy_description, _xpc_binprefs_count, + _xpc_binprefs_cpu_subtype, _xpc_binprefs_cpu_type, _xpc_binprefs_equal, + _xpc_binprefs_init, _xpc_binprefs_is_noop, _xpc_binprefs_set_psattr, + _xpc_bool_create, _xpc_bool_get_value, _xpc_bs_main, _xpc_bundle_copy_info_dictionary, + _xpc_bundle_copy_normalized_cryptex_path, _xpc_bundle_copy_resource_path, + _xpc_bundle_copy_services, _xpc_bundle_create, _xpc_bundle_create_from_origin, + _xpc_bundle_create_main, _xpc_bundle_get_error, _xpc_bundle_get_executable_path, + _xpc_bundle_get_info_dictionary, _xpc_bundle_get_path, _xpc_bundle_get_property, + _xpc_bundle_get_xpcservice_dictionary, _xpc_bundle_populate, + _xpc_bundle_resolve, _xpc_bundle_resolve_on_queue, _xpc_bundle_resolve_sync, + _xpc_coalition_copy_info, _xpc_coalition_history_pipe_async, + _xpc_connection_activate, _xpc_connection_cancel, _xpc_connection_copy_bundle_id, + _xpc_connection_copy_entitlement_value, _xpc_connection_copy_invalidation_reason, + _xpc_connection_create, _xpc_connection_create_bs_service_listener, + _xpc_connection_create_from_endpoint, _xpc_connection_create_listener, + _xpc_connection_create_mach_service, _xpc_connection_enable_sim2host_4sim, + _xpc_connection_enable_termination_imminent_event, _xpc_connection_get_asid, + _xpc_connection_get_audit_token, _xpc_connection_get_bs_type, + _xpc_connection_get_context, _xpc_connection_get_egid, _xpc_connection_get_euid, + _xpc_connection_get_filter_policy_id_4test, _xpc_connection_get_instance, + _xpc_connection_get_name, _xpc_connection_get_peer_instance, + _xpc_connection_get_pid, _xpc_connection_is_extension, _xpc_connection_kill, + _xpc_connection_resume, _xpc_connection_send_barrier, _xpc_connection_send_message, + _xpc_connection_send_message_with_reply, _xpc_connection_send_message_with_reply_sync, + _xpc_connection_send_notification, _xpc_connection_set_bootstrap, + _xpc_connection_set_bs_type, _xpc_connection_set_context, + _xpc_connection_set_distorter, _xpc_connection_set_event_channel, + _xpc_connection_set_event_handler, _xpc_connection_set_finalizer_f, + _xpc_connection_set_instance, _xpc_connection_set_instance_binpref, + _xpc_connection_set_legacy, _xpc_connection_set_non_launching, + _xpc_connection_set_oneshot_instance, _xpc_connection_set_peer_code_signing_requirement, + _xpc_connection_set_privileged, _xpc_connection_set_qos_class_fallback, + _xpc_connection_set_qos_class_floor, _xpc_connection_set_target_queue, + _xpc_connection_set_target_uid, _xpc_connection_set_target_user_session_uid, + _xpc_connection_suspend, _xpc_copy, _xpc_copy_bootstrap, _xpc_copy_clean_description, + _xpc_copy_code_signing_identity_for_token, _xpc_copy_debug_description, + _xpc_copy_description, _xpc_copy_domain, _xpc_copy_entitlement_for_self, + _xpc_copy_entitlement_for_token, _xpc_copy_entitlements_data_for_token, + _xpc_copy_entitlements_for_pid, _xpc_copy_entitlements_for_self, + _xpc_copy_event, _xpc_copy_event_entitlements, _xpc_copy_short_description, + _xpc_create_from_ce_der, _xpc_create_from_ce_der_with_key, + _xpc_create_from_plist, _xpc_create_from_plist_descriptor, + _xpc_create_from_serialization, _xpc_create_from_serialization_with_ool, + _xpc_create_reply_with_format, _xpc_create_reply_with_format_and_arguments, + _xpc_create_with_format, _xpc_create_with_format_and_arguments, + _xpc_data_create, _xpc_data_create_with_dispatch_data, _xpc_data_get_bytes, + _xpc_data_get_bytes_ptr, _xpc_data_get_bytes_ptr_and_length, + _xpc_data_get_inline_max, _xpc_data_get_length, _xpc_date_create, + _xpc_date_create_absolute, _xpc_date_create_from_current, + _xpc_date_get_value, _xpc_date_get_value_absolute, _xpc_date_is_int64_range, + _xpc_dictionary_apply, _xpc_dictionary_apply_f, _xpc_dictionary_copy_basic_description, + _xpc_dictionary_copy_mach_send, _xpc_dictionary_create, _xpc_dictionary_create_connection, + _xpc_dictionary_create_empty, _xpc_dictionary_create_reply, + _xpc_dictionary_dup_fd, _xpc_dictionary_expects_reply, _xpc_dictionary_extract_mach_recv, + _xpc_dictionary_get_array, _xpc_dictionary_get_audit_token, + _xpc_dictionary_get_bool, _xpc_dictionary_get_connection, + _xpc_dictionary_get_count, _xpc_dictionary_get_data, _xpc_dictionary_get_date, + _xpc_dictionary_get_dictionary, _xpc_dictionary_get_double, + _xpc_dictionary_get_int64, _xpc_dictionary_get_pointer, _xpc_dictionary_get_remote_connection, + _xpc_dictionary_get_string, _xpc_dictionary_get_uint64, _xpc_dictionary_get_uuid, + _xpc_dictionary_get_value, _xpc_dictionary_handoff_reply, + _xpc_dictionary_handoff_reply_f, _xpc_dictionary_send_reply, + _xpc_dictionary_send_reply_4SWIFT, _xpc_dictionary_set_bool, + _xpc_dictionary_set_connection, _xpc_dictionary_set_data, + _xpc_dictionary_set_date, _xpc_dictionary_set_double, _xpc_dictionary_set_fd, + _xpc_dictionary_set_int64, _xpc_dictionary_set_mach_recv, + _xpc_dictionary_set_mach_send, _xpc_dictionary_set_pointer, + _xpc_dictionary_set_string, _xpc_dictionary_set_uint64, _xpc_dictionary_set_uuid, + _xpc_dictionary_set_value, _xpc_double_create, _xpc_double_get_value, + _xpc_endpoint_compare, _xpc_endpoint_copy_listener_port_4sim, + _xpc_endpoint_create, _xpc_endpoint_create_bs_named, _xpc_endpoint_create_bs_service, + _xpc_endpoint_create_mach_port_4sim, _xpc_endpoint_get_bs_job_handle, + _xpc_equal, _xpc_event_publisher_activate, _xpc_event_publisher_copy_event, + _xpc_event_publisher_create, _xpc_event_publisher_fire, _xpc_event_publisher_fire_noboost, + _xpc_event_publisher_fire_with_reply, _xpc_event_publisher_fire_with_reply_sync, + _xpc_event_publisher_get_subscriber_asid, _xpc_event_publisher_set_error_handler, + _xpc_event_publisher_set_event, _xpc_event_publisher_set_handler, + _xpc_event_publisher_set_initial_load_completed_handler_4remoted, + _xpc_event_publisher_set_subscriber_keepalive, _xpc_event_stream_check_in, + _xpc_event_stream_check_in2, _xpc_exit_reason_get_label, _xpc_extension_type_init, + _xpc_fd_create, _xpc_fd_dup, _xpc_file_transfer_cancel, _xpc_file_transfer_copy_io, + _xpc_file_transfer_create_with_fd, _xpc_file_transfer_create_with_path, + _xpc_file_transfer_get_size, _xpc_file_transfer_get_transfer_id, + _xpc_file_transfer_send_finished, _xpc_file_transfer_set_transport_writing_callbacks, + _xpc_file_transfer_write_finished, _xpc_file_transfer_write_to_fd, + _xpc_file_transfer_write_to_path, _xpc_generate_audit_token, + _xpc_get_attachment_endpoint, _xpc_get_class4NSXPC, _xpc_get_event_name, + _xpc_get_instance, _xpc_get_type, _xpc_handle_service, _xpc_handle_subservice, + _xpc_hash, _xpc_impersonate_user, _xpc_init_services, _xpc_inspect_copy_description, + _xpc_inspect_copy_description_local, _xpc_inspect_copy_short_description, + _xpc_inspect_copy_short_description_local, _xpc_install_remote_hooks, + _xpc_int64_create, _xpc_int64_get_value, _xpc_is_kind_of_xpc_object4NSXPC, + _xpc_is_system_session, _xpc_listener_activate, _xpc_listener_cancel, + _xpc_listener_copy_description, _xpc_listener_create, _xpc_listener_create_anonymous, + _xpc_listener_create_endpoint, _xpc_listener_reject_peer, + _xpc_mach_recv_create, _xpc_mach_recv_extract_right, _xpc_mach_send_copy_right, + _xpc_mach_send_create, _xpc_mach_send_create_with_disposition, + _xpc_mach_send_get_right, _xpc_mach_send_once_create, _xpc_mach_send_once_extract_right, + _xpc_main, _xpc_make_serialization, _xpc_make_serialization_with_ool, + _xpc_null_create, _xpc_pipe_create, _xpc_pipe_create_from_port, + _xpc_pipe_create_reply_from_port, _xpc_pipe_create_with_user_session_uid, + _xpc_pipe_invalidate, _xpc_pipe_receive, _xpc_pipe_routine, + _xpc_pipe_routine_async, _xpc_pipe_routine_forward, _xpc_pipe_routine_reply, + _xpc_pipe_routine_with_flags, _xpc_pipe_simpleroutine, _xpc_pipe_try_receive, + _xpc_pointer_create, _xpc_pointer_get_value, _xpc_receive_mach_msg, + _xpc_receive_remote_msg, _xpc_release, _xpc_retain, _xpc_rich_error_can_retry, + _xpc_rich_error_copy_description, _xpc_service_attach, _xpc_service_attach_with_flags, + _xpc_service_create, _xpc_service_create_from_specifier, _xpc_service_get_rendezvous_token, + _xpc_service_instance_dup2, _xpc_service_instance_get_context, + _xpc_service_instance_get_host_pid, _xpc_service_instance_get_pid, + _xpc_service_instance_get_type, _xpc_service_instance_is_configurable, + _xpc_service_instance_run, _xpc_service_instance_set_binpref, + _xpc_service_instance_set_context, _xpc_service_instance_set_cwd, + _xpc_service_instance_set_endpoint, _xpc_service_instance_set_environment, + _xpc_service_instance_set_finalizer_f, _xpc_service_instance_set_jetsam_properties, + _xpc_service_instance_set_path, _xpc_service_instance_set_start_suspended, + _xpc_service_kickstart, _xpc_service_kickstart_with_flags, + _xpc_service_set_attach_handler, _xpc_session_activate, _xpc_session_cancel, + _xpc_session_copy_description, _xpc_session_create_mach_service, + _xpc_session_create_xpc_endpoint, _xpc_session_create_xpc_service, + _xpc_session_send_message, _xpc_session_send_message_with_reply_async, + _xpc_session_send_message_with_reply_sync, _xpc_session_set_cancel_handler, + _xpc_session_set_incoming_message_handler, _xpc_session_set_target_queue, + _xpc_session_set_target_user_session_uid, _xpc_set_event, + _xpc_set_event_state, _xpc_set_event_stream_handler, _xpc_set_event_with_flags, + _xpc_set_idle_handler, _xpc_shmem_create, _xpc_shmem_create_readonly, + _xpc_shmem_get_length, _xpc_shmem_map, _xpc_strerror, _xpc_string_create, + _xpc_string_create_no_copy, _xpc_string_create_with_format, + _xpc_string_create_with_format_and_arguments, _xpc_string_get_length, + _xpc_string_get_string_ptr, _xpc_test_symbols_exported, _xpc_track_activity, + _xpc_transaction_begin, _xpc_transaction_end, _xpc_transaction_exit_clean, + _xpc_transaction_interrupt_clean_exit, _xpc_transaction_try_exit_clean, + _xpc_transactions_enable, _xpc_traverse_serialized_data, _xpc_type_get_name, + _xpc_uint64_create, _xpc_uint64_get_value, _xpc_user_sessions_enabled, + _xpc_user_sessions_get_foreground_uid, _xpc_user_sessions_get_session_uid, + _xpc_uuid_create, _xpc_uuid_get_bytes ] + objc-classes: [ OS_xpc_object ] +... diff --git a/tests/unit.py b/tests/unit.py index 9580493..6fc567a 100644 --- a/tests/unit.py +++ b/tests/unit.py @@ -342,16 +342,16 @@ def test_constructable(self): if isinstance(command, segment_command) or isinstance(command, segment_command_64): load_command_items.append(Segment(image, command)) elif isinstance(command, dylib_command): - suffix = image.read_cstr(command.off + command.__class__.SIZE) + suffix = image.read_cstr(command.off + command.__class__.size()) encoded = suffix.encode('utf-8') + b'\x00' - while (len(encoded) + command.__class__.SIZE) % 8 != 0: + while (len(encoded) + command.__class__.size()) % 8 != 0: encoded += b'\x00' load_command_items.append(command) load_command_items.append(encoded) elif command.__class__ in [dylinker_command, build_version_command]: load_command_items.append(command) actual_size = command.cmdsize - dat = image.read_bytearray(command.off + command.SIZE, actual_size - command.SIZE) + dat = image.read_bytearray(command.off + command.size(), actual_size - command.size()) load_command_items.append(dat) else: load_command_items.append(command) @@ -384,9 +384,9 @@ def test_bad_load_command(self): if isinstance(command, segment_command) or isinstance(command, segment_command_64): load_command_items.append(Segment(image, command)) elif isinstance(command, dylib_command): - suffix = image.read_cstr(command.off + command.__class__.SIZE) + suffix = image.read_cstr(command.off + command.__class__.size()) encoded = suffix.encode('utf-8') + b'\x00' - while (len(encoded) + command.__class__.SIZE) % 8 != 0: + while (len(encoded) + command.__class__.size()) % 8 != 0: encoded += b'\x00' load_command_items.append(command) load_command_items.append(encoded) @@ -396,7 +396,7 @@ def test_bad_load_command(self): elif command.__class__ in [dylinker_command, build_version_command]: load_command_items.append(command) actual_size = command.cmdsize - dat = image.read_bytearray(command.off + command.SIZE, actual_size - command.SIZE) + dat = image.read_bytearray(command.off + command.size(), actual_size - command.size()) load_command_items.append(dat) else: load_command_items.append(command) @@ -507,7 +507,7 @@ def test_bad_fat_offset(self): # corrupt the second offset header: fat_header = macho._load_struct(0, fat_header, "big") for off in range(1, header.nfat_archs): - offset = fat_header.SIZE + (off * fat_arch.SIZE) + offset = fat_header.size() + (off * fat_arch.size()) arch_struct: fat_arch = macho._load_struct(offset, fat_arch, "big") arch_struct.offset = 0xDEADBEEF self.fat.write(arch_struct.off, arch_struct.raw)