- About system extensions and macOS
- If you get an alert about a system extension
- Question: Q: How do I remove legacy system extensions?
- All replies
- Расширение (Mac OS) — Extension (Mac OS)
- Содержание
- Механизм INIT
- Расширения
- Панели настройки и управления
- Безликие фоновые приложения
- Другие расширения, не относящиеся к INIT
- Der Flounder
- Uninstalling macOS system extensions
About system extensions and macOS
Some system extensions aren’t compatible with current versions of macOS or won’t be compatible with a future version of macOS. Learn what to do if you see an alert about system extensions or kernel extensions.
System extensions work in the background to extend the functionality of your Mac. Some apps install kernel extensions, or kexts—a kind of system extension that works using older methods that aren’t as secure or reliable as modern alternatives. Your Mac identifies these as legacy system extensions.
In 2019, Apple informed developers that macOS Catalina will be the last macOS to fully support legacy system extensions, and we’ve been working with developers to transition their software.
If you get an alert about a system extension
You may see an alert on your Mac that says that a program loaded or tried to load a system extension signed by the developer of that extension.
- The alert may ask you to open Security & Privacy preferences to allow the extension. You may also need to restart your Mac.
- The alert may ask you to contact the developer for support because the extension needs to be updated or will be incompatible with a future version of macOS.
- The alert may inform you that it will damage your computer and has been blocked.
On a Mac with Apple silicon, you may first need to use Startup Security Utility to set the security policy to Reduced Security and select the “Allow user management of kernel extensions from identified developers” checkbox.
If necessary, please contact the developer to learn whether an updated version of their software is available or planned. They may also be able to explain how to remove or disable the extension, and the consequences of doing so.
Information about products not manufactured by Apple, or independent websites not controlled or tested by Apple, is provided without recommendation or endorsement. Apple assumes no responsibility with regard to the selection, performance, or use of third-party websites or products. Apple makes no representations regarding third-party website accuracy or reliability. Contact the vendor for additional information.
Источник
Question: Q: How do I remove legacy system extensions?
How do I identify and remove legacy system extensions that Catalina warned me about? I have tried the program uninstaller, but I don’t think it removed everything. Does this mean software installation will convert to a sensible package management system that will record all changes to the system and be able to remove them without depending on vendors to correctly program uninstallers?
MacBook Pro 15”, macOS 10.15
Posted on May 15, 2020 4:21 PM
All replies
Loading page content
Page content loaded
Why are you trying to remove it. Don’t you need the extension for software you’re currently using?
You don’t need to do anything right now. It will continue to function just fine in Catalina.
May 15, 2020 4:30 PM
Does this mean software installation will convert to a sensible package management system that will record all changes to the system and be able to remove them without depending on vendors to correctly program uninstallers?
In your dreams. No, what’s going to happen is that Catalina’s successor will prevent those system modifications to begin with. There won’t be anything to remove.
If you are motivated to remove them now though, they can be found in System Information > Extensions. It’s a sortable list so start with those not obtained from Apple. Look for 64-Bit (Intel): No. Its Location is on the next line.
I have tried the program uninstaller, but I don’t think it removed everything.
Most of them don’t. I’d be hard pressed to come up with more than two examples that work with complete effectiveness. Ironically they’re uninstallers for two of the worst pieces of junk anyone could inflict upon a Mac.
Источник
Расширение (Mac OS) — Extension (Mac OS)
В классической Mac OS (исходной операционной системе Apple Macintosh ) расширения представляли собой небольшие фрагменты кода, расширяющие функциональные возможности системы. Первоначально они запускались при запуске и управлялись множеством механизмов, включая исправление ловушек и другие методы модификации кода. Изначально разработанные компанией Apple, расширения стали стандартным способом создания модульной операционной системы. Большое количество важных системных служб, таких как сетевые стеки TCP / IP (MacTCP и Open Transport), а также поддержка USB и FireWire, были дополнительными компонентами, реализованными как расширения. Фраза «расширение системы» позже стала обозначать и безликие фоновые приложения .
Расширения обычно заполнены ту же роль , как DOS «s прекратить и остаться резидентные программы или Unix » ы демонами , хотя, исправляя исходный код операционной системы, они имели возможность изменить существующее поведение операционной системы, другие два не сделали.
Содержание
Механизм INIT
Концепция расширений отсутствовала в исходном системном программном обеспечении Macintosh, но система, тем не менее, имела частный механизм исправления, которым разработчики вскоре научились пользоваться — загрузчик INIT. Этот код будет искать системные ресурсы типа INIT, а также загружать и запускать их во время загрузки. Кодовые ресурсы должны быть сохранены непосредственно в Mac чемодане System «s вилке ресурсов , то есть это было только действительно доступно„ продвинутых пользователей“ , которые будет удобно использовать ResEdit или другой редактор ресурсов.
Поскольку использование этого механизма было неподдерживаемым взломом и таким образом можно было загрузить только 32 INIT, Apple ответила, предоставив более управляемое решение. Первоначально это само по себе было в форме ресурса «INIT» с идентификатором 31, помещенного в системный файл, который будет искать дополнительные файлы типа «INIT» в системной папке , а также загружать и запускать ресурсы INIT внутри них. (Вот почему некоторые опытные программисты Mac до сих пор называют механизм загрузки расширений «уловкой INIT 31». Теперь INITs можно было установить, просто поместив файл в системную папку, что вполне доступно среднему пользователю. Начиная с System 7, расширения были перемещены в папку Extensions внутри системной папки для удобства, и был реализован механизм автоматической маршрутизации, так что размещение расширения в системной папке с помощью перетаскивания фактически помещало файл в соответствующую подпапку.
Расширения сохраняли тип ресурса «INIT» на протяжении всего своего жизненного цикла, и загрузчик постепенно улучшался для поиска этих ресурсов во многих местах, в том числе в ответвлениях ресурсов панелей управления в различных форматах и в Chooser .
Расширения
INIT превратились в системные расширения, попутно получив дополнительные специальные протоколы, такие как предоставление значка, отображаемого во время загрузки (источником этого было «ShowINIT»). «Парад частей головоломки и значков» на экране при загрузке каждого расширения стал знаком всем пользователям Mac. Сами Apple в конечном итоге выпустила основные (но необязательные) части операционной системы в виде расширений, такие как QuickTime , QuickDraw 3D и многие другие. Существенное количество сервисов и драйверов в Mac OS — как официальных, так и сторонних — было предоставлено в виде расширений, что позволяло урезать ОС путем их отключения.
Системные расширения были обычным источником нестабильности на Macintosh, поскольку сторонний код имел переменное качество и часто исправлял систему способами, которые не всегда работали правильно. Некоторые расширения неправильно работали вместе или работали только при загрузке в определенном порядке. Кроме того, разные расширения могут пытаться исправить одну и ту же часть системы, что может привести к конфликтам расширений и другой нестабильности. Выявление этих источников проблем было еще одной задачей, с которой в какой-то момент столкнулось большинство пользователей Mac. Расширения Устранение неполадок Mac OS может быть трудоемким процессом Рассекайте и методом проб и ошибок .
Самый простой способ выполнить «чистую» загрузку операционной системы — удерживать клавишу Shift: загрузка расширений не будет выполняться. В систему 7.5 добавлен менеджер расширений , который позволяет пользователю быстро включать или отключать определенные расширения, а также определять их наборы, которые будут правильно работать вместе. Extensions Manager поставлялся с двумя предоставленными базовыми наборами только для чтения: один содержал подмножество расширений, необходимых для базовой работы ОС, а другой включал все официальные расширения, поставляемые с ОС, но отключал все сторонние расширения.
Порядок загрузки расширений был побочным эффектом функции GetFInfo, которая использовалась загрузчиком для перечисления файлов в папке Extension. Хотя Apple всегда заявляла, что порядок, который возникает в результате перечисления файлов с помощью этой функции, не определен, на томах HFS эта функция перечисляет файлы в порядке, хранящемся в каталоге HFS. Люди выяснили, что изменение первого символа в имени файла может изменить порядок загрузки расширений, что вызвало проблемы, когда Mac OS 8.1 перешла на HFS +. В итоге Apple пришлось изменить загрузчик, чтобы отсортировать имена файлов, возвращаемых этой функцией, в таблицу и предоставить интерфейс, позволяющий программному обеспечению изменять таблицу.
Панели настройки и управления
Системные расширения не имели пользовательского интерфейса: не было стандартного механизма, с помощью которого пользователь мог бы настраивать услуги, предоставляемые расширением. Расширения могли изменять графический интерфейс (например, добавлять новые меню в строку меню) и, таким образом, принимать пользовательскую конфигурацию, или они могли сопровождаться приложением для предоставления интерфейса конфигурации.
С System 7 , панели управления становятся отдельным Finder плагины на диске , которые могут быть запущены пользователем. Путем вставки кода INIT в панель управления стало возможным создавать гибриды расширений и панелей управления, которые изменяли операционную систему во время загрузки и содержали свой собственный встроенный интерфейс конфигурации в той же форме, что и любая другая панель управления операционной системы.
Безликие фоновые приложения
MultiFinder и System 7 и более поздние версии поддерживали безликие фоновые приложения, подобные демонам UNIX или службам Windows , хотя и с использованием совместной многозадачности . Примеры включают синхронизатор времени ( корректировка летнего времени и удаленная синхронизация времени), планировщик обновлений программного обеспечения и действия с папками (обработка событий папки). Безликие фоновые приложения были обычными приложениями с ограничением, что они не отображались в меню приложений. Единственными техническими отличиями между безликим фоновым приложением и обычным приложением было то, что в SIZE ресурсе ‘ ‘ был установлен флаг «Только фон» . Им было запрещено открывать обычное окно уровня приложения: если они это сделают, система зависнет.
Однако они могли свободно открывать глобальные плавающие окна, поскольку они не могли ни получить, ни потерять фокус. Полоса управления в Mac OS 8 и 9 была примером безликого фонового приложения, которое отображало глобальное плавающее окно для взаимодействия с пользователем. Переключатель приложений был другим. Однако пользователь никогда не знал, что контрольная полоса является запущенным процессом; это было просто представлено как дополнительная функция интерфейса. Система просто описывала безликие фоновые приложения как «системные приложения».
Языковые функции в Open Scripting Architecture (и, следовательно, AppleScript ) изначально были реализованы как динамически загружаемые плагины, известные как «скриптовые дополнения» или OSAX. В Mac OS 8 и 9 они были дополнены безликими фоновыми приложениями, которые загружались в фоновом режиме по запросу. Как и в случае с обычными приложениями, доступ к этим приложениям осуществлялся с помощью tell предложений: глобальное пространство имен не обновлялось, как в случае с OSAX. Операционная система не показывала запуск таких процессов и не указывала, запущены они или нет.
Другие расширения, не относящиеся к INIT
Расширения типа INIT загружались во время загрузки для обновления операционной системы. Как ни странно, в папку Extensions можно было поместить и другие файлы, многие из которых не были загружены во время загрузки. Наиболее примечательными из них были общие библиотеки, которые обычно помещались в папку Extensions для простоты расположения. Общие библиотеки не загружались во время загрузки.
Файлы типа INIT были не единственным типом расширения системы. Другой тип — это scri или расширение WorldScript. BootX Загрузчик Linux был реализован в виде SCRI просто такие файлы были загружены очень рано в процессе загрузки, перед всеми другими расширениями. Затем BootX может отобразить диалоговое окно, предлагающее пользователю завершить загрузку Mac OS или вместо этого загрузить Linux.
Источник
Der Flounder
Uninstalling macOS system extensions
With the ongoing change from kernel extensions to system extensions, one new thing Mac admins will need to learn is how to uninstall system extensions. Fortunately, Apple has provided a tool as of macOS Catalina that assists with this: systemextensionsctl
If you run the systemextensionsctl command by itself, you should get the following information about usage:
The last verb, uninstall, is what allows us to remove system extensions. For more details, please see below the jump.
To uninstall a system extension using systemextensionsctl, you need to provide the following:
- Team identifier of the certificate used to sign the system extension
- Bundle identifier for the system extension
Locating Team and bundle identifiers
You can identify team and bundle identifiers by locating the system extension in question inside the application and running the following commands:
To identify the Team identifier:
To identify the bundle identifier:
For example, Microsoft Defender ATP currently has several system extensions within its application bundle:
- /Applications/Microsoft Defender ATP.app/Contents/Library/SystemExtensions/com.microsoft.wdav.epsext.systemextension
- /Applications/Microsoft Defender ATP.app/Contents/Library/SystemExtensions/com.microsoft.wdav.netext.systemextension
- /Applications/Microsoft Defender ATP.app/Contents/Library/SystemExtensions/com.microsoft.wdav.tunnelext.systemextension
To find the bundle identifier for the com.microsoft.wdav.epsext.systemextension system extension, run the command shown below:
That should give you the following output:
To find the Team identifier for the com.microsoft.wdav.epsext.systemextension system extension, run the command shown below:
That should give you the following output:
Uninstalling a system extension
Once you have both, you can run the following command with root privileges to uninstall a system extension:
For example, if you wanted to uninstall Microsoft Defender’s com.microsoft.wdav.epsext.systemextension system extension, you would run the following command with root privileges:
Note: As of September 1, 2020, running the systemextensionsctl uninstall command requires System Integrity Protection (SIP) to be disabled. This limitation is supposed to be removed by Apple at some point in the very near future.
Источник