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.