)]}'
{
  "log": [
    {
      "commit": "c51d050f1bc2c393707f7c5e1f6906169ace7497",
      "tree": "82e181f39ef0dd6ffdddd08f283aecf35c4b262f",
      "parents": [
        "7fa9667f63fe84a2d17ce899121f32bfcec98864"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 15 15:36:53 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 15 15:36:53 2013 -0700"
      },
      "message": "Maybe fix issue #8620910: Win_sdk build failed and unable to create...\n\n...the sdk platform repo\n\nChange-Id: Ib6cd7c0dfb9b6217ae79af3e2ac25fe0442996e3\n"
    },
    {
      "commit": "f7be4800df28d7cb6a96003046bf90245e7054ab",
      "tree": "398c298946d8f95fef56fe18a52903f68966be8e",
      "parents": [
        "8d4c23b9c32f8c0328ebca538bb801716fe4478a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 12 14:52:58 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 12 14:53:10 2013 -0700"
      },
      "message": "Add new resources trace, also trace apk dex loading.\n\nChange-Id: Ia48566efb21ee018659bd976ddb3a0f4997b9a3a\n"
    },
    {
      "commit": "bdb706e48d71af498156efbb10d0f0c1fcef8878",
      "tree": "d7fc1d7057e9055fa23d1c49adcdbe7dd34799c3",
      "parents": [
        "8299f683f3fbe7ba0f5387b062b31de117882dba",
        "c6091c64c90e9557ea58e0d7cf75915aea7c6c3e"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Apr 05 21:43:31 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 05 21:43:31 2013 +0000"
      },
      "message": "Merge \"Pipe through device resolution information\" into jb-mr2-dev"
    },
    {
      "commit": "1951ce86c21445ac191e4d2d95233f4f5c096b56",
      "tree": "8c68eb0fe87565bcdaf7cd8bd2a56a03319bede5",
      "parents": [
        "41c076715da58990dc9b0be749bba28fc75d3b78"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 04 22:45:12 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 04 22:45:12 2013 -0700"
      },
      "message": "Correctly manage the lifecycle of IME InputChannels.\n\nInputChannels are normally duplicated when sent to a remote process\nover Binder but this does not happen if the recipient is running within\nthe system server process.  This causes problems for KeyGuard because the\nInputMethodManagerService may accidentally dispose the channel\nthat KeyGuard is using.\n\nFixed the lifecycle of InputChannels that are managed by the IME\nframework.  We now return a duplicate of the channel to the application\nand then take care to dispose of the duplicate when necessary.\nIn particular, InputBindResult disposes its InputChannel automatically\nwhen returned through Binder (using PARCELABLE_WRITE_RETURN_VALUE).\n\nBug: 8493879\nChange-Id: I08ec3d13268c76f3b56706b4523508bcefa3be79\n"
    },
    {
      "commit": "c6091c64c90e9557ea58e0d7cf75915aea7c6c3e",
      "tree": "f5f69d5bbd0270d7a1b7564920e6f31f381704cd",
      "parents": [
        "77d94957d793aba16a1352d25d5555bf59fe74e7"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Apr 01 20:56:04 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Apr 04 18:10:37 2013 -0700"
      },
      "message": "Pipe through device resolution information\n\nBug: 8424494\nChange-Id: Iafeeee0d5cd29342c1cdc86b9616222aaa5d1b94\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": "893df066bbd156b05171e68204a407a212c507e9",
      "tree": "cc5cd5b6bfce812e0003a477bf55ea150aa92d85",
      "parents": [
        "65b0052a7473b73a18aef73460c9ebec77a2c2a0",
        "8dda0956b6565a958989af44e885b94dc9bfc9bd"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 21 16:24:41 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 21 16:24:41 2013 -0800"
      },
      "message": "am 8dda0956: am 49999acb: Merge \"StreamingZipInflater: fix mmap\\\u0027d end of read\"\n\n* commit \u00278dda0956b6565a958989af44e885b94dc9bfc9bd\u0027:\n  StreamingZipInflater: fix mmap\u0027d end of read\n"
    },
    {
      "commit": "c6e35cb47a90a43b5a0009f526b695b2b5c87465",
      "tree": "f7d7a151e46f6d13fc3568ec8b704d8a9c53d364",
      "parents": [
        "9657ba0edc8bab5a36c26bcd94366149aed63331"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 15 09:37:11 2013 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 15 11:05:48 2013 -0800"
      },
      "message": "StreamingZipInflater: fix mmap\u0027d end of read\n\nWhen reaching the end of a mmap\u0027d segment, it was erroneously trying to\nread more data. This is because we were reading data one character at a\ntime, so we never reached the Z_STREAM_END result without going through\nthe loop once more.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d39041\nChange-Id: I6c53b8187384a42217c32112d6a0c2857f471109\n"
    },
    {
      "commit": "6b7fcc8f6754f0bf7a406834a6dc066710a9de51",
      "tree": "5dea685569aaba5d36f7cb9576c649f9c832486a",
      "parents": [
        "8ca4642b7460057be0ee8ba97633d6fb1dfcd532",
        "75701e8fc92285680637f69e0f004741919ddc10"
      ],
      "author": {
        "name": "Jeffrey Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed Feb 06 20:56:07 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 06 20:56:07 2013 -0800"
      },
      "message": "am 75701e8f: am 7eb4db35: am b9185fd1: Merge \"Fix PointerCoords Parcel incorrectly storing values as Int32\"\n\n# By Ilya Polenov\n# Via Android Git Automerger (2) and Gerrit Code Review (2)\n* commit \u002775701e8fc92285680637f69e0f004741919ddc10\u0027:\n  Fix PointerCoords Parcel incorrectly storing values as Int32\n"
    },
    {
      "commit": "7eb4db35935237a6bd029d5bafda97fa5d4d905c",
      "tree": "9712164133313b6aadce230e38e82d4356b94874",
      "parents": [
        "a0d547b43b3508c7253da234f529acf60d00fd13",
        "b9185fd1ffd85239e3ab10ab34cb9d8508970fb4"
      ],
      "author": {
        "name": "Jeffrey Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed Feb 06 20:50:17 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 06 20:50:17 2013 -0800"
      },
      "message": "am b9185fd1: Merge \"Fix PointerCoords Parcel incorrectly storing values as Int32\"\n\n# By Ilya Polenov\n# Via Gerrit Code Review\n* commit \u0027b9185fd1ffd85239e3ab10ab34cb9d8508970fb4\u0027:\n  Fix PointerCoords Parcel incorrectly storing values as Int32\n"
    },
    {
      "commit": "1df477acf60538f9de18bd597e090d075fa83509",
      "tree": "a163bd932074c49b9fac6792ca85d12569559dd5",
      "parents": [
        "b06870bf49055721bd43b5bbd742feb8422fc071"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Jan 31 16:19:18 2013 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Feb 01 16:29:59 2013 -0800"
      },
      "message": "Add initial plumbing for brightness keys\n\nChange-Id: I595e8a25e6c245e4b22f06df9a8acdbb75e4b041\n"
    },
    {
      "commit": "716f7b3f5e29adedf1cd5c11529d9cfd82246897",
      "tree": "4e38b37b38069168d527b9224bd5598ea762b7f9",
      "parents": [
        "7ad885e2e6c845dbec4f16cd71e859240741dbf9"
      ],
      "author": {
        "name": "Ilya Polenov",
        "email": "daioptych@gmail.com",
        "time": "Mon Dec 10 10:19:58 2012 +0400"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 30 10:15:00 2013 +0000"
      },
      "message": "Fix PointerCoords Parcel incorrectly storing values as Int32\n\nPointerCoords stores its values as float and its Parcel should\ndo the same. Wrong behaviour may be noticed when MotionEvent is\ninjected using Instrumentation method sendPointerSync. All its\nPointerCoords values(size, orientation, pressure, etc) will be\ncasted to integer omitting their decimal part. This fix addresses\nthis issue.\n\nChange-Id: Ifa3dfce4d5c2e6c060852f4208cb5684e827c7e6\nSigned-off-by: Ilya Polenov \u003cdaioptych@gmail.com\u003e\n"
    },
    {
      "commit": "81cfb63e9fc6ef72e5b488225fe9b7a43551fc9e",
      "tree": "b3b162d6efb8ab2d7b83783989384261fefc0d95",
      "parents": [
        "767e1c010c0664fa4bf7e7e32b840af4bbe0b0cf",
        "d13b23a436075262cc83f7502f7159de24546003"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 03 18:47:37 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 03 18:47:37 2013 -0800"
      },
      "message": "am d13b23a4: Merge \"Revert \"fix potential memory leak\"\"\n\n* commit \u0027d13b23a436075262cc83f7502f7159de24546003\u0027:\n  Revert \"fix potential memory leak\"\n"
    },
    {
      "commit": "767e1c010c0664fa4bf7e7e32b840af4bbe0b0cf",
      "tree": "bca418c2c05fcdd6ea5eb9fe3882877606155974",
      "parents": [
        "b7de79d02743cc3b5372be27be818d3227a34e2b",
        "9aac0c1b35ec666a18f320be99e6aa37d0bcf202"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 03 18:47:32 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 03 18:47:32 2013 -0800"
      },
      "message": "am 9aac0c1b: Merge \"fix potential memory leak\"\n\n* commit \u00279aac0c1b35ec666a18f320be99e6aa37d0bcf202\u0027:\n  fix potential memory leak\n"
    },
    {
      "commit": "957efcdc7331957df415faf9ab40f8bc08f5bd99",
      "tree": "2f0b03de5b247d9e0843c7f2bbcf90eb96dc879d",
      "parents": [
        "bc268b9014f211910e412a7fda96b6394ff2badc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 03 17:38:57 2013 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 03 17:38:57 2013 -0800"
      },
      "message": "Revert \"fix potential memory leak\"\n\nThis reverts commit bc268b9014f211910e412a7fda96b6394ff2badc\n\nChange-Id: I07f49bd0cfecc43bc761d2b0635c9915a8e30272\n"
    },
    {
      "commit": "bc268b9014f211910e412a7fda96b6394ff2badc",
      "tree": "bcbaed695f3c808c23e78b74ff970b536db7b30b",
      "parents": [
        "73e243c4d271907d10f10b301b2d6854e1f63fe4"
      ],
      "author": {
        "name": "Sungmin Choi",
        "email": "sungmin.choi@lge.com",
        "time": "Fri Dec 21 14:25:38 2012 +0900"
      },
      "committer": {
        "name": "Sungmin Choi",
        "email": "sungmin.choi@lge.com",
        "time": "Fri Jan 04 09:56:18 2013 +0900"
      },
      "message": "fix potential memory leak\n\nuse delete before return\n\nChange-Id: I5449ad90bb6910f057bd825b722c9803a7343c34\n"
    },
    {
      "commit": "eea47240b085fa0260011423774506b5375b9351",
      "tree": "5cbada218156291fa00f74bf805ffb8353d46969",
      "parents": [
        "8149820c2b2df47028498571785ca009d99b5dc9",
        "4b0ed0178de2c9c21bd5514671b8b4282f6a03db"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Mon Dec 17 11:02:04 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 17 11:02:04 2012 -0800"
      },
      "message": "am 4b0ed017: Merge \"BackupHelpers: Fix Typo\"\n\n* commit \u00274b0ed0178de2c9c21bd5514671b8b4282f6a03db\u0027:\n  BackupHelpers: Fix Typo\n"
    },
    {
      "commit": "8b2e2c8abc20de5ba3d938d8c559d0c5e2f9e356",
      "tree": "91f3547c71620ed81ba952a1d525c496dbec925f",
      "parents": [
        "c749261fea1010dfa2d1337bd210c81d13052540"
      ],
      "author": {
        "name": "You Kim",
        "email": "you.kim72@gmail.com",
        "time": "Mon Dec 17 03:36:10 2012 +0900"
      },
      "committer": {
        "name": "You Kim",
        "email": "you.kim72@gmail.com",
        "time": "Mon Dec 17 03:36:10 2012 +0900"
      },
      "message": "BackupHelpers: Fix Typo\n\ndelete --\u003e free\n\nChange-Id: Idbf7e677f8cc4a9a9d04e58b5cf7d0f1589c5211\n"
    },
    {
      "commit": "5780e196806b3741786b212866435593990f97ee",
      "tree": "509fc940b432fd2dc47a5098dce4dc9b3c7af1e9",
      "parents": [
        "3042da88095760005a4a2424f188cb0392ab064a",
        "5c0d6f9980ed4684cbeefc28036dd9eeac474375"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Dec 13 12:33:35 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 13 12:33:35 2012 -0800"
      },
      "message": "am 5c0d6f99: am 9de88dad: Merge \"Fix bug #7724071 ImageView drawable is not loaded correctly when changing Locale\" into jb-mr1.1-dev\n\n* commit \u00275c0d6f9980ed4684cbeefc28036dd9eeac474375\u0027:\n  Fix bug #7724071 ImageView drawable is not loaded correctly when changing Locale\n"
    },
    {
      "commit": "350993591974a8c7a2eca665f96304d296104789",
      "tree": "a00369450feb420fa9ec18f3d122e2a3593de8ec",
      "parents": [
        "2b89f73ef805022c4e8b9bad545c1aa0421e5586"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Dec 12 11:52:03 2012 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Dec 12 11:52:03 2012 -0800"
      },
      "message": "Fix bug #7724071 ImageView drawable is not loaded correctly when changing Locale\n\naapt is not generating the correct CONFIG_LAYOUTDIR bit when a Drawable has a\nLTR and RTL version. It was generating instead the wrong CONFIG_SCREEN_LAYOUT bit.\n\nThis was linked to the fact that the layout direction bits are contained into the\nscreen layout bit.\n\nSo now make sure that we are generating the correct CONFIG_LAYOUTDIR bit.\n\nChange-Id: If17c84d31e6c128721ed97ee6711660b131bf941\n"
    },
    {
      "commit": "be37b5fa2473fd6ee5c1223472b29f212067761d",
      "tree": "2851c12021634f4f512bf4f7dac0ed68dcceda05",
      "parents": [
        "87ed0a10f5cb563c0a06d22a40472b4e88348e9b",
        "a1d82ff39315c962fbd6839f7a581ffaafe675e4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Wed Nov 14 09:33:48 2012 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 09:33:49 2012 -0800"
      },
      "message": "Merge \"Free resources in correct order in ResStringPool::uninit\""
    },
    {
      "commit": "58b99bf1d8d203d91a63619a99a8f29911ba58bc",
      "tree": "a2f598ab16c769364f1497a5b7426822e0fa002f",
      "parents": [
        "75cf582c028ffe179521825a1908cd747f190a33",
        "826343138dfd8666d2263dd82bfdbf657fc1881e"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 12 23:57:38 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 12 23:57:38 2012 -0700"
      },
      "message": "am 82634313: Merge \"Reject bad ResXMLTree::setTo calls\"\n\n* commit \u0027826343138dfd8666d2263dd82bfdbf657fc1881e\u0027:\n  Reject bad ResXMLTree::setTo calls\n"
    },
    {
      "commit": "32d6aef11abd4660fc764ffa53bd88c7589f2d35",
      "tree": "c316a098be821eed2bc471905d588af94bbb1d38",
      "parents": [
        "cee1124052202c7f2a1956a54e5aa538d82197a7"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 10 10:23:47 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 10 10:25:06 2012 -0700"
      },
      "message": "Reject bad ResXMLTree::setTo calls\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d21838\nChange-Id: I1092499906f0cafe5a3c42ab2579edf3763cedb7\n"
    },
    {
      "commit": "a1d82ff39315c962fbd6839f7a581ffaafe675e4",
      "tree": "5dad4a5eda2b59da40aa8d6b1988a8d3f97e45bb",
      "parents": [
        "07b4339b2a2f39c17194b21dc301c0c026a2f197"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris@mips.com",
        "time": "Mon Oct 08 12:22:02 2012 -0700"
      },
      "committer": {
        "name": "Chris Dearman",
        "email": "chris@mips.com",
        "time": "Mon Oct 08 12:32:53 2012 -0700"
      },
      "message": "Free resources in correct order in ResStringPool::uninit\n\nmOwnedData contains the mHeader data structure\n\nChange-Id: I0ae9ba3a0d18fc3f368c629501fadebce8807198\n"
    },
    {
      "commit": "49bbbf2c1c96432f1f599d5573931470117be45a",
      "tree": "612d69ac31a9869c2321ff36fc70cf715c309f84",
      "parents": [
        "35512ab00697ce50f9ff5a39f3f3a4ccb7e3b7f0",
        "d87cb794b063c503f4d732141904bd1edd5c5914"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Oct 04 19:40:38 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 04 19:40:38 2012 -0700"
      },
      "message": "am d87cb794: am 0cd3c976: Merge \"Settings (and general) restore fixes\" into jb-mr1-dev\n\n* commit \u0027d87cb794b063c503f4d732141904bd1edd5c5914\u0027:\n  Settings (and general) restore fixes\n"
    },
    {
      "commit": "5067685ccf6c294a77a3e7f0577190600a0e6238",
      "tree": "1ffd1c4ddf0c9eb77b6087a185208aad08cf1215",
      "parents": [
        "dd2f15a563f18c9534cfa85fe2b8bf2fe100ed83"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Oct 04 19:10:11 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Oct 04 19:10:11 2012 -0700"
      },
      "message": "Settings (and general) restore fixes\n\nPro tem, we ignore wifi configuration data when restoring system settings.\nThis is not ideal, but it *does* mean we do not bounce wifi off and on\nagain during the extended restore process, which in turn means we don\u0027t\ninterfere with things like the Play Store\u0027s download of applications.\nWe do continue to back up wifi configuration, and will start using that\ndata again when the new implementation that restores AP configurations\nwithout having to bounce wifi comes to pass.\n\nAlso, this CL fixes a longstanding bug in BackupDataInput.skipEntityData()\nthat was being reproduced reliably once settings restore was skipping\nthe wifi-related entities in the restore stream.\n\nBug 7249405\n\nChange-Id: I61520a9a116b66ebdf95734d09d9afd46406df01\n"
    },
    {
      "commit": "f0771b192c5530681ca407bdf3c1b21fd519c897",
      "tree": "057579d86cc18f7edfe3d2e7e8676ed84624f644",
      "parents": [
        "912c37802cd2e3e10495ea4b7c9dc3ccdd1702e5",
        "cee1124052202c7f2a1956a54e5aa538d82197a7"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 02 13:10:59 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 02 13:10:59 2012 -0700"
      },
      "message": "am cee11240: am 07b4339b: Merge \"Change androidfw tests to native test target\"\n\n* commit \u0027cee1124052202c7f2a1956a54e5aa538d82197a7\u0027:\n  Change androidfw tests to native test target\n"
    },
    {
      "commit": "f3f286df4d79834ec350bdc18d01acd51f4791e1",
      "tree": "8956d02b4a340682a3c948914fd10d866fce22e3",
      "parents": [
        "77728b010e34069a904c9e8a40e03b8829cfb8ae"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 02 10:52:47 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 02 11:54:01 2012 -0700"
      },
      "message": "Change androidfw tests to native test target\n\nChange the androidfw tests to the BUILD_NATIVE_TEST target so they end\nup in the correct directory. Also remove the module tags and C include\npaths. The include paths are automatically added when the library is\nused.\n\nChange-Id: Ia47f6c25130c5068b89d6dc067e5d9c714a6d08a\n"
    },
    {
      "commit": "8a802dbdabdfd27692c2e38b2c3adafe95566106",
      "tree": "7b933dc6d1dcfb6cd4a7d0a349ce642641712c07",
      "parents": [
        "18e876806718e28edaa3cd9bb0262a9b400bc82b"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Sep 05 13:12:02 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Sep 06 11:13:24 2012 -0700"
      },
      "message": "Use \"ldrtl\" and \"ldltr\" config qualifiers for RTL / LTR resources\n\n- we cannot use \"rtl\" / \"ltr\" qualifiers as they can conflict with ISO-639 Alpha-3\ncodespace which uses 3 letters for identifying a language code (and could use either\n\"rtl\" or \"ltr\" strings for defining a language in the future).\n\n- we are using instead \"ldrtl\" for RTL and \"ldltr\" for LTR resources. Those qualifiers\nare defined by more than 3 chars and outside of what is defined into ISO-639. They\nare also more understandable as \"ld\" prefix is for \"layoutdirection\"\n\nChange-Id: Id43e948103707e09bef63ebd54ac1779dde58e72\n"
    },
    {
      "commit": "5f7979993979466c79ab4f38d83c6f2aca361662",
      "tree": "90c8b098b3c9a53a90c039641b0b7ba379d6b4eb",
      "parents": [
        "5e8e41e41aecd2a4951659a1f3507f3371e0cc47"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Jun 15 20:16:41 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Aug 23 14:55:33 2012 -0700"
      },
      "message": "Add support for \"-rtl\" in resources\n\n- fix bug #7035019 Need to have \"-rtl\" support for Resource\n\nChange-Id: Ic82145c2ac672729d8a6c695a5f343276a1a0a2c\n"
    },
    {
      "commit": "69a3ce1eb1af3129056f7da95a491da0280019b5",
      "tree": "7f0c69e03db10385c1c1c024d22de7a7135b487e",
      "parents": [
        "5e80cacfad7a09aea9e255fc7b5bfeb30989d1a8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Aug 05 12:38:51 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Aug 05 12:38:51 2012 -0700"
      },
      "message": "libutils cleanup\n\nChange-Id: Ic069539338ba4097dba9399904f02bbd0296c20e\n"
    },
    {
      "commit": "4b447b91debda9c9a0e230cab9e140e356b2a305",
      "tree": "df6f200b93e6bbc5345d439a00e6d9a22fc9e406",
      "parents": [
        "0cedfe09e5083a274a8c449ca52f735a177e1817"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 26 15:03:38 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 26 15:03:38 2012 -0700"
      },
      "message": "Add mode when open(O_CREAT) is used.\n\nWhen creating a new file using open(..., O_CREAT), it is an error\nto fail to specify a creation mode. If a mode is not specified, a\nrandom stack provided value is used as the \"mode\".\n\nThis will become a compile error in a future Android change.\n\nChange-Id: I8635e8b69587ed107253870d991c3fcf563ca876\n"
    },
    {
      "commit": "78f04a364f8cd7dc3a7a0aaf73c96a6cc84718b6",
      "tree": "8b292f7d036f30087f535c3f617c8aef13b6c8ef",
      "parents": [
        "ba58221769575d1129c61fe0da9030986eb899bd",
        "51df04b93e8e362edd867abd7efaf1659b8b8b82"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 13:13:34 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 04 13:13:34 2012 -0700"
      },
      "message": "am 51df04b9: Port the legacy velocity tracker strategy.\n\n* commit \u002751df04b93e8e362edd867abd7efaf1659b8b8b82\u0027:\n  Port the legacy velocity tracker strategy.\n"
    },
    {
      "commit": "ba58221769575d1129c61fe0da9030986eb899bd",
      "tree": "cca06da3f48e1d399703b31f9bec74bae1188881",
      "parents": [
        "2fd6baef5911d3bb481d1a603180d7371d43df41",
        "a5b0698231459ac5b54cf8e8952ac5c2b2b2198b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 13:13:30 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 04 13:13:30 2012 -0700"
      },
      "message": "am a5b06982: Implement a second order integrating VT strategy.\n\n* commit \u0027a5b0698231459ac5b54cf8e8952ac5c2b2b2198b\u0027:\n  Implement a second order integrating VT strategy.\n"
    },
    {
      "commit": "2fd6baef5911d3bb481d1a603180d7371d43df41",
      "tree": "2cdda034ced17990e057fa8ef21e3237d402448e",
      "parents": [
        "524d8ee8e0fd8d8be8273a5b59886371d6fa77b8",
        "18f329e9480fca75210bb7496e5b4bc987b4ad8f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 13:13:27 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 04 13:13:27 2012 -0700"
      },
      "message": "am 18f329e9: Implement a weighted least squares VelocityTracker strategy.\n\n* commit \u002718f329e9480fca75210bb7496e5b4bc987b4ad8f\u0027:\n  Implement a weighted least squares VelocityTracker strategy.\n"
    },
    {
      "commit": "51df04b93e8e362edd867abd7efaf1659b8b8b82",
      "tree": "5c416d400d53da96891465fd5b602e063925622b",
      "parents": [
        "a5b0698231459ac5b54cf8e8952ac5c2b2b2198b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 23:14:14 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 12:34:03 2012 -0700"
      },
      "message": "Port the legacy velocity tracker strategy.\n\nFor comparison purposes, port the legacy velocity tracker\nalgorithm as it behaved prior to ICS.\n\nBug: 6413587\nChange-Id: I7e8e56584dcdb1a3c660ca9d8f9c5bd5d868e449\n"
    },
    {
      "commit": "a5b0698231459ac5b54cf8e8952ac5c2b2b2198b",
      "tree": "cc91df96eaa76fe98969e40f9b4e9b4dd0babbd3",
      "parents": [
        "18f329e9480fca75210bb7496e5b4bc987b4ad8f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 22:46:07 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 12:34:03 2012 -0700"
      },
      "message": "Implement a second order integrating VT strategy.\n\nBug: 6413587\nChange-Id: I51bc7b8cbff22b10b728fc84ee15370e9984dd55\n"
    },
    {
      "commit": "18f329e9480fca75210bb7496e5b4bc987b4ad8f",
      "tree": "8be6eebdeb6dfd2cd64e0715048db571209a7096",
      "parents": [
        "433927c52f2758e3e69f69d7e03d571ee4f18a26"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 14:18:26 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 12:34:03 2012 -0700"
      },
      "message": "Implement a weighted least squares VelocityTracker strategy.\n\nNo change to the default strategy.\n\nBug: 6413587\nChange-Id: I08eb6f9a511e65ad637359b55b5993c26ba93b40\n"
    },
    {
      "commit": "767bc6d26c98594525ed7dd94e8880335e15e8a8",
      "tree": "7e5a977d8c4486530f198baec39934267cd1decb",
      "parents": [
        "7d3fa093bbd34e19f6b580b6258c8ea4e138c777",
        "1fbbc0716f9b70c6dcee00c4550757077ef7f7b5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 21:19:16 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jun 03 21:19:16 2012 -0700"
      },
      "message": "am 1fbbc071: Merge \"Implement an integrating VelocityTracker strategy.\" into jb-dev\n\n* commit \u00271fbbc0716f9b70c6dcee00c4550757077ef7f7b5\u0027:\n  Implement an integrating VelocityTracker strategy.\n"
    },
    {
      "commit": "7d3fa093bbd34e19f6b580b6258c8ea4e138c777",
      "tree": "33ed4f33968d5cfabad258135588f9c3aa1e7e71",
      "parents": [
        "66a10964b0aa56e07263005e6a41a87ecd2dd2d7",
        "f47e76e2c78e78e26110786e99548d718d177c32"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 21:19:13 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jun 03 21:19:13 2012 -0700"
      },
      "message": "am f47e76e2: Merge \"Make velocity tracker strategy configurable.\" into jb-dev\n\n* commit \u0027f47e76e2c78e78e26110786e99548d718d177c32\u0027:\n  Make velocity tracker strategy configurable.\n"
    },
    {
      "commit": "53dd12a66884540b87fe428383e2f79d0f5e32ba",
      "tree": "7493fd04d9e2ad3143b679b9ae30829877ef38e4",
      "parents": [
        "9eb7d86181729c3eb769d71123c4ce9ffc868f08"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 01 13:24:04 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 19:23:58 2012 -0700"
      },
      "message": "Implement an integrating VelocityTracker strategy.\n\nThis algorithm better tolerates certain kinds of errors in the\ntouch input than the least squares strategy but it may underestimate\nthe velocity of accelerating movements.  This algorithm is\nmainly of interest as a baseline for testing and comparison with the\nleast squares algorithm, which remains the default.\n\nBug: 6413587\nChange-Id: I8ddb50084e44875e234717907e5b06d03f59788c\n"
    },
    {
      "commit": "9eb7d86181729c3eb769d71123c4ce9ffc868f08",
      "tree": "5844b6bfd4c9eac8bc5015fa54f5255a376805c8",
      "parents": [
        "6e8e41a336dfc0c43b672fd105a23aa48c93ec67"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 01 12:39:25 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 19:21:49 2012 -0700"
      },
      "message": "Make velocity tracker strategy configurable.\n\nThis change is very useful for testing purposes because it makes it\neasy to compare different implementations to see how they behave.\n\nThere is no change to the current default strategy.\n\nBug: 6413587\nChange-Id: I4d8567aa4160571ba9fa397ce419882cd9366749\n"
    },
    {
      "commit": "aebfdc231aadab63e51d740a8f3abf97953fd9f2",
      "tree": "e2235dfcd76d18afcb2d285a48c9053457837221",
      "parents": [
        "634ec69aa9f7e5806098800b504ae94dda1df5f3",
        "e4db99cf87c47730e80dc1431f07f4f1062c648e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 15 11:31:47 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 15 11:31:47 2012 -0700"
      },
      "message": "am e4db99cf: Merge \"Detect when pointer has stopped moving.\" into jb-dev\n\n* commit \u0027e4db99cf87c47730e80dc1431f07f4f1062c648e\u0027:\n  Detect when pointer has stopped moving.\n"
    },
    {
      "commit": "634ec69aa9f7e5806098800b504ae94dda1df5f3",
      "tree": "f97ef50b48d913f0f613208ca2809b3bedf83ebe",
      "parents": [
        "9de702743326deaca9466e49d488ff5c96bcecb7",
        "08b544c7be67343b10a4130611318b8273d06433"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 15 11:31:45 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 15 11:31:45 2012 -0700"
      },
      "message": "am 08b544c7: Merge \"Fix pointer indexing issue in VelocityTracker.\" into jb-dev\n\n* commit \u002708b544c7be67343b10a4130611318b8273d06433\u0027:\n  Fix pointer indexing issue in VelocityTracker.\n"
    },
    {
      "commit": "7469f8bb949bef1328877593952b8fe9801a3c67",
      "tree": "256ddcbe5b4a8cd0ca6d7dafe49f5c6bb37c3963",
      "parents": [
        "d83a0800679583ccc99a90a128f8d6c11afbeca4",
        "47a4a50df09b5ab76ee06cb8845fe5a02952ec32"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 15 11:31:32 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 15 11:31:32 2012 -0700"
      },
      "message": "am 47a4a50d: Merge \"Improve touch event resampling.\" into jb-dev\n\n* commit \u002747a4a50df09b5ab76ee06cb8845fe5a02952ec32\u0027:\n  Improve touch event resampling.\n"
    },
    {
      "commit": "e2ec70bf92e80800bd5163f56632b9eb14cce290",
      "tree": "c36a6707df306d1e052878ef34735e3ce7b893e2",
      "parents": [
        "6b65cfbe97b366ee2df4584c3ef80fd065e06cc9",
        "00ff47484f8137aa3e59f680ff07d2662cfb4088"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 15 11:31:08 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 15 11:31:08 2012 -0700"
      },
      "message": "am 00ff4748: Merge \"More VelocityTracker refactoring.\" into jb-dev\n\n* commit \u002700ff47484f8137aa3e59f680ff07d2662cfb4088\u0027:\n  More VelocityTracker refactoring.\n"
    },
    {
      "commit": "90729403d50488566eb4ae0e09bb1be21979a633",
      "tree": "52f3abce5411493e204de30f273bfa955c95af59",
      "parents": [
        "dcab190bd23f632f278af448b0c85b4cadcc6692"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:46:18 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:57:05 2012 -0700"
      },
      "message": "Detect when pointer has stopped moving.\n\nSome input devices do not generate ACTION_MOVE events while all\npointers have stopped, thereby lulling the VelocityTracker into\na false sense of complacency.  Before handling the following sample,\nreset the VelocityTracker state so as not to be influenced by\nearlier samples before the pointer stopped.  The velocity after\nstopping is assumed to be discontinuous.\n\nBug: 6413587\nChange-Id: I6387bc036ff141d083d3d17a89e37eeaa3188349\n"
    },
    {
      "commit": "dcab190bd23f632f278af448b0c85b4cadcc6692",
      "tree": "a5ef26d407c976a8d6cc5504393a54636b68b834",
      "parents": [
        "7174a491bc1f89da65eaef3be25f3ea3f3e3bab5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:44:17 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:44:17 2012 -0700"
      },
      "message": "Fix pointer indexing issue in VelocityTracker.\n\nVelocityTracker was implicitly assuming that the pointer ids in\na MotionEvent were ordered.  That is not necessarily the case\nso we need to be careful while copying the pointer coordinates out.\n\nBug: 6413587\nChange-Id: I3b23a954f893eebdf786f2a94207149b092ef036\n"
    },
    {
      "commit": "7174a491bc1f89da65eaef3be25f3ea3f3e3bab5",
      "tree": "2171b655c03b965e92a68889ff5bdfea6da10757",
      "parents": [
        "85bd0d62830a098c1bdc720dfdcf4fe1b18b657c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 17:00:27 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:31:53 2012 -0700"
      },
      "message": "Improve touch event resampling.\n\nFixed a few bugs related to the id-to-index mapping for\npointer coordinates.\n\nTightened the bounds on the resampling time interval to\navoid predicting too far into the future.\n\nOnly lerp X and Y components of motion events.\n\nAlter the future to satisfy past predictions.  (Rewrite touch\nevents to conceal obvious discontinuities.)\n\nAdded a system property to control whether resampling is enabled\nfor debugging purposes.\n\nBug: 6375101\nChange-Id: I35972d63278bc4e78148053a4125ad9abeebfedb\n"
    },
    {
      "commit": "85bd0d62830a098c1bdc720dfdcf4fe1b18b657c",
      "tree": "7b1d7b8335caabd8d2f641e5b56a31ff58d6d2b7",
      "parents": [
        "0d607fbe546ac943de38dad33ae681b09efec6ea"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun May 13 15:30:42 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun May 13 16:10:57 2012 -0700"
      },
      "message": "More VelocityTracker refactoring.\n\nBug: 6413587\nChange-Id: Ida1152e7a34d5fe5caab5e6b5e1bc79f6c7a25e6\n"
    },
    {
      "commit": "47272c932ab6157022aaefd015e5d1df9dc5bd2f",
      "tree": "4d509641b27418312e4d9499266716e4df16eb36",
      "parents": [
        "08df9eac6e7ef246afb5ccd9d7cccadcb131e7b2",
        "b12b6b5116e3d76474296b45f570693bb10d6c99"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 14:06:30 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 11 14:06:30 2012 -0700"
      },
      "message": "am b12b6b51: Merge \"Minor refactoring before starting on velocity tracker changes.\" into jb-dev\n\n* commit \u0027b12b6b5116e3d76474296b45f570693bb10d6c99\u0027:\n  Minor refactoring before starting on velocity tracker changes.\n"
    },
    {
      "commit": "8a90e6e3174083f274538567d851f98478fc83e9",
      "tree": "2ac01015731bac0d759c8e7b6526ffa4874a369b",
      "parents": [
        "2f0957607411b99810226ad38d59cf18718b86d0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 12:24:35 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 12:32:56 2012 -0700"
      },
      "message": "Minor refactoring before starting on velocity tracker changes.\n\nBug: 6413587\nChange-Id: I5eba2bb57193bff78cb3740de5f87aca0b31d154\n"
    },
    {
      "commit": "c3cca66404571454ee13b341925fe45efd5036e6",
      "tree": "9e78312726afd7ea7cd995d83e4694628ac5a6ff",
      "parents": [
        "48661a65a945367cfc65cbb4b7b39dd0cec92627",
        "0632b35b6828cd4324b3d218c2e38f895e819aad"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 01 18:41:00 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 01 18:41:00 2012 -0700"
      },
      "message": "am 0632b35b: Merge \"Improve handling of built-in keyboard.\" into jb-dev\n\n* commit \u00270632b35b6828cd4324b3d218c2e38f895e819aad\u0027:\n  Improve handling of built-in keyboard.\n"
    },
    {
      "commit": "daa3753a04699724d2cfe824ac1f5a266d643a05",
      "tree": "ddc33d395dd0f3d01a95775397356983fb28a076",
      "parents": [
        "32c8113510b2774f865e8ac763976b90d9db2706"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 01 15:54:03 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 01 16:34:20 2012 -0700"
      },
      "message": "Improve handling of built-in keyboard.\n\nThe window manager policy made some incorrect assumptions about the\nmeaning of the Configuration.keyboard field.  We need to be more\ncareful about distinguishing between built-in and external keyboards.\n\nMost of this change is to move the determination of the parts of\nthe Configuration related to input devices into the WindowManagerService\nleveraging new features of the InputManagerService to good effect.\n\nThen we plumb through the flag that indicates whether a device\nis internal or external so that we can be more particular about\nhow the lid switch effects changes to the Configuration.\n\nBug: 6424373\nChange-Id: I36a1c22ade35e578955465a25940a33f227b9763\n"
    },
    {
      "commit": "3e2d59146df9e9e325dcc65018bb130b03242bbc",
      "tree": "54d3d73e5d71d8ae0e83bfd6516cb6befd7ece97",
      "parents": [
        "39b58ba2b299e1c97e13535aae9add530d942c7b",
        "13c04786ceec6aebe898bca7c62853af2e4e7c09"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue May 01 10:00:22 2012 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue May 01 10:02:02 2012 -0700"
      },
      "message": "resolved conflicts for merge of 13c04786 to jb-dev-plus-aosp\n\nChange-Id: Ib7aa5a768f4606beb2a4387811cfed7c00cbc111\n"
    },
    {
      "commit": "39b58ba2b299e1c97e13535aae9add530d942c7b",
      "tree": "94247b9025407767a527abeded5c8cfebfabe1cb",
      "parents": [
        "a43d2589b1ce657d8af7702cd7b3e3114e7ae133",
        "bc2fb7b92e013779356c16685a388d5cdae6e93d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue May 01 09:53:48 2012 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue May 01 09:54:38 2012 -0700"
      },
      "message": "resolved conflicts for merge of bc2fb7b9 to jb-dev-plus-aosp\n\nChange-Id: I5386585e473201268c6ed8b05e0a16569d434ea2\n"
    },
    {
      "commit": "771526c88f5cc4b56a41cb12aa06a28d377a07d5",
      "tree": "71c36f271192ee66f069f0d1130a73e91b8302b9",
      "parents": [
        "330314c6fb7c178c0f0da65d6aa8c9e7d3004568"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 27 15:13:25 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 27 15:58:42 2012 -0700"
      },
      "message": "Resample touch events on frame boundaries.\n\nBug: 6375101\nChange-Id: I8774e366306bb2b6b4e42b913525bf25b0380ec3\n"
    },
    {
      "commit": "8bca94ad83f82682bc15df29dc25377fe43da17f",
      "tree": "04e78f028b7a6b8c8a9e9e66d0aa4d22ed97f073",
      "parents": [
        "fd6a5245ccb0294dada070444d9d9c6be752e668"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 23 16:12:32 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 23 16:12:32 2012 -0700"
      },
      "message": "More work on international keyboards.\n\nChanged the English US keymaps to implement a strict US key map\nwith no additional ALT functions.\n\nFixed a bug copying the alias in the InputDevice copy constructor.\n\nAdded support for end of line comments in KCM and KL files.\n\nAdded the German keyboard layout.\n\nSorted the keys in the keyboard layout files by physical arrangement\nto make it easier to maintain them.\n\nBug: 6110399\nChange-Id: If44d83de5b98f2bf0016cbb8e12264387b286aaa\n"
    },
    {
      "commit": "5bbd4b4f5fc19302fa017ad6afee6eb2d489d91a",
      "tree": "2bc118a5ef332003cc7f6791968076c48b3cf84b",
      "parents": [
        "9e6d4b035d4f012d23264d3d2bc946b1ca02dba1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 20 19:28:00 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 20 20:11:12 2012 -0700"
      },
      "message": "Get alias for Bluetooth devices.\n\nBluetooth devices can be renamed by the user.  Make the\ninput system aware of the user-specified name and transparently\npass it down to applications.  This enables the keyboard\nlayout picker Settings UI to use device names that are\nconsistent with what the user set in the Bluetooth UI.\n\nBug: 6363157\nChange-Id: I8eea26ce2c69c2a3f09c8de02e9e847610e0419c\n"
    },
    {
      "commit": "9a2bbf680e3b5b98051b9f2913ab6bd31b77f79a",
      "tree": "0e6d9dc80e52a02873462a0e051e34fd6f657bbc",
      "parents": [
        "f35ea5d25b286e166bdc43a589a45b56b6358499"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 18 14:09:10 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 18 15:01:57 2012 -0700"
      },
      "message": "Improve handling of certain keyboard layout properties.\n\nAutomatically choose a default value for the \u0027number\u0027 property\nbased on the characters that the key can generate.\n\nDon\u0027t generate any character when ctrl, alt or meta is\npressed unless the behavior exactly matches the modifier keys\nthat are pressed.\n\nSimplified the basic keyboard layouts taking into account the\nnew features.\n\nBug: 6110399\nChange-Id: Ibc0f0b50c2dcf3f962a33ac77c24d2993b77637d\n"
    },
    {
      "commit": "4a3862f6b0a8971b6ab5b1c46735b28e7604d0db",
      "tree": "4091176054868659d2fa6bec36540f56c08bd116",
      "parents": [
        "6ec6f79e1ac1714e3b837796e99f07ff88f66601"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 18:50:05 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 18:50:05 2012 -0700"
      },
      "message": "Add Dvorak keyboard layout.\n\nAdded support for mapping both scan codes and HID usages to\nKeyLayoutMap and KeyCharacterMap.  Keyboard overlays can\nnow influence how key events are mapped to key codes.\n\nBug: 6110399\nChange-Id: I6619fd2d3e1337c55928f89869dbc45b535c7ccf\n"
    },
    {
      "commit": "6ec6f79e1ac1714e3b837796e99f07ff88f66601",
      "tree": "02aa55617bfa6dd2eb0bec29156e279c8afaaa0d",
      "parents": [
        "a3bc565882dd3984e995363642b1295fe3d24d10"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 16:52:41 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 17:56:32 2012 -0700"
      },
      "message": "Support loading keyboard layout overlays from resources.\n\nAdded the concept of a keyboard layout overlay, which is\na key character map file that has \"type OVERLAY\".\n\nAdded support for loading keyboard layout overlays from\nresources dynamically.  The layouts are reloaded whenever they\nare changed in the Settings application or an application\nis installed.  This is somewhat more aggressive than necessary\nso we might want to optimize it later.\n\nBefore system-ready, the input system uses just the generic\nkeyboard layouts that are included on the device system image.\nAfter system-ready, it considers the user\u0027s selected keyboard\nlayout overlay and attempts to load it as necessary.  We need to\nwait until system-ready before doing this because we need to\nbe in a state where it is safe to start applications or access\ntheir resources.\n\nBug: 6110399\nChange-Id: Iae0886d3356649b0d2440aa00910a888cedd8323\n"
    },
    {
      "commit": "a47425a13c19f95057df78b8bb65bb25657e8753",
      "tree": "675c0d6bf611f2427bb3d11315d410bf9087b20a",
      "parents": [
        "c2346134bb519a54d50655cbef940fc3fdec60a9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 13 04:09:27 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 13 17:01:15 2012 -0700"
      },
      "message": "Add support for input devices that have vibrators.\n\nAdded a getVibrator() method to InputDevice which returns a Vibrator\nassociated with that input device.  Its uses the same API as the\nsystem vibrator which makes it easy for applications to be modified\nto use one or the other.\n\nBug: 6334179\nChange-Id: Ifc7f13dbcb778670f3f1c07ccc562334e6109d2e\n"
    },
    {
      "commit": "af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78b",
      "tree": "50cf9dd27d673bc5b3f75e6e18e9577873eecd6c",
      "parents": [
        "cc1169831921d9295b2fc01c1eaf7e9b00836f53"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 17:32:48 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 18:54:54 2012 -0700"
      },
      "message": "Notify applications when input devices change.\n\nThis change allows the InputManager to keep track of what input\ndevices are registered with the system and when they change.\nIt needs to do this so that it can properly clear its cache of\ninput device properties (especially the key map!) when changes\noccur.\n\nAdded new API so that applications can register listeners for\ninput device changes.\n\nFixed a minor bug in EventHub where it didn\u0027t handle EPOLLHUP\nproperly so it would spam the log about unsupposed epoll events\nuntil inotify noticed that the device was gone and removed it.\n\nChange-Id: I937d8c601f7185d4299038bce6a2934fe4fdd2b3\n"
    },
    {
      "commit": "cc1169831921d9295b2fc01c1eaf7e9b00836f53",
      "tree": "0817567e4363330957337e0b3bb6387c4911e25f",
      "parents": [
        "49ccac530b5a798e3c4a79b66b51b8546a0deed1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 10:05:41 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 10:05:41 2012 -0700"
      },
      "message": "HID usage should take precedence over scan code.\n\nChange-Id: Ibd8988e3dcc0d64f4019ffe491d9789733f9d243\n"
    },
    {
      "commit": "49ccac530b5a798e3c4a79b66b51b8546a0deed1",
      "tree": "0b25fa1110effb7e8aa46905928b0b159daa96ab",
      "parents": [
        "db13a6bf788cc48af86c8acf6f74b416dfd84199"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 11 18:27:33 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 11 20:28:09 2012 -0700"
      },
      "message": "Refactor key code mapping.\n\nAdded handling for EV_MSC / MSC_SCAN which typically reports\nthe HID usage associated with a key.  This will enable key maps\nto map keys with HID usages that Linux does not natively recognize.\n\nRemoved keyCode and flags fields from EventHub RawEvent since\nthey don\u0027t necessarily make sense in isolation now that we\npay attention to HID usage codes too.\n\nRemoved the fallback code for mapping keys and axes.  In practice,\nan input device should be self-sufficient.  We should not ever\nneed to look at the built-in keyboard\u0027s key map.  In fact, there\nusually isn\u0027t a built-in keyboard anyhow.  This code was originally\nworking around a problem where we weren\u0027t loading the key map\nfor touch screens with virtual keys, which has long since been fixed.\n\nChange-Id: I0a319bdec44be9514f795526347397e94d53a127\n"
    },
    {
      "commit": "9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f",
      "tree": "b0b509a261874435cab3f5f1a727c02b399bd91c",
      "parents": [
        "54ae14749bc7f9e73cfda35a8b49f9efa80a77fb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 14:30:49 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 18:23:58 2012 -0700"
      },
      "message": "Request key maps from input manager service.\n\nInstead of each application loading the KeyCharacterMap from\nthe file system, get them from the input manager service as\npart of the InputDevice object.\n\nRefactored InputManager to be a proper singleton instead of\nhaving a bunch of static methods.\n\nInputManager now maintains a cache of all InputDevice objects\nthat it has loaded.  Currently we never invalidate the cache\nwhich can cause InputDevice to return stale motion ranges if\nthe device is reconfigured.  This will be fixed in a future change.\n\nAdded a fake InputDevice with ID -1 to represent the virtual keyboard.\n\nChange-Id: If7a695839ad0972317a5aab89e9d1e42ace28eb7\n"
    },
    {
      "commit": "e38fdfae9196afd1bdc14c5ec6c12793af1e2550",
      "tree": "54523ccf3fc36a1b50410e2cb6e6d1f7230c40cf",
      "parents": [
        "dc0dbbd4a005f16624978b95817b33156acac526"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 06 14:51:01 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 06 14:57:19 2012 -0700"
      },
      "message": "Add a unique input device descriptor.\n\nThe purpose of the input device descriptor is to make it possible\nto associate persistent settings for each input device, such as the\nkeyboard layout.\n\nThe descriptor is a hash of the information we have about the\ndevice, such as its vendor id, product id, unique id, name,\nor location.\n\nBug: 6110399\nChange-Id: Idb80f946819b3f0dbf4e661bb0a753dbc2b60981\n"
    },
    {
      "commit": "a982dc05d7ca919c07f50e446549ef9dceadf6bd",
      "tree": "e9b0e1564069bf39447db97b966a01c6dda66609",
      "parents": [
        "54c546223cd550d2995ec6d956a8e7963311a0a6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 22 18:43:07 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 22 18:43:07 2012 -0700"
      },
      "message": "frameworks/base: move Zip* from libandroidfw to libutils\n\nZipUtils is needed by build/tools, move it from libandroidfw\n(frameworks/base) to libutils (frameworks/native).\n\nChange-Id: I2b4b7adcdf68eb25ee7cba5dd3b69eadf0523af3\n"
    },
    {
      "commit": "9dc348d75688faba645c03ecd6e72de7cecc87ba",
      "tree": "5bf27444139c7889bcb966823c54c7da296410a2",
      "parents": [
        "f2fbd2eda54cc6083d302ab00367af3db2b7e793",
        "2b6c32ca4177f1a97307f9cbd81ca485df28762c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 13 15:15:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 15:15:48 2012 -0700"
      },
      "message": "Merge \"Fix spurious ANRs in native activities.\""
    },
    {
      "commit": "2b6c32ca4177f1a97307f9cbd81ca485df28762c",
      "tree": "abc217f8ff191ce1ecc7c4eb9b51185b6d47625d",
      "parents": [
        "b2679481b57d87945df02983f95ff8e6c9ba5928"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 13 15:00:09 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 13 15:00:09 2012 -0700"
      },
      "message": "Fix spurious ANRs in native activities.\n\nSome native activities experienced ANRs when the input consumer\ndeferred an input event due to client-side batching.  If the\ninput channel was fully emptied then the client had no way of\nknowing that it should wake up to handle the deferred input event.\n\nThis patch also fixes some lock issues in the native activity\ninput queue implementation.  In at least one error case, it\nwas possible for a function to exit without releasing the lock.\n\nBug: 6051176\nChange-Id: I4d9d843237e69b9834f8d8b360031b677fcab8c3\n"
    },
    {
      "commit": "5c6dfeb1fb47102ffce415ea7898b33dd1290d54",
      "tree": "a3b0615850d47be87c43d28c492856aeccb15c32",
      "parents": [
        "a0b29f556519653c9749cebff4af43e68b4d59ce"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 09 13:17:17 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 09 13:17:17 2012 -0800"
      },
      "message": "Fix issue #6054627: resource matching issue of size qualifiers\n\nResource matching would incorrectly identify two configs with the\nsame value as better than.\n\nChange-Id: I7297dcf58fd5a43f1a5ff53bb093eeeb2cad090f\n"
    },
    {
      "commit": "08965ec67ada98f63f8ac879cc44c8b0e7ff046d",
      "tree": "9f8deeff644b4556c1054115e67de94bc6c39965",
      "parents": [
        "2d5ddd18688109e00229c577cefe1501ae39589e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 05 16:16:58 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 07 19:34:36 2012 -0800"
      },
      "message": "fixup hardcoded include paths for new project\n\nChange-Id: Id443ec5c99bb4d7653905f1be1f72a029e0cf087\n"
    },
    {
      "commit": "49d2b1864c3dfec6faff74d67cb2527a8f1af5a8",
      "tree": "2717d50ecfd85f7b558b2ead2d82bed6ea237dde",
      "parents": [
        "021df141ed8fdc0bc73b8bcb17106e2c7512b372"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 18:11:20 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 18:11:20 2012 -0800"
      },
      "message": "move CursorWindow from libbinder to libandroidfw\n\nChange-Id: I3b304e4f74e0d0ec8b20c57296c62449c9a0f792\n"
    },
    {
      "commit": "027692b640059fb1a9795215c0a863183aa5829c",
      "tree": "b0aa5fe65f08ec1076167e6413a92e790fd074d6",
      "parents": [
        "cbc69718cb8c637426bc1a642a13a1880d843a45"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 21 16:55:25 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 21 16:55:25 2012 -0800"
      },
      "message": "attempt to fix sdk build\n\nChange-Id: I94f32a9a7abccb52487bb9ff5e286faa4acfceff\n"
    },
    {
      "commit": "cbc69718cb8c637426bc1a642a13a1880d843a45",
      "tree": "7131e704d79f81e0d6eee5022fa59c33cb6cca7d",
      "parents": [
        "30167542cb23726a0d28c2eeb280f16f3101e97f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 21 14:34:47 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 21 14:34:47 2012 -0800"
      },
      "message": "another attempt at fixing the linux build\n\nChange-Id: Iac20439fd6eea4682859112e72f051294bc87ef6\n"
    },
    {
      "commit": "30167542cb23726a0d28c2eeb280f16f3101e97f",
      "tree": "8b004192ecbd6af311a092de676bd3a795494485",
      "parents": [
        "30c46ad519c127a92f2bd3ca1dc1eab9da6ac165"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 21 14:06:21 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 21 14:06:21 2012 -0800"
      },
      "message": "another attempt to fix the linux build\n\nChange-Id: Ifd4714de7281ffc8a8c90fb25fb34719a19a9b6f\n"
    },
    {
      "commit": "cd0f3088ef4c0f211d68235d9aa0556bd4e0984b",
      "tree": "b246e4fdfd4ecf9f8136c3b4c24937ecb9a4c309",
      "parents": [
        "fc24982a44d2b2b678fe5aa212b2e709d10e6413"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Feb 21 13:19:58 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Feb 21 13:49:15 2012 -0800"
      },
      "message": "Add stubs for improved compatibility\n\nChange-Id: I77b348b4c592e0b694aabb069812c94b9cb79a00\n"
    },
    {
      "commit": "30c46ad519c127a92f2bd3ca1dc1eab9da6ac165",
      "tree": "0f3f8d8feb31468f34b8b7794e8cf751df1ddac8",
      "parents": [
        "1ebe8aa23f10bd26d8d063df8e4bb8a0f7a1e411"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 21 13:27:59 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 21 13:27:59 2012 -0800"
      },
      "message": "attempt to fix linux builds\n\nChange-Id: I46d6f914fdc32dc26cc71bed3399e202f00eeb2a\n"
    },
    {
      "commit": "83c64e6b624a876436d2ef5d2f173b10407e27b4",
      "tree": "c4effc3260ab399e8fdae23baf06b076cd87a604",
      "parents": [
        "94d0024557f415b8463f085c9784a3e1d02b58c6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 20 16:58:20 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 20 22:38:43 2012 -0800"
      },
      "message": "frameworks/base refactoring\n\ncreate the new libandroidfw from parts of libui and libutils\n\nChange-Id: I1584995616fff5d527a2aba63921b682a6194d58\n"
    }
  ]
}
