Two basic rules: M1 Macs run Arm-native code when it’s available, but won’t mix ARM-native and Intel code in the same process. Here are the details.
system_profiler
SilentKnight was producing some results in a mixture of English and Dutch. Its environment settings needed correction. When that didn’t fix it, I looked deeper to find language-unfriendly design in a command tool.
Identical code using system_profiler to look up the firmware version number worked in two apps but failed in a third. The solution was obscure.
Trying to get hardware info within an app – simple data like CPU details, logic board ID, type of internal storage – is fraught and undocumented, the victim of prolonged self-neglect.