)]}'
{
  "log": [
    {
      "commit": "f9ff2c9ae5595a20d77b10a41386932de1fc2da2",
      "tree": "5c122f3e21dfb7764a4d4fcfd1018f569839a5bd",
      "parents": [
        "4e5aa2cee69f6791f8001aeb1fc12389863fab8f"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 21 16:32:11 2014 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 21 16:41:24 2014 -0700"
      },
      "message": "Make the EthernetManager available.\n\nChange-Id: I7a60e977d7a40a5d0367168f2f6633ccae591ac4\n"
    },
    {
      "commit": "8a476edccdd2ae8cd5913bdeaeac319b22567b76",
      "tree": "8923061d3c695d1b0ced37875991d03295000e1c",
      "parents": [
        "3fff22173c7010467ce9e134e89b367e311d122b"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Tue May 20 14:06:49 2014 -0700"
      },
      "committer": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Tue May 20 14:06:49 2014 -0700"
      },
      "message": "Fix a boot failure due to Wifi / Wifi Passpoint\n\nBug: 15060373\nChange-Id: Ie72fd2e4b855c46a8f9ed12deb8b07fd0c29f522\n"
    },
    {
      "commit": "e715e8cc00de841d690bddd1e17741a0e9b05293",
      "tree": "9cfcf38aa77cd8debf7d2fd232404e4df289cbff",
      "parents": [
        "f564c7fe86d2aa9a7622667771d9e4bbf5518ffa"
      ],
      "author": {
        "name": "Vinit Deshpande",
        "email": "vinitd@google.com",
        "time": "Tue May 20 11:50:17 2014 -0700"
      },
      "committer": {
        "name": "Vinit Deshpande",
        "email": "vinitd@google.com",
        "time": "Tue May 20 11:50:17 2014 -0700"
      },
      "message": "Fix a runtime break caused by merge conflict\n\nKwd changed the name of WifiHotspotService to PasspointService; and\nthe reference to the name was moved in master. Merge ended up picking\nup incorrect name WifiPasspointService. This change fixes that.\n\nBug: 15106138\nChange-Id: Ib6d8aee53db39314a9d98abcbd8e0863210de1bb\n"
    },
    {
      "commit": "a4864472313208e4f1de02f45d3eadad237c54af",
      "tree": "f112d0faf7a8e91d6d891f189d7bf8f883ff8104",
      "parents": [
        "1ab9cc8029f723cc6198c013d9df1477fad2d3f9"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Thu Apr 10 11:45:42 2014 -0700"
      },
      "committer": {
        "name": "Vinit Deshpande",
        "email": "vinitd@google.com",
        "time": "Sun May 18 09:41:35 2014 -0700"
      },
      "message": "Hotspot 2.0 framework APIs -- initial implementation\n\nCherry-picked from klp-wireless-dev-mirror\nSHA1: e73969fac45aaca72528226dc8c0c5e54fb2cdd4\n\nBug: 5485670\nChange-Id: If3250a2fae181a3774d3158e341220006ad6ebe5\n"
    },
    {
      "commit": "82af2b9e51aac359b4b251cc622659a1a5537e35",
      "tree": "f7522146baa0fa75248be338fb3154debe2e2cd8",
      "parents": [
        "eea64a928e92e5b2e588274475ca562d1aeeaf5c",
        "4a5eeb9c727d77bb57fef87a70c8c9cc23dbfee3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 08 23:25:45 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 08 23:25:49 2014 +0000"
      },
      "message": "Merge \"AudioService/WireAccessoryManager: change boot completion detection method\""
    },
    {
      "commit": "011e1b35a64180d6f0234af8a3c2b70777eb9f39",
      "tree": "79c54cad4f30c493f587e4ac0fb1e89bbaecc714",
      "parents": [
        "c4bfcc12e92fe3d8f6f1dad0c12176d6dae3131d"
      ],
      "author": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Wed May 07 21:09:11 2014 -0700"
      },
      "committer": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Wed May 07 21:14:24 2014 -0700"
      },
      "message": "Initial implementation of WifiScanner\n\nThis change implements basic functionality of WifiScanner. Following\nfunctionality is enabled\n\n1. Scanning - specify a list of channels to scan\n2. Significant change detection\n3. AP hotlist\n\nChange-Id: Ieef75b96bdbbd3c7d9b9e698bd16e64d3b465254\n"
    },
    {
      "commit": "7c3606c103e95d3991267cca2592402a68779caf",
      "tree": "d0a7e48c3342e75fa2fe8176fd4a86e1826649af",
      "parents": [
        "15560a84dfd55452f53575cc1aab71b0b8baeb65"
      ],
      "author": {
        "name": "vandwalle",
        "email": "vandwalle@google.com",
        "time": "Mon Mar 31 19:12:07 2014 -0700"
      },
      "committer": {
        "name": "vandwalle",
        "email": "vandwalle@google.com",
        "time": "Wed May 07 18:48:48 2014 -0700"
      },
      "message": "initial Best Network Selection implementation\n\n-add dhcpserver, defaultGwMAC address, linked configuration and user choices link lists to WiFiconfiguration\n-add default gateway mac address to RouteInfo\n-add a Date to the ScanResult\n-add BSSID date to the WifiConfiguration\n- make framework auto-join into a config option\n- add Settings option for showing RSSI in Wifi picker view; add auto-join specific status to WifiConfiguration\n\nChange-Id: I5cfc4f2a48c9f3bc9766e8e68e24eff7b57f2821\n\n Changes to be committed:\n\tmodified:   core/java/android/provider/Settings.java\n\tmodified:   wifi/java/android/net/wifi/ScanResult.java\n\tmodified:   wifi/java/android/net/wifi/WifiConfiguration.java\n"
    },
    {
      "commit": "dfad99ad9fd5953b9d726715c40197a3e70e7dd0",
      "tree": "9eb7839fb997db3cfe3e649d5e5c0840dae4b35b",
      "parents": [
        "b5a449e4881de2af5f0a11fbb7a9a996937811d9",
        "0b5598c924fc140db5cfee08c17fd91e630b1c9e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 07 15:21:14 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 07 15:24:01 2014 -0700"
      },
      "message": "resolved conflicts for merge of 0b5598c9 to master\n\nChange-Id: Ie911d6b0b5e2b87e2b4669fa2465a82bb5807893\n"
    },
    {
      "commit": "0b5598c924fc140db5cfee08c17fd91e630b1c9e",
      "tree": "2120d37663c17aa37598961089dd77ca9686538b",
      "parents": [
        "3bbef521d4b07f86010ba0729a36ff8b73bcb0ac",
        "691079ddc0055fac9b82dccaf35b4591978b2a55"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 07 20:28:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 07 20:28:25 2014 +0000"
      },
      "message": "am 691079dd: am a21ba5be: Merge \"Add BackgroundDexOptService\"\n\n* commit \u0027691079ddc0055fac9b82dccaf35b4591978b2a55\u0027:\n  Add BackgroundDexOptService\n"
    },
    {
      "commit": "691079ddc0055fac9b82dccaf35b4591978b2a55",
      "tree": "3009cb3eb68ff4f7d0b3c34a229c0f509d60cad6",
      "parents": [
        "f2db00fdcd4e3dd97afd071f3af058d307a152f9",
        "a21ba5bec748e2f10d7e6d38181ec1124991cb60"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 07 03:33:41 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 07 03:33:41 2014 +0000"
      },
      "message": "am a21ba5be: Merge \"Add BackgroundDexOptService\"\n\n* commit \u0027a21ba5bec748e2f10d7e6d38181ec1124991cb60\u0027:\n  Add BackgroundDexOptService\n"
    },
    {
      "commit": "f2db00fdcd4e3dd97afd071f3af058d307a152f9",
      "tree": "35f84cacf9e31e014a6ea3dfdff25a3dcc990366",
      "parents": [
        "cc6b9eb23c3a6168d6cb5cb10977c43ebdcbbea4",
        "edb88bcd232176e575f2dbee2cfdb1bfbe33faef"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 07 03:33:37 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 07 03:33:37 2014 +0000"
      },
      "message": "am edb88bcd: Merge \"Use package usage information to decide what dex files to optimize in PackageManagerService\"\n\n* commit \u0027edb88bcd232176e575f2dbee2cfdb1bfbe33faef\u0027:\n  Use package usage information to decide what dex files to optimize in PackageManagerService\n"
    },
    {
      "commit": "7395a8ab8a7c6b03c32500c934694dde80b9ade1",
      "tree": "c58b373d189ae4fb54d912835ddc7da7da9a0e5e",
      "parents": [
        "ff1ec4d9e7b7eb1b6303d147c796f8767ee6715b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Apr 28 22:11:01 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 06 15:14:29 2014 -0700"
      },
      "message": "Add BackgroundDexOptService\n\nChange-Id: I0439a04f693ba92df906cbda34f8e53b32f63329\n"
    },
    {
      "commit": "ff1ec4d9e7b7eb1b6303d147c796f8767ee6715b",
      "tree": "2c89c758b994e749f380db7c3156fc04c9e226ca",
      "parents": [
        "f1f28d1d86aea6dd1419e94aadf051e433914680"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 17 15:21:35 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 06 15:06:25 2014 -0700"
      },
      "message": "Use package usage information to decide what dex files to optimize in PackageManagerService\n\nChange-Id: Iac137311e2e9d5139b5aa8651c6f3d296802612a\n"
    },
    {
      "commit": "4a5eeb9c727d77bb57fef87a70c8c9cc23dbfee3",
      "tree": "28a357f9dd84cede672e2f8d6281a130b6d4ce7b",
      "parents": [
        "ebb9e69513b690881a5bad7bf45c6f32e0fc7062"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 06 10:49:04 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 06 10:49:04 2014 -0700"
      },
      "message": "AudioService/WireAccessoryManager: change boot completion detection method\n\nBOOT_COMPLETED intent is not a reliable way for system services\nto detect boot completion. The intent broadcast can be significantly\ndelayed and there is no guaranty that system services\nreceive it before apps.\n\nUse a systemReady() method called by SystemServer instead.\n\nBug: 14323903.\nChange-Id: I781596a3545e7a1e719799982347cbcd9a4c9009\n"
    },
    {
      "commit": "e3cceef7ececdac1c6df65d3f7a1557ac3ce5e3c",
      "tree": "75875a7f0293c18546fc22a23d546d5e58f6ff33",
      "parents": [
        "74ec580873bb56cb5045a25efdb1eb7e2bac384c",
        "0f7c0570e091a284481c2406d8275d87c3786c1d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu May 01 21:41:58 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 21:41:58 2014 +0000"
      },
      "message": "am 0f7c0570: Merge \"Minor cleanup of UsageStatsService\"\n\n* commit \u00270f7c0570e091a284481c2406d8275d87c3786c1d\u0027:\n  Minor cleanup of UsageStatsService\n"
    },
    {
      "commit": "393fbe71f85288efaf452cb646ae0cc5c1073c92",
      "tree": "285f8bcb35a51c4c6994846d4d38db8094f5532e",
      "parents": [
        "ab3977d21161815c130bdedf21e2571382d208da"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 10 13:39:25 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu May 01 14:12:14 2014 -0700"
      },
      "message": "Minor cleanup of UsageStatsService\n\nChange-Id: Idea0e29f347d14e48e87aad38a261d0493bd5fd3\n"
    },
    {
      "commit": "67e2196d07dd4dc1f3ce82fdaaa34cdbce89e1ce",
      "tree": "eb4bb9d5fc69356ba7f74f6b65a7b21afb9c9204",
      "parents": [
        "4a26164316b0d9a6d97dfbb85a2ac176384bb985",
        "a278ea7cecb59a73586e5dd74ec05e85caa370c5"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu May 01 17:11:34 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 01 17:11:34 2014 +0000"
      },
      "message": "Merge \"Add dump to MediaSessionService\""
    },
    {
      "commit": "5dca099df7100c531e111b50435605c318f1e6d4",
      "tree": "feedbdedffab1231e5664d717702f7e45aaafea8",
      "parents": [
        "c1f81f9086037dde6e082b8a80c84277cb727726",
        "1cec7f8539e6465ff80577169d7d07df3c2574b7"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 14:00:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 14:00:52 2014 +0000"
      },
      "message": "am 1cec7f85: Merge \"Don\\\u0027t adjust ABI if PackageSetting#pkg is null.\"\n\n* commit \u00271cec7f8539e6465ff80577169d7d07df3c2574b7\u0027:\n  Don\u0027t adjust ABI if PackageSetting#pkg is null.\n"
    },
    {
      "commit": "c1f81f9086037dde6e082b8a80c84277cb727726",
      "tree": "eebe0332220d92aaf3135b06c046211a44629565",
      "parents": [
        "51f4367cac606580a5ca10ec1cf2dcab3982aebc",
        "27f2bfc406157039c5241f6a4f38f597b2076e2a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 14:00:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 14:00:49 2014 +0000"
      },
      "message": "am 27f2bfc4: Merge \"Fix dex file pruning logic.\"\n\n* commit \u002727f2bfc406157039c5241f6a4f38f597b2076e2a\u0027:\n  Fix dex file pruning logic.\n"
    },
    {
      "commit": "51f4367cac606580a5ca10ec1cf2dcab3982aebc",
      "tree": "fce1341050b5ea50edcf98e175d846ac67e93d5c",
      "parents": [
        "69da8a124e640c09d00546761c0502e1bcab79a6",
        "bcc3b312b0662ae2f8b8444eaedd5f35fc75c411"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 14:00:46 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 14:00:46 2014 +0000"
      },
      "message": "am bcc3b312: Merge \"Adjust instruction sets for shared UID apps.\"\n\n* commit \u0027bcc3b312b0662ae2f8b8444eaedd5f35fc75c411\u0027:\n  Adjust instruction sets for shared UID apps.\n"
    },
    {
      "commit": "69da8a124e640c09d00546761c0502e1bcab79a6",
      "tree": "d7fbe00ec4fbe87b35f6bed5cfd469414267a6a5",
      "parents": [
        "d85ded890d86d454a0571c63911ff911633e3a95",
        "2a9a047140b8da8f9cd7147c8bed60eeb61d1b6a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 14:00:43 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 14:00:43 2014 +0000"
      },
      "message": "am 2a9a0471: Merge \"Package manager changes for dual zygote stack.\"\n\n* commit \u00272a9a047140b8da8f9cd7147c8bed60eeb61d1b6a\u0027:\n  Package manager changes for dual zygote stack.\n"
    },
    {
      "commit": "d85ded890d86d454a0571c63911ff911633e3a95",
      "tree": "39fd13bde8e63742ab70268336cab655fc7bde86",
      "parents": [
        "eb5734989b3ef5455359f8807684a860ad04c134",
        "645a920fd2c478c545c6bb659f2eab36545fe116"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:56:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 13:56:59 2014 +0000"
      },
      "message": "am 645a920f: Merge \"Fix OEM native library path bug.\"\n\n* commit \u0027645a920fd2c478c545c6bb659f2eab36545fe116\u0027:\n  Fix OEM native library path bug.\n"
    },
    {
      "commit": "eb5734989b3ef5455359f8807684a860ad04c134",
      "tree": "31b5c245d8154f09c3ed046ee75f9f399a8ce607",
      "parents": [
        "99253c2da945cbd4725efced6cac2dc40c858d6c",
        "986b901ae280928e91193527f7c883b296fc62fc"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:56:56 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 13:56:56 2014 +0000"
      },
      "message": "am 986b901a: Merge \"Fix native-lib dir assignment \u0026 updating\"\n\n* commit \u0027986b901ae280928e91193527f7c883b296fc62fc\u0027:\n  Fix native-lib dir assignment \u0026 updating\n"
    },
    {
      "commit": "f465db9f1d6da1c94af66b64e0450aba72ee8824",
      "tree": "375fa50285fc6d2f83d458ff6ca1ec12b5bf65ec",
      "parents": [
        "27f2bfc406157039c5241f6a4f38f597b2076e2a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 30 13:33:38 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:56:43 2014 +0000"
      },
      "message": "Don\u0027t adjust ABI if PackageSetting#pkg is null.\n\nIf means the package hasn\u0027t been scanned yet, and we\nwill adjust the ABI during the scan of the last package\nin the shared user group.\n\nNOTE: This needs some more cleaning up, which will be\ndone along with the remaining TODO in this function.\n\n(cherry picked from commit 6609990e35b11c38f55f6e632160d4f2ff201ea3)\n\nChange-Id: Ibace7849485865054e062d2b979f320bf89ff0f3\n"
    },
    {
      "commit": "57156572a7284c3b774480f9b0138d5cd110a182",
      "tree": "0b7728d57dbf31a14e7944e80af67f960620cd4d",
      "parents": [
        "bcc3b312b0662ae2f8b8444eaedd5f35fc75c411"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Apr 29 16:49:27 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:56:22 2014 +0000"
      },
      "message": "Fix dex file pruning logic.\n\nWe should now prune all normal files from /data/dalvik-cache\nin addition to looking for dex files in all subdirectories of\n/data/dalvik-cache.\n\n(cherry picked from commit 51a6f9253399588eedf77d75c578d9aa23d11529)\n\nChange-Id: I536dfdc48e94155e7be64eb4efd9f7f2a1d2d00a\n"
    },
    {
      "commit": "1b46093d33a0fa4d316d65288ef3b3ac5b77a4a2",
      "tree": "372976a7b5a12702ca008ec8be6cf18d237e1519",
      "parents": [
        "2a9a047140b8da8f9cd7147c8bed60eeb61d1b6a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Apr 28 14:18:34 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:55:35 2014 +0000"
      },
      "message": "Adjust instruction sets for shared UID apps.\n\nSince shared UID apps are run in the same process,\nwe\u0027ll need to make sure they\u0027re compiled for the same\ninstruction set.\n\nThis change implements the recompilation of apps that\ndon\u0027t have any ABI constraints.\n\nApps that *do* have ABI constraints are harder to deal\nwith, since we\u0027ll need to rescan them to figure out the\nfull list of ABIs they support and then re-extract the\nnative libraries from these apps once we find an ABI we\ncan use throughout.\n\n(cherry picked from commit 85703d58af1dac692d7d83c03220e45ab2a5aded)\n\nChange-Id: I8311a683468488cc7e30381965487a3d391609ae\n"
    },
    {
      "commit": "0349e8c4785ed467d8de2ff383e28be3e41bdc3b",
      "tree": "879534fb65405fa603d5fc16599ca154e673b97c",
      "parents": [
        "645a920fd2c478c545c6bb659f2eab36545fe116"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 11:41:20 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:54:48 2014 +0000"
      },
      "message": "Package manager changes for dual zygote stack.\n\n- Pass down the app\u0027s instruction set to dexopt so that\n  it can compile the dex file for the right architecture.\n\n- Also pass down the app\u0027s instruction set to rmdex, movedex\n  and getSize so that they can construct the cache file\n  location properly.\n\n- Temporarily compile \"system\" jars such as am,wm etc. for\n  both architectures. A follow up change will ensure that\n  they\u0027re compiled only for one architecture (the same\n  arch. as the system server).\n\n- Java \"shared\" libraries are now compiled for the right\n  architecture when an app requires them.\n\n- Improve the app native library ABI detection to account\n  for system apps installed in /system/lib{64}/\u003cpackagename\u003e\n  and also handle sdcard and forward locked apps correctly.\n\n(cherry-picked from commit b4d35dc8e9702f9d0d82d35a105f0eea35672b52)\n"
    },
    {
      "commit": "99253c2da945cbd4725efced6cac2dc40c858d6c",
      "tree": "36d6b85b1c791447c14126bd2d120b633fcd6816",
      "parents": [
        "a7b465efc4eede46b8dfc8932c6c30346e8e79de",
        "fde594288bff0b8f95567e6b27f273f50f0c5f87"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:53:08 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 13:53:08 2014 +0000"
      },
      "message": "am fde59428: Merge \"Handle /oem and /vendor as well\"\n\n* commit \u0027fde594288bff0b8f95567e6b27f273f50f0c5f87\u0027:\n  Handle /oem and /vendor as well\n"
    },
    {
      "commit": "a7b465efc4eede46b8dfc8932c6c30346e8e79de",
      "tree": "874b91c7af4815ba52bea03cae1250b6ea9144db",
      "parents": [
        "9f34234f1c0e39ee43c4a86e23d333ba2a30ec0e",
        "d91358b2b977ef7c3551a486f51475c0441aba6e"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:52:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 13:52:59 2014 +0000"
      },
      "message": "am d91358b2: Merge \"Support per-package lib dirs for bundled apps\"\n\n* commit \u0027d91358b2b977ef7c3551a486f51475c0441aba6e\u0027:\n  Support per-package lib dirs for bundled apps\n"
    },
    {
      "commit": "66309e2bf70607bc0ff2cf5c0769c2a37c4ce76d",
      "tree": "5eadeb9932cefb5fb3b012ae9b1b5265e8aaa89d",
      "parents": [
        "986b901ae280928e91193527f7c883b296fc62fc"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 24 14:11:08 2014 -0700"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:52:33 2014 +0000"
      },
      "message": "Fix OEM native library path bug.\n\nBug: 13340779\n\n(cherry picked from commit 7d3328d14bbbee01a9de1ff5b13b0446c709d835)\n\nChange-Id: I1b4c5d138cafe3651d475ca1e048f495ff6c5f10\n"
    },
    {
      "commit": "c38a807b2f192bd1413989b70cc42ead9299d4b3",
      "tree": "58b0e53fbec9a08244439bb08687ab1b98fc65f2",
      "parents": [
        "fde594288bff0b8f95567e6b27f273f50f0c5f87"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Apr 23 16:55:57 2014 -0700"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:52:06 2014 +0000"
      },
      "message": "Fix native-lib dir assignment \u0026 updating\n\nThe per-package /system/lib/* feature introduced bugs in the\nnative library path handling during app upgrade installs.  The\ncrux of the fix is that when recalulating the desired native\nlibrary directory, the basis for the calculation needs to be\nthe scanned APK\u0027s location rather than the extant package\nsettings entry -- because that entry refers to the pre-upgrade\nstate of the application, not the new state.\n\nBug 14233983\n\n(cherry picked from commit 353e39a973dbbadce82fee2f83ad194e04a47449)\n\nChange-Id: I26f17a596ca2cd7f963955c0642548c15138ae26\n"
    },
    {
      "commit": "c84471c2e07c325e81568c4d764716f14fcb19fe",
      "tree": "bf96398642c99dc327ab13ce147cec0566c22277",
      "parents": [
        "d91358b2b977ef7c3551a486f51475c0441aba6e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Apr 18 12:24:57 2014 -0700"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:51:33 2014 +0000"
      },
      "message": "Handle /oem and /vendor as well\n\nBug 13170859\n\n(cherry-picked from commit 740888f62eae158d5775be716620f0d56d87f587)\n\nChange-Id: I7b5e206697fcbec146cac6cd83fca5c583a8cbd7\n"
    },
    {
      "commit": "fc0810e565b269bc9d8f072ef0ab7365e035c630",
      "tree": "c2f3d4b57108f1bc089af03e4f1cfac31b0817e1",
      "parents": [
        "b916d8adffd7ea3588bc178e1ee03f68f0a409e5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:35:34 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:50:47 2014 +0000"
      },
      "message": "Support per-package lib dirs for bundled apps\n\nBundled apps can now use /system/lib/apkname or /system/lib64/apkname\nin addition to the (globally shared) /system/lib and /system/lib64\ndirectories.  Note that when an app is updated post hoc the update APK\nwill look to its normal library install directory in\n/data/data/[packagename]/lib, so such updates must include *all*\nneeded libraries -- the private /system/lib/apkname dir will not be in\nthe path following such an update.\n\n\"apkname\" here is the base name of the physical APK that holds the\npackage\u0027s code.  For example, if a 32-bit package is resident on disk\nas /system/priv-app/SettingsProvider.apk then its app-specific lib\ndirectory will be /system/lib/SettingsProvider\n\nBug 13170859\n\n(cherry picked from commit addfbdc09ccf258395db8bfc510989a4c583f7ab)\n\nChange-Id: Id82da78024a6325458b8b134d7d91ad0e5f0785e\n"
    },
    {
      "commit": "293513a59d36cd96a3e474dde5981380d372d8c9",
      "tree": "4268c9994be194a7f4fccdecd089af58516d0953",
      "parents": [
        "1866e5dc8bb04b58a67e54f66cb4ec22e878667d",
        "0b62467b142b61ee1e449ba958ba37dfd961ef56"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Apr 29 16:07:29 2014 -0700"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Apr 29 16:07:29 2014 -0700"
      },
      "message": "Merge commit \u00270b62467b142b61ee1e449ba958ba37dfd961ef56\u0027 into HEAD\n"
    },
    {
      "commit": "a278ea7cecb59a73586e5dd74ec05e85caa370c5",
      "tree": "0fd4023e67758e0b31ca6671e40db5ec2cb5c2d0",
      "parents": [
        "4e8cf1508f22f88203cd9bf4467aaddd3f4502c6"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Apr 24 14:49:01 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Tue Apr 29 11:08:57 2014 -0700"
      },
      "message": "Add dump to MediaSessionService\n\nAdds a dump implementation for debugging MediaSessionService. Also\nfixes some synchronize calls that weren\u0027t using the same lock object.\n\nChange-Id: I14343f853398749c8ce7ebf91f72729abc9132d9\n"
    },
    {
      "commit": "e929bee9bbb418b52fea877f5fff1449aab247fb",
      "tree": "18defb24caf25e9effd0105a40c8a296eb22e494",
      "parents": [
        "812ad2265ed1386b347c98f48cc8a2b2925541b3",
        "734a78fb867384dfb84f5f42f65b4681562d62b5"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 28 14:15:06 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 28 14:15:06 2014 -0700"
      },
      "message": "Merge commit \u0027734a78fb\u0027 into manualmerge\n\nConflicts:\n\tcore/java/android/app/WallpaperManager.java\n\nChange-Id: Id103f540329ea484ff2e0829a0fc8158621f3dd3\n"
    },
    {
      "commit": "734a78fb867384dfb84f5f42f65b4681562d62b5",
      "tree": "bdc85d0dc5b0ce4a9aeae848f3a7aa28973a6c45",
      "parents": [
        "d937f2750c6edc2c1a03901605b22dad02b89147",
        "8ea2d4512248ec612356f558ac35534c3e4c6db6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 28 20:33:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 28 20:33:09 2014 +0000"
      },
      "message": "am 8ea2d451: Merge \"Various CTS fixes\" into klp-modular-dev\n\n* commit \u00278ea2d4512248ec612356f558ac35534c3e4c6db6\u0027:\n  Various CTS fixes\n"
    },
    {
      "commit": "685a0a72d445515167a2071330679cdf9b53a62d",
      "tree": "197394bdc5e1b7766ef9ac439594104851e19a33",
      "parents": [
        "18582a827c3f908cd75e1d9c189c554f42415a4a",
        "bbd87eb9193e9730869171324ee4f5fc1abeae55"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 18:17:06 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 28 18:17:06 2014 +0000"
      },
      "message": "am bbd87eb9: Merge \"Track libcore.os\\\u0027 move to android.system.\"\n\n* commit \u0027bbd87eb9193e9730869171324ee4f5fc1abeae55\u0027:\n  Track libcore.os\u0027 move to android.system.\n"
    },
    {
      "commit": "34385d352da19805ae948215e2edbeedd16b7941",
      "tree": "5295ae3854135ea3cb0c57698971ee17f47ea46c",
      "parents": [
        "3f4867f49d6c1932117e3519ce10d11f37829f19"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 11:11:32 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 11:11:32 2014 -0700"
      },
      "message": "Track libcore.os\u0027 move to android.system.\n\n(This is partial, but should cover everything in AOSP master except\nfor the zygote.)\n\nChange-Id: I1042c99245765746a744c44e714095cb2c6cb75d\n"
    },
    {
      "commit": "5568772e8161205b86905d815783505fd3d461d8",
      "tree": "e9dca0c30f4c44a92aaf24769e59c826d104a640",
      "parents": [
        "01c70711d5e4f1c3405bcd169be70605e92166f2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 09 18:07:19 2014 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 28 08:54:16 2014 -0700"
      },
      "message": "Derive fingerprint at runtime when undefined.\n\nSome devices leave \"ro.build.fingerprint\" undefined at build time,\nsince they need to build it from the components at runtime.\n\nBug: 13340779\nChange-Id: I4d74398817af22079a11c196dc6742b85d2bfb61\n"
    },
    {
      "commit": "2c8d67c9b0574f229809d99b3d55aa411fad0c84",
      "tree": "3d2e629d590b8cfb826199f9c616a9600bb03ee6",
      "parents": [
        "eea94f060a917a5c6195a81d8825551a430a8d69"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Apr 23 13:46:21 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 25 11:07:39 2014 -0700"
      },
      "message": "Various CTS fixes\n\nWallpaperManager should always do a null check on the service object.\nSystemServer should always bring up the DevicePolicyManagerService,\nand let the service do appropriate default no-ops if the feature\nis not supported.\n\nChange-Id: Iaaf12b60ed375fe2e341ec11faa10c9344d7d9da\n"
    },
    {
      "commit": "522ff52f88a0ddac3221fc32defd2f6cccaf04c4",
      "tree": "5b2a0c566a7198f8eeb7a3ff35a662db4ab3dfb6",
      "parents": [
        "24a4ce35661f59054d9bbc9c3326639d003526fb",
        "91097de49b0f683b00e26a75dbc0ac6082344137"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 25 17:02:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 25 17:02:19 2014 +0000"
      },
      "message": "Merge \"Initial implementation of new voice interaction API.\""
    },
    {
      "commit": "91097de49b0f683b00e26a75dbc0ac6082344137",
      "tree": "82c3185634a71233ce2e81a3645b07b1ba55f412",
      "parents": [
        "23af77a3cd1febc740d885ff03ead09837df269c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 04 18:02:06 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 24 17:48:58 2014 -0700"
      },
      "message": "Initial implementation of new voice interaction API.\n\nThis gives a basic working implementation of a persist\nrunning service that can start a voice interaction when\nit wants, with the target activity(s) able to go through\nthe protocol to interact with it.  It may even work when\nthe screen is off by putting the activity manager in the\ncorrect state to act like the screen is on.\n\nIncludes a sample app that is a voice interation service\nand also has an activity it can launch.\n\nNow that I have this initial implementation, I think I\nwant to rework some aspects of the API.\n\nChange-Id: I7646d0af8fb4ac768c63a18fe3de43f8091f60e9\n"
    },
    {
      "commit": "5f5ca3bc98fb773ee905289300595ad95d5ffabe",
      "tree": "3a35e3ba170abbd30ac719454c1e67afc4ce4df6",
      "parents": [
        "eacaa353e83942d3c59d0db594df0fb6179e0eea",
        "31a1dd2a8f56b439861ee335b55f44323318830c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 24 23:55:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 24 23:55:09 2014 +0000"
      },
      "message": "am 31a1dd2a: Merge \"Use the suggested public API instead of libcore.os.\"\n\n* commit \u002731a1dd2a8f56b439861ee335b55f44323318830c\u0027:\n  Use the suggested public API instead of libcore.os.\n"
    },
    {
      "commit": "0792d37385e60aa8d73f8df174d0a32f4f618bc4",
      "tree": "8cd01ee00014cf398d1d184da0b30bcbeb44efd4",
      "parents": [
        "12e75126909152c448f70c48f3d2f2884cb359bd"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Wed Apr 23 17:57:26 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Fri Apr 25 08:37:51 2014 +0900"
      },
      "message": "Implement skeleton of new HDMI Control Service.\n\nHdmiCecService is a system service handling HDMI-CEC features\nand command. Recently we found out that industry has more\nrequirements to support HDMI-CEC. Also, MHL is another\nstandard should be in our pocket. Basically, MHL is\na standard to support communication between mobile device\nand TV or Av device. As CEC is a control standard over HDMI\ncable, MHL has control channel for peer device.\nThere behavior is very similiar. Both have commands that\ncan change Tv\u0027s current input and can send/receive key\nto other device to control other deivce or TV.\n\nIn order to cover both CEC and MHL, current HdmiCecService\nimplementation has limitation. We had several\nsession of discussion and decided to refactor\nHdmiCecService into HdmiControlService.\nFor each standard it will have separate controller instance\nlike HdmiCecController and HdmiMhlController.\n\nIn this change I didn\u0027t touch original HdmiCecService\nbecause some component, like cast receiver, uses HdmiCecService.\nFor a while we will keep HdmiCecService until HdmiControlService\naccomodates all features of HdmiCecService.\n\nChange-Id: I5485280ab803dbf071d898bfbe34be0b11ce7958\n"
    },
    {
      "commit": "cacbe1b1ef01aff8726726edaf43d0b449319afe",
      "tree": "22e91a2dbc48f55d53c587248d52c243f3b94f1b",
      "parents": [
        "dbb0de21d35343504b096ae6cbf97d122ac410c9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 23 17:58:57 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 24 16:19:27 2014 -0700"
      },
      "message": "Use the suggested public API instead of libcore.os.\n\nChange-Id: Id392e4c36c5721ca609d88d9ec6b9340ce05274c\n"
    },
    {
      "commit": "caf6497b9a0347da7d5acbe678adc2c8187176c0",
      "tree": "4659744af5677a4943c35f06bfa5c52163ee0706",
      "parents": [
        "cf5c3fc70d4dcd5dc3c6054d0f7415ded0070e4f",
        "683cf1bffe33f49f26d46201f96cd2eff60e8192"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Apr 23 16:45:15 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 23 16:45:15 2014 +0000"
      },
      "message": "am 683cf1bf: Merge \"Changes to support asynchronous close interruption\"\n\n* commit \u0027683cf1bffe33f49f26d46201f96cd2eff60e8192\u0027:\n  Changes to support asynchronous close interruption\n"
    },
    {
      "commit": "43582df3dbcad1b1734b570c74246f5ff2f58027",
      "tree": "4ecd554e097e3e22dbade9123528628dd595c9d9",
      "parents": [
        "53b7df19cf287ea48b2ce27ab9cd7ddbc3d04330"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Apr 11 17:29:54 2014 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Apr 23 16:40:35 2014 +0000"
      },
      "message": "Changes to support asynchronous close interruption\n\nThis change contains fixes to base from libcore change\nI37de3e7d1a005a73821221e6156d10b95c595d7a\n\nBug: 13927110\n\nChange-Id: I2d96e50307611c269dcf47886cd4d976854da8fc\n"
    },
    {
      "commit": "5246f4599a0c9978012ffb1049307704b5027a0b",
      "tree": "0e90df1e7199eac4ea9d908482b185b8e737bd60",
      "parents": [
        "3ab7882a57d3c7a0e13f58837cd02138df43f301",
        "d267c1a06fc91dc300d5c5f8b7ef9bd44825c34e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 22 19:52:21 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 22 19:52:21 2014 +0000"
      },
      "message": "am d267c1a0: Merge \"remove unneeded import statements.\"\n\n* commit \u0027d267c1a06fc91dc300d5c5f8b7ef9bd44825c34e\u0027:\n  remove unneeded import statements.\n"
    },
    {
      "commit": "3ab7882a57d3c7a0e13f58837cd02138df43f301",
      "tree": "ccc66ae518cb97b69a4a71e82213f5fa9370f192",
      "parents": [
        "650a8860d9732accd938a32f99179cc86f101ef4",
        "a67d4a6e4da1eb02a15a1048a26329cfed312938"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 22 19:52:18 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 22 19:52:18 2014 +0000"
      },
      "message": "am a67d4a6e: Merge \"remove unused import.\"\n\n* commit \u0027a67d4a6e4da1eb02a15a1048a26329cfed312938\u0027:\n  remove unused import.\n"
    },
    {
      "commit": "d267c1a06fc91dc300d5c5f8b7ef9bd44825c34e",
      "tree": "21e41947ef1dfb560cd8ee54d6420e44e0846c7d",
      "parents": [
        "a67d4a6e4da1eb02a15a1048a26329cfed312938",
        "c826257bf36fa6c73a23f799dc819a7aeb5a26bf"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 22 19:24:47 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 22 19:24:47 2014 +0000"
      },
      "message": "Merge \"remove unneeded import statements.\""
    },
    {
      "commit": "c826257bf36fa6c73a23f799dc819a7aeb5a26bf",
      "tree": "ab5709c7aa560f30e5e570b2b32606239f7a74fb",
      "parents": [
        "fc3c6a0ef36cc4969aa7d8e160cc55f30c653325"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 22 12:17:51 2014 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 22 12:17:51 2014 -0700"
      },
      "message": "remove unneeded import statements.\n\nInternal master is out of sync with AOSP. Resync.\n\nChange-Id: Ia3105a4b6eb835f719471a26ae4cb33962c5b19e\n"
    },
    {
      "commit": "8cb5abcfde8f510bb628b8143104af3edec69f7d",
      "tree": "9ce021509cb1a2ec3ff6f896cdb31d300586caeb",
      "parents": [
        "fc3c6a0ef36cc4969aa7d8e160cc55f30c653325"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 22 12:10:24 2014 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 22 12:10:24 2014 -0700"
      },
      "message": "remove unused import.\n\nThis change resynchronizes AOSP with internal master.\nThe import line is unused.\n\nChange-Id: I98bef1f88dee758f5bdcec35fba204f793d4028e\n"
    },
    {
      "commit": "6a4b220f1263d95fdefe6361c2bc87bbb04bbed0",
      "tree": "082ceb00c7d9255d3a6a129b3e66e16fee40ac3f",
      "parents": [
        "4660c9e064ebaec9ebb260c2853a8dab868ccdc2"
      ],
      "author": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Wed Apr 16 17:29:40 2014 -0700"
      },
      "committer": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Mon Apr 21 16:04:05 2014 -0700"
      },
      "message": "Initial implementation of NetworkScoreManager\u0027s backing service.\n\nThis service will ultimately be responsible for propagating scores\ndown to lower-level network subsystems. For now, it just keeps scores\nin memory and exposes these for debugging purposes via \"adb shell\ndumpsys network_score\".\n\nThis change also adds provisioning of a default scorer. When\nNetworkScoreService is first initialized, it checks to see if it has\never set a default scorer; if not, it reads a package name from a\nbuild config property and attempts to set it as the default.\n\nAlso add autogenerated equals/hashCode methods to all parcelables.\n\nBug: 14111427\nBug: 13786258\nChange-Id: I02271171653d42e12acd240b73b9e23950744f6b\n"
    },
    {
      "commit": "90e2301e23532c92dd4c24394b7407e243389e9f",
      "tree": "de2371a4160d67f00e33f0fdc0120519389b6365",
      "parents": [
        "de442781cd4f7404e8aaa3f7ca5d1d3fc28cccc6",
        "d2a11d97a94bed18629bded429f118f57f4f7821"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 11 17:18:14 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 11 17:18:14 2014 +0000"
      },
      "message": "am d2a11d97: Merge \"Add explicit close of Scanner input\"\n\n* commit \u0027d2a11d97a94bed18629bded429f118f57f4f7821\u0027:\n  Add explicit close of Scanner input\n"
    },
    {
      "commit": "d2a11d97a94bed18629bded429f118f57f4f7821",
      "tree": "9cfe385467e13bbf666db8cfb5927160dbe2a6a6",
      "parents": [
        "909a6a0e2b5815332618b2cf731d27824a76d042",
        "2a39c6ff73f3e2610f7624bf5966f2ee2f6e1923"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 11 17:14:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 11 17:14:39 2014 +0000"
      },
      "message": "Merge \"Add explicit close of Scanner input\""
    },
    {
      "commit": "1d26a3f1efd0d965e8751e8515608c31789bdbe2",
      "tree": "b2ee69a7621a123b5ebf8f9b91a3ac37ef0dd2a4",
      "parents": [
        "0fd40cb100bccbd5d9ad6109ca39c818a857f889",
        "09e13cc5f9f98382376eb49bfa6ceb94a50d37a1"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Apr 10 09:23:33 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 10 09:23:33 2014 +0000"
      },
      "message": "am 09e13cc5: Merge \"System services detect and register app CPU ABIs\"\n\n* commit \u002709e13cc5f9f98382376eb49bfa6ceb94a50d37a1\u0027:\n  System services detect and register app CPU ABIs\n"
    },
    {
      "commit": "0fd40cb100bccbd5d9ad6109ca39c818a857f889",
      "tree": "68d06a03d0a86f754a7ec121ef6790da669431e9",
      "parents": [
        "7a67c927e622bb176b21455b8ed56c76b8e0f602",
        "80413c9fe10acf36eaecd139198c7fc17e8af2e6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Apr 10 09:23:30 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 10 09:23:30 2014 +0000"
      },
      "message": "am 80413c9f: Merge \"Re-implement native library search and copies.\"\n\n* commit \u002780413c9fe10acf36eaecd139198c7fc17e8af2e6\u0027:\n  Re-implement native library search and copies.\n"
    },
    {
      "commit": "ff0c470833b2cb4130a30895093630242d5f238d",
      "tree": "577b9403462e503c76bedd337106b72327a87419",
      "parents": [
        "1378aba7aeeb7f6dd6cc2503968ba7b0e58d9333"
      ],
      "author": {
        "name": "Ramin Zaghi",
        "email": "ramin.zaghi@arm.com",
        "time": "Tue Apr 01 15:02:29 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 09 17:20:13 2014 +0100"
      },
      "message": "System services detect and register app CPU ABIs\n\nThis patch uses the NativeLibraryHelper class to\nmatch native libraries in an .apk package with\nthose listed in \u0027ro.cpu.abilist\u0027 property.\nThe result is stored in packages.xml and the\nApplicationInfo class.\n\nThis information will be used by the ActivityManager\nto decide which zygote to use to launch the given\napp.\n\nChange-Id: I3ec3d050996d8f4621f286ca331b9ad47ea26fa0\n"
    },
    {
      "commit": "1378aba7aeeb7f6dd6cc2503968ba7b0e58d9333",
      "tree": "7c69781ce86ea7fcf88775cb514a49a7824898f9",
      "parents": [
        "a6f5e79dd182b05909fa53109e74638afcd7ee12"
      ],
      "author": {
        "name": "Ramin Zaghi",
        "email": "ramin.zaghi@arm.com",
        "time": "Fri Feb 28 15:03:19 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 09 17:16:40 2014 +0100"
      },
      "message": "Re-implement native library search and copies.\n\nWe now use a two step approach :\n\n- First we look through the list of shared libraries in an\n  APK, and choose an ABI based on the (priority)  list of ABIs\n  a given device supports.\n- Then we look through the list of shared libraries and copy\n  all shared libraries that match the ABI we\u0027ve selected.\n\nThis fixes a long-standing bug where we would sometimes copy\na mixture of different ABIs to the device, and also allows us\nto clearly pick an ABI to run an app with.\n\nThe code in NativeLibraryHelper has been refactored so that all\nfile name validation \u0026 matching logic is done in a single place\n(NativeLibrariesIterator). This allows us to avoid a lot of\nredundant logic and straightens out a few corner cases (for eg.\nwhere the abi determination \u0026 copying logic do not agree on\nwhat files to skip).\n\nbug: https://code.google.com/p/android/issues/detail?id\u003d65053\nbug: 13647418\n\nChange-Id: I34d08353f24115b0f6b800a7eda3ac427fa25fef\nCo-Authored-By: Zhenghua Wang \u003czhenghua.wang0923@gmail.com\u003e\nCo-Authored-By: Ramin Zaghi \u003cramin.zaghi@arm.com\u003e\nCo-Authored-By: Narayan Kamath \u003cnarayan@google.com\u003e\n"
    },
    {
      "commit": "5784b39843bd3d6112352ff3b736a6498107911c",
      "tree": "283136a069498786c722cd46cc146bab570ff4e5",
      "parents": [
        "77ecf0bb9687a4841a4880267bdb2cd7de05055f",
        "4f58263d02f296430a9653126d28501e95c7bb6c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 08 22:04:20 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 08 22:04:20 2014 +0000"
      },
      "message": "Merge \"Launcher APIs and broadcasts for managed profiles\""
    },
    {
      "commit": "3957091ba8f08c02b5e781098cb955a5f697a1ff",
      "tree": "c8739c677c87e62ea6c1e8bc45de027d1e65d87c",
      "parents": [
        "53c2cf799fddfae7f6fc9ca1840ea345308b79ee"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Thu Feb 20 18:23:25 2014 -0800"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Tue Apr 08 13:35:21 2014 -0700"
      },
      "message": "Initial round of Television Input Framework\n\nThis provides APIs to control and create individual television inputs on\nthe system which will later be hosted by television applications.\n\nChange-Id: I6866d28e78175a1bff2c32a85c5d77e94d0cd60c\n"
    },
    {
      "commit": "4f58263d02f296430a9653126d28501e95c7bb6c",
      "tree": "ee424e547166ddfc5da545654ac9ee2908803b02",
      "parents": [
        "2d925545b6190153928658ce320d9b681baad882"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Feb 19 14:31:52 2014 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 08 10:51:05 2014 -0700"
      },
      "message": "Launcher APIs and broadcasts for managed profiles\n\nUserManager\n- Corp badging\n- Querying list of managed profiles\n\nLauncher API\n- LauncherApps and Service to proxy changes in managed profile\n  to the launcher in the primary profile\n- Querying and launching launchable apps across profiles\n\nChange-Id: Id8f7b4201afdfb5f414d04156d7b81300119289e\n"
    },
    {
      "commit": "228cefa83dd7b95e5581f619bb597808af726f80",
      "tree": "3c7b75c2b67cb25fad09eb16a1d916227bae4286",
      "parents": [
        "4ed27328b5e20d32b1e6ac5b39684dad3e737ca7",
        "3fb2b7132b64c65163e7c6cd948e45f703e93687"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 07 22:14:56 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 07 22:14:56 2014 +0000"
      },
      "message": "am 3fb2b713: Merge \"[ActivityManager] Reduce report ANR on wrong activity.\"\n\n* commit \u00273fb2b7132b64c65163e7c6cd948e45f703e93687\u0027:\n  [ActivityManager] Reduce report ANR on wrong activity.\n"
    },
    {
      "commit": "309ca5d947fffc6a8196be5e5148333803d442af",
      "tree": "5c65d767e7df3cf80efa9102647cc29a4336054e",
      "parents": [
        "dc97144b3f83bf6dae90493a6631afc6523dfce2"
      ],
      "author": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Tue Apr 08 02:44:03 2014 +0800"
      },
      "committer": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Tue Apr 08 02:44:03 2014 +0800"
      },
      "message": "[ActivityManager] Reduce report ANR on wrong activity.\n\nSymptom: ANR report on wrong activity.\n\nRoot Cause:\n  KK changed resume behavior that will not update focus when only resume,\nif the activity blocked, it may report ANR on previous focus.\n  By original concept, it will try to correct the ANR target,\nbut the stack of waiting(waitingVisible\u003dtrue) activity may\ndifferent with current top stack.\n  If it gets key dispatch timeout, mResumedActivity and mPausingActivity\nof its stack will be null becuase it is not top stack.\nThen it is unable to change ANR target to the real no response activity.\n\nSolution:\n Use focused stack to get the real culprit.\n\nReproduce steps:\n1.Launch an Activity X from launcher, press home key.\n2.Launch X from launcher again, X blocks(sleeps 15sec) in onResume, press back key in the beginning of blocking duration.\n3.ANR dialog shows launcher is no response.\n\nChange-Id: I99416ad91e349096f995990f2240a97616fbaf28\n"
    },
    {
      "commit": "b325345ef0adf2849350d339de1ec5f92b67b7ae",
      "tree": "4854de7dd193e43d8f88d1feecb2028932e36169",
      "parents": [
        "ceb9b437f701f68411fcbef7e83b5df45834f9d9",
        "6259933ec99dee566f200c5fdfe1756ee72b1513"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Apr 02 22:15:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 02 22:15:16 2014 +0000"
      },
      "message": "Merge \"Switch framework Holo references to Quantum.Light\""
    },
    {
      "commit": "b69bb445585a083b8e4ff8a13a1a1a63e9c22a6a",
      "tree": "c30ee3134a77533f0cc74d5184852a6de352d62c",
      "parents": [
        "fb0873268cd2602cf3b0eaf90485824a814561c3",
        "71ab4f4f48a9b8b485d80adf18d568ef6265b1e8"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 02 11:50:57 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 02 11:52:07 2014 +0100"
      },
      "message": "resolved conflicts for merge of 71ab4f4f to master\n\nChange-Id: I888c231f7579523e12fbd68f820f0775019e51e0\n"
    },
    {
      "commit": "71ab4f4f48a9b8b485d80adf18d568ef6265b1e8",
      "tree": "ca12bff66cf7347fa38937f5aea088e2583bbac5",
      "parents": [
        "04c2a5571620927f702af3707845b1b05769dc46",
        "ea9e5ecac1e5240370f0e3f998b9c8b159ee9320"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 02 10:41:24 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 02 10:41:24 2014 +0000"
      },
      "message": "am ea9e5eca: am 17b1b8fe: Merge \"Move zygote startup logic to the frameworks.\"\n\n* commit \u0027ea9e5ecac1e5240370f0e3f998b9c8b159ee9320\u0027:\n  Move zygote startup logic to the frameworks.\n"
    },
    {
      "commit": "ea9e5ecac1e5240370f0e3f998b9c8b159ee9320",
      "tree": "f3cbeb7e387593aad1afe4550c0fbcc639a13892",
      "parents": [
        "095ece10095ecb8c76e3ed4fb0dd1e23a5ced22b",
        "17b1b8fe8c0c8f05f2077acc82428881bf591a78"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 02 10:35:38 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 02 10:35:38 2014 +0000"
      },
      "message": "am 17b1b8fe: Merge \"Move zygote startup logic to the frameworks.\"\n\n* commit \u002717b1b8fe8c0c8f05f2077acc82428881bf591a78\u0027:\n  Move zygote startup logic to the frameworks.\n"
    },
    {
      "commit": "973b4663b0b5ee62006522bf4742af076096e548",
      "tree": "d30579e0b8a4342f6071983f481015860a44fd67",
      "parents": [
        "b3cafa56205942343930e4fbb0a3d50d6e33a046"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 31 13:41:26 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 02 10:18:43 2014 +0100"
      },
      "message": "Move zygote startup logic to the frameworks.\n\nThe Zygote class is now in com.android.internal.os. It is\nresponsible for the vast majority of work before and after\nthe call to fork(). It calls back into the Runtime via\nthe new dalvik.system.ZygoteHooks class to allow the Runtime\nto perform pre fork cleanup and post fork initialization.\n\nThe native code in Zygote.cpp is a direct and straightforward\nport of the existing code in art. Most differences are\nsuperficial, for example :\n- We use C style logging (ALOGE) instead of stream based\n  logging.\n- We call env-\u003eFatalError() instead of using LOG(FATAL)\n\nChange-Id: Ia101fb2af12d23894fe57e4134d2bc6d142e5059\n"
    },
    {
      "commit": "6259933ec99dee566f200c5fdfe1756ee72b1513",
      "tree": "78196ea29921d4331a576922a564568f6894a207",
      "parents": [
        "6f127c9b6c249ca1cd17c07a8476edd0fcc1f04d"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Apr 01 14:57:39 2014 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Apr 01 14:57:39 2014 -0700"
      },
      "message": "Switch framework Holo references to Quantum.Light\n\nChange-Id: Ib545a143f1959b6104adbc9d594dd626851d90b3\n"
    },
    {
      "commit": "e531e2ec6b311c35b077cc228e832b3f1530dffa",
      "tree": "1c085e7c6c55fe84b3d3497b9323e4467dc4cc7b",
      "parents": [
        "b11952d6f6851dbd1da447da967f6e07984942fe",
        "3b2a9d22794cb9f1c2a28884b5c3ba92ecc6ff96"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Mar 31 20:14:37 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 31 20:14:37 2014 +0000"
      },
      "message": "am 3b2a9d22: Merge \"Change when the SELinux relabel of /data/data occurs.\"\n\n* commit \u00273b2a9d22794cb9f1c2a28884b5c3ba92ecc6ff96\u0027:\n  Change when the SELinux relabel of /data/data occurs.\n"
    },
    {
      "commit": "3b2a9d22794cb9f1c2a28884b5c3ba92ecc6ff96",
      "tree": "d669108571126c88f810ec6bf10ad4e96e1ceab5",
      "parents": [
        "e3434fc4fb164b66e529e675dfc31652a4c69cb5",
        "172d38bcda8d05793db13eb763a280ac2ee36fab"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Mar 31 20:09:31 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 31 20:09:31 2014 +0000"
      },
      "message": "Merge \"Change when the SELinux relabel of /data/data occurs.\""
    },
    {
      "commit": "82142c21dd333307682d5f4bb09de3ab3ccfa06c",
      "tree": "d0d750d27ba27084498138dba9e6bbc70cc20a81",
      "parents": [
        "ff2144ccb4215acf4587fc628493b3d49dca6043"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Mar 27 14:56:59 2014 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Mar 31 21:18:28 2014 +0200"
      },
      "message": "Define trust agent framework components\n\nAdds the TrustManager system service that allows\nregistering for changes to the trust status and\nreporting events that are important to trust agents.\n\nBug: 13723878\nChange-Id: I7d0d2ea86fd755702d31aa5d49cac038a6cd4301\n"
    },
    {
      "commit": "439cf5b433123970a94388cf9309d9ea4d31b3cb",
      "tree": "13c85d682902107a6152f4dfdc5f7d0cd7d01db0",
      "parents": [
        "546bec8ebf2cf865e88d02cc8cb29563ad224967",
        "56a8f8b48ff1d0855209307b9076d6e9b348b59b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 31 13:16:16 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 31 13:16:16 2014 +0000"
      },
      "message": "am 56a8f8b4: resolved conflicts for merge of 439145f0 to klp-modular-dev-plus-aosp\n\n* commit \u002756a8f8b48ff1d0855209307b9076d6e9b348b59b\u0027:\n  Don\u0027t make isSafeMode a field on the Zygote class.\n"
    },
    {
      "commit": "56a8f8b48ff1d0855209307b9076d6e9b348b59b",
      "tree": "ed630a6b5c3effd310874e5651542b4e4ffeb766",
      "parents": [
        "303d666f2e2b37120e0e9de206ce127e2a532026",
        "439145f0e7701d0cf9d5934f92d9c717995511b9"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 31 13:54:30 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 31 14:10:53 2014 +0100"
      },
      "message": "resolved conflicts for merge of 439145f0 to klp-modular-dev-plus-aosp\n\nThis isn\u0027t a straightforward conflict resolution. This code\nhas changed significantly. mSafeMode is now a flag on the activity\nmanager service, and is set when SystemServer calls enterSafeMode.\n\nChange-Id: I1e8ff524566c5e44bb6bf3b138cdebb70004aca3\n"
    },
    {
      "commit": "439145f0e7701d0cf9d5934f92d9c717995511b9",
      "tree": "be769cd244f666331fcaba02b7190fdb76a715da",
      "parents": [
        "0e3f3c70226640759d5d705233fbe59f525355bb",
        "ab561f5b4073055c414866ff3dbe8372263474a7"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 31 12:42:14 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 31 12:42:14 2014 +0000"
      },
      "message": "am ab561f5b: Merge \"Don\\\u0027t make isSafeMode a field on the Zygote class.\"\n\n* commit \u0027ab561f5b4073055c414866ff3dbe8372263474a7\u0027:\n  Don\u0027t make isSafeMode a field on the Zygote class.\n"
    },
    {
      "commit": "d1a8d9f45288e1e8aadfc543fab7087c2eec2f30",
      "tree": "a92e1e659994ad06fcecbe921b2bf4c9b083b8fb",
      "parents": [
        "91bbb75c75568dee854fb10633f8ce3683265ffd"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Mar 28 13:10:41 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 31 13:16:45 2014 +0100"
      },
      "message": "Don\u0027t make isSafeMode a field on the Zygote class.\n\nThis field is written and read exclusively by the system server,\nand should therefore belong to the SystemServer class.\n\nChange-Id: I2708a9a45c0c9cd1a6f563e8cc5844bd8c424bf7\n"
    },
    {
      "commit": "155e3133407e590f18e7e16eddc6fc743f35b0fd",
      "tree": "115c5c5adf6d7226d521cfe91a7c77ed3c3a3a78",
      "parents": [
        "6a14146b379b33a6bf947f02b2550fa97c5619b6",
        "d511bc17d614b1291f1b85f84180c1db157d2790"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 28 22:16:38 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 28 22:16:38 2014 +0000"
      },
      "message": "am d511bc17: Merge \"[ActivityManager] Fix a bug: unable to start activity after starting activities during screen off.\"\n\n* commit \u0027d511bc17d614b1291f1b85f84180c1db157d2790\u0027:\n  [ActivityManager] Fix a bug: unable to start activity after starting activities during screen off.\n"
    },
    {
      "commit": "d511bc17d614b1291f1b85f84180c1db157d2790",
      "tree": "23976cc97b3849ecc2244e4330474b44043d54b4",
      "parents": [
        "e328056ddcba0edd0e49b4697dfcc84f3658cb39",
        "82a91631d58d0d378ae93afc034aef3b44aef81b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 28 20:27:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 28 20:27:33 2014 +0000"
      },
      "message": "Merge \"[ActivityManager] Fix a bug: unable to start activity after starting activities during screen off.\""
    },
    {
      "commit": "ff3362f0d8378d616f39cbcf8b86b6f03e7d30b9",
      "tree": "86abf57f42539f0ceff15bff7308c37cb1892d61",
      "parents": [
        "49c061501dbcff0dd6f6621afa76136d0857622a",
        "739e1941217b0882560f78169e1456b1909a2d10"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 28 20:23:34 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 28 20:23:34 2014 +0000"
      },
      "message": "Merge \"DO NOT MERGE - [ActivityManager] Ensure consistency behavior when a background activity brings another existed activity to front.\""
    },
    {
      "commit": "172d38bcda8d05793db13eb763a280ac2ee36fab",
      "tree": "093367ca561ab9095da3270d99c793b3e3defbf6",
      "parents": [
        "55a655091a30667ba7c091dc22d350c0bb8d8641"
      ],
      "author": {
        "name": "Robert Craig",
        "email": "rpcraig@tycho.ncsc.mil",
        "time": "Thu Mar 27 10:00:58 2014 -0400"
      },
      "committer": {
        "name": "Robert Craig",
        "email": "rpcraig@tycho.ncsc.mil",
        "time": "Fri Mar 28 12:24:29 2014 -0400"
      },
      "message": "Change when the SELinux relabel of /data/data occurs.\n\nPerform the relabel of the /data/data/\u003cpkg\u003e directories\nwhen the app is being scanned by the PMS. The impetus\nfor this change was that the data directories of forward\nlocked apps were receiving the wrong label during an\nOTA. Because the PMS doesn\u0027t actually scan forward locked\napps til later in the boot process, the prior restorecon\ncall was actually applying the default label of\nsystem_data_file for all such apps. By performing a\nrestorecon on each individual app as they are entered into\nthe PMS we can handle them correctly. This mechanism also\nallows us to pass down the seinfo tag as part of the\nrestorecon call which drops our need to rely on the contents\nof packages.list.\n\nChange-Id: Ie440cba2c96f0907458086348197e1506d31c1b6\nSigned-off-by: rpcraig \u003crpcraig@tycho.ncsc.mil\u003e\n"
    },
    {
      "commit": "a282441038b8a82be1b9b6afc41145e5570ce377",
      "tree": "b3f184f9a1de8b4f706008eab94e067b1c93dd1e",
      "parents": [
        "f0ffa8a38e90f64912686833dba9823b251fae57",
        "0fd4c656d0dbaf01eb845b8c64f6b27d5141f8b6"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 27 20:01:11 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 27 20:01:11 2014 +0000"
      },
      "message": "Merge \"Do not show Home behind full screen activity\""
    },
    {
      "commit": "0fd4c656d0dbaf01eb845b8c64f6b27d5141f8b6",
      "tree": "2c7a8ac376dee757df2bb7cce1c15d46272c0802",
      "parents": [
        "dac298005ce3c1361e27bb740e4b518765d43d77"
      ],
      "author": {
        "name": "Yevgen Pronenko",
        "email": "yevgen.pronenko@sonymobile.com",
        "time": "Fri Mar 14 11:57:06 2014 +0100"
      },
      "committer": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Thu Mar 27 07:54:37 2014 +0100"
      },
      "message": "Do not show Home behind full screen activity\n\nWhen ensureActivitiesVisibleLocked goes through foreground activity\nstack and reaches non-fullscreen activity, it sets showHomeBehindStack\nvariable to true.\n\nIf there is a fullscreen activity behind, showHomeBehindStack remains\nunchanged, which causes Home application to be displayed anyway.\nIn this case user will see a fullscreen activity and Home activity\nsimultaneously.\n\nTo fix the issue we set showHomeBehindStack to false when we reach\nfullscreen activity in the activity stack.\n\nThis was made visible by the following commit:\n446ef1de8d373c1b017df8d19ebf9a47811fb402\n\nChange-Id: I535c1283a4e26f5cf606375b837d4b7195324af0\n"
    },
    {
      "commit": "e6e25554d345a94ba40c36fcb120a3d76fc15eca",
      "tree": "d5c3db9000fbbec135249eca30502962a11692a1",
      "parents": [
        "80470cdf6c6995f4afe8d5e2c4b6e898625173fb"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Wed Mar 26 09:19:12 2014 -0400"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Wed Mar 26 09:19:12 2014 -0400"
      },
      "message": "Note libselinux dependency on packages.list format changes.\n\nChange-Id: I3c34a86f5706c4fca826a8634936131e4e4fc297\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "739e1941217b0882560f78169e1456b1909a2d10",
      "tree": "77bb6331260a09cb772fefe1d87b9127fd81087b",
      "parents": [
        "80470cdf6c6995f4afe8d5e2c4b6e898625173fb"
      ],
      "author": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Wed Mar 26 20:43:17 2014 +0800"
      },
      "committer": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Wed Mar 26 20:43:17 2014 +0800"
      },
      "message": "DO NOT MERGE - [ActivityManager] Ensure consistency behavior when a background activity brings another existed activity to front.\n\nSymptom: ANR occurs on previous activity.\nRoot Cause:\nIn KK, when a background activity starts another existed background activity (bring to front),\nif current focused stack is not the same as the stack of target starting activity,\nit will still resume the top of target stack, even the top activity on the target stack may not the same as target activity.\nAnd it will result incorrect focus, press back key will send to previous stack\u0027s top then popup ANR on previous activity:\n\"Reason: Waiting because no window has focus but there is a focused application\".\n\nBy original code comment, it looks \u0027bring to front\u0027 should not happen in this issue case.\n// If the target task is not in the front, then we need\n// to bring it to the front...  except...  well, with\n// SINGLE_TASK_LAUNCH it\u0027s not entirely clear.  We\u0027d like\n// to have the same behavior as if a new instance was\n// being started, which means not bringing it to the front\n// if the caller is not itself in the front.\n\nIf the caller and target are in the same stask, it will just deliver new intent without changing task order (the same behavior as JellyBean).\nSo the patch concept is just to avoid to use target stack to resume top when caller and target are in different stack.\n\nSolution: Do not allow to resume another stack top if non-top activity try to bring existed activity to front.\nIt may not be a good solution, just a reminder for the issue case.\n\nReproduce steps:\nAssume A, B, C are different app tasks.\nWhen the application stack is like:\n  Top C\n      B\n      A\n\n #Case 1: Home is foreground\n  A starts B with NEW_TASK, C will resume, focus still stays at Home, and window order does not update.\n  Then press back key or volumn key will result ANR on Home.\n\n #Case 2: App is foreground (Resumed activity is C)\n  A starts Home, Home will resume, focus still stays at C, and window order does did not update.\n  Then press back key or volumn key will result ANR on C.\n\nChange-Id: If05070123b248e2335791e43a4d4ddee6db11d84\n"
    },
    {
      "commit": "10bf6354a536152719bf4524429aa5739836c541",
      "tree": "ee0d72a8257a59bb84835d30dde674a08c9c571b",
      "parents": [
        "f53d1a01972d04402b48476d6a8173285516edd3"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Tue Mar 25 15:00:45 2014 -0700"
      },
      "committer": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Tue Mar 25 15:00:45 2014 -0700"
      },
      "message": "Wifi hotspot stack initial hook up\n\nAdd a dummy wifi hotspot service for futher development use. This is to\nresolve the different between master branch and kwd branch, such that future\ndevelopment can go into kwd and being auto-merged to master.\n\nbug: 5485670\nChange-Id: Ica58de445dd050a9f0b817f8e4accaa2478299c5\n"
    },
    {
      "commit": "e6e9b14c99528a172ce034bb42ffb823ddd90b26",
      "tree": "24981f5e646701ce8daa07513c34e6eb28912cca",
      "parents": [
        "df7da51311331d4d7bfe67699217246d187f6c3b",
        "9bbd2f977ba4d6c4642f96673f937a677ff0beb2"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 25 17:26:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 25 17:26:28 2014 +0000"
      },
      "message": "am 9bbd2f97: am 2cacc619: Merge \"Don\\\u0027t wait for finishing animation when second display is disconnected\"\n\n* commit \u00279bbd2f977ba4d6c4642f96673f937a677ff0beb2\u0027:\n  Don\u0027t wait for finishing animation when second display is disconnected\n"
    },
    {
      "commit": "df7da51311331d4d7bfe67699217246d187f6c3b",
      "tree": "248b7f9562bac66c47830014838e4676d8c2f9da",
      "parents": [
        "dab65ff2445e14f8e65c5690054f16d13b6f0aad",
        "ca903d3809ccd78b73b634ff7591863dbed55823"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 25 17:02:13 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 25 17:02:13 2014 +0000"
      },
      "message": "am ca903d38: am 81e094d7: Merge \"Move task to top in window manager.\" into klp-dev\n\n* commit \u0027ca903d3809ccd78b73b634ff7591863dbed55823\u0027:\n  Move task to top in window manager.\n"
    },
    {
      "commit": "81e094d76b9220e335edc24599919f8cd0f5d317",
      "tree": "bcac9bcfb0ed81ac829d7b5042ac4b6a5e3000dc",
      "parents": [
        "8907801268b62dfadaf8c9f73d60ffaea6dbf904",
        "97024321fcff3427e4e1cc6ced9b6abc7525fdb0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 25 16:48:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 25 16:48:38 2014 +0000"
      },
      "message": "Merge \"Move task to top in window manager.\" into klp-dev"
    },
    {
      "commit": "39f7068ed903f747d6885117dc1bac69f626ae91",
      "tree": "004b27997551802d900f102a57a055b09ac1b874",
      "parents": [
        "557a93e104f1fec69ed05b2d0ff26c78bca4c5d6"
      ],
      "author": {
        "name": "Koji Fukui",
        "email": "koji.fukui@sonymobile.com",
        "time": "Fri Mar 14 21:20:21 2014 +0900"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Tue Mar 25 11:25:32 2014 +0900"
      },
      "message": "Don\u0027t wait for finishing animation when second display is disconnected\n\nBasically WindowManagerService wait for finishing animation when\na window is removed. But when second display is disconnected, windows\non second display can\u0027t be shown even if animation is waited for.\nOn the contrary, it keeps on waiting for finishing the animation\nin special case.\n\nWith this fix windows are immediately removed without waiting for\nanimation when second display is disconnected.\n\nChange-Id: I1354c193c04db394a21a11c174e10c8e7da17a0e\n"
    },
    {
      "commit": "5805ca5ef505d19fa0a9a5a0022526ace8e0709a",
      "tree": "a9435fef5e5471506296342a0e9f5376254d385d",
      "parents": [
        "cb18f8ea07a23b766790059f4da2ddcbbe578021",
        "4701b51af216ce2b6fa9fa508ebba47bf13063c7"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Mon Mar 24 22:44:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 24 22:44:59 2014 +0000"
      },
      "message": "am 4701b51a: am bb87ac7f: DO NOT MERGE: Downgrade expedited to normal on reschedule.\n\n* commit \u00274701b51af216ce2b6fa9fa508ebba47bf13063c7\u0027:\n  DO NOT MERGE: Downgrade expedited to normal on reschedule.\n"
    },
    {
      "commit": "bb87ac7f9733ca9b490cb34e8a675dba083a57b7",
      "tree": "1dafdaf3def68c809f7831fecbe86c8330dc2ceb",
      "parents": [
        "c41853cee89b391cd2d4d93205ea69c746ccfa4c"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Mon Mar 24 14:42:06 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Mon Mar 24 14:42:06 2014 -0700"
      },
      "message": "DO NOT MERGE: Downgrade expedited to normal on reschedule.\n\nbug: 12033540\nExpedited was previously tracked by a redundant internal variable, ostensibly\nas an optimisation. This variable could differ from the value in the bundle\ndepending on how the operation is initialised, which led to confusion. Now an\nexpedited sync will only be treated as such on its first execution.\n\nChange-Id: Ibfc4e9e49b86c82f2364a6ef55f887705a053eb6\n"
    },
    {
      "commit": "3837ded2ff29b80ec218009c01ed67abec4d7076",
      "tree": "5b2d6aeb310099d3a4c84f0a09e3e660220ea9e8",
      "parents": [
        "16578caea887c258510a885476c11a2a9bc29f71",
        "103ed3558764f1fd41c9a5399e2030baa4110bfb"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 24 14:38:37 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 24 14:38:37 2014 +0000"
      },
      "message": "am 103ed355: am 557a93e1: Merge \"Set ScreenshotSurface secure if any secure content is shown.\"\n\n* commit \u0027103ed3558764f1fd41c9a5399e2030baa4110bfb\u0027:\n  Set ScreenshotSurface secure if any secure content is shown.\n"
    },
    {
      "commit": "ecdbb6a5a325d43c61e2d31f6f69fe9f56752962",
      "tree": "6de27c86ab3faa2aaed61c40edc5cb2d86b84d8b",
      "parents": [
        "aa5a99b3b8655f0d092f76fe97a33b477da5262b",
        "eb3c0d9ac387bb0aea5b4956daac1403253bc76d"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Fri Mar 21 23:09:24 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 21 23:09:24 2014 +0000"
      },
      "message": "am eb3c0d9a: am 1aad3ad4: Merge \"Fix support for simultaneous VPN tuns\" into klp-dev\n\n* commit \u0027eb3c0d9ac387bb0aea5b4956daac1403253bc76d\u0027:\n  Fix support for simultaneous VPN tuns\n"
    },
    {
      "commit": "aa5a99b3b8655f0d092f76fe97a33b477da5262b",
      "tree": "af4758bc33ccd8d7c8964ecd13fb4da5de31dd95",
      "parents": [
        "9cd17ea6af23a2e004067d54733f18c8c31b8bcd",
        "1fce89d946760a1bcf3a733f55494f963eab00c2"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Fri Mar 21 23:09:21 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 21 23:09:21 2014 +0000"
      },
      "message": "am 1fce89d9: am de4e7b49: Merge \"Include the interface for clearDnsInterfaceForUidRange\" into klp-dev\n\n* commit \u00271fce89d946760a1bcf3a733f55494f963eab00c2\u0027:\n  Include the interface for clearDnsInterfaceForUidRange\n"
    },
    {
      "commit": "1aad3ad4ec2137c5aa043f96ccc621a4faffeb56",
      "tree": "2377a1fdeedba349c553e03817ad68cbb053461e",
      "parents": [
        "de4e7b4947998638e0345ab9a181bf35a8827bef",
        "4c5c33e5e6fb37f85977c70a0baba4e1ed51fe0d"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Fri Mar 21 20:52:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 21 20:52:14 2014 +0000"
      },
      "message": "Merge \"Fix support for simultaneous VPN tuns\" into klp-dev"
    },
    {
      "commit": "de4e7b4947998638e0345ab9a181bf35a8827bef",
      "tree": "a21cf5d846ff9c3c71e67aca3bc48628120d369f",
      "parents": [
        "abf701e6751aed487d4ed0986e0fae8810c3658f",
        "1b66923148130dec7139175a3bf4c4d534cabac4"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Fri Mar 21 20:52:04 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 21 20:52:05 2014 +0000"
      },
      "message": "Merge \"Include the interface for clearDnsInterfaceForUidRange\" into klp-dev"
    },
    {
      "commit": "a42cb8b0e2b8fdfbac1a6590d6b60814caa01088",
      "tree": "d903e1aca9c2345e98dbe99188524feef35b21c3",
      "parents": [
        "fb40d78c57711585c9eaed467601bf3adb4f60f9",
        "a67e34c80fb5b1936fe0beeea3faec3218ead1a3"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 21 13:11:02 2014 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 21 13:11:02 2014 -0700"
      },
      "message": "resolved conflicts for merge of a67e34c8 to master\n\nChange-Id: I597525886260884c9b2dfc7945e01eb8138a58c2\n"
    },
    {
      "commit": "82a91631d58d0d378ae93afc034aef3b44aef81b",
      "tree": "5b341e6e486c44eecf7e75b11bcde523f0e9f210",
      "parents": [
        "4308a5230e2887c1ee12e7bdc60e0b93212637ab"
      ],
      "author": {
        "name": "leo_hsu",
        "email": "leo_hsu@htc.com",
        "time": "Fri Mar 21 12:27:16 2014 +0800"
      },
      "committer": {
        "name": "leo_hsu",
        "email": "leo_hsu@htc.com",
        "time": "Fri Mar 21 12:27:16 2014 +0800"
      },
      "message": "[ActivityManager] Fix a bug: unable to start activity after starting activities during screen off.\n\nSymptom: Unable to start any activity.\nRoot Cause: ActivityStack.mPausingActivity() points to a destroyed activity of a died process, so that ActivityStackSupervisor.allPausedActivitiesComplete() always returns false.\nSolution: Set mPausingActivity to null in ActivityStack.cleanUpActivityLocked().\nReproduce steps:\n    a. Turn screen off.\n    b. A background service starts an activity X (in process X).\n    c. A background service starts a no-history activity Y (in process Y), but the main thread of Y was blocked.\n    d. A background service starts Y 3~4 times --\u003e this causes am_failed_to_pause on X.\n    e. Main thread of Y is freed finally --\u003e this causes Y crash for android.view.WindowManager$BadTokenException.\n    f. Turn screen on, X is shown on screen, but neither back key nor home key can work because mPausingActivity is Y.\n\nChange-Id: I320b3db407e2d4cc745c8ca22a6e548742234242\n"
    }
  ],
  "next": "f2fecf48f740a079cf9015ea8c2695039ca11d81"
}
