)]}'
{
  "log": [
    {
      "commit": "c38a20337658845b22e9faaaaf3b30f4884b081c",
      "tree": "d59e3d2bc41b94b0414e4af08d31943553d58026",
      "parents": [
        "9ed5eefc28f8193840b3186c612352930f7dad52"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu May 26 17:36:02 2016 +0100"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu May 26 17:38:11 2016 +0100"
      },
      "message": "Revert \"Revert \"Finalize resource IDs for N.\"\"\n\nThis reverts commit a5c9ca4f07418b80ac99a3d23df012d77faa2bc4.\n\nBug: 28810934\nChange-Id: I31816ab5470b84f85c8416312b5ac39884b8cc9a\n"
    },
    {
      "commit": "9ed5eefc28f8193840b3186c612352930f7dad52",
      "tree": "5c7a0a00c74496ce3ae641e1ca0299940e0050dd",
      "parents": [
        "7c8e76f87de28acc19935083a0f502df83c4a023"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu May 26 17:35:50 2016 +0100"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu May 26 17:38:06 2016 +0100"
      },
      "message": "Revert \"Finalize resource IDs for N.\"\n\nThis reverts commit 7c8e76f87de28acc19935083a0f502df83c4a023.\n\nBug: 28810934\nChange-Id: I3a61bb0c2364909480045dd40adba6445d6afabd\n"
    },
    {
      "commit": "7c8e76f87de28acc19935083a0f502df83c4a023",
      "tree": "d59e3d2bc41b94b0414e4af08d31943553d58026",
      "parents": [
        "4c04097fdbe0fe414a6fcb2d6174e295986a3f66"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu May 19 23:58:12 2016 +0100"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu May 26 17:35:28 2016 +0100"
      },
      "message": "Finalize resource IDs for N.\n\nBug: 28810934\nChange-Id: If68bfb46cc5fa2d5ea0ee613689198e1ea42dce7\n"
    },
    {
      "commit": "904237f83940676433104952d165d3b28d961044",
      "tree": "7c6c7702a9766755c26bb300b8f780bff7a11356",
      "parents": [
        "cfbca5640ca435e1b501254c9cf8b66746799d7e"
      ],
      "author": {
        "name": "Antonio Cansado",
        "email": "acansado@google.com",
        "time": "Wed May 25 09:57:21 2016 -0700"
      },
      "committer": {
        "name": "Antonio Cansado",
        "email": "acansado@google.com",
        "time": "Wed May 25 11:07:41 2016 -0700"
      },
      "message": "Cleaning up NetworkStatsManager.\n\n- Throwing SecurityExceptionand and IllegalArgumentException instead of null for new APIs\n- removing @removed APIs\n\nBug:27530098,27379882\nChange-Id: Ifbe65bfc5051aa33aff2baa22cfa8e67b0f7c358\n"
    },
    {
      "commit": "602dc777c5acd7ae761f4b8047440259d59e5dfa",
      "tree": "d833c95a5dd839817dfc2b02da770ee297988bb1",
      "parents": [
        "7932d676071e36b88a4105515cfb81c255398dd8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 24 11:51:12 2016 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 24 12:11:59 2016 -0700"
      },
      "message": "Remove deprecated AudioManager.AudioRecordingCallback method\n\nRemove AudioRecordingCallback.onRecordingConfigChanged(\n         AudioRecordingConfiguration[] configs)\n\nBug 28819230\n\nChange-Id: I3b85bb9313267499ac407099939b5889bdba996b\n"
    },
    {
      "commit": "f04fab160a044e4e7d936c0457a156d7911f924c",
      "tree": "8974c54f9fbf653a4c6c235b24691cf4308a49f4",
      "parents": [
        "a3ec065a43069a19dc42f023a40d54a3178f1b44"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 19 10:42:35 2016 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon May 23 09:44:58 2016 -0700"
      },
      "message": "Recording activity notification: return list of configuration\n\nUse a list of configurations instead of an array\n\nBug 28819230\n\nChange-Id: Ia4a3cdabf8337cfb98abe4d0055d497bcab8a5ee\n"
    },
    {
      "commit": "f66a83db41711ebd1187bf9e99d0b21e428075f5",
      "tree": "27439c5018935e2d34edd626f3aeb1170de6c835",
      "parents": [
        "7996b96311eec2343c16d3677fb834d2ec7cf082"
      ],
      "author": {
        "name": "Andrii Kulian",
        "email": "akulian@google.com",
        "time": "Tue May 17 12:17:44 2016 -0700"
      },
      "committer": {
        "name": "Andrii Kulian",
        "email": "akulian@google.com",
        "time": "Tue May 17 13:00:53 2016 -0700"
      },
      "message": "Rename minWidth/Height attributes\n\nRename WindowLayout#minimalWidth and #minimalHeight to #minWidth\nand #minHeight to be consistent with other APIs.\n\nBug: 28775586\nChange-Id: Ib7dc26318c4391693ef23f908b4d6090138dd0d7\n"
    },
    {
      "commit": "a1e4cbe2116bef9fad7c98836926317bde95d33e",
      "tree": "4b260ed2dc9bca89ea7a5b4952a753f28df93914",
      "parents": [
        "d34396443e712a96572d26c820809a9485e57da3",
        "1ad3955a6008f5f442fa5eb0adf7c4e6ba2f17cd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 16 15:18:18 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 16 15:18:20 2016 +0000"
      },
      "message": "Merge \"Remove onUhandledInputEvent API.\" into nyc-dev"
    },
    {
      "commit": "752129929fcbe8d7740d25014f7878e835d4f4ef",
      "tree": "1216383387820894982e12083ccd94e88c5f007c",
      "parents": [
        "8a68194477cf938c55bbf7e36509c689d6a54b32",
        "e0cbda454cdf0c78f08be1c5cfec4d02bbb55867"
      ],
      "author": {
        "name": "Tingting Wang",
        "email": "tingtingw@google.com",
        "time": "Thu May 12 17:11:42 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 12 17:11:44 2016 +0000"
      },
      "message": "Merge \"Rename CONTACT_METADATA_SYNC GService Flag.\" into nyc-dev"
    },
    {
      "commit": "e0cbda454cdf0c78f08be1c5cfec4d02bbb55867",
      "tree": "8bfe8259350fd208ccfa75bad84852f4aeafb04e",
      "parents": [
        "de66540fd3f73937c3cfbe1d50e575aa69acc474"
      ],
      "author": {
        "name": "Tingting Wang",
        "email": "tingtingw@google.com",
        "time": "Tue May 10 15:39:37 2016 -0700"
      },
      "committer": {
        "name": "Tingting Wang",
        "email": "tingtingw@google.com",
        "time": "Tue May 10 17:29:00 2016 -0700"
      },
      "message": "Rename CONTACT_METADATA_SYNC GService Flag.\n\nRename it to CONTACT_METADATA_SYNC_ENABLED.\n\nBUG 28295805\n\nChange-Id: Ib1f735b082a2ff6cca93e377b3eaaaf7cd396b8d\n"
    },
    {
      "commit": "6965c1869aa8499706522d057b5143bbc240178b",
      "tree": "d255a4bad4bd7a4f5033bb93ba7e6f54f706e706",
      "parents": [
        "cdaaaaad905396e4f0f2ebd9b37240095182d1d7"
      ],
      "author": {
        "name": "Antonio Cansado",
        "email": "acansado@google.com",
        "time": "Wed Mar 30 11:37:18 2016 -0700"
      },
      "committer": {
        "name": "Antonio Cansado",
        "email": "acansado@google.com",
        "time": "Tue May 10 13:24:16 2016 -0700"
      },
      "message": "Addressing API council comments on NetworkStatsManager.\n\nCallbacks\n - DataUsageCallback renamed to UsageCallback\n - DataUsagePolicy removed; passing in params directly to register method\n - making it an abstract class\n - passing in (networkType, subscriberId) that reached its threshold\n - renaming onLimitReached to onThresholdReached to match existing naming\n - only monitor single network,subscriberId\n - no monitoring of specific uids; using device or user wide instead\n\nTags\n - only owner uid can read its tags\n - exposing only TAG_NONE to match service side\n\nBUG: 27530098\n\nChange-Id: I2b2664da71806868a1e937d2bf4d1f234637509b\n"
    },
    {
      "commit": "a895559a41930b6665d8e3056b463633f3096fbc",
      "tree": "9507f8e12f72fceed0d6a90058d40911bd34c88c",
      "parents": [
        "65e654a1a18ae547e1728a355f25d99c796f0abd"
      ],
      "author": {
        "name": "Amit Mahajan",
        "email": "amitmahajan@google.com",
        "time": "Mon May 02 14:45:46 2016 -0700"
      },
      "committer": {
        "name": "Amit Mahajan",
        "email": "amitmahajan@google.com",
        "time": "Mon May 02 14:45:46 2016 -0700"
      },
      "message": "Marking @SystemApi permissions @hide too.\n\nBug: 28287631\nChange-Id: Ie0375620689263ebafd6850f2261e090f09521b1\n"
    },
    {
      "commit": "1ad3955a6008f5f442fa5eb0adf7c4e6ba2f17cd",
      "tree": "f0cc3c94ba862d9689c1c982275b640003bcb21f",
      "parents": [
        "8891ae1f7f69a1d1b203477bea01674c98af1141"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Apr 27 13:07:18 2016 -0400"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Apr 27 13:07:18 2016 -0400"
      },
      "message": "Remove onUhandledInputEvent API.\n\nThis callback was never used by WebView and anyone that overrides it\nis going to just be broken since we never actually call into it from\nthe method that WebView does call. Furthermore, the WebView team has\ndecided that the API has too many complications to ever implement,\nthe most notable of which is that MotionEvents tend to come in\nstreams that would need to be buffered in order to detect the event\nbefore it can be determined whether they were handled or not which\nmeans that any uses of the API are inevitably going to be janky\nexperiences.\n\nBug: 14279909\nChange-Id: I068601ce947bccacabfe55b86b06005449b65bcf\n"
    },
    {
      "commit": "399df701a16704b002475300a535683005d7af8b",
      "tree": "c6fa22c39b04b7d4a7d8137e2ca35659820504bc",
      "parents": [
        "e2be9f4a670198edbe9b1c42422d6d429b8a21f6"
      ],
      "author": {
        "name": "Daichi Hirono",
        "email": "hirono@google.com",
        "time": "Wed Apr 13 11:07:44 2016 +0900"
      },
      "committer": {
        "name": "Daichi Hirono",
        "email": "hirono@google.com",
        "time": "Mon Apr 18 13:03:29 2016 +0900"
      },
      "message": "Handle API review comments from the council.\n\n * MtpEvent: Remove public constructor since properties cannot be set\n   directly.\n * MtpEvent: Move event constants from MtpConstants to MtpEvent class.\n * getPartialObject64: the byte[] must have indices of Integer.MAX_VALUE\n   at most. Document as such.\n * sendObjectInfo: what happens if the transfer doesn’t succeed? How is\n   the app notified? If there is a reason for the failure communicated,\n   how does the app find this out? Add docs.\n * Add isOperationSupported(int) and isEventSupported(int) helpers.\n\nChange-Id: Ifd80016d2ddd3b66d5c45f6da76b6133f0c9a617\nFixes: 28146379\n"
    },
    {
      "commit": "e8abe8e5ad830bd130b258c6801d75f6542200b5",
      "tree": "762df770300d022ed1e5e90833cd392da1a52798",
      "parents": [
        "36712853a9d0b57702ee5b1fd936ff0b9f48c151"
      ],
      "author": {
        "name": "Lifu Tang",
        "email": "lifu@google.com",
        "time": "Fri Apr 01 10:32:05 2016 -0700"
      },
      "committer": {
        "name": "Lifu Tang",
        "email": "lifu@google.com",
        "time": "Wed Apr 06 17:54:35 2016 -0700"
      },
      "message": "Addressed API review comments and updated JavaDoc\n\nBug: 27274532\nBug: 27948390\nChange-Id: I0255d2511deab788dcab9815def9c1287a50b7f9\n"
    },
    {
      "commit": "0632d8ae71418bea092f9f2c7e62118213e7cc78",
      "tree": "b991deb7b5af038ffc80baf92f94e8da22a30715",
      "parents": [
        "ede7d958ab54a0701baa8ae8b494e8ea905c61c6"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Mar 18 07:42:04 2016 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Mar 30 13:25:45 2016 -0700"
      },
      "message": "TIF: Address comments on hardware manager related system APIs\n\nBug: 25726241\nChange-Id: I0a3e7e8cf494d897fc04528ba719faa4150b9207\n"
    },
    {
      "commit": "c02bfae73e139f2a1c56cc6b051bfc7877b8cf1d",
      "tree": "721b67f2313b76699aadb86e3509e9e5bfa4fc86",
      "parents": [
        "c9a40cd8448410316716e45ce051c9f1a3fc7054"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Mar 27 15:06:53 2016 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Mar 27 15:06:57 2016 -0600"
      },
      "message": "Include \"invisible\" volumes in new storage API.\n\nThe purpose of the new StorageVolume API is to grant access to\nvolumes that aren\u0027t typically \"visible\" to a developer, so include\nthem in the returned results.\n\nAlso return the real mounted state instead of augmenting based on\nthe caller\u0027s storage permissions.  Clean up API naming slightly and\nreturn as List.\n\nBug: 27615770\nChange-Id: Ida921a4b91e5af81e418e76f672d9108f45a9781\n"
    },
    {
      "commit": "cf3f0a11a83e7a798e0586a78efdafc82a7f3d08",
      "tree": "110042262b4bf24707d23caf82d4484acbed0146",
      "parents": [
        "62b5ec7651ebda7a90682012e00307225201bbd9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 17 19:57:58 2016 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 17 19:58:05 2016 -0600"
      },
      "message": "Update direct boot related documentation.\n\nAlso hide a few APIs as requested by council.  Add a method to\neasily determine if a given File would already be encrypted at rest\nby the OS.\n\nBug: 27531029\nChange-Id: Icad5f1cd56411ad3ac707db85fd7449acdcc4b94\n"
    },
    {
      "commit": "8a372a0a280127743ce9a7ce4b6198c7a02d2a4f",
      "tree": "f2446f9d00e6dc0be78885db357719b9b3830e48",
      "parents": [
        "58ae278294017abca0dffc95f006ae646c88db89"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Mar 16 16:25:45 2016 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 17 14:49:08 2016 -0600"
      },
      "message": "Refactoring FBE APIs based on council feedback.\n\nMostly consists of removing the word \"encryption\" from most APIs,\nsince we can\u0027t actually make promises about the data being encrypted.\n\nBug: 27531029\nChange-Id: Iace9d7c4e64716abf86ed11847c40f3947e1d625\n"
    },
    {
      "commit": "51e7805f14062df674f613fdaa830030aaaa4f8e",
      "tree": "1bb713ab589db59aa0f1cda47917059c155759d5",
      "parents": [
        "5781e61cb6a134cf897d8454a222687880ce639a"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Mar 11 09:10:27 2016 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Mar 11 09:10:27 2016 -0500"
      },
      "message": "Remove all non-porterduff xfermodes from the public API\n\nbug: 14650725\nChange-Id: I3c935c32849be8762281eb3d1c86481be3fa139f\n"
    },
    {
      "commit": "e12d810e99da093d3cf38f89c81e3e8d1e75b404",
      "tree": "65622168e242a3df5b064515903d0285a06d6b89",
      "parents": [
        "8482826287ac2fdb2440213155cf134b7e713283"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Mar 04 16:45:39 2016 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Mar 08 10:53:09 2016 -0800"
      },
      "message": "TIF: Unhide TvView.setZOrderMediaOverlay/setZOrderOnTop/tune/unblockContent\n\nBug: 25726685\nChange-Id: If96d0b086488c931d20315ee1c29cf7374715d93\n"
    },
    {
      "commit": "50d1c044b5ce4b6fef532dc6e083cef903f554b2",
      "tree": "a939ccdb97eaea101b411732145882c5861bd100",
      "parents": [
        "331279b239a6f5f392372f34cd6923fa589f9987"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Feb 29 16:34:46 2016 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Feb 29 16:46:09 2016 -0700"
      },
      "message": "Parcelable classes should always be final.\n\nAlso hide ConnectivityMetricsEvent which isn\u0027t being used yet.\n\nBug: 27415331\nChange-Id: Iacdccddda504f3f669185f807b4f35b8dc2b0212\n"
    },
    {
      "commit": "f398479e069c7accb1f96b06b32e086609342669",
      "tree": "5c88f5541a5bb832ff49a8a796335d4465818bae",
      "parents": [
        "4e34c4e53c21f004cb575c0d46c83565b33fed88",
        "27ee33482a2fdecbbbedbd33a137ceae3e93fa2a"
      ],
      "author": {
        "name": "Philipp Weiß",
        "email": "phweiss@google.com",
        "time": "Tue Feb 23 17:53:56 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 17:53:58 2016 +0000"
      },
      "message": "Merge \"Remove deprecated APIs DPM.createUser, createAndInitializeUser\" into nyc-dev"
    },
    {
      "commit": "5affc2b587323f55201d5db768b838505b5a4b72",
      "tree": "249b6eb058bb0050fcaf5ca62889d05faab18b2c",
      "parents": [
        "8e2602ea26fe8eeec36a994f84d9f8ed03ef9090"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Feb 22 17:12:15 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Feb 22 17:29:32 2016 -0800"
      },
      "message": "Make android.media.AudioFormat parcelable\n\nBug 22876530\n\nChange-Id: If027715aad32ce8796a7e223ba51c301a3dd1192\n"
    },
    {
      "commit": "27ee33482a2fdecbbbedbd33a137ceae3e93fa2a",
      "tree": "332e40527419f875dcd246ec88d50f300ab27094",
      "parents": [
        "fa272e5c9262bc974d68139a6300ecdbf94f0767"
      ],
      "author": {
        "name": "phweiss",
        "email": "phweiss@google.com",
        "time": "Mon Feb 08 16:40:45 2016 +0100"
      },
      "committer": {
        "name": "phweiss",
        "email": "phweiss@google.com",
        "time": "Mon Feb 22 14:04:14 2016 +0100"
      },
      "message": "Remove deprecated APIs DPM.createUser, createAndInitializeUser\n\nThey were deprecated in M and slated for removal in N.\n\nBug: 26974903\nChange-Id: I7ae4d60bcf226c1e1de42852b378ad1ff71a914b\n"
    },
    {
      "commit": "34a9d5271915fb82c22811e6d17691a34b6c52c1",
      "tree": "6802483692ad40985af08bf9887498949fed648a",
      "parents": [
        "04a5d40cf35fb2c2fca2c1bfd573e5916d804ef6"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed Feb 17 10:12:04 2016 -0800"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed Feb 17 14:38:25 2016 -0800"
      },
      "message": "Removed Intent.OPEN_EXTERNAL_DIRECTORY.\n\nSuch intent is now encapsulated by StorageVolume.createAccessIntent().\n\nBUG: 26742218\n\nChange-Id: I2e2bd71126ecd74981f77b0af7d069f51aaece74\n"
    },
    {
      "commit": "04a5d40cf35fb2c2fca2c1bfd573e5916d804ef6",
      "tree": "eb79e0a16bcdd263d4bd93dae09e74c38ebf6ebd",
      "parents": [
        "c47738d8c22ae09cd93096888def0cf33f39d285"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Mon Feb 08 16:44:06 2016 -0800"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed Feb 17 13:14:39 2016 -0800"
      },
      "message": "Initial implementation of StorageManager.getVolumesList().\n\nThis change makes StorageManager.getVolumesList(),\nStorageManager.getPrimaryVolume(),  and StorageVolume public and adds a\nbuildAccessIntent() in the latter to automatically generate the\nACTION_OPEN_EXTERNAL_DIRECTORY intent, but it doesn\u0027t change the\nACTION_OPEN_EXTERNAL_DIRECTORY implementation yet (i.e., it still takes an URI with the physical path of the directory, instead of a StorageVolume and\na directorny name).\n\nBUG: 26742218\n\nChange-Id: I36c59c42b6579e125ec7f03c3af141260875a491\n"
    },
    {
      "commit": "b51617f4668ef8cf0e6d8d0fc3284eae51dbd8ca",
      "tree": "9e66ea505482770b09a33c338d008ab549357b91",
      "parents": [
        "d11c15d418d776d1db33f7664fad2671de0e6669"
      ],
      "author": {
        "name": "Stephan Linzner",
        "email": "slinzner@google.com",
        "time": "Wed Jan 27 18:09:50 2016 -0800"
      },
      "committer": {
        "name": "Stephan Linzner",
        "email": "slinzner@google.com",
        "time": "Wed Jan 27 18:09:58 2016 -0800"
      },
      "message": "Deprecated platform Android testing APIs\n\n- Deprecated most android.test.* APIs\n- Kept ProviderTestCase2 and LoaderTestCase since we don\u0027t have a\nreplacement yet\n- Deprecated android.test.suitebuilder\n- Added Javadoc to all deprecated APIs with links to corresponding\nAndroid Testing Support Library APIs\n- Removed all trailing whitespace\n\nBug: 22314304\nChange-Id: I1b1f0dd5132364110f1dfd4e3eb2dd044700d859\n"
    },
    {
      "commit": "e06b4d1d9f718b9fe02980fea794a36831a16db2",
      "tree": "cfef7d72c17fc71b008f0c9a8f08d49553a30e16",
      "parents": [
        "2a90f673f5819e05ea72f6aba3e75956e0f807dc"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jan 06 14:51:50 2016 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jan 06 15:21:06 2016 -0700"
      },
      "message": "Consistent naming for PackageManager methods.\n\nWhen hidden PackageManager methods take a userId argument, they\nshould be named explicitly with the \"AsUser\" suffix.  This fixes\nseveral lagging examples so that we can pave the way to safely\nstart passing flags to new methods without scary overloading.\n\nAlso fix spacing issues in various logging statements.\n\nChange-Id: I1e42f7f66427410275df713bea04f6e0445fba28\n"
    },
    {
      "commit": "a36c07405280f93a11ad6398553da274e6daad83",
      "tree": "17c89314310e39859073f778e883ecb8534f8558",
      "parents": [
        "e827c2525a6b76c130d2b877fbcdcf62b0ce42eb"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jul 28 11:41:31 2015 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jul 28 11:41:31 2015 -0700"
      },
      "message": "Un-remove legacy ConnectivityManager API.\n\nThese were @removed too soon.  We need to keep them @deprecated until\nthe bulk of devices support the new API and then we can remove them.\n\nbug:22728205\nChange-Id: If1b46ff1878f1778517624112b195c461645ddd1\n"
    },
    {
      "commit": "749d66b82fcfa82649536d2a0739a1a84edc0400",
      "tree": "d83112da855d9e038d965969d2b363dc0d78ac46",
      "parents": [
        "cede20a7c273279a9bc51750bdd99c1383816e3e",
        "a05db3816b4e29790aed9de9ef1cf4b2d0b616c9"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Wed Jun 24 22:17:39 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 22:17:45 2015 +0000"
      },
      "message": "Merge \"remove setLatestEventInfo\" into mnc-dev"
    },
    {
      "commit": "a05db3816b4e29790aed9de9ef1cf4b2d0b616c9",
      "tree": "f6a535f81b8476e9226361d334723cfa48377ae0",
      "parents": [
        "f1b25bd43464b2603da98ce5f03f41d9819d2374"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Wed Jun 24 15:18:34 2015 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Wed Jun 24 15:18:34 2015 -0400"
      },
      "message": "remove setLatestEventInfo\n\nThis has been deprecated since API 11.\n\nBug: 18510449\nChange-Id: Ibd052572aa8c332daf5f6a604afe1925e8998a2b\n"
    },
    {
      "commit": "6d2c0e5ee2f717d4a5c00df08aca21c76eea8278",
      "tree": "d4ea2ebfbb76526bca06fcc88dbcd6b7bcada431",
      "parents": [
        "7cc40196132596a267b78d60f6e416be55251525"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jun 23 16:33:36 2015 +0000"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jun 23 23:03:55 2015 +0000"
      },
      "message": "Remove not needed contacts related permissions.\n\nThis reverts commit ed5ff51b2ca7c051e2719dfc8a8a083e6208848e.\n\nChange-Id: If2407e4e474a438d95e1b7ad1aa6f441bb3ace08\n"
    },
    {
      "commit": "ed5ff51b2ca7c051e2719dfc8a8a083e6208848e",
      "tree": "dbc4f089cb1b45a7405da654926049b525f57656",
      "parents": [
        "a2991da0d671adf511ccb884cf25bf1241303f92"
      ],
      "author": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Tue Jun 23 06:16:25 2015 +0000"
      },
      "committer": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Tue Jun 23 06:16:25 2015 +0000"
      },
      "message": "Revert \"Remove not needed contacts related perissions.\"\n\nBroke the build, reverting.\n\nThis reverts commit a2991da0d671adf511ccb884cf25bf1241303f92.\n\nChange-Id: I2bdfa70fbd8a6c03e48426f85eeb63896762d5da\n"
    },
    {
      "commit": "a2991da0d671adf511ccb884cf25bf1241303f92",
      "tree": "213eceb089e954e4a5e5d6d70feca7002f97ca23",
      "parents": [
        "3ac465a7d830a973096b4f69ef4531f09dcdf07c"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jun 22 11:13:04 2015 -0700"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jun 22 13:20:55 2015 -0700"
      },
      "message": "Remove not needed contacts related perissions.\n\nRemoving the read/write profile/social stream permissions as they\nare not needed anymore. These permissions are for accessing data\nnested in the conacts provider which is already guaded by the\nread/write contacts runtime permissions. The removed permissions\nwould be in the contacts group which means they would not provide\nmore protection compated to read/write contacts. Also removing\nthe permissions voids the need for app op support for legacy apps.\n\nRemoved deprecated APIs for social streams as these were deprecated\nand will go away in the next release. We want apps targeting M to\nnot be able to compile if still suing these APIs to help with\nmigration.\n\nChange-Id: I26ed9055847af7f92c78eb0f4ac8f9f1aa616fcd\n"
    },
    {
      "commit": "dfdb52abe601bc9b7ba41684a35f7a030b93f707",
      "tree": "0aac101e725bbe3be78ec11f3a408bae5749dfb9",
      "parents": [
        "965097321df7fd57a35f63365b1de26ddcf35214"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Wed Jun 17 21:03:11 2015 +0000"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Wed Jun 17 21:03:11 2015 +0000"
      },
      "message": "Revert \"remove setLatestEventInfo\"\n\nThis reverts commit 965097321df7fd57a35f63365b1de26ddcf35214.\n\nChange-Id: I658bb2611fe8f983309e962d6772d1bd80ed586e\n"
    },
    {
      "commit": "965097321df7fd57a35f63365b1de26ddcf35214",
      "tree": "59a96e4f386d995524289d607e6450f4dc85e6ee",
      "parents": [
        "0463cad783e78381f390855d1cc9d7d8d803b634"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri Jun 12 10:03:01 2015 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Mon Jun 15 08:22:05 2015 -0400"
      },
      "message": "remove setLatestEventInfo\n\nBug: 18510449\nChange-Id: I2f950b92a9c13fc29bf5642d44fd2fcce79e65fd\n"
    },
    {
      "commit": "6d9778328a3c3c9da525870fff606af8ac5e9529",
      "tree": "349a1b9328b9591ce2c092e941a24d328f215e61",
      "parents": [
        "a5c852e03abb9372a6928271a930d7d79e4ec45e",
        "bfa216ac261dd3c5035ad38795650ce5f4ce6fb7"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Sun Jun 14 20:00:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 14 20:01:02 2015 +0000"
      },
      "message": "Merge \"Remove bookmarks provider and associated permissions - framework\" into mnc-dev"
    },
    {
      "commit": "bfa216ac261dd3c5035ad38795650ce5f4ce6fb7",
      "tree": "0c8d1cd3049a742fcc25836893b10f38f793b095",
      "parents": [
        "e545bd36a483b51ef681ea063f7bda9352adb4d4"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Jun 05 14:20:50 2015 -0700"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jun 11 18:59:25 2015 -0700"
      },
      "message": "Remove bookmarks provider and associated permissions - framework\n\nChange-Id: I7f5a2f14a12da473f05a5075d98e762f8f8ed970\n"
    },
    {
      "commit": "6eb73a577850a4b6ddb06fd746f09a6c1d124f34",
      "tree": "e4dfe011470ae9b7161257736514b5c79ba406df",
      "parents": [
        "00a34ab54c0e53461586c9596b4f43615319329f"
      ],
      "author": {
        "name": "Carlos Valdivia",
        "email": "carlosvaldivia@google.com",
        "time": "Thu Jun 11 13:07:11 2015 -0700"
      },
      "committer": {
        "name": "Carlos Valdivia",
        "email": "carlosvaldivia@google.com",
        "time": "Thu Jun 11 14:10:04 2015 -0700"
      },
      "message": "Revert \"Revert \"Permissions: Fix account related permissions.\"\"\n\nThis reverts commit dcddc476651deb72a27798de56eef584e5be5d32.\n\nChange-Id: Ie2402167fc7cd3d5e57bf2fba704fdf00cfcb4fe\n"
    },
    {
      "commit": "d6a213526251896b7f9928334a17ae0dd97669ba",
      "tree": "816f9e042fd3110fd8a02a3b79bc4e9c17725a91",
      "parents": [
        "dbf62ace0dcb671f5eaa97c0dfa75e39bc9c88be"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Feb 12 10:13:45 2015 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu May 07 13:16:18 2015 +0000"
      },
      "message": "Remove FloatMath methods from the API\n\nAlso removing FloatMathTest. The tests are being\nmoved into a legacy CTS suite.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d36199\nChange-Id: I397fd6bcc4d988db6301245f9d47460bd6c28821\n"
    },
    {
      "commit": "0f94fc6f1df4ef03e639190a138d650bc6cf8adf",
      "tree": "8580002985f4232511a64e1ac4b133725ae38251",
      "parents": [
        "4b57e74bb3bea794f804655435e881d0ce756f57",
        "70e21e61ac728c3e02d6d54a52b53199b4ebf9df"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 20:16:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 25 20:16:12 2015 +0000"
      },
      "message": "Merge \"Frameworks/base: Fix a constructor\""
    },
    {
      "commit": "e285b434f4cc0f719e189e472bb3f83865b58b7b",
      "tree": "7da4f318b1b441c103a795663db4a6ab09290d19",
      "parents": [
        "f443bfc25e80ef46aedd616d4ecb4c95abd7be7a"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Apr 23 15:32:42 2015 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Apr 23 17:44:05 2015 +0900"
      },
      "message": "@removed requestRouteToHost and {start,stop}UsingNetworkFeature\n\nBug: 20482461\nChange-Id: Ic59fc1271e664d85102dc7945c0c2ea82c0d6f6b\n"
    },
    {
      "commit": "1441fc73e87fed4d5df84e5e19c14c2a4307b23b",
      "tree": "2778a47c819cabc0bd15744a9eb0f2b200ee57e8",
      "parents": [
        "317918e206b89f4a49bfa35af57607764f322347"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Apr 14 12:32:47 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Apr 14 12:37:04 2015 -0700"
      },
      "message": "Mark the SUBSCRIBED_FEEDS_READ/WRITE permissions removed.\n\nThese permissions are definded by the platform to protect the\nsubscribed feeds provider which is not in the system, neither\nis its contract specified in the system. Both the contract and\nthe implementation of the provider are in GmsCore. Hence, this\npermissions shuld be declared by GmsCore, not the system. Until\nGmsCore adds the permissions we have to keep this as removed\nbut present in the implementation to keep apps that use the\nprovider working.\n\nbug:20192150\n\nChange-Id: I3f38b01a159bb430c30948b14de7cdaf5cb50772\n"
    },
    {
      "commit": "8faab36fdd2d7dd038885a5073eeb8354d8996d4",
      "tree": "d24b171826d1b5d1e93a9328bfec5efc104ed8ad",
      "parents": [
        "4670513e70f8d55e40a359941e7c216604daae19"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 09 18:52:52 2015 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 09 19:48:10 2015 -0700"
      },
      "message": "Clean up AbstractCursor API.\n\nDeprecated three protected fields that should not have been\nexposed in the API.\n\nBug: 6353797\nChange-Id: Ic6710f880a452dd1508abf0613907a1d2b1fb557\n"
    },
    {
      "commit": "c6d1c345f41cf817bf2c07c97b97107d94296064",
      "tree": "4bb0bac510ae49524f25a71e3f9e73f5f78cf36f",
      "parents": [
        "3910eb551c7736015708c627dcabaa75c66d9ec3"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 26 14:44:43 2015 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Mar 23 18:50:35 2015 -0700"
      },
      "message": "Runtime permissions: per user permission tracking.\n\nBefore all permissions were granted at install time at once, so the user\nwas persented with an all or nothing choice. In the new runtime permissions\nmodel all dangarous permissions (nomal are always granted and signature\none are granted if signatures match) are not granted at install time and\nthe app can request them as necessary at runtime.\n\nBefore, all granted permission to an app were identical for all users as\ngranting is performed at install time. However, the new runtime model\nallows the same app running under two different users to have different\nruntime permission grants. This change refactors the permissions book\nkeeping in the package manager to enable per user permission tracking.\n\nThe change also adds the app facing APIs for requesting runtime permissions.\n\nChange-Id: Icbf2fc2ced15c42ca206c335996206bd1a4a4be5\n"
    },
    {
      "commit": "70e21e61ac728c3e02d6d54a52b53199b4ebf9df",
      "tree": "c33580a6093e3b41a5127a580a3928ff1df782f0",
      "parents": [
        "3756b40992b4940101eb84604b9283167bee9a34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 18 16:13:33 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 19 15:27:13 2015 -0700"
      },
      "message": "Frameworks/base: Fix a constructor\n\nThe constructor of RecoverySystem was accidentally made public\nbefore. @Removed it.\n\nBug: 19797138\nChange-Id: I4c7bba99695a3aeb56da9c126125c3e9075c0181\n"
    },
    {
      "commit": "dbbeeb3f44793798f129f25eb3e62f4cfe709d26",
      "tree": "297e13e6bfa7a52bbf3f4518317a4c66e2b43780",
      "parents": [
        "5ca961673355622209fad00e75734ed861ecbce5"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 18 19:16:25 2015 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Mar 10 19:53:12 2015 +0000"
      },
      "message": "Remove unused settings constants from the SDK (framework).\n\nThe settings constants for various volumes do nothing and are\nused by nothing since API version 2. These are however backed\nup in the cloud which is a waste of resource. This change\nremoves these constants from the SDK while keeping them hidden\nto avoid breaking released apps and also prevents unnecessary\nbackup.\n\nChange-Id: I2e91863115f5a4b997a14f8d0f57b4dc9689cfab\n"
    },
    {
      "commit": "6e53931f49f49245deef8622eb8e7dc6ccf04536",
      "tree": "0b7101049fca594901d09a089ba1f9588053cd1e",
      "parents": [
        "ddd30928a7d8f410d7d13d5706da44ba20bac440"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Feb 24 18:53:21 2015 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Feb 25 17:04:13 2015 -0800"
      },
      "message": "Add Context.getSystemService(Class\u003c?\u003e).\n\nAdded an overload of getSystemService() that takes a class instead of a\nservice name to eliminate the extra cast and provide more type safety.\n\nCleaned up docs.\n\nRemoved the default constructor of BatteryManager which should not have\nexisted.\n\nChange-Id: I9da46b20641fc83ecd3342560e5b94cb721f289c\n"
    },
    {
      "commit": "406e1ed9883010928cfb42246cfd2710ebf3da74",
      "tree": "4ecf899952a5caf87f659ed58436257bd2072d4d",
      "parents": [
        "46a9721aebb3be64ec6f6941414b3f54131d2954"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Dec 10 18:55:12 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Feb 04 09:50:46 2015 +0000"
      },
      "message": "Remove apache specific socket factory API.\n\nNote that this change also includes another (non-breaking) update from\nanother of my changes from a month ago. I guess nobody has updated API on\nmaster in a very long time..\n\nbug: 18027885\nChange-Id: I1fb1bcdaac07131c3bc43b13ad21cacd12a2e7c8\n"
    },
    {
      "commit": "02937eba3251c475263169f0529060d8cdd1cc1a",
      "tree": "5c4551ec0374a250c6941808c7b28948b307ab57",
      "parents": [
        "d22c8d9961340ba1b7d7601d1c99e2557b6a9f0b"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Jan 09 11:51:26 2015 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Jan 20 16:30:47 2015 -0800"
      },
      "message": "Check in \"current\" system API files.\n\nThe API files were generated by running \"make showcommands update-system-api\".\n\nBug: 18960664\nChange-Id: Ibb4756d98be3cbf67f6103f5d5d8ff060b3c34c9\n"
    }
  ]
}
