我有一個具有多種實現的一些加密代碼,選擇哪一個實現在運行時根據其上運行的CPU的功能。將Windows,Linux和Android輕鬆移植到目前爲止已經很簡單。是否有一個API來檢測iOS上的CPU功能?
但iOS版似乎並不容易。雖然x86 CPU使用cpuid
指令來檢測功能,即使在用戶模式下,ARM等效也是有特權的。沒有OS合作,無法在ARM上檢測CPU功能。
在Windows中,IsProcessorFeaturePresent
作品用於檢測ARM CPU的功能。在Linux上,/proc/cpuinfo
是要走的路。 Android有一個cpufeatures
庫(並且/proc/cpuinfo
仍然可以工作)。 Mac OS有sysctlbyname
和hw.optional.*
。
但是,我們的iOS? iOS的內核hw.optional.*
喜歡Mac OS,但它在iOS的10(。因此,我的問題是不是this one重複,因爲情況已經從此改變)也locked down,得到這些名單似乎很難 - 蘋果的開源Web網站運行一個自動化過程,以清除他們公開發布的操作系統源代碼中的所有ARM特定代碼,以便讓越獄工作更加努力。