7

Mac OS X Finder достаточно самодоволен, чтобы отобразить любое устройство, отличное от Mac, как изображение ПК с BSOD, но мне интересно, возможно ли добавить другие устройства, поэтому мой компьютер с Ubuntu обнаружен и имеет изображение Ubuntu ПК и мои ПК с Windows имеют картину сбоя Windows и т.д.

Я знаю, что public.generic-pc.icns существует и его можно заменить, но я не заинтересован в его замене как таковом, больше заинтересован в том, чтобы найти искатель для распознавания других устройств (или узнать, как он распознает другие устройства Apple) и сопоставить пользовательские значки им.

Любая подсказка?

3 ответа3

7

Кажется, я был очень близко, я просто не мог заставить свою машину правильно себя рекламировать.

Я наконец получил это к работе:

Пользовательский образ сетевого устройства в Mac OS X

Метод, который я использовал ниже:

  1. Сначала на Mac я создал пользовательский пакет, который я назвал "ComputerTypes", скопировав и вставив существующий пакет, такой как MobileDevices.bundle или MachineTypes.bundle, в /System/Library/CoreServices/CoreTypes.bundle/Contents/Library ,

  2. Затем я открыл Contents/Info.plist XCode Plist Editor и отредактировал все детали, чтобы создать собственный пакет, изменив идентификатор пакета, имя и т.д.

  3. Я удалил все существующие записи в ключе "UTExportedTypeDeclarations", а затем создал новую запись для каждого устройства. Каждая запись устройства имеет "UTTypeConformsTo", "UTTypeDescription", "UTTypeIconFile", "UTTypeIdentifier" и "UTTagSpecification", где "UTTagSpecification" содержит в себе массив в ключе «com.apple.device-model-code» all со всеми идентификаторов mDNS _device-info._tcp для принятия. UTTypeIconFile ссылается на файл icns в папке Resources.

  4. Затем я сохранил пакет в /System/Library/CoreServices/CoreTypes.bundle/Contents/Library и перезагрузился.

  5. На другом компьютере мне нужно было настроить для объявления службы _smb._tcp, а также записи TXT _device-info._tcp, как обычно, за исключением использования пользовательского имени модели, а не имени продукта Mac.

  6. После перезагрузки Mac он должен выглядеть как на картинке выше.

Я загрузил готовый пакет на http://dl.dropbox.com/u/4140005/ComputerTypes.bundle.zip в качестве примера.

0

Я не могу комментировать из-за репутации, но я хотел бы добавить к этому, потому что люди теперь могут столкнуться с этим и хотят осуществить это. В реализации SIP Sierra метод Адама больше не работает по умолчанию из-за невозможности скопировать файлы в любые подкаталоги CoreServices. Сначала вы должны отключить SIP.

Прежде чем идти дальше, вы должны понять, что SIP - это защитная мера, введенная Apple для предотвращения нарушения целостности вашей системы.

Я не буду вдаваться в то, как я отношусь к SIP как к разработчику приложений, но достаточно сказать, что я не всегда согласен с решениями Apple.

Сделать это:

Перезагрузите свой Mac. Когда вы услышите звонок, нажмите и удерживайте CMD+R, пока не появится рабочий стол. В меню "Утилиты" вверху выберите "Терминал". Введите "csrutil disable" и нажмите Enter. Введите "перезагрузка" и нажмите Enter.

SIP теперь отключен. Я вообще не забочусь о SIP сам, но понимаю, что я в меньшинстве. Кроме того, я не хочу, чтобы Apple слишком разозлилась на меня. Тем не менее, я рекомендую, если вы делаете это, чтобы заменить системный значок, который вы включили SIP сразу же, когда вы закончите. Для этого следуйте инструкциям по отключению, но замените слово "отключить" на "включить".

0

Вероятно, это стоит того, чтобы быть комментарием к ответу Адама, но мне нужно форматирование.

В Windows, если установлен iTunes или Bonjour для Windows, вы можете объявить общий ресурс samba следующим образом:

  1. Откройте две подсказки cmd.
  2. Запустите следующие команды (в разных консолях):

    dns-sd -R имя_компьютера _device-info._tcp локальная модель 445 = Xserve3,1

    dns-sd -R ComputerName _smb._tcp local 445

Dns-sd не выйдет, и если вы нажмете Ctrl-C или закроете cmd, общий ресурс исчезнет из Finder. Мне удается только использовать значки OSX по умолчанию, несмотря на полезный примерный файл Адама (это может быть проблема 10,6 против 10,8 ... есть различия между его и 10,8). Кроме того, у меня чертовски много времени выясняется, как заставить Windows запускать эту команду и выключать ее при poweron/poweroff и wake/sleep (хотя, чтобы выключить dns-sd из сценария bat, вы просто использовать TaskKill).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .