Относно повредения iCloud на hackintosh - AppStudio Project

Броят на имейлите, в които собственици на hackintosh ни питат защо тяхнатаiCloud услуга не работи, само нараства всяка седмица. За да не отговаряме на всяко писмо едно и също, нека се опитаме да разберем проблема в отделен материал.
Всъщност хитростта на Apple няма нищо общо - в iCloud няма проверка дали имаш хакинтош или истински Mac. Корените на проблема лежат на съвсем друго и много неочаквано място.Виновникът за проблема е невалиден идентификатор на Ethernet мрежов интерфейс. Това звучи като глупост, но това е причината. Колкото и да е странно, ако мрежовите интерфейси на компютъра ви се възприемат от системата в грешен ред, получавате цял куп различни проблеми:
- iCloud ще откаже да се свърже
- Mac App Store няма да приеме вашата парола
- FaceTime няма да иска да извършва разговори
- Time Machine може да генерира грешки по време на архивиране
За да избегнете тези проблеми, всичко, което трябва да направите, е да накарате Mac OS X да третира Ethernet като вграден (има специално вградено свойство за това) и да му дадете идентификатор en0.
Между другото, много потребители на истински Mac се оплакват от същите проблеми, просто погледнете форумите за поддръжка на Apple и се уверете сами. Но хакинтошниците имат много по-ефективни начини за решаване на проблема :)
Ние ще подредим решенията в ред на нарастване на сложността:
1. Причина номер 1 - липсата на специална опция в настройките на буутлоудъра, която да активира пач, който присвоява вграденото свойство на Ethernet интерфейса. За Chameleon във файла /Extra/org.chameleon.boot.plist трябва да добавите раздел:
[php] EthernetBuiltIn Да [/php]
Ако използватеXPC, тогава във файла /EFI/XPC/settings.plist трябва да добавите или допълните секцията:
[php] InjectEthernet Доставчик 0x10ec Устройство 0x8168 [/php]
Полетата Vendor и Device трябва да бъдат заменени с идентификаторите на производителя и модела на Ethernet картата. Най-лесният начин да ги намерите е от свойствата на устройството в Windows Task Manager.
В Chameleon UUID се задава във файла /Extra/SMBIOS.plist в секцията:
[php] SMUUID 00000000-0000-1000-8000-000000000000 [/php]
3. Друга вероятна причина е остарял буутлоудър. Ако използвате Chameleon, първата стъпка е да го актуализирате до най-новите версии. Факт е, че корекцията, вградена в буутлоудъра, която присвоява правилните номера на мрежовите интерфейси, беше подобрена през последните месеци, но само се влоши. Проблемът с тази корекция беше решен сравнително наскоро.
4. Ако всичко е наред и iCloud и други услуги на Apple все още не работят, трябва да проверите кои идентификатори са присвоени на мрежовите интерфейси. За да направите това, отново трябва да разгледате свойствата на мрежата (Apple в лентата с менюта - Всичко за този компютър - Повече подробности - Системен отчет - Мрежа). На нашата екранна снимка всичко е наред:

Можете да нулирате ID по следния начин:

- изтрийте (или преместете на безопасно място) файловете /Libraries/Preferences/SystemConfiguration/com.apple.network.identification.plist и /Libraries/Preferences/SystemConfiguration/NetworkInterfaces.plist
- рестартирайте
- отидете на панела с настройки "Мрежа" и натиснете плюса. Изберете интерфейс "Ethernet".
- рестартирайте
- отидете на свойствата на мрежатаи проверете дали Ethernet е получил en0. Ако да, можете да добавите други интерфейси в конзолата за мрежови настройки
5. И накрая, ако вашата мрежова карта е регистрирана в DSDT, уверете се, че вграденото свойство е посочено в неговите свойства. Трябва да изглежда нещо подобно:
[php]Устройство (LAN) Име (_ADR, 0x01) Метод (_DSM, 4, NotSerialized) Съхранение (Пакет (0x04) "вграден", Буфер (0x01) 0x01 >, "device_type", Буфер (0x0) 9) "ethernet" > >, Local0) DTGP(Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Връщане (Local0) > >[/php]
Надяваме се, че няма да стигнете до четвъртия и петия метод. Както показва практиката, най-често е достатъчна актуализация на буутлоудъра. Успех с hackintosh ;)