Описание тега macos-system-extension

Пакеты системных расширений были представлены в macOS 10.15 как возможные замены расширений ядра.
1 ответ

Невозможно определить тип продукта 'com.apple.product-type.system-extension' для платформы macosx (в целевом SimpleFirewallExtension))

Я пытаюсь создать и запустить пример приложения FirewallExtension с https://developer.apple.com/documentation/networkextension/filtering_network_traffic на бета-версии catalina, но получаю ошибку невозможно определить тип продукта "com.apple.product…
21 июн '19 в 16:40
0 ответов

Как проверить, установлен ли профиль mdm для расширения системы на macOS?

Есть ли способ проверить, установлен ли профиль mdm с утвержденным системным расширением на MacOS? Утвержденный кекст можно найти в файле /var/db/SystemPolicyConfiguration/KextPolicy. Есть ли что-то подобное для системных расширений?
10 июн '20 в 12:07
1 ответ

idVendor для apple.developer.driverkit.transport.usb

Я читал этот информативный пост. Как установить права на `com.apple.developer.driverkit.transport.usb`? Хотела спросить, а где это взять idVendorиз? Какой должна быть его стоимость?
1 ответ

Как убить системное расширение или сетевое расширение?

Итак, я создаю приложение для macOS с сетевым расширением на Swift. После некоторых тестов расширение остается как процесс в системе. Я могу остановить и убить приложение, но я не могу остановить, убить или выгрузить сетевое расширение. Сетевое расш…
1 ответ

Как создать обратный вызов IOUSBHostPipe::CompleteAsyncIO?

Я пишу SystenExtension для связи с USB-устройством. Мой первоначальный план - создать классTransferкоторый выделяет необходимый IOMemoryDescriptor, а затем передает интерфейс, который мне нуженTransferкласс для общения. Я хотел бы, чтобы обратный вы…
1 ответ

NEFilterProvider записывает сетевую активность

NEFilterProvider, а точнее два его подкласса NEFilterDataProvider и NEFilterPacketProvider, имеют функциональные возможности, позволяющие или запрещающие сетевую активность. Однако я не смог найти способ войти в активность в целях отладки. Я знаю, ч…
2 ответа

Как написать расширение набора драйверов для Mac OS catalina

Я пытаюсь написать расширение набора драйверов для одного из устройств. У меня нет информации о том, как написать расширение набора драйверов для mac os Catalina. Единственная документация, которую я получил, это Ссылка на DriverKit: https://develop…
3 ответа

Как запустить не подписанные системные расширения в OSX catalina?

Как запустить не подписанные системные расширения в OSX catalina? Я пытаюсь загрузить SimpleFirewall, системное расширение, предоставленное Apple, чтобы продемонстрировать возможности фильтрации пакетов. Проект компилируется, но при запуске появляет…
0 ответов

Как использовать расширения сетевой системы для управления данными перед их пересылкой

У меня есть продукт для macOS, который использует расширения сетевого ядра для получения сетевых данных и изменения данных на основе некоторых предопределенных правил. Поскольку kexts больше не будут поддерживаться, начиная с macOS 10.16, мне нужно …
13 мар '20 в 10:14
1 ответ

Как перезаписать части внутреннего буфера DriverKit OSData?

Документация OSData говорит, что "... Вы можете добавлять к ним байты и перезаписывать части байтового массива".. Я вижу способ добавления байтов, но не понимаю, как я могу перезаписать часть буфера. Другой вариант - использовать IONewZeroвыделить р…
28 май '20 в 17:48
1 ответ

Как выделить память в системном расширении DriverKit и сопоставить ее с другим процессом?

Я выделил память в своем приложении и передал ее указатель и размер в IOConnectCallStructMethod. С помощью IOMemoryDescriptor::CreateMapping Затем я сопоставил эту память процессу системного расширения DriverKit, и можно записать в эту сопоставленну…
1 ответ

Могут ли `new` и` delete` использоваться в драйвере DriverKit?

DriverKit предоставляет IONewZero а также IOSafeDeleteNULL . Они не вызывают никаких конструкторов или деструкторов. Допустим, я хотел бы иметь какой-то класс в структуре ivars. Класс не должен наследовать отOSObject ни IOService. Как мне построить …
1 ответ

Передача аргумента из делегата приложения в расширение системы, Mac OS

Я создаю системное расширение и встраиваю его в приложение Mac на Mac OS Catalina. Мне удалось создать приложение и запросить активацию расширения у делегата моего приложения (Swift). Мое системное расширение может успешно работать. Мой вопрос в том…
20 июн '20 в 21:37
0 ответов

Как сохранить конфигурацию из драйвера DriverKit

Мне нужно сохранить конфигурацию из драйвера DriverKit. Я читал Как сохранить конфигурацию kext между сеансами, и в этом случае кажется, что предпочтительным способом является сохранение конфигурации из пользовательского приложения. Поскольку драйве…
20 авг '20 в 00:07
1 ответ

Как следует реализовать "NewUserClient"

Я пытаюсь взаимодействовать с декстом из приложения. Я могу найти сервис, используяIOServiceOpen и мне звонят NewUserClient моего декста (я вижу typeпереданный параметр выводится в журнал). После этого я немного заблудился. Читая здесь о NewUserClie…
2 ответа

kIOReturnNotPermitted от IOServiceOpen, подключающегося к SystemExtension IOService

Я пытаюсь создать клиентское соединение с SystemExtension IOService. Я вижу, что мойIOUserClient подкласс создается (init() а также Start(IOService*) называется), но код возврата из IOServiceOpen возвращается kIOReturnNotPermitted. Я звоню IOService…
1 ответ

Как установить права на `com.apple.developer.driverkit.transport.usb`?

Я не уверен, как установить com.apple.developer.driverkit.transport.usbвведите мой dext-файл прав. Файл Info.plist уже содержитIOKitPersonalities словарь и чтение о com.apple.developer.driverkit.transport.usb словарь, похоже, он должен содержать зап…
1 ответ

Как получить доступ к IOMemoryBufferDescriptor в CompleteAsyncIO, который отправляется через AsyncIO при прерывании EP

Я пытаюсь отправить запрос с помощью AsyncIO для прерывания EP, для AsyncIO я создал IOMemoryBufferDescriptor, как только IOMemoryBufferDescriptor, Create - это успех, я использовал GetAddressRange и сохранил адрес в структуре dext ivars. Для этого …
19 июн '20 в 21:25
0 ответов

Как вызвать метод переопределения handleInterruptPacket в случае ACM DEXT(IOUserUSBSerial)?

В ACM Dext метод переопределения handleInterruptPacket не вызывается системой. Пожалуйста, дайте мне знать, что чего-нибудь не хватает. iig файл: class UserUsbACMControl: public IOUserUSBSerial { virtual void handleInterruptPacket(const uint8_t *pac…
23 июн '20 в 10:54
0 ответов

Как обеспечить DEXT для интерфейса USB ACM, имеющего два дескриптора интерфейса (Control/Data)?

Интерфейс USB ACM имеет два дескриптора интерфейса: интерфейс управления ACM и интерфейс данных ACM. Управление ACM имеет EP прерывания, а интерфейс данных имеет EP BULK IN/OUT. ACM Control используется для отправки и чтения данных прерывания с устр…
23 июн '20 в 10:29