Jak uzyskać dostęp do / dev / mem w OSX?

Odpowiedzi:

12

Według Uzyskiwanie dostępu Kernel pamięci na x86 wersja systemu Mac OS X , /dev/mema /dev/kmemzostały usunięte, gdy Apple wydało OS X dla procesorów Intel.

(Doskonały) artykuł wyjaśnia również, jak ponownie włączyć urządzenia pamięci , a mianowicie za pomocą kmem=1argumentu rozruchowego jądra.

Zauważ, że, jak skomentował poniżej neal , w macOS 10.15 Catalina (i prawdopodobnie od macOS 10.12 Sierra) ustawienia NVRAM można zmienić tylko wtedy, gdy Mac jest uruchamiany w trybie odzyskiwania . Aby przejść do trybu odzyskiwania, włącz komputer Mac i natychmiast przytrzymaj klawisz -R, aż pojawi się logo, uruchom Terminal z menu Narzędzia na pasku menu, uruchom:

sudo nvram boot-args="kmem=1"

i uruchom ponownie. Powinieneś zobaczyć te dwa urządzenia:

$ ls -l /dev/*mem
crw-r----- 1 root kmem 3, 1 2014-02-28 22:09 /dev/kmem
crw-r----- 1 root kmem 3, 0 2014-02-28 22:09 /dev/mem

(W poprzednich wersjach systemu macOS, takich jak OS X Mavericks 10.9.2, możesz ponownie włączyć urządzenia pamięci w systemie operacyjnym, więc po prostu uruchom Terminal, wpisz powyższe polecenie i uruchom ponownie.)

Jeśli komputer Mac nie uruchamia się lub występują problemy , zresetuj pamięć NVRAM, naciskając optionPRi przytrzymując klawisze, aż usłyszysz dźwięk uruchamiania po raz drugi, jak wyjaśniono w „Resetowanie pamięci NVRAM / PRAM” w KB HT1379 Informacje o pamięci NVRAM i PRAM .

Jeśli chcesz zresetować argument, wpisz sudo nvram -d boot-argsi sprawdź, nvram -p | grep boot-argsczy nie drukuje żadnych wyników.

jaume
źródło
1
Wypróbowałem tę metodę w systemie macOS Sierra, ale nie spowodowało /devto pojawienia się urządzeń pod ... może wiesz, czy Apple zamknął tę opcję i czy istnieje inna alternatywa dostępu do tej pamięci w 10.12?
Zohar81
1
W pewnym momencie ustawienia nvram można zmienić tylko wtedy, gdy komputer Mac został uruchomiony w trybie odzyskiwania. Jeśli więc włączysz komputer Mac i od razu przytrzymasz Cmd-R, aż pojawi się logo, a następnie upuść terminal w interfejsie instalacyjnym odzyskiwania i uruchom polecenie, powinno działać. To zadziałało dla mnie wczoraj na OS X Catalina.
neal
4

Myślę, że mam go do pracy na macOS Sierra! Ściągnąłem projekt comex : Projekt Kmem Skompilowałem kext, poprawiłem uprawnienia i załadowałem go! Używając terminala wszedłem /devi lspokazałem oba memi kmem...

Edycja: Jeśli pobierzesz projekt, musisz tylko zmienić kompilator w Xcode, aby użyć najnowszego (na przykład ... Nie wiem, czy działają inne wersje ...) Aby uzyskać szybki dostęp do wyników, które już stworzyłem widelec projektu comex, który kompiluje się na macOS Sierra! Kmem dla Sierra Fork

Ponownie, to jest praca comex, nie moja, właśnie zmieniłem ustawienia kompilatora i przesłałem je! :)

Nickolas Pylarinos
źródło