Cydia provides "virtual dependency" packages, leveraging dpkg, to allow packages to only be installed on certain kinds of devices.
I have not been able to find official documentation on these packages. Their package names are prefixed with "cy+". To find out exactly what these packages represented I ran a few command on two devices.
iPhone 5, iOS 10.3.3:
$ dpkg -l | grep "cy+"
ii cy+cpu.arm 0 iphoneos-arm virtual CPU dependency
ii cy+kernel.darwin 16.7.0 iphoneos-arm virtual kernel dependency
ii cy+lib.corefoundation 1349.70 iphoneos-arm virtual corefoundation dependency
ii cy+model.iphone 5.2 iphoneos-arm virtual model dependency
ii cy+os.ios 10.3.3 iphoneos-arm virtual operating system dependency
$ uname -rmp
16.7.0 iPhone5,2 arm
$ cfversion
1349.70
iPhone 6 Plus, iOS 10.2:
$ dpkg -l | grep "cy+"
ii cy+cpu.arm64 0 iphoneos-arm virtual CPU dependency
ii cy+kernel.darwin 16.3.0 iphoneos-arm virtual kernel dependency
ii cy+lib.corefoundation 1348.22 iphoneos-arm virtual corefoundation dependency
ii cy+model.iphone 7.1 iphoneos-arm virtual model dependency
ii cy+os.ios 10.2 iphoneos-arm virtual operating system dependency
mobile:~$ uname -rmp
16.3.0 iPhone7,1 arm64
$ cfversion
1348.22
cy+cpu.arm
: This package is available on 32-bit devices; the package version is not applicable.
cy+cpu.arm64
: This package is available on 64-bit devices; the package version is not applicable.
cy+kernel.darwin
: This package is available on all devices; the package version represents the Darwin kernel version (uname -r
).
cy+lib.corefoundation
: This package is available on all devices; the package version represents kCFCoreFoundationVersionNumber
(cfversion
, see implementation).
cy+model.iphone
: This package is available on all iPhones; the package version represents the device model, with the comma replaced with a major version seperator (uname -m
).
cy+model.ipod
: This package is available on all iPods; the package version represents the device model, with the comma replaced with a major version seperator (uname -m
).
cy+model.ipad
: This package is available on all iPads; the package version represents the device model, with the comma replaced with a major version seperator (uname -m
).
cy+os.ios
: This package is available on all devices; the package version mirrors the iOS version.