blob: 97f0942325556b687fd8f838d598e64f02c247e7 [file] [log] [blame]
page.title=JOBB
@jd:body
<p>The {@code jobb} tool allows you to build encrypted and unencrypted APK expansion files in
Opaque Binary Blob (OBB) format. You can download and mount these expansion files in your
application using {@link android.os.storage.StorageManager} on devices with Android 2.3 (API
Level 9) or higher. OBB files are used to provide additional file assets for Android applications
(such as graphics, sounds and video), separate from an application's APK file. For more
information on using expansion files, see
<a href="{@docRoot}google/play/expansion-files.html">APK Expansion Files</a>.</p>
<h2 id="usage">Usage</h2>
<p>The syntax for running {@code jobb} is as follows:</p>
<pre>
jobb [-d &lt;directory&gt;][-o &lt;filename&gt;][-pn &lt;package&gt;][-pv &lt;version&gt;] \
[-k &lt;key&gt;][-ov][-dump &lt;filename&gt;][-v][-about]
</pre>
<p>You can use the {@code jobb} tool to create an OBB file or extract the contents of an
existing OBB. The following example command creates an OBB file from source files.</p>
<pre>
$ jobb -d /temp/assets/ -o my-app-assets.obb -k secret-key -pn com.my.app.package -pv 11
</pre>
<p>This example shows how to dump (extract) the contents of an existing OBB file:</p>
<pre>
$ jobb -d /temp/obb-output/ -o my-app-assets.obb -k secret-key
</pre>
<h2 id="options">Options</h2>
<p>The table below lists the command line options for the {@code jobb} tool.</p>
<table>
<tr>
<th>Option</th>
<th>Description</th>
</tr>
<tr>
<td>{@code -d &lt;directory&gt;}</td>
<td>Set the input directory for creating an OBB file, or the output directory when extracting
({@code -dump}) an existing file. When creating an OBB file, the contents of the specified
directory and all its sub-directories are included in the OBB file system.
</td>
</tr>
<tr>
<td>{@code -o &lt;filename&gt;}</td>
<td>Specify the filename for the OBB file. This parameter is required when
creating an OBB and extracting (dumping) its contents.</td>
</tr>
<tr>
<td>{@code -pn &lt;package&gt;}</td>
<td>Specify the package name for the application that mounts the OBB file, which corresponds
to the {@code package} value specified in your application's manifest. This parameter is
required when creating an OBB file.</td>
</tr>
<tr>
<td>{@code -pv &lt;version&gt;}</td>
<td>Set the minimum version for the application that can mount the OBB file, which corresponds
to the {@code android:versionCode} value in your application's manifest. This parameter is
required when creating an OBB file.</td>
</tr>
<tr>
<td>{@code -k &lt;key&gt;}</td>
<td>Specify a password for encrypting a new OBB file or decrypting an existing, encypted
OBB file.</td>
</tr>
<tr>
<td>{@code -ov}</td>
<td>Create OBB file that is an overlay of an existing OBB file structure. This option allows
the new package contents to be mounted into the same location as a previous package and is
intended for creating patch versions of previously generated OBB files. Files within an
overlay OBB file replace files that have the same path.</td>
</tr>
<tr>
<td style="white-space: nowrap">{@code -dump &lt;filename&gt;}</td>
<td><p>Extract the contents of the specified OBB file. When using this option, you must also
specify the output directory for the contents using the {@code -d &lt;directory&gt;}
parameter.</p>
<p class="note"><strong>Note:</strong> When dumping an existing OBB file, you can omit the
{@code -d &lt;directory&gt;} parameter to get a listing of the directories inside the file,
without extracting the contents.</p>
</td>
</tr>
<tr>
<td>{@code -v}</td>
<td>Set verbose output for the tool.</td>
</tr>
<tr>
<td>{@code -about}</td>
<td>Display version and help information for the {@code jobb} tool.</td>
</tr>
</table>