private static Parcel toParcel(Bundle data) {
    Parcel serialized = Parcel.obtain();
    data.writeToParcel(serialized, 0);
    serialized.setDataPosition(0);
    return serialized;
  }
Bundles are written out in the following format: A header, which consists of:

<ol>
  <li>length (int)
  <li>magic number ({@link #BUNDLE_MAGIC}) (int)
  <li>number of entries (int)
</ol>

<p>Then the map values, each of which looks like this:

<ol>
  <li>string key
  <li>int type marker
  <li>(any) parceled value
</ol>

<p>We're just going to iterate over the map looking for the right key (BUNDLE_KEY_CALLBACK) and
try and read the IBinder straight from the parcelled data. This is entirely dependent on the
implementation of Parcel, but these specific parts of Parcel / Bundle haven't changed since
2008 and newer versions of Android will ship with newer versions of Google Play services which
embed the IBinder directly into the Bundle (no need to deal with the Parcelable issues).
jobdispatcher/src/main/java/com/firebase/jobdispatcher/GooglePlayCallbackExtractor.java