Блог Ходакова

#golang #macos #linux #overwatch и стопицот других тегов
Как обмануть Apple (и MacPaw до кучи) и стать «нормальным Маком»

Данный гайд основан на работе P1LGRIM с форума tonymacx86An iDiot’s Guide To iMessage. После проделывания описанных ниже процедур Apple будет считать, что ваш Хакинтош — не какая-то наколеночная поделка, а настоящий, свежекупленный Apple-branded device.

Подготовительные работы Подготовительные работы не требуются, если вы не добавляли в macOS свою учётную запись iCloud. Если добавляли, то надо:

  1. Удалить учётную запись из настроек
  2. На сайте iCloud удалить в «Найти iPhone» ваше устройство (которое уже распознано Apple неправильно)
  3. Отключиться от интернета (сохраните копию этого руководства на флешке или в текстовом файле: подключиться к интернету обратно можно только после завершения всех настроек.
  4. Перезагрузиться.
  5. Удалить кучу малу служебных файлов и кэша. Открываем Terminal и последовательно туда копипастим следующие команды:

    rm -r $HOME/Library/Caches/com.apple.iCloudHelper*
    rm -r $HOME/Library/Caches/com.apple.imfoundation.IMRemoteURLConnectionAgent*
    rm -r $HOME/Library/Caches/com.apple.Message*
    rm -r $HOME/Library/Preferences/com.apple.iChat.*
    rm -r $HOME/Library/Preferences/com.apple.icloud.*
    rm -r $HOME/Library/Preferences/com.apple.ids.service*
    rm -r $HOME/Library/Preferences/com.apple.imagent.*
    rm -r $HOME/Library/Preferences/com.apple.imessage.*
    rm -r $HOME/Library/Preferences/com.apple.imservice.*
    

Определение параметров сетевой карты

Для того, чтобы Apple распознавала в системе правильный Macintosh, компьютер должен соответствовать следующему условию:

  1. У нас есть сетевой интерфейс en0
  2. Он должен быть встроенным (built-in)

Для определения параметров сетевой карты нужно скачать и открыть утилиту DPCIManager. SourceForge говорит, что утилита — вирус, но это не так: просто она использует «грязные» методы определения PCI-устройств в системе (в том числе — тех, про которые macOS знать не знает и не слышала никогда). В главном окне программы на первой же вкладке видны сетевые интерфейсы и их свойства:

Окно DPCIManager

Если единственное ваше устройство, которое обладает сетевыми возможностями — PCIe Wi-Fi-карточка, то тут надо просто скрестить пальцы, чтобы macOS посчитала это устройство встроенным. Вот такая конфигурация:

<key>IOBuiltin</key>
<true/>

в /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist, к сожалению, не помогает. Если есть возможность заставить работать встроенный в материнскую плату Ethernet-адаптер — пользуйтесь ей. Абсолютно необязательно пользоваться этим же сетевым интерфейсом для подключения: главное — чтобы он в системе присутствовал.

Если на данном этапе вы устанавливали какие-то кексты для Ethernet-сетевухи, и она появилась в системе, но как en1, en2 или что-то в этом духе — волшебная команда в Terminal поможет: sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist. (Нет, ну конечно можно BSD-имя интерфейса в plist-файле и ручками поправить, но если вы это умеете — зачем вам этот гайд?)

После удаления файла настроек сетевых интерфейсов перезагружаемся. При загрузке macOS прочитает сетевые интерфейсы, начиная с встроенного, и присвоит им имена.

Конфигурация SMBIOS

Для следующего шага можно воспользоваться Clover Configurator (наверняка он у вас уже как-то установлен). Это не единственный способ добиться нужного результата — но достаточно простой и понятный. Clover Configurator позволит спокойно отредактировать config.plist, отвечающий за загрузку системы. Не стоит пытаться редактировать этот файл в текстовом редакторе: он, сука, XML, и его очень, очень легко отредактировать с нарушением синтаксиса. А config.plist, в котором нарушен синтаксис, не работает вовсе.

Внимание: то, что на скриншотах ниже какие-то поля не заполнены, не означает, что вы должны удалить из этих полей информацию.

  • Открываем Clover Configurator. Монтируем раздел EFI на вашем диске с установленной системой с помощью раздела Mount EFI.
  • Через File — Open открываем config.plist, который лежит в папке EFI/CLOVER вашего раздела с EFI.
  • На левой панели выбираем пункт Rt Variables. Из списка ROM выбираем ’UseMacAddr0’. Убеждаемся, что поле MLB пустое. Устанавливаем BooterConfig в значение 0x28, а CsrActiveConfig — в 0x67.

Clover Configurator: Rt Variables

  • На левой панели выбираем SMBIOS. Щёлкаем по неприметному списку, который расположен правее и чуть ниже изображения нашей «системы» (так как системное определение на скриншоте не выбрано, там знак вопроса). То, какое определение системы вы выбираете, зависит от вашего железа.

Clover Configurator: SMBIOS

  • После выбора определения системы рядом с полем Serial Number нажимаем кнопку Generate New. Полученный серийный номер копируем в буфер обмена для проверки.
  • Проверяем серийный номер на правильность здесь. Вставляем номер, решаем капчу, нажимаем Lookup. Ответом должна быть информация о системе, такой, как в определении системы, что мы выбрали на шаге 4. Если результат не такой, повторяем шаг 5.
  • На сайте проверки гарантии Apple снова вводим полученный серийный номер. А теперь внимание: сайт Apple должен сказать, что такого серийного номера не существует. Если же по серийному номеру показывается информация о каком-то компьютере — возвращаемся к шагу 5 и повторяем всё ещё раз.
  • Открываем Terminal и вводим туда команду uuidgen. Результат команды копируем и вставляем в Clover Configurator в поле SmUUID. В Clover Configurator выбираем File — Save.
  • Перезагружаемся.
  • ???
  • Готово, вы восхитительны.

Дополнительный шаг: проверка работоспособности NVRAM. В Terminal вводим следующие команды:

sudo nvram TestVar=HelloWorld
nvram -p | grep TestVar

Если вторая команда не вернула вам TestVar HelloWorld — нужно устанавливать эмуляцию NVRAM. EmuVariableUefi-64 и RC Scripts в установщике Clover помогут вам.

После перезагрузки

После того, как система перезагружена, можно настраивать все сервисы Apple так, как будто бы это обычный Mac-компьютер. Поздравляю, вы обманули систему!

Нужно ли совершать все эти телодвижения, если не собираетесь пользоваться iMessage/Facetime? Все равно нужно. Без правильно настроенного SMBIOS хакинтош будет вести себя странно/будут проблемы с Bluetooth (если таковое оборудование есть в системе) и так далее. Лучше один раз заморочиться, чем не делать этого и ловить рандомные глюки.

А при чём тут MacPaw?

А вот при чём:

MacPaw ругается

Если не настроить правильный SMBIOS, то ни SetApp, ни приложениями из него, пользоваться нельзя. Мгновенный разлогин и привет. После настройки выше — всё работает, и «It looks like your Mac’s identity was changed» больше не появляется.

Впрочем, можно воспользоваться альтернативой SetApp, и альтернатива даже дешевле на $11.90 в месяц… Но это уже совсем другая история.

← RCode — редактирование файлов на удалённом SSH-сервере в Visual Studio Code Как сделать американский Apple ID бесплатно за 5 минут →