)]}'
{
  "log": [
    {
      "commit": "02ffba940ca96988ed3e7774c606b43c58373b5e",
      "tree": "9d829654e361a899b1de8f0621716774e75857ec",
      "parents": [
        "998b692d888765d10827264c953b227439fbf365"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 08 16:13:15 2013 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Mar 13 16:42:38 2013 -0700"
      },
      "message": "Handle finished bugreports, share from private.\n\nShow notification when a bugreport is finished, letting the user\nlaunch a SEND_MULTIPLE intent to share them.  Add dialog that warns\nuser about contents before sharing.  Since bugreports are now stored\nin private app data of the Shell app, use FileProvider to build Uris\nthat we can grant others access to.\n\nDefine BUGREPORT_FINISHED as being a protected broadcast.  Delete\nolder bugreports automatically to reclaim disk space.  Migrate any\nIntent extras to ClipData when building PendingIntents.\n\nAdd --receiver-permission support to am shell command.\n\nBug: 7005318\nChange-Id: If6c607dbcf137362d5887eac482ff7391563890f\n"
    },
    {
      "commit": "294b512ecaa98a6a8ef12285ad14e7a4091b5d57",
      "tree": "d89983eed02f4cc3fc48fb50cd0d779ff345752b",
      "parents": [
        "2042cc403a6eba2de1c5220e8402b045bdf24192"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 19 14:08:59 2013 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 08 15:08:10 2013 -0800"
      },
      "message": "DO NOT MERGE - Full backup/restore now handles OBBs sensibly\n\nOBB backup/ restore is no longer handled within the target app\nprocess.  This is done to avoid having to require that OBB-using\napps have full read/write permission for external storage.\n\nThe new OBB backup service is a new component running in the\nsame app as the already-existing shared storage backup agent.\nThe backup infrastructure delegates backup/restore of apps\u0027\nOBB contents to this component (because the system process\nmay not itself read/write external storage).\n\nFrom the command line, OBB backup is enabled by using new\n-obb / -noobb flags with adb backup.  The default is noobb.\n\nFinally, a couple of nit fixes:\n\n- buffer-size mismatch between the writer and reader of chunked\n  file data has been corrected; now the reading side won\u0027t be\n  issuing an extra pipe read per chunk.\n\n- bu now explicitly closes the transport socket fd after\n  adopting it. This was benign but triggered a logged\n  warning about leaked fds.\n\n(Cherrypicked)\n\nChange-Id: I471f6348abcccb7bf1e1710b7beda9f23de53e14\n"
    },
    {
      "commit": "a83cab0001ca4d90abe622c22a7af1b0da54f739",
      "tree": "51bec7849647a103e8d24179201e7f7e95e46b01",
      "parents": [
        "09ed05ceaecc5fca46e25fe9bd9e8c0ee61fd31d"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 07 17:50:11 2013 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 07 17:50:11 2013 -0800"
      },
      "message": "Do not hang in pm clear on an invalid package name\n\nThe Activity Manager was not properly informing the observer that\nthe operation had concluded (unsuccessfully).\n\nBug 8222595\n\nChange-Id: I8234e32d8edf4112c8c7a5e20e341d0b41e23014\n"
    },
    {
      "commit": "67df64b3a48a8157d08a98fa90135d0ac0ee621c",
      "tree": "d390d5c537c976a14688e24c1f9a8a213840ff29",
      "parents": [
        "0ffc81c1ada65b4ef4febaacf044e9fa62309b87"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Dec 14 12:09:36 2012 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Mar 06 09:49:44 2013 -0800"
      },
      "message": "Shared accounts and sharing of apps\n\nAPI and preliminary implementation for sharing primary user accounts with a secondary user.\nAbstractAccountAuthenticator has new methods to retrieve and apply a bundle of credentials\nto clone an account from the primary to a restricted secondary user. The AccountManagerService\ninitiates the account clone when it starts up the user and detects that the user has\na shared account registered that hasn\u0027t been converted to a real account.\n\nAccountManager also has new hidden APIs to add/remove/get shared accounts. There might be\nfurther improvements to this API to make shared accounts hidden/visible to select apps.\n\nAccountManagerService has a new table to store the shared account information.\n\nAdded ability in PackageManager to install and uninstall packages for a secondary user. This\nis required when the primary user selects a few apps to share with a restricted user.\n\nRemove shared accounts from secondary users when primary user removes the account.\n\nChange-Id: I9378ed0d8c1cc66baf150a4bec0ede56f6f8b06b\n"
    },
    {
      "commit": "c2235472dacd31aa30ffc13de2c29488c3b6c338",
      "tree": "e2f8be37960234ee5c5afb6823d66999e9a10712",
      "parents": [
        "9fbdda42a2acff8179c251f6455fd3e2c9971545",
        "f7497c9e551dd3bcbb7438211f5022cc6341c527"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Tue Feb 26 18:04:33 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 26 18:04:33 2013 +0000"
      },
      "message": "am f7497c9e: am 755205ad: Merge \"Fix spelling error s/SORT_OREDER/SORT_ORDER/ in \"content --help\"\"\n\n* commit \u0027f7497c9e551dd3bcbb7438211f5022cc6341c527\u0027:\n  Fix spelling error s/SORT_OREDER/SORT_ORDER/ in \"content --help\"\n"
    },
    {
      "commit": "64d0b3f9186bfb41cd14203d11f34c6fe0121945",
      "tree": "78f214cd7c8aa66270205161057b75e388948255",
      "parents": [
        "08a92a335fd84ca427b55c6c2d39f72970d82b76"
      ],
      "author": {
        "name": "Martin Olsson",
        "email": "martin@minimum.se",
        "time": "Tue Feb 26 17:54:39 2013 +0100"
      },
      "committer": {
        "name": "Martin Olsson",
        "email": "martin@minimum.se",
        "time": "Tue Feb 26 17:54:39 2013 +0100"
      },
      "message": "Fix spelling error s/SORT_OREDER/SORT_ORDER/ in \"content --help\"\n\nChange-Id: I8f869c9d2243ae8ff414399b7d6835c7ca74d500\nSigned-off-by: Martin Olsson \u003cmartin@minimum.se\u003e\n"
    },
    {
      "commit": "33c29b0e16a98753aecad894cbc344a87a6307a5",
      "tree": "1ea25e19fe365591e86513617833f56a6519d3c4",
      "parents": [
        "f9b9ead5d4f7bee34ec8a6b083065b624a7f6809"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Feb 19 16:42:16 2013 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Feb 19 16:42:16 2013 -0800"
      },
      "message": "Use BUILD_PREBUILT to install the shell script\n\nNOTICE files will be picked up automatically.\n\nChange-Id: Ia4938aff013f1c010cbbfceacf5685722c86c39a\n"
    },
    {
      "commit": "c652de8141f5b8e3c6bcf8916842b6e106413b1a",
      "tree": "d3be73e9b665365bdacd01cfc66faa24054f5a9c",
      "parents": [
        "736ef1e9dedbdd0c24e27f170034f2f869fd083f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 15 16:32:56 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 19 12:08:58 2013 -0800"
      },
      "message": "Implement display overscan support.\n\nThe window manager now keeps track of the overscan of\neach display, with an API to set it.  The overscan impacts\nhow it positions windows in the display.  There is a new set\nof APIs for windows to say they would like to go into the\noverscan region.  There is a call into the window manager to\nset the overscan region for a display, and it now has a\nconcept of display settings that it stores presistently.\n\nAlso added a new \"wm\" command, moving the window manager\nspecific commands from the \"am\" command to there and adding\na new now to set the overscan region.\n\nChange-Id: Id2c8092db64fd0a982274fedac7658d82f30f9ff\n"
    },
    {
      "commit": "50707cc8206f0d257ba83de2f1f99c3eaa13a4bd",
      "tree": "cdb9121fe11da7ac68b8786cd1b54aff78b63024",
      "parents": [
        "cd3b804e114c06b111fb0ad049c8845475a11a9b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 08 15:32:05 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 08 17:18:03 2013 -0800"
      },
      "message": "Fix issue #8133857: Tracking ANR in Gallery\n\nReworking the locking in resources so that we never hold the\nstate lock while calling in to potential long running operations.\nThis means the mTmpValue can no longer be final (since we need\nto use it while the lock isn\u0027t held), so a new field needs to\nbe added as the lock and everything that touches mTmpValue must\ndeal with it being null, restoring the value in there when\npossible, etc.\n\nChange-Id: Ie5ffd0f66e5f2d0e869a62d72e7a55b1c74fe872\n"
    },
    {
      "commit": "f51f61269aacdfcf737b2c32b6b216c48ab61e65",
      "tree": "33839b315b97323df81f9638c8bb085241f017cc",
      "parents": [
        "b86147910877f1aae0733f05a9a93b91101e67e2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 04 18:23:34 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 05 11:56:12 2013 -0800"
      },
      "message": "App ops: new operations for SMS.\n\nImplementation required a new framework feature\nto associate an app op with a broadcast.\n\nChange-Id: I4ff41a52f7ad4ee8fd80cbf7b394f04d6c4315b3\n"
    },
    {
      "commit": "f265ea9d8307282ff1da3915978625a94fc2859e",
      "tree": "4e92b5de30239c1808a395cb49c9b17fe28ccffb",
      "parents": [
        "7a4ecc957d437ad4914988edc7593570f1e43f79"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 31 15:00:51 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 01 15:14:29 2013 -0800"
      },
      "message": "App ops: vibration, neighboring cells, dialing, etc.\n\nImprove handling of vibration op, so that apps are\nbetter blamed (there is now a hidden vibrator API that\nsupplies the app to blame, and the system now uses this\nwhen vibrating on behalf of an app).\n\nAdd operation for retrieving neighboring cell information.\n\nAdd a new op for calling a phone number.  This required\nplumbing information about the launching package name through\nthe activity manager, which required changing the internal\nstartActivity class, which required hitting a ton of code that\nuses those internal APIs.\n\nChange-Id: I3f8015634fdb296558f07fe654fb8d53e5c94d07\n"
    },
    {
      "commit": "6fc736971a66eb4b461931a5e972d51b65bfa68f",
      "tree": "91c61b24a636c4d11b4ae23d915f31492472dc2a",
      "parents": [
        "8c47e856b067057b5fcbb6eccfc79d1da4cff8f1",
        "d2c0c1021e7da8b2a4d9a6e61d52766381fca23f"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Jan 29 20:52:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 20:52:44 2013 +0000"
      },
      "message": "Merge \"Implement support for method calls in the `content` tool.\""
    },
    {
      "commit": "d2c0c1021e7da8b2a4d9a6e61d52766381fca23f",
      "tree": "c3d3672fcc0ab1a8e6da6abf39edc00e9c7270ba",
      "parents": [
        "572ec703d5b647cb7de4f30f2db4dc35a5e1a17e"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Jan 29 13:47:04 2013 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Jan 29 14:27:21 2013 -0500"
      },
      "message": "Implement support for method calls in the `content` tool.\n\n  $ content call\n    --uri content://com.example\n    --method methodname\n    [--arg optional_string_arg]\n    [--extra name:s:foo --extra value:i:0]\n\nThe URI is just used to resolve the provider. --extra has\nthe same syntax as --bind.\n\nChange-Id: I98cb89f0174a00e7c29ca0d8c8d809d453de3623\n"
    },
    {
      "commit": "d0fd54648ca6249f56cf469c57181b5a7bbb71d0",
      "tree": "4c710f5a98e913d87290a312b89a46370847ed60",
      "parents": [
        "5924dc4d7a42d04011d2e67aa3f9e28b7d940681",
        "80943d8daa6ab31ab5c486d57aea406aa0730d58"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 03:16:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 03:16:40 2013 +0000"
      },
      "message": "Merge \"Adding UI test automation APIs.\""
    },
    {
      "commit": "80943d8daa6ab31ab5c486d57aea406aa0730d58",
      "tree": "cb7738eff465941484aac3eb6ba15ba365aea576",
      "parents": [
        "64cae1a608c196c2bd1d9e7cfd2a1632fd0e5b83"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jan 02 10:25:37 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 22 17:56:53 2013 -0800"
      },
      "message": "Adding UI test automation APIs.\n\nThis change adds APIs support for implementing UI tests. Such tests do\nnot rely on internal application structure and can span across application\nboundaries. UI automation APIs are encapsulated in the UiAutomation object\nthat is provided by an Instrumentation object. It is initialized by the\nsystem and can be used for both introspecting the screen and performing\ninteractions simulating a user. UI test are normal instrumentation tests\nand are executed on the device.\n\nUiAutomation uses the accessibility APIs to introspect the screen and\na special delegate object to perform privileged operations such as\ninjecting input events. Since instrumentation tests are invoked by a shell\ncommand, the shell program launching the tests creates a delegate object and\npasses it as an argument to started instrumentation. This delegate\nallows the APK that runs the tests to access some privileged operations\nprotected by a signature level permissions which are explicitly granted\nto the shell user.\n\nThe UiAutomation object also supports running tests in the legacy way\nwhere the tests are run as a Java shell program. This enables existing\nUiAutomator tests to keep working while the new ones should be implemented\nusing the new APIs. The UiAutomation object exposes lower level APIs which\nallow simulation of arbitrary user interactions and writing complete UI test\ncases. Clients, such as UiAutomator, are encouraged to implement higher-\nlevel APIs which minimize development effort and can be used as a helper\nlibrary by the test developer.\n\nThe benefit of this change is decoupling UiAutomator from the system\nsince the former was calling hidden APIs which required that it is\nbundled in the system image. This prevented UiAutomator from being\nevolved separately from the system. Also UiAutomator was creating\nadditional API surface in the system image. Another benefit of the new\ndesign is that now test cases have access to a context and can use\npublic platform APIs in addition to the UiAutomator ones. Further,\nthird-parties can develop their own higher level test APIs on top\nof the lower level ones exposes by UiAutomation.\n\nbug:8028258\n\nAlso this change adds the fully qualified resource name of the view\u0027s\nid in the emitted AccessibilityNodeInfo if a special flag is set while\nconfiguring the accessibility service. Also added is API for looking\nup node infos by this id. The id resource name is relatively more stable\ncompared to the generaed id number which may change from one build to\nanother. This API facilitate reuing the already defined ids for UI\nautomation.\n\nbug:7678973\n\nChange-Id: I589ad14790320dec8a33095953926c2a2dd0228b\n"
    },
    {
      "commit": "fd7adedebf88427162a3ce27fcc9cfd3893c869d",
      "tree": "d9dfb04e5d0972a6ae7bf92431b0d48925e97b48",
      "parents": [
        "cc7433470f00fac3bbe7835de3ded4b9bf121244"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 22 17:10:23 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 22 17:10:23 2013 -0800"
      },
      "message": "Add new disabled state for \"optional\" built-in apps.\n\nThe disabled state allows you to make an app disabled\nexcept for whatever parts of the system still want to\nprovide access to them and automatically enable them\nif the user want to use it.\n\nCurrently the input method manager service is the only\npart of the system that supports this, so you can put\nan IME in this state and it will generally look disabled\nbut still be available in the IME list and once selected\nswitched to the enabled state.\n\nChange-Id: I77f01c70610d82ce9070d4aabbadec8ae2cff2a3\n"
    },
    {
      "commit": "d8e1dbb6bc1fbaf4f2e38c3ba92ced94270deaac",
      "tree": "5f6d8b2c0e66c99289ae085cb6a6a3be168eb000",
      "parents": [
        "f25febf01453733e8bdd1ac241ecd9d3bcbef475"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 17 17:47:37 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 18 13:02:26 2013 -0800"
      },
      "message": "Rework ParceledListSlice to be much easier to use.\n\nTake advantage of this to return better information about\npackages filtered by permissions -- include the permissions\nthey have in the requested array.\n\nAlso fix issue #8026793 (Contact picture shows default pic\nwhile searching for a contact in qsb) by using the base\npackage name of the Context when reporting the app name\nof an operation.  Otherwise you could make a resource-only\ncontext for another application and do calls through that\nand get reported as the wrong app.\n\nChange-Id: I5e0488bf773acea5a3d22f245641828e1a106fb8\n"
    },
    {
      "commit": "35654b61e8fe7bc85afcb076ddbb590d51c5865f",
      "tree": "0f42a90b4deaa0156d84df5d79b78cd6f2ac8807",
      "parents": [
        "8a8b047f2d28f6b2d728731a7e71eeaf16f89700"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jan 14 17:38:02 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 16 12:11:01 2013 -0800"
      },
      "message": "More work on App Ops service.\n\nImplemented reading and writing state to retain information\nacross boots, API to retrieve state from it, improved location\nmanager interaction to monitor both coarse and fine access\nand only note operations when location data is being delivered\nback to app (not when it is just registering to get the data at\nsome time in the future).\n\nAlso implement tracking of read/write ops on contacts and the\ncall log.  This involved tweaking the content provider protocol\nto pass over the name of the calling package, and some\ninfrastructure in the ContentProvider transport to note incoming\ncalls with the app ops service.  The contacts provider and call\nlog provider turn this on for themselves.\n\nThis also implements some of the mechanics of being able to ignore\nincoming provider calls...  all that is left are some new APIs for\nthe real content provider implementation to be involved with\nproviding the correct behavior for query() (return an empty\ncursor with the right columns) and insert() (need to figure out\nwhat URI to return).\n\nChange-Id: I36ebbcd63dee58264a480f3d3786891ca7cbdb4c\n"
    },
    {
      "commit": "6b77645aa9ac51ce33ea67adba226aaf1a6e8846",
      "tree": "0eb1ff1cf5bbe1e508596462396c03d878fd9c26",
      "parents": [
        "87ed0a10f5cb563c0a06d22a40472b4e88348e9b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Nov 02 15:40:32 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 14 08:45:52 2012 -0800"
      },
      "message": "Switch keystore to binder\n\nChange-Id: I9fa1fc05068bee1eed3f618fb32f70cf3d4c05d4\n"
    },
    {
      "commit": "2e59369dca975092751b163b803fd27d48d9aca6",
      "tree": "91d994aae4ca4ab50e5339eea6035325214a62ff",
      "parents": [
        "4299f63e54dceeaaa44a057ba03f0881834491ec"
      ],
      "author": {
        "name": "rpcraig",
        "email": "rpcraig@tycho.ncsc.mil",
        "time": "Wed Nov 14 10:04:38 2012 -0500"
      },
      "committer": {
        "name": "rpcraig",
        "email": "rpcraig@tycho.ncsc.mil",
        "time": "Wed Nov 14 10:16:03 2012 -0500"
      },
      "message": "Bug fix on installd with SELinux enabled kernel.\n\nsetfilecon is not required on libsymlinks when target\ndoesn\u0027t exist. A bootloop is caused without this\nchange.\n\nChange-Id: I96dbd4b1f47a752bfcaf6016c81fd43083c4a6e1\nSigned-off-by: rpcraig \u003crpcraig@tycho.ncsc.mil\u003e\n"
    },
    {
      "commit": "7b172a49a90ea6784dbfe0002474f9d4fd4ace1a",
      "tree": "05db15b0b2b922fa644199d48d8769624bacbe34",
      "parents": [
        "e4d08f11c49ff4c554df80c12fa2b5b04831e2f5",
        "58ed5d748c0b9b64845975ef5844ad313de7c3f6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 13:08:25 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 07 13:08:25 2012 -0800"
      },
      "message": "am 58ed5d74: am 768d9e1a: Merge \"Correct executable bit for source files\"\n\n* commit \u002758ed5d748c0b9b64845975ef5844ad313de7c3f6\u0027:\n  Correct executable bit for source files\n"
    },
    {
      "commit": "58ed5d748c0b9b64845975ef5844ad313de7c3f6",
      "tree": "507af3879bc894eb854712a1fe6c0953805a895c",
      "parents": [
        "9197d170b770f2b87abd0cd0e13dcf71e5a181c2",
        "768d9e1a72ceee7d4a5f608776b87b62d6ce4a04"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 11:52:12 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 07 11:52:12 2012 -0800"
      },
      "message": "am 768d9e1a: Merge \"Correct executable bit for source files\"\n\n* commit \u0027768d9e1a72ceee7d4a5f608776b87b62d6ce4a04\u0027:\n  Correct executable bit for source files\n"
    },
    {
      "commit": "3a084af2e90849aaa8beb3a610189e3399c63ea0",
      "tree": "ba4b87d227674fd68f9ea395649fde32778620f0",
      "parents": [
        "9d547d6934f64189e368c0b190fb4cf49c95a557"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:19:47 2012 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:27:31 2012 -0800"
      },
      "message": "Correct executable bit for source files\n\nMany media files and source code files were marked as executable in Git.\nRemove those.\n\nAlso a shell script and python script were not marked as executable.\n\nChange-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5\n"
    },
    {
      "commit": "a4256d1d7b17b86a4446448f54ab9b443c3094f7",
      "tree": "53c33ca3a8c43af94d068901645240c5e4a672d8",
      "parents": [
        "d2955cb121924e6031c75c7d60ee9837075d6bae"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Nov 01 13:55:28 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Nov 01 13:55:28 2012 -0700"
      },
      "message": "Fix typo\n\nChange-Id: I8c3797fb2d343ec6f25765fba49ac097e816d1cf\n"
    },
    {
      "commit": "c59b2f9a774c024fe8c893d956cd2749a6bd2673",
      "tree": "b039afcd6164ad08a273665b6320d98aa5b5aea5",
      "parents": [
        "e0e9e9462c8035c1883a0bd16ee62d861c77e550"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Oct 24 12:31:10 2012 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Oct 24 12:31:10 2012 -0700"
      },
      "message": "More changes to fix PDK build:\n\nmove screencap back to frameworks/base\nmove libdiskusage to frameworks/native\n\nChange-Id: I8abe425c4bbf305bbe8650094c40c16df8c6d5e4\n"
    },
    {
      "commit": "e0e9e9462c8035c1883a0bd16ee62d861c77e550",
      "tree": "14e4d765ef53bd36e80d6a75a8a6991533ca2ded",
      "parents": [
        "6931061de6471e598d36e6c101ce9bb95036a80c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Oct 24 11:52:57 2012 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Oct 24 11:52:57 2012 -0700"
      },
      "message": "Move app_process and system_server back to frameworks/base\n\ndue to dependency on libandroid_runtime\n\nChange-Id: I96c0ba72ea406c9e7e63b9a160498187b6ec9b21\nSigned-off-by: Mike Lockwood \u003clockwood@google.com\u003e\n"
    },
    {
      "commit": "6931061de6471e598d36e6c101ce9bb95036a80c",
      "tree": "9c0a2d44af0e4c6299768aa84cc8b15372c3c87c",
      "parents": [
        "e31e0f8c7c03b56a044ca9cfa155ea2745918136"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Oct 24 10:43:42 2012 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Oct 24 10:43:42 2012 -0700"
      },
      "message": "Move non-Java commands to frameworks/native\n\nChange-Id: Id77c2cecb27cec500dfe066e4430f9e67802a433\nSigned-off-by: Mike Lockwood \u003clockwood@google.com\u003e\n"
    },
    {
      "commit": "aea7b6903b66b07f35369c8b16b7a7df503022c7",
      "tree": "7c6a97c977ecaf3b7cc8e0015a5edc390eb9e2fa",
      "parents": [
        "850fc75f1c2cc7d41e822386c0fd25fb62a3de49",
        "da2f2e51c71b5ebc50fe76c3cd5a920c81a5ee92"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Oct 23 23:19:01 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 23 23:19:01 2012 -0700"
      },
      "message": "am da2f2e51: am 799916e6: Merge \"Revert \"Check non-primary user dirs during package scan\"\" into jb-mr1-dev\n\n* commit \u0027da2f2e51c71b5ebc50fe76c3cd5a920c81a5ee92\u0027:\n  Revert \"Check non-primary user dirs during package scan\"\n"
    },
    {
      "commit": "da2f2e51c71b5ebc50fe76c3cd5a920c81a5ee92",
      "tree": "4a7ecf49e9cda12965c44b9c418bac23854143f9",
      "parents": [
        "9e76f415e62325673c07ecbe3ce3fa377b293d04",
        "799916e6ac706921e43a3382e5d9e06e13f87525"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Oct 23 23:17:23 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 23 23:17:23 2012 -0700"
      },
      "message": "am 799916e6: Merge \"Revert \"Check non-primary user dirs during package scan\"\" into jb-mr1-dev\n\n* commit \u0027799916e6ac706921e43a3382e5d9e06e13f87525\u0027:\n  Revert \"Check non-primary user dirs during package scan\"\n"
    },
    {
      "commit": "799916e6ac706921e43a3382e5d9e06e13f87525",
      "tree": "d5c2a1fe01b349a506d7766a68d11caeb7ba025e",
      "parents": [
        "f52cbb6b1800fc2b338e8c0883170567fcd0447a",
        "383fa18b511c195cc51a96c5504442bfec998e9f"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Oct 23 23:14:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 23 23:14:15 2012 -0700"
      },
      "message": "Merge \"Revert \"Check non-primary user dirs during package scan\"\" into jb-mr1-dev"
    },
    {
      "commit": "383fa18b511c195cc51a96c5504442bfec998e9f",
      "tree": "d8b158e6fc1205970a0f2c43557acba84a4fbfd5",
      "parents": [
        "4525f5b69cb44a9a0c92f9c525fc47541f456621"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Oct 23 23:12:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 23 23:12:19 2012 -0700"
      },
      "message": "Revert \"Check non-primary user dirs during package scan\"\n\nThis reverts commit 4525f5b69cb44a9a0c92f9c525fc47541f456621\n\nChange-Id: I31b7a0860972532478ab3420556b806bfa78739a\n"
    },
    {
      "commit": "5e24b92f0407e413cc9d2aafeef4905e1b139dc0",
      "tree": "d49768d9a489a94a21f67f7590568447d83361ec",
      "parents": [
        "a170dcb7b6908d0ea4dd7c2717d2d2b1da59262c",
        "f461d3f69f4533045167b4dc1f7445ad6ae47af3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 23 17:10:24 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 23 17:10:24 2012 -0700"
      },
      "message": "am f461d3f6: am da2509c4: Merge \"Check non-primary user dirs during package scan\" into jb-mr1-dev\n\n* commit \u0027f461d3f69f4533045167b4dc1f7445ad6ae47af3\u0027:\n  Check non-primary user dirs during package scan\n"
    },
    {
      "commit": "f461d3f69f4533045167b4dc1f7445ad6ae47af3",
      "tree": "6ee0f34eb0600c8741d20d7ce454aa42509652c1",
      "parents": [
        "9e96c69e3e9ebdb820acd347b4691c32a5d76be4",
        "da2509c434ebb2a5a0da1bc270cae7f007cbb0f9"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 23 17:06:24 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 23 17:06:24 2012 -0700"
      },
      "message": "am da2509c4: Merge \"Check non-primary user dirs during package scan\" into jb-mr1-dev\n\n* commit \u0027da2509c434ebb2a5a0da1bc270cae7f007cbb0f9\u0027:\n  Check non-primary user dirs during package scan\n"
    },
    {
      "commit": "da2509c434ebb2a5a0da1bc270cae7f007cbb0f9",
      "tree": "8517da587126105df96096234de09a19fc2fdb38",
      "parents": [
        "6757572b39d3802c4d7b69467b5ebf69a96c208b",
        "4525f5b69cb44a9a0c92f9c525fc47541f456621"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 23 17:03:08 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 23 17:03:09 2012 -0700"
      },
      "message": "Merge \"Check non-primary user dirs during package scan\" into jb-mr1-dev"
    },
    {
      "commit": "4525f5b69cb44a9a0c92f9c525fc47541f456621",
      "tree": "69472f1e1603516577ef1485f39dfc8fc0d40354",
      "parents": [
        "2278898126c1cea4bd345bb96313d381b4ad3993"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 22 14:24:23 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 22 18:48:24 2012 -0700"
      },
      "message": "Check non-primary user dirs during package scan\n\nDuring package scan, only the primary user data directories were\nchecked. If the secondary user didn\u0027t have an application directory, it\nwould happily ignore it. The app would then crash upon startup.\n\nBug: 7391882\nChange-Id: I1fa92aa27386104d4ac6bc5dc92bfbf2e7dfac9f\n"
    },
    {
      "commit": "465fd635d505d2d5af9dfd409cb016fc9cac71d5",
      "tree": "1f11a3cc306ee7cea49626e4dac4ab43004a5452",
      "parents": [
        "103dbdc5a6d61d4a47c6308cf0345e90ddbced23",
        "3ce8eb4eb24f90b8d850e3dc7c18569dd1fd361a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 22 16:19:52 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 22 16:19:52 2012 -0700"
      },
      "message": "am 3ce8eb4e: am 55708a9d: am e03c0244: Merge \"Clear data deletes too much\" into jb-mr1-dev\n\n* commit \u00273ce8eb4eb24f90b8d850e3dc7c18569dd1fd361a\u0027:\n  Clear data deletes too much\n"
    },
    {
      "commit": "3ce8eb4eb24f90b8d850e3dc7c18569dd1fd361a",
      "tree": "608f70bf808eeefc94cc2aa69376002625d4e4c3",
      "parents": [
        "fdf263971b3bbc93d743195e840967063ccf5fcb",
        "55708a9dce5be627f68e388d4ad355595ad5fef5"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 22 16:17:17 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 22 16:17:17 2012 -0700"
      },
      "message": "am 55708a9d: am e03c0244: Merge \"Clear data deletes too much\" into jb-mr1-dev\n\n* commit \u002755708a9dce5be627f68e388d4ad355595ad5fef5\u0027:\n  Clear data deletes too much\n"
    },
    {
      "commit": "55708a9dce5be627f68e388d4ad355595ad5fef5",
      "tree": "f6ececb0f045f05f926f8f7af274cf6de4627d2b",
      "parents": [
        "9defd0663e2b6a486f5bc72621bbbd4dfab666fb",
        "e03c0244717093e0fbc9b05073d3ae3dbd8fcea5"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 22 16:14:14 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 22 16:14:14 2012 -0700"
      },
      "message": "am e03c0244: Merge \"Clear data deletes too much\" into jb-mr1-dev\n\n* commit \u0027e03c0244717093e0fbc9b05073d3ae3dbd8fcea5\u0027:\n  Clear data deletes too much\n"
    },
    {
      "commit": "9157d3f3b70f5225e06b0a478f2d3c5ce3d923b2",
      "tree": "c02e39a9b7d640187137671a1dcef234369f95c7",
      "parents": [
        "2278898126c1cea4bd345bb96313d381b4ad3993"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 22 15:19:16 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 22 15:20:52 2012 -0700"
      },
      "message": "Clear data deletes too much\n\nBug: 7389445\nChange-Id: Ic12d7a8e37747dc1a9b71ec5f881b5e440e0a75e\n"
    },
    {
      "commit": "a7fb9d907c7f3b44d92e401ca4cea096c5c53de0",
      "tree": "9a8a5e01845a9b01441feb17f0409d9c49105d58",
      "parents": [
        "ea064e1b1f4b5b85f3e6b29aa05f64ebcc630d0d",
        "9396f183c2db5d6167f39a8d5667fb4abcc96e5e"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 19 17:20:03 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 19 17:20:03 2012 -0700"
      },
      "message": "am 9396f183: resolved conflicts for merge of a5d29b2c to jb-mr1-dev-plus-aosp\n\n* commit \u00279396f183c2db5d6167f39a8d5667fb4abcc96e5e\u0027:\n  Try to free cache before giving up on install\n  Robustly add symlink and add for non-primary users\n"
    },
    {
      "commit": "9396f183c2db5d6167f39a8d5667fb4abcc96e5e",
      "tree": "3f7b1ce7830b96160af9c554e923eb7eeb8c02d7",
      "parents": [
        "4aed962612413d506f4682c1de8c9f3cfc453d60",
        "a5d29b2c14c2cbe7eeb1f3c41aeeffa1dd29f264"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 19 17:16:41 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 19 17:16:41 2012 -0700"
      },
      "message": "resolved conflicts for merge of a5d29b2c to jb-mr1-dev-plus-aosp\n\nChange-Id: I21512d61b5c08cee5fed69b34c3275ba5c3fc0d8\n"
    },
    {
      "commit": "a5d29b2c14c2cbe7eeb1f3c41aeeffa1dd29f264",
      "tree": "a28d69dbd9acacbe5b631f8b97f8214ff201687f",
      "parents": [
        "a09dd3a6081b498476beddbbc2506f6d2be25a6b",
        "9bef3294d3660a85442829a25c9777e25d3c3cc8"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 19 16:40:07 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 19 16:40:07 2012 -0700"
      },
      "message": "am 9bef3294: Merge changes Ie3c8ca8d,Ia175b36d into jb-mr1-dev\n\n* commit \u00279bef3294d3660a85442829a25c9777e25d3c3cc8\u0027:\n  Try to free cache before giving up on install\n  Robustly add symlink and add for non-primary users\n"
    },
    {
      "commit": "a3e90798b7ad3ed62e5b31842c699b2f98bd457b",
      "tree": "01e322a27dfafaf0eb4938a095f3f7f32ed03d3e",
      "parents": [
        "341aa8e0e8753ddb5eca22311e7d671e0518f326"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 18 10:58:36 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 18 15:12:09 2012 -0700"
      },
      "message": "Robustly add symlink and add for non-primary users\n\nAmazingly, some apps still don\u0027t use the nativeLibraryPath. So add a lib\nsymlink for non-primary users to fix that.\n\nAlso, there was an error when the symlink existed that it would give up.\nThis shouldn\u0027t really happen, but in that case, just remove it and\ncreate a new one to be safe.\n\nAlso, move the downgrade code to the appropriate place. This downgrade\ncase triggered the above symlink existing bug.\n\nBug: 7318366\nBug: 7371571\nChange-Id: Ia175b36d98f00bdc2f2433b909aafd524eb34d15\n"
    },
    {
      "commit": "ebf5569880043ffc55e3ecf65442fa50d8b72c81",
      "tree": "4c63486f0ab54bb70d93714a044404443a2f4f66",
      "parents": [
        "61d5c431fdcc52feedb365bef840b9fb6654cc1d",
        "63a183c41f26e4eb475dfbcc4386b37372eb5fba"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 10:53:51 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 17 10:53:51 2012 -0700"
      },
      "message": "am 63a183c4: Merge \"resolved conflicts for merge of 40f2f751 to jb-mr1-dev-plus-aosp\" into jb-mr1-dev-plus-aosp\n\n* commit \u002763a183c41f26e4eb475dfbcc4386b37372eb5fba\u0027:\n  Fix mistaken removal of setfilecon\n"
    },
    {
      "commit": "367400491a22cefd4e366e2278caf63d574820b0",
      "tree": "683fd4f160028134b2d92b93df6da5485bb98954",
      "parents": [
        "ae232842c86f108da5a73c047eff5a09e9c9c222",
        "40f2f751ac7cebc455b44da23b9589cca5ae2e25"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 10:50:14 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 10:50:14 2012 -0700"
      },
      "message": "resolved conflicts for merge of 40f2f751 to jb-mr1-dev-plus-aosp\n\nChange-Id: I6075e2bf98b0f8310c93fac649c34cbbbd89707f\n"
    },
    {
      "commit": "115198ba1a7b95029616143986d77b751a947a4d",
      "tree": "99ade7ae1eac82856ed2117083913e786434e65a",
      "parents": [
        "21dc0aa5a4e54d00bfe7adcc0517871931abd1e6",
        "ed3ce513a64b9f26358dc77187d6d04fe91abae9"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 10:10:27 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 17 10:10:27 2012 -0700"
      },
      "message": "am ed3ce513: Fix bad merge\n\n* commit \u0027ed3ce513a64b9f26358dc77187d6d04fe91abae9\u0027:\n  Fix bad merge\n"
    },
    {
      "commit": "ed3ce513a64b9f26358dc77187d6d04fe91abae9",
      "tree": "64b2ae7ec46052473888beaa764fb4b275cd89e5",
      "parents": [
        "ad0090e7b8c70cf44609aafbfea8c3946e2802a9"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 10:05:10 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 10:06:17 2012 -0700"
      },
      "message": "Fix bad merge\n\nChange-Id: I9f05f96e3607b994368a8d4e1e454af8fe84424d\n"
    },
    {
      "commit": "21dc0aa5a4e54d00bfe7adcc0517871931abd1e6",
      "tree": "fd645afc0ce241d95d2faa17a2f348b206ff83f9",
      "parents": [
        "babf588cb5402bae5ea6ff6ff4caa1fbb7d38aed",
        "ad0090e7b8c70cf44609aafbfea8c3946e2802a9"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 10:05:58 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 17 10:05:58 2012 -0700"
      },
      "message": "am ad0090e7: resolved conflicts for merge of 85f9ba9e to jb-mr1-dev-plus-aosp\n\n* commit \u0027ad0090e7b8c70cf44609aafbfea8c3946e2802a9\u0027:\n  Remove HAVE_SELINUX guards\n"
    },
    {
      "commit": "ad0090e7b8c70cf44609aafbfea8c3946e2802a9",
      "tree": "e00685d10039cdcd83a33a7e848724d724b9b787",
      "parents": [
        "9cb417b76fa72b3a53c6ce6d4017b389f553a2b8",
        "85f9ba9e7fdf9c3bf063f2e4c44a670861b4f199"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 10:02:22 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 10:02:22 2012 -0700"
      },
      "message": "resolved conflicts for merge of 85f9ba9e to jb-mr1-dev-plus-aosp\n\nChange-Id: I9ae49075935f0e9ec432ce9d828ee26a4fcdb44c\n"
    },
    {
      "commit": "57c63d8f9b1a2839f47a68feb1da51ab558e5d8a",
      "tree": "72d5760e474993dea9867ac08a10b07151e0c10c",
      "parents": [
        "85f9ba9e7fdf9c3bf063f2e4c44a670861b4f199"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 09:50:35 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 09:50:37 2012 -0700"
      },
      "message": "Fix mistaken removal of setfilecon\n\nPrevious commit attempted to move setfilecon above chown, but mistakenly\nsquashed libdir and pkgdir setfilcon into one incorrect setfilecon.\n\nChange-Id: I1ad00eae8a0e69ae88ce47cd5571558ce1ad2145\n"
    },
    {
      "commit": "c9a1aabc49d31370e3bf41f85b805499640230b1",
      "tree": "f92e4d72caf27ece69a5a811f90b7b4f3a442be5",
      "parents": [
        "826343138dfd8666d2263dd82bfdbf657fc1881e"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 16 23:28:21 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 16 23:32:31 2012 -0700"
      },
      "message": "Remove HAVE_SELINUX guards\n\nChange-Id: I6c2161471f657aa1645695ffd56ff434b0c2b426\n"
    },
    {
      "commit": "0fa6bf683c9d48142340ec049d806f757e1cbb86",
      "tree": "625bbe62bedc80c75c4adde81a8d9658969f8c4d",
      "parents": [
        "f95dfbbcfe2dda56876ede4d3a6d88ee506a1bea",
        "a1fda2e388603152d45ea5ef43b1c9b6d6935b6b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Oct 15 20:22:37 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 15 20:22:37 2012 -0700"
      },
      "message": "am a1fda2e3: am 77ce60a5: am 7789c9bb: Merge \"Support pm clear as --user.\" into jb-mr1-dev\n\n* commit \u0027a1fda2e388603152d45ea5ef43b1c9b6d6935b6b\u0027:\n  Support pm clear as --user.\n"
    },
    {
      "commit": "a1fda2e388603152d45ea5ef43b1c9b6d6935b6b",
      "tree": "d31c5923f7db1702ac6cd9b507b040842e7dbcde",
      "parents": [
        "244f5125abd62e60f6bf91675f3be6d540b818d2",
        "77ce60a59330d6059011d737142bd210db845d85"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Oct 15 20:19:04 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 15 20:19:04 2012 -0700"
      },
      "message": "am 77ce60a5: am 7789c9bb: Merge \"Support pm clear as --user.\" into jb-mr1-dev\n\n* commit \u002777ce60a59330d6059011d737142bd210db845d85\u0027:\n  Support pm clear as --user.\n"
    },
    {
      "commit": "77ce60a59330d6059011d737142bd210db845d85",
      "tree": "5c68e2b5170c8c6f0aa4dbaf81a8e78b280d4e24",
      "parents": [
        "b9e224ccb5604032ee6a11789b4e03c747a15838",
        "7789c9bbfca079655e9285173d6175b94bc774b0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Oct 15 18:29:51 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 15 18:29:51 2012 -0700"
      },
      "message": "am 7789c9bb: Merge \"Support pm clear as --user.\" into jb-mr1-dev\n\n* commit \u00277789c9bbfca079655e9285173d6175b94bc774b0\u0027:\n  Support pm clear as --user.\n"
    },
    {
      "commit": "a3e9ff7debde50f6b58ebc3033cbbad650c10ac7",
      "tree": "b94d2caf1fa4029650b6ca3fd57a9d3d1b54f684",
      "parents": [
        "52801aae89196b7ad16ef21b07d2d621e7d0bb61"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Oct 15 16:16:39 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Oct 15 16:16:39 2012 -0700"
      },
      "message": "Support pm clear as --user.\n\nBug: 7352703\nChange-Id: I0e9cc4f2313e5424d234c3cb051004c0321d9dac\n"
    },
    {
      "commit": "3b5259fcbe044397bd38cedea31ebd6ed2ba9e74",
      "tree": "c2d3ceeb4e7bca6d71a5b64027170a267720d848",
      "parents": [
        "35c492884cce2df5cf22d9aaca9a6df6a9ebec44",
        "1e8f7262febf77580e830374af2f5c5236081a0f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Oct 12 12:21:46 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 12 12:21:46 2012 -0700"
      },
      "message": "am 1e8f7262: am a00ffa53: am 1016b288: Merge \"Pm command to get maximum users.\" into jb-mr1-dev\n\n* commit \u00271e8f7262febf77580e830374af2f5c5236081a0f\u0027:\n  Pm command to get maximum users.\n"
    },
    {
      "commit": "1e8f7262febf77580e830374af2f5c5236081a0f",
      "tree": "70d6b5b5746d6525f2b60f7e861ad381f4a685c9",
      "parents": [
        "d828e328bc6cfbcd30679b95f615e217ab56983d",
        "a00ffa53fbe7ced0147451242232f47d117d5e2d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Oct 12 12:19:34 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 12 12:19:34 2012 -0700"
      },
      "message": "am a00ffa53: am 1016b288: Merge \"Pm command to get maximum users.\" into jb-mr1-dev\n\n* commit \u0027a00ffa53fbe7ced0147451242232f47d117d5e2d\u0027:\n  Pm command to get maximum users.\n"
    },
    {
      "commit": "a00ffa53fbe7ced0147451242232f47d117d5e2d",
      "tree": "d3c5e8e513bc7169a2c0433da8c5dd6888e04490",
      "parents": [
        "a1d72e15f6fd5e6e330a70d550327ab8c8fcdbcf",
        "1016b2881d2b5f5d5e142afa287bd876b6360c2b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Oct 12 12:17:17 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 12 12:17:17 2012 -0700"
      },
      "message": "am 1016b288: Merge \"Pm command to get maximum users.\" into jb-mr1-dev\n\n* commit \u00271016b2881d2b5f5d5e142afa287bd876b6360c2b\u0027:\n  Pm command to get maximum users.\n"
    },
    {
      "commit": "4c76ea6b88fad2b0147c050c02c6fd3d886d6743",
      "tree": "044338379cdef31e7c0316da597da35a81b258c0",
      "parents": [
        "e6d3ccc99270aaf62808adc7475a25d96664f0fb"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Oct 12 10:44:47 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Oct 12 10:46:01 2012 -0700"
      },
      "message": "Pm command to get maximum users.\n\nUsed to drive CTS tests.  Also print success message when removing\na user.\n\nBug: 7334718\nChange-Id: Ia3886ddf860cd000ce567b0fed2ef0a4e2a2295c\n"
    },
    {
      "commit": "d3ab7fc537fa742bbbdc33230b87d8544b09a3ea",
      "tree": "b94c2d2bfd3e7b775d53d0f21eeaffb9c668020d",
      "parents": [
        "102dc1cb21ddcde56c299437e8f14de0b629f7fd",
        "2425164835e9bbf4c501c69c078b2c1a48f3414e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Oct 11 17:55:15 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 11 17:55:15 2012 -0700"
      },
      "message": "am 24251648: am 9ad36ded: am 9dfca201: Merge \"Print newly generated userId.\" into jb-mr1-dev\n\n* commit \u00272425164835e9bbf4c501c69c078b2c1a48f3414e\u0027:\n  Print newly generated userId.\n"
    },
    {
      "commit": "2425164835e9bbf4c501c69c078b2c1a48f3414e",
      "tree": "31b4418ce080f24fcbe4396ccc38e30bd433ce5d",
      "parents": [
        "250a90cacf25fb277a5b778039965a330a0376d0",
        "9ad36dedd668c3bfa906397baa3d0aa76cfe1216"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Oct 11 17:29:02 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 11 17:29:02 2012 -0700"
      },
      "message": "am 9ad36ded: am 9dfca201: Merge \"Print newly generated userId.\" into jb-mr1-dev\n\n* commit \u00279ad36dedd668c3bfa906397baa3d0aa76cfe1216\u0027:\n  Print newly generated userId.\n"
    },
    {
      "commit": "9ad36dedd668c3bfa906397baa3d0aa76cfe1216",
      "tree": "00bd4503e505dbc28041d7a7a0e1a438ddb3495a",
      "parents": [
        "49db71e962b8ae17a3698534c800ea7511060dac",
        "9dfca20105aa998f5767b1b330bf9307ec479906"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Oct 11 17:25:53 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 11 17:25:53 2012 -0700"
      },
      "message": "am 9dfca201: Merge \"Print newly generated userId.\" into jb-mr1-dev\n\n* commit \u00279dfca20105aa998f5767b1b330bf9307ec479906\u0027:\n  Print newly generated userId.\n"
    },
    {
      "commit": "e6d3ccc99270aaf62808adc7475a25d96664f0fb",
      "tree": "4ee82dce7ec5418b95688b9a7d3fd474d92b3f55",
      "parents": [
        "38f8688baeb0f610a47c17bb7810349502d62ab6"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Oct 11 16:43:20 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Oct 11 16:44:18 2012 -0700"
      },
      "message": "Print newly generated userId.\n\nBug: 7334718\nChange-Id: Id4dc456b079bebbe9f2d7ea2a8343d2215f296dc\n"
    },
    {
      "commit": "3c30494d448c4af8c002450294090546b64bbc61",
      "tree": "97a5e02363a69b0d879606461518c7ae5abfbb55",
      "parents": [
        "c8c053897aa9809d3df3743aa0f62bb034bd02a1",
        "572286b4152245a73ac00ebc69b4bd8fc4bc586d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 09 19:17:09 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 09 19:17:09 2012 -0700"
      },
      "message": "am 572286b4: am 31af905a: am 36db9d08: Merge \"Further work on issue #7307399: Framework needs a new pre-user-shutdown...\" into jb-mr1-dev\n\n* commit \u0027572286b4152245a73ac00ebc69b4bd8fc4bc586d\u0027:\n  Further work on issue #7307399: Framework needs a new pre-user-shutdown...\n"
    },
    {
      "commit": "572286b4152245a73ac00ebc69b4bd8fc4bc586d",
      "tree": "62ec9d6f0f2d9c62ffea03376c9a057c136aedb9",
      "parents": [
        "b096f6f5d0ed31bc0d510696d133fc8a3ee772b8",
        "31af905ac5388339fd0ffd87e6f25bd2a293dc0e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 09 19:14:24 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 09 19:14:24 2012 -0700"
      },
      "message": "am 31af905a: am 36db9d08: Merge \"Further work on issue #7307399: Framework needs a new pre-user-shutdown...\" into jb-mr1-dev\n\n* commit \u002731af905ac5388339fd0ffd87e6f25bd2a293dc0e\u0027:\n  Further work on issue #7307399: Framework needs a new pre-user-shutdown...\n"
    },
    {
      "commit": "31af905ac5388339fd0ffd87e6f25bd2a293dc0e",
      "tree": "5df9383c80d52c8ae7bb5b04039b6fb67d7f93b0",
      "parents": [
        "24169a6beb6726d34c83521f8c0467b4dbafb0de",
        "36db9d0879640a1cb9a8723d6649068a1c4c08de"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 09 19:13:13 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 09 19:13:13 2012 -0700"
      },
      "message": "am 36db9d08: Merge \"Further work on issue #7307399: Framework needs a new pre-user-shutdown...\" into jb-mr1-dev\n\n* commit \u002736db9d0879640a1cb9a8723d6649068a1c4c08de\u0027:\n  Further work on issue #7307399: Framework needs a new pre-user-shutdown...\n"
    },
    {
      "commit": "c0bd747b0605af251ff136277f14220a5a4c9818",
      "tree": "42c57d29d70cb1a8db3ad34da224ac3882481029",
      "parents": [
        "840590dd642719f402491092944a12475d6d6a8e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 09 14:00:30 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 09 17:57:14 2012 -0700"
      },
      "message": "Further work on issue #7307399: Framework needs a new pre-user-shutdown...\n\n...phase \u0026 callback API\n\nI realized there were a few things wrong with what was there.  The new\nACTION_USER_STARTING was not being sent for the first user at boot, and\nthere was an existing problem where ACTION_USER_STARTED was sent every\ntime there was a user switch.\n\nAlso improved some debug output of broadcasts to make it easier to see\nwhat is going on in this stuff, and better reporting of why a service\ncouldn\u0027t be started.\n\nChange-Id: Id8a536defbbad1f73d94a37d13762436b822fbe3\n"
    },
    {
      "commit": "a7f45d31f6b9d00a000d2327e64fe918e984c9ed",
      "tree": "d4c674384db19d73ecc1084886b4f2a4d076aa3a",
      "parents": [
        "4cabdf20aafeb8ecb275207d70748eb09ca07db6",
        "6e41d59665261ff015d73ee5180fa85b009dd41e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Oct 09 11:51:17 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 09 11:51:17 2012 -0700"
      },
      "message": "am 6e41d596: am b17fdf7b: am af3cd21b: Merge \"New command line tool: \"settings\"\" into jb-mr1-dev\n\n* commit \u00276e41d59665261ff015d73ee5180fa85b009dd41e\u0027:\n  New command line tool: \"settings\"\n"
    },
    {
      "commit": "6e41d59665261ff015d73ee5180fa85b009dd41e",
      "tree": "8afa220de1cd416e773de0e77b92b736c51d49b3",
      "parents": [
        "fb9d598d9e95a9d3e0be8e1dee81ebb0986aee8e",
        "b17fdf7b512530647037a7805c175c36db1549d8"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Oct 09 11:48:55 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 09 11:48:55 2012 -0700"
      },
      "message": "am b17fdf7b: am af3cd21b: Merge \"New command line tool: \"settings\"\" into jb-mr1-dev\n\n* commit \u0027b17fdf7b512530647037a7805c175c36db1549d8\u0027:\n  New command line tool: \"settings\"\n"
    },
    {
      "commit": "b17fdf7b512530647037a7805c175c36db1549d8",
      "tree": "6f39365d99652d743df43995626ff39053961bd8",
      "parents": [
        "261ba6207398e7c91ab669f45083499fdc3d6434",
        "af3cd21b08dd22d6ffd747c6314fd49fed3170a0"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Oct 09 11:46:28 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 09 11:46:28 2012 -0700"
      },
      "message": "am af3cd21b: Merge \"New command line tool: \"settings\"\" into jb-mr1-dev\n\n* commit \u0027af3cd21b08dd22d6ffd747c6314fd49fed3170a0\u0027:\n  New command line tool: \"settings\"\n"
    },
    {
      "commit": "af75948cddd40a0fde5af051b700306744eae64c",
      "tree": "947f62cf61241b528b0dfa2d7e7ac9dda00fd3f2",
      "parents": [
        "bd03f5abb7bbd5552d49dfec4e78f3d9454238af"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Oct 08 14:56:52 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Oct 08 18:39:27 2012 -0700"
      },
      "message": "New command line tool: \"settings\"\n\nBecause the usual content provider interface doesn\u0027t allow specification of\nthe target user under which to perform settings reads/writes, this CL introduces\na new command line app specifically for that.\n\nUsage:\n\n   settings [--user num] get namespace key\n   settings [--user num] put namespace key value\n\nIf a --user argument is not given, the owner user is targetted.\n\nBug 7299066\n\nChange-Id: I73108bb76b04fad133cc4e0f218d64490de549f1\n"
    },
    {
      "commit": "4ec7ea72d2a9de6b79b11f7e0d12def5b58ef878",
      "tree": "c699d35f371e343be3471b1e3f8109dd7070856c",
      "parents": [
        "369a7f493e10af296138e50b922414afaa127313"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Oct 02 19:27:40 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Oct 02 19:30:03 2012 -0700"
      },
      "message": "Change adb-shell-input utility to use duration for swipe\n\nChange-Id: Id48fade60a07220c0672697f5771b75f984ee5bd\n"
    },
    {
      "commit": "4476018159d2c02a852ff248b8cb4950e2881da3",
      "tree": "91ff655f620a41f56ace33d1ace501735fe1d4df",
      "parents": [
        "27ce12231133be6c9bd627e8d618806236f2f076",
        "2293f9247b1b9329b58114bd67f3871e5387b91b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 02 12:08:54 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 02 12:08:54 2012 -0700"
      },
      "message": "am 2293f924: am bad71217: am 77728b01: Merge \"Change installd tests to native test target\"\n\n* commit \u00272293f9247b1b9329b58114bd67f3871e5387b91b\u0027:\n  Change installd tests to native test target\n"
    },
    {
      "commit": "2293f9247b1b9329b58114bd67f3871e5387b91b",
      "tree": "dadfe51e15199b1cc3c368cec49964346a25c789",
      "parents": [
        "0114639dea6d0ca23fdbc8e90c52289c468de802",
        "bad71217b75df49245092bc0f32e4ddaeb2b3732"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 02 12:06:05 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 02 12:06:05 2012 -0700"
      },
      "message": "am bad71217: am 77728b01: Merge \"Change installd tests to native test target\"\n\n* commit \u0027bad71217b75df49245092bc0f32e4ddaeb2b3732\u0027:\n  Change installd tests to native test target\n"
    },
    {
      "commit": "bad71217b75df49245092bc0f32e4ddaeb2b3732",
      "tree": "9c8ab92dce9d6aa9c1f8258f8fb00d5fc1e87869",
      "parents": [
        "253f76357dc9acdb329f321190eca4f0b049b4af",
        "77728b010e34069a904c9e8a40e03b8829cfb8ae"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 02 12:03:34 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 02 12:03:34 2012 -0700"
      },
      "message": "am 77728b01: Merge \"Change installd tests to native test target\"\n\n* commit \u002777728b010e34069a904c9e8a40e03b8829cfb8ae\u0027:\n  Change installd tests to native test target\n"
    },
    {
      "commit": "fbc3044190192fa2aaaf9eddc48c44eed8f52613",
      "tree": "b9ec0192f32b46abeb97cbcb66c040b14baf29df",
      "parents": [
        "fb34490f4dca7aac623fb9a80fe9a2371107a786"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 02 10:51:07 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 02 10:51:07 2012 -0700"
      },
      "message": "Change installd tests to native test target\n\nChange-Id: Ifb2ba004e74d55ffbf01557b59ceef3232762d28\n"
    },
    {
      "commit": "6c1805e33d8555aab07a29657eebf3a5d8b0e7fc",
      "tree": "d2fea5d679543c598b53bc7243c3ad5fe17b87af",
      "parents": [
        "2cdbded8e25501dcb8dd62721b2113010ca0220b",
        "6021eacb3d010e7d4f20af4a8ef49b1b3d3e5166"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Oct 01 13:48:33 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 01 13:48:33 2012 -0700"
      },
      "message": "am 6021eacb: am ce3db01c: am 2036a94a: Merge \"Fix cache deletion for secondary users\" into jb-mr1-dev\n\n* commit \u00276021eacb3d010e7d4f20af4a8ef49b1b3d3e5166\u0027:\n  Fix cache deletion for secondary users\n"
    },
    {
      "commit": "ce3db01cc8a27e6ee642e9e2c4548b5a03dfde2a",
      "tree": "230f973cd9e7c4ef27dd8e0ea7dbc2c15d99fbf0",
      "parents": [
        "8d8c13ec9b294a861b765bfde3349e7d49b13b30",
        "2036a94a9004613644bdbdab1b10e476be3f0213"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Oct 01 13:08:06 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 01 13:08:06 2012 -0700"
      },
      "message": "am 2036a94a: Merge \"Fix cache deletion for secondary users\" into jb-mr1-dev\n\n* commit \u00272036a94a9004613644bdbdab1b10e476be3f0213\u0027:\n  Fix cache deletion for secondary users\n"
    },
    {
      "commit": "8d8c13ec9b294a861b765bfde3349e7d49b13b30",
      "tree": "44300da6458129c12aaf34fbbaa59f7c88183037",
      "parents": [
        "3993bb00312a9d51b3e770a559a5d18bb9000b43",
        "710d705eae7144cb5c0f45c6c080f7c703898ef4"
      ],
      "author": {
        "name": "Dake Gu",
        "email": "dake@google.com",
        "time": "Mon Oct 01 13:06:24 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 01 13:06:25 2012 -0700"
      },
      "message": "Merge \"Add aah metadata service to whitelist DO NOT MERGE\" into jb-mr1-aah-dev"
    },
    {
      "commit": "710d705eae7144cb5c0f45c6c080f7c703898ef4",
      "tree": "bd17935aa7f8233bc4b09a14ff5e7859bafa4ac1",
      "parents": [
        "bfc88ede25d804602c019461ef7e0c84c3dabaeb"
      ],
      "author": {
        "name": "Dake Gu",
        "email": "dake@google.com",
        "time": "Mon Oct 01 12:35:58 2012 -0700"
      },
      "committer": {
        "name": "Dake Gu",
        "email": "dake@google.com",
        "time": "Mon Oct 01 12:41:51 2012 -0700"
      },
      "message": "Add aah metadata service to whitelist DO NOT MERGE\n\nTemporary solution for b/7262633.  We are using binder service for IPC between\nmediaserver and client app for sending synchronized beat tempo.  The change\nwill never be merged back to upstream.  Will replace it with a new IPC\nmechanism later.\n\nChange-Id: Ic06546a0085e401f49b65e0327247fcce1df681f\n"
    },
    {
      "commit": "54289b8b4a110cc1ae106d79785cc762a2aebd6e",
      "tree": "a414077d404f27aa8643ef1516ad9829b6fc214d",
      "parents": [
        "c56e5600501a5c376dc13e6a99fcec7782fc8718"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Oct 01 10:39:14 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Oct 01 11:19:55 2012 -0700"
      },
      "message": "Fix cache deletion for secondary users\n\nBug: 7249419\n\nChange-Id: Idbc0f9994508059ebf5055aea961b87e08b3673a\n"
    },
    {
      "commit": "3ff8e1a80058e5557d13693d3223e1aa011c0038",
      "tree": "62d3c43fa2261c2aec17b76f08b7c8cc784c81fc",
      "parents": [
        "1d3527354396d3aa48b494fb409d680cce32dc8b",
        "d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 28 15:53:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 28 15:54:44 2012 -0700"
      },
      "message": "Merge \"Fix issue #7211769 and #7244492, thrash around on #7226656.\" into jb-mr1-dev"
    },
    {
      "commit": "1d3527354396d3aa48b494fb409d680cce32dc8b",
      "tree": "6934b6b63276fdf0f30ad0c2cbec7ad08732a890",
      "parents": [
        "925a659d824089d2977b44a6740f793ae65f809a",
        "f41496f1791d983bf8bbbdf95f72528e59284b39"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 28 15:52:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 28 15:52:26 2012 -0700"
      },
      "message": "Merge \"Fix issue #7202950: After clearing data, clear data button is still enabled.\" into jb-mr1-dev"
    },
    {
      "commit": "d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1",
      "tree": "874663abeb7379376c3deeb68081606e6f62d8d3",
      "parents": [
        "97298cdcc0e699912288191c28bebe895759e75e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 27 23:20:10 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 28 15:37:22 2012 -0700"
      },
      "message": "Fix issue #7211769 and #7244492, thrash around on #7226656.\n\nIssue #7211769: Crash dialog from background user has non-working \"report\"\n\nThe report button now launches the issue reporter for the correct user.\nAlso for crashes on background users, either disable the report button,\nor simply don\u0027t show the dialog depending on the build config.\n\nIssue #7244492: Bugreport button in Quick Settings doesn\u0027t actually do anything\n\nNow they do.\n\nIssue #7226656: second user seeing primary user\u0027s apps\n\nI haven\u0027t had any success at reproducing this.  I have tried to tighten up\nthe path where we create the user to ensure nothing could cause the\nuser\u0027s applications to be accessed before the user it fully created and thus\nmake them installed...  but I can\u0027t convince myself that is the actual problem.\n\nAlso tightened up the user switch code to use forground broadcasts for all\nof the updates about the switch (since this is really a foreground operation),\nadded a facility to have BOOT_COMPELTED broadcasts not get launched for\nsecondary users and use that on a few key system receivers, fixed some debug\noutput.\n\nChange-Id: Iadf8f8e4878a86def2e495e9d0dc40c4fb347021\n"
    },
    {
      "commit": "f41496f1791d983bf8bbbdf95f72528e59284b39",
      "tree": "3bca6a251fbd6fd31431c7f9d4ead4f2cd141005",
      "parents": [
        "580ee8b0c6e1aea1e2e1d60499b603b9168b44f0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 27 18:48:09 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 27 18:48:09 2012 -0700"
      },
      "message": "Fix issue #7202950: After clearing data, clear data button is still enabled.\n\nCount the lib symlink against the app\u0027s code size.  Also be sure to\nlook at the new separate lib path for apps, and tweak the size\ncounting to also count the size of directory entries.\n\nChange-Id: I4b0fd5771f249faa05fd72f08062df885902cc97\n"
    },
    {
      "commit": "37d83a3caf138e35fa1a355787d20c351f6b37a6",
      "tree": "a4fe753ce045a1fc0eb7edc17641425981a6079f",
      "parents": [
        "0b1711582ff07d6d1e8e4de6c057eaf6a3473ac3"
      ],
      "author": {
        "name": "Ben Gruver",
        "email": "bgruv@google.com",
        "time": "Thu Sep 27 13:02:06 2012 -0700"
      },
      "committer": {
        "name": "Ben Gruver",
        "email": "bgruv@google.com",
        "time": "Thu Sep 27 13:02:06 2012 -0700"
      },
      "message": "Pass the originating uid to the package verifier\n\nBug: 6923241\nChange-Id: I85a3e0d53b469543cb0551d3a440d2663b5d0697\n"
    },
    {
      "commit": "b12e1354f25f04e9c9a71da76c6fca858b7d39d0",
      "tree": "3568c1a0ce0a3348fbfcb4d5773140f26f630f80",
      "parents": [
        "2fd6cb043901c1bfbf5f566d13522cc3c1c21fb4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 26 11:39:20 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 26 14:50:12 2012 -0700"
      },
      "message": "Maybe fix issue #7211766: bindService() to User u0 While u10 is...\n\n...Forground Sometimes Doesn\u0027t Take\n\nThe main change here is a one-liner in ActiveServices to check the\nuid when deciding whether to remove an item from mPendingServices.\nThis could cause the problem being seen -- if the same service for\ntwo users is starting at the same time, the second one would blow\naway the pending start of the first one.  Unfortunately I have had\ntrouble reproducing the bug, so I don\u0027t know if this is actually\nfixing it.  It\u0027s a bug, anyway.\n\nThe reason so much has changed here is because I spread around\nlogging and printing of the user ID associated with operations and\nobjects to make it easier to debug these kind of multi-user things.\n\nAlso includes some tweaks to the oom manager to allow more background\nprocesses (I have seen many times in logs where we thrash through\nprocesses because the LRU list is too short), plus to compensate an\nadditional time-based metric for when to get rid of background processes,\nplus some new logic to try to help things like Chrome keep around\ntheir service processes.\n\nChange-Id: Icda77fb2a1dd349969e3ff2c8fff0f19b40b31d3\n"
    },
    {
      "commit": "556b09e184b891d9542092962ed248616810e054",
      "tree": "8b924f113c33e48370dfd3d157edfd4a0b809533",
      "parents": [
        "6b3292ce5b3908c7433503f64c852cf2b27718ed"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 23 17:46:53 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 24 11:02:45 2012 -0700"
      },
      "message": "Fix issue #6926562: Ensure all multi-user cache files are managed correctly\n\nNow we correctly iterate through the different user cache dirs.\n\nAlso update documentation to describe the new cache pruning behavior,\nand deprecate the file modes for making files world readable/writable\nwhich we really don\u0027t want people using any more.\n\nChange-Id: I3708df3ddc697b1f5c511143cce7cc40a5a3d0bd\n"
    },
    {
      "commit": "6d51571835737c7502a2e111ee9dc2527ebad984",
      "tree": "8298f3a36bdfbdb95a4fdd52681f82e7f396d31b",
      "parents": [
        "08681adda06f4699f85838861170fbb062c9fdfe"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 20 16:06:08 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Sep 21 19:49:43 2012 -0700"
      },
      "message": "Allow acquiring ContentProviders across users.\n\nOtherwise services like SystemUI will always open content://-style\nUris as USER_OWNER.  Surfaces through createPackageContextAsUser()\nwhich points all ContentResolver operations towards a given user.\n\nStart using in RemoteViews, so that Notifications correctly resolve\nimage Uris to the sending user.  Also add user support for \"content\"\nshell tool.\n\nBug: 7202982\nChange-Id: I8cb7fb8a812e825bb0b5833799dba87055ff8699\n"
    },
    {
      "commit": "920ace0bbc2d4133dbec991d2636c99a57d6245e",
      "tree": "a69deeaa2cd76a15eaf402faeb95bba608bc6895",
      "parents": [
        "2f98008d06cbe48f0f5619d16f59988952c9b2ca"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Sep 20 22:15:37 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Sep 20 22:33:43 2012 -0700"
      },
      "message": "Query users excluding any being removed\n\nKeep track of user creation and last logged-in time.\nadb shell dumpsys users\nUser switcher shouldn\u0027t show users about to be removed.\nNo need to check for singleton for activities.\n\nBug: 7194894\nChange-Id: Ic9a59ea5bd544920479e191d1a1e8a77f8b6ddcf\n"
    },
    {
      "commit": "9ba2a188919e6e5bf8c042b26527fc090de677ef",
      "tree": "ffe81460ca6a2f255d7cb6fe93a79fb0b081a72a",
      "parents": [
        "faed98a161f58441ebce3dcb08cd8bf76a76da4e",
        "59c53c6224e2f84d31a56854ebe90d22055100d2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Sep 11 13:56:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 11 13:56:04 2012 -0700"
      },
      "message": "Merge changes I4ad08873,If0562677,I5fe6ba32 into jb-mr1-dev\n\n* changes:\n  Don\u0027t auto-discover peers until scan requested.\n  Use wfdInfo to filter available sinks.\n  Allow adb shell am display-size to use bigger sizes.\n"
    },
    {
      "commit": "9bbd70a96397bd5f1445ad6c21977fccfb350dfa",
      "tree": "c743afec7bf0debfd58239d2a2bf5898d8cba94e",
      "parents": [
        "9f750af6c178d8abb5c12d34efba599e3d53aea4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Sep 10 11:13:36 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 11 10:55:17 2012 -0700"
      },
      "message": "Remove \"unlinklib\" command from installd\n\nunlinklib is no longer necessary since libraries are now either stored\nin an ASEC container or in /data/app-lib\n\nReplace lib directory with a symlink to the /data/app-lib directory even\nif it\u0027s a dangling link. That way developers don\u0027t name something \"lib\"\nin their directory which gets blown away during an update.\n\nChange-Id: I142cf13dba9c13aafbaf0ff8d5e9872cbf1cc910\n"
    },
    {
      "commit": "43aa15912891930833edfc101615a9c881de54a1",
      "tree": "efc406d48cce0d3ae7e1b299ffba0c65646cb089",
      "parents": [
        "df46c637550b4c6f0543574cfbd544329f48f5c7"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Sep 10 17:36:31 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Sep 10 17:50:18 2012 -0700"
      },
      "message": "Allow adb shell am display-size to use bigger sizes.\n\nWe now support scaling the logical display to fit the\nphysical display, whatever size it is.  So we can allow\nadb shell am display-size to use more or less arbitrary sizes\nalthough we do enforce an upper and lower bound to\nprotect the user.\n\nChange-Id: I5fe6ba32ad1f9e4fbcd6915f7d36850b987bbcc0\n"
    },
    {
      "commit": "4573e29faf40983f9d1df99bb0f506d77a868e05",
      "tree": "fc3c3d39f54d21efaf2d2e9327c143ae9eb6a2eb",
      "parents": [
        "d7f5a51baf2c46436dc5bac3807fb0d46cbff304",
        "1676c856d61b97c871dc2be0cb1f1fb1e12e24e9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 10 15:39:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 10 15:39:02 2012 -0700"
      },
      "message": "Merge \"Flesh out multi-user in am commands.\" into jb-mr1-dev"
    },
    {
      "commit": "1676c856d61b97c871dc2be0cb1f1fb1e12e24e9",
      "tree": "7352f5bccdec8d7b9d90f9fb1d43dfa901e00f4a",
      "parents": [
        "41bd89f6b61296492d3775e5ef30e94c5f18d34f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 10 14:52:30 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 10 14:52:30 2012 -0700"
      },
      "message": "Flesh out multi-user in am commands.\n\nNow we default to the current user instead of user 0 for most commands\n(except where we can do the command for all users).\n\nMany more commands take a user argument: force-stop, kill, profile,\ndumpheap.\n\nImproved help text.\n\nChange-Id: I719a13b4d31b668f57ca21e51d7043ac3e0d4e1b\n"
    },
    {
      "commit": "d7f5a51baf2c46436dc5bac3807fb0d46cbff304",
      "tree": "e58ebfb7e060ecdd1ce769cc3a09f7327d58b762",
      "parents": [
        "e11dc0ddab438d3b6545bc5d1582e1deddb5d465",
        "b38070caa5143ab9fd1883e0c7c879533a480bc7"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Mon Sep 10 14:12:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 10 14:12:48 2012 -0700"
      },
      "message": "Merge \"IME support for trackball and generic motion events\" into jb-mr1-dev"
    },
    {
      "commit": "b38070caa5143ab9fd1883e0c7c879533a480bc7",
      "tree": "ffbed34eefd1fd81a028e1a14820d48953252b29",
      "parents": [
        "37ee53420ce47860807eb8eaeb454c12fa46797b"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Fri Aug 24 13:46:02 2012 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Mon Sep 10 14:01:42 2012 -0700"
      },
      "message": "IME support for trackball and generic motion events\n\nTrackball and generic motion events now pass through the IME in case\nit would like to handle them before passing them on to the view\nhierarchy.\n\nWhile I was at it, I also...\n...fixed the documentation on InputMethodService.onKeyUp()\n...added documentation to InputMethodService.onTrackballEvent()\n...added trackball and generic motion events to the \"input\" command\n...fixed input consistency verification involving ACTION_OUTSIDE\n\nBug: 7050005\nChange-Id: I40ab68df4a9542af6df25de6ec2ec500e4c02902\n"
    },
    {
      "commit": "5de4d989fbc08cf5135c07a74e2062bf64af95f1",
      "tree": "6e1740df03f570f31767f2516879bc4550e59da2",
      "parents": [
        "8727a73127dde026a797511d28355868797f0e46",
        "783f9e6615db5c90c184397cf1ee271e302c398b"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sun Sep 09 14:46:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 09 14:46:44 2012 -0700"
      },
      "message": "Merge \"Use correct PowerManager call to wake up screen\" into jb-mr1-dev"
    },
    {
      "commit": "783f9e6615db5c90c184397cf1ee271e302c398b",
      "tree": "c552f9768c06a47f2515f7ef116aea5bcb8c7cbc",
      "parents": [
        "add52a975aa78d9e24d3e63a8168c00a9bfb80ec"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sun Sep 09 14:38:23 2012 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sun Sep 09 14:43:09 2012 -0700"
      },
      "message": "Use correct PowerManager call to wake up screen\n\nThe current implementation does not actually wakes up the screen.\n\nChange-Id: Ief2dca013cfe40e03b64273fe7b09822e9ad42a7\n"
    },
    {
      "commit": "0c191624fba8484e811027a9db40a62a960ab7dc",
      "tree": "58c22c2bb7a920b6740da3e3268ebff01a308f80",
      "parents": [
        "add52a975aa78d9e24d3e63a8168c00a9bfb80ec"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Sep 08 17:03:48 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sun Sep 09 12:12:43 2012 -0700"
      },
      "message": "Remove \"protect\" command from installd\n\nNo one uses the \"protect\" command anymore, so remove it from installd.\n\nChange-Id: Ia990bae6f95cd6e317496f5dd173ec15164d7164\n"
    }
  ],
  "next": "151ec4c9f8ca34625733730a4551a23eb97cda23"
}
