)]}'
{
  "log": [
    {
      "commit": "d7feeaa4630a6fa4e905b922b5a2a4b53e80dd90",
      "tree": "79a4ca2379db1cd894cfeaecc90ef30c7720be50",
      "parents": [
        "be2d7dd4f038497e55384b9df4a1152b34cd95bc"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Wed Mar 14 12:47:25 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 19:49:52 2018 +0000"
      },
      "message": "Make DropRootUser more container-friendly\n\nWhen Android is running as a container, it might not have CAP_SYSLOG\n(since all the checks in the kernel are performed against the init\nnamespace). This change makes DropRootUser not raise CAP_SYSLOG if it\nwasn\u0027t present to begin with.\n\n(cherrypick of 05d74917546ee1bfb8d45e6b79c6c433874d6e77)\n\nBug: 74568776\nTest: DropRootUser no longer returns false when run in a container\nChange-Id: Ia54ea81f51cc602c6304a81f50a55b2ccde7df36\nMerged-In: Ia54ea81f51cc602c6304a81f50a55b2ccde7df36\n"
    },
    {
      "commit": "be2d7dd4f038497e55384b9df4a1152b34cd95bc",
      "tree": "7bfb214f956adfd2672507f10c5f11018d5127b3",
      "parents": [
        "402085b98c82dae9c223b6b23e05ea24bcd5d054"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Wed Mar 14 12:15:56 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 19:49:13 2018 +0000"
      },
      "message": "Avoid crashing when a directory does not exist\n\nThis change adds a null-check for the DIR* object to avoid a crash when\nthe directory cannot be opened for any reason.\n\n(cherrypick of d05127172ce1f113230b1774119b6d54475dc158)\n\nBug: 74568776\nTest: calling dumpstate early in the boot sequence no longer crashes\nChange-Id: I6c80f38dcf7890e607ce73e25a8ec0e16ba92586\nMerged-In: I6c80f38dcf7890e607ce73e25a8ec0e16ba92586\n"
    },
    {
      "commit": "402085b98c82dae9c223b6b23e05ea24bcd5d054",
      "tree": "571e9c9e0913fd41af241190efdaf8845f0a61d6",
      "parents": [
        "58c78ab23c7ddd2de0029c35ee3575818521c3fb",
        "11845789eec5f9286b6df0e9eff408b03b4dc919"
      ],
      "author": {
        "name": "Hector Dearman",
        "email": "hjd@google.com",
        "time": "Thu Mar 15 10:04:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 15 10:04:18 2018 +0000"
      },
      "message": "Merge \"Atrace: Add commandline flags to enable/disable userland tracing\""
    },
    {
      "commit": "58c78ab23c7ddd2de0029c35ee3575818521c3fb",
      "tree": "3d0eaf61bac51329e02086be5fc24aa38271acbd",
      "parents": [
        "3646dfebf64e3a8435131a8318398df0e708105c",
        "e105b79f0aa0f0de032506ed5652d4263c1bd6ef"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 15 09:17:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 15 09:17:43 2018 +0000"
      },
      "message": "Merge changes I9ad9b542,I2a4f4bb0\n\n* changes:\n  Fix link-type warning on GLPerf\n  Fix link-type warning on GLDual\n"
    },
    {
      "commit": "3646dfebf64e3a8435131a8318398df0e708105c",
      "tree": "45abfa0cbba0f71f4bdb0b75003363615755e851",
      "parents": [
        "605fea122c2c68733ce91fd8b2f1e796915903b6",
        "8b24923b0cd628ef497ab55c69eaab2ba96f78a9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 15 09:11:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 15 09:11:16 2018 +0000"
      },
      "message": "Merge changes I76cb1ea5,Ia7e02c34\n\n* changes:\n  Fix link-type warning on GL2JNI\n  Fix link-type warning on GLJNI\n"
    },
    {
      "commit": "e105b79f0aa0f0de032506ed5652d4263c1bd6ef",
      "tree": "3d0eaf61bac51329e02086be5fc24aa38271acbd",
      "parents": [
        "9d00c48e702c6d4d79f3cd02be05b20962e8a8a1"
      ],
      "author": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Thu Mar 08 16:20:08 2018 +0900"
      },
      "committer": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Thu Mar 15 16:37:02 2018 +0900"
      },
      "message": "Fix link-type warning on GLPerf\n\nAn sdk app GLPerf uses a native:platform library libglperf, which\ncauses a link-type warning. Actually libutils is the only platform\nlibrary used by libglperf, and the warning can be eliminated by\nrewriting code not to use libutils and setting LOCAL_SDK_VERSION.\n\nBug: 73907534\nTest: mma -j does not show any link-type warnings\nMerged-In: I9ad9b542288e6dd914f14ec45d8d35c6985da89f\nChange-Id: I9ad9b542288e6dd914f14ec45d8d35c6985da89f\n"
    },
    {
      "commit": "9d00c48e702c6d4d79f3cd02be05b20962e8a8a1",
      "tree": "cc7b51c25e9cbe401c22756c96f9dbde852596e7",
      "parents": [
        "8b24923b0cd628ef497ab55c69eaab2ba96f78a9"
      ],
      "author": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Thu Mar 08 17:54:45 2018 +0900"
      },
      "committer": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Thu Mar 15 16:33:26 2018 +0900"
      },
      "message": "Fix link-type warning on GLDual\n\nAn sdk app GLDual uses a native:platform library libgldualjni, which\ncauses a link-type warning. Actually libutils is the only platform\nlibrary used by libgldualjni, and the warning can be eliminated by\nrewriting code not to use libutils and setting LOCAL_SDK_VERSION.\n\nBug: 73907534\nTest: mma -j does not show any link-type warnings\nMerged-In: I2a4f4bb0ac8002cb7ab5c60f8ba74728eca92f22\nChange-Id: I2a4f4bb0ac8002cb7ab5c60f8ba74728eca92f22\n"
    },
    {
      "commit": "8b24923b0cd628ef497ab55c69eaab2ba96f78a9",
      "tree": "45abfa0cbba0f71f4bdb0b75003363615755e851",
      "parents": [
        "f2d0c6ea438c70afff8582bd8140b5460e910d01"
      ],
      "author": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Thu Mar 08 17:35:07 2018 +0900"
      },
      "committer": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Thu Mar 15 16:33:03 2018 +0900"
      },
      "message": "Fix link-type warning on GL2JNI\n\nAn sdk app GL2JNI uses a native:platform library libgl2jni, which causes\na link-type warning. Actually libutils is the only platform library used\nby libgl2jni, and the warning can be eliminated by rewriting code not to\nuse libutils and setting LOCAL_SDK_VERSION.\n\nBug: 73907534\nTest: mma -j does not show any link-type warnings\nMerged-In: I76cb1ea579a7cf091852cd3f7ceadb781d33ea4a\nChange-Id: I76cb1ea579a7cf091852cd3f7ceadb781d33ea4a\n"
    },
    {
      "commit": "f2d0c6ea438c70afff8582bd8140b5460e910d01",
      "tree": "c702c817c0bd62bc6f1230dd8b129689939f39a3",
      "parents": [
        "605fea122c2c68733ce91fd8b2f1e796915903b6"
      ],
      "author": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Thu Mar 08 17:27:57 2018 +0900"
      },
      "committer": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Thu Mar 15 16:32:42 2018 +0900"
      },
      "message": "Fix link-type warning on GLJNI\n\nAn sdk app GLJNI uses a native:platform library libgljni, which causes a\nlink-type warning. Actually libutils is the only platform library used\nby libgljni, and the warning can be eliminated by rewriting code not to\nuse libutils and setting LOCAL_SDK_VERSION.\n\nBug: 73907534\nTest: mma -j does not show any link-type warnings\nMerged-In: Ia7e02c343f4b18c70be15f6b1c9462ee4bdca733\nChange-Id: Ia7e02c343f4b18c70be15f6b1c9462ee4bdca733\n"
    },
    {
      "commit": "605fea122c2c68733ce91fd8b2f1e796915903b6",
      "tree": "0398ca0709be740750f8de684e9b7019393119ea",
      "parents": [
        "5e22392cca5c3762a502d8c2d4c281912ef223c8",
        "3d2c1e19971d6fd3ae77437836309716f3703869"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 15 00:58:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 15 00:58:33 2018 +0000"
      },
      "message": "Merge \"lshal: mention subclasses for third section\""
    },
    {
      "commit": "3d2c1e19971d6fd3ae77437836309716f3703869",
      "tree": "059a4043c9a7a81fcc331b285c99f02d76bc97f5",
      "parents": [
        "a4d8dae190521f970eaef5f32436fa8c3d0799ca"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Mar 14 10:41:13 2018 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Mar 14 20:19:47 2018 +0000"
      },
      "message": "lshal: mention subclasses for third section\n\nThird section of lshal shows installed passthrough\nservices. I\u0027ve updated the comment to show that\nthese aren\u0027t necessarily the actual classes available\nat runtime. This is based on an offline issue raised\nby a vendor that thought the current text was confusing.\n\nThe actual check that the correct passthrough services\nare served is done by vts_treble_vintf_test.\n\nBug: 74407622\nTest: lshal\nChange-Id: Ie314c7a4bd9abe9d52ca36cad1bf8da80493b3eb\nMerged-In: Ie314c7a4bd9abe9d52ca36cad1bf8da80493b3eb\n"
    },
    {
      "commit": "5e22392cca5c3762a502d8c2d4c281912ef223c8",
      "tree": "cd32919314616c78dd358fd3a13ac994c73c570b",
      "parents": [
        "405a40c500de313510d4bb4eedb76a6ce8748176",
        "a63a16b7a3dc9b47d25f6ed798332d4faa4c81ae"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Mar 14 17:38:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 14 17:38:12 2018 +0000"
      },
      "message": "Merge \"Use ManifestHal constructor.\""
    },
    {
      "commit": "11845789eec5f9286b6df0e9eff408b03b4dc919",
      "tree": "1aad334754f0967116f5cbcc5aa19670a2d0f9c4",
      "parents": [
        "405a40c500de313510d4bb4eedb76a6ce8748176"
      ],
      "author": {
        "name": "Hector Dearman",
        "email": "hjd@google.com",
        "time": "Thu Mar 08 14:35:44 2018 +0000"
      },
      "committer": {
        "name": "Hector Dearman",
        "email": "hjd@google.com",
        "time": "Wed Mar 14 12:47:27 2018 +0000"
      },
      "message": "Atrace: Add commandline flags to enable/disable userland tracing\n\nAdds a commandline flag to Atrace for Perfetto: --only_userspace.\n\nWhen --only_userspace is passed atrace does everything atrace\nwould normally do to set up/tear down tracing (set various system\nproperties, poke services etc) but doesn\u0027t modify any ftrace\nsettings, doesn\u0027t clear read or otherwise touch the ftrace buffer,\nand doesn\u0027t start or stop tracing.\n\nPerfetto allows recording and collection of ftrace kernel events\n(as systrace/atrace does for local devices). We currently integrate\nwith atrace to collect non-kernel events using the async_start and\nasync_stop command line arguments. These cause atrace to poke\nbinder/hal services and apps then Perfetto scrapes the print ftrace\nevents from the kernel ring buffer.\n\nThere are two downsides:\n1. Atrace attempts drain the ftrace buffer after Perfetto has already\n   done so.\n2. Any time Atrace starts/stops it modifies the global ftrace settings and\n   clears the ring buffer.\n\nThe second is especially unfortunate as otherwise Perfetto supports\nmultiplexing multiple simultaneous traces.\n\nThis flag would make it much easier to integrate atrace and Perfetto.\n\nTo test:\n\nFirst enable ftrace:\n$ adb shell \u0027echo 2048 \u003e /d/tracing/buffer_size_kb\u0027\n$ adb shell \u0027echo \u003e /d/tracing/trace\u0027\n$ adb shell \u0027echo 1 \u003e /d/tracing/tracing_on\u0027\n\nNext turn on the input category.\n$ adb shell atrace --async_start --only_userspace input\nTouch the screen a bunch.\n$ adb shell cat /d/tracing/trace\nNow you should see many events.\n\nNext turn off the input category.\n$ adb shell atrace --async_stop --only_userspace\nClear tracing.\n$ adb shell \u0027echo \u003e /d/tracing/trace\u0027\nTouch the screen a bunch.\n$ adb shell cat /d/tracing/trace\nYou should see no events.\n\nFtrace settings should not have been touched:\n$ adb shell cat /d/tracing/tracing_on\nShould be 1 still.\n$ adb shell cat /d/tracing/buffer_size_kb\nShould be 2048 still.\n\nBug: 73625407\nTest: see above.\nChange-Id: Ia43ab689c4f93280315eb984581187c1582c2b07\n"
    },
    {
      "commit": "a63a16b7a3dc9b47d25f6ed798332d4faa4c81ae",
      "tree": "48d78d00cf34517896d493d3cffa86e2c088c3ca",
      "parents": [
        "a11d432df3a3f0485f900568d6e7cb177de18c87"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Mar 13 14:03:03 2018 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Mar 13 16:25:32 2018 -0700"
      },
      "message": "Use ManifestHal constructor.\n\nManifestHal has private fields and cannot use\naggregate constructor.\nTest: builds\nBug: 73556059\n\nChange-Id: Ia2fa0a7011794f61c28b5553e132baf4fcb37cdc\n"
    },
    {
      "commit": "405a40c500de313510d4bb4eedb76a6ce8748176",
      "tree": "ebc8fd3e9fcccf44322f8ded432238e7d84f6f4b",
      "parents": [
        "048cb83ae668a372033e5c49cee784aa16ac107c",
        "4a1861e80ec60b4d9f7e02eae26a53b78736805a"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Mar 12 21:26:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 12 21:26:03 2018 +0000"
      },
      "message": "Merge \"Remove obsolete brillo property\""
    },
    {
      "commit": "048cb83ae668a372033e5c49cee784aa16ac107c",
      "tree": "fb7e9a7368d022171999cdbdcb1e648785f30a6b",
      "parents": [
        "1812ea7c47738847a86847b5550c12d26d3637f4",
        "5b73b7478967078326fe99f936a6153c9fcaef39"
      ],
      "author": {
        "name": "Primiano Tucci",
        "email": "primiano@google.com",
        "time": "Mon Mar 12 20:26:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 12 20:26:57 2018 +0000"
      },
      "message": "Merge changes I50a2bc22,I9a97bf27,Id187e448,I572a5cf8,I389c3ab5, ...\n\n* changes:\n  atrace: only start trace when starting trace\n  Add SDE tracing to gfx category\n  Add clk tracing to freq category\n  Trace clock_enable and clock_disable events.\n  atrace: preempt and irq disable section tracing\n  Add tracing tags to vibrator\n"
    },
    {
      "commit": "5b73b7478967078326fe99f936a6153c9fcaef39",
      "tree": "fb7e9a7368d022171999cdbdcb1e648785f30a6b",
      "parents": [
        "bcfb4873d64ea6decaca2b425714384feb5fc0f3"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Thu Mar 08 13:33:12 2018 -0800"
      },
      "committer": {
        "name": "Primiano Tucci",
        "email": "primiano@google.com",
        "time": "Mon Mar 12 17:47:08 2018 +0000"
      },
      "message": "atrace: only start trace when starting trace\n\nBug: 74396309\nTest: atrace --async_stop \u003e trace\nChange-Id: I50a2bc224d6c48aa7cecf69a57b30c8ccc88b9e0\nMerged-In: I50a2bc224d6c48aa7cecf69a57b30c8ccc88b9e0\n"
    },
    {
      "commit": "bcfb4873d64ea6decaca2b425714384feb5fc0f3",
      "tree": "8932c5e688c92680abcd37b965a4de21500f8b58",
      "parents": [
        "53305ddaf057ef00f248acb0734352117245aed8"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Tue Feb 13 10:47:23 2018 -0800"
      },
      "committer": {
        "name": "Primiano Tucci",
        "email": "primiano@google.com",
        "time": "Mon Mar 12 17:30:28 2018 +0000"
      },
      "message": "Add SDE tracing to gfx category\n\nBug: 73168288\nTest: Ran systrace, verified sde shows up with just gfx tag\nChange-Id: I9a97bf279409cd710e784e08a9ec309c12f09213\nMerged-In: I9a97bf279409cd710e784e08a9ec309c12f09213\n"
    },
    {
      "commit": "53305ddaf057ef00f248acb0734352117245aed8",
      "tree": "99a0ed5979ce53aad70f757f7a06999cc668682e",
      "parents": [
        "062e0b953c434b96f2f6391e63350403f05864c0"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Thu Feb 22 11:40:07 2018 -0800"
      },
      "committer": {
        "name": "Primiano Tucci",
        "email": "primiano@google.com",
        "time": "Mon Mar 12 17:29:58 2018 +0000"
      },
      "message": "Add clk tracing to freq category\n\nUpstream has clk_* in `/trace/events/clk.h\u0027 and clock_* `/trace/events/power.h\u0027\nfor reporting clock events, and individual driver may pick either.\n\nBug: 73775767\nTest: collect systrace\nChange-Id: Id187e448a414cb2420b40d65ecf6219296d45172\nMerged-In: Id187e448a414cb2420b40d65ecf6219296d45172\n"
    },
    {
      "commit": "062e0b953c434b96f2f6391e63350403f05864c0",
      "tree": "30183af75c74e0efc5682d519ed3e2060d812652",
      "parents": [
        "6ccad100de61cf810492dccbc8b2336209a436ba"
      ],
      "author": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Fri Nov 03 15:44:08 2017 -0700"
      },
      "committer": {
        "name": "Primiano Tucci",
        "email": "primiano@google.com",
        "time": "Mon Mar 12 17:29:21 2018 +0000"
      },
      "message": "Trace clock_enable and clock_disable events.\n\nWe track changes in peripheral clock frequency with \u0027freq\u0027 events, but\nnot if the clock turns on or off. Logging clock_enable and clock_disable\nevents lets us get a better picture of the peripheral clocks from the\nsystraces.\n\nTest: see clock_enable/disable events from \u0027adb shell atrace freq\u0027.\nChange-Id: I572a5cf87af8f37b22b5ffb726eb5c2c49886af1\nMerged-In: I572a5cf87af8f37b22b5ffb726eb5c2c49886af1\n"
    },
    {
      "commit": "6ccad100de61cf810492dccbc8b2336209a436ba",
      "tree": "d750d415cc5204cd5a16b005cd4f978b68f0e207",
      "parents": [
        "d4ed99635fa7e0cf73282407484f6f7b3c4210c8"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Aug 31 08:35:05 2017 -0700"
      },
      "committer": {
        "name": "Primiano Tucci",
        "email": "primiano@google.com",
        "time": "Mon Mar 12 17:28:43 2018 +0000"
      },
      "message": "atrace: preempt and irq disable section tracing\n\nIRQ and preempt disabled sections can be visualized in systrace, add the\ntrace categories to enable these events.\n\nCurrently only root users who have permissions to write to these file\nwill be allowed to run this. At a future time, we can add other users\nonce we decide on security aspects.\n\nBug: 67425309\n\nChange-Id: I389c3ab5624a775d310d90b7cb4edf47407aa614\nMerged-In: I389c3ab5624a775d310d90b7cb4edf47407aa614\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "d4ed99635fa7e0cf73282407484f6f7b3c4210c8",
      "tree": "0c8464f5a53f33a0eda101f0b69ca39bfba95b39",
      "parents": [
        "1812ea7c47738847a86847b5550c12d26d3637f4"
      ],
      "author": {
        "name": "Alexey Kuzmin",
        "email": "alexeykuzmin@google.com",
        "time": "Sat Feb 10 15:17:57 2018 +0000"
      },
      "committer": {
        "name": "Primiano Tucci",
        "email": "primiano@google.com",
        "time": "Mon Mar 12 17:27:54 2018 +0000"
      },
      "message": "Add tracing tags to vibrator\n\nNow all somewhat time-consuming methods of the VibratorService\nare surrounded by traceBegin/traceEnd blocks.\nThe vibration itself is surrounded with asyncTrace block.\n\nTest: Run \"systrace vibrator\" and see the time consumption report.\nBug: 73000045\nChange-Id: I68cfc4d856e9c0944c3af6c350d3fd690fd3401e\nMerged-In: I68cfc4d856e9c0944c3af6c350d3fd690fd3401e\n"
    },
    {
      "commit": "4a1861e80ec60b4d9f7e02eae26a53b78736805a",
      "tree": "156d8eb66718bbae7fec36e18bff8718b23cb2d4",
      "parents": [
        "1812ea7c47738847a86847b5550c12d26d3637f4"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sat Mar 10 15:32:51 2018 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sat Mar 10 15:32:51 2018 -0800"
      },
      "message": "Remove obsolete brillo property\n\nThe implementation behind this cflag has already been removed.\n\nTest: none\nChange-Id: Ida61c64f86180c8a7d41b6af7036312ebe0dd3d4\n"
    },
    {
      "commit": "1812ea7c47738847a86847b5550c12d26d3637f4",
      "tree": "bd284fd370dd0ca7c46a62474ac7ee4622948c61",
      "parents": [
        "a11d432df3a3f0485f900568d6e7cb177de18c87",
        "dbc4ce6f9a60b5e4d7e7bcbb4c3fac8a71b7984c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 08 17:07:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 08 17:07:15 2018 +0000"
      },
      "message": "Merge \"Add otapreopt logic for CompactDex version bump\""
    },
    {
      "commit": "dbc4ce6f9a60b5e4d7e7bcbb4c3fac8a71b7984c",
      "tree": "bd284fd370dd0ca7c46a62474ac7ee4622948c61",
      "parents": [
        "a11d432df3a3f0485f900568d6e7cb177de18c87"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 07 09:38:16 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 07 18:42:28 2018 -0800"
      },
      "message": "Add otapreopt logic for CompactDex version bump\n\nFor old versions, or in the flag.\n\nBug: 63756964\nBug: 74245837\nTest: adb shell /data/nativetest64/installd_otapreopt_test/installd_otapreopt_test\n\nChange-Id: Ie316f5327ca479f55b34a3ddb7cd6640043116cd\n"
    },
    {
      "commit": "a11d432df3a3f0485f900568d6e7cb177de18c87",
      "tree": "823707b8399f494645865ed2baba1edc651ac7d3",
      "parents": [
        "dabafa01b853b5364327d2360274b9d64d23b558",
        "c23dc125450198122e329580e54bc94ac086de00"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 07 20:45:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 07 20:45:10 2018 +0000"
      },
      "message": "Merge \"Installd: Make tests atest-ready\""
    },
    {
      "commit": "dabafa01b853b5364327d2360274b9d64d23b558",
      "tree": "ba80f11761ccdb9e4030f407bac9ad8de79ce30e",
      "parents": [
        "64d9442a11d6e16f5292f2e8494063cc337f0181",
        "d4f32b3aa8e7f7fb1d8cdafa4204430941708095"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 07 20:06:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 07 20:06:23 2018 +0000"
      },
      "message": "Merge \"lshal: use FQName::parse\""
    },
    {
      "commit": "d4f32b3aa8e7f7fb1d8cdafa4204430941708095",
      "tree": "d2808f8373b476f93ad2adc6cae77c8a0e03adee",
      "parents": [
        "a4d8dae190521f970eaef5f32436fa8c3d0799ca"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Mar 06 14:47:58 2018 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Mar 07 19:01:03 2018 +0000"
      },
      "message": "lshal: use FQName::parse\n\nBug: 73774955\nTest: adb shell lshal\nChange-Id: I08a9cd802ce87e08948344ee45feed2b1467b6fa\n"
    },
    {
      "commit": "c23dc125450198122e329580e54bc94ac086de00",
      "tree": "133789fa06e0f4f1d0c4e6688c32c9575056eacf",
      "parents": [
        "64d9442a11d6e16f5292f2e8494063cc337f0181"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 07 10:26:50 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 07 10:36:20 2018 -0800"
      },
      "message": "Installd: Make tests atest-ready\n\nAdd test-suites so that atest understands the modules.\n\nBug: 74339384\nTest: mmma frameworks/native/cmds/installd/tests\nTest: atest\nChange-Id: I0f325395c94ab6f26a014e43dd8d016fc3faffc3\n"
    },
    {
      "commit": "64d9442a11d6e16f5292f2e8494063cc337f0181",
      "tree": "457fbc37579adb05e7507efe8f52f32f7b4b2fa4",
      "parents": [
        "a4d8dae190521f970eaef5f32436fa8c3d0799ca",
        "f69c2f7f64e873049f66cfbed1aaad539bf0e063"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 07 01:44:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 07 01:44:36 2018 +0000"
      },
      "message": "Merge \"Add new dexopt flag to control CompactDex generation\""
    },
    {
      "commit": "f69c2f7f64e873049f66cfbed1aaad539bf0e063",
      "tree": "457fbc37579adb05e7507efe8f52f32f7b4b2fa4",
      "parents": [
        "a4d8dae190521f970eaef5f32436fa8c3d0799ca"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 06 13:55:58 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 06 16:22:10 2018 -0800"
      },
      "message": "Add new dexopt flag to control CompactDex generation\n\nAdd a new flag to control CompactDex generation, this allows more\nflexibility regarding when compact dex is generated.\n\nThe goal is to generate it for cmd package compile.\n\nBug: 63756964\nBug: 74245837\nTest: adb shell /data/nativetest64/installd_dexopt_test/installd_dexopt_test\n\nChange-Id: I0674f50bbb7413b67e6fbab3199f5c7e78ec875c\n"
    },
    {
      "commit": "a4d8dae190521f970eaef5f32436fa8c3d0799ca",
      "tree": "d136e3c2c4f21f3b375a4047d92c52c5b96f1ac8",
      "parents": [
        "1636f41a45af1fa3a03c4f695f41efc2dbad2205",
        "e87fe0a1c2d48800b70ad33babf5296a5ce589aa"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 10:00:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 02 10:00:30 2018 +0000"
      },
      "message": "Merge \"Installd: Check for dex2oatd before running it\""
    },
    {
      "commit": "e87fe0a1c2d48800b70ad33babf5296a5ce589aa",
      "tree": "d136e3c2c4f21f3b375a4047d92c52c5b96f1ac8",
      "parents": [
        "1636f41a45af1fa3a03c4f695f41efc2dbad2205"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 01 23:55:53 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 01 23:55:53 2018 -0800"
      },
      "message": "Installd: Check for dex2oatd before running it\n\nOnly select dex2oatd when it is actually available. Moves\na check to be a conditional.\n\nTest: mmma frameworks/native/cmds/installd\nTest: installd_dexopt_test\nChange-Id: I4c5a8de68d0b4874632518733aeada22e1e6290c\n"
    },
    {
      "commit": "1636f41a45af1fa3a03c4f695f41efc2dbad2205",
      "tree": "308387026d386e2a241599762e4f3326d5ac33d3",
      "parents": [
        "0edada736b3408fa0f877357aca71a7054cf4be2",
        "3008bbefaa4719cbbf5aad6dc3f3934c50668da5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 02:19:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 02 02:19:27 2018 +0000"
      },
      "message": "Merge changes Ie795897d,I86e1cfed,I840ecbca\n\n* changes:\n  Installd: Amend dexopt binder logging\n  Installd: Amend dexopt binder logging\n  Installd: Amend dexopt binder logging\n"
    },
    {
      "commit": "0edada736b3408fa0f877357aca71a7054cf4be2",
      "tree": "cc04088d32428bf0f0bcb04f90c902c65a19e9ca",
      "parents": [
        "1330e553cc642df4a3c39f25137e1251657f0511",
        "023b22415ba9ce046f649817da27e40db8893451"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 02:07:47 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 02 02:07:47 2018 +0000"
      },
      "message": "Merge \"Installd: Add error message to dexopt\""
    },
    {
      "commit": "3008bbefaa4719cbbf5aad6dc3f3934c50668da5",
      "tree": "308387026d386e2a241599762e4f3326d5ac33d3",
      "parents": [
        "194fe428447c657c78347032040f872756f3283d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 28 20:24:48 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 01 11:48:37 2018 -0800"
      },
      "message": "Installd: Amend dexopt binder logging\n\nSeparate dexoptanalyzer validation errors into different return\ncodes and add specific error messages. Also fix name style.\n\nTest: mmma frameworks/native/cmds/installd\nTest: installd_dexopt_test\nChange-Id: Ie795897d112ded630de65c2ac7d7ee1a4b2a20a5\n"
    },
    {
      "commit": "194fe428447c657c78347032040f872756f3283d",
      "tree": "1349b37e9768a0d84ead89bcdad220a1f3c51c55",
      "parents": [
        "fa2dadd64b42c6c24d1cda007ce59a33696517e2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 28 20:16:19 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 01 11:45:31 2018 -0800"
      },
      "message": "Installd: Amend dexopt binder logging\n\nAdd a bit more specific logging for secondary dexopt. Refactor\nconstants to enum to aid in adding more cases.\n\nTest: mmma frameworks/native/cmds/installd\nTest: installd_dexopt_test\nChange-Id: I86e1cfed4b092ffe0a47553309451ad6fa077473\n"
    },
    {
      "commit": "fa2dadd64b42c6c24d1cda007ce59a33696517e2",
      "tree": "2196f8c5cdf15cd17db491fe0036f229f7027bfb",
      "parents": [
        "023b22415ba9ce046f649817da27e40db8893451"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 28 19:52:47 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 01 11:45:21 2018 -0800"
      },
      "message": "Installd: Amend dexopt binder logging\n\nAdd an enum for all exit codes used inside dexopt.cpp. Use the dex2oat\nreturn-codes enum for dex2oat exec results. Add a function to map\nthese enum cases to small string snippets.\n\nTest: mmma frameworks/native/cmds/installd\nTest: installd_dexopt_test\nChange-Id: I840ecbcaeb3ec1dcd9bd37dff9bdea35202b4731\n"
    },
    {
      "commit": "023b22415ba9ce046f649817da27e40db8893451",
      "tree": "cc04088d32428bf0f0bcb04f90c902c65a19e9ca",
      "parents": [
        "1330e553cc642df4a3c39f25137e1251657f0511"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 28 16:03:25 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 28 20:27:25 2018 -0800"
      },
      "message": "Installd: Add error message to dexopt\n\nTo give better messages to the binder call, add an out parameter.\nThis is only the start, threading things further into the calls\ndexopt makes, and formatting according to exit codes, will be in\na follow-up CL.\n\nTest: installd_dexopt_test\nChange-Id: I0271212c5cddf3a6317d6b597e97537865723fdc\n"
    },
    {
      "commit": "1330e553cc642df4a3c39f25137e1251657f0511",
      "tree": "c373a36e845c5c9b9edfd7ea592420c03c899098",
      "parents": [
        "ed568f3fe29ac77bec7a20751761f5ed9f28d621",
        "d32eec2d9b37c57bc1b5491a63a04a356a7f8dd7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 01 03:26:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 01 03:26:58 2018 +0000"
      },
      "message": "Merge \"ART: Fix LOG_FATAL\""
    },
    {
      "commit": "ed568f3fe29ac77bec7a20751761f5ed9f28d621",
      "tree": "b14e6dcb34479e8f38bab9f094d730040a10bbd7",
      "parents": [
        "5adbc5bec49f6d4cc9e1f232dc32c3128e3f6508",
        "3e60b390972fb1e17eb21b59fd1e19cc25ed37af"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu Mar 01 02:47:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 01 02:47:29 2018 +0000"
      },
      "message": "Merge \"Reformat Android.bp file\""
    },
    {
      "commit": "d32eec2d9b37c57bc1b5491a63a04a356a7f8dd7",
      "tree": "d2ab6430b64ba76e7c4468370bbea65d9df36812",
      "parents": [
        "5adbc5bec49f6d4cc9e1f232dc32c3128e3f6508"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 28 16:02:51 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 28 16:02:51 2018 -0800"
      },
      "message": "ART: Fix LOG_FATAL\n\nReally use LOG(FATAL), which actually isn\u0027t disabled under NDEBUG. Fix up\nother uses.\n\nTest: installd_dexopt_test\nChange-Id: Ib06f5f7e158a451fd2bf7ddf24b800373e72c570\n"
    },
    {
      "commit": "5adbc5bec49f6d4cc9e1f232dc32c3128e3f6508",
      "tree": "8e9c8c928d654398c439461c2470769d315febf0",
      "parents": [
        "9c3abd4631d6f8c86c69aa0dde5d6c1f0b97fb94",
        "4b15646e9da780c18648d91e58ac00a054233231"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Feb 28 17:19:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 28 17:19:34 2018 +0000"
      },
      "message": "Merge \"Revert \"Use arm instruction set with clang 7.0 LTO\"\""
    },
    {
      "commit": "9c3abd4631d6f8c86c69aa0dde5d6c1f0b97fb94",
      "tree": "39055862c8ce0d08c42f98aaf3e191ecc94540ab",
      "parents": [
        "361f2e0366dec3560664dc20c9834f31c505814a",
        "1ebe77f1520fbbd7f633eef42c867fe79b672c1d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 01:49:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 28 01:49:55 2018 +0000"
      },
      "message": "Merge \"Use absolute paths in tests.\""
    },
    {
      "commit": "1ebe77f1520fbbd7f633eef42c867fe79b672c1d",
      "tree": "39055862c8ce0d08c42f98aaf3e191ecc94540ab",
      "parents": [
        "361f2e0366dec3560664dc20c9834f31c505814a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 27 11:40:45 2018 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 27 15:40:40 2018 -0800"
      },
      "message": "Use absolute paths in tests.\n\nTest: /data/nativetest64/installd_cache_test/installd_cache_test\nTest: /data/nativetest64/installd_dexopt_test/installd_dexopt_test\nTest: /data/nativetest64/installd_otapreopt_test/installd_otapreopt_test\nTest: /data/nativetest64/installd_service_test/installd_service_test\nTest: /data/nativetest64/installd_utils_test/installd_utils_test\nBug: 73950947\n\n(cherry picked from commit 8e9bf35a8089e152af3d75e1819d9112cea0c07c)\n\nChange-Id: I4dd99b270ce02ba78794841b30542a9e37ae7b81\n"
    },
    {
      "commit": "361f2e0366dec3560664dc20c9834f31c505814a",
      "tree": "f91065d89887bd7fd7f0508977328c06f01bedfe",
      "parents": [
        "acbad287a9c8073e887f3fcdc198d20cc5ff5ef7",
        "446125176065d1d253583f455d1e708044004352"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 27 22:18:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 27 22:18:23 2018 +0000"
      },
      "message": "Merge \"added usage of dumpstateService to bugreportwear option\""
    },
    {
      "commit": "446125176065d1d253583f455d1e708044004352",
      "tree": "f91065d89887bd7fd7f0508977328c06f01bedfe",
      "parents": [
        "acbad287a9c8073e887f3fcdc198d20cc5ff5ef7"
      ],
      "author": {
        "name": "lingfan",
        "email": "lingfank@google.com",
        "time": "Tue Feb 27 11:32:11 2018 -0800"
      },
      "committer": {
        "name": "lingfan",
        "email": "lingfank@google.com",
        "time": "Tue Feb 27 12:30:13 2018 -0800"
      },
      "message": "added usage of dumpstateService to bugreportwear option\n\nBug: 72459868\n\nTest: mmm -j32 frameworks/native/cmds/dumpstate/ \u0026\u0026 adb push $OUT/system/lib/* /system/lib/ \u0026\u0026 adb push ${ANDROID_PRODUCT_OUT}/data/nativetest/dumpstate_test* /data/nativetest \u0026\u0026 adb shell /data/nativetest/dumpstate_test/dumpstate_test\n\nChange-Id: Ic7c89cf241a651a4ad0e979aa658e1260a39d07b\n"
    },
    {
      "commit": "acbad287a9c8073e887f3fcdc198d20cc5ff5ef7",
      "tree": "562f292c93cf7545d9452aaa3f193cfefe331455",
      "parents": [
        "8f4529bbc2d4b0d1a4c18d8030366e4141e1db02",
        "f6a93b1969c18d92e3c218ed7856cb5d9c872fcd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 27 20:18:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 27 20:18:07 2018 +0000"
      },
      "message": "Merge \"Installd: Add context to test errors\""
    },
    {
      "commit": "f6a93b1969c18d92e3c218ed7856cb5d9c872fcd",
      "tree": "562f292c93cf7545d9452aaa3f193cfefe331455",
      "parents": [
        "8f4529bbc2d4b0d1a4c18d8030366e4141e1db02"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 27 09:51:15 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 27 18:32:18 2018 +0000"
      },
      "message": "Installd: Add context to test errors\n\nPrint binder return status message.\n\nBug: 73950947\nTest: mmma frameworks/native/cmds/installd\nChange-Id: Ie2ff166f42a957f0e34315c6c3623bc546d986e1\n"
    },
    {
      "commit": "3e60b390972fb1e17eb21b59fd1e19cc25ed37af",
      "tree": "4b522fe5ded27dea83dd17bce1381fc88443a6fc",
      "parents": [
        "8f4529bbc2d4b0d1a4c18d8030366e4141e1db02"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Feb 27 16:00:11 2018 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Feb 27 16:06:43 2018 +0800"
      },
      "message": "Reformat Android.bp file\n\nThis commit replaces `\u003d` with `:`, which is more idiomatic.  Besides,\nthis commit refines the whitespace between brackets and add commas to\nthe end of the list.\n\nTest: aosp_sailfish-userdebug builds\nChange-Id: I5977fd1690c7890318ec3d0e5f0238803eafe3e8\n"
    },
    {
      "commit": "4b15646e9da780c18648d91e58ac00a054233231",
      "tree": "e9f5cd0e5c804c170514c9114e2694a187e459a4",
      "parents": [
        "ffb5375c37804f84750a2092779ced5b986850a3"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Feb 26 23:27:34 2018 +0000"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Feb 26 23:27:34 2018 +0000"
      },
      "message": "Revert \"Use arm instruction set with clang 7.0 LTO\"\n\nThis reverts commit ffb5375c37804f84750a2092779ced5b986850a3.\nClang 7.0 LTO shouldn\u0027t need arm instruction set,\nif we revert one LLVM recent change.\n\nBug: 72619014\nChange-Id: I513fc78b2fde7ee95cd1bf2153dd647d2fbd196e\nMerged-In: Ic1ee146b823602ae419891f5e0956640109dd397\n"
    },
    {
      "commit": "8f4529bbc2d4b0d1a4c18d8030366e4141e1db02",
      "tree": "4d63083e7ab65b8c5c7c9520ee2c187daf20fd3a",
      "parents": [
        "e9f6953dea90f262e3c22e90001ee458b3ea40c2",
        "2716e111df2b7cd2490029f4c88bcc6543c93416"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 26 18:27:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 26 18:27:35 2018 +0000"
      },
      "message": "Merge \"Don\u0027t use cutils/Atomic.h\""
    },
    {
      "commit": "2716e111df2b7cd2490029f4c88bcc6543c93416",
      "tree": "4d63083e7ab65b8c5c7c9520ee2c187daf20fd3a",
      "parents": [
        "e9f6953dea90f262e3c22e90001ee458b3ea40c2"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 23 14:57:20 2018 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 23 15:02:42 2018 -0800"
      },
      "message": "Don\u0027t use cutils/Atomic.h\n\nTest: builds\nChange-Id: Idb7a51db4382e1012afe12df3c9fe807922b17fe\n"
    },
    {
      "commit": "e9f6953dea90f262e3c22e90001ee458b3ea40c2",
      "tree": "a9ecf180a5739e94503eabfc3705eca9cfdcdf7b",
      "parents": [
        "8b3b108987b082937899480a393b88263cdebad2",
        "3f31b6319f88ba81470c21711dacfb0b8bf11bee"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 23 16:49:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 23 16:49:45 2018 +0000"
      },
      "message": "Merge \"Fix broken time comparison.\""
    },
    {
      "commit": "8b3b108987b082937899480a393b88263cdebad2",
      "tree": "d08d65ff6a7e80a5e2c29d697ac35e5a0ab6fcac",
      "parents": [
        "7a8270d1ea3931efeb965ce6472b0cafe14e5c8f",
        "d8b1200c86770ed2375b0cbfdd930d7acb14e3d5"
      ],
      "author": {
        "name": "hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 23 07:24:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 23 07:24:17 2018 +0000"
      },
      "message": "Merge \"frameworks/native: Set LOCAL_SDK_VERSION where possible.\""
    },
    {
      "commit": "3f31b6319f88ba81470c21711dacfb0b8bf11bee",
      "tree": "03acdd7bc998e7e3bc7664c4ea8d4dbc07a7de12",
      "parents": [
        "019681c7cf29ba7b97085ed7453671ddceaecc65"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 22 19:42:36 2018 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 22 19:49:04 2018 +0000"
      },
      "message": "Fix broken time comparison.\n\nThis change fixes a broken check that excludes all recent tombstones\nand ANRs and only preserves old ones. Luckily, limit_by_mtime is only\ntrue for flat (non-zipped) bug reports so we haven\u0027t seen this too\noften in practice.\n\nTest: manual\nBug: 73759506\nChange-Id: Ic7856a4a1f5af3b1d5c5becb7bc83d2def4a71ea\n"
    },
    {
      "commit": "d8b1200c86770ed2375b0cbfdd930d7acb14e3d5",
      "tree": "33b71181ab515b1e43926f2e87714f2ae33751ad",
      "parents": [
        "019681c7cf29ba7b97085ed7453671ddceaecc65"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Feb 22 17:07:13 2018 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Feb 22 17:22:55 2018 +0000"
      },
      "message": "frameworks/native: Set LOCAL_SDK_VERSION where possible.\n\nThis change sets LOCAL_SDK_VERSION for all packages where\nthis is possible without breaking the build, and\nLOCAL_PRIVATE_PLATFORM_APIS :\u003d true otherwise.\n\nSetting one of these two will be made required soon, and this\nis a change in preparation for that. Not setting LOCAL_SDK_VERSION\nmakes the app implicitly depend on the bootclasspath, which is\noften not required. This change effectively makes depending on\nprivate apis opt-in rather than opt-out.\n\nTest: make relevant packages\nBug: 73535841\nChange-Id: Ic762cfcbc5d9fdd57b65823bb41674ee3e4aa47f\n"
    },
    {
      "commit": "7a8270d1ea3931efeb965ce6472b0cafe14e5c8f",
      "tree": "36494666ad83057c6daeb662db139c7b2893d2b6",
      "parents": [
        "79aa906eb6ad4d9a59efeacdc7338f7cb4376248",
        "14681db0b2938809b8cc37185d4d6b717e3f3906"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Wed Feb 21 00:02:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 21 00:02:32 2018 +0000"
      },
      "message": "Merge \"atrace.rc: enable schedstats by default\""
    },
    {
      "commit": "79aa906eb6ad4d9a59efeacdc7338f7cb4376248",
      "tree": "389a3b9271c9edcf7e766340a5c42f916b196b04",
      "parents": [
        "a92749ebae493aa81526f306db407fa980cc3ff7",
        "519a0790d7039ee9ed52ae057de30db0fddaee59"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 20 22:24:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 20 22:24:34 2018 +0000"
      },
      "message": "Merge \"Lift atrace restriction of 16 traced apps\""
    },
    {
      "commit": "14681db0b2938809b8cc37185d4d6b717e3f3906",
      "tree": "6f0fe8b8389cfcb559a4f5cd0862c9c0755f39cd",
      "parents": [
        "a92749ebae493aa81526f306db407fa980cc3ff7"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Tue Feb 20 14:00:22 2018 -0800"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Tue Feb 20 14:04:11 2018 -0800"
      },
      "message": "atrace.rc: enable schedstats by default\n\nScheduler tracepoints stat_sleep, stat_iowait, stat_blocked and\nstat_runtime require the kernel parameter schedstats\u003denable\n\nBug: 73652288\nTest: build\nChange-Id: I9e40742d7e328561aca00fd4989f3513382a747f\n"
    },
    {
      "commit": "a92749ebae493aa81526f306db407fa980cc3ff7",
      "tree": "6525f391a04a2c2bfcc17754940a56e0a619254b",
      "parents": [
        "019681c7cf29ba7b97085ed7453671ddceaecc65",
        "77c48751b5a80143b44d070b415892836c63fb19"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 20 18:30:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 20 18:30:42 2018 +0000"
      },
      "message": "Merge \"have patchoat take directories instead of filenames\""
    },
    {
      "commit": "019681c7cf29ba7b97085ed7453671ddceaecc65",
      "tree": "4a93695f6b3bd60a64d618383f48da51d2101159",
      "parents": [
        "eb7ea99ab2e29a4593517d0de271ff76e044c13b",
        "2efc402a934d4d4d755d91d8bef5fdc3192084c3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 16 02:25:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 16 02:25:48 2018 +0000"
      },
      "message": "Merge \"[installd] Pass --compilation-reason to dex2oat\""
    },
    {
      "commit": "2efc402a934d4d4d755d91d8bef5fdc3192084c3",
      "tree": "4a93695f6b3bd60a64d618383f48da51d2101159",
      "parents": [
        "eb7ea99ab2e29a4593517d0de271ff76e044c13b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 13 18:31:32 2018 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 15 12:49:39 2018 -0800"
      },
      "message": "[installd] Pass --compilation-reason to dex2oat\n\nTest: installd_dexopt_test, installd_otapreopt_test\nBug: 73102540\n\nChange-Id: I22854f040c08ea3207860f29b374c66fe2f21750\n"
    },
    {
      "commit": "eb7ea99ab2e29a4593517d0de271ff76e044c13b",
      "tree": "52152dded31881b890e312510872df59fb17faa3",
      "parents": [
        "1bd06e18901ac449e90522673f9f3e1bd4e2aebc",
        "0c609c25d69e57e2cf906039d2a7b69de5f78bde"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 15 16:17:06 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 15 16:17:06 2018 +0000"
      },
      "message": "Merge changes from topic \"cp_calin_framework_2017\"\n\n* changes:\n  Fix otapreopt parameters reading\n  Fix profileSnapshot test in installd.\n  Allow public profile compilation for primary apks\n  [installd] Pass .dm files to dexopt\n  Replace profman invocation for prepareAppProfiles\n  Refactor argument parsing in ota preopt\n  Extract the otapreopt parameters in their own class and add tests\n  Fix profile guided compilation for secondaries and add more tests\n  [installd] Create profile snaphots for boot image\n  [installd] Extend profile operations to take the profile name\n  [installd] Prepare profiles for app code paths\n  Prepare installd to handle profiles per code path\n  Add Installd IPC to compute the SHA256 of a seconday dex file.\n"
    },
    {
      "commit": "0c609c25d69e57e2cf906039d2a7b69de5f78bde",
      "tree": "52152dded31881b890e312510872df59fb17faa3",
      "parents": [
        "40b5f46cafa02d48d58b3d5a458df5aceaba52e9"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 12 17:39:37 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 10:59:49 2018 -0800"
      },
      "message": "Fix otapreopt parameters reading\n\nThe code was missing a break in the switch statement and was always\nfailing the default CHECK.\n\nAlso, move the logging to standard error to make it obvious the test\nfailed (instead of relying on the exit code which can be easily missed).\n\n(cherry picked from commit fd0c5b1aef5814b91f656341089d11291762a250)\n\nTest: installd_otapreopt_test\nBug: 71993124\nMerged-In: Iaf29ebc9b930981bf3b75c33e63e940139421e1d\nChange-Id: Iaf29ebc9b930981bf3b75c33e63e940139421e1d\n"
    },
    {
      "commit": "40b5f46cafa02d48d58b3d5a458df5aceaba52e9",
      "tree": "c9248b899fc55588c4e0e0b13da9ce1bbc8b89bb",
      "parents": [
        "5bd1c7251a6a3a4318d24c1f89edebfecb98836d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Feb 07 04:11:52 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 10:59:49 2018 -0800"
      },
      "message": "Fix profileSnapshot test in installd.\n\nWe need to pass the apk path to profman when generating the\nexpected profile.\n\n(cherry picked from commit 989fc50a1a52c57c218c9ccc681847c6c120d892)\n\nTest: installd_dexopt_test\nBug: 73053897\nMerged-In: I86bb30170a722b1917235daf1c98b478d412c5c3\nChange-Id: I86bb30170a722b1917235daf1c98b478d412c5c3\n"
    },
    {
      "commit": "5bd1c7251a6a3a4318d24c1f89edebfecb98836d",
      "tree": "9ff04709ea0ee4a4107a046630c03bb749a9eff4",
      "parents": [
        "62c5a373fccf94cb3c125514aaff033d36fc101e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 01 17:23:54 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 10:59:49 2018 -0800"
      },
      "message": "Allow public profile compilation for primary apks\n\nIt is ok to perform a \"public\" compilation with\nprofiles comming from dex metdata files.\n\nThe PackageManager is responsible to set the is_public flag for\nprimary apks; so we no longer check it in installd.\n\n(cherry picked from commit 0b386e03f83d9a308aecaebb6c7c1d6f36b79e27)\n\nTest: installd_dexopt_test\nBug: 30934496\nMerged-In: I72519c6a05aa318985396c6f93176624fe76c4be\nChange-Id: I72519c6a05aa318985396c6f93176624fe76c4be\n"
    },
    {
      "commit": "62c5a373fccf94cb3c125514aaff033d36fc101e",
      "tree": "597af9a729a6f64aa8a1a6d47132742a31e9897c",
      "parents": [
        "f63d479fe67ea9da8baa755d499e6457221b89d9"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 01 17:03:23 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 10:59:49 2018 -0800"
      },
      "message": "[installd] Pass .dm files to dexopt\n\n(cherry picked from commit cc3b8aeff19f39afb8d4f2c198ee6cd2ec132d22)\n\nTest: installd_otapreopt_test installd_dexopt_test\nBug: 30934496\nMerged-In: I3cb5b3f96205688203a134023492d8ff80524ab6\nChange-Id: I3cb5b3f96205688203a134023492d8ff80524ab6\n"
    },
    {
      "commit": "f63d479fe67ea9da8baa755d499e6457221b89d9",
      "tree": "c32863a5f222df23de2bbcf934ccfb2c6d7ca0f7",
      "parents": [
        "315d1f54388acc6881c190f8cf78f53c90ec329d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 30 17:43:34 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 06:02:34 2018 -0800"
      },
      "message": "Replace profman invocation for prepareAppProfiles\n\nInstead of using the default merging path, use the dedicated\ncopy_and_update_profile_key path which will also update the\nprofile key to the actual apk path.\n\n(cherry picked from commit b7eecae060ac625c38dd56b064a44391a569dcf6)\n\nTest: installd_dexopt_test\nBug: 30934496\n\nMerged-In: Ib268be534e3832598d55cacf0aad1c723772cc6c\nChange-Id: Ib268be534e3832598d55cacf0aad1c723772cc6c\n"
    },
    {
      "commit": "315d1f54388acc6881c190f8cf78f53c90ec329d",
      "tree": "dfe99c95d4b71f330b477d71b7429e3347396fca",
      "parents": [
        "dff4729abb051bebd05b2e520b9c43dee0d332ab"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 01 14:56:14 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 06:02:34 2018 -0800"
      },
      "message": "Refactor argument parsing in ota preopt\n\nUnify the parsing of all the versions. This will make it much\neasier to extend the interface to accept new arguments.\n\n(cherry picked from commit 7707aeaa92171bc34718ceaf0554e982d2e92729)\n\nTest: installd_otapreopt_test\nBug: 30934496\nMerged-In: Idf945d3f4078b4ef86e2c2532b321768d2868fa7\nChange-Id: Idf945d3f4078b4ef86e2c2532b321768d2868fa7\n"
    },
    {
      "commit": "dff4729abb051bebd05b2e520b9c43dee0d332ab",
      "tree": "b0f8da913141b83e3655f95b7f9bf91500d75acd",
      "parents": [
        "c4f6a0b6333980a069900e2afff2c755f30fe09c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 01 14:44:56 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 06:02:34 2018 -0800"
      },
      "message": "Extract the otapreopt parameters in their own class and add tests\n\nThis is in preparation to get rid of the annoying\nReadArgumentV1..5 pattern and to be able to write\nunit tests.\n\n(cherry picked from commit c9e76799ef0dc4358fb5e2a815c42311aac6b81b)\n\nTest: installd_dexopt_test\nBug: 72666394\nMerged-In: I0ad438ee69aa82d9ff2ad2f94d465dcc78ea8c28\nChange-Id: I0ad438ee69aa82d9ff2ad2f94d465dcc78ea8c28\n"
    },
    {
      "commit": "c4f6a0b6333980a069900e2afff2c755f30fe09c",
      "tree": "c7737eb5493d7927bd497e3f24697f3a73affe87",
      "parents": [
        "0d0a49205ff08bdf23124455b6b31ace81edd4f6"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 01 01:27:24 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 06:02:34 2018 -0800"
      },
      "message": "Fix profile guided compilation for secondaries and add more tests\n\nThe method signature for opening the reference profile was wrong\nand did not account to the fact that the profile name can be\nnull for secondary dex files.\n\nAlso, add infrastructure to test dexopt for primary apks and add\nan initial set of tests.\n\n(cherry picked from commit 2372d12577540bd41c74f2d1cd6f604a0390d726)\n\nTest: installd_dexopt_test\nBug: 72666394\nMerged-In: I537a3f52a1449a8edb070643500a4d241728cb9a\nChange-Id: I537a3f52a1449a8edb070643500a4d241728cb9a\n"
    },
    {
      "commit": "0d0a49205ff08bdf23124455b6b31ace81edd4f6",
      "tree": "e91008dec1f1046e8b31f14217a0d95725aef934",
      "parents": [
        "408cd4ab394ce6640f43665639bc3fb0ac296ca6"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 23 19:54:11 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 06:02:34 2018 -0800"
      },
      "message": "[installd] Create profile snaphots for boot image\n\nCreate the profile snapshot for the boot image by aggregating all primary\nprofiles. During aggregation data that does not belong to the boot image\nis filtered out. The matching is done based on the dex files provided in\nthe classpath argument.\n\n(cherry picked from commit e61189e0ad2104360a188d36210bd1ee43803a64)\n\nTest: installd_dexopt_test\nBug: 30934496\nMerged-In: Ib980ab3feb9f9838dff81a3861693cd08b1df9ab\nChange-Id: Ib980ab3feb9f9838dff81a3861693cd08b1df9ab\n"
    },
    {
      "commit": "408cd4ab394ce6640f43665639bc3fb0ac296ca6",
      "tree": "5a1d014793fc4e9f9f8f613af15da630f9906a83",
      "parents": [
        "c3b049e0294a5884b18f0f29f3af14e6de0803c7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Jan 20 23:34:18 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 06:02:34 2018 -0800"
      },
      "message": "[installd] Extend profile operations to take the profile name\n\nExtend the installd profile interface to take the profile name as\nargument. This shifts the responsibility for choosing the names of\nprofiles for primary apks completely to PackageManager. Each of the\napplication code paths will get an unique profile name.\n\nAll the profile operations will now work on a specific profile name rather\nthan assuming a default global name.\n\n(cherry picked from commit 562de815339bedd29206f5f98be44c824945b627)\n\nTest: installd_dexopt_test\nBug: 30934496\nMerged-In: I5847d35fe4d3caa5a2b32293426a24683af42030\nChange-Id: I5847d35fe4d3caa5a2b32293426a24683af42030\n"
    },
    {
      "commit": "c3b049e0294a5884b18f0f29f3af14e6de0803c7",
      "tree": "b59e276a692e6c6f0e563ff58c0cd556f01a0e0b",
      "parents": [
        "824a64db8db2e9bf5c601f2568544ea1c3b4dd3e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 18 22:32:58 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 06:02:34 2018 -0800"
      },
      "message": "[installd] Prepare profiles for app code paths\n\nImplement profile preparation for individual application code paths.\n\nThe preparation is:\n- create the current profile\n- merge the profile from the dex metadata file (if present) into the\nreference profile.\n\nNote: currently the current profile is created as part of\nInstalldNativeService::createAppData for the entire package. That logic\ndoes not support dex metadata or individual code paths and will be removed\nonce the PackageManager switches over the new method.\n\n(cherry picked from commit bc5ab878b56bcd3a300cc5fc0facc864421dfcb6)\n\nTest: installd_dexopt_test\nBug: 30934496\nMerged-In: I2aeddcda7b78017bd46838985bef5f92a79d4573\nChange-Id: I2aeddcda7b78017bd46838985bef5f92a79d4573\n"
    },
    {
      "commit": "824a64db8db2e9bf5c601f2568544ea1c3b4dd3e",
      "tree": "8e843b1475996292551d1358269bb3777897d614",
      "parents": [
        "a25d90ce8da7d6e70d0ea18a50134bb0122c4017"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 18 20:23:17 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 06:02:34 2018 -0800"
      },
      "message": "Prepare installd to handle profiles per code path\n\nTransform each profile operation to accept the pair\n(package_name, profile_name). This will allow installd to get the profile\nname from the PackageManager instead of assuming a predefined name. The\nPackageManager will compute and assign unique profile names for each code\npath.\n\nThe end goal is to support installation and extraction of profiles per\ncode path.\n\nAlso, add a few extra tests for merging the profiles.\n\n(cherry picked from commit cfcd6aa28593a227d39868f6f567264fca1360a1)\n\nTest: installd_dexopt_test, installd_utils_test\nBug: 30934496\nMerged-In: I580f037d9d3e5537032e815dc803b9ddeff343cb\nChange-Id: I580f037d9d3e5537032e815dc803b9ddeff343cb\n"
    },
    {
      "commit": "a25d90ce8da7d6e70d0ea18a50134bb0122c4017",
      "tree": "84116c8242844d4492166c02e7ef673cb54c8596",
      "parents": [
        "1bd06e18901ac449e90522673f9f3e1bd4e2aebc"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Mon Oct 16 10:56:00 2017 +0100"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 14 06:02:34 2018 -0800"
      },
      "message": "Add Installd IPC to compute the SHA256 of a seconday dex file.\n\n(cherry picked from commit 753dc71734927f86c277991be9326cb9a82202b1)\n\nBug: 63927552\nTest: Exercised manually. Added unit tests in installd_service_test.\n\nMerged-In: If9df7a88f3a3039aab69ed5f200d14cb19794cb3\nChange-Id: If9df7a88f3a3039aab69ed5f200d14cb19794cb3\n"
    },
    {
      "commit": "1bd06e18901ac449e90522673f9f3e1bd4e2aebc",
      "tree": "65558aedb4e1084f2e3b1a031fe5392f2af92bc7",
      "parents": [
        "2366452ae31d86a6948a671ee79154d9d7f41c50",
        "522491627cc6ec4036ed5a5f95b80e04063590aa"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 14 11:41:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 14 11:41:02 2018 +0000"
      },
      "message": "Merge \"Refactor runtime hidden API flag from negative to positive\""
    },
    {
      "commit": "522491627cc6ec4036ed5a5f95b80e04063590aa",
      "tree": "65558aedb4e1084f2e3b1a031fe5392f2af92bc7",
      "parents": [
        "2366452ae31d86a6948a671ee79154d9d7f41c50"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 12 18:04:59 2018 -0800"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 14 10:16:31 2018 +0000"
      },
      "message": "Refactor runtime hidden API flag from negative to positive\n\nThere are only two situations in which we want to enable hidden API\naccess flag checks. Turning the flag from DISABLE_ to ENABLE_\nsimplifies logic in ART and reduces the number places where the flag\nhad to be passed down to ART.\n\nBug: 64382372\nTest: boot device, install and run apps, check log messages\n(cherry picked from commit 22cce5a179a1dd47cf402fbff9170df2e4703264)\n\nChange-Id: I468df458e9dd9e6a9b5ec56c03d1ba56c850c4dc\n"
    },
    {
      "commit": "77c48751b5a80143b44d070b415892836c63fb19",
      "tree": "3c3b100414c337645ec44febee81497957297f66",
      "parents": [
        "73c392450d1aa1b58d77ecbdc6a3aaa315a6a7b0"
      ],
      "author": {
        "name": "Chris Morin",
        "email": "cmtm@google.com",
        "time": "Tue Feb 13 15:44:47 2018 -0800"
      },
      "committer": {
        "name": "Chris Morin",
        "email": "cmtm@google.com",
        "time": "Tue Feb 13 15:56:31 2018 -0800"
      },
      "message": "have patchoat take directories instead of filenames\n\npatchoat was already ignoring the basename part of the filename passed\nto it for both --output-image-file and --output-image-relocation-file.\nWe can therefore just pass in the directories instead.\n\nBug: 72828459\nTest: make test-art-host-gtest-patchoat_test\nChange-Id: Ie4f035b9953f8d79cd57b6239dd0d703b78505c9\n"
    },
    {
      "commit": "2366452ae31d86a6948a671ee79154d9d7f41c50",
      "tree": "8e59b8dc68c67d0d6bafbd5ad6f8222fe32fe3d4",
      "parents": [
        "73e8025d705a3ee59e5d0c251136422e2d3e8ae6",
        "2d7777458ddca6595b8f7daaa6d7049a804be42d"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Feb 13 21:26:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 13 21:26:18 2018 +0000"
      },
      "message": "Merge \"Fix clang 7.0 warnings.\""
    },
    {
      "commit": "2d7777458ddca6595b8f7daaa6d7049a804be42d",
      "tree": "8e59b8dc68c67d0d6bafbd5ad6f8222fe32fe3d4",
      "parents": [
        "73e8025d705a3ee59e5d0c251136422e2d3e8ae6"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Jan 16 01:12:05 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Feb 13 09:44:17 2018 -0800"
      },
      "message": "Fix clang 7.0 warnings.\n\n* Cast EXPECT_EQ arguments to the same signed/unsigned type.\n\nTest: Build\nChange-Id: I1055215045fb0904438d0a71bde034fab99111cc\n"
    },
    {
      "commit": "73e8025d705a3ee59e5d0c251136422e2d3e8ae6",
      "tree": "47a4d192bcca0efc0229a3e4bbaa10db48a2e325",
      "parents": [
        "73c392450d1aa1b58d77ecbdc6a3aaa315a6a7b0",
        "ffb5375c37804f84750a2092779ced5b986850a3"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Feb 13 17:31:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 13 17:31:10 2018 +0000"
      },
      "message": "Merge \"Use arm instruction set with clang 7.0 LTO\""
    },
    {
      "commit": "ffb5375c37804f84750a2092779ced5b986850a3",
      "tree": "47a4d192bcca0efc0229a3e4bbaa10db48a2e325",
      "parents": [
        "73c392450d1aa1b58d77ecbdc6a3aaa315a6a7b0"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Feb 12 11:35:00 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Feb 12 11:35:35 2018 -0800"
      },
      "message": "Use arm instruction set with clang 7.0 LTO\n\n* surfaceflinger.so uses LTO.\n  clang 7.0 LTO inlined more code and some references\n  are too far away to use thumb instructions.\n\nBug: 72619014\nTest: build with Forrest\nMerged-In: Ia09931e93a170ac58007f80da2d580bb9b9635a6\nChange-Id: I2cbb652a9a8d908d9444a267e6d234b135c279b5\n"
    },
    {
      "commit": "519a0790d7039ee9ed52ae057de30db0fddaee59",
      "tree": "d2456b936a587dcda0a7033fac8f3c52412f1396",
      "parents": [
        "73c392450d1aa1b58d77ecbdc6a3aaa315a6a7b0"
      ],
      "author": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Fri Feb 09 20:05:39 2018 -0800"
      },
      "committer": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Fri Feb 09 20:06:39 2018 -0800"
      },
      "message": "Lift atrace restriction of 16 traced apps\n\nTest: works?\nChange-Id: Ica6d0e5c050a3417bf2485dc0ac084ec91b72ebb\n"
    },
    {
      "commit": "73c392450d1aa1b58d77ecbdc6a3aaa315a6a7b0",
      "tree": "e9f5cd0e5c804c170514c9114e2694a187e459a4",
      "parents": [
        "266790e13c68c0cf6b9ef7dde14034619ed74916",
        "f31aa05f9c3df1d278f55fd6f4ab742542e77c80"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Feb 06 21:20:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 06 21:20:48 2018 +0000"
      },
      "message": "Merge changes from topic \"lshal_init_vintf_type\"\n\n* changes:\n  lshal --init-vintf: can specify manifest partition\n  lshal: add libprocpartition\n"
    },
    {
      "commit": "f31aa05f9c3df1d278f55fd6f4ab742542e77c80",
      "tree": "e9f5cd0e5c804c170514c9114e2694a187e459a4",
      "parents": [
        "1cd975c011fbf7940a8ab156da43ffc388783ddb"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri Feb 02 15:17:51 2018 -0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Feb 05 15:34:56 2018 -0800"
      },
      "message": "lshal --init-vintf: can specify manifest partition\n\nlshal --init-vintf [--init-vintf-partition\u003dvendor] generates\ndevice manifest.\n\nlshal --init-vintf --init-vintf-partition\u003dsystem generates\nframework manifest.\n\nlshal --init-vintf --init-vintf-partition\u003dodm generates odm manifest.\n\nTest: the above commands\n      health/backup is in system manifest\n      IBase is not in any manifest\n      graphics.composer/vr is in system manifest\n\nTest: lshal_test\n\nFixes: 71802285\nChange-Id: Ie16c8914218ece5c3cd698c93f2bada1be3ee29f\n"
    },
    {
      "commit": "1cd975c011fbf7940a8ab156da43ffc388783ddb",
      "tree": "3a04a362f345b294d1b391b4798a7dc6aa77ccca",
      "parents": [
        "266790e13c68c0cf6b9ef7dde14034619ed74916"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Feb 05 14:59:56 2018 -0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Feb 05 15:34:56 2018 -0800"
      },
      "message": "lshal: add libprocpartition\n\n... that determines the partition of a process.\n\nBug: 71802285\nTest: lshal_test\nTest: vts_treble_vintf_test\n\nChange-Id: I7aa0b773be65a3111c0417de1f0e79c8e12ef6fb\n"
    },
    {
      "commit": "266790e13c68c0cf6b9ef7dde14034619ed74916",
      "tree": "28ebd3f2a34b96912f7a37f8bd7c0824b4351f63",
      "parents": [
        "1eea3d77dc4d1823bf935fef6b8a8eb2fe8b7afe",
        "47f644e774a13c81bf8bda5166e65cd5c5171ef3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 29 08:28:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 29 08:28:29 2018 +0000"
      },
      "message": "Merge \"dumpstate: disable vibration when -q option is set\""
    },
    {
      "commit": "1eea3d77dc4d1823bf935fef6b8a8eb2fe8b7afe",
      "tree": "9c5c5efcac51c51d5ba50b89653a4bdbfc1b8be0",
      "parents": [
        "3cbc5893c64aa3b79acb4841cfab84fe95eef82e",
        "a3127a7b7d823747abaa02dce0e64ef33e8697ce"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 26 03:52:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 26 03:52:14 2018 +0000"
      },
      "message": "Merge \"Dumpstate: Add statsd to interesting processes\""
    },
    {
      "commit": "3cbc5893c64aa3b79acb4841cfab84fe95eef82e",
      "tree": "68b0eebcce267b2328c6c762b40d7c6339958e66",
      "parents": [
        "ced274e88d1232fd9f886a2a191ae4cf88481b03",
        "acc12128e1c237f5c44b711edb5660da9ff21c21"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 25 21:08:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 25 21:08:04 2018 +0000"
      },
      "message": "Merge \"lshal --init-vintf: do not put empty \u003csepolicy\u003e tag\""
    },
    {
      "commit": "acc12128e1c237f5c44b711edb5660da9ff21c21",
      "tree": "6b69d6a5b0aa9ea4bb3fcf1541b36c38580ac398",
      "parents": [
        "69acdd751226d99d539ad8e37cbdbeb0de9e8cf5"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Jan 25 10:49:39 2018 -0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Jan 25 10:50:13 2018 -0800"
      },
      "message": "lshal --init-vintf: do not put empty \u003csepolicy\u003e tag\n\nTest: lshal --init-vintf\nChange-Id: Id742ddbd9e79abe7cfaea5d89d184a8e36943e66\n"
    },
    {
      "commit": "47f644e774a13c81bf8bda5166e65cd5c5171ef3",
      "tree": "c9c8bfec1e0ace62e63654412fc251e2a03a26c1",
      "parents": [
        "ced274e88d1232fd9f886a2a191ae4cf88481b03"
      ],
      "author": {
        "name": "Takuya Ogawa",
        "email": "Takuya.Ogawa@sony.com",
        "time": "Wed Dec 20 18:09:09 2017 +0900"
      },
      "committer": {
        "name": "Takuya Ogawa",
        "email": "Takuya.Ogawa@sony.com",
        "time": "Thu Jan 25 08:51:06 2018 +0000"
      },
      "message": "dumpstate: disable vibration when -q option is set\n\nCurrent dumpstate -q option is valid only for start timing\nbut end timing is not cared\n\nIt should disable the vibration for both case\n\nChange-Id: Ia3cee01771c85a9ad4fa4b79084c072aa5d12dd0\n"
    },
    {
      "commit": "a3127a7b7d823747abaa02dce0e64ef33e8697ce",
      "tree": "a4bebbe6c8113f231d430d7ef9829233f4c6a912",
      "parents": [
        "ced274e88d1232fd9f886a2a191ae4cf88481b03"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 24 17:55:55 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 24 17:55:55 2018 -0800"
      },
      "message": "Dumpstate: Add statsd to interesting processes\n\nDump statsd stacks in dumpstate.\n\nBug: 72461610\nTest: m\nChange-Id: Ifddd122bac5eb182deac98e721d476b2b3572358\n"
    },
    {
      "commit": "ced274e88d1232fd9f886a2a191ae4cf88481b03",
      "tree": "1ef048c7ba2994d0efa42ed02d72f9ec69134a36",
      "parents": [
        "b51137093c130b34f29c58d8eb30e1a91c366909",
        "f78be36813c01242e9e02b92cad98cf974996942"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 24 18:36:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 24 18:36:32 2018 +0000"
      },
      "message": "Merge \"Add missing sensor types to \u003candroid/sensor.h\u003e.\""
    },
    {
      "commit": "f78be36813c01242e9e02b92cad98cf974996942",
      "tree": "1ef048c7ba2994d0efa42ed02d72f9ec69134a36",
      "parents": [
        "b51137093c130b34f29c58d8eb30e1a91c366909"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 23 15:33:56 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 23 17:35:43 2018 -0800"
      },
      "message": "Add missing sensor types to \u003candroid/sensor.h\u003e.\n\nThis matches Sensor.java\n(https://developer.android.com/reference/android/hardware/Sensor.html).\n\nI\u0027ve included the types for a few of the easy cases, but I\u0027ve added a\nlink to the Java documentation for the rest: the Java documentation is\nmuch better and actively maintained. Duplicating it here doesn\u0027t seem\nworthwhile, and \u003candroid/multinetwork.h\u003e already takes this approach.\n\nBug: https://github.com/android-ndk/ndk/issues/621\nTest: builds\nChange-Id: Icffd85071e56bd7f45e8f3dc9d300a495859dbcb\n"
    },
    {
      "commit": "b51137093c130b34f29c58d8eb30e1a91c366909",
      "tree": "223ef17158d2c73414884b2cf0ce2bc65f907fb5",
      "parents": [
        "37ea948a172df14dcef7e39302a4d50443aa729e",
        "439bf2978e0eba4747f32f3b9c359caa4e54555c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jan 20 23:30:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 20 23:30:34 2018 +0000"
      },
      "message": "Merge \"Multi-A2DP support - add a new internal API to suppress Audio Noisy intent\""
    },
    {
      "commit": "439bf2978e0eba4747f32f3b9c359caa4e54555c",
      "tree": "223ef17158d2c73414884b2cf0ce2bc65f907fb5",
      "parents": [
        "37ea948a172df14dcef7e39302a4d50443aa729e"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Fri Jan 19 17:45:42 2018 -0800"
      },
      "committer": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Sat Jan 20 11:52:20 2018 -0800"
      },
      "message": "Multi-A2DP support - add a new internal API to suppress Audio Noisy intent\n\nUpdated the list of Binder calls to include the new internal API\n  setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent().\n\nAlso, added missing (commented-out) enum values.\n\nBug: 69269748\nTest: Manual: multiple connected A2DP devices, and selecting each as\n      the Active Device.\nChange-Id: Iad44c182a202ac520bbbb89182e798a86eb93e0c\n(cherry picked from commit de9689ff43b804826c40c176db9e19b9c4982f13)\n"
    },
    {
      "commit": "37ea948a172df14dcef7e39302a4d50443aa729e",
      "tree": "2e1c32e74c7c2fa5cb1923f25a8ed7dde168957e",
      "parents": [
        "7fb0aa5f979380b3ca6f76e7bd37ca1c0e84547b",
        "7fcbb816bcedac25e3e0cbf43e8dd715ff759cee"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jan 20 12:50:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 20 12:50:50 2018 +0000"
      },
      "message": "Merge \"Add new dexopt flag to control hidden API restrictions\""
    },
    {
      "commit": "7fb0aa5f979380b3ca6f76e7bd37ca1c0e84547b",
      "tree": "12c4785299c6e57d422d5dba8daf45b88616d405",
      "parents": [
        "aaf2c87e2a45412e355d5fc540ea90bda30e1bff",
        "5f328892a84418825bbfb5a2c074fc1a13e4eb7a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 19 22:32:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 19 22:32:59 2018 +0000"
      },
      "message": "Merge \"Add \u0027exclude parent\u0027 option to debug.\""
    }
  ],
  "next": "aaf2c87e2a45412e355d5fc540ea90bda30e1bff"
}
