Support Platfroms

The core of PyArmor is written by C, the prebuilt dynamic libraries include the common platforms and some embeded platforms.

Some of them are distributed with PyArmor source package, in these platforms, pyarmor could run without downloading anything. Refer to Prebuilt Libraries Distributed with PyArmor.

For the other platforms, pyarmor first searches path ~/.pyarmor/platforms/SYSTEM/ARCH, SYSTEM.ARCH is one of Standard Platform Names. If there is none, download it from remote server. Refer to The Others Prebuilt Libraries For PyArmor.

In some platforms, pyarmor doesn’t know it but there is available dynamic library in the table The Others Prebuilt Libraries For PyArmor. Just download it and save it in the path ~/.pyarmor/platforms/SYSTEM/ARCH, this command pyarmor -d download will also display this path at the beginning. It’s appreicated to send this platform information to so that it could be recognized by pyarmor automatically. This script will display the required information by pyarmor:

from platform import *
print('system name: %s' % system())
print('machine: %s' % machine())
print('processor: %s' % processor())
print('aliased terse platform: %s' % platform(aliased=1, terse=1))

if system().lower().startswith('linux'):
    print('libc: %s' % libc_ver())
    print('distribution: %s' % linux_distribution())

Contact if you’d like to run PyArmor in other platform.

Standard Platform Names

These names are used in the command obfuscate, build, runtime, download to specify platform.

  • windows.x86
  • windows.x86_64
  • linux.x86
  • linux.x86_64
  • darwin.x86_64
  • vs2015.x86
  • vs2015.x86_64
  • linux.arm
  • linux.armv7
  • linux.aarch32
  • linux.aarch64
  • android.aarch64
  • linux.ppc64
  • darwin.arm64
  • freebsd.x86_64
  • alpine.x86_64
  • alpine.arm
  • poky.x86

Platform Tables

Table-1. Prebuilt Libraries Distributed with PyArmor
Name Platform Arch Features Download Description
windows.x86 Windows i686 Anti-Debug, JIT, ADV _pytransform.dll Cross compile by i686-pc-mingw32-gcc in cygwin
windows.x86_64 Windows AMD64 Anti-Debug, JIT, ADV _pytransform.dll Cross compile by x86_64-w64-mingw32-gcc in cygwin
linux_x86 Linux i686 Anti-Debug, JIT, ADV Built by GCC
linux.x86_64 Linux x86_64 Anti-Debug, JIT, ADV Built by GCC
darwin.x86_64 MacOSX x86_64, intel Anti-Debug, JIT, ADV _pytransform.dylib Built by CLang with MacOSX10.11
Table-2. The Others Prebuilt Libraries For PyArmor
Name Platform Arch Features Download Description
vs2015.x86 Windows x86   _pytransform.dll Built by VS2015
vs2015.x86_64 Windows x64   _pytransform.dll Built by VS2015
linxu.arm Linux armv5 32-bit Armv5 (arm926ej-s)
linux.armv7 Linux armv7 Anti-Debug, JIT 32-bit Armv7 Cortex-A, hard-float, little-endian
linux.aarch32 Linux aarch32 Anti-Debug, JIT 32-bit Armv8 Cortex-A, hard-float, little-endian
linux.aarch64 Linux aarch64 Anti-Debug, JIT 64-bit Armv8 Cortex-A, little-endian
linux.ppc64 Linux ppc64le For POWER8
darwin.arm64 iOS arm64   _pytransform.dylib Built by CLang with iPhoneOS9.3.sdk
freebsd.x86_64 FreeBSD x86_64 Not support harddisk serial number
alpine.x86_64 Alpine Linux x86_64 Built with musl-1.1.21 for Docker
alpine.arm Alpine Linux arm Built with musl-1.1.21, 32-bit Armv5T, hard-float, little-endian
poky.x86 Inel Quark i586 Cross compile by i586-poky-linux
android.aarch64 Android aarch64 Build by android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang