AFC (Apple File Conduit) is a service that runs on every iPhone / iPod, which iTunes uses to exchange files with the device. It is jailed to the directory /private/var/mobile/Media, which is on the second (non-OS) partition. The AFC service is handled by /usr/libexec/afcd, and runs over the usbmux protocol.
AFC2 is an additional AFC service, configured to allow access to the whole filesystem. The underlying AFC2 executable is the old version of AFC, actually from Apple, thus official, where setting a directory to mount as read-write is still permitted. Up to iOS 7, the AFC2 service is added by editing the /System/Library/Lockdown/Services.plist file and adding a service (AFC2) that runs under root with access to the root filesystem. Since iOS 8, however, the list of services is hardcoded inside lockdownd. Fortunately, the list is parsed through
CFPropertyListCreateWithData where Mobile Substrate can be used to hook the function to add AFC2 service to the list without troubles. For 64-bit devices, AFC2 Project is maintained by Cannathea team where the AFC2 binary is downloaded directly from Apple server (this link, in particular, which is an iOS 7 OTA update file) using PartialZip technique and code-signed to work with recent jailbreak tools.
|This software article is a "stub", an incomplete page. Please add more content to this article and remove this tag.|