)]}'
{
  "log": [
    {
      "commit": "8391e03b7ef20f22ffc31da43e01b2fb8d1ec00a",
      "tree": "d10194b0006d0839b118c87b6672a60e1799ff12",
      "parents": [
        "5352411a8c41dd1c3c51a28cdd0b09f42e246b33",
        "24a2bc7755443307d16919b07720610085ab875a"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Apr 07 20:56:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 20:56:36 2015 +0000"
      },
      "message": "Merge \"ProgressBar: Fix error of process bar cannot update on some condition.\""
    },
    {
      "commit": "5352411a8c41dd1c3c51a28cdd0b09f42e246b33",
      "tree": "a7bb60b4abb064dde1780e62ce9774e418996551",
      "parents": [
        "6a17f60166082227a5a644f9114db46a0ade73f0",
        "e1e6c66198e628f0784e1731bbdb775da479075b"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Tue Apr 07 20:33:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 20:34:21 2015 +0000"
      },
      "message": "Merge \"Move cache dir to its own class.\""
    },
    {
      "commit": "e1e6c66198e628f0784e1731bbdb775da479075b",
      "tree": "97114bd130dcb27440f32aa56cc452efa2111a30",
      "parents": [
        "d95e58cb609228c4c4b231e00d6bb648e9dcaf71"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Tue Apr 07 13:24:14 2015 -0700"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Tue Apr 07 13:24:14 2015 -0700"
      },
      "message": "Move cache dir to its own class.\n\nThis prevents us from loading the RS static initializer all the time.\n\nChange-Id: I8cea7540e50251aba8c2f199f06f344f991e7d7f\n"
    },
    {
      "commit": "6a17f60166082227a5a644f9114db46a0ade73f0",
      "tree": "d90dc0834ef8dff35bf1ccdde18ff31824da53aa",
      "parents": [
        "558184f52fa7822a0bde230a93e552f137ac91a4",
        "36b26adde8091bcf8e1d5aff6ae393278fef12c8"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Apr 07 18:03:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 18:03:35 2015 +0000"
      },
      "message": "Merge \"Unnecessary dexopt in installPackageLI\""
    },
    {
      "commit": "558184f52fa7822a0bde230a93e552f137ac91a4",
      "tree": "4be91ee109e701627a2f2c725e541149977ac19e",
      "parents": [
        "d95e58cb609228c4c4b231e00d6bb648e9dcaf71",
        "c46e9e7da4558f6bc99262361fd1ca35c3a44090"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Apr 07 17:39:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 17:39:08 2015 +0000"
      },
      "message": "Merge \"Make the new AndroidKeyStore API conformant.\""
    },
    {
      "commit": "d95e58cb609228c4c4b231e00d6bb648e9dcaf71",
      "tree": "e0ccaae4cee2804306dbee124020a0a7c3870285",
      "parents": [
        "d229f442d5b8c2e600eaa4daeec0e771631ed83d",
        "dec4688f40b0018fbd1f00db05581966f531d88f"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 07 17:28:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 17:28:15 2015 +0000"
      },
      "message": "Merge \"Load libraries directly from apk\""
    },
    {
      "commit": "dec4688f40b0018fbd1f00db05581966f531d88f",
      "tree": "569eedaa5ff26c7889c2585f87087b020715ddba",
      "parents": [
        "97467d82a31964e36cb6bc32ac4cf00e884c190e"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Sep 30 15:10:48 2014 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 07 17:25:23 2015 +0000"
      },
      "message": "Load libraries directly from apk\n\n Introduced new \u0027extractNativeLibs\u0027 attribute to manifest/application.\n Setting it to false prevents installer from extracting library from apk.\n\n The default value for extractNativeLibs is true.\n\nBug: 8076853\n(cherry picked from commit ff193d642eea7128faad837d19e347cd25212c27)\nChange-Id: I1aa2c039bb2a590ae72f256acc9ba5401c2c59b1"
    },
    {
      "commit": "d229f442d5b8c2e600eaa4daeec0e771631ed83d",
      "tree": "e4453ea4f2fdc63a1a71c9a796026a2984da6597",
      "parents": [
        "8928c7271bee4b31e94b3d9e8e6e756d5aa2bcff",
        "3aacbbc02542a9694c706d02aa48b7bca1a8e3eb"
      ],
      "author": {
        "name": "Olawale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Tue Apr 07 17:14:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 17:14:32 2015 +0000"
      },
      "message": "Merge \"Add a timeout state to frozen windows\""
    },
    {
      "commit": "c46e9e7da4558f6bc99262361fd1ca35c3a44090",
      "tree": "fe03eacff018dff328a9e954d307bf4734de0fa0",
      "parents": [
        "64b0062a373102f83837faade20b469685758139"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Mon Apr 06 15:36:25 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Apr 07 09:18:00 2015 -0700"
      },
      "message": "Make the new AndroidKeyStore API conformant.\n\nThis makes the new AndroidKeyStore API conform with the latest\nKeymaster API changes as well as the latest Android framework API\ndesign guidelines.\n\nKeymaster changes:\n* Multiple paddings, block modes, and digests can be set on a key.\n* \"max uses per boot\" and \"min seconds between use\" restrictions will\n  not be exposed in the framework API.\n* Padding scheme ZERO will not be exposed.\n\nChanges due to Android framework design guidelines:\n* Sets of enum values have been replaced with bitsets represented as\n  ints.\n* Integer has been replaced with int, with null being represented\n  with a special value (e.g., -1 or 0) where possible.\n\nBug: 18088752\nChange-Id: Ib21739aa9b42d48895cb7a681e836a5c6d972ac6\n"
    },
    {
      "commit": "3aacbbc02542a9694c706d02aa48b7bca1a8e3eb",
      "tree": "e4453ea4f2fdc63a1a71c9a796026a2984da6597",
      "parents": [
        "8928c7271bee4b31e94b3d9e8e6e756d5aa2bcff"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 05 17:41:23 2015 -0800"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Tue Apr 07 09:14:36 2015 -0700"
      },
      "message": "Add a timeout state to frozen windows\n\nWhen an activity stops drawing following a rotation the rotation\nscreenshot would become stuck on top of all the other windows. The\ntimeout was being acknowledged but mWindowsFreezingScreen was set to\ntrue which kept stopFreezingDisplayLocked() from dismissing the\nscreen rotation animation.\n\nBy changing mWindowsFreezingScreen from a two state variable to a\nthree state variable, including a timeout state we allow\nstopFreezingDisplayLocked() to continue and dismiss the screen\nrotation animtion.\n\nThis change also reduces the APP_FREEZING_TIMOEOUT from 5 seconds to\n2 seconds.\n\nBug: 15664090\n\nChange-Id: Ida5aca002a82ec8fe1ea99f0ced814c5c8f01a95\n"
    },
    {
      "commit": "8928c7271bee4b31e94b3d9e8e6e756d5aa2bcff",
      "tree": "f430f8edf0828b12f1c727f6b466d36161974fee",
      "parents": [
        "437db6106b20d5a81f12a93593b5f623b3159f19",
        "ddc74155c9896b8783c1ba58499b909cce27a577"
      ],
      "author": {
        "name": "Olawale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Tue Apr 07 12:45:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 12:45:38 2015 +0000"
      },
      "message": "Merge \"[ActivityManager] Improve task order of getRunningTasks.\""
    },
    {
      "commit": "437db6106b20d5a81f12a93593b5f623b3159f19",
      "tree": "f27a3c4cc686388ef07d269f4f7af7789aa99df4",
      "parents": [
        "7200f661c1e5ef1c59c5849610dc97492c7a3a16",
        "cd005ebf76d9bde584987be4690b128f687bc46d"
      ],
      "author": {
        "name": "Olawale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Tue Apr 07 03:36:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 03:36:30 2015 +0000"
      },
      "message": "Merge \"[ActivityManager] Do not add service to reschedule after removing users.\""
    },
    {
      "commit": "ddc74155c9896b8783c1ba58499b909cce27a577",
      "tree": "3f7cae010da433ff8a0cd1a8a2252aaba1c517f5",
      "parents": [
        "7200f661c1e5ef1c59c5849610dc97492c7a3a16"
      ],
      "author": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Tue Apr 07 11:30:09 2015 +0800"
      },
      "committer": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Tue Apr 07 11:30:09 2015 +0800"
      },
      "message": "[ActivityManager] Improve task order of getRunningTasks.\n\nSymptom:\nDuring switching task in same stack, the first result\nof getRunningTasks will be the behind stack\u0027s top task.\ne.g.\n App Task X is starting task Y, the first entry may be home.\n\nRoot Cause:\nTaskRecord\u0027s lastActiveTime is updated when pausing\nor resuming. When X task launch a new task Y, Y is\non the top of task history, before X complete pause,\nY\u0027s lastActiveTime will be 0 because it is a new task.\nThen when comparing the front task with other stack,\nother stack will be regarded as the newer one.\n\nSolution:\nIf the stack is focused stack, give the top task with the last time.\n\nChange-Id: I0adc07608e03d333e0120a0dbc52a0fbbbb12f34\n"
    },
    {
      "commit": "36b26adde8091bcf8e1d5aff6ae393278fef12c8",
      "tree": "9f0f8f5c3a554da83a8b3efbf17ec0ba4cf53578",
      "parents": [
        "7200f661c1e5ef1c59c5849610dc97492c7a3a16"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Apr 06 19:04:08 2015 -0700"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Apr 06 19:04:08 2015 -0700"
      },
      "message": "Unnecessary dexopt in installPackageLI\n\nWhen a new package is created, installNewPackageLI does not need to call\ndexopt, since it has already been made.\n\nBug: 19550105\nBug: 20087446\nChange-Id: If6b05bea590eea5f95efebb22a67ccd8cdf632c2\n"
    },
    {
      "commit": "7200f661c1e5ef1c59c5849610dc97492c7a3a16",
      "tree": "215985695a34db8ffb8dd004779a73cc72a1de1a",
      "parents": [
        "6422ee7105cc99f389ff8f09d51e2a874e97f470",
        "37192dcde3cbba330a9a107578e7b7642e382348"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Mon Apr 06 23:38:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 06 23:38:05 2015 +0000"
      },
      "message": "Merge \"Fix minor blur doc bug\""
    },
    {
      "commit": "6422ee7105cc99f389ff8f09d51e2a874e97f470",
      "tree": "aa5657fc9d3da4024764e0f9a119ecb3c9f0642f",
      "parents": [
        "069f4cbccb651d98e4c50eca4698624ea089804d",
        "8bcbf47245141a55a80fac08e56dc863b6829372"
      ],
      "author": {
        "name": "Yang Ni",
        "email": "yangni@google.com",
        "time": "Mon Apr 06 23:28:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 06 23:28:23 2015 +0000"
      },
      "message": "Merge \"Rewrote FieldPack::createFieldPack for alignment\""
    },
    {
      "commit": "8bcbf47245141a55a80fac08e56dc863b6829372",
      "tree": "aa5657fc9d3da4024764e0f9a119ecb3c9f0642f",
      "parents": [
        "069f4cbccb651d98e4c50eca4698624ea089804d"
      ],
      "author": {
        "name": "Yang Ni",
        "email": "yangni@google.com",
        "time": "Wed Apr 01 17:29:14 2015 -0700"
      },
      "committer": {
        "name": "Yang Ni",
        "email": "yangni@google.com",
        "time": "Mon Apr 06 14:49:53 2015 -0700"
      },
      "message": "Rewrote FieldPack::createFieldPack for alignment\n\nb/20032217\n\nSome data types requires data alignment. This has an impact on the\ntotal data size for the FieldPack. Fixed createFiledPack()\nimplementation to handle this correctly.\n\nChange-Id: I241da19df69bf51cfdaf3b3a1381b446eaacb7fb\n"
    },
    {
      "commit": "069f4cbccb651d98e4c50eca4698624ea089804d",
      "tree": "d6967bdfffbee6d0888c26d7a8851d3002338ef4",
      "parents": [
        "47c1cf4b35616059409a0674382c2318494e877b",
        "4b647f4c4ddac95cb8a907590843d3a95cd3c6ae"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Apr 06 17:34:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 06 17:34:51 2015 +0000"
      },
      "message": "Merge \"Fix memory leak in Connectivity Service when phone app crashes\""
    },
    {
      "commit": "47c1cf4b35616059409a0674382c2318494e877b",
      "tree": "e7ca4596c908505b5a98810788bfce62dceb719f",
      "parents": [
        "655ef08144ec0b71a98b6b3a38e50c6b346ae467",
        "40e259c34078945ac298c7b20f1df4bef25c3453"
      ],
      "author": {
        "name": "Olawale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Mon Apr 06 15:25:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 06 15:25:04 2015 +0000"
      },
      "message": "Merge \"[ActivityManager] Fix ServiceRecord leakage\""
    },
    {
      "commit": "655ef08144ec0b71a98b6b3a38e50c6b346ae467",
      "tree": "1909bd5207def9f8385f86ac087365cb5c0c7069",
      "parents": [
        "baedbfbbb1181829bcffb1be3732b6f26a315bd8",
        "5064fddf81e477a90c81d72f7328aa5887c67511"
      ],
      "author": {
        "name": "Olawale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Mon Apr 06 15:24:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 06 15:24:41 2015 +0000"
      },
      "message": "Merge \"[ActivityManager] Examine bad process before clean up application record\""
    },
    {
      "commit": "baedbfbbb1181829bcffb1be3732b6f26a315bd8",
      "tree": "ed2d0cacae81375338fe2763cbd15a4d479352b3",
      "parents": [
        "1d359daa607042417d095aaa83b78befc1b5f8a3",
        "4c5c6f43dd81031c2501e35b355fad5ebbf0ab87"
      ],
      "author": {
        "name": "Olawale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Mon Apr 06 15:23:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 06 15:23:30 2015 +0000"
      },
      "message": "Merge \"[ProcessStas] fix index out of bounds when add duration.\""
    },
    {
      "commit": "4b647f4c4ddac95cb8a907590843d3a95cd3c6ae",
      "tree": "e234d8daff2e9a3e852f7a1e90fe164dbd7dcbe3",
      "parents": [
        "02c4bbb9648da99947da57b1605020340a334b5f"
      ],
      "author": {
        "name": "Maunik Shah",
        "email": "mshah@codeaurora.org",
        "time": "Mon Mar 30 11:36:42 2015 +0530"
      },
      "committer": {
        "name": "Maunik Shah",
        "email": "mshah@codeaurora.org",
        "time": "Sat Apr 04 21:48:24 2015 +0530"
      },
      "message": "Fix memory leak in Connectivity Service when phone app crashes\n\nUpon crash of com.android.phone process, NetworkFactoryInfo is\nnot getting removed from HashMap and will get accumulated on\nevery start of the process.\n\nChange-Id: Iafde28daddfc82728c03208522682b1efc85a121\n"
    },
    {
      "commit": "1d359daa607042417d095aaa83b78befc1b5f8a3",
      "tree": "07886f36a375cbb42eb090bad3d3b824463065c0",
      "parents": [
        "f8cb672f121495e4f80b96a14140180f71e770fe",
        "950ee77fc729526f91646f44616e1e62d9eef076"
      ],
      "author": {
        "name": "Olawale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Sat Apr 04 16:12:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 04 16:12:40 2015 +0000"
      },
      "message": "Merge \"Remove the window whose client process has died or become zombie\""
    },
    {
      "commit": "f8cb672f121495e4f80b96a14140180f71e770fe",
      "tree": "c54c96078efe4914a9ff8617ebf7a0edec8b8cdc",
      "parents": [
        "efcbaec14135c42f81e2a8f645584cf7cf542a02",
        "605cca1a985be74c00582853ee2c84b086cfade8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 04 04:23:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 04 04:23:12 2015 +0000"
      },
      "message": "Merge \"Frameworks/base: Pass variant and feature-set to runtime\""
    },
    {
      "commit": "605cca1a985be74c00582853ee2c84b086cfade8",
      "tree": "f4a79d6720dc6f985d52d09577643603a044c2b2",
      "parents": [
        "64b0062a373102f83837faade20b469685758139"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 23:12:56 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 16:08:20 2015 -0700"
      },
      "message": "Frameworks/base: Pass variant and feature-set to runtime\n\nThis is required so we pick up the settings correctly when compiling\nthe boot image on device, or compile any dex files through a\nDexClassLoader.\n\nBug: 20055104\nChange-Id: Ia3ab2e48855060894b36f7fd360fe17b978e45a6\n"
    },
    {
      "commit": "efcbaec14135c42f81e2a8f645584cf7cf542a02",
      "tree": "47038fdc39ec8491b35a3ad455e456e92775bf02",
      "parents": [
        "64b0062a373102f83837faade20b469685758139",
        "b12f2410c7bdbf90bd8a77b897846ee2763e3037"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 03 20:16:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 20:16:24 2015 +0000"
      },
      "message": "Merge \"Only Windows doesn\u0027t have %zd.\""
    },
    {
      "commit": "b12f2410c7bdbf90bd8a77b897846ee2763e3037",
      "tree": "47038fdc39ec8491b35a3ad455e456e92775bf02",
      "parents": [
        "64b0062a373102f83837faade20b469685758139"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 03 12:56:45 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 03 12:56:45 2015 -0700"
      },
      "message": "Only Windows doesn\u0027t have %zd.\n\nChange-Id: I0e4b0fdc61641c5ecb724fd096bd2315dcf8ed4a\n"
    },
    {
      "commit": "64b0062a373102f83837faade20b469685758139",
      "tree": "90b448587e9cab27a7fa0e6976566a4b4ad3cfec",
      "parents": [
        "08963653fc9434d2f50d3c8e64c757138efd102e",
        "6def5afcbc835d101aff6b070e22526320b7e83e"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Apr 03 19:47:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 19:47:17 2015 +0000"
      },
      "message": "Merge \"Load fewer classes when AndroidKeyStore provider is installed.\""
    },
    {
      "commit": "6def5afcbc835d101aff6b070e22526320b7e83e",
      "tree": "90b448587e9cab27a7fa0e6976566a4b4ad3cfec",
      "parents": [
        "08963653fc9434d2f50d3c8e64c757138efd102e"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Apr 03 12:32:39 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Apr 03 12:45:16 2015 -0700"
      },
      "message": "Load fewer classes when AndroidKeyStore provider is installed.\n\nThis avoids loading all AndroidKeyStore crypto SPI classes when the\nAndroidKeyStore provider is instantiated and installed. This provider\nis installed early on during the initialization of each app. Most apps\ndon\u0027t need these classes loaded.\n\nBug: 18088752\nChange-Id: Ib43c9dd6a7d434b128916e0f9c8652ba61df0d47\n"
    },
    {
      "commit": "08963653fc9434d2f50d3c8e64c757138efd102e",
      "tree": "5c5bef34280d37ae251656aba3a7c90f1e45ea3a",
      "parents": [
        "377885e1e6a4efc727060cca241fea29114315d5",
        "b4834ae3fa09e8013f7ab743a12def063ae999e3"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Apr 03 19:13:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 19:13:49 2015 +0000"
      },
      "message": "Merge \"Rename KeymasterException to KeyStoreException.\""
    },
    {
      "commit": "377885e1e6a4efc727060cca241fea29114315d5",
      "tree": "0d3c764d73c5bcc430d52431281103d8cc4449b8",
      "parents": [
        "b292e49b32fa321e59bf88c68e4c4d8c139645dd",
        "ce7ad24b6337135fd7b6ed169bb5c517d044f041"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Fri Apr 03 19:13:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 19:13:37 2015 +0000"
      },
      "message": "Merge \"Mark all test keys as no auth required\""
    },
    {
      "commit": "b292e49b32fa321e59bf88c68e4c4d8c139645dd",
      "tree": "7f8963fc0f861a3b95756582126d1d8234c42878",
      "parents": [
        "6aed9ec1b85ff1a8a39c4ec091a017f79413ead0",
        "a0f656f9bd8db0c08540233846a000b2fe582814"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Apr 03 19:13:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 19:13:18 2015 +0000"
      },
      "message": "Merge \"Obtain SPI without using Reflection.\""
    },
    {
      "commit": "a0f656f9bd8db0c08540233846a000b2fe582814",
      "tree": "7f8963fc0f861a3b95756582126d1d8234c42878",
      "parents": [
        "6aed9ec1b85ff1a8a39c4ec091a017f79413ead0"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Apr 03 09:44:39 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Apr 03 12:09:56 2015 -0700"
      },
      "message": "Obtain SPI without using Reflection.\n\nBug: 18088752\nChange-Id: I76d42e17f5f28af6fd9a96ee812d286f6c6a085b\n"
    },
    {
      "commit": "6aed9ec1b85ff1a8a39c4ec091a017f79413ead0",
      "tree": "e4fd495ece3892506dcb8da20a6f7087e51a103c",
      "parents": [
        "3d8b7f4d50c2f7c64ec4e5874fd95cf837ddc12e",
        "d9b6328509f7c4fe63ca0a46b8c19bc956f62d8a"
      ],
      "author": {
        "name": "Miao Wang",
        "email": "miaowang@google.com",
        "time": "Fri Apr 03 17:38:13 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 17:38:14 2015 +0000"
      },
      "message": "Merge \"[RenderScript] update exception reporting for copyTo() after autoPadding added.\""
    },
    {
      "commit": "d9b6328509f7c4fe63ca0a46b8c19bc956f62d8a",
      "tree": "d1a1e5c9fe8dad7920023f306531b2b966b9d85f",
      "parents": [
        "e4d4e22f26bfd36a553fb24232d2fd4ddf4fc907"
      ],
      "author": {
        "name": "Miao Wang",
        "email": "miaowang@google.com",
        "time": "Fri Apr 03 09:15:39 2015 -0700"
      },
      "committer": {
        "name": "Miao Wang",
        "email": "miaowang@google.com",
        "time": "Fri Apr 03 09:15:39 2015 -0700"
      },
      "message": "[RenderScript] update exception reporting for copyTo() after\nautoPadding added.\n\n - This CL fixes recent CTS failures about copyPadded after\n   lmp-mr1-dev changes pushed to aosp.\n\nChange-Id: Ica1f4fd934cd83ca4357ea7e7c82dcc7f844b689\n"
    },
    {
      "commit": "3d8b7f4d50c2f7c64ec4e5874fd95cf837ddc12e",
      "tree": "768876b59d0b621d1123b22f7f0588b4f2204d38",
      "parents": [
        "3cc9e5d68d89ea1ffa79ad6981585bc46362c4a7",
        "b94c1657eb0140f7b91f5372a9f76de5a3d87e36"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Thu Apr 02 23:11:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 23:11:11 2015 +0000"
      },
      "message": "Merge \"Support for storing OAT files in app directory\""
    },
    {
      "commit": "cd005ebf76d9bde584987be4690b128f687bc46d",
      "tree": "e4e98891ee921f94e7e4cc46e27c10d6240bf0b4",
      "parents": [
        "64c8a07345cb7cb01b3e98442b52c51d473fbf2d"
      ],
      "author": {
        "name": "younghwan1.kim",
        "email": "younghwan1.kim@lge.com",
        "time": "Thu Apr 02 19:15:11 2015 +0900"
      },
      "committer": {
        "name": "younghwan1.kim",
        "email": "younghwan1.kim@lge.com",
        "time": "Fri Apr 03 08:08:30 2015 +0900"
      },
      "message": "[ActivityManager] Do not add service to reschedule after removing users.\n\nSome service which has persistent attribute has restarted again and\nagain after removing users.\nbut it dies right after launching because it is not valid in owner mode.\n\nThis patch will check service\u0027s userId whether userId is alive or not.\nAnd then if userId is not alive, then service will bring down.\n\nChange-Id: Id99bf3c651b88e377f1fd6bec8aaad81318d7579\n"
    },
    {
      "commit": "b4834ae3fa09e8013f7ab743a12def063ae999e3",
      "tree": "d9985a4927997a3fd00f25132a4f5579aec39272",
      "parents": [
        "3cc9e5d68d89ea1ffa79ad6981585bc46362c4a7"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Thu Apr 02 15:53:46 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Thu Apr 02 15:57:27 2015 -0700"
      },
      "message": "Rename KeymasterException to KeyStoreException.\n\nThe code in question talks to KeyStore which returns error codes\nwhich are a mix of keystore and keymaster error codes. To better\nmatch the layering of KeyStore on top of keystore and keymaster,\nthis CL renames KeymasterException into KeyStoreException. It also\nadds human-readable error messages to exceptions raised by keystore\nrather than keymaster (e.g., key not found).\n\nBug: 18088752\nChange-Id: I4cd1235e16518c9f2e8c5557a457774c6e687b88\n"
    },
    {
      "commit": "ce7ad24b6337135fd7b6ed169bb5c517d044f041",
      "tree": "64ee72baf4989f176e6536d760e3a485ed4663ab",
      "parents": [
        "63dde9c88d780fc16a4f2471e405b4f5dc35823c"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Thu Apr 02 14:41:37 2015 -0700"
      },
      "committer": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Thu Apr 02 14:41:37 2015 -0700"
      },
      "message": "Mark all test keys as no auth required\n\nNow that auth token checks are in keystore keys without any auth tags\nare invalid.\n\nAlso adds a test to check that a key with auth required fails when none\nis present.\n\nChange-Id: I0d5d44d70a849978e9b2e809675b8343c6650ff2\n"
    },
    {
      "commit": "37192dcde3cbba330a9a107578e7b7642e382348",
      "tree": "1a8470b017fef4cd48ce91a4a0a610f10b894daf",
      "parents": [
        "437ac8f8445b078041171eff56ce7ffbd1cf6766"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Apr 02 14:10:53 2015 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Apr 02 14:10:53 2015 -0700"
      },
      "message": "Fix minor blur doc bug\n\nChange-Id: I4c129d9d3c93d8a36c887e5c594b4402aca5745e\n"
    },
    {
      "commit": "3cc9e5d68d89ea1ffa79ad6981585bc46362c4a7",
      "tree": "21e20b6daf4d13db0b0236d1971cc063870dc899",
      "parents": [
        "9635a56acfe3318d9ae5020727090a2dc8c118d0",
        "a80eee052dd729c2898829fab42a5584d6f5eaf0"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Thu Apr 02 21:06:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 21:06:28 2015 +0000"
      },
      "message": "Merge \"Improve the AndroidKeyStore-backed HMAC state machine.\""
    },
    {
      "commit": "9635a56acfe3318d9ae5020727090a2dc8c118d0",
      "tree": "bd200589d657b9a9645860a871e74e8646077299",
      "parents": [
        "d2eec1a7865dd552114b330fce1a1472a9e08806",
        "855fa31eb5ff68d131f3e496920594d875841cb0"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Thu Apr 02 21:03:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 21:03:11 2015 +0000"
      },
      "message": "Merge \"Expose new key use constraints in KeyPairGeneratorSpec.\""
    },
    {
      "commit": "d2eec1a7865dd552114b330fce1a1472a9e08806",
      "tree": "5edea95c7f1c0329f359050f849b0d72f856b47c",
      "parents": [
        "e4d4e22f26bfd36a553fb24232d2fd4ddf4fc907",
        "0b188927f45f0794560d5c29123abbd75ddc0851"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Thu Apr 02 20:24:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 20:24:48 2015 +0000"
      },
      "message": "Merge \"Add exception types for AndroidKeyStore key validity issues.\""
    },
    {
      "commit": "855fa31eb5ff68d131f3e496920594d875841cb0",
      "tree": "0bacc9d483981cbb9e2e3bd15dc7cde588f8ccae",
      "parents": [
        "64c8a07345cb7cb01b3e98442b52c51d473fbf2d"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Thu Apr 02 09:58:08 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Thu Apr 02 10:04:33 2015 -0700"
      },
      "message": "Expose new key use constraints in KeyPairGeneratorSpec.\n\nThe constraints are currently ignored.\n\nBug: 18088752\nChange-Id: Iabd2018200afb2bf8ac1748d1def47af74bfb9d3\n"
    },
    {
      "commit": "e4d4e22f26bfd36a553fb24232d2fd4ddf4fc907",
      "tree": "ed30e32409e194723d6ccd10d9ca2db0f2959569",
      "parents": [
        "64c8a07345cb7cb01b3e98442b52c51d473fbf2d",
        "558e849a7772cda924ac0617708c439ed05c17ed"
      ],
      "author": {
        "name": "Olawale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Thu Apr 02 16:39:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 16:39:18 2015 +0000"
      },
      "message": "Merge \"[ActivityManager] Avoid improper resume top activity.\""
    },
    {
      "commit": "558e849a7772cda924ac0617708c439ed05c17ed",
      "tree": "6bb7722fe76c3e005edd1e35a63367570c9fce2b",
      "parents": [
        "562c6a71f98e921fe8def18991b2a26f153c683d"
      ],
      "author": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Thu Apr 02 16:43:13 2015 +0800"
      },
      "committer": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Thu Apr 02 16:43:13 2015 +0800"
      },
      "message": "[ActivityManager] Avoid improper resume top activity.\n\nWhen there is a process died, only resume top if\nit contains visible activity.\n\nThis can fix case 1 in\nhttps://android-review.googlesource.com/#/c/120901/\n\nChange-Id: I45584e76f9e863980d04bbb593d7d26a8900acd0\n"
    },
    {
      "commit": "950ee77fc729526f91646f44616e1e62d9eef076",
      "tree": "0e84053020f7a277cc46ae1e94b896aee9313176",
      "parents": [
        "71f83672f297b116988defbe989869e5744cda5e"
      ],
      "author": {
        "name": "tiger_huang",
        "email": "tiger_huang@htc.com",
        "time": "Fri Jul 11 18:41:48 2014 +0800"
      },
      "committer": {
        "name": "Tiger Huang",
        "email": "tiger_huang@htc.com",
        "time": "Thu Apr 02 06:42:18 2015 +0000"
      },
      "message": "Remove the window whose client process has died or become zombie\n\nWindow Manager Service would fail to report window-resized to the\nprocess which has become zombie. This would cause the window to\nfreeze screen continuously. In this case, we assume the process has\ndied and remove its window to recycle resources and to prevent it from\nfreezing the screen.\n\nChange-Id: Ic7384731bf9a1fa8b9602d4f1dbee7492db126c5\n"
    },
    {
      "commit": "64c8a07345cb7cb01b3e98442b52c51d473fbf2d",
      "tree": "93555900d6b88355b3a65afe7f84e86d4785b75d",
      "parents": [
        "97467d82a31964e36cb6bc32ac4cf00e884c190e",
        "68d26be719072c029b37ae15f17b8137e8429e38"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 01 23:34:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 23:34:25 2015 +0000"
      },
      "message": "Merge \"Early return in RemoteViewsAdapter is too late\""
    },
    {
      "commit": "0b188927f45f0794560d5c29123abbd75ddc0851",
      "tree": "de3e96487bf8a77f6f0b54b0596112222be62a4b",
      "parents": [
        "97467d82a31964e36cb6bc32ac4cf00e884c190e"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Apr 01 16:22:00 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Apr 01 16:22:00 2015 -0700"
      },
      "message": "Add exception types for AndroidKeyStore key validity issues.\n\nBug: 18088752\nChange-Id: I7494cb6a793e2b57bb849a4253bba2803778c161\n"
    },
    {
      "commit": "a80eee052dd729c2898829fab42a5584d6f5eaf0",
      "tree": "f41923cf80015a3ed39b7c3204fb6386776e8e17",
      "parents": [
        "97467d82a31964e36cb6bc32ac4cf00e884c190e"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Apr 01 16:03:03 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Apr 01 16:03:03 2015 -0700"
      },
      "message": "Improve the AndroidKeyStore-backed HMAC state machine.\n\nThis defers the start of a new KeyStore operation after Mac.doFinal\nuntil the next Mac.update or .doFinal. Previously, the a new KeyStore\noperation was started immediately, at the end of doFinal.\n\nBug: 18088752\nChange-Id: I2d594067ef261f519631d09f7a6087b715801656\n"
    },
    {
      "commit": "97467d82a31964e36cb6bc32ac4cf00e884c190e",
      "tree": "b468a4299352365adf8d91c71f7a1597ba3cafc0",
      "parents": [
        "04047af628338aa7859ae1f24700e1e4e3ae63e7",
        "3f24a1d94a42762c245a32272c797250a804cfc3"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Apr 01 20:15:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 20:15:53 2015 +0000"
      },
      "message": "Merge \"Cleanse HTTP, HTTPS, and FTP URLs in Uri.toSafeString.\""
    },
    {
      "commit": "3f24a1d94a42762c245a32272c797250a804cfc3",
      "tree": "7ece6f888ca034f225ef54513edc13c3f7200935",
      "parents": [
        "c461452eb78867032092b2fce14c2fcb3e7ab34e"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Apr 01 10:59:29 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Apr 01 13:09:22 2015 -0700"
      },
      "message": "Cleanse HTTP, HTTPS, and FTP URLs in Uri.toSafeString.\n\nThis makes the hidden API android.net.Uri.toSafeString omit most parts\nof HTTP, HTTPS, and FTP URLs to avoid leaking anything unsafe. Only\nthe host and port are retained for these URLs.\n\nBug: 19215516\nChange-Id: I2e9e33d9afaa9de5dd07a40532d56f0a2179f62a\n"
    },
    {
      "commit": "04047af628338aa7859ae1f24700e1e4e3ae63e7",
      "tree": "05244bf56cdac2e0d22af4b1af3bb41891086e8c",
      "parents": [
        "e816f917e0e1c21c8019436744284630f2408dc0",
        "5045b7189cf1bae19c25efa7fb0c5f33ea1422ce"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Apr 01 20:01:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 20:01:00 2015 +0000"
      },
      "message": "Merge \"Use Keymaster-friendly validity dates.\""
    },
    {
      "commit": "e816f917e0e1c21c8019436744284630f2408dc0",
      "tree": "1a4784aac71d0a5657996d457072c8b897633b1a",
      "parents": [
        "c461452eb78867032092b2fce14c2fcb3e7ab34e",
        "e324ba0e7cc1b831f86c5d2f0578c9b881a3130b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 01 19:52:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 19:52:27 2015 +0000"
      },
      "message": "Merge \"Frameworks/base: Use system property for cache prune counter\""
    },
    {
      "commit": "e324ba0e7cc1b831f86c5d2f0578c9b881a3130b",
      "tree": "86242f5a1823b2a05a16a0daf464e41fcb0fd3fc",
      "parents": [
        "19e79e12d82fa473f2f7beec337de11a0c3b3a03"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 31 16:15:17 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 01 19:50:58 2015 +0000"
      },
      "message": "Frameworks/base: Use system property for cache prune counter\n\nExpose ART\u0027s -Xzygote-max-boot-retry through a new system property\ndalvik.vm.zygote.max-boot-retry.\n\nBug: 19983101\nChange-Id: Ib88f807e0082d71292c14c7af38e02cca5a5602c\n"
    },
    {
      "commit": "5045b7189cf1bae19c25efa7fb0c5f33ea1422ce",
      "tree": "9f01db40acd74de7131862ac4dfc540185bd9be4",
      "parents": [
        "c461452eb78867032092b2fce14c2fcb3e7ab34e"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 20:19:54 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Apr 01 10:44:30 2015 -0700"
      },
      "message": "Use Keymaster-friendly validity dates.\n\nKeymaster HAL currently requires that key validity start and end dates\nalways be specified. The framework API does not. This CL expresses\nthe framework API\u0027s \"not specified\" instants to Keymaster as instants\nin distant past or future.\n\nBug: 18088752\nChange-Id: Ia9d66d5e57bfca30628cdef6e0925a2781a3acfb\n"
    },
    {
      "commit": "c461452eb78867032092b2fce14c2fcb3e7ab34e",
      "tree": "5b338ecfe89e6901b712d9a40bb359e99dadd440",
      "parents": [
        "c6cc9d820d007a6b11df2bb3274d40743e1f1d87",
        "c8e557470fc94733c9340c4c67ee69c225bbaa70"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Apr 01 17:34:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 17:34:37 2015 +0000"
      },
      "message": "Merge \"Hook in user authenticators and their exceptions.\""
    },
    {
      "commit": "c6cc9d820d007a6b11df2bb3274d40743e1f1d87",
      "tree": "f0b8ffa379f6cba4d862b178c76d8045d89a4dff",
      "parents": [
        "086071e7306a73c9b3c5a56277884b4e19543b3e",
        "52886ca77d4d93f6faf5d2a6836625a421e32403"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Apr 01 17:34:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 17:34:08 2015 +0000"
      },
      "message": "Merge \"A way to obtain KeyStore operation handle from crypto primitives.\""
    },
    {
      "commit": "086071e7306a73c9b3c5a56277884b4e19543b3e",
      "tree": "58fca59d0883e017c503d4d7bb1a143dc20de9c6",
      "parents": [
        "c90a44184f775863f4cb7698ed7f92d7b2d83e60",
        "db46d6b0744d286efc6ad6df600e15285868c2ab"
      ],
      "author": {
        "name": "Olawale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Wed Apr 01 17:32:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 17:32:37 2015 +0000"
      },
      "message": "Merge \"[ActivityManager] Reduce report wrong anr activity\""
    },
    {
      "commit": "c90a44184f775863f4cb7698ed7f92d7b2d83e60",
      "tree": "9d46bbd5ed622dfb8c4f81daace7d996ce801a49",
      "parents": [
        "5218065dec34abdb15ee2fb5fffa86207b6b57a8",
        "b62286e60c079936a5f1e5b0befd32d2d9bf1b3f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 01 16:53:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 16:53:53 2015 +0000"
      },
      "message": "Merge \"idmap: scan missing include for sys/stat.h\""
    },
    {
      "commit": "b62286e60c079936a5f1e5b0befd32d2d9bf1b3f",
      "tree": "9d46bbd5ed622dfb8c4f81daace7d996ce801a49",
      "parents": [
        "5218065dec34abdb15ee2fb5fffa86207b6b57a8"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 01 07:48:34 2015 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 01 16:52:14 2015 +0000"
      },
      "message": "idmap: scan missing include for sys/stat.h\n\nscan.cpp gets sys/stat.h inherited from\nprivate/android_filesystem_config.h it should\nnot rely on this in the future. The intent is\nto move fs_config function into libcutils and\nthus deprecate any need for sys/stat.h in this\ninclude file.\n\nBug: 19908228\nChange-Id: If547e86513b06c536972138ae571c3d9c714ffe9\n"
    },
    {
      "commit": "5218065dec34abdb15ee2fb5fffa86207b6b57a8",
      "tree": "99b4a5b7f71a08371daf06a318287a56c459042e",
      "parents": [
        "6091dcbb80d3b1b885b6e02386ccb3139e5e43ae",
        "fc737fb76cc889d0c19bd8bf74d2b5f1fc4fbe6e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 01 16:28:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 16:28:05 2015 +0000"
      },
      "message": "Merge \"app_main missing include for sys/stat.h\""
    },
    {
      "commit": "4c5c6f43dd81031c2501e35b355fad5ebbf0ab87",
      "tree": "ba60d7e5569e1cd57b374f904f4a7f119c2615d1",
      "parents": [
        "039013c28ef634ab1b630292cc38fb57f206dffd"
      ],
      "author": {
        "name": "Ronnie Leng",
        "email": "ronnie.leng@gmail.com",
        "time": "Wed Mar 25 10:57:24 2015 -0500"
      },
      "committer": {
        "name": "Ronnie Leng",
        "email": "ronnie.leng@gmail.com",
        "time": "Wed Apr 01 11:23:45 2015 -0500"
      },
      "message": "[ProcessStas] fix index out of bounds when add duration.\n\nRoot Cause:\nThere is a defect in current ProcessStats design\nand following is the scenario:\n1. Process A is started due to activity with\nname of A\n2. Process A creates ProessState with application\nuid of A\n3. Process B is started due to isolated service\ndeclared in application A with name of A\n4. Process B uses ProcessState of Process A as\nit uses same application uid of A\n5. Process B is finished and it leads to\nProcessState marked as dead\n6. Process A still keeps using the invalid\nProcessState in dead state\n7. IndexOutOfBoundsException is triggered when\nsystem tries to update process state of Process A\n\nResolution:\nuse process uid to replace application uid for\ngetProcessStatLocked.\n\nChange-Id: I881ad9fc492c9e1a892c9e957180cebcfef8352d\nSigned-off-by: Ronnie Leng \u003cronnie.leng@gmail.com\u003e\n"
    },
    {
      "commit": "fc737fb76cc889d0c19bd8bf74d2b5f1fc4fbe6e",
      "tree": "da0b535aa2f0a15b68a6272fc3bcfb626715fa00",
      "parents": [
        "562c6a71f98e921fe8def18991b2a26f153c683d"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 01 07:36:23 2015 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 01 16:02:32 2015 +0000"
      },
      "message": "app_main missing include for sys/stat.h\n\napp_main.c gets sys/stat.h inherited from\nprivate/android_filesystem_config.h it should\nnot rely on this in the future. The intent is\nto move fs_config function into libcutils and\nthus deprecate any need for sys/stat.h in this\ninclude file.\n\nBug: 19908228\nChange-Id: I477b825e582742113f849aaa1df50c41e496b6f6\n"
    },
    {
      "commit": "6091dcbb80d3b1b885b6e02386ccb3139e5e43ae",
      "tree": "b07aa6fbc84944d91c89d6cbf1eb2afc41b44656",
      "parents": [
        "562c6a71f98e921fe8def18991b2a26f153c683d",
        "57307b21cbdb261eeca081051ed61540dcf905f8"
      ],
      "author": {
        "name": "Olawale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Wed Apr 01 14:58:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 14:58:21 2015 +0000"
      },
      "message": "Merge \"[ActivityManager] Improve multi-thread access the same provider\""
    },
    {
      "commit": "db46d6b0744d286efc6ad6df600e15285868c2ab",
      "tree": "696f8876700ae4b51e4aeb3b83d8e7caf47ac8ea",
      "parents": [
        "562c6a71f98e921fe8def18991b2a26f153c683d"
      ],
      "author": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Wed Apr 01 18:58:07 2015 +0800"
      },
      "committer": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Wed Apr 01 18:58:07 2015 +0800"
      },
      "message": "[ActivityManager] Reduce report wrong anr activity\n\nSymptom:\nReport ANR on wrong activity.\n\nReproduce steps:\n (All launchMode, taskAffinity are default and\n  without additional intent flag)\n Case 1:\n  1.Launch activity A from launcher.\n  2.Activity A starts B activity.\n  3.Press home key.\n  4.Launch activity A from launcher (B is top).\n  5.Press back key twice to finish B and A,\n    A sleep 10s in onResume.\n  6.ANR will report on launcher.\n\n Case 2:\n  1.Launch activity A from launcher.\n  2.Press home key.\n  3.Kill process of A.\n  4.Launch activity A from launcher.\n  5.A sleep 10s in onResume, press back key immediately.\n  6.ANR will report on launcher.\n\nPossible root cause:\nFocused activity will not be updated every time when activity\nresumed. (the condition to call setFocusedActivityLocked)\n\nCase 1:\nLauncher was stopped and not waitingVisible due to launcher\nis not the previous one, then getWaitingHistoryRecordLocked\nhas no chance to correct the real ANR activity.\n\nCase 2:\nDue to process of next activity is died, bring existed\ntask will not set mResumedActivity (it will be set when its\nprocess is started), so when assigning waitingVisible from\nprocessStoppingActivitiesLocked, the return value of\nallResumedActivitiesVisible will be true even there is no\nmResumedActivity. That results set waitingVisible to false\nto previous activity (e.g. launcher), then also cannot\ncorrect ANR target as case 1.\n\nChange-Id: I0b24f46a8fab266382ebc6e2ed84ebeca9358768\n"
    },
    {
      "commit": "57307b21cbdb261eeca081051ed61540dcf905f8",
      "tree": "b07aa6fbc84944d91c89d6cbf1eb2afc41b44656",
      "parents": [
        "562c6a71f98e921fe8def18991b2a26f153c683d"
      ],
      "author": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Wed Apr 01 15:06:18 2015 +0800"
      },
      "committer": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Wed Apr 01 15:06:18 2015 +0800"
      },
      "message": "[ActivityManager] Improve multi-thread access the same provider\n\nApplication may use many threads to load data from provider.\nIf the target provider needs to start process, each access\nwill occupy one binder thread of system server until the\nprovider process started and published.\n\nSometimes application uses more than 16 threads to access\nthe same provider, and the provider process needs a little\nlong time to start, then all binder threads of system server\nare waiting. But when the provider is ready, it is unable to\npublish to notify those waiting threads because no availabe\nbinder thread to use. And device will become almost hang.\n\nImprovement:\nIf there is already a thread acquiring provider, let other threads\n(which try to acquire the same provider) wait the result of the\nfirst one. That reduces IPC to save binder thread of system server.\n\nRemove calling removeContentProvider in installProvider because\nwe have ensured only get one provider holder for the same provider,\nthe original race that gets a new useless holder will not happen.\n\nChange-Id: I521f2603db8ced56912f5dc54342a70451e68381\n"
    },
    {
      "commit": "52886ca77d4d93f6faf5d2a6836625a421e32403",
      "tree": "375eebcf3a0800e578df1305f67a8fdcf2dea664",
      "parents": [
        "b7a34e4955beae2cee81a27e7c240316078bbf2f"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 20:55:10 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 21:19:26 2015 -0700"
      },
      "message": "A way to obtain KeyStore operation handle from crypto primitives.\n\nThis adds AndroidKeyStore.getKeyStoreOperationHandle method which can\nbe used to obtain the KeyStore operation handle corresponding to the\nprovided JCA cryto primitive (provided it\u0027s backed by\nAndroidKeyStore).\n\nBug: 18088752\nChange-Id: Iaa3b6f9b2281b2ec2de8fd5946d353dc7fdb3d2d\n"
    },
    {
      "commit": "c8e557470fc94733c9340c4c67ee69c225bbaa70",
      "tree": "42658c56aa30ae20ec8a828745008f74587eb991",
      "parents": [
        "b7a34e4955beae2cee81a27e7c240316078bbf2f"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 19:50:13 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 19:50:13 2015 -0700"
      },
      "message": "Hook in user authenticators and their exceptions.\n\nBug: 18088752\nChange-Id: I2835dbe51d09587a3081597c6aaf536aa1427e24\n"
    },
    {
      "commit": "562c6a71f98e921fe8def18991b2a26f153c683d",
      "tree": "96d5a093f63eab499ea973cd42980761f2aeb3ac",
      "parents": [
        "b7a34e4955beae2cee81a27e7c240316078bbf2f",
        "c0eb55ccc73ad295c8dd227dcd80d2988ffa4873"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Apr 01 00:47:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 00:47:01 2015 +0000"
      },
      "message": "Merge \"UNSUPPORTED_TAG_LENGTH -\u003e UNSUPPORTED_MAC_LENGTH\""
    },
    {
      "commit": "c0eb55ccc73ad295c8dd227dcd80d2988ffa4873",
      "tree": "96d5a093f63eab499ea973cd42980761f2aeb3ac",
      "parents": [
        "b7a34e4955beae2cee81a27e7c240316078bbf2f"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 17:16:31 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 17:16:31 2015 -0700"
      },
      "message": "UNSUPPORTED_TAG_LENGTH -\u003e UNSUPPORTED_MAC_LENGTH\n\nThis is to follow naming from keymaster_defs.h\n\nBug: 18088752\nChange-Id: If2bc91dde54f1cefcd4325d1f62d0e0b77fc5d59\n"
    },
    {
      "commit": "b7a34e4955beae2cee81a27e7c240316078bbf2f",
      "tree": "cd435090983f33354eb421c2f54c6ee81d682b75",
      "parents": [
        "19e79e12d82fa473f2f7beec337de11a0c3b3a03",
        "cc21bb3a56915842b545a577d3481047005b1764"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 23:52:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 23:52:46 2015 +0000"
      },
      "message": "Merge \"Add license banner to recently added AndroidKeyStore files.\""
    },
    {
      "commit": "cc21bb3a56915842b545a577d3481047005b1764",
      "tree": "cd435090983f33354eb421c2f54c6ee81d682b75",
      "parents": [
        "19e79e12d82fa473f2f7beec337de11a0c3b3a03"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 16:50:37 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 16:50:37 2015 -0700"
      },
      "message": "Add license banner to recently added AndroidKeyStore files.\n\nBug: 18088752\nChange-Id: I027f9530a02cca081aae8eb94833d2fdcb678e9a\n"
    },
    {
      "commit": "19e79e12d82fa473f2f7beec337de11a0c3b3a03",
      "tree": "b343591046b85799cb422221c01752e9c10b855b",
      "parents": [
        "d720dedb03dfc937361e7e722171f8a1b9d74cf1",
        "acc835f3857c1a1bf2618fabb7307794aba5d76a"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 23:32:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 23:32:41 2015 +0000"
      },
      "message": "Merge \"Add SecretKeyFactory backed by AndroidKeyStore.\""
    },
    {
      "commit": "acc835f3857c1a1bf2618fabb7307794aba5d76a",
      "tree": "0d66974ec0f4228ca35039a34d7f19312998af48",
      "parents": [
        "5960c3d56614830439718e93968e0c7d2727262f"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 15:26:56 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 15:29:48 2015 -0700"
      },
      "message": "Add SecretKeyFactory backed by AndroidKeyStore.\n\nThis factory provides a way to obtain information about a SecretKey\nbacked by AndroidKeyStore. The information is provided in a form of an\ninstance of KeyStoreKeySpec class.\n\nEXAMPLE\n\nSecretKeyFactory factory \u003d SecretKeyFactory.getInstance(\n        key.getAlgorithm(), \"AndroidKeyStore\");\nKeyStoreKeySpec keySpec \u003d\n    factory.getKeySpec(key, KeyStoreKeySpec.class);\n\nBug: 18088752\nChange-Id: I26c9dd544f80230fe7039501eeb471eaf875452b\n"
    },
    {
      "commit": "d720dedb03dfc937361e7e722171f8a1b9d74cf1",
      "tree": "30ac5de1b7ed4f01d2f9085a24a261cb6b5eb700",
      "parents": [
        "63dde9c88d780fc16a4f2471e405b4f5dc35823c",
        "293e3586cf41f44088bde37990b8120d88ac35ed"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 31 22:22:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 22:24:15 2015 +0000"
      },
      "message": "Merge \"Clear the previous states before setting the new app visibility\""
    },
    {
      "commit": "63dde9c88d780fc16a4f2471e405b4f5dc35823c",
      "tree": "580e60174a5b2eaef4677e1b383ba7c19f5b46d8",
      "parents": [
        "5960c3d56614830439718e93968e0c7d2727262f",
        "4c93c8c93a66a8932d84a52bd922c3b7ad1565bb"
      ],
      "author": {
        "name": "Yang Ni",
        "email": "yangni@google.com",
        "time": "Tue Mar 31 21:32:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 21:32:24 2015 +0000"
      },
      "message": "Merge \"Fix value size data type in closure creation.\""
    },
    {
      "commit": "5960c3d56614830439718e93968e0c7d2727262f",
      "tree": "b5eb757a0cf37c34c6db10004d666406961c4075",
      "parents": [
        "5491ea9e5bc6ce8eb0dc2e91e46608f6aa3e7dfc",
        "b406f242911fa4d910a4cf915a61e39aeace1e1b"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 21:00:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 21:00:17 2015 +0000"
      },
      "message": "Merge \"Add unauthenticated AES ciphers backed by AndroidKeyStore.\""
    },
    {
      "commit": "b406f242911fa4d910a4cf915a61e39aeace1e1b",
      "tree": "b5eb757a0cf37c34c6db10004d666406961c4075",
      "parents": [
        "5491ea9e5bc6ce8eb0dc2e91e46608f6aa3e7dfc"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 13:39:38 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Tue Mar 31 13:59:07 2015 -0700"
      },
      "message": "Add unauthenticated AES ciphers backed by AndroidKeyStore.\n\nThis adds the following AES transformations:\n* AES/ECB/NoPadding\n* AES/ECB/PKCS7Padding\n* AES/CBC/NoPadding\n* AES/CBC/PKCS7Padding\n* AES/CTR/NoPadding\n\nBug: 18088752\nChange-Id: I3e4702e59868f8f2225c31b1c159d20008b9999d\n"
    },
    {
      "commit": "5491ea9e5bc6ce8eb0dc2e91e46608f6aa3e7dfc",
      "tree": "54b947c002e264b51beec5ac43893cc0f931d0ca",
      "parents": [
        "d052a3d37beffff3735716340745ec7c83efc23d",
        "4cd8e50690aebcb65472c549ef97044303f383e7"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Tue Mar 31 17:49:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 17:49:16 2015 +0000"
      },
      "message": "Merge \"Include operation handle in OperationResult\""
    },
    {
      "commit": "d052a3d37beffff3735716340745ec7c83efc23d",
      "tree": "e8db259aab2ea251887a402322f47c8a7fb52715",
      "parents": [
        "25c5296b0d85979ad216195000b857dce8127ab1",
        "6793fc328ab4532202d86f64fe4fdbc3fb047bc4"
      ],
      "author": {
        "name": "Olawale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Tue Mar 31 16:09:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 16:09:16 2015 +0000"
      },
      "message": "Merge \"[ActivityManager] Fix index out of bounds when updating next pss time.\""
    },
    {
      "commit": "25c5296b0d85979ad216195000b857dce8127ab1",
      "tree": "26b388921b301fa76a4660f170af57d7c9b06113",
      "parents": [
        "02c4bbb9648da99947da57b1605020340a334b5f",
        "5a680f2e2738137f1566da57ac978b3ff33fb0da"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Mar 31 08:30:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 08:31:00 2015 +0000"
      },
      "message": "Merge \"An updater for all timezone data on a device\""
    },
    {
      "commit": "5064fddf81e477a90c81d72f7328aa5887c67511",
      "tree": "43d04bfa922e87756da75cf1e911588b2e8c7a9f",
      "parents": [
        "ee80414d0ddd6a27bbf86e0de47dd86bc335431d"
      ],
      "author": {
        "name": "louis_chang",
        "email": "louis_chang@htc.com",
        "time": "Tue Mar 31 15:18:21 2015 +0800"
      },
      "committer": {
        "name": "louis_chang",
        "email": "louis_chang@htc.com",
        "time": "Tue Mar 31 15:18:21 2015 +0800"
      },
      "message": "[ActivityManager] Examine bad process before clean up application\nrecord\n\nSymptom:\nUnable to launch activity\n\nRoot cause:\nThere are some cases that would start process while pid\nassigned or already running. So the previous application\nrecord will be clean up via handleAppDiedLocked(), but it\nwon\u0027t be removed from ActivityManager.mProcessNames since\nthe process is supposed to be restart later.\n\nHowever, if the process is started from a background\noperation and has named as a bad process, it silently fail\nthe launch. Then, the process won\u0027t ever be request to\nstart afterward. The process status is app.pid \u003e 0 and\napp.thread is null.\n\nThe application components are unable to launch since then.\n\nSolution:\nExamine bad process before clean up application record\n\nChange-Id: I53dc06e49254094abc06e460c8b8b33f36803601\n"
    },
    {
      "commit": "6793fc328ab4532202d86f64fe4fdbc3fb047bc4",
      "tree": "fd9ce1694dc8691706a43d1c25b473e6f88792bc",
      "parents": [
        "02c4bbb9648da99947da57b1605020340a334b5f"
      ],
      "author": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Tue Mar 31 11:54:14 2015 +0800"
      },
      "committer": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Tue Mar 31 11:54:14 2015 +0800"
      },
      "message": "[ActivityManager] Fix index out of bounds when updating next pss time.\n\nSymptom:\nSystem server crash.\n\nRoot Cause:\nThe value curProcState for array index is -1 if the process\nhas not attached yet.\n\nSolution:\nSkip computing for process which is not attached or curProcState\nis nonexistent state.\n\nChange-Id: I71aaf45bb78d73097ebe9dfebf76b72f2d243232\n"
    },
    {
      "commit": "02c4bbb9648da99947da57b1605020340a334b5f",
      "tree": "023e79cccc6ae21a0b033c6d4ec4950bb88a53c1",
      "parents": [
        "4af5bd7cdaccdba6001a384a81c258f542e74075",
        "e0352388238875ef7e7b31d914fc903b08ff0f6b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 31 03:20:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 03:20:09 2015 +0000"
      },
      "message": "Merge \"Frameworks/base: Support dex2oat threads system property\""
    },
    {
      "commit": "e0352388238875ef7e7b31d914fc903b08ff0f6b",
      "tree": "023e79cccc6ae21a0b033c6d4ec4950bb88a53c1",
      "parents": [
        "4af5bd7cdaccdba6001a384a81c258f542e74075"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 30 18:43:39 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 30 20:16:03 2015 -0700"
      },
      "message": "Frameworks/base: Support dex2oat threads system property\n\nCheck dalvik.vm.dex2oat-threads in AndroidRuntime and pass to ART\nwith \"-j\" as a compiler option, if found.\n\nCheck dalvik.vm.image-dex2oat-threads in AndroidRuntime and pass to\nART with \"-j\" as an image compiler option, if found.\n\nBug: 19992386\nChange-Id: I5e7806cf560607d31a1d6901dffb14bee538c9cc\n"
    },
    {
      "commit": "4af5bd7cdaccdba6001a384a81c258f542e74075",
      "tree": "154a891e473dca8e6ba948f64b9da2ec21c4bf12",
      "parents": [
        "6a6f0c7de263743dc22b046dd9d53c694bce3ac5",
        "e1e1969c96db98545033456111c0da6ff8a0699f"
      ],
      "author": {
        "name": "Olawale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Mon Mar 30 22:00:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 22:00:12 2015 +0000"
      },
      "message": "Merge \"Add ProcessInfoService to activity manager.\""
    },
    {
      "commit": "6a6f0c7de263743dc22b046dd9d53c694bce3ac5",
      "tree": "6cb95dfad41a13c2dd8cdd5d4f577e5b962edb7c",
      "parents": [
        "f603e2861430f13a746f80885b5fc00994f64391",
        "4ab8ea4498aa25eafdbaadd238fed6eab3f6ee59"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Mon Mar 30 20:34:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 20:34:48 2015 +0000"
      },
      "message": "Merge \"Add HmacSHA256 backed by AndroidKeyStore.\""
    },
    {
      "commit": "f603e2861430f13a746f80885b5fc00994f64391",
      "tree": "eed5ac2425d689b193ed884cd3596670cdecee98",
      "parents": [
        "631565abd6cadd65befe197afa7bac0d44f70fb2",
        "5654b36b4667431e49d27c07a06d275656071e75"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Mon Mar 30 20:06:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 20:06:39 2015 +0000"
      },
      "message": "Merge \"Add authorization binder methods\""
    },
    {
      "commit": "4ab8ea4498aa25eafdbaadd238fed6eab3f6ee59",
      "tree": "57c29e100d399530f239961857c47598bb471b19",
      "parents": [
        "36ee836d2f6e6df59d6a20a69421639bacf25559"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Mar 27 16:53:44 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Mon Mar 30 12:53:23 2015 -0700"
      },
      "message": "Add HmacSHA256 backed by AndroidKeyStore.\n\nThis also adds the MAC length constraint on imported HMAC keys. HMAC\ndoesn\u0027t work without this constraint at the moment.\n\nBug: 18088752\nChange-Id: I8613f58f5d2a84df00bcf6179d13e30619440330\n"
    },
    {
      "commit": "e1e1969c96db98545033456111c0da6ff8a0699f",
      "tree": "e8604e14f7fde96328f5534dbf456c3d445841c7",
      "parents": [
        "631565abd6cadd65befe197afa7bac0d44f70fb2"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed Jan 28 15:04:16 2015 -0800"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Mon Mar 30 12:20:16 2015 -0700"
      },
      "message": "Add ProcessInfoService to activity manager.\n\n- Adds a new AIDL interface for querying process\n  information from activity manager.\n\nBug: 19186859\nChange-Id: Ic08858f346d6b66e7bfc9da6faa2c6e38d9b2e82\n"
    },
    {
      "commit": "b94c1657eb0140f7b91f5372a9f76de5a3d87e36",
      "tree": "aab3ee76fa8e32a00e1b4acb31ec6507a4694eb6",
      "parents": [
        "274a4ee3446e76a34a9cfe987e98f7bf4e53f78d"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Mar 03 12:25:30 2015 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Mar 30 11:32:56 2015 -0700"
      },
      "message": "Support for storing OAT files in app directory\n\nIn installPackageLI, dexopt is now performed on a staging directory of the app\n(dexopt phase 1). For each codepath:\n - /oat/\u003cisa\u003e directory is created\n - dexopt output goes to the newly created directory. Optimized files have\n   .odex extension.\n\nBug: 19550105\nChange-Id: Iec59790d97837b78af82b079fd1970de3388c91d\n"
    },
    {
      "commit": "4c93c8c93a66a8932d84a52bd922c3b7ad1565bb",
      "tree": "4606ec940c7fb54256a499aef84be6aba4d94b2d",
      "parents": [
        "631565abd6cadd65befe197afa7bac0d44f70fb2"
      ],
      "author": {
        "name": "Yang Ni",
        "email": "yangni@google.com",
        "time": "Thu Mar 26 14:35:22 2015 -0700"
      },
      "committer": {
        "name": "Yang Ni",
        "email": "yangni@google.com",
        "time": "Mon Mar 30 10:45:34 2015 -0700"
      },
      "message": "Fix value size data type in closure creation.\n\nb/19944127\n\nAlso added references to arguments and global values in a closure to\nkeep them live in Java while native code may access them.\n\nChange-Id: I1179d34aa67f845578740e71cc2da4f82419f251\n"
    },
    {
      "commit": "631565abd6cadd65befe197afa7bac0d44f70fb2",
      "tree": "7fe7caa57fcd20b9a386a80409e95c467815e85d",
      "parents": [
        "a01250c7740aec4f2cfc92a82d5a10f05c3e7ce7",
        "3d529c5b0ae06953d4415aabcd7cf83333c3ef83"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 29 22:30:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Mar 29 22:30:41 2015 +0000"
      },
      "message": "Merge \"Change getDeclaredFieldsUnchecked call to new return value\""
    },
    {
      "commit": "a01250c7740aec4f2cfc92a82d5a10f05c3e7ce7",
      "tree": "250e9d953ba64b842891b33104dc31ed55cd3583",
      "parents": [
        "5a15bf69d8d2782d70c462f7fd8bd75e687260dc",
        "c3e1c2148209658829e66e6f3f109d8b9227c597"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Mar 28 04:50:42 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 28 04:50:44 2015 +0000"
      },
      "message": "Merge \"Frameworks/base: Change String \u003d\u003d to equals in Preference\""
    },
    {
      "commit": "5a15bf69d8d2782d70c462f7fd8bd75e687260dc",
      "tree": "597291990b6e3d1b64a444fa248578e8bfc7021d",
      "parents": [
        "36ee836d2f6e6df59d6a20a69421639bacf25559",
        "8ef92bd311e6faf602c9705db663abd451590fff"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Mar 28 04:50:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 28 04:50:08 2015 +0000"
      },
      "message": "Merge \"Frameworks/base: Fix request removal in VoiceInteractionSession\""
    },
    {
      "commit": "3d529c5b0ae06953d4415aabcd7cf83333c3ef83",
      "tree": "6cf90605f2cd03bfa53a2c082e013e0466a809ca",
      "parents": [
        "5fc9b336ebb6fc224b3e77af388024dea029fbb3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 25 13:35:38 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 27 18:55:50 2015 -0700"
      },
      "message": "Change getDeclaredFieldsUnchecked call to new return value\n\nRequired for related libcore change.\n\nBug: 19264997\nChange-Id: I17ca0cf4b9ba853e59f4a6eff3a05d9d90cf23f9\n"
    },
    {
      "commit": "36ee836d2f6e6df59d6a20a69421639bacf25559",
      "tree": "97a12bf99f2bf2c839554c609e5970bf30b1bd56",
      "parents": [
        "dbd9a4b651aed25a50976ca0a68a979cc3f299fa",
        "d23a1f706f0c24fade1a1c2f604009a7c9e70002"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Mar 27 22:59:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 27 22:59:19 2015 +0000"
      },
      "message": "Merge \"Symmetric key generation for AndroidKeyStore.\""
    },
    {
      "commit": "d23a1f706f0c24fade1a1c2f604009a7c9e70002",
      "tree": "97a12bf99f2bf2c839554c609e5970bf30b1bd56",
      "parents": [
        "dbd9a4b651aed25a50976ca0a68a979cc3f299fa"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Mar 27 14:39:28 2015 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Mar 27 15:57:53 2015 -0700"
      },
      "message": "Symmetric key generation for AndroidKeyStore.\n\nThis currently supports AES and HMAC with SHA-256.\n\nBug: 18088752\nChange-Id: Ife55438cf4129b895295681bb35091cd37eb73fb\n"
    },
    {
      "commit": "dbd9a4b651aed25a50976ca0a68a979cc3f299fa",
      "tree": "a8d91d5261c9f7eb48cbc2fdfe2729a41e28b8b3",
      "parents": [
        "274a4ee3446e76a34a9cfe987e98f7bf4e53f78d",
        "dae79e540844741fc35c648efe8bbb00fc8ab781"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Fri Mar 27 21:38:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 27 21:38:44 2015 +0000"
      },
      "message": "Merge \"Allow entropy to be provided to some operations\""
    }
  ],
  "next": "dae79e540844741fc35c648efe8bbb00fc8ab781"
}
