私は実行中のCPUの機能に基づいて実行時にどの実装を選択するか、複数の実装を持ついくつかの暗号化コードを持っています。これまでの移植は簡単でしたが、Windows、Linux、Androidは簡単です。iOSでCPU機能を検出するAPIはありますか?
しかし、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カーネルにはMac OSのようにhw.optional.*
がありますが、iOS 10ではlocked downです。(したがって、私の質問はthis oneと重複していません)また、それらのリストを取得するのは難しいようです。AppleのオープンソースWeb jailbreakersをもっと難しくするために、OSのソースからARM固有のコードをすべてスクラブする自動化プロセスを実行します。