红色的方法我也不太清楚哈哈,欢迎交流完善。
am_device_notification_callback
定义:
typedef void(*am_device_notification_callback)(struct am_device_notification_callback_info *);
描述:
回调函数,当设备状态改变时由iTunesMobileDevice.dll回调
参数:
am_device_notification_callback_info 返回设备信息
am_restore_device_notification_callback
定义:
typedef void (*am_restore_device_notification_callback)(struct am_recovery_device *);
描述:
回调函数,当检测到restore模式设备时由iTunesMobileDevice.dll回调
参数:
am_recovery_device返回设备信息
AMDeviceNotificationSubscribe
定义:
typedef mach_error_t (*AMDeviceNotificationSubscribe)(am_device_notification_callback callback, unsigned int unused0, unsigned int unused1, unsigned int dn_unknown3, struct am_device_notification *notification);
描述:
订阅设备状态改变回调绑定函数
参数:
am_device_notification_callback callback指向回调函数指针
unsigned int unused0 未知 itunes调用时设为0
unsigned int unused1未知 itunes调用时设为0
unsigned int dn_unknown3未知
am_device_notification *notification 设备信息结构
返回值:
* MDERR_OK if successful ------0
* MDERR_SYSCALL if CFRunLoopAddSource() failed
* MDERR_OUT_OF_MEMORY if we ran out of memory
AMDeviceConnect
定义:
typedef mach_error_t (*AMDeviceConnect)(struct am_device *device);
描述:
连接设备
参数:
am_device *device回调函数返回的设备信息
返回值:
* MDERR_OK if successfully connected
* MDERR_SYSCALL if setsockopt() failed
* MDERR_QUERY_FAILED if the daemon query failed
* MDERR_INVALID_ARGUMENT if USBMuxConnectByPort returned 0xffffffff
AMDeviceIsPaired
定义:
typedef int (*AMDeviceIsPaired)(struct am_device *device);
描述:
检测路径是否存在,初始化阶段路径是"/"
参数:
am_device *device回调函数返回的设备信息
返回值:
* 0 if the path did not exist
* 1 if it did
AMDeviceValidatePairing
定义:
typedef mach_error_t (*AMDeviceValidatePairing)(struct am_device *device);
描述:
Itunes在测试(AMDeviceIsPaired)完后立即调用这个函数,建立配对文件并设置到lockdown的连接
参数:
am_device *device回调函数返回的设备信息
返回值:
* MDERR_OK if successful
* MDERR_INVALID_ARGUMENT if the supplied device is null
* MDERR_DICT_NOT_LOADED if the load_dict() call failed
AMDeviceStartSession
定义:
typedef mach_error_t (*AMDeviceStartSession)(struct am_device *device);
描述:
创建lockdown session,如果创建成功适当的调整设备结构。Itunes在AMDeviceValidatePairing后立即调用此函数
参数:
am_device *device回调函数返回的设备信息
返回值:
* MDERR_OK if successful
* MDERR_INVALID_ARGUMENT if the Lockdown conn has not been established
* MDERR_DICT_NOT_LOADED if the load_dict() call failed
AMDeviceStartService
定义:
typedef mach_error_t (*AMDeviceStartService)(struct am_device *device, void*
service_name, afc_connection **handle, unsigned int *unknown);
描述:
启动服务并返回指向这个服务的句柄,使用返回的句柄可以进行后续的各种操作。在使用服务之前你应该关闭session断开连接(并不是这样的),itunes调用此函数在调用完AMDeviceStartSession函数之后。
参数:
am_device *device回调函数返回的设备信息
void* service_name 要启动的服务名称,注意MAC OS CFString格式
afc_connection **handle 返回连接结构
unsigned int *unknown 未知 itunes设为0
返回值:
* MDERR_OK if successful
* MDERR_SYSCALL if the setsockopt() call failed
* MDERR_INVALID_ARGUMENT if the Lockdown conn has not been established
AMDeviceStopSession
定义:
typedef mach_error_t (*AMDeviceStopSession)(struct am_device *device);
描述:
关闭 session,在访问服务之前需要关闭session(好像不用)。
参数:
am_device *device回调函数返回的设备信息
返回值:
* MDERR_OK if successful
* MDERR_INVALID_ARGUMENT if the Lockdown conn has not been established
AFCConnectionOpen
定义:
typedef afc_error_t (*AFCConnectionOpen)(afc_connection *handle, unsigned int io_timeout,struct afc_connection **conn);
描述:
打开apple文件系统的连接,在这之前你必须通过AMDeviceStartService打开了适当的服务。
参数:
afc_connection *handle AMDeviceStartService函数返回的连接信息
unsigned int io_timeout 超时设置为0
afc_connection **conn 返回的连接信息,可以和afc_connection *handle使用相同的对象
返回值:
* MDERR_OK if successful
* MDERR_AFC_OUT_OF_MEMORY if malloc() failed
AFCDeviceInfoOpen
定义:
typedef afc_error_t (*AFCDeviceInfoOpen)(struct afc_connection *conn, struct afc_dictionary **info);
描述:
获得设备的信息。
参数:
afc_connection *handle AMDeviceStartService函数返回的连接信息
afc_dictionary **info 返回的设备信息
返回值:
* MDERR_OK if successful
* MDERR_AFC_OUT_OF_MEMORY if malloc() failed
返回实例:
Model iPhone1,2
FSTotalBytes 524288000
FSFreeBytes 55099392
FSBlockSize 4096
AFCDirectoryOpen
定义:
typedef afc_error_t (*AFCDirectoryOpen)(afc_connection *conn, char *path, /*afc_directory*/afc_directory **dir);
描述:
打开一个目录。注,没有越狱的系统默认的"/"目录是"/var/root/Media"这是itunes的sandbox行为。
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
char *path 路径信息
afc_directory **dir 返回的路径句柄
返回值:
* MDERR_OK if successful
AFCDirectoryRead
定义:
typedef afc_error_t (*AFCDirectoryRead)(afc_connection *conn,afc_directory *dir,char **dirent);
描述:
读取路径下的下一个节点,当到达最后一个节点后将返回NULL。返回的前两个节点将是"."和".."。
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
afc_directory *dir AFCDirectoryOpen返回的目录句柄
char **dirent 返回的节点名字
返回值:
* MDERR_OK if successful
AFCDirectoryClose
定义:
typedef afc_error_t (*AFCDirectoryClose)(afc_connection *conn, struct afc_directory *dir);
描述:
关闭路径。
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
afc_directory *dir AFCDirectoryOpen返回的目录句柄
返回值:
* MDERR_OK if successful
AFCDirectoryCreate
定义:
typedef afc_error_t (*AFCDirectoryCreate)(afc_connection *conn, char *dirname);
描述:
创建路径。注,创建的目录父路径必须存在。
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
char *dirname 完整的目录名字包括path
返回值:
* MDERR_OK if successful
AFCRemovePath
定义:
typedef afc_error_t (*AFCRemovePath)(afc_connection *conn, char *dirname);
描述:
删除路径。注,路径为空。
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
char *dirname 完整的目录名字包括path
返回值:
* MDERR_OK if successful
AFCRenamePath
定义:
typedef afc_error_t (*AFCRenamePath)(afc_connection *conn, char *oldpath, char *newpath);
描述:
路径改名。
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
char * oldpath 老得目录名
char *newpath 新的目录名
返回值:
* MDERR_OK if successful
AFCConnectionGetContext
定义:
typedef unsigned int (*AFCConnectionGetContext)(struct afc_connection *conn);
描述:
返回连接上下文。
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
返回值:
上下文编号
AFCConnectionGetFSBlockSize
定义:
typedef unsigned int (*AFCConnectionGetFSBlockSize)(struct afc_connection *conn);
描述:
返回文件系统blocks大小。
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
返回值:
blocks大小
AFCConnectionGetIOTimeout
定义:
typedef unsigned int (*AFCConnectionGetIOTimeout)(struct afc_connection *conn);
描述:
返回IO超时时间。Itunes里这里返回0
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
返回值:
超时时间
AFCConnectionGetSocketBlockSize
定义:
typedef unsigned int (*AFCConnectionGetSocketBlockSize)(struct afc_connection *conn);
描述:
返回Socket块大小。
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
返回值:
Socket块大小
AFCConnectionClose
定义:
typedef afc_error_t (*AFCConnectionClose)(struct afc_connection *conn);
描述:
关闭连接。
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
返回值:
* MDERR_OK if successful
AMRestoreRegisterForDeviceNotifications
定义:
typedef unsigned int (*AMRestoreRegisterForDeviceNotifications)(am_restore_device_notification_callback dfu_connect_callback,am_restore_device_notification_callback recovery_connect_callback,am_restore_device_notification_callback dfu_disconnect_callback,am_restore_device_notification_callback
recovery_disconnect_callback,unsigned int unknown0,void *user_info);
描述:
设置restore、recovery和dfu模式的回调函数。
参数:
am_restore_device_notification_callback dfu_connect_callback :dfu连接回调
am_restore_device_notification_callback recovery_connect_callback:recovery连接回调
am_restore_device_notification_callback dfu_disconnect_callback:dfu断开回调
am_restore_device_notification_callback recovery_disconnect_callback:recovery断开回调
unsigned int unknown0 未知 itunes设置为0
void *user_info 未知
返回值:
估计0是成功
AMRestoreEnableFileLogging
定义:
typedef unsigned int (*AMRestoreEnableFileLogging)(char *path);
描述:
设置restore时log。
参数:
char *path 全目录名称
返回值:
估计0是成功
AMRestoreCreateDefaultOptions
定义:
typedef void* (*AMRestoreCreateDefaultOptions)(void* allocator);
描述:
初始化设置字典到默认值。如下:
* NORImageType => 'production',
* AutoBootDelay => 0,
* KernelCacheType => 'Release',
* UpdateBaseband => true,
* DFUFileType => 'RELEASE',
* SystemImageType => 'User',
* CreateFilesystemPartitions => true,
* FlashNOR => true,
* RestoreBootArgs => 'rd=md0 nand-enable-reformat=1 -progress'
* BootImageType => 'User'
参数:
void* allocator:固定的kCFAllocatorDefault
返回值:
* the option dictionary if successful
* NULL if out of memory
AFCGetFileInfo
AFCFileInfoOpen
定义:
typedef afc_error_t (*AFCGetFileInfo)(struct afc_connection *conn,char *path, char **buffer, int *length);
typedef afc_error_t (*AFCFileInfoOpen)(struct afc_connection *conn, char *path, struct afc_dictionary **info);
描述:
获得文件信息
st_ifmt S_IFDIR/S_IFLNK/ S_IFREG/S_IFCHR/...
st_size 文件大小
st_block 文件实际所占用的磁盘大小 *block size
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
char *path :目录名称
AFCGetFileInfo和AFCFileInfoOpen应为等价,afc_dictionary就是有这两部分组成
char **buffer:指向的缓冲区指针的指针
int *length:返回的缓冲区大小
返回值:
0成功
AFCFileRefOpen
定义:
typedef afc_error_t (*AFCFileRefOpen)(struct afc_connection *conn, char *path, unsigned long long int mode, afc_file_ref *ref);
描述:
打开文件
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
char *path :目录名称
unsigned long long int mode 打开方式
/* mode 2 = read, mode 3 = write; unknown = 0 */
afc_file_ref *ref 文件句柄
返回值:
0成功
AFCFileRefRead
定义:
typedef afc_error_t (*AFCFileRefRead)(struct afc_connection *conn, afc_file_ref ref,
void *buf, unsigned int *len);
描述:
读文件
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
afc_file_ref *ref 文件句柄
void *buf 读取文件缓冲区
unsigned int *len 缓冲区大小
返回值:
0成功
AFCFileRefWrite
定义:
typedef afc_error_t (*AFCFileRefWrite)(struct afc_connection *conn, afc_file_ref ref,
void *buf, unsigned int len);
描述:
写文件
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
afc_file_ref *ref 文件句柄
void *buf待写入缓冲区
unsigned int len 写入大小
返回值:
0成功
AFCFileRefClose
定义:
typedef afc_error_t (*AFCFileRefClose)(struct afc_connection *conn, afc_file_ref ref);
描述:
关闭文件
参数:
afc_connection * conn AMDeviceStartService函数返回的连接信息
afc_file_ref *ref 文件句柄
返回值:
0成功
AFCKeyValueRead
定义:
typedef afc_error_t (*AFCKeyValueRead)(struct afc_dictionary *dict, char *key, char **val);
描述:
读取dictionary值
参数:
afc_dictionary *dict dictionary结构指针
char *key: 读取的Key值
char **val: 返回的数据
返回值:
0成功
AFCKeyValueClose
定义:
typedef afc_error_t (*AFCKeyValueClose)(struct afc_dictionary *dict);
描述:
释放dictionary