)]}'
{
  "log": [
    {
      "commit": "a23995c233b3c336d0f405523902606f2583caea",
      "tree": "499d822205d3c5fe3a16d84d1dac8435f7e83b1b",
      "parents": [
        "d62163055f983b95a954f1a6c2cbc8e0085a7ab5"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Wed Mar 25 11:43:42 2015 +0000"
      },
      "committer": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Wed Mar 25 11:43:42 2015 +0000"
      },
      "message": "Fix NPE if FPE service does not exist.\n\nBug: 19846662\nChange-Id: I44e014c66a524b282cce0cfc9b7513fc0f553576\n"
    },
    {
      "commit": "e9acb59a91f46c962151a58142448fd9f4101814",
      "tree": "e1064668e4ea775053a0d6c87fcf07a89d993743",
      "parents": [
        "d7310bd1499c0b48594a8fbbcbe0c7e80c1e5832"
      ],
      "author": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Wed Feb 04 17:55:42 2015 +0000"
      },
      "committer": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Wed Feb 04 17:55:42 2015 +0000"
      },
      "message": "Only switch user if current user is being wiped\n\nOnly try and switch to owner if the current user\nis being removed.\n\nBug: 19252449\nChange-Id: I0143d87360db0834876821cbf52fec4933ecbd35\n"
    },
    {
      "commit": "6d16b8614ac4c5aa44304e6fdcb9ed8aeec675fd",
      "tree": "167c83ccd328b50c6c09340133d37fda26f721c4",
      "parents": [
        "414ea81ea364d7b961cbfb885c30729595e3a7b2",
        "f87b174dac87ed9e95e8522bfb836707f4a2239d"
      ],
      "author": {
        "name": "Benjamin Franz",
        "email": "bfranz@google.com",
        "time": "Mon Jan 26 10:49:47 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 26 10:49:48 2015 +0000"
      },
      "message": "Merge \"Avoid NullPointerException if createUser returns null\" into lmp-mr1-dev"
    },
    {
      "commit": "414ea81ea364d7b961cbfb885c30729595e3a7b2",
      "tree": "7985f47e0a98f0adb690d7a4f0e673ec7a04a839",
      "parents": [
        "c309688bfaf204c892635783aad96443a41fdffb",
        "871fa7343a2ff8de837a721eacfc576b19438e54"
      ],
      "author": {
        "name": "Zoltan Szatmary-Ban",
        "email": "szatmz@google.com",
        "time": "Mon Jan 26 10:36:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 26 10:36:14 2015 +0000"
      },
      "message": "Merge \"Ensure notifications are sent when locking/unlocking location share\" into lmp-mr1-dev"
    },
    {
      "commit": "f87b174dac87ed9e95e8522bfb836707f4a2239d",
      "tree": "1be6d419c6c79a3b394fceba034a9a074f791bfe",
      "parents": [
        "266303fdb02ca1cf6df348e1af6830675476fd78"
      ],
      "author": {
        "name": "Benjamin Franz",
        "email": "bfranz@google.com",
        "time": "Fri Jan 23 15:32:30 2015 +0000"
      },
      "committer": {
        "name": "Benjamin Franz",
        "email": "bfranz@google.com",
        "time": "Fri Jan 23 17:04:16 2015 +0000"
      },
      "message": "Avoid NullPointerException if createUser returns null\n\nIf createUser returns null, we run into a NullPointerException\nin createAndInitializeUser. This can happen when the policy\nDISALLOW_ADD_USER is set.\n\nBug: 19121141\nChange-Id: Id4bda832a243fa42c31eb5a176ecaa248aee68f5\n"
    },
    {
      "commit": "266303fdb02ca1cf6df348e1af6830675476fd78",
      "tree": "378250d13e11af2d40bacb7e55594690b57a974c",
      "parents": [
        "ae38596bcf2a077753d170c0cad68f4dfde4277b",
        "fadb2b3a27e4c23f5c566e6f7eadfaed9e23e68c"
      ],
      "author": {
        "name": "Benjamin Franz",
        "email": "bfranz@google.com",
        "time": "Fri Jan 23 14:33:04 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 23 14:33:06 2015 +0000"
      },
      "message": "Merge \"Avoid SecurityException when calling getUserData\" into lmp-mr1-dev"
    },
    {
      "commit": "871fa7343a2ff8de837a721eacfc576b19438e54",
      "tree": "1d94da3502fb555fcc112c7f5c06e3ec06c724c6",
      "parents": [
        "3379c1cb62488393c2c49b5f38483656c7175fa1"
      ],
      "author": {
        "name": "Zoltan Szatmary-Ban",
        "email": "szatmz@google.com",
        "time": "Fri Jan 16 12:36:29 2015 +0000"
      },
      "committer": {
        "name": "Zoltan Szatmary-Ban",
        "email": "szatmz@google.com",
        "time": "Fri Jan 23 14:08:30 2015 +0000"
      },
      "message": "Ensure notifications are sent when locking/unlocking location share\n\nWhen the restriction \u0027DISALLOW_SHARE_LOCATION\u0027 is applied or removed on a user\nit is important to send out notifications to content observers of\nLOCATION_PROVIDERS_ALLOWED.\n\nBug: 18995405\nChange-Id: I8b3910a423a012ea9d15470eec101723c9f0eaf7\n"
    },
    {
      "commit": "fadb2b3a27e4c23f5c566e6f7eadfaed9e23e68c",
      "tree": "7a5d4e5a1f8185d6e4ba159b7858704b96d779cf",
      "parents": [
        "1a6dd2985ef1eab036f6fc77cf723e3f12832e93"
      ],
      "author": {
        "name": "Benjamin Franz",
        "email": "bfranz@google.com",
        "time": "Wed Jan 14 18:22:42 2015 +0000"
      },
      "committer": {
        "name": "Benjamin Franz",
        "email": "bfranz@google.com",
        "time": "Thu Jan 22 16:16:16 2015 +0000"
      },
      "message": "Avoid SecurityException when calling getUserData\n\nCurrently we risk getting a SecurityException in a number of places,\nwhere getUserData is called for a different user than the calling user.\nTo avoid this, the caller is cleared in a helper function.\n\nBug: 18662452\nChange-Id: Ibc131c602e52d9f013fe739a9c18e693181ded67\n"
    },
    {
      "commit": "212037f7cdbf3ac3712ab16f885d62da7f850fe0",
      "tree": "ffe7392d946332578846d8837d349b41659a8392",
      "parents": [
        "b018399a3a2762e95126acbe14397eca15bad772"
      ],
      "author": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Thu Jan 15 18:14:46 2015 +0000"
      },
      "committer": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Thu Jan 15 18:48:01 2015 +0000"
      },
      "message": "Sync file before using JournaledFile commit.\n\nExt4 doesn\u0027t guarantee that write file.new / close file.new\nrename file.new to file will mean data in file.new makes it\nto file atomically. The rename may happen with previous contents\nof file.new and then later update to new contents\nSee docs for noauto_da_alloc\nSo rebooting the device during JournaledFile.commit may\nmean we are left with an empty file.\n\nBug: 18590558\nChange-Id: I35322c82871bed30c2c6ebbd1388338f0471f3ba\n"
    },
    {
      "commit": "7f7ea82c28f01798b15686aa45733885beebcc6e",
      "tree": "a623a83f584636de7adcdfccb283291a1c1ee2f2",
      "parents": [
        "bde7bc45af2bb7f9bee8096d45973f25cc00c5db"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Jan 08 22:46:44 2015 +0000"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Fri Jan 09 11:25:04 2015 +0000"
      },
      "message": "Profile owner hint in warning for extra CAs\n\nThe version of the warning with a named installer should be shown in\nthe case of a managed profile, not only a managed device.\n\nBug: 18224038\nChange-Id: I27865f77e963b9b15416f2e4a4ffc38fed8f5532\n"
    },
    {
      "commit": "e53b7dd0667208f956e20b932f85ba670eb074f9",
      "tree": "ba2b5b1d4242e340710412d29cbc71b86f865671",
      "parents": [
        "e1d8dcd9e170c1ed8a13b6e1256ea1fb22c26c49"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Jan 08 22:07:41 2015 +0000"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Jan 08 22:08:42 2015 +0000"
      },
      "message": "Revert \"Profile owner hint in warning for extra CAs\"\n\nThis reverts commit e1d8dcd9e170c1ed8a13b6e1256ea1fb22c26c49.\n\nSomething funny happened in the process of submitting this,\nswathes of strings.xml became mis-encoded.\n\nBug: 18224038\nChange-Id: I0276ff3f880fe749546e8cc7e3e2f41c22c27705"
    },
    {
      "commit": "e1d8dcd9e170c1ed8a13b6e1256ea1fb22c26c49",
      "tree": "85aec275f987c1f796be298de119f974ee2c343b",
      "parents": [
        "4ae97d3632edf4fd00fe23b9a2304e4e0f2348b7"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Mon Jan 05 18:40:59 2015 +0000"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Mon Jan 05 19:52:54 2015 +0000"
      },
      "message": "Profile owner hint in warning for extra CAs\n\nThe version of the warning with a named installer should be shown in\nthe case of a managed profile, not only a managed device.\n\nBug: 18224038\nChange-Id: I58bddb162799481d5e8feb169b0c0bff17cbeeb7\n"
    },
    {
      "commit": "b4b14e391dbcde537350ccf649b3603cafba1e6c",
      "tree": "7c228223d8145f79339aad9409232e5248157c4a",
      "parents": [
        "83a590b14ca70da7b6061529a521212572d732b3",
        "853964927c12926321911081217c5f0742e7e82a"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Tue Dec 23 12:30:26 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 23 12:30:28 2014 +0000"
      },
      "message": "Merge \"Revert \"DevicePolicy: Don\u0027t warn about managed profile CAs\"\" into lmp-mr1-dev"
    },
    {
      "commit": "853964927c12926321911081217c5f0742e7e82a",
      "tree": "e3d4e7e5f2e2ea96d876a7a9dc88fb1a14523a03",
      "parents": [
        "80559f4aadb3419eecdf6bf61945af584cd2aa8a"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Mon Dec 22 11:48:10 2014 +0000"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Mon Dec 22 13:22:11 2014 +0000"
      },
      "message": "Revert \"DevicePolicy: Don\u0027t warn about managed profile CAs\"\n\nThis reverts commit 80559f4aadb3419eecdf6bf61945af584cd2aa8a.\n\nBug: 18224038\nChange-Id: I108a4e8cf185401fef4806e1ad8c2cc78992e843\n"
    },
    {
      "commit": "22afe6261aab343070b63c60a1f4c7ce6f4383f9",
      "tree": "ac755acdef355d37bd70db32d974f1a2ad29e363",
      "parents": [
        "43606641f6a2b7f31b289da4548231306f4e5156",
        "96fb932666539e2b3be26ef91eb248a9ace5678e"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Dec 05 19:28:11 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 05 19:28:12 2014 +0000"
      },
      "message": "Merge \"Added isRemovingAdmin method\" into lmp-mr1-dev"
    },
    {
      "commit": "96fb932666539e2b3be26ef91eb248a9ace5678e",
      "tree": "64e4bfd16064e2b7c60ea7c0b4fcd59e981da387",
      "parents": [
        "d23f8b44d575dcdc00965aae5fffd97f0336df43"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Dec 01 15:08:09 2014 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Thu Dec 04 17:53:45 2014 -0800"
      },
      "message": "Added isRemovingAdmin method\n\nAdded isRemovingAdmin method, so that clients can query if device\nadmin is currently being removed.\n\nBug: 17609838\nChange-Id: I82547a9eeb228fcf8ac2a6e639ca1a75fa41d161\n"
    },
    {
      "commit": "a0116afeaf9363c5a662624dda77b550aa9172a8",
      "tree": "7fa215a10de8ffd760d13296ef771dbef2fa5f70",
      "parents": [
        "6ca3ba73b78be57dd50fe5813f076b3e166cc659"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Dec 04 14:49:24 2014 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Dec 04 14:49:24 2014 -0800"
      },
      "message": "Potential fix for accidental deactivation of profile owner\n\nThis is a safeguard to only check for changing packages when\nre-validating active admins.\n1. If package is being removed, only check if it\u0027s not being\n   replaced.\n2. If package is changing, only check the changing package that\n   matches one of the active admins.\n3. If package is being added and is a replacement (update), then\n   check if it affects any matching active admins and verify the\n   validity of the receivers.\n\nIf by any chance some package broadcast was occuring at a time when\nan admin was being updated, or the package removed broadcast was\ncoming in much before the update was registered with package manager\nthen this will help in avoiding accidental deactivation.\n\nBug: 18590558\nChange-Id: I7f4897e8836f81aa037b8be87d399942ce78b1a2\n"
    },
    {
      "commit": "77e25331ca7ad1fb69fbe7fbec69179824e46e59",
      "tree": "561e02a290207d8e115853c60d1ddabff869b8f8",
      "parents": [
        "3749541a206390054b22d5f5bddc1b43f348f433",
        "a7e87acb2416d4212c84fb9c45353dbf6ee15e6a"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Tue Nov 25 21:13:27 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 25 21:13:30 2014 +0000"
      },
      "message": "Merge \"Add flag for wiping factory reset protection data.\" into lmp-mr1-dev"
    },
    {
      "commit": "a7e87acb2416d4212c84fb9c45353dbf6ee15e6a",
      "tree": "bd7129820d1100c0169bf56e63e60ebf1a884a31",
      "parents": [
        "5977f7d52008f9b8dfc429acfde222a6e0afb2a2"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Tue Nov 18 13:50:19 2014 +0000"
      },
      "committer": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Tue Nov 25 20:48:41 2014 +0000"
      },
      "message": "Add flag for wiping factory reset protection data.\n\nBug: 18366448\nChange-Id: If8904888a6bf8611d34647e6d65d2347d824dbb3\n"
    },
    {
      "commit": "80559f4aadb3419eecdf6bf61945af584cd2aa8a",
      "tree": "e1f04d2adf6de65ef6337f83af6a1cbdec0c19c9",
      "parents": [
        "8d9e64343decaaf56a7d1fae5ed14ed172e9d7dd"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Tue Nov 25 13:40:49 2014 +0000"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Tue Nov 25 15:48:48 2014 +0000"
      },
      "message": "DevicePolicy: Don\u0027t warn about managed profile CAs\n\nSetting up a managed profile should have included a step to warn about\nthis sort of thing already. As the user should trust the profile owner\nanyway it\u0027s hard to argue this warning is needed.\n\nBug: 18224038\nChange-Id: Ie86ba26851af726c0dec30eb9c32894ed6bb4a00\n"
    },
    {
      "commit": "702d9e31b1bcacff975a2b8e0d04160bbd6811ed",
      "tree": "5783311b109e6341cba16da9a34ef2c3281e6959",
      "parents": [
        "671424951dcd2a0d1059c6d899a8649cbc8b5e26",
        "f8f56bce428bb2b89d1d572ccd2d604761dbbce8"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Nov 24 16:02:09 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 24 16:02:11 2014 +0000"
      },
      "message": "Merge \"Fix DPM.resetPassword(\"\")\" into lmp-mr1-dev"
    },
    {
      "commit": "3a3d212a51974ccec6100c1e117225291edc83cc",
      "tree": "4fa99070c247606bb5ce38f815c4f1a71251640d",
      "parents": [
        "5d3d53aa1361c094f05aa70129e49a04875ab5a6"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Oct 29 11:41:31 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Nov 21 13:57:48 2014 -0800"
      },
      "message": "Different messages when wiping user and not device\n\nThere are 3 types of users\n1. Primary - device will be wiped\n2. Managed profile - profile will be removed\n3. Secondary user - user will be removed\n\nShow different messages for almost wipe and wipe in each\nof these 3 cases.\n\nBug: 16843155\nChange-Id: Icecfe520622773da9e45465bf2217e8ed38b266e\n"
    },
    {
      "commit": "08229e817ecb67b0c7ebbd6b5b9ce4aef1b38cc2",
      "tree": "477fb3372af89bc80d68277a13ea437e9ed76f9d",
      "parents": [
        "07334334aab3863408325653ceccee47f9e1788d",
        "26ac6a6fd0ef43803c6edd786c8f1fa715ae3cca"
      ],
      "author": {
        "name": "Zoltan Szatmary-Ban",
        "email": "szatmz@google.com",
        "time": "Fri Nov 21 15:21:03 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 21 15:21:07 2014 +0000"
      },
      "message": "Merge \"Shutdown backup manager service when device owner is set\" into lmp-mr1-dev"
    },
    {
      "commit": "f8f56bce428bb2b89d1d572ccd2d604761dbbce8",
      "tree": "34b6fc8c2a48584936a3514efa318d6d5a099229",
      "parents": [
        "481a6df99fea124bc4354da34ff668750cdc9041"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Nov 20 23:55:34 2014 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Fri Nov 21 13:34:06 2014 +0100"
      },
      "message": "Fix DPM.resetPassword(\"\")\n\nWhile we\u0027re at it, also fix some multi-user issues in\nLockPatternUtils.\n\nBug: 17496766\nChange-Id: I8e557ea640fa589817c8f8f818c91463585d5ea7\n"
    },
    {
      "commit": "735f22850edcb5c2447c37cb96f048de8a742907",
      "tree": "a3f0aaaf86e9c7b894eab4e3515c78a1c5db8190",
      "parents": [
        "3a7d3fc60e1347ff9bdddb8040237e2818d67a0e",
        "a97855b784243c00b99dfcb6595164ab4a88d05c"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Tue Nov 18 23:43:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 18 23:43:17 2014 +0000"
      },
      "message": "Merge \"Remove permission check in DevicePolicyManager.isUninstallBlocked()\" into lmp-mr1-dev"
    },
    {
      "commit": "3a7d3fc60e1347ff9bdddb8040237e2818d67a0e",
      "tree": "f7ce93757d612c12c6fe98c43c2bc1d6fb153142",
      "parents": [
        "0455174d347bf451e830584bc3f6f35c3c560282",
        "d7892e71a85989a3afc6388d917ab9961a607f24"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Tue Nov 18 23:42:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 18 23:42:21 2014 +0000"
      },
      "message": "Merge \"Fix equality test in getProfileOwnerAdmin()\" into lmp-mr1-dev"
    },
    {
      "commit": "a97855b784243c00b99dfcb6595164ab4a88d05c",
      "tree": "9ac43d104a4241cf1ab9afca39219550e506a19b",
      "parents": [
        "68ced89949fc1cce198f25e09bf9bdb12616a98c"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Fri Nov 07 05:41:00 2014 +0000"
      },
      "committer": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Tue Nov 18 17:53:46 2014 +0000"
      },
      "message": "Remove permission check in DevicePolicyManager.isUninstallBlocked()\n\nThis is to allow Play to use this API to find out whether a package\nis uninstallable due to profile or device owner policy\u0027s restriction.\n\nBug: 17914630\nChange-Id: I4ce2963884ecdf3306805f36db80ed1ebf04d88f\n"
    },
    {
      "commit": "26ac6a6fd0ef43803c6edd786c8f1fa715ae3cca",
      "tree": "5643e83a996ea6672038537489279d5575b68044",
      "parents": [
        "201caf57f9a9699e04620eac9b1fcdaf4338d2f0"
      ],
      "author": {
        "name": "Zoltan Szatmary-Ban",
        "email": "szatmz@google.com",
        "time": "Thu Nov 13 20:49:43 2014 +0000"
      },
      "committer": {
        "name": "Zoltan Szatmary-Ban",
        "email": "szatmz@google.com",
        "time": "Thu Nov 13 20:49:43 2014 +0000"
      },
      "message": "Shutdown backup manager service when device owner is set\n\nBug: 16641441\nChange-Id: I3fe54e43324c15dabd56834a923e8e8cb4eea98d\n"
    },
    {
      "commit": "d01ff6d4c35edecd3d250d65ca1ab63699e0d642",
      "tree": "d3634eecad40e7e9d50c8ea33d356fe698f8cb67",
      "parents": [
        "4fc2ea8402b62001b225bf4e1a335c4cbf3b65ea"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Nov 12 10:46:50 2014 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Nov 12 11:27:21 2014 -0800"
      },
      "message": "Added synchronization to handlePackagesChanged method\n\nMethod handlePackagesChanged modifies the policy data without holding the\nlock. It also calls methods which expect a lock to be held -\nvalidatePasswordOwnerLocked, syncDeviceCapabilitiesLocked, saveSettingsLocked.\n\nBug: 18262633\nChange-Id: Ia4bdc6edc66bccf8a4288e048171ff20858ae2f6\n"
    },
    {
      "commit": "52c39a16db077f5017ab20214e60a205e075f2d7",
      "tree": "9a5f3219d3632f43e4d4a01ce8039653ad8a1614",
      "parents": [
        "9114a845d9474bc2ecc807c3f195fe0c5314556c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Oct 21 11:14:04 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Nov 11 23:38:24 2014 +0000"
      },
      "message": "Allow profile owners to set the unknown source setting\n\nThis allows work profile MDM to enable unknown sources\neven if the user doesn\u0027t have UI for it. Installing an\napp from an unknown source will still prompt the user\nwith the package installer dialog, so it\u0027s not like the\nMDM can now quietly install apps from non-market sources.\n\nBug: 18316350\n\nChange-Id: Ia8f4fe36f12a258aa888e085acc0b358925f4817"
    },
    {
      "commit": "5ce1cb240b13db98fbdc21e1ef069b5f9cec8d72",
      "tree": "3f9d1bdb06ccebb25876e9f52821dcefd930d6d8",
      "parents": [
        "fc3f2380c97b0e2704b6350e031c96e0b01a3046"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 06 19:05:33 2014 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 06 19:34:21 2014 -0800"
      },
      "message": "Move device admin max screen off timeout to internal interface.\n\nThe setting was previously exposed in IPowerManager but it\ndoesn\u0027t need to be there.\n\nBug: 17656076\nChange-Id: If3ed0cbe89f67c60aa00376be0c54b1bd9656144\n"
    },
    {
      "commit": "e303bf443532c2ad756260133f00747bcff11e69",
      "tree": "35c58c456a33e6a83ea5cad631811683b5861641",
      "parents": [
        "12b239e6d39ad5a35f68e7bcd5f644a793b5cb74"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Aug 26 17:12:29 2014 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Nov 05 18:17:56 2014 -0800"
      },
      "message": "Update TrustAgentService API after review\n\nThis change incorporates API council feedback and enables the\nTrustAgent whitelisting API.\n\nIt also contains a minor cleanup of DPM\u0027s use of UserHandle\nto eliminate unnecessary object creation.\n\nFixes bug 17008504\n\nChange-Id: I63cc50169fde54b34406845818bcaf6aadc1a3db\n"
    },
    {
      "commit": "d7892e71a85989a3afc6388d917ab9961a607f24",
      "tree": "59036a7640f9c6a0a7f7558ff71602d6112b9a34",
      "parents": [
        "d3a8c8aa530e6c1a605f469df7b378f688e7905a"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Thu Oct 30 17:57:23 2014 +0000"
      },
      "committer": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Thu Oct 30 17:57:23 2014 +0000"
      },
      "message": "Fix equality test in getProfileOwnerAdmin()\n\nThe equality test should compare a ComponentName, which admin.info is not.\n\nBug: 18186447\nChange-Id: If984ae2e0da958889564ba30716d65245a78d60f\n"
    },
    {
      "commit": "f5c00c1c1136c9752b9c0157f9eca6385d7b9448",
      "tree": "66a72d259e46ea27971576044ffbb8435d155fd4",
      "parents": [
        "4eedc1d97e5aa3bfaa60af9894cd991f9e210fc2",
        "05720542613ec79c4b87453845231c838dbe0d03"
      ],
      "author": {
        "name": "Benjamin Franz",
        "email": "bfranz@google.com",
        "time": "Tue Oct 28 16:13:03 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 28 16:13:05 2014 +0000"
      },
      "message": "Merge \"Send ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED Broadcast when a user restriction has been changed.\" into lmp-mr1-dev"
    },
    {
      "commit": "05720542613ec79c4b87453845231c838dbe0d03",
      "tree": "4cc52bb477f3a8a0b7dd0ad0033db3dd44432cf1",
      "parents": [
        "2bb933a5129cccb29e31fe2db00109bab6805979"
      ],
      "author": {
        "name": "Benjamin Franz",
        "email": "bfranz@google.com",
        "time": "Wed Oct 15 17:39:13 2014 +0100"
      },
      "committer": {
        "name": "Benjamin Franz",
        "email": "bfranz@google.com",
        "time": "Wed Oct 22 16:41:58 2014 +0000"
      },
      "message": "Send ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED Broadcast when a user restriction has been changed.\n\nBug: 17916693\nChange-Id: I6bca83ad6224ab6f1e4bdf41a10f514823c66755"
    },
    {
      "commit": "e69bdca44bbbd16b990b9be0eba24e88cbb7f8f8",
      "tree": "941e24362832d8360fe556700acea1488e024acd",
      "parents": [
        "877ce2c42b5d423719246f5458cd66fa9fddb317"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Mon Oct 20 21:46:53 2014 +0100"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Mon Oct 20 20:55:40 2014 +0000"
      },
      "message": "DevicePolicy: Restore CA warning to K behaviour\n\nSome tests rely on this being dismissible. Additionally it turns out\nsome users don\u0027t like having a hulking great notification follow them\naround everywhere.\n\nBug: 17985258\nChange-Id: If05a07b9eaa402a48f9a14647effc1df32c796e1"
    },
    {
      "commit": "cd410ba4e816b657020cafb23e69206734726b42",
      "tree": "9eaaf922204e95133d6468cdb31157237b80cfda",
      "parents": [
        "fe51197084ab70ea48a9ddf13ecc0d0afe81d0ea"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Oct 17 11:16:58 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Oct 17 11:43:57 2014 -0700"
      },
      "message": "Use the correct method to check if device is encrypted\n\nDPM\u0027s method will return false if encrypted by default password,\npreventing the changing of encryption password to lockscreen password.\n\nCheck if the device is encrypted by some means, instead.\n\nAlso fix a SecurityException when Device Admin queries encryption state\n(recent regression)\n\nBug: 17881324\nChange-Id: Id897e61c5e254ab3f8dc569285428a73005303ea\n"
    },
    {
      "commit": "3836c9a4c145cd683151bd627a22958303a418c2",
      "tree": "5b67ebe6c83d51c191c990c5a92b5ccb90636b2e",
      "parents": [
        "c7be69f1d63bcc8411875ff53e5561f2f4692072"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Oct 15 11:46:26 2014 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Oct 15 13:15:52 2014 -0700"
      },
      "message": "Fix getStorageEncryptionStatus() in DevicePolicyManager\n\nThis fixes a bug introduced by a change where the function\nignores systems with default encryption where it\u0027s disabled.\n\nThe fix also checks to see if vold thinks the device is secure.\n\nFixes bug 17881324\n\nChange-Id: I2c40f76cf990d90d1a825955aa3b080b21684426\n"
    },
    {
      "commit": "2c3886cb3463ff39c1986c5b85eba79748dd8c24",
      "tree": "0584fd01dd92f801d97f1fd2f3b11a30426f5275",
      "parents": [
        "88a6ed5477eb6fa0453f9f29adef4c11b6eeade0",
        "242f4b125939276be866bb0a637b89bfbc5aa880"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Oct 15 17:44:23 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 15 17:44:24 2014 +0000"
      },
      "message": "Merge \"Fix admin policies in managed profiles\" into lmp-dev"
    },
    {
      "commit": "242f4b125939276be866bb0a637b89bfbc5aa880",
      "tree": "b289a36f7c3a153884244b877fba4e132e25f16b",
      "parents": [
        "15a5f82f9b6b389614b1df78749bd627d97d5417"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Oct 14 16:06:13 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Oct 15 10:42:17 2014 -0700"
      },
      "message": "Fix admin policies in managed profiles\n\nSome of the admin policies are throwing security exceptions in\na managed profile without being documented correctly and others\nshouldn\u0027t be throwing security exceptions.\n\nChanged setCameraDisabled() to not throw an exception. It now just\nprevents work profile apps from using the camera.\n\nChanged wipeData() to allow passing in ERASE_EXTERNAL_STORAGE. In\nsecondary users/profiles, this is just going to remove the user, so\nthe flag is harmless.\n\nUpdated documentation for setKeyguardDisabledFeatures() and resetPassword()\nto indicate that they cannot be called in a managed profile.\n\nBug: 17987913\nChange-Id: I8060be4c2d32bdd4edb46ce543551fabb9c8c983\n"
    },
    {
      "commit": "28433dbdabd3f60224131039911a8f1def3fe670",
      "tree": "c577f9b8a249eb2e3122fa201112fc4280247096",
      "parents": [
        "a89ac60e25eb77b4c605fc1a40c96416b199bea5"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Oct 14 15:53:14 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Oct 14 15:53:17 2014 -0700"
      },
      "message": "Fix a NPE in device policy manager service.\n\nIt is possible that the device does not have an owner. If there\nis no owner we get a NPE when asking the device policy manager\nfor cross-profile widget providers.\n\nbug:17989189\n\nChange-Id: I5759f2dec160ed8076ab47fdf09134f78c57458d\n"
    },
    {
      "commit": "d0130e85398aea84151765a8706109beedb20c37",
      "tree": "ecb915901757fc9274b45b2b06f6856cf11ee732",
      "parents": [
        "a6ae8ba4a59f3f893fe8893335e7517388123c10"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Mon Oct 06 11:36:25 2014 +0100"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Oct 09 12:46:13 2014 +0100"
      },
      "message": "DevicePolicy: One cert tracker warning per profile\n\nShows one notification per profile instead of one notification per\nuser or (previously) one notification per device.\n\nBug: 17794425\nChange-Id: I6f0d34a16fa2a45082941387ac765dd99eefa131\n"
    },
    {
      "commit": "baa05930ec0e7f9267380b98719e75b3e58f1df5",
      "tree": "830d1d7f5c214b12814d9caa9a3152729714beb2",
      "parents": [
        "ccf2fa00314b91c7d25e0edf48e0e2b51dbc4e63",
        "be16357f40406d32de6d9a1632910bcdfacc0d21"
      ],
      "author": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Thu Sep 25 16:42:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 25 16:42:11 2014 +0000"
      },
      "message": "Merge \"Ignore badly formed ComponentNames when loading device_owner.xml\" into lmp-dev"
    },
    {
      "commit": "be16357f40406d32de6d9a1632910bcdfacc0d21",
      "tree": "8c8c432a6f44e9d12a1280c29393dc57ede33f58",
      "parents": [
        "cbd333b256a9f301de549dbe9aa7614103835d97"
      ],
      "author": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Thu Sep 25 15:40:51 2014 +0100"
      },
      "committer": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Thu Sep 25 17:03:53 2014 +0100"
      },
      "message": "Ignore badly formed ComponentNames when loading device_owner.xml\n\nIn the past we wrote out badly formed ComponentNames with no\nclass part. Loading these results in a null pointer exception\nblocking boot.\n\nBug: 17652534\nChange-Id: Iec592343425a23c7ada5f73cf30b8646d31eae81\n"
    },
    {
      "commit": "004a4b20f8d3116e6a711525960d433fcfea4ee4",
      "tree": "598d12ae619f4f7d0a4164500bbaadd984f60a26",
      "parents": [
        "fb488eb2a269772064432e69ebdd9c5cedd18006"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Sep 24 11:45:24 2014 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Sep 24 13:58:09 2014 -0700"
      },
      "message": "Include reason when wiping data.\n\nThis will help us track down who requested a data wipe.\n\nBug: 17412160\nChange-Id: If8413e5d6377773f37e8b34ae3d26347226a027c\n"
    },
    {
      "commit": "8d9f12161823f267179f46825734c188b6c75b09",
      "tree": "1b42652fea8f3fa7b8d1436bd9b752778f26e945",
      "parents": [
        "585391803ed7ec2a07618668ded1812aa9eb507a",
        "c34dc7cdeb5cae8ca4c731838aafe90ed4c9a2b8"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Sep 19 15:51:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 19 15:51:39 2014 +0000"
      },
      "message": "Merge \"Allow primary user profile owner to set device restrictions\" into lmp-dev"
    },
    {
      "commit": "dd31a10c7f194d70411c8fb8ca8c0ab6751dccb2",
      "tree": "86db4d462c3a906a865fec895483da6ff8508968",
      "parents": [
        "52ee328054eeafa4f1503073813d0b52e9e3e87d"
      ],
      "author": {
        "name": "Jessica Hummel",
        "email": "jhummel@google.com",
        "time": "Tue Sep 16 11:56:50 2014 +0100"
      },
      "committer": {
        "name": "Jessica Hummel",
        "email": "jhummel@google.com",
        "time": "Fri Sep 19 09:56:19 2014 +0000"
      },
      "message": "bug fix: Allow enableSystemApps to be called by profile and device owner.\n\nWe had an additional check for managed profile in there, so it wasn\u0027t working for device owners. Also needed to look at uninstalled packages.\n\nChange-Id: I4813f23b00d7905e92ade582ce082a6f295a322d\nBug: 17384318\n"
    },
    {
      "commit": "c34dc7cdeb5cae8ca4c731838aafe90ed4c9a2b8",
      "tree": "59d52438aef7f922ae643abb4d3c313da95a2d8e",
      "parents": [
        "1067b6e7edf573f41f00e7e90fd679f6e74daca6"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Sep 18 09:42:42 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Sep 18 15:14:26 2014 -0700"
      },
      "message": "Allow primary user profile owner to set device restrictions\n\nIn addition to device owners, profile owners on the primary user\ncan also set user restrictions that are necessary to lock down the\nuser.\n\nThis is to enable the case of a profile owner registered after setup\nwizard is completed, on the primary user.\n\nAlso make managed profile vs. profile wording consistent in the\nDevicePolicyManager docs.\n\nBug: 17555025\nChange-Id: Ib9d08b8af34a99b25e11757fa7dc83673a7deb32\n"
    },
    {
      "commit": "d616a3357872ca0142611576884df4495e7ccbd6",
      "tree": "4d07469c7b1d6c3259371a1b5f2e74f655e476ed",
      "parents": [
        "3e7115ed02e946c175cd38a94b1992da0b27829b"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Sep 12 09:05:19 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Sep 12 11:25:51 2014 -0700"
      },
      "message": "Prevent device owner registration after setup is complete\n\nThis change prevents adding a device owner after setupwizard\nhas finished provisioning. Only the new dpm shell command\ncan set a device owner.\n\nBug: 17316711\nChange-Id: I98bdfd9b8c8da3042111c45e2e7fd2b559fac510\n"
    },
    {
      "commit": "d09fbafa9242e67450c2f85807a159152d4761c8",
      "tree": "7d22060f5861a49fb5e5f60835920b59e50446cd",
      "parents": [
        "11f72c0d975cc9f3b9b800639c38c15e89e9be66",
        "b5ef162129ced7e9636052af6b7f08d677a01f13"
      ],
      "author": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Fri Sep 12 10:35:42 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 12 10:35:44 2014 +0000"
      },
      "message": "Merge \"Add new adb dpm (\u003d DevicePolicyManager) command\" into lmp-dev"
    },
    {
      "commit": "b5ef162129ced7e9636052af6b7f08d677a01f13",
      "tree": "f099a30cd7116e41a64ef8b94827813bb94a2b9a",
      "parents": [
        "c96e3927657558f0d01626c252cf480624749120"
      ],
      "author": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Mon Sep 08 17:49:01 2014 +0100"
      },
      "committer": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Fri Sep 12 11:33:59 2014 +0100"
      },
      "message": "Add new adb dpm (\u003d DevicePolicyManager) command\n\nAdds new adb command to execute DevicePolicyManager tasks. First subcommand\nallows us to set a device owner on a provisioned device (provided no accounts\nare associated with the device). This is required as GTS tests run on provisioned\ndevices. We plan to add more subcomands required for new GTS tests, such as the\nability to create a managed profile.\n\nBug: 17312478, 17316711\nChange-Id: I2613178ea82a6c6268e7f8012e74c4a852fea0d4\n"
    },
    {
      "commit": "26408ccd8e852d947e58021792bfc3b315e5948d",
      "tree": "8ac7bc2fe43ccf5639015a688ace43ae544b1a2e",
      "parents": [
        "2f67e237383ae6e76c44333ab79c6f0d1e3e568d"
      ],
      "author": {
        "name": "Bernhard Bauer",
        "email": "bauerb@google.com",
        "time": "Mon Sep 08 14:07:31 2014 +0100"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Sep 11 19:17:00 2014 +0100"
      },
      "message": "Add DevicePolicyManager PrivateKey mgmt\n\nAdditional device policy API to install keypairs to the keychain\nsilently.\n\nBug: 15065444\nChange-Id: Idc25774c9ab1a61080290bebd6f5c4f24e6ee2e0\n"
    },
    {
      "commit": "f58e532e015ef31d879ee51aeeb251349784717c",
      "tree": "8a1ab40c5c14943b12da70c5c70bbde48fc65bd1",
      "parents": [
        "c96e3927657558f0d01626c252cf480624749120",
        "8cd28b57ed732656d002d97879e15c5695b54fff"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Sep 11 16:46:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 11 16:46:34 2014 +0000"
      },
      "message": "Merge \"Apply cross-user restrictions to Shell\" into lmp-dev"
    },
    {
      "commit": "d86734b4695a92359ed38d6053ed1ce16a470634",
      "tree": "d5fee1d089da5cfdda9c6102a18f5d2244973051",
      "parents": [
        "e5fe4bc96d096d800d9da48d0a3ff68ee1f94000",
        "82735bcb1400cb5ab2da763a236a55927d87ab00"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Thu Sep 11 15:46:06 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 11 15:46:07 2014 +0000"
      },
      "message": "Merge \"Allow device owners to update LOCATION_MODE.\" into lmp-dev"
    },
    {
      "commit": "8cd28b57ed732656d002d97879e15c5695b54fff",
      "tree": "33f02a0e243e5c3d8889862c26af5accc0e4e98b",
      "parents": [
        "da6e6c888f81d3bd19ff1f3cf9b081b7f9b2a013"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sun Jun 08 17:54:27 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Sep 10 17:15:06 2014 -0700"
      },
      "message": "Apply cross-user restrictions to Shell\n\nEven though Shell user is allowed to perform cross-user actions,\nlock that path down if the target user has restrictions imposed by\nthe profile owner device admin that prevents access via adb.\n\nIf the profile owner has imposed DISALLOW_DEBUGGING_FEATURES, don\u0027t\nallow the shell user to make the following types of calls:\nstart activities, make service calls, access content providers,\nsend broadcasts, block/unblock packages, clear user data, etc.\n\nBug: 15086577\nChange-Id: I9669fc165953076f786ed51cbc17d20d6fa995c3\n"
    },
    {
      "commit": "a240d8377a3a45ddd4daccdb6b34f51644296486",
      "tree": "35e35a1bc6b13030c076e5f3035e1433f82e874c",
      "parents": [
        "450592d37c8cff57bec754f89f45a8a21297510d",
        "29ce85bab94a2d0dc98d9075ae86c8a282367117"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Sep 05 16:32:29 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 05 16:32:30 2014 +0000"
      },
      "message": "Merge \"Don\u0027t allow guests to install from unknown sources\" into lmp-dev"
    },
    {
      "commit": "82735bcb1400cb5ab2da763a236a55927d87ab00",
      "tree": "989b90b50df8acd11073fe22613f062bd3c029c6",
      "parents": [
        "0cd0b186c30f8c98b874d65be265053b44a9684c"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Thu Sep 04 16:43:30 2014 -0400"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Thu Sep 04 16:43:30 2014 -0400"
      },
      "message": "Allow device owners to update LOCATION_MODE.\n\nBug: 17388933\nChange-Id: If3267aa52c2611cf764a19bee019c312f6ebf5d1\n"
    },
    {
      "commit": "127343cb460c8d23f9fb59bcf4bcea6e9b9cea03",
      "tree": "fc5c5de14945214a3ad115bd82425d8629cf6aa9",
      "parents": [
        "37d611198fd6ffc6b94bdfcac3001599e8140a01",
        "66eb5218335886fed1978891bd0f2d04d2109563"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 04 20:41:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 04 20:41:39 2014 +0000"
      },
      "message": "Merge \"Eliminate deadlock by deferring wipe data call\" into lmp-dev"
    },
    {
      "commit": "66eb5218335886fed1978891bd0f2d04d2109563",
      "tree": "175efccd46dd31878b73d91c2d8e0aa22be1db53",
      "parents": [
        "e8f8bc0ad6f7f2c657b4360033d2c7571c800ccb"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 04 12:56:39 2014 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 04 12:56:39 2014 -0700"
      },
      "message": "Eliminate deadlock by deferring wipe data call\n\nThe call to RecoverySystem.rebootWipeUserData() was made while\nholding the lock to DevicePolicyManagerService. But it blocks\nwaiting for system_process\u0027 main thread to receive the ordered\nbroadcast complete callback. It won\u0027t receive that callback\nbecause Keyguard is running on the main thread and is concurrently\nblocked on DevicePolicyManagerService.\n\nBy moving the call to rebootWipeUserData() out of the synchronized\nblock the deadlock is eliminated.\n\nFixes bug 16870054.\n\nChange-Id: I3eb587211e5484859cc9dab7e80e5a1f6c85225d\n"
    },
    {
      "commit": "29ce85bab94a2d0dc98d9075ae86c8a282367117",
      "tree": "5e40611e1b745713229c8e440b3fdce670d0a787",
      "parents": [
        "b10e39e7166e2c4854a3adb2c2d8fa9c72d816bf"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Sep 03 17:30:43 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Sep 03 17:30:43 2014 -0700"
      },
      "message": "Don\u0027t allow guests to install from unknown sources\n\nAdded a user restriction when creating a guest.\nMade sure that guests can\u0027t install profile owners that\ncould undo the restriction.\n\nBug: 17359648\nChange-Id: Icdd919e8b1cbd79a69aacb76e573ec3449f18e4c\n"
    },
    {
      "commit": "808f6ef2ac2127ea0ea14e71c9599355b631a617",
      "tree": "c5d73a9367457ed7817c3db1e5224ddcc9630629",
      "parents": [
        "ef56dad5b82e3ff77e90382a108bcc7b13447e96"
      ],
      "author": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Thu Aug 28 17:15:54 2014 +0100"
      },
      "committer": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Wed Sep 03 11:50:55 2014 +0000"
      },
      "message": "Pass ComponentName to probing certificate methods\n\nPass ComponentName and check whether that admin is a profile owner on DPM\nget/has certificate methods (requested on the API review).\n\nAs per Change I55eec17e01489ab323f8a0e68b11592605a7b740, not keeping track of\nwhich admins installed which certificates for now:\n\n\"Having per-admin CA certificates would be a fair bit of work. The only MDMs\nwe\u0027re opening this up to for now are Device and Profile Owners which 100%\nmanage the profile so will be the only admin.\nIt seems like if we keep track of \"who installed which certs\" it\u0027ll be a little\npointless because the answer will always be \"the ProfileOwner\" for every single\none.\"\n\nBug: 17005622\nChange-Id: I45e9dac5236ab4ed235a341c208ac3cb6aba17da"
    },
    {
      "commit": "a8528c642090525f0e5f3c35dc3ba5a50ff17093",
      "tree": "c953dde5077e810fcac88897b5c47afab77204ad",
      "parents": [
        "2db754ac6e2cddf01801c450bb8200b01cddf410",
        "b53453fae037d67e421011936c8fdffe7ba43922"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Thu Aug 28 19:41:41 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 28 19:41:42 2014 +0000"
      },
      "message": "Merge \"Audio/Micrphone user restriction/multiuser updates.\" into lmp-dev"
    },
    {
      "commit": "65c27970821f022d5c256eba8b764f584210e683",
      "tree": "e9dcfbaf62007e5d9cd9957b0a3d0c9e8c3eb243",
      "parents": [
        "f6a5d341671c5b71dc8c3439e2db9ee022208eaa"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Aug 28 16:56:15 2014 +0100"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Aug 28 16:59:11 2014 +0100"
      },
      "message": "Relocate broken getCallingUserId() calls\n\nThis should not be invoked while the calling identity is cleared\nbecause it will return the current user rather than the calling user.\n\nBug: 17314802\nChange-Id: I587daa420b0976d41928ab7c34eeda2329c1341e\n"
    },
    {
      "commit": "729b2a6c2f330c10674bb3fc0c4f2eb57e3d0a43",
      "tree": "8c259ae44fd274be2fd0f1bef2344063c9886bb2",
      "parents": [
        "11cfe2c0369820835def8495303189ed398480ea"
      ],
      "author": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Wed Aug 27 18:01:58 2014 +0100"
      },
      "committer": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Thu Aug 28 10:56:18 2014 +0100"
      },
      "message": "Renamed getUninstallBlocked to isUninstallBlocked\n\nAs per API review.\n\nBug: 17297103\nChange-Id: Icb4ceded317b0df4deb0f5221512541a632e150b\n"
    },
    {
      "commit": "b53453fae037d67e421011936c8fdffe7ba43922",
      "tree": "fc6bc2a6580496a82b5391f360d53604c586cc0b",
      "parents": [
        "c0dce273a8af0263b660b57c1a05395a0bd2d2e5"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Fri Aug 22 11:42:43 2014 -0400"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Aug 27 16:25:00 2014 -0400"
      },
      "message": "Audio/Micrphone user restriction/multiuser updates.\n\n1. Persist microphone mute state.\n2. Set mute state for correct user.\n3. Check for settings restrictions as the correct user.\n\nBug: 17177502\nBug: 16701642\nChange-Id: Id8b6cd90c5caceb67fbec862f90aac7ec7a00b3c\n"
    },
    {
      "commit": "19d431f330bf1d89c92c0971dad5fa8f5950b16d",
      "tree": "877f6bb98318a1501329a36137fd8a208adfb192",
      "parents": [
        "0e917336a2e7ad8191988042800f4be443b5c69a",
        "9ed66da8dfd15001cebe8f7ef453718f41f9904d"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Aug 27 16:49:45 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 27 16:49:46 2014 +0000"
      },
      "message": "Merge \"Limit the settings profile/device owners can update.\" into lmp-dev"
    },
    {
      "commit": "9ed66da8dfd15001cebe8f7ef453718f41f9904d",
      "tree": "ab87ecc06384f26de0759c7ae7c0fc61daa6927d",
      "parents": [
        "98f8a04620cb5f5b381f782e76fc9dfdaae982f1"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Tue Aug 26 15:42:03 2014 -0400"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Aug 27 11:49:37 2014 -0400"
      },
      "message": "Limit the settings profile/device owners can update.\n\nBug: 16351901\nChange-Id: Id33a57ad651b5b7b58de0549eb90d5a1fe5c19c5\n"
    },
    {
      "commit": "0ced6272911f440843e9ff8e89b9fafdb49b243b",
      "tree": "63ec43e06b796cc8155a5696b2832e6e05700333",
      "parents": [
        "ffad70bb7efe08ab8f03cb93e783714232a101ac"
      ],
      "author": {
        "name": "Sander Alewijnse",
        "email": "salewijnse@google.com",
        "time": "Tue Aug 26 11:18:26 2014 +0100"
      },
      "committer": {
        "name": "Sander Alewijnse",
        "email": "salewijnse@google.com",
        "time": "Tue Aug 26 14:44:53 2014 +0100"
      },
      "message": "Provide lockdown of date/time device owners.\n\nFixed two minor issues with the screencapture as well.\nUpdated documentation and added enforceCrossUserPermission.\n\nBug:16948504\nChange-Id: I9a645dcf480a4a044879ba481bce964d06fe5153\n"
    },
    {
      "commit": "de3af82ce0c533a284df8d5afc49a475b003ea46",
      "tree": "3e2e879ad6c9633d67ee6c67fdd892a5abb66391",
      "parents": [
        "7d3734491516fdda47059f2a36c1de9fa39dd8a9",
        "4e7a65f15c80c2601fdb24e596f4a9af4926546a"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Aug 21 20:28:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 21 20:28:10 2014 +0000"
      },
      "message": "Merge \"Write device owner name to XML\" into lmp-dev"
    },
    {
      "commit": "4e7a65f15c80c2601fdb24e596f4a9af4926546a",
      "tree": "cb6d361fa6f474d2914c431e96adc349ae0354f2",
      "parents": [
        "c7f440dcd86ae88fc1b51e4394d66e4e80c9e53e"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Aug 21 15:34:25 2014 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Aug 21 15:50:48 2014 -0400"
      },
      "message": "Write device owner name to XML\n\nSo that it can be remembered.\n\nBug: 17153003\nChange-Id: I6fb96334f235348bc237cc52e09c2fe5ef1332b7\n"
    },
    {
      "commit": "d5c5c13c8505a27290a2540ff1f64c8753431cb1",
      "tree": "f72eb327918e8fcd1fcc3dbbea962612876e9d96",
      "parents": [
        "94f6878bbd98753aa60fd80f5a73b5f198579b04"
      ],
      "author": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Wed Aug 20 11:35:57 2014 +0100"
      },
      "committer": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Thu Aug 21 15:30:13 2014 +0100"
      },
      "message": "Rename get/setBlockUninstall() to get/setUninstallBlocked()\n\nAs requested in the API review\n\nBug: 17005622\nChange-Id: I1332ad11e588ab3fa409f2a28222608936cb383e\n"
    },
    {
      "commit": "8c5c37364776266d9d91bb35094a9755707833f7",
      "tree": "61fba2b697284e978f56e86fbc50d0bd53fb991b",
      "parents": [
        "e8847bd831552224d5c85ff2cf0adcf5b0580878",
        "115cd65d2a3417b506563e6b2d60c269d69efaef"
      ],
      "author": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Thu Aug 21 14:17:23 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 21 14:17:25 2014 +0000"
      },
      "message": "Merge \"Remove setApplicationsHidden\" into lmp-dev"
    },
    {
      "commit": "b9e468cb9d77abf57473436e29042e1b27d9f70b",
      "tree": "f157ece3f6f970274f364c36c38442caf6dba72e",
      "parents": [
        "671be93cbbd31526155169cff335d24cc620f5f1",
        "fa80a4faa3ab32f61742b684e832126dae8468e7"
      ],
      "author": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Thu Aug 21 10:54:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 21 10:54:26 2014 +0000"
      },
      "message": "Merge \"Add apis for whitelisting IMEs and accessibility services.\" into lmp-dev"
    },
    {
      "commit": "115cd65d2a3417b506563e6b2d60c269d69efaef",
      "tree": "b02119979b81a8cadbe78e6c0e150af690da4008",
      "parents": [
        "f860be88a9c8fca910f2d97694d102f627d06c71"
      ],
      "author": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Thu Aug 21 10:25:08 2014 +0100"
      },
      "committer": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Thu Aug 21 10:29:38 2014 +0100"
      },
      "message": "Remove setApplicationsHidden\n\nAs requested in the API review. This version (the one that takes an Intent) was used only in the DeviceAdminSample and some CTS tests.\n\nBug: 17005622\nChange-Id: I9984b22836417ad4d025302f61bd91704e9345a4\n"
    },
    {
      "commit": "fa80a4faa3ab32f61742b684e832126dae8468e7",
      "tree": "399edfb680ca4f5dbf3aa392956f0ddad4faab19",
      "parents": [
        "833dcd4bea5cadccaa55f9a06942bb36d01d73ac"
      ],
      "author": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Wed Aug 20 19:40:59 2014 +0100"
      },
      "committer": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Wed Aug 20 22:30:05 2014 +0100"
      },
      "message": "Add apis for whitelisting IMEs and accessibility services.\n\nAdds apis for device / profile owners to white list\nthe accessibility and input methods a user can enable.\n\nBug: 14469005\nChange-Id: I921888660d29a5370395db87adf75d4d106660c9\n"
    },
    {
      "commit": "6bd702538d90005add1cfc33746da19404090dc1",
      "tree": "7e2c16fbd334aff123794f7d1788f85adb61cc18",
      "parents": [
        "4746bc78ec242c29171a1963c4f3f9cac73f2084"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Aug 20 09:47:47 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Aug 20 20:25:10 2014 +0000"
      },
      "message": "Notify app widget hosts when cross-profile providers change.\n\n1. Notify the hosts in the group if a package gets white-listed or\n   un-white-listed for providing widgets across profiles.\n\n2. Notify hosts in the group for provider changes when a profile\n   is deleted.\n\nbug:17126070\n\nChange-Id: Ic719c1c68e45842d50decc95603f1d61583b8f02\n"
    },
    {
      "commit": "afe7a2c9c30393c83304ad0d30a6a32072ba1845",
      "tree": "64067ff4a84120d0a3034dbb42f2ed1930502546",
      "parents": [
        "2d268f3508e45ab87f8ced0194595c42daf6e7d5",
        "2cb384f42569f36e19ecee60da259d69048fdd85"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Aug 20 20:08:30 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 16 04:03:42 2014 +0000"
      },
      "message": "Merge \"Prevent profile owners from setting certain user restrictions.\" into lmp-dev"
    },
    {
      "commit": "2cb384f42569f36e19ecee60da259d69048fdd85",
      "tree": "b7ac24098d36c8e9d144b6434331878bccc6dd99",
      "parents": [
        "5e85359a36c14c0c568b73f138f6c8f4baad9b8e"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Aug 13 15:15:55 2014 -0400"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Aug 20 16:06:29 2014 -0400"
      },
      "message": "Prevent profile owners from setting certain user restrictions.\n\nBug: 16351901\nBug: 16701492\nChange-Id: Ie866bc24d2d7cc15f86c5b50062a730e099612a1\n"
    },
    {
      "commit": "255dd04271088590fedc46c8e22b2fd4ab142d39",
      "tree": "9b0087d4e1cee5335f4d55b037b5e3a6ff13a30f",
      "parents": [
        "5e85359a36c14c0c568b73f138f6c8f4baad9b8e"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Tue Aug 19 22:29:02 2014 +0200"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Wed Aug 20 14:25:18 2014 +0200"
      },
      "message": "Added notification color to all system notifications\n\nBug: 17128331\nChange-Id: I81a94510ef51b99916f314c0dd65852426a1fbeb\n"
    },
    {
      "commit": "95d9ad0f79c900db9bca1745100f14d0ec9cc133",
      "tree": "eb189f6d6a03aeb88648c17458c38ab372a481f4",
      "parents": [
        "9a888b9be1085200ebd16a5aa0ff761e5a0a739f",
        "48aacba761527a529c2b668c8151c7f98ff70524"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Mon Aug 18 13:37:01 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 16 04:32:18 2014 +0000"
      },
      "message": "Merge \"Fixes to lock task API from API review\" into lmp-dev"
    },
    {
      "commit": "d438deffad74ed5cc37b68100577215b9f08e6ff",
      "tree": "0ed71cbcb42ae6af13e9334b2d209d38a2872017",
      "parents": [
        "b7ebbded5f1512c5747acc0f06a42399d7710728",
        "3d9eb78fe91ab2479eb38443aed588e10421e31b"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Fri Aug 15 20:23:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 15 19:03:20 2014 +0000"
      },
      "message": "Merge \"Apply lockdowns when user restrictions are set.\" into lmp-dev"
    },
    {
      "commit": "3d9eb78fe91ab2479eb38443aed588e10421e31b",
      "tree": "23bb5e71c3f0ce4235dfb8c4d6deab9b87b6b92f",
      "parents": [
        "14a4e35208b7e97bbfa38f36130827c86bfafc2b"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Mon Aug 11 16:40:08 2014 -0400"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Fri Aug 15 16:16:38 2014 -0400"
      },
      "message": "Apply lockdowns when user restrictions are set.\n\nPreviously DMAgent would apply these lockdowns before/\nafter setting the matching user restrictions.\n\nBug: 16701642\nBug: 16945830\nBug: 16944983\nChange-Id: Ib4f7145055687f12408d6ccacd8e6380406a32b2\n"
    },
    {
      "commit": "29564cd24589867f653cd22cabbaac6493cfc530",
      "tree": "c5ee0b88f293d292d95012844097acd172a7a72a",
      "parents": [
        "bdc78678dedc6b66b9584948b908cd8cf77c6b30"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Aug 07 10:57:40 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Aug 15 13:37:03 2014 +0100"
      },
      "message": "Remove system_server classes from the boot image.\n\nWe set the system_server classpath in the environment\n(like we do with BOOTCLASSPATH). After the zygote forks\nthe system_server, we dexopt the classpath (if needed)\nand then launch the system server with the correct\nPathClassLoader. This needed several small / medium\nrefactorings :\n\n- The logic for connecting to installd is now in a separate\n  class and belongs in the system_server.\n- SystemService / SystemServiceManager have now moved to\n  classes.jar. They are only used from there, and since they\n  use Class.forName, we want them to be loaded by the\n  system_server classloader, and not the bootclassloader.\n- BootReceiver now moves to frameworks.jar, because it is\n  used by ActivityThread and friends.\n\nbug: 16555230\n\nChange-Id: Ic84f0b2baf611eeedff6d123cb7191bb0259e600\n"
    },
    {
      "commit": "48aacba761527a529c2b668c8151c7f98ff70524",
      "tree": "f005c849cb57791dfe72c2655633569bdc52ff72",
      "parents": [
        "d4c25dbe67ca1c46105d09905be7bd6fdcecf35b"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Aug 13 16:29:08 2014 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Aug 14 11:37:58 2014 -0400"
      },
      "message": "Fixes to lock task API from API review\n\nAdding ComponentNames and some splitting/renaming of broadcasts.\n\nBug: 17005622\nChange-Id: I9ece3553310fb20b0c3c3e4032b408e86384363a\n"
    },
    {
      "commit": "b8b4774e6185058b179a31f8c1a2dd806413e31b",
      "tree": "feee3ddf905ce2c40e81b25dea8cc23a70a1c415",
      "parents": [
        "3c9a3501651aa8ad4f289e89119a6c0b4bdaf78a"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Aug 07 15:55:18 2014 +0200"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Aug 07 15:55:21 2014 +0200"
      },
      "message": "Fix NPE in DevicePolicyManagerService that crashed SystemUI\n\nBug: 16857795\nChange-Id: I6234f03c4ee31311af9f9c556b790594ee1a8b2f\n"
    },
    {
      "commit": "00f201e41b5b496327b9578e6fb00fad8b4d9da9",
      "tree": "0c09aedf9068ddb428430cd16108759ef25db26c",
      "parents": [
        "faa4b3cb06f3b10ece1f1d246a3530fc2f30a6da",
        "fe0f24cc92b04e03cac3f807859721f1ce7ef54a"
      ],
      "author": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Thu Aug 07 09:59:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 05 00:35:13 2014 +0000"
      },
      "message": "Merge \"Wipe only managed profile when max number of incorrect passwords exceeded\" into lmp-dev"
    },
    {
      "commit": "fe0f24cc92b04e03cac3f807859721f1ce7ef54a",
      "tree": "1ef3bbf51014c4775a686bb2808978d60549ba0e",
      "parents": [
        "3f1ddf83a4faba3dec71ed7eebe1835f4685cf60"
      ],
      "author": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Wed Aug 06 16:20:56 2014 +0100"
      },
      "committer": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Wed Aug 06 18:10:16 2014 +0100"
      },
      "message": "Wipe only managed profile when max number of incorrect passwords exceeded\n\nWhen the maximum number of retries that has been exceeded is not for the primary profile of the user, wipe only the profile that set that policy (e.g. the managed profile) rather than the entire user. At the moment the whole device is wiped if the max number of incorrect passwords for a managed profile is reached, as the password is shared with the USER_OWNER.\n\nBug: 14453697\nChange-Id: I5746de104133c0ea0a51d75b9c92e1516d365d8c\n"
    },
    {
      "commit": "318f91b784e8f71b25e6de2f22d8e24412477ae2",
      "tree": "f11fc2c49364dffee844731314ae109a98a4c595",
      "parents": [
        "dbed893ba88b76f88ea51d8666653458955cdc67"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Aug 06 19:05:57 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Aug 06 19:05:57 2014 -0700"
      },
      "message": "Fix NPE in device policy manager service.\n\nChange-Id: I796359f903077eb0ef825ed926557f1a13b2e4c4\n"
    },
    {
      "commit": "976e8bd2017d0263216c62111454438cc0f130e3",
      "tree": "5cf592fb85841f9e41d3bf6b43422641c3609ab2",
      "parents": [
        "c79eabcd3c6306bb2ec75f9584b79e661f265127"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 16 15:12:03 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Aug 05 20:57:20 2014 +0000"
      },
      "message": "Allow adding widgets from user profiles.\n\nThe goal of this change is to enable support for appwidget from\nuser profiles to the user main profile. A user profile is a user\nwhich is associated as a child of the main user profile. For example,\na user may have a personal (parent) and corporate (child) profile.\nThe device policy should be able to control whether adding a widget\nfrom a child profile and given packages is allowed. This change\nassumes that all packages from managed profiles are white listed.\nAnother change will add the device policy changes.\n\nChange-Id: I267260b55d74c48b112a29979a9f59eef7a8194e\n"
    },
    {
      "commit": "a87863a8bddb033ca9ace11e7d78932d70d08ce3",
      "tree": "4bbd16fdf6b8a8149309b5f3f287a631fba5640b",
      "parents": [
        "d5ce9759524740cfb02638fd1d7b44315957b422"
      ],
      "author": {
        "name": "Sander Alewijnse",
        "email": "salewijnse@google.com",
        "time": "Tue Jul 29 12:01:38 2014 +0100"
      },
      "committer": {
        "name": "Sander Alewijnse",
        "email": "salewijnse@google.com",
        "time": "Thu Jul 31 09:16:46 2014 +0000"
      },
      "message": "Fix deadlock window manager and device policy manager.\n\nRemoved all communication from wm to device policy manager.\nAdded initialization of cache in wm by dpms.\n\nChange-Id: Ifa0b8bfcd625464b156d5cc0fb66d342deda1c27\n"
    },
    {
      "commit": "50c360790ca4c061aa6a1d94e06bd7e25b0f0436",
      "tree": "a92c056e89af275a76e6271cc76377631ce3a628",
      "parents": [
        "29762c3dfb7a510c23f021f6797840ebd80663af"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Wed Jul 30 15:09:34 2014 +0100"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Wed Jul 30 14:18:22 2014 +0000"
      },
      "message": "Don\u0027t turn off screen after wiping user profiles\n\nThe activity manager should know when to lock the screen. If an admin\ndoes want this to happen then they should be able to run both commands\nin succession.\n\nAlso rectifies some creative code styling in the same DPM method.\n\n@bug 15558805\n\nChange-Id: I8918184a4585aa8b061eb4a68edc2ec6805d8127\n"
    },
    {
      "commit": "bf3a9465483976dcd5692b619b47132c2b95f73e",
      "tree": "875984723b2cf6427152f30018fd2617dd0c4428",
      "parents": [
        "acb5b7f0842c02267fa6c88255e5f2ccdb307c9c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Jul 28 14:26:42 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jul 29 23:43:32 2014 +0000"
      },
      "message": "Set profile owner via an intent\n\npriv apps can request to become a profile owner after setup has\ncompleted. This will pop up a consent dialog (in Settings).\n\nAlso, clean up profile owner concept to be a component name.\n\nChange-Id: I5e8532866e8018f61836c4e84fbbadb6150218ae\n"
    },
    {
      "commit": "604e7558ef32098644b2f9456d7743a07ae789dc",
      "tree": "c8e5ec30a280a3a26768a0df8c5f2e75f29e0d32",
      "parents": [
        "3af1afb0696fac2b3e0dd537048c0e6d11d2df03"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Jul 18 19:00:02 2014 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Jul 28 21:32:01 2014 -0700"
      },
      "message": "Add new DevicePolicyManager API to allow fine-grained TrustAgent management\n\nThis adds a new feature that allows a device admin to specify a\nwhitelist of features that are allowed for the given admin.\n\nChange-Id: I83f853318efbcf72308532d0a997374f73fa9c10\n"
    },
    {
      "commit": "ea4f01070a9c8f5147eb228c413a84de78d98973",
      "tree": "4bd17f77bd7f4baa199d4f1f7a5e8eed58d0207a",
      "parents": [
        "14f2abff289e4a13d0a096cd73744c6366106f52",
        "401de1785eccc946ed6c35e9b7fccab92b2022af"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Mon Jul 28 14:03:41 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 24 15:36:21 2014 +0000"
      },
      "message": "Merge \"Remove the profile/device owner user restriction bypass.\" into lmp-dev"
    },
    {
      "commit": "401de1785eccc946ed6c35e9b7fccab92b2022af",
      "tree": "83829225119c31b1c2c191b520f3727f72c3543e",
      "parents": [
        "f0f0f7ca66e15c5cebfbcf38a8d1e576b3e6e335"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Thu Jul 24 18:21:29 2014 -0400"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Sat Jul 26 17:13:48 2014 +0000"
      },
      "message": "Remove the profile/device owner user restriction bypass.\n\nBug: 16566096\n\nChange-Id: I4a56046df44d36d82edc64fc727e8cad5dc75382\n"
    },
    {
      "commit": "0da218be00d37a20866059c54a3dd5e8bf17e20b",
      "tree": "132e8a9a9cc158baf9ba64bb815529e450034f87",
      "parents": [
        "ed1391a9297db5e2a8671bbf2d83654ee5d28702"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Jul 25 08:03:00 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Jul 25 08:03:00 2014 -0700"
      },
      "message": "Don\u0027t update user\u0027s setup state unless it changed\n\nEliminates an extra write on every boot.\n\nBug: 16416936\nChange-Id: I9ca16676c1b39dafeed3fc744a69c5bde819990c\n"
    },
    {
      "commit": "3f7777fa4f1d392e18bad39edcd4539880c52ff9",
      "tree": "c16f19d39998903c1df40aab37ae185ec83fc923",
      "parents": [
        "91a801d42f3acc35404da51ba26605093922503a"
      ],
      "author": {
        "name": "Nicolas Prevot",
        "email": "nprevot@google.com",
        "time": "Thu Jul 24 15:58:39 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Prevot",
        "email": "nprevot@google.com",
        "time": "Mon Jul 28 10:47:12 2014 +0100"
      },
      "message": "Storing the app who sets a CrossProfileIntentFilter.\n\nWhen we add a CrossProfileIntentFilter, we store the package and userId of the calling app\ninside the CrossProfileIntentFilter.\nWhen an app calls clearCrossProfileIntentFilters, we only remove the filters that the calling app\nhas set itself.\n\nBUG: 16537557\n\nChange-Id: I6e7bc859383ea66553d9f4230365df8ba27525f3\n"
    },
    {
      "commit": "d2a1eec400128f39e1b223a720a88dbd395f3e6e",
      "tree": "e0375970d7d1d412071be022c8a41a18307ba5f3",
      "parents": [
        "dedc4a379ff2697d5abce37aa422918a01ad0676"
      ],
      "author": {
        "name": "Sander Alewijnse",
        "email": "salewijnse@google.com",
        "time": "Wed Jul 09 12:57:05 2014 +0100"
      },
      "committer": {
        "name": "Sander Alewijnse",
        "email": "salewijnse@google.com",
        "time": "Wed Jul 23 13:44:28 2014 +0000"
      },
      "message": "Add Device Policy API to disable screen capture.\n\nWindowManager will set secure flag on SurfaceControl for\nall windows of a flagged user to prevent screen capture.\nAPI is consistent with the camera disable API.\n\nChange-Id: Ib180f67f1ad827b6f4aca2af615274256cce58f4\n"
    },
    {
      "commit": "8ddeee98b8b3d8b7379d9044b1ad0ad12ead004b",
      "tree": "326969eec9164be9042fd8b395f6ebc355203960",
      "parents": [
        "368c5adaf7a1141bfee3cf622efbc7285e370979"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 22 16:12:59 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 22 18:27:52 2014 -0700"
      },
      "message": "Use foreground broadcast to get device admin msg.\n\nUsing a background broadcast is bad, it can take a long\ntime to get the message back, either accidentally (backed up\nbehind other broadcasts) or from a deliberately malicious\nadmin.\n\nChange-Id: Ib7491f8e27dacdc002562aef027ee4664e78e97b\n"
    },
    {
      "commit": "9c2be6c7ba3d7dce58e8f4ec1617698c54ae808e",
      "tree": "b699b5cab393ed587f17cb07f05764ba02c585dd",
      "parents": [
        "2dcab18c6c9381122df6e06a93912e53dff69408"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Tue Jul 22 16:47:40 2014 +0100"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Tue Jul 22 21:35:09 2014 +0000"
      },
      "message": "Stop double-loading device admins\n\nloadSettingsLocked() was being called twice for USER_OWNER at\nsystemReady(), doubling the number of admin entries at every boot.\n\nAlso guards against double-adding admins which appear twice in the\nsame XML file, favouring more recently-refreshed entries for\nbackward compatibility.\n\nPreviously an application calling in with \u0027refreshing \u003d true\u0027 would\ndouble-insert whatever admin was being refreshed into its user\u0027s list\nof device admins. This is fixed too.\n\n@bug 16416936\n\nChange-Id: Idd147aa130e6bce7bcc40532f0a7fb07117b3151\n"
    }
  ],
  "next": "eee5094f96c630661ca563d70de244ccbbd53579"
}
