Rozumiem, że prawdopodobnie byłoby to niepraktyczne, ale z tego powodu, ponieważ chciałbym spróbować zainstalować iOS na moim Raspberry Pi. (kiedy w końcu nadejdzie ...)
Rozejrzałem się za postami na ten temat i wydaje się, że sugerują, że uruchomienie iOS 3 może być możliwe z powodu ograniczeń sprzętowych, ale jak trudne to może być naprawdę? Wiele lat temu zainstalowałem kilka komputerów z systemem OS X86 i chociaż ból okazał się całkowicie możliwy. (oczywiście)
Więc moje ogólne pytanie brzmi: co powinienem zrobić, aby spróbować / nauczyć się instalować iOS na Raspberry Pi?
operating-systems
Mick MacCallum
źródło
źródło
Odpowiedzi:
Chociaż iOS firmy Apple jest atrakcyjny dla użytkowników, jeśli jesteś entuzjastą (ponieważ musisz mieć Raspberry Pi) lub programistą, iOS jest dla ciebie najmniej przyjazny.
iOS jest kompilowany specjalnie dla każdego modelu iPada lub iPhone'a firmy Apple ze specjalną integracją sprzętu i oprogramowania dla platformy. Zasadniczo całe oprogramowanie to jedna gigantyczna binarna kropelka. Ktoś wspomniał w komentarzach, że istnieje wiele podobieństw sprzętowych między Raspberry Pi a niektórymi modelami iPhone'a. Największą nadzieją na uruchomienie iOS na Raspberry Pi będzie znalezienie obrazu oprogramowania układowego telefonu, którego sprzęt jest najbardziej podobny do Raspberry Pi, a następnie próba uruchomienia go. Jednak, podobnie jak większość skompilowanych obrazów specyficznych dla platformy, jest prawdopodobne, że nawet niewielkie odchylenia w działającym środowisku od oczekiwanego środowiska spowodują, że system nie da się uruchomić. Jeśli tak się stanie, najprawdopodobniej będziesz musiał uciekać się do inżynierii wstecznej i hakowania binarnego obiektu blob przy użyciu różnych sterowników sprzętowych lub konfiguracji. Może to być bardzo nietrywialne i może stanowić wyzwanie nawet dla zespołu kompetentnych i doświadczonych inżynierów.
W związku z tym niezbędna będzie bardzo obszerna wiedza na temat konkretnego sprzętu różnych modeli iPhone'a, a także bardzo dobra znajomość procesu uruchamiania na niskim poziomie, który będzie niezbędny zarówno w przypadku Raspberry Pi, jak i iOS. Dodatkowo spójrz na architekturę iOS, która, jak rozumiem, jest niejasno oparta na systemie Darwin. W tym celu możesz przyjrzeć się różnym metodom jailbreakingu i ich działaniu.
Warto również zauważyć, że legalność takich działań jest wątpliwa, ponieważ prawdopodobnie istnieje wiele naruszeń umowy EULA, z których najbardziej oczywistym jest zastrzeżenie, że system operacyjny Apple działa tylko na sprzęcie Apple. Łamanie więzień jest technicznie legalne, ale inżynieria odwrotna jest tylko czasami chroniona przez prawo i nigdy nie była tak naprawdę konsekwentnie stosowana. Projekt Cydia i wiele aplikacji, które się w nim znajdują, jest w stanie dokonać drobnych zmian w iOS. Wiedza na temat tego, jak to zrobić, może pokrywać się z wiedzą na temat uruchamiania go na Raspberry Pi.
To powiedziawszy, widziałem kilka niesamowitych i trudnych projektów, ponieważ społeczność zaangażowanych programistów i hakerów połączyła wspólny cel, na przykład projekt Xbox-Linux lub projekt OSx86 . Z pewnością nie jest możliwe uruchomienie iOS na Raspberry Pi, ale to, co jest możliwe, nie zawsze jest praktyczne. Z Androidem możesz mieć więcej zabawy i mniej kłopotów, ponieważ jest to oprogramowanie typu open source. To powiedziawszy, tam gdzie jest silna wola, istnieje sposób.
źródło
Powiedziałbym, że najlepszym rozwiązaniem jest dekompilacja całego obrazu rozruchowego, a następnie odtworzenie go od podstaw w celu dostosowania go do specyfikacji pi. Problem polega na tym, że potrzebujesz bardzo dużej wiedzy na temat kodowania w wielu językach (osoby, które to projektują, mają wiele lat pracy wraz ze specjalnym szkoleniem). Byłoby to prawie niemożliwe, ale istnieje szansa ...
źródło
Nie jestem pewien, ale niektóre z pierwszych wersji iOS zostały stworzone dla czegoś w rodzaju Armv6, więc sprzęt może być podobny, a ty będziesz musiał zrobić kilka graficznych tekstów dla systemu (nie wiem, czy „ Będę w stanie przenieść akcelerację graficzną, która jest skomplikowana) i cały sprzęt, taki jak porty, kontrolery i pamięć. Znalazłem to, ale jest w dość początkowym stanie; http://winocm.com/projects/research/2013/11/22/milestone-one/, więc wypróbuj niestandardowe jądro Mach / xnu dla RPi i uruchom je, a następnie zobacz, co się stanie
źródło