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>
