Difference between revisions of "AFC"

From The iPhone Wiki
Jump to: navigation, search
m (AFC2)
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
== AFC ==
 
== AFC ==
AFC (Apple File Connection) 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 [[Normal Mode|usbmux protocol]].
+
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 [[Normal Mode|usbmux protocol]].
   
 
== AFC2 ==
 
== AFC2 ==
AFC2 is a an additional AFC service, configured to allow access to the whole filesystem. Installing it and patching the fstab file for full write access is considered a bare-bones [[jailbreak]]. The AFC2 service is added by editing the [[/System/Library/Lockdown/Services.plist]] file and adding a service that runs under root with access to the [[/|Root]] filesystem.
+
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 <code>CFPropertyListCreateWithData</code> where [[Mobile Substrate]] can be used to hook the function to add AFC2 service to the list without troubles. For 64-bit devices, [https://github.com/Cannathea/afc2d-arm64 AFC2 Project] is maintained by Cannathea team where the AFC2 binary is downloaded directly from Apple server ([http://appldnld.apple.com/iOS7/031-3029.20140221.ramz3/com_apple_mobileasset_softwareupdate/92b6344e610f418586f1741231ffab482e6d49fd.zip this link], in particular, which is an iOS 7 OTA update file) using PartialZip technique and code-signed to work with recent jailbreak tools.
  +
  +
{{stub|software}}

Latest revision as of 14:31, 25 June 2021

AFC

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

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.

Tango Media-cdrom.png This software article is a "stub", an incomplete page. Please add more content to this article and remove this tag.