<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>libimobiledevice: libimobiledevice/installation_proxy.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.3 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div class="contents"> <h1>libimobiledevice/installation_proxy.h File Reference</h1> <p>Implementation to talk to the installation proxy on a device. <a href="#_details">More...</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Represents an error code. <a href="#a488853e737060e4269b9e3a7706271cc"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structinstproxy__client__private.html">instproxy_client_private</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a397d08ac5391f6e5bf20a42cfebec9f9">instproxy_client_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The client handle. <a href="#a397d08ac5391f6e5bf20a42cfebec9f9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92b83275dce2d558a2366f92a62f5b80"></a><!-- doxytag: member="include/libimobiledevice/installation_proxy.h::instproxy_status_cb_t" ref="a92b83275dce2d558a2366f92a62f5b80" args=")(const char *operation, plist_t status)" --> typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> )(const char *operation, plist_t status)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Reports the status of the given operation. <br/></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a3f7068e2a47bbebdea43bbeb86656157">instproxy_client_new</a> (<a class="el" href="structidevice__private.html">idevice_t</a> device, uint16_t port, <a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> *client)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Connects to the installation_proxy service on the specified device. <a href="#a3f7068e2a47bbebdea43bbeb86656157"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a3d9667bc75e60f3e9b4ec71b47334044">instproxy_client_free</a> (<a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> client)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Disconnects an installation_proxy client from the device and frees up the installation_proxy client data. <a href="#a3d9667bc75e60f3e9b4ec71b47334044"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a8f5c351869472a10ba8e2d47e8f09edb">instproxy_browse</a> (<a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> client, plist_t client_options, plist_t *result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">List installed applications. <a href="#a8f5c351869472a10ba8e2d47e8f09edb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a0ee9939b249aadfc89e44c2e7701868f">instproxy_install</a> (<a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> client, const char *pkg_path, plist_t client_options, <a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> status_cb)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Install an application on the device. <a href="#a0ee9939b249aadfc89e44c2e7701868f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a8d5e97d6c3b80d6c67259293ef5fb09d">instproxy_upgrade</a> (<a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> client, const char *pkg_path, plist_t client_options, <a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> status_cb)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Upgrade an application on the device. <a href="#a8d5e97d6c3b80d6c67259293ef5fb09d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a05c8dceee6f29fcc01c203dab96f53b0">instproxy_uninstall</a> (<a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> client, const char *appid, plist_t client_options, <a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> status_cb)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Uninstall an application from the device. <a href="#a05c8dceee6f29fcc01c203dab96f53b0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a9487418c57758fd672f60c8eb8e2b16c">instproxy_lookup_archives</a> (<a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> client, plist_t client_options, plist_t *result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">List archived applications. <a href="#a9487418c57758fd672f60c8eb8e2b16c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a14a12024b5dca9a54d528aaf051dd22b">instproxy_archive</a> (<a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> client, const char *appid, plist_t client_options, <a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> status_cb)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Archive an application on the device. <a href="#a14a12024b5dca9a54d528aaf051dd22b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a62d33ff9f5da3a3b58627bd9ca335776">instproxy_restore</a> (<a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> client, const char *appid, plist_t client_options, <a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> status_cb)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Restore a previously archived application on the device. <a href="#a62d33ff9f5da3a3b58627bd9ca335776"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#ae0831d5caccd1b2f7c6e93527b3f8a22">instproxy_remove_archive</a> (<a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> client, const char *appid, plist_t client_options, <a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> status_cb)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Removes a previously archived application from the device. <a href="#ae0831d5caccd1b2f7c6e93527b3f8a22"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">plist_t </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a570202c469be75185cc4fda62bbae7e0">instproxy_client_options_new</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new client_options plist. <a href="#a570202c469be75185cc4fda62bbae7e0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a2b7c6cfb5d3503f4db7342288030895b">instproxy_client_options_add</a> (plist_t client_options,...) G_GNUC_NULL_TERMINATED</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add one or more new key:value pairs to the given client_options. <a href="#a2b7c6cfb5d3503f4db7342288030895b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#afda149bd9a657b060338d1b3ddbfae35">instproxy_client_options_free</a> (plist_t client_options)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free client_options plist. <a href="#afda149bd9a657b060338d1b3ddbfae35"></a><br/></td></tr> <tr><td colspan="2"><h2>Error Codes</h2></td></tr> <tr><td colspan="2"><p><a class="anchor" id="amgrp5c244138ac975df1b1cec1afc71a6c9a"></a> </p> <br/><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6f4547a1b18cf038622fd24d3aa2dc2c"></a><!-- doxytag: member="include/libimobiledevice/installation_proxy.h::INSTPROXY_E_SUCCESS" ref="a6f4547a1b18cf038622fd24d3aa2dc2c" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>INSTPROXY_E_SUCCESS</b> 0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94410800d99bc7a7ea07f2cf9ec080d5"></a><!-- doxytag: member="include/libimobiledevice/installation_proxy.h::INSTPROXY_E_INVALID_ARG" ref="a94410800d99bc7a7ea07f2cf9ec080d5" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>INSTPROXY_E_INVALID_ARG</b> -1</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a47fe5fb73315a4c1a54254040bb1163b"></a><!-- doxytag: member="include/libimobiledevice/installation_proxy.h::INSTPROXY_E_PLIST_ERROR" ref="a47fe5fb73315a4c1a54254040bb1163b" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>INSTPROXY_E_PLIST_ERROR</b> -2</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafc3a02caf1bb6a620f815a89e390939"></a><!-- doxytag: member="include/libimobiledevice/installation_proxy.h::INSTPROXY_E_CONN_FAILED" ref="aafc3a02caf1bb6a620f815a89e390939" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>INSTPROXY_E_CONN_FAILED</b> -3</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac32961c6e5ef00f86713c949bc080b31"></a><!-- doxytag: member="include/libimobiledevice/installation_proxy.h::INSTPROXY_E_OP_IN_PROGRESS" ref="ac32961c6e5ef00f86713c949bc080b31" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>INSTPROXY_E_OP_IN_PROGRESS</b> -4</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a20a31915178a440a3464f1a90d513a10"></a><!-- doxytag: member="include/libimobiledevice/installation_proxy.h::INSTPROXY_E_OP_FAILED" ref="a20a31915178a440a3464f1a90d513a10" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>INSTPROXY_E_OP_FAILED</b> -5</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad53fac71e580bfcd62c491d30d71d65b"></a><!-- doxytag: member="include/libimobiledevice/installation_proxy.h::INSTPROXY_E_UNKNOWN_ERROR" ref="ad53fac71e580bfcd62c491d30d71d65b" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>INSTPROXY_E_UNKNOWN_ERROR</b> -256</td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Implementation to talk to the installation proxy on a device. </p> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="a397d08ac5391f6e5bf20a42cfebec9f9"></a><!-- doxytag: member="installation_proxy.h::instproxy_client_t" ref="a397d08ac5391f6e5bf20a42cfebec9f9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="structinstproxy__client__private.html">instproxy_client_private</a>* <a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>The client handle. </p> </div> </div> <a class="anchor" id="a488853e737060e4269b9e3a7706271cc"></a><!-- doxytag: member="installation_proxy.h::instproxy_error_t" ref="a488853e737060e4269b9e3a7706271cc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef int16_t <a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>Represents an error code. </p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a14a12024b5dca9a54d528aaf051dd22b"></a><!-- doxytag: member="installation_proxy.h::instproxy_archive" ref="a14a12024b5dca9a54d528aaf051dd22b" args="(instproxy_client_t client, const char *appid, plist_t client_options, instproxy_status_cb_t status_cb)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> instproxy_archive </td> <td>(</td> <td class="paramtype"><a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> </td> <td class="paramname"> <em>client</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>appid</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">plist_t </td> <td class="paramname"> <em>client_options</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> </td> <td class="paramname"> <em>status_cb</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Archive an application on the device. </p> <p>This function tells the device to make an archive of the specified application. This results in the device creating a ZIP archive in the 'ApplicationArchives' directory and uninstalling the application.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The connected installation proxy client </td></tr> <tr><td valign="top"></td><td valign="top"><em>appid</em> </td><td>ApplicationIdentifier of the app to archive. </td></tr> <tr><td valign="top"></td><td valign="top"><em>client_options</em> </td><td>The client options to use, as PLIST_DICT, or NULL. Valid options include: "SkipUninstall" -> Boolean "ArchiveType" -> "ApplicationOnly" </td></tr> <tr><td valign="top"></td><td valign="top"><em>status_cb</em> </td><td>Callback function for progress and status information. If NULL is passed, this function will run synchronously. </td></tr> <tr><td valign="top"></td><td valign="top"><em>user_data</em> </td><td>Callback data passed to status_cb.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if an error occured.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>If a callback function is given (async mode), this function returns INSTPROXY_E_SUCCESS immediately if the status updater thread has been created successfully; any error occuring during the operation has to be handled inside the specified callback function. </dd></dl> </div> </div> <a class="anchor" id="a8f5c351869472a10ba8e2d47e8f09edb"></a><!-- doxytag: member="installation_proxy.h::instproxy_browse" ref="a8f5c351869472a10ba8e2d47e8f09edb" args="(instproxy_client_t client, plist_t client_options, plist_t *result)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> instproxy_browse </td> <td>(</td> <td class="paramtype"><a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> </td> <td class="paramname"> <em>client</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">plist_t </td> <td class="paramname"> <em>client_options</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">plist_t * </td> <td class="paramname"> <em>result</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>List installed applications. </p> <p>This function runs synchronously.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The connected installation_proxy client </td></tr> <tr><td valign="top"></td><td valign="top"><em>client_options</em> </td><td>The client options to use, as PLIST_DICT, or NULL. Valid client options include: "ApplicationType" -> "User" "ApplicationType" -> "System" </td></tr> <tr><td valign="top"></td><td valign="top"><em>result</em> </td><td>Pointer that will be set to a plist that will hold an array of PLIST_DICT holding information about the applications found.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if an error occured. </dd></dl> </div> </div> <a class="anchor" id="a3d9667bc75e60f3e9b4ec71b47334044"></a><!-- doxytag: member="installation_proxy.h::instproxy_client_free" ref="a3d9667bc75e60f3e9b4ec71b47334044" args="(instproxy_client_t client)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> instproxy_client_free </td> <td>(</td> <td class="paramtype"><a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> </td> <td class="paramname"> <em>client</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Disconnects an installation_proxy client from the device and frees up the installation_proxy client data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The installation_proxy client to disconnect and free.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>INSTPROXY_E_SUCCESS on success or INSTPROXY_E_INVALID_ARG if client is NULL. </dd></dl> </div> </div> <a class="anchor" id="a3f7068e2a47bbebdea43bbeb86656157"></a><!-- doxytag: member="installation_proxy.h::instproxy_client_new" ref="a3f7068e2a47bbebdea43bbeb86656157" args="(idevice_t device, uint16_t port, instproxy_client_t *client)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> instproxy_client_new </td> <td>(</td> <td class="paramtype"><a class="el" href="structidevice__private.html">idevice_t</a> </td> <td class="paramname"> <em>device</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint16_t </td> <td class="paramname"> <em>port</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> * </td> <td class="paramname"> <em>client</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Connects to the installation_proxy service on the specified device. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>device</em> </td><td>The device to connect to </td></tr> <tr><td valign="top"></td><td valign="top"><em>port</em> </td><td>Destination port (usually given by lockdownd_start_service). </td></tr> <tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>Pointer that will be set to a newly allocated instproxy_client_t upon successful return.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>INSTPROXY_E_SUCCESS on success, or an INSTPROXY_E_* error value when an error occured. </dd></dl> </div> </div> <a class="anchor" id="a2b7c6cfb5d3503f4db7342288030895b"></a><!-- doxytag: member="installation_proxy.h::instproxy_client_options_add" ref="a2b7c6cfb5d3503f4db7342288030895b" args="(plist_t client_options,...) G_GNUC_NULL_TERMINATED" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void instproxy_client_options_add </td> <td>(</td> <td class="paramtype">plist_t </td> <td class="paramname"> <em>client_options</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname"> <em>...</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Add one or more new key:value pairs to the given client_options. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>client_options</em> </td><td>The client options to modify. </td></tr> <tr><td valign="top"></td><td valign="top"><em>...</em> </td><td>KEY, VALUE, [KEY, VALUE], NULL</td></tr> </table> </dd> </dl> <dl class="note"><dt><b>Note:</b></dt><dd>The keys and values passed are expected to be strings, except for "ApplicationSINF" and "iTunesMetadata" expecting a plist node of type PLIST_DATA as value, or "SkipUninstall" needing int as value. </dd></dl> </div> </div> <a class="anchor" id="afda149bd9a657b060338d1b3ddbfae35"></a><!-- doxytag: member="installation_proxy.h::instproxy_client_options_free" ref="afda149bd9a657b060338d1b3ddbfae35" args="(plist_t client_options)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void instproxy_client_options_free </td> <td>(</td> <td class="paramtype">plist_t </td> <td class="paramname"> <em>client_options</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free client_options plist. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>client_options</em> </td><td>The client options plist to free. Does nothing if NULL is passed. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a570202c469be75185cc4fda62bbae7e0"></a><!-- doxytag: member="installation_proxy.h::instproxy_client_options_new" ref="a570202c469be75185cc4fda62bbae7e0" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">plist_t instproxy_client_options_new </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new client_options plist. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>A new plist_t of type PLIST_DICT. </dd></dl> </div> </div> <a class="anchor" id="a0ee9939b249aadfc89e44c2e7701868f"></a><!-- doxytag: member="installation_proxy.h::instproxy_install" ref="a0ee9939b249aadfc89e44c2e7701868f" args="(instproxy_client_t client, const char *pkg_path, plist_t client_options, instproxy_status_cb_t status_cb)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> instproxy_install </td> <td>(</td> <td class="paramtype"><a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> </td> <td class="paramname"> <em>client</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>pkg_path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">plist_t </td> <td class="paramname"> <em>client_options</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> </td> <td class="paramname"> <em>status_cb</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Install an application on the device. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The connected installation_proxy client </td></tr> <tr><td valign="top"></td><td valign="top"><em>pkg_path</em> </td><td>Path of the installation package (inside the AFC jail) </td></tr> <tr><td valign="top"></td><td valign="top"><em>client_options</em> </td><td>The client options to use, as PLIST_DICT, or NULL. Valid options include: "iTunesMetadata" -> PLIST_DATA "ApplicationSINF" -> PLIST_DATA "PackageType" -> "Developer" If PackageType -> Developer is specified, then pkg_path points to an .app directory instead of an install package. </td></tr> <tr><td valign="top"></td><td valign="top"><em>status_cb</em> </td><td>Callback function for progress and status information. If NULL is passed, this function will run synchronously. </td></tr> <tr><td valign="top"></td><td valign="top"><em>user_data</em> </td><td>Callback data passed to status_cb.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if an error occured.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>If a callback function is given (async mode), this function returns INSTPROXY_E_SUCCESS immediately if the status updater thread has been created successfully; any error occuring during the operation has to be handled inside the specified callback function. </dd></dl> </div> </div> <a class="anchor" id="a9487418c57758fd672f60c8eb8e2b16c"></a><!-- doxytag: member="installation_proxy.h::instproxy_lookup_archives" ref="a9487418c57758fd672f60c8eb8e2b16c" args="(instproxy_client_t client, plist_t client_options, plist_t *result)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> instproxy_lookup_archives </td> <td>(</td> <td class="paramtype"><a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> </td> <td class="paramname"> <em>client</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">plist_t </td> <td class="paramname"> <em>client_options</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">plist_t * </td> <td class="paramname"> <em>result</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>List archived applications. </p> <p>This function runs synchronously.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a14a12024b5dca9a54d528aaf051dd22b" title="Archive an application on the device.">instproxy_archive</a></dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The connected installation_proxy client </td></tr> <tr><td valign="top"></td><td valign="top"><em>client_options</em> </td><td>The client options to use, as PLIST_DICT, or NULL. Currently there are no known client options, so pass NULL here. </td></tr> <tr><td valign="top"></td><td valign="top"><em>result</em> </td><td>Pointer that will be set to a plist containing a PLIST_DICT holding information about the archived applications found.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if an error occured. </dd></dl> </div> </div> <a class="anchor" id="ae0831d5caccd1b2f7c6e93527b3f8a22"></a><!-- doxytag: member="installation_proxy.h::instproxy_remove_archive" ref="ae0831d5caccd1b2f7c6e93527b3f8a22" args="(instproxy_client_t client, const char *appid, plist_t client_options, instproxy_status_cb_t status_cb)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> instproxy_remove_archive </td> <td>(</td> <td class="paramtype"><a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> </td> <td class="paramname"> <em>client</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>appid</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">plist_t </td> <td class="paramname"> <em>client_options</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> </td> <td class="paramname"> <em>status_cb</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Removes a previously archived application from the device. </p> <p>This function removes the ZIP archive from the 'ApplicationArchives' directory.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The connected installation proxy client </td></tr> <tr><td valign="top"></td><td valign="top"><em>appid</em> </td><td>ApplicationIdentifier of the archived app to remove. </td></tr> <tr><td valign="top"></td><td valign="top"><em>client_options</em> </td><td>The client options to use, as PLIST_DICT, or NULL. Currently there are no known client options, so passing NULL is fine. </td></tr> <tr><td valign="top"></td><td valign="top"><em>status_cb</em> </td><td>Callback function for progress and status information. If NULL is passed, this function will run synchronously. </td></tr> <tr><td valign="top"></td><td valign="top"><em>user_data</em> </td><td>Callback data passed to status_cb.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if an error occured.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>If a callback function is given (async mode), this function returns INSTPROXY_E_SUCCESS immediately if the status updater thread has been created successfully; any error occuring during the operation has to be handled inside the specified callback function. </dd></dl> </div> </div> <a class="anchor" id="a62d33ff9f5da3a3b58627bd9ca335776"></a><!-- doxytag: member="installation_proxy.h::instproxy_restore" ref="a62d33ff9f5da3a3b58627bd9ca335776" args="(instproxy_client_t client, const char *appid, plist_t client_options, instproxy_status_cb_t status_cb)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> instproxy_restore </td> <td>(</td> <td class="paramtype"><a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> </td> <td class="paramname"> <em>client</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>appid</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">plist_t </td> <td class="paramname"> <em>client_options</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> </td> <td class="paramname"> <em>status_cb</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Restore a previously archived application on the device. </p> <p>This function is the counterpart to instproxy_archive. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a14a12024b5dca9a54d528aaf051dd22b" title="Archive an application on the device.">instproxy_archive</a></dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The connected installation proxy client </td></tr> <tr><td valign="top"></td><td valign="top"><em>appid</em> </td><td>ApplicationIdentifier of the app to restore. </td></tr> <tr><td valign="top"></td><td valign="top"><em>client_options</em> </td><td>The client options to use, as PLIST_DICT, or NULL. Currently there are no known client options, so pass NULL here. </td></tr> <tr><td valign="top"></td><td valign="top"><em>status_cb</em> </td><td>Callback function for progress and status information. If NULL is passed, this function will run synchronously. </td></tr> <tr><td valign="top"></td><td valign="top"><em>user_data</em> </td><td>Callback data passed to status_cb.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if an error occured.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>If a callback function is given (async mode), this function returns INSTPROXY_E_SUCCESS immediately if the status updater thread has been created successfully; any error occuring during the operation has to be handled inside the specified callback function. </dd></dl> </div> </div> <a class="anchor" id="a05c8dceee6f29fcc01c203dab96f53b0"></a><!-- doxytag: member="installation_proxy.h::instproxy_uninstall" ref="a05c8dceee6f29fcc01c203dab96f53b0" args="(instproxy_client_t client, const char *appid, plist_t client_options, instproxy_status_cb_t status_cb)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> instproxy_uninstall </td> <td>(</td> <td class="paramtype"><a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> </td> <td class="paramname"> <em>client</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>appid</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">plist_t </td> <td class="paramname"> <em>client_options</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> </td> <td class="paramname"> <em>status_cb</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Uninstall an application from the device. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The connected installation proxy client </td></tr> <tr><td valign="top"></td><td valign="top"><em>appid</em> </td><td>ApplicationIdentifier of the app to uninstall </td></tr> <tr><td valign="top"></td><td valign="top"><em>client_options</em> </td><td>The client options to use, as PLIST_DICT, or NULL. Currently there are no known client options, so pass NULL here. </td></tr> <tr><td valign="top"></td><td valign="top"><em>status_cb</em> </td><td>Callback function for progress and status information. If NULL is passed, this function will run synchronously. </td></tr> <tr><td valign="top"></td><td valign="top"><em>user_data</em> </td><td>Callback data passed to status_cb.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if an error occured.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>If a callback function is given (async mode), this function returns INSTPROXY_E_SUCCESS immediately if the status updater thread has been created successfully; any error occuring during the operation has to be handled inside the specified callback function. </dd></dl> </div> </div> <a class="anchor" id="a8d5e97d6c3b80d6c67259293ef5fb09d"></a><!-- doxytag: member="installation_proxy.h::instproxy_upgrade" ref="a8d5e97d6c3b80d6c67259293ef5fb09d" args="(instproxy_client_t client, const char *pkg_path, plist_t client_options, instproxy_status_cb_t status_cb)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a488853e737060e4269b9e3a7706271cc">instproxy_error_t</a> instproxy_upgrade </td> <td>(</td> <td class="paramtype"><a class="el" href="structinstproxy__client__private.html">instproxy_client_t</a> </td> <td class="paramname"> <em>client</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>pkg_path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">plist_t </td> <td class="paramname"> <em>client_options</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="include_2libimobiledevice_2installation__proxy_8h.html#a92b83275dce2d558a2366f92a62f5b80">instproxy_status_cb_t</a> </td> <td class="paramname"> <em>status_cb</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Upgrade an application on the device. </p> <p>This function is nearly the same as instproxy_install; the difference is that the installation progress on the device is faster if the application is already installed.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The connected installation_proxy client </td></tr> <tr><td valign="top"></td><td valign="top"><em>pkg_path</em> </td><td>Path of the installation package (inside the AFC jail) </td></tr> <tr><td valign="top"></td><td valign="top"><em>client_options</em> </td><td>The client options to use, as PLIST_DICT, or NULL. Valid options include: "iTunesMetadata" -> PLIST_DATA "ApplicationSINF" -> PLIST_DATA "PackageType" -> "Developer" If PackageType -> Developer is specified, then pkg_path points to an .app directory instead of an install package. </td></tr> <tr><td valign="top"></td><td valign="top"><em>status_cb</em> </td><td>Callback function for progress and status information. If NULL is passed, this function will run synchronously. </td></tr> <tr><td valign="top"></td><td valign="top"><em>user_data</em> </td><td>Callback data passed to status_cb.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if an error occured.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>If a callback function is given (async mode), this function returns INSTPROXY_E_SUCCESS immediately if the status updater thread has been created successfully; any error occuring during the operation has to be handled inside the specified callback function. </dd></dl> </div> </div> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Nov 27 19:58:07 2010 for libimobiledevice by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> </body> </html>