)]}'
{
  "log": [
    {
      "commit": "7f392defccfae54dc8169e5ad82c2616e0713c8e",
      "tree": "3d647e7c869d6cb60f08c3ddaabff33aa12d4906",
      "parents": [
        "1abdb7123025e52512b2ed7a518f8c754c35f50a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 17:42:17 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 17:42:17 2013 -0700"
      },
      "message": "Catch a few extra users of UserEnvironment.\n\nChange-Id: I3112773b72c329893e4118ef1c4f4087d899139e\n"
    },
    {
      "commit": "ccbf84f44c9e6a5ed3c08673614826bb237afc54",
      "tree": "854e35665f7754b3b0d1b4aaadc7b4927c3ea9ce",
      "parents": [
        "4ffa23379f95771fcdc63a2e35586b7e2c0b23a5"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 08 15:25:41 2013 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 17 12:47:35 2013 -0700"
      },
      "message": "Some system apps are more system than others\n\n\"signatureOrSystem\" permissions are no longer available to all apps\nresiding en the /system partition.  Instead, there is a new /system/priv-app\ndirectory, and only apps whose APKs are in that directory are allowed\nto use signatureOrSystem permissions without sharing the platform cert.\nThis will reduce the surface area for possible exploits of system-\nbundled applications to try to gain access to permission-guarded\noperations.\n\nThe ApplicationInfo.FLAG_SYSTEM flag continues to mean what it is\nsays in the documentation: it indicates that the application apk was\nbundled on the /system partition.  A new hidden flag FLAG_PRIVILEGED\nhas been introduced that reflects the actual right to access these\npermissions.\n\nAt some point the \"system\" permission category will be\nrenamed to \"privileged\".\n\nBug 8765951\n\nChange-Id: I6f0fd9cdb9170e076dfc66d83ecea76f8dd7335d\n"
    },
    {
      "commit": "46cc43c6fa7623820d4ae9149496cf96bb15f8a3",
      "tree": "fe3a33bcdf0dc82414eb274aedefaef53aace059",
      "parents": [
        "32884c376fd06799f46ea3b1ded89ba9d21f8f14"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 19 14:08:59 2013 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 07 13:47:20 2013 -0800"
      },
      "message": "Full backup/restore now handles OBBs sensibly\n\nOBB backup/ restore is no longer handled within the target app\nprocess.  This is done to avoid having to require that OBB-using\napps have full read/write permission for external storage.\n\nThe new OBB backup service is a new component running in the\nsame app as the already-existing shared storage backup agent.\nThe backup infrastructure delegates backup/restore of apps\u0027\nOBB contents to this component (because the system process\nmay not itself read/write external storage).\n\nFrom the command line, OBB backup is enabled by using new\n-obb / -noobb flags with adb backup.  The default is noobb.\n\nFinally, a couple of nit fixes:\n\n- buffer-size mismatch between the writer and reader of chunked\n  file data has been corrected; now the reading side won\u0027t be\n  issuing an extra pipe read per chunk.\n\n- bu now explicitly closes the transport socket fd after\n  adopting it. This was benign but triggered a logged\n  warning about leaked fds.\n\nBug: 6718844\nChange-Id: Ie252494e2327e9ab97cf9ed87c298410a8618492\n"
    },
    {
      "commit": "416c39e8d48048fa4a997c09460c262cca871fc4",
      "tree": "9acf7f7763e5c0f9a657a4389feac2e76b843814",
      "parents": [
        "0786207be59d34a8ba8a7a1e93602002fac97587"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 14 16:55:46 2013 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 14 18:46:53 2013 -0800"
      },
      "message": "Full backup now saves getExternalFilesDir() content with the app data\n\n... instead of only saving it with the enormous \"shared storage\" generic\ndata blob.  In parallel, we no longer store managed app-specific files\non external storage as part of the generic shared-storage blob.\n\nAt restore time we just go ahead and apply such files, though,\nbecause they\u0027re a priori going to be part of an archive generated by\nan older version of the platform, so that\u0027s how the data is expected\nto be handled in those circumstances.\n\nBug 6718844\n\nChange-Id: I4410514d368b11d74b3afe6b92d363d4115a3415\n"
    },
    {
      "commit": "fb2ea43112bdf5a7dc121b59e2ef7e8b411bd019",
      "tree": "c1edb5a390815ad31cce3b42f81a2d0804e3bd73",
      "parents": [
        "7c3a18398f8cd8977079fad34a6bfc3fdab6378e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Oct 17 16:35:58 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Oct 18 15:47:59 2011 -0700"
      },
      "message": "Fix full backup of shared storage\n\nThe manifest said android:allowBackup\u003d\"false\" for vestigal reasons;\noriginally, the incremental and full backup agents were separate, and\nit was not possible to opt out of full backup.  When that got fixed,\nunfortunately this one manifest was not corrected to the new regime.\n\nBug 5411789\n\nChange-Id: Iafc8f1fdefc312dff59454485604b6c5c400f469\n"
    },
    {
      "commit": "79ec80db70d788f35aa13346e4684ecbd401bd84",
      "tree": "fd18f64033def7461692f9542bf9e5f01afe2fe0",
      "parents": [
        "be87cc945b5b094060cbc77b77383aefc60265e4"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 24 14:58:49 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 06 14:40:32 2011 -0700"
      },
      "message": "Make full backup API available to apps\n\nNew methods for full backup/restore have been added to BackupAgent\n(still hidden): onFullBackup() and onRestoreFile().  The former is the\nentry point for a full app backup to adb/socket/etc: the app then writes\nall of its files, entire, to the output.  During restore, the latter\nnew callback is invoked, once for each file being restored.\n\nThe full backup/restore interface does not use the previously-defined\nBackupDataInput / BackupDataOutput classes, because those classes\nprovide an API designed for incremental key/value data structuring.\nInstead, a new FullBackupDataOutput class has been introduced, through\nwhich we restrict apps\u0027 abilities to write data during a full backup\noperation to *only* writing entire on-disk files via a new BackupAgent\nmethod called fullBackupFile().\n\n\"FullBackupAgent\" exists now solely as a concrete shell class that\ncan be instantiated in the case of apps that do not have their own\nBackupAgent implementations.\n\nAlong with the API change, responsibility for backing up the .apk\nfile and OBB container has been moved into the framework rather than\nhave the application side of the transaction do it.\n\nChange-Id: I12849b06b1a6e4c44d080587c1e9828a52b70dae\n"
    },
    {
      "commit": "b0628bfd5aac480a0d412ac96b8af1d97ac01c30",
      "tree": "1b7854cfc31f7f25ec1879e1d83192ed2b7f5244",
      "parents": [
        "5c54f4b3cb6d0e402a0db122f741b488ef95792c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 02 15:08:13 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 07 12:16:27 2011 -0700"
      },
      "message": "Implement shared-storage full backup/restore\n\nEvery available shared-storage volume is backed up, tagged with its\nordinal in the set of mounted shared volumes.  This is an approximation\nof \"internal + the external card\".  This lets us restore things to the\nsame volume [or \"equivalent\" volume, in the case of a cross-model\nrestore] as they originated on.\n\nAlso fixed a bug in the handling of files/dirs with spaces in\ntheir names.\n\nChange-Id: I380019da8d0bb5b3699bd7c11eeff621a88e78c3\n"
    }
  ]
}
