2017-04-21 15 views
8

Mam kod kryptograficzny, który ma wiele implementacji, wybierając implementację w czasie wykonywania na podstawie cech procesora, na którym działa. Przeniesienie tego jest proste, a Windows, Linux i Android są łatwe.Czy istnieje interfejs API do wykrywania funkcji procesora w systemie iOS?

Ale w iOS nie wydaje się łatwe. Podczas, gdy procesory x86 mają instrukcję wykrywania obiektów, nawet z trybu użytkownika, odpowiednik ARM jest uprzywilejowany. Nie można wykryć funkcji procesora w ARM bez współpracy z systemem operacyjnym.

W systemie Windows IsProcessorFeaturePresent służy do wykrywania funkcji procesora ARM. W systemie Linux do zrobienia jest /proc/cpuinfo. System Android ma bibliotekę cpufeatures (i nadal działa /proc/cpuinfo). Mac OS ma numer sysctlbyname z hw.optional.*.

Ale co z systemem iOS? Jądro iOS ma numer hw.optional.*, taki jak Mac OS, ale jest to locked down w systemie iOS 10. (Tak więc moje pytanie nie jest duplikatem this one, ponieważ zmieniły się okoliczności, które zmieniły się od tego czasu.) Ponadto, uzyskanie listy tych elementów wydaje się trudne - sieć Apple z otwartym kodem źródłowym strona uruchamia zautomatyzowany proces, który usuwa cały kod specyficzny dla ARM ze źródła systemu operacyjnego, które udostępnia publicznie, aby zwiększyć skuteczność jailbreakerów.

Odpowiedz

0

iOSsysctlAPI pozwala uzyskać wiele informacji o systemie tym CPU modelu MA, e, z którego można czerpać do jego możliwości. Here to fajny artykuł na temat korzystania z sysctl z Swift.

Możesz także przejrzeć biblioteki SystemKit i PFSystemKit

Powiązane problemy