Skip to content

Instantly share code, notes, and snippets.

@leptos-null
Last active September 24, 2019 09:35
Show Gist options
  • Save leptos-null/6f16da246668a54187e540409466f427 to your computer and use it in GitHub Desktop.
Save leptos-null/6f16da246668a54187e540409466f427 to your computer and use it in GitHub Desktop.
Explanation of Cydia-provided "virtual dependency" packages

Cydia Virtual Dependency Packages

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.

Testing

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

Conclusion

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment