Jump to content
oswaldini

Natywny zapis wartości do NVRAM

Recommended Posts

Pojawił się ciekawy temat o natywnym zapisie do NVRAMu, oryginał można śledzić tutaj: http://www.projectosx.com/forum/index.php?showtopic=3298

 

Chłopaki mają łeb na karku, trzeba przyznać. Dmazar zrobił nowy OsxAptioFixDrv-64.efi, który ma obsługę natywnego zapisu nvramu, sterownik znajdziecie tutaj: http://www.projectosx.com/forum/index.php?s=&showtopic=3298&view=findpost&p=41370

 

Ja przetestowałem u siebie na Z77 i niestety nie bangla. Ponoć na Z87 i Z97 zaskoczyło.

 

Bardzo proszę o przetestowanie, procedura wygląda następująco:

1. osoby używające skryptów Clovera muszą wyłączyć skrypt do zapisu nvramu w terminalu:

sudo mv /private/etc/rc.shutdown.d/80.save_nvram_plist.local /private/etc/rc.shutdown.d/80.save_nvram_plist.local.disabled

2. usunąć nvram.plist w terminalu

sudo rm /nvram.plist

3. usunąć: /EFI/CLOVER/drivers64UEFI/EmuVariableUefi-64.efi oraz /EFI/CLOVER/drivers64UEFI/OsxAptioFixDrv-64.efi

4. wgrać nowy OsxAptioFixDrv-64.efi z załącznika do /EFI/CLOVER/drivers64UEFI/

5. odpalić ponownie komputer

6. zapisać testową wartość nvram w terminalu:

sudo nvram NvramTest=1

7. sprawdzamy czy wartość się zapisała, odczytujemy w terminalu nvram komendą: nvram -x -p i szukamy wpisu:

<key>NvramTest</key>
<data>
MQ==
</data>

8. odpalamy komputer ponownie i sprawdzamy w terminalu komendą nvram -x -p czy powyższa komenda została w pamięci !

 

OsxAptioFixDrv_64.efi.zip

 

EDIT:

Coś się u mnie poprawiło... po pierwszym rebootcie musiałem sam wybrać dysk do bootowania, potem komputer już pamiętał pomimo braku zapisu w nvramie... Niesttey moich ręcznie wprowadzonych wartości nie pamięta...

EDIT2: zapamiętywany jest też poziom stanu głośności ale FMM już nie

 

EDIT3: Jest nowy driver, u mnie już działa zapis do NVRAMu.

AptioFixNvramTest.zip

 

EDIT4: nowy driver - nie testowałem, może powodować problemy ze sleepem - testujcie.

AptioFixNvramTest3.zip

Share this post


Link to post
Share on other sites

Mamy nowy driver, u mnie już działa NVRAM !! http://www.projectosx.com/forum/index.php?s=&showtopic=3298&view=findpost&p=41414

 

EDIT: właśnie zainstalowałem Yosemite i ładnie działa bless :D Nie trzeba ręcznie wybierać dysków po rebootcie, yeah w końcu :) Na chwilę obecną jeszcze FileVault II oraz TB i jest 100% zgodność :)

Share this post


Link to post
Share on other sites

Wszystko co chcesz, OS X zapisuje m.in. takie parametry:

  • LocationServicesEnabled
  • SystemAudioVolume
  • SystemAudioVolumeDB
  • bluetoothActiveControllerInfo
  • bluetoothInternalControllerInfo
  • boot-image
  • efi-boot-device
  • efi-boot-device-data
  • fmm-computer-name
  • prev-lang:kbd
  • security-mode

Share this post


Link to post
Share on other sites

Np ten parametr:

prev-lang:kbd

poprawnie obsługiwany sprawia, że nie musimy na sztywno do configu clovera wpisywać języka. Dzięki temu instalator przy pierwszym starcie zapyta o wybór języka i będzie go pamiętał. Wcześniej jak język nie był zdefiniowany w configu, drugi etap instalacji wywalał się i tak zainstalowany OS X nie działał prawidłowo... taki drobiazg, a wiele krwi potrafił popsuć.

Share this post


Link to post
Share on other sites

Np ten parametr:

prev-lang:kbd

poprawnie obsługiwany sprawia że nie musimy na sztywno do configu clovera wpisywać języka. Dzięki temu instalator przy pierwszym starcie zapyta o wybór języka i będzie go pamiętał. Wcześniej jak język nie był zdefiniowany w configu, drugi etap instalacji wywalał się i tak zainstalowany OS X nie działał prawidłowo... taki drobiazg, a wiele krwi potrafił popsuć.

A jak ustwić dokładnie ten parametr prev-lang:kbd na polski język? Napisz krok po kroku ja to ustawiasz. z góry dzieki. 

Share this post


Link to post
Share on other sites

Nie chcę siać popeliny bo nie pamiętam ale czy Clover nie ustala domyślnego języka na EN jeśli nie jest zdefiniowany ?

 

prev-lang:kbd można zdefiniować normalnie z terminala, j.polski to pl:30788, en to en:0. Wygląda to tak:

sudo nvram prev-lang:kbd=pl:30788

Share this post


Link to post
Share on other sites

Program narzedzie Clover Configuratior po tym jak wybrałem w nim język polski ustawił mi  config na:

 

 

<key>Language</key>
<string>pl:0</string>

 

zastanawiam się czy nie powinno być pl:30788 i czy wówczas OS X nie ma problemów z takim w połowie poprawnym zapisem , narzędzie to przestawia tylko pierwsza wartość czyli język na pl a druga pozostawia bez zmian - nie ma bazy wszystkich numerów

Share this post


Link to post
Share on other sites

To polecenie : sudo nvram prev-lang:kbd=pl:30788 mozna zastosować tylko na zainstalowany pracujący system, zas na OSX instalator na pendrive  zapisać w pliku config i parametr <key>Language</key>, to samo tyczy się chyba innych parametrów NVRAM - zapis to config Clovera lub wpisanie pojedynczo przy starcie systemu np. kext-dev-mode=1

Share this post


Link to post
Share on other sites

Jeżeli ktoś wcześniej używał skryptów do nvramu i iMessages a potem przejdzie na natywny zapis mogą pojawić się problemy ! Zmienią się wartości i zbanowany zostanie AppleID. Trzeba ustawić:

    <key>RtVariables</key>
    <dict>
        <key>MLB</key>
        <string>C02032109R5DC771H</string>
        <key>ROM</key>
        <string>0011223344556677</string>
    </dict>

MLB to nasz serial + dowolny ciąg aby uzyskać 17 znaków

ROM to mac adres naszej karty sieciowej.

 

Jeżeli dopiero zaczynamy przygodę z Hackiem to po ustawieniu natywnego zapisu do nvramu i 2 powyższych wartości wszystko powinno być OK.

Share this post


Link to post
Share on other sites

OK, ale te w/w wartości to to co wstrzykiwał do tej pory Clover? Czy trzeba wyciągnąć obecne własne i dopisać do configu... Opisz jaśniej, bo nie śledziłem wątku na projectx o nvramie.

Share this post


Link to post
Share on other sites

Śledziłem pobieżnie i nie mam 100% pewności. Ponadto mac address masz 6 (xx:xx:xx:xx:xx:xx) bajtów a nie 8 (0011223344556677) - też nie do końca mogę zaskoczyć.

Ja wyciągnąłem swój serial i wpakowałem własny mac address 6-cio bajtowy - jeszcze się nie wylogowywałem.

Share this post


Link to post
Share on other sites

Oswaldini - wciąż nie rozumiem gdzie jest problem? Mac addres LAN jest zawsze np taki 40:6c:8f:01:02:03 - sześć członów po dwa znaki z zestawu 0-9 A-F, nie wiem skąd Ci się wziął 8-mio członowy?.

 

MLB - to serial płyty głównej, wiadomo, że jest inny niż normalny serial i 17 znakowy, to że go dopełniamy losowo do tych 17demnastu znaków, to nasza fantazja...

 

Teraz jeśli korzysta się w 100% z clovera rozumiem, że w/w dwa parametry są "generowane" przez clovera? Jak to jest.

 

Jak się włączy NVRAM, to te parametry są odczytywane z NVRAM?

 

Kurczę nie rozumiem gdzie jest problem, przecież clover jak wcześniej umiał za symulować dane które były potrzebne iMessage itd, to czemu z nvram już nie potrafi?

Share this post


Link to post
Share on other sites

Apple koduje dane NVRAM w kodowaniem Base64.

Poleceniem poniższe pokazuje zapisane parametry NVRAM

nvram -x -p

Np. u mnie tak obecnie pokazuje dane w NVRAM

mac:~ Daniel$ nvram -x -p
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Clover.LogEveryBoot</key>
	<data>
	MTA=
	</data>
	<key>Clover.LogLineCount</key>
	<data>
	MzAwMA==
	</data>
	<key>Clover.MountEFI</key>
	<data>
	WWVz
	</data>
	<key>LocationServicesEnabled</key>
	<data>
	AQ==
	</data>
	<key>SystemAudioVolume</key>
	<data>
	Fw==
	</data>
	<key>SystemAudioVolumeDB</key>
	<data>
	9A==
	</data>
	<key>efi-boot-device</key>
	<data>
	PGFycmF5PjxkaWN0PjxrZXk+SU9NYXRjaDwva2V5PjxkaWN0PjxrZXk+SU9Qcm92aWRl
	ckNsYXNzPC9rZXk+PHN0cmluZz5JT01lZGlhPC9zdHJpbmc+PGtleT5JT1Byb3BlcnR5
	TWF0Y2g8L2tleT48ZGljdD48a2V5PlVVSUQ8L2tleT48c3RyaW5nPkE0MUMzM0EzLThG
	OEUtNDBENC04QzI2LThDMzBBQUZDRjBBMjwvc3RyaW5nPjwvZGljdD48L2RpY3Q+PC9k
	aWN0PjwvYXJyYXk+
	</data>
	<key>efi-boot-device-data</key>
	<data>
	AgEMANBBCAoAAAAAAQEGAAIfAwEIAAABAAAEASoAAgAAAChABgAAAAAAAIzfDQAAAACj
	Mxykjo/UQIwmjDCq/PCiAgJ//wQA
	</data>
	<key>fmm-computer-name</key>
	<data>
	bWFj
	</data>
	<key>prev-lang:kbd</key>
	<data>
	cGw6MzA3ODg=
	</data>
	<key>security-mode</key>
	<string>none</string>
</dict>
</plist>

Jak rozkodować wartości z NVRAM np. dla ustawionego języka jest to parametr 

prev-lang:kbd

  który ma wartość u mnie:

cGw6MzA3ODg=

Dekodowanie, konwersja danych zapisanych w Base64 na ASCII  za pomocą konsoli, w w apostrofach podajemy dane Base64, które chcemy rozkodować, w poniższy przykładzie sprawdzam jaki dane mam zapisane  dla języka prev-lang:kbd

mac:~ Daniel$      echo 'cGw6MzA3ODg=' | openssl base64 -d

 Konsola zwróciła mi wartość (zdekodowała ciąg):

pl:30788

Dekodowanie to może przydać się w różnych sytuacjach gdy operujemy na Base64, możemy np. sprawdzić co system OS X ma zapisane w NVRAM (jakie sam wartości ustawia bez naszej wiedzy), Ja sprawdzałem na różnych parametrach-wartościach co zawierają w sobie np. dla fmm-computer-name

Share this post


Link to post
Share on other sites

Jeśli się nie mylę to poniższym poleceniem można zapisać w NVRAM parametr uruchamiania systemu OS X 10.10 z  z flagą kext-dev-mode=1 która jest odpowiedzialna za wczytanie naszych dodatkowych niezbędnych hackintoshowych kextów

sudo nvram boot-args:"kext-dev-mode=1"

kext-dev-mode=1 mam też zapisany w ustawieniach  Colvera - config plik

Share this post


Link to post
Share on other sites

Mi się znikąd wzięło 8 członów, to właśnie Slice walnął bugiem. Clover nie wstrzykiwał nigdy Twojego serialu i mac adresu, dzisiaj to sprawdziłem. Nawet jak w smbiosie zdefiniowałeś serial i boardserialnumber to Mac OS X widział i tak co innego (to co domyślnie wstrzykiwał clover sic!) - w About This Mac serial był OK. Suma summarum trzeba ustawić zarówno smbios jak i rtvariables w cloverze aby się wszystko zgadzało.

 

Clover zawsze jako MLB wstrzykuje C02140302D5DMT31M dla każdego komputera ! To jest serial MacPro5,1 bodaj.

Share this post


Link to post
Share on other sites

Poniżej prezentuję jak NVRAM jest rozwiązany w Chameleonie (stosowałem to zamin Clovera używałem) za pomoca dwóch plików FileNVRAM.dylib i nvram.00000000-0000-0000-0000-00241d2e24f7.plist - zawartość jego:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>NVRAM</key>
	<dict>
		<key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>
		<dict>
			<key>MLB</key>
			<data>tu jest zakodowany w base64 mój serial i dodatkowy ciąg znaków</data>
			<key>ROM</key>
			<data>8HCxK/k3</data>
		</dict>
		<key>boot-args</key>
		<string>-v kext-dev-mode=1</string>
		<key>fmm-computer-name</key>
		<data>bG9jYWxob3N0</data>
		<key>fmm-mobileme-token-FMM</key>
		<data>YnBsaXN0MDDXAQIDBAUGBwgJFBUWFxhWdXNlcmlkXxATZGF0YWNsYXNzUHJvcGVydGllc1lhdXRoVG9rZW5YcGVyc29uSURYdXNlcm5hbWVfEBJlbmFibGVkRGF0YWNsYXNzZXNYdXNlckluZm8RAfXRCgtfECFjb20uYXBwbGUuRGF0YWNsYXNzLkRldmljZUxvY2F0b3LUDA0ODxAREhNWYXBzRW52WGhvc3RuYW1lXWF1dGhNZWNoYW5pc21Wc2NoZW1lWlByb2R1Y3Rpb25fEBNwMDUtZm1pcC5pY2xvdWQuY29tVXRva2VuVWh0dHBzXxAoQVFBQUFBQlNobFBtdTJwUHVvbG11OGhSRTB2VHlhRm5IdW9pdHdrfloxMjYxMzg4NDc3XxAVZGFuaWVsY2lzZWtAZ21haWwuY29toQrTGRobHB0eXxAVSW5Vc2VPd25lckRpc3BsYXlOYW1lXxATSW5Vc2VPd25lckZpcnN0TmFtZV8QEkluVXNlT3duZXJMYXN0TmFtZVxEYW5pZWwgQ2lzZWtWRGFuaWVsVUNpc2VrAAgAFwAeADQAPgBHAFAAZQBuAHEAdACYAKEAqACxAL8AxgDRAOcA7QDzAR4BKQFBAUMBSgFiAXgBjQGaAaEAAAAAAAACAQAAAAAAAAAfAAAAAAAAAAAAAAAAAAABpw==</data>
		<key>IOPowerManagement</key>
		<dict>
			<key>CurrentPowerState</key>
			<integer>1</integer>
			<key>MaxPowerState</key>
			<integer>1</integer>
		</dict>
		<key>LocationServicesEnabled</key>
		<data>AQ==</data>
		<key>SystemAudioVolume</key>
		<data>Gw==</data>
	</dict>
</dict>
</plist>

Rozwiązanie to działało na problemem z iCloud, iTunes oraz iMessage.

 

Obecnie nie chce nic zmieniać w Clover, NVRAM bo jeszcze Apple zablokuje mi AppleID, a usługi teraz działają OK: iCloud, iTunes oraz iMessage

 

 

 

Poniżej rozwiązania, które teraz znalazłem dla chamelona/Clovera dla osób które maja problem iMessage itp ...

 

SOLVED

so what you actually need is mlb and mac address ethernet (off course ethernet must be en 0) from registered device or hardware on apple server, try this and i hope it will solve your iMessage login issue, except for amd machine, i don't know how it works

if you're using clover, make sure you have EmuVariableUefi-64.efi in drivers64UEFI's folder
1. open clover configurator 
2. goto Rt Variables section, put MLB value = C02K7438DRVCN1S5A and ROM value = UEZdNpmp
3. goto SMBIOS section, put SmUUID value = 
9DFF0000-3C12-0539-FFFF-50465D3699A9
4. and then reboot

if you're using chameleon, make sure you have nvram-smuuid.plist (example on my notebook is 
nvram.9dff0000-3c12-0539-ffff-50465d3699a9.plist) in Extra's folder, if you don't have, try to find working nvram module for your hardware (currently i'm using nvram.lib 1.1.3 and chameleon 2377)
1. open terminal
2. sudo nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB=C02K7438DRVCN1S5A
3. sudo nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM=PF]6%99%a9
or alternatively you can manually edit file above with text editor (I'm using PlistEditor) and change MLB value (without quote) = "QzAySzc0MzhEUlZDTjFTNUE=" and ROM value (without quote) = "UEZdNpmp"
4. and then reboot

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.