|
libimobiledevice
1.1.6
|
Access the filesystem. More...
Macros | |
| #define | AFC_SERVICE_NAME "com.apple.afc" |
Typedefs | |
| typedef int16_t | afc_error_t |
| Represents an error code. More... | |
| typedef afc_client_private * | afc_client_t |
| The client handle. More... | |
Enumerations | |
| enum | afc_file_mode_t { AFC_FOPEN_RDONLY = 0x00000001, AFC_FOPEN_RW = 0x00000002, AFC_FOPEN_WRONLY = 0x00000003, AFC_FOPEN_WR = 0x00000004, AFC_FOPEN_APPEND = 0x00000005, AFC_FOPEN_RDAPPEND = 0x00000006 } |
| Flags for afc_file_open. More... | |
| enum | afc_link_type_t { AFC_HARDLINK = 1, AFC_SYMLINK = 2 } |
| Type of link for afc_make_link() calls. | |
| enum | afc_lock_op_t { AFC_LOCK_SH = 1 | 4, AFC_LOCK_EX = 2 | 4, AFC_LOCK_UN = 8 | 4 } |
| Lock operation flags. More... | |
Functions | |
| afc_error_t | afc_client_new (idevice_t device, lockdownd_service_descriptor_t service, afc_client_t *client) |
| Makes a connection to the AFC service on the device. More... | |
| afc_error_t | afc_client_start_service (idevice_t device, afc_client_t *client, const char *label) |
| Starts a new AFC service on the specified device and connects to it. More... | |
| afc_error_t | afc_client_free (afc_client_t client) |
| Frees up an AFC client. More... | |
| afc_error_t | afc_get_device_info (afc_client_t client, char ***infos) |
| Get device information for a connected client. More... | |
| afc_error_t | afc_read_directory (afc_client_t client, const char *dir, char ***list) |
| Gets a directory listing of the directory requested. More... | |
| afc_error_t | afc_get_file_info (afc_client_t client, const char *filename, char ***infolist) |
| Gets information about a specific file. More... | |
| afc_error_t | afc_file_open (afc_client_t client, const char *filename, afc_file_mode_t file_mode, uint64_t *handle) |
| Opens a file on the device. More... | |
| afc_error_t | afc_file_close (afc_client_t client, uint64_t handle) |
| Closes a file on the device. More... | |
| afc_error_t | afc_file_lock (afc_client_t client, uint64_t handle, afc_lock_op_t operation) |
| Locks or unlocks a file on the device. More... | |
| afc_error_t | afc_file_read (afc_client_t client, uint64_t handle, char *data, uint32_t length, uint32_t *bytes_read) |
| Attempts to the read the given number of bytes from the given file. More... | |
| afc_error_t | afc_file_write (afc_client_t client, uint64_t handle, const char *data, uint32_t length, uint32_t *bytes_written) |
| Writes a given number of bytes to a file. More... | |
| afc_error_t | afc_file_seek (afc_client_t client, uint64_t handle, int64_t offset, int whence) |
| Seeks to a given position of a pre-opened file on the device. More... | |
| afc_error_t | afc_file_tell (afc_client_t client, uint64_t handle, uint64_t *position) |
| Returns current position in a pre-opened file on the device. More... | |
| afc_error_t | afc_file_truncate (afc_client_t client, uint64_t handle, uint64_t newsize) |
| Sets the size of a file on the device. More... | |
| afc_error_t | afc_remove_path (afc_client_t client, const char *path) |
| Deletes a file or directory. More... | |
| afc_error_t | afc_rename_path (afc_client_t client, const char *from, const char *to) |
| Renames a file or directory on the device. More... | |
| afc_error_t | afc_make_directory (afc_client_t client, const char *dir) |
| Creates a directory on the device. More... | |
| afc_error_t | afc_truncate (afc_client_t client, const char *path, uint64_t newsize) |
| Sets the size of a file on the device without prior opening it. More... | |
| afc_error_t | afc_make_link (afc_client_t client, afc_link_type_t linktype, const char *target, const char *linkname) |
| Creates a hard link or symbolic link on the device. More... | |
| afc_error_t | afc_set_file_time (afc_client_t client, const char *path, uint64_t mtime) |
| Sets the modification time of a file on the device. More... | |
| afc_error_t | afc_get_device_info_key (afc_client_t client, const char *key, char **value) |
| Get a specific key of the device info list for a client connection. More... | |
| afc_error_t | afc_dictionary_free (char **dictionary) |
Access the filesystem.
| typedef afc_client_private* afc_client_t |
The client handle.
| typedef int16_t afc_error_t |
Represents an error code.
| enum afc_file_mode_t |
| enum afc_lock_op_t |
| afc_error_t afc_client_free | ( | afc_client_t | client | ) |
Frees up an AFC client.
If the connection was created by the client itself, the connection will be closed.
| client | The client to free. |
References service_client_free().
| afc_error_t afc_client_new | ( | idevice_t | device, |
| lockdownd_service_descriptor_t | service, | ||
| afc_client_t * | client | ||
| ) |
Makes a connection to the AFC service on the device.
| device | The device to connect to. |
| service | The service descriptor returned by lockdownd_start_service. |
| client | Pointer that will be set to a newly allocated afc_client_t upon successful return. |
References service_client_free(), and service_client_new().
Referenced by afc_client_start_service().
| afc_error_t afc_client_start_service | ( | idevice_t | device, |
| afc_client_t * | client, | ||
| const char * | label | ||
| ) |
Starts a new AFC service on the specified device and connects to it.
| device | The device to connect to. |
| client | Pointer that will point to a newly allocated afc_client_t upon successful return. Must be freed using afc_client_free() after use. |
| label | The label to use for communication. Usually the program name. Pass NULL to disable sending the label in requests to lockdownd. |
References afc_client_new(), and service_client_factory_start_service().
| afc_error_t afc_file_close | ( | afc_client_t | client, |
| uint64_t | handle | ||
| ) |
Closes a file on the device.
| client | The client to close the file with. |
| handle | File handle of a previously opened file. |
| afc_error_t afc_file_lock | ( | afc_client_t | client, |
| uint64_t | handle, | ||
| afc_lock_op_t | operation | ||
| ) |
Locks or unlocks a file on the device.
makes use of flock on the device, see http://developer.apple.com/documentation/Darwin/Reference/ManPages/man2/flock.2.html
| client | The client to lock the file with. |
| handle | File handle of a previously opened file. |
| operation | the lock or unlock operation to perform, this is one of AFC_LOCK_SH (shared lock), AFC_LOCK_EX (exclusive lock), or AFC_LOCK_UN (unlock). |
| afc_error_t afc_file_open | ( | afc_client_t | client, |
| const char * | filename, | ||
| afc_file_mode_t | file_mode, | ||
| uint64_t * | handle | ||
| ) |
Opens a file on the device.
| client | The client to use to open the file. |
| filename | The file to open. (must be a fully-qualified path) |
| file_mode | The mode to use to open the file. Can be AFC_FILE_READ or AFC_FILE_WRITE; the former lets you read and write, however, and the second one will create the file, destroying anything previously there. |
| handle | Pointer to a uint64_t that will hold the handle of the file |
| afc_error_t afc_file_read | ( | afc_client_t | client, |
| uint64_t | handle, | ||
| char * | data, | ||
| uint32_t | length, | ||
| uint32_t * | bytes_read | ||
| ) |
Attempts to the read the given number of bytes from the given file.
| client | The relevant AFC client |
| handle | File handle of a previously opened file |
| data | The pointer to the memory region to store the read data |
| length | The number of bytes to read |
| bytes_read | The number of bytes actually read. |
| afc_error_t afc_file_seek | ( | afc_client_t | client, |
| uint64_t | handle, | ||
| int64_t | offset, | ||
| int | whence | ||
| ) |
Seeks to a given position of a pre-opened file on the device.
| client | The client to use to seek to the position. |
| handle | File handle of a previously opened. |
| offset | Seek offset. |
| whence | Seeking direction, one of SEEK_SET, SEEK_CUR, or SEEK_END. |
| afc_error_t afc_file_tell | ( | afc_client_t | client, |
| uint64_t | handle, | ||
| uint64_t * | position | ||
| ) |
Returns current position in a pre-opened file on the device.
| client | The client to use. |
| handle | File handle of a previously opened file. |
| position | Position in bytes of indicator |
| afc_error_t afc_file_truncate | ( | afc_client_t | client, |
| uint64_t | handle, | ||
| uint64_t | newsize | ||
| ) |
Sets the size of a file on the device.
| client | The client to use to set the file size. |
| handle | File handle of a previously opened file. |
| newsize | The size to set the file to. |
| afc_error_t afc_file_write | ( | afc_client_t | client, |
| uint64_t | handle, | ||
| const char * | data, | ||
| uint32_t | length, | ||
| uint32_t * | bytes_written | ||
| ) |
Writes a given number of bytes to a file.
| client | The client to use to write to the file. |
| handle | File handle of previously opened file. |
| data | The data to write to the file. |
| length | How much data to write. |
| bytes_written | The number of bytes actually written to the file. |
| afc_error_t afc_get_device_info | ( | afc_client_t | client, |
| char *** | infos | ||
| ) |
Get device information for a connected client.
The device information returned is the device model as well as the free space, the total capacity and blocksize on the accessed disk partition.
| client | The client to get device info for. |
| infos | A char ** list of parameters as given by AFC or NULL if there was an error. |
Referenced by afc_get_device_info_key().
| afc_error_t afc_get_device_info_key | ( | afc_client_t | client, |
| const char * | key, | ||
| char ** | value | ||
| ) |
Get a specific key of the device info list for a client connection.
Known key values are: Model, FSTotalBytes, FSFreeBytes and FSBlockSize. This is a helper function for afc_get_device_info().
| client | The client to get device info for. |
| key | The key to get the value of. |
| value | The value for the key if successful or NULL otherwise. |
References afc_get_device_info().
| afc_error_t afc_get_file_info | ( | afc_client_t | client, |
| const char * | path, | ||
| char *** | infolist | ||
| ) |
Gets information about a specific file.
| client | The client to use to get the information of the file. |
| path | The fully-qualified path to the file. |
| infolist | Pointer to a buffer that will be filled with a NULL-terminated list of strings with the file information. Set to NULL before calling this function. |
| afc_error_t afc_make_directory | ( | afc_client_t | client, |
| const char * | dir | ||
| ) |
Creates a directory on the device.
| client | The client to use to make a directory. |
| dir | The directory's path. (must be a fully-qualified path, I assume all other mkdir restrictions apply as well) |
| afc_error_t afc_make_link | ( | afc_client_t | client, |
| afc_link_type_t | linktype, | ||
| const char * | target, | ||
| const char * | linkname | ||
| ) |
Creates a hard link or symbolic link on the device.
| client | The client to use for making a link |
| linktype | 1 = hard link, 2 = symlink |
| target | The file to be linked. |
| linkname | The name of link. |
| afc_error_t afc_read_directory | ( | afc_client_t | client, |
| const char * | dir, | ||
| char *** | list | ||
| ) |
Gets a directory listing of the directory requested.
| client | The client to get a directory listing from. |
| dir | The directory to list. (must be a fully-qualified path) |
| list | A char list of files in that directory, terminated by an empty string or NULL if there was an error. |
| afc_error_t afc_remove_path | ( | afc_client_t | client, |
| const char * | path | ||
| ) |
Deletes a file or directory.
| client | The client to use. |
| path | The path to delete. (must be a fully-qualified path) |
| afc_error_t afc_rename_path | ( | afc_client_t | client, |
| const char * | from, | ||
| const char * | to | ||
| ) |
Renames a file or directory on the device.
| client | The client to have rename. |
| from | The name to rename from. (must be a fully-qualified path) |
| to | The new name. (must also be a fully-qualified path) |
| afc_error_t afc_set_file_time | ( | afc_client_t | client, |
| const char * | path, | ||
| uint64_t | mtime | ||
| ) |
Sets the modification time of a file on the device.
| client | The client to use to set the file size. |
| path | Path of the file for which the modification time should be set. |
| mtime | The modification time to set in nanoseconds since epoch. |
| afc_error_t afc_truncate | ( | afc_client_t | client, |
| const char * | path, | ||
| uint64_t | newsize | ||
| ) |
Sets the size of a file on the device without prior opening it.
| client | The client to use to set the file size. |
| path | The path of the file to be truncated. |
| newsize | The size to set the file to. |
1.8.5