Непрограммист не может этого сделать. Что вы можете сделать, так это написать расширение ядра (драйвер IOKit) для устройства, которое имеет соответствующий словарь, совпадающий с real vendor- / product-ID устройства, который заставляет систему автоматически загружать расширение ядра, когда это устройство подключено и передается ссылка на объект устройства. Теперь драйвер отвечает за инициализацию устройства и создает всю необходимую информацию о пространстве пользователя, необходимую для взаимодействия инфраструктуры IOKit (библиотеки пространства пользователя) с устройством. Обычно Apple имеет драйверы IOKit по умолчанию для большинства классов USB-устройств (поэтому вам не нужен дополнительный драйвер для каждой USB-мыши или клавиатуры, например), но если найден более конкретный драйвер, вместо него будет использоваться этот драйвер. И при создании данных пространства пользователя, конечно, драйвер может лежать относительно идентификатора поставщика / продукта, в результате чего программа пространства пользователя видит ложные значения. Поскольку IOKit написан на C ++ и сильно зависит от объектов и наследования объектов, нет необходимости даже писать драйвер с нуля, но вместо этого он может наследовать от драйвера Apple по умолчанию и просто переопределять некоторые методы и в противном случае полагаться на супер реализацию. Однако написание драйверов для ядра IOKit не так просто, и даже люди, разрабатывающие программное обеспечение для Mac в течение многих лет, могут не знать, как это сделать, и документация по IOKit - одна из худших, которые предлагает Apple.
Итак, чтобы ответить на ваш вопрос: возможно ли это? Да. Это довольно легко? Нет. Могут ли непрограммисты это сделать? Конечно, нет, если кто-то еще не написал готовое расширение для них, которое им нужно только установить.