)]}'
{
  "log": [
    {
      "commit": "911d3092247ab4f88496998f165c258eec031f4a",
      "tree": "448270e436ae3578ed880a570e119fdcc9fe40d4",
      "parents": [
        "a2cd2202f00280cb6cfb6e3eec663cb1f0e7c8b1",
        "a6b5f94687676032028ae9c72d324bda9ced06f1"
      ],
      "author": {
        "name": "Thiébaud Weksteen",
        "email": "tweek@google.com",
        "time": "Mon Sep 25 07:40:02 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 25 07:40:02 2023 +0000"
      },
      "message": "Merge \"Skip /metadata/sepolicy creation\" into main"
    },
    {
      "commit": "a6b5f94687676032028ae9c72d324bda9ced06f1",
      "tree": "448270e436ae3578ed880a570e119fdcc9fe40d4",
      "parents": [
        "a2cd2202f00280cb6cfb6e3eec663cb1f0e7c8b1"
      ],
      "author": {
        "name": "Thiébaud Weksteen",
        "email": "tweek@google.com",
        "time": "Mon Sep 25 16:07:47 2023 +1000"
      },
      "committer": {
        "name": "Thiébaud Weksteen",
        "email": "tweek@google.com",
        "time": "Mon Sep 25 16:07:47 2023 +1000"
      },
      "message": "Skip /metadata/sepolicy creation\n\nBug: 297794885\nTest: presubmit\nChange-Id: I93f94f319d0f86e1cad6f2a4912b5df3aae09cec\n"
    },
    {
      "commit": "a2cd2202f00280cb6cfb6e3eec663cb1f0e7c8b1",
      "tree": "e72f4fab3148cb31ab2ce5509fde54ce6377430c",
      "parents": [
        "6d01651ab9c25b8f4c0d66ceab69020ab3e31f0f",
        "810274071da6be521d9e198bf6fde64afd1fd077"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Sun Sep 24 00:46:55 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Sep 24 00:46:55 2023 +0000"
      },
      "message": "Merge \"Create_cow: Hash of target blocks should not be stored.\" into main"
    },
    {
      "commit": "6d01651ab9c25b8f4c0d66ceab69020ab3e31f0f",
      "tree": "ce664266aebae37bb5d94cf604c04564f00d15f9",
      "parents": [
        "d091aa44b3fc97e90e3728a79dabb65924967222",
        "45d88d496eeef3bbdd0b54a2b0c1618b81d533a4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Sat Sep 23 13:06:15 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 23 13:06:15 2023 +0000"
      },
      "message": "Merge \"Do not check with vendor vndk version\" into main"
    },
    {
      "commit": "45d88d496eeef3bbdd0b54a2b0c1618b81d533a4",
      "tree": "ce664266aebae37bb5d94cf604c04564f00d15f9",
      "parents": [
        "d091aa44b3fc97e90e3728a79dabb65924967222"
      ],
      "author": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Thu Sep 21 16:03:41 2023 +0900"
      },
      "committer": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Sat Sep 23 21:06:57 2023 +0900"
      },
      "message": "Do not check with vendor vndk version\n\nCurrent libcutils checks if memfd is supported with vendor VNDK version,\nbut this is no longer valid if VNDK is deprecated. As we can assume that\nany vendor using this code is supported as long as it is treblelized,\nsimplify logic to check if memfd is valid to vendor only with\n\u0027ro.treble.enabled\u0027 property.\n\nBug: 290159430\nTest: Cuttlefish with VNDK deprecated worked without error from\nlibcutils\n\nChange-Id: I351f0798da99cb4827bc3e424b63a2eaee5c7461\n"
    },
    {
      "commit": "810274071da6be521d9e198bf6fde64afd1fd077",
      "tree": "73090de10cc03f46070be0553d1bc254bdf35320",
      "parents": [
        "d091aa44b3fc97e90e3728a79dabb65924967222"
      ],
      "author": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Sat Sep 23 01:07:47 2023 -0700"
      },
      "committer": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Sat Sep 23 01:07:47 2023 -0700"
      },
      "message": "Create_cow: Hash of target blocks should not be stored.\n\nTarget block hash was in-correctly getting added to map thereby\noverriding the source-hash.\n\nBug: 299011882\nTest: Flash Pixel 6 Pro from A-\u003eB and from B-\u003eA\nChange-Id: Ib3887c29cd6b8f2abd50e932273a5cfc2a096bd5\nSigned-off-by: Akilesh Kailash \u003cakailash@google.com\u003e\n"
    },
    {
      "commit": "d091aa44b3fc97e90e3728a79dabb65924967222",
      "tree": "2b6bde97f345ef671b7a8f566f3259a9fe5e0291",
      "parents": [
        "73fcd754eef78cddd814045d07d04de7d245dc1d",
        "f6a84e4462c8425869093f26f7e83bc1cb24ee70"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 22 22:56:38 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 22:56:38 2023 +0000"
      },
      "message": "Merge \"Remove Windows workaround in file not built for Windows.\" into main"
    },
    {
      "commit": "73fcd754eef78cddd814045d07d04de7d245dc1d",
      "tree": "f1f7d7d545bf396ad440000e6a16650fe051486b",
      "parents": [
        "c4463ebee6a918735830b08e95cc85cc7d298fe9",
        "b4987345ff1f97d529cc23b03ca73b58ff7a7e1b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Sep 22 21:55:11 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 21:55:11 2023 +0000"
      },
      "message": "Merge \"Only skip _16k/_64k kernel modules dirs on 4K builds\" into main"
    },
    {
      "commit": "c4463ebee6a918735830b08e95cc85cc7d298fe9",
      "tree": "0b5dba3af3e4389a2e6e485ac8b4bb1d01c0ec94",
      "parents": [
        "3d0d8e4b8f23a5bdd02e2c148f0b47a03b5f568c",
        "78fb21c0f8dba54eb9a21f6c71923fd20fbb0511"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Fri Sep 22 19:51:59 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 19:51:59 2023 +0000"
      },
      "message": "Merge \"Removing extra includes\" into main"
    },
    {
      "commit": "3d0d8e4b8f23a5bdd02e2c148f0b47a03b5f568c",
      "tree": "0b5dba3af3e4389a2e6e485ac8b4bb1d01c0ec94",
      "parents": [
        "532a608f588588c03218aaffe1f5fc0429a02537",
        "8aba6d022cddb153f144488a9fabd445b08afb71"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Fri Sep 22 19:51:25 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 19:51:25 2023 +0000"
      },
      "message": "Merge changes I343272f4,I5481893a into main\n\n* changes:\n  Removing headers + using string\n  Removing double delete from flashall\n"
    },
    {
      "commit": "532a608f588588c03218aaffe1f5fc0429a02537",
      "tree": "5c06b36d4ed65ef803747f310a98e4e1bed56ad6",
      "parents": [
        "59a2cde894d2f0638057379435a420defb56df6a",
        "87c90e7b65c734ba553a4655d0aee8c7dd939676"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Sep 22 19:42:45 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 19:42:45 2023 +0000"
      },
      "message": "Merge changes I7790dde8,I065907a5,Id2e82024 into main\n\n* changes:\n  Add missing \u003cassert.h\u003e include\n  Add missing \u003cfunctional\u003e and \u003cvector\u003e includes\n  snapuserd_test: don\u0027t discard result of std::async\n"
    },
    {
      "commit": "59a2cde894d2f0638057379435a420defb56df6a",
      "tree": "c0df5fd740103ba6502f69a788d395c52835d434",
      "parents": [
        "46c366b0ed867b05ca2e077a9c2141574774ba0a",
        "7107c582fa1948c3ccdaafa251dcd91ec0e847d1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Sep 22 18:01:48 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 18:01:48 2023 +0000"
      },
      "message": "Merge \"Remove unused files.\" into main"
    },
    {
      "commit": "46c366b0ed867b05ca2e077a9c2141574774ba0a",
      "tree": "4799926b632c49b63e098f47a4edecd62e6dc939",
      "parents": [
        "d5b09b4b97b2c783b7a9f2fa33e7a0db874a120f",
        "3369fe9cbb0cce75ff61fbfaac5aaa83dff0b6a7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Sep 22 18:00:19 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 18:00:19 2023 +0000"
      },
      "message": "Merge \"Don\u0027t duplicate uapi ioprio constants.\" into main"
    },
    {
      "commit": "d5b09b4b97b2c783b7a9f2fa33e7a0db874a120f",
      "tree": "49cf152bd5fd603e137cdbc204246393bc851c96",
      "parents": [
        "9c562cf82b0e3e2300d80a19c02421ee0b85e63c",
        "1faedd02a3d1c392136cfcdb38afa698721a7d6f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Sep 22 17:58:03 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 17:58:03 2023 +0000"
      },
      "message": "Merge \"Remove redefinition of uapi constant added in R.\" into main"
    },
    {
      "commit": "b4987345ff1f97d529cc23b03ca73b58ff7a7e1b",
      "tree": "8097d26854b55ceebfac339050c9f78882ad4c99",
      "parents": [
        "81400915efac29397f1390b9c8f2939b970a90db"
      ],
      "author": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Thu Sep 21 15:52:19 2023 -0700"
      },
      "committer": {
        "name": "Kelvin Zhang",
        "email": "zhangkelvin@google.com",
        "time": "Fri Sep 22 09:14:43 2023 -0700"
      },
      "message": "Only skip _16k/_64k kernel modules dirs on 4K builds\n\nThe initramfs.img from kernel builds do not store kernel modules under\n_16k directory. Currently, init is programmed to only load kernel\nmodules from _16k dir if running on 16K page size kernel. Relax this\nrestriction so that booting on custom 16K kernel would work without\ngoing through platform rebuild.\n\nTest: th\nBug: 293313353\nBug: 300184677\n\nChange-Id: I9ee3c74066ad9ec5127f1e8662f7c1273445994c\n"
    },
    {
      "commit": "f6a84e4462c8425869093f26f7e83bc1cb24ee70",
      "tree": "6addc508f6660dcf7cd56bdf6a38f307ab8db881",
      "parents": [
        "d741c23288096e47928e64a2a27ed764487fe694"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 22 14:37:37 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 22 15:44:42 2023 +0000"
      },
      "message": "Remove Windows workaround in file not built for Windows.\n\nTest: treehugger\nChange-Id: I311cfbc9245cbe90ed6fc4fa379ff5b9abdf21e7\n"
    },
    {
      "commit": "3369fe9cbb0cce75ff61fbfaac5aaa83dff0b6a7",
      "tree": "81bb63a8e36f782b544455c56e8bc53c8ccdd494",
      "parents": [
        "d741c23288096e47928e64a2a27ed764487fe694"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 22 14:51:26 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 22 14:51:26 2023 +0000"
      },
      "message": "Don\u0027t duplicate uapi ioprio constants.\n\nThis code is only used in init and vold, so I suspect all the\nconditional compilation could be moved into the .bp file instead, but\nI\u0027m just trying to clean up duplication today...\n\nTest: treehugger\nChange-Id: I97013f5de41e109a0cc377400c396145aed569db\n"
    },
    {
      "commit": "1faedd02a3d1c392136cfcdb38afa698721a7d6f",
      "tree": "72f297b0afe9675bb39e23da05cb4d986a47b1bd",
      "parents": [
        "d741c23288096e47928e64a2a27ed764487fe694"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 22 14:45:20 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 22 14:45:20 2023 +0000"
      },
      "message": "Remove redefinition of uapi constant added in R.\n\nTest: treehugger\nChange-Id: If0ef9c36b2f54eb59d222dedc6bf575d46c9db1d\n"
    },
    {
      "commit": "7107c582fa1948c3ccdaafa251dcd91ec0e847d1",
      "tree": "1a862503bc36aaa89393912deadb9be8bb316308",
      "parents": [
        "d741c23288096e47928e64a2a27ed764487fe694"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 22 14:33:47 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 22 14:33:47 2023 +0000"
      },
      "message": "Remove unused files.\n\nTest: treehugger\nChange-Id: I7ea71395b87eb12044fb3e7d19c171149f4cc90b\n"
    },
    {
      "commit": "87c90e7b65c734ba553a4655d0aee8c7dd939676",
      "tree": "1eac029b984dc34749cdcfc10165c18d9a6f270b",
      "parents": [
        "999efbef093214bf8302591a17a777439a0a85e6"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Sep 21 19:44:47 2023 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Sep 21 19:44:47 2023 -0700"
      },
      "message": "Add missing \u003cassert.h\u003e include\n\nBug: 175635923\nTest: m MODULES-IN-system-core-trusty\nChange-Id: I7790dde8eba948cf95cb14dd2b436c3f6f88765a\n"
    },
    {
      "commit": "999efbef093214bf8302591a17a777439a0a85e6",
      "tree": "6616b875be6adf37b6b92b597cc6093e796d1eb2",
      "parents": [
        "93377e99e2ffa260f1da5b53326d51ef19ab74f6"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Sep 21 17:51:52 2023 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Sep 21 17:52:29 2023 -0700"
      },
      "message": "Add missing \u003cfunctional\u003e and \u003cvector\u003e includes\n\nBug: 175635923\nTest: m MODULES-IN-system-core-libutils\nChange-Id: I065907a58a88723ae512f155dfde2d2fcb3fc322\n"
    },
    {
      "commit": "93377e99e2ffa260f1da5b53326d51ef19ab74f6",
      "tree": "3355257be6531da96a5d982e4af7eeabcebfef5d",
      "parents": [
        "53a71f6b187597f320155a6d5d1d7cf7eda9d213"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Sep 19 21:04:39 2023 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Sep 21 17:52:18 2023 -0700"
      },
      "message": "snapuserd_test: don\u0027t discard result of std::async\n\nstd::async returns a std::future whose destructor blocks until the\nasync function has completed, which defeats the purpose of using\nstd::async. The future needs to be kept alive to allow the function to\nrun concurrently.\n\nStarting in C++20, std::async marked [[nodiscard]] to help catch this\nmisuse. Upgrading libc++ adds the [[nodiscard]] attribute to\nstd::async, so fixing this bug is necessary to keep the code compiling\nafter libc++ is updated.\n\nBug: 175635923\nTest: treehugger\nTest: m \u0026\u0026 m snapuserd_test\nChange-Id: Id2e820248c2b6111aa843fb709e08a2c19677066\n"
    },
    {
      "commit": "9c562cf82b0e3e2300d80a19c02421ee0b85e63c",
      "tree": "fca02e57d746b509772c892f66234ad98e751bfd",
      "parents": [
        "fad3b2fbad5e34cc81551c11b9a54e954a69cc46",
        "f06e218e826039bf5113de5a773803fccfcac561"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Sep 21 17:33:28 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 21 17:33:28 2023 +0000"
      },
      "message": "Merge \"Delete unused DATA_MNT_POINT macro\" into main"
    },
    {
      "commit": "f06e218e826039bf5113de5a773803fccfcac561",
      "tree": "ade413053c55e35a6ace9a823ade95b415809e50",
      "parents": [
        "d741c23288096e47928e64a2a27ed764487fe694"
      ],
      "author": {
        "name": "Andrew Scull",
        "email": "ascull@google.com",
        "time": "Thu Sep 21 14:50:55 2023 +0000"
      },
      "committer": {
        "name": "Andrew Scull",
        "email": "ascull@google.com",
        "time": "Thu Sep 21 14:50:55 2023 +0000"
      },
      "message": "Delete unused DATA_MNT_POINT macro\n\nThe macros isn\u0027t used anywhere but was a distraction when tracking down\n/data mounting behaviour.\n\nTest: build\nChange-Id: Ie23574326cbebd7f515c8409e1dcb91a00cafc6f\n"
    },
    {
      "commit": "fad3b2fbad5e34cc81551c11b9a54e954a69cc46",
      "tree": "e460eb606e194fbf5f103f0eaec191cc520d6f37",
      "parents": [
        "19224ed58929209439679a757c1d97208c1bfb24",
        "43c87b3291e7d2d706c287d2b6c5770fb77e5175"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Sep 20 22:25:07 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 20 22:25:07 2023 +0000"
      },
      "message": "Merge \"Remove unnecessary keyword setting\" into main"
    },
    {
      "commit": "43c87b3291e7d2d706c287d2b6c5770fb77e5175",
      "tree": "e460eb606e194fbf5f103f0eaec191cc520d6f37",
      "parents": [
        "19224ed58929209439679a757c1d97208c1bfb24"
      ],
      "author": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Wed Sep 20 13:24:46 2023 -0700"
      },
      "committer": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Wed Sep 20 13:26:18 2023 -0700"
      },
      "message": "Remove unnecessary keyword setting\n\nThese 2 tests can run on aosp cf.\n\nBug: 300519349\nTest: atest presubmit check\nChange-Id: I8ee41c2abe464be2c2ee4537de5edf86308183aa\n"
    },
    {
      "commit": "19224ed58929209439679a757c1d97208c1bfb24",
      "tree": "e096b17b7c41a4a4558b3d4db452ddde3eb0b8a0",
      "parents": [
        "24636e4e30058e2d91c49016c378ef3221889940",
        "a95ed0aeaccf22439e1a6306f42446e48b6f2030"
      ],
      "author": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Wed Sep 20 20:20:35 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 20 20:20:35 2023 +0000"
      },
      "message": "Merge \"Move CF only tests to CF test mapping suite\" into main"
    },
    {
      "commit": "a95ed0aeaccf22439e1a6306f42446e48b6f2030",
      "tree": "40290c085dfba5caec38dad47790b79cd321376a",
      "parents": [
        "81400915efac29397f1390b9c8f2939b970a90db"
      ],
      "author": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Mon Sep 18 16:42:57 2023 -0700"
      },
      "committer": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Wed Sep 20 18:27:43 2023 +0000"
      },
      "message": "Move CF only tests to CF test mapping suite\n\nThis change doesn\u0027t modify presubmit coverage, the tests will still\nrun in the lab as test mapping suite, just on a different ATP test\nconfig that dedicated to tests can only run on CF (not aosp_cf), on\ngit_main branch.\n\nBug: 300519349\nTest: atest presubmit check\nChange-Id: Ib179c034dc58f8d8a763d374af0d103baf51343b\n"
    },
    {
      "commit": "24636e4e30058e2d91c49016c378ef3221889940",
      "tree": "973cf8f47cce53bfb7e12111e018a6ac3e48732c",
      "parents": [
        "cc8d909ccb96f85879028489afa44215ff434d4a",
        "2b1a0599c4530c34b57ba109917904451b55214e"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Wed Sep 20 17:02:45 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 20 17:02:45 2023 +0000"
      },
      "message": "Merge \"Don\u0027t depend on String8 cast to C string\" into main"
    },
    {
      "commit": "cc8d909ccb96f85879028489afa44215ff434d4a",
      "tree": "371cf9ff083d857a3c755b246c7e0c563f8d3d0b",
      "parents": [
        "d741c23288096e47928e64a2a27ed764487fe694",
        "6bc53ff7dd4d3da6a52dbda626db30aec7e67389"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 20 15:55:18 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 20 15:55:18 2023 +0000"
      },
      "message": "Merge \"arm64: update the \"minimum maximum\" comment.\" into main"
    },
    {
      "commit": "2b1a0599c4530c34b57ba109917904451b55214e",
      "tree": "1467c5c4f43c6a013498516d999cf4847b98c66b",
      "parents": [
        "d741c23288096e47928e64a2a27ed764487fe694"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Sep 12 15:26:15 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Wed Sep 20 15:11:54 2023 +0000"
      },
      "message": "Don\u0027t depend on String8 cast to C string\n\nBug: 295394788\nTest: m checkbuild\nChange-Id: I5b86ae56250d409a23ab3f2bc72b725bcf6ab23e\n"
    },
    {
      "commit": "78fb21c0f8dba54eb9a21f6c71923fd20fbb0511",
      "tree": "fea8bee9d299cc73b9c580bfb570a978855d33bb",
      "parents": [
        "2e6aee53163cd5e6e31599c7948b54a2458d2344"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Tue Sep 19 22:23:11 2023 -0700"
      },
      "committer": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Tue Sep 19 22:23:11 2023 -0700"
      },
      "message": "Removing extra includes\n\nRemoving includes we aren\u0027t using\n\nTest: th\nChange-Id: Ia5d00436f34138789e43008ecd73d65cbad84bde\n"
    },
    {
      "commit": "8aba6d022cddb153f144488a9fabd445b08afb71",
      "tree": "1701ebbe802e25e22965640ab685150b1c91c8fb",
      "parents": [
        "2e6aee53163cd5e6e31599c7948b54a2458d2344"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Tue Sep 19 16:59:13 2023 -0700"
      },
      "committer": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Tue Sep 19 17:01:23 2023 -0700"
      },
      "message": "Removing headers + using string\n\nRemoving some unused headers and swapping out std::string_literal to\nstrings\n\nTest: fastboot flashall\nChange-Id: I343272f4a678398a0446660a639c525e42e25891\n"
    },
    {
      "commit": "2e6aee53163cd5e6e31599c7948b54a2458d2344",
      "tree": "9311be634a37974624fe92617e7ed38eaba12621",
      "parents": [
        "1b52ac6efe17fa8199bad9627d03a241e76e9af1"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Tue Sep 19 16:14:50 2023 -0700"
      },
      "committer": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Tue Sep 19 16:17:52 2023 -0700"
      },
      "message": "Removing double delete from flashall\n\nFrom aosp/2475604 the functionality of deleting retrofit partitions\nwasn\u0027t added back correctly. aosp/837186 adds this logic in. We should\nonly have one delete that exists if the image is secondary and is\ndynamic.\n\nUnfortunately don\u0027t have a retrofit device to test on, but from an eye\ntest this logic seems to match the old functionality and should be\nworking\n\nTest: m fastboot\nChange-Id: I5481893ab1638541d21813efe1c4aab5219e1dcd\n"
    },
    {
      "commit": "d741c23288096e47928e64a2a27ed764487fe694",
      "tree": "5c6bdc8072012027d353e0c0d9e9dfd63014afd2",
      "parents": [
        "1b52ac6efe17fa8199bad9627d03a241e76e9af1",
        "b60befa806ffbdd413aa0c470b311d01d5fdbadd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 19 21:23:00 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 19 21:23:00 2023 +0000"
      },
      "message": "Merge \"riscv64: minor ASLR bits changes.\" into main"
    },
    {
      "commit": "6bc53ff7dd4d3da6a52dbda626db30aec7e67389",
      "tree": "82cfcc8098458f2e822e9ec7dbba2d8b7a706743",
      "parents": [
        "720007ba43d9c42ffb8ca463df9566e6496f2d9a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 19 18:40:03 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 19 20:08:41 2023 +0000"
      },
      "message": "arm64: update the \"minimum maximum\" comment.\n\nNoticed while looking at riscv64. Looks like a bug, but actually nothing\nwe can do about it now or for the foreseeable future.\n\nBug: https://github.com/google/android-riscv64/issues/45\nTest: treehugger\nChange-Id: I2be81b2fd7095df40958a1f641d7b89cf5a8e41d\n"
    },
    {
      "commit": "b60befa806ffbdd413aa0c470b311d01d5fdbadd",
      "tree": "109375a7743daec6f763b56e7369a5c52874d07b",
      "parents": [
        "720007ba43d9c42ffb8ca463df9566e6496f2d9a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 19 18:47:18 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 19 18:47:18 2023 +0000"
      },
      "message": "riscv64: minor ASLR bits changes.\n\nImprove the comment, and increase the \"minimum maximum\" to 24 --- we\nonly support 64-bit, and 64-bit never has less than 24 bits.\n\nBug: https://github.com/google/android-riscv64/issues/1\nTest: treehugger\nChange-Id: I478c7649aa19258352c908a449cabe12da94952c\n"
    },
    {
      "commit": "1b52ac6efe17fa8199bad9627d03a241e76e9af1",
      "tree": "4f4f8b4ccfda84f315476121273014ce9def2896",
      "parents": [
        "53a71f6b187597f320155a6d5d1d7cf7eda9d213",
        "cc44c374684ee2f54c6446e97b6f1060784153be"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Tue Sep 19 16:32:28 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 19 16:32:28 2023 +0000"
      },
      "message": "Merge \"Updating comments on cow layout\" into main"
    },
    {
      "commit": "53a71f6b187597f320155a6d5d1d7cf7eda9d213",
      "tree": "80dafb040a2980a01c06bf1e8c7575b0bf8372da",
      "parents": [
        "a10bfe1d1335cd60bc17cf1f29bf401d17452b61",
        "6ea36bd1e48597ea070727c6e0851b0591337657"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Sep 18 22:39:48 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 18 22:39:48 2023 +0000"
      },
      "message": "Merge \"Add static_assert to check sizeof off_t\" into main"
    },
    {
      "commit": "a10bfe1d1335cd60bc17cf1f29bf401d17452b61",
      "tree": "937fedceb0ae4aceae8ac612418e466dd384c96d",
      "parents": [
        "81400915efac29397f1390b9c8f2939b970a90db",
        "d2ad53cf81651ca53be4e8e8ab279ccb38ad1d69"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Mon Sep 18 21:30:29 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 18 21:30:29 2023 +0000"
      },
      "message": "Merge \"Add CowOperationV2\" into main"
    },
    {
      "commit": "6ea36bd1e48597ea070727c6e0851b0591337657",
      "tree": "8ff1c6981e0fe03f5cf55d90378c32fba3a26aa6",
      "parents": [
        "81400915efac29397f1390b9c8f2939b970a90db"
      ],
      "author": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Mon Sep 18 14:09:27 2023 -0700"
      },
      "committer": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Mon Sep 18 14:09:27 2023 -0700"
      },
      "message": "Add static_assert to check sizeof off_t\n\nAdd compile time flags which got dropped during refactoring.\n\nBug: 300178204\nTest: Build on 32-bit userspace\nChange-Id: I16be0973cb2cb2e174ff98c8b10fde27f997e4ab\nSigned-off-by: Akilesh Kailash \u003cakailash@google.com\u003e\n"
    },
    {
      "commit": "cc44c374684ee2f54c6446e97b6f1060784153be",
      "tree": "47c3f6fb169769757418efec66884280abe8e12b",
      "parents": [
        "d2ad53cf81651ca53be4e8e8ab279ccb38ad1d69"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Mon Sep 18 14:02:17 2023 -0700"
      },
      "committer": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Mon Sep 18 14:02:17 2023 -0700"
      },
      "message": "Updating comments on cow layout\n\nUpdating comments to match current format. Scratch space exists in\nbetween header and operation\n\nTest: th\nChange-Id: I2f86e9dc4078f03370cdc38918136c894c6ca484\n"
    },
    {
      "commit": "d2ad53cf81651ca53be4e8e8ab279ccb38ad1d69",
      "tree": "1cae7e0734be4ad061d779b467764bf593ae040c",
      "parents": [
        "55287774960666ce3d1b27ee593c70b3a582d062"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Thu Aug 31 10:42:54 2023 -0700"
      },
      "committer": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Mon Sep 18 12:47:59 2023 -0700"
      },
      "message": "Add CowOperationV2\n\nthis is going to replace the current version of CowOperation and will\nwork with writer v2 and parser v2. This will be the on disk format of\nthe cow, while CowOperation will be updated to be the in memory format\nof 15 bytes (implicitly will be the v3 version).\n\nTest: m libsnapshot\n\nTest: m libsnapshot\nChange-Id: Ibd00ef014a9fc11cdf2bad97c52462db8eef9502\n"
    },
    {
      "commit": "81400915efac29397f1390b9c8f2939b970a90db",
      "tree": "af0f37b48fda9cd01337f1993509332a2392e002",
      "parents": [
        "c5365ad49e68b1349b71b14758c1211551cc36d9",
        "0a59994c5a37ff3a035950f0f7d145c259d1ea38"
      ],
      "author": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Sun Sep 17 19:01:45 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Sep 17 19:01:45 2023 +0000"
      },
      "message": "Merge \"Compile with -D_FILE_OFFSET_BITS to support 32-bit userspace\" into main"
    },
    {
      "commit": "0a59994c5a37ff3a035950f0f7d145c259d1ea38",
      "tree": "af0f37b48fda9cd01337f1993509332a2392e002",
      "parents": [
        "c5365ad49e68b1349b71b14758c1211551cc36d9"
      ],
      "author": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Sun Sep 17 09:34:43 2023 -0700"
      },
      "committer": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Sun Sep 17 09:34:43 2023 -0700"
      },
      "message": "Compile with -D_FILE_OFFSET_BITS to support 32-bit userspace\n\nThis is to support when partition sizes are greater than 2GB (2^31)\non 32-bit userspace.\n\nBug: 300178204\nTest: OTA on device with 32-bit userspace + product partition \u003e 2GB\nChange-Id: I7074682352d8388ed410c684cb7cb0fa346ba24c\nSigned-off-by: Akilesh Kailash \u003cakailash@google.com\u003e\n"
    },
    {
      "commit": "c5365ad49e68b1349b71b14758c1211551cc36d9",
      "tree": "d5a567b5b97a073b35e104ab9dba51510b599397",
      "parents": [
        "f9cae2c965dc113062b18d48755f9a67ca8063e4",
        "7210b285c2a7c8220789e039c9b2a72a931224cc"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 15 22:16:48 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 15 22:16:48 2023 +0000"
      },
      "message": "Merge \"Revert \"Lock down String8|16.string() usage\"\" into main"
    },
    {
      "commit": "7210b285c2a7c8220789e039c9b2a72a931224cc",
      "tree": "1c44bd3cbf22bc567850b1e87063b5ad5c77e023",
      "parents": [
        "8b95a1248945b8ed565d44dda2500fc5a1a0f6fb"
      ],
      "author": {
        "name": "Devika Krishnadas",
        "email": "kdevika@google.com",
        "time": "Fri Sep 15 18:46:03 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 15 18:46:03 2023 +0000"
      },
      "message": "Revert \"Lock down String8|16.string() usage\"\n\nThis reverts commit 8b95a1248945b8ed565d44dda2500fc5a1a0f6fb.\n\nReason for revert: DroidMonitor: Test failure\n\nChange-Id: I09230ea7c3b80e1b4d277d3c6c6355a38f7bbc92\n"
    },
    {
      "commit": "f9cae2c965dc113062b18d48755f9a67ca8063e4",
      "tree": "9b43b7479b67385821a8a4dffa5797aa92303b5a",
      "parents": [
        "55287774960666ce3d1b27ee593c70b3a582d062",
        "8b95a1248945b8ed565d44dda2500fc5a1a0f6fb"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 15 14:17:49 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 15 14:17:49 2023 +0000"
      },
      "message": "Merge \"Lock down String8|16.string() usage\" into main"
    },
    {
      "commit": "55287774960666ce3d1b27ee593c70b3a582d062",
      "tree": "d5a567b5b97a073b35e104ab9dba51510b599397",
      "parents": [
        "358a982b7169104736a8025fa1799327fa124f4f",
        "19a6aa624174f5c21a2e57773c7e1faa5979117c"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Thu Sep 14 23:42:15 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 14 23:42:15 2023 +0000"
      },
      "message": "Merge \"Concatenate conditional\" into main"
    },
    {
      "commit": "8b95a1248945b8ed565d44dda2500fc5a1a0f6fb",
      "tree": "1c39efdd9ffd4bd297d5ff1c23c864501f3b6ae7",
      "parents": [
        "358a982b7169104736a8025fa1799327fa124f4f"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Aug 11 18:43:23 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Sep 14 18:37:52 2023 +0000"
      },
      "message": "Lock down String8|16.string() usage\n\nAll users should migrate to .c_str()\n\nBug: 295394788\nTest: make checkbuild\nChange-Id: Ic6295848cf3377e0bf5334448d5ed7ea53fae7ae\n"
    },
    {
      "commit": "358a982b7169104736a8025fa1799327fa124f4f",
      "tree": "1c44bd3cbf22bc567850b1e87063b5ad5c77e023",
      "parents": [
        "7f13bc4f473daadc335ed3fcff486cc690486623",
        "8b5c8477f915e8680257657042e64181104b9bda"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Sep 14 16:18:49 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 14 16:18:49 2023 +0000"
      },
      "message": "Merge \"Lock down String8.isEmpty() usage\" into main"
    },
    {
      "commit": "8b5c8477f915e8680257657042e64181104b9bda",
      "tree": "4ddc84114c0651e5419e2da72036f9f7acb64ad4",
      "parents": [
        "51e3b9cbca982d4917954e04755252b98937523b"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Mon Aug 14 18:20:02 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Sep 14 15:04:00 2023 +0000"
      },
      "message": "Lock down String8.isEmpty() usage\n\nAll users should migrate to .empty()\n\nBug: 295394788\nTest: make checkbuild\nChange-Id: I5ec7921b9cf70e6b0857e1087f141dce958d2587\n"
    },
    {
      "commit": "7f13bc4f473daadc335ed3fcff486cc690486623",
      "tree": "6576f7396075aa2304ff59105ada27377ec558b8",
      "parents": [
        "9603a82932944a7b1e97966a7ae198de3d78bf52",
        "b309292859edc1ec9b4df298e6e236067b2b6ed8"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Thu Sep 14 05:15:31 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 14 05:15:31 2023 +0000"
      },
      "message": "Merge \"Adding block sz to compressors\" into main"
    },
    {
      "commit": "19a6aa624174f5c21a2e57773c7e1faa5979117c",
      "tree": "490aba20e6c3e7eb0885bb64b972a9852c23ff1f",
      "parents": [
        "b309292859edc1ec9b4df298e6e236067b2b6ed8"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Wed Sep 13 14:28:54 2023 -0700"
      },
      "committer": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Wed Sep 13 22:14:19 2023 -0700"
      },
      "message": "Concatenate conditional\n\nMove two separate conditional checks to one in writer_v2\n\nTest: m libsnapshot\nChange-Id: Id70db313754b770e3fa091e9c127839b9f2a5138\n"
    },
    {
      "commit": "b309292859edc1ec9b4df298e6e236067b2b6ed8",
      "tree": "4b3d7fc5736e0543ceeee4709663f6c3ac687c15",
      "parents": [
        "f00639393a828d1adf81a84e4a83373ad83e7a52"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Tue Sep 12 13:34:07 2023 -0700"
      },
      "committer": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Wed Sep 13 22:14:19 2023 -0700"
      },
      "message": "Adding block sz to compressors\n\nAdding block sz to compressor classes to prepare for variable block size\ncompression\n\nTest: m libsnapshot\nChange-Id: I84db20c80c0f95188f79ccc73b5c30678bd75e78\n"
    },
    {
      "commit": "9603a82932944a7b1e97966a7ae198de3d78bf52",
      "tree": "bf5acda7f2b3537c05c6a9ffed0eb27471405eb5",
      "parents": [
        "7881073ec83d1c574a3d2204ecbf9a4864b4aa43",
        "37467f36658aa8ef82eef3e4674099ad6b140940"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Wed Sep 13 10:39:49 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 13 10:39:49 2023 +0000"
      },
      "message": "Merge \"fs_mgr: Refactor fs_mgr_overlayfs_already_mounted() to be more readable\" into main"
    },
    {
      "commit": "7881073ec83d1c574a3d2204ecbf9a4864b4aa43",
      "tree": "be9e5913708166db4fd945b81a5be8c9a227b009",
      "parents": [
        "0e0d682d8ee8723caed5ca547b3b1f532d79eca6",
        "244e581a31da30508648b1a118f864dae491935f"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Wed Sep 13 06:46:58 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 13 06:46:58 2023 +0000"
      },
      "message": "Merge \"fs_mgr: Use /proc/mounts to check if /cache is mounted\" into main"
    },
    {
      "commit": "0e0d682d8ee8723caed5ca547b3b1f532d79eca6",
      "tree": "f8632048396e59ee2aed01798c4f33e1a738b73d",
      "parents": [
        "771bda6c0b991542359e8348a762878c60fccbc3",
        "f58b009b7b31aca813092f104c84e91e7a8662b7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 12 21:27:50 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 12 21:27:50 2023 +0000"
      },
      "message": "Merge \"Disable warning which is not detecting problems.\" into main"
    },
    {
      "commit": "771bda6c0b991542359e8348a762878c60fccbc3",
      "tree": "985af9f73a5344228ac40a29b16bc68ede203b9b",
      "parents": [
        "8245afd47d9b355cce2034a5b6de957dcdafbb3e",
        "86c9ea8f861ec80399305f6f5aff422e45e0ac70"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Sep 12 20:43:20 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 12 20:43:20 2023 +0000"
      },
      "message": "Merge \"Implement android::String access methods that avoid C string cast\" into main"
    },
    {
      "commit": "f58b009b7b31aca813092f104c84e91e7a8662b7",
      "tree": "e2e3a01ab2e32eb9a5104a80388b9ea59beca44b",
      "parents": [
        "8245afd47d9b355cce2034a5b6de957dcdafbb3e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 12 13:01:10 2023 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 12 13:01:10 2023 -0700"
      },
      "message": "Disable warning which is not detecting problems.\n\nA clang update enabled -Wreorder-init-list by default. Since it doesn\u0027t\nprovide any benefit to the debuggerd code, disable the warning.\n\nTest: Builds without warnings.\nChange-Id: I75cfe064ba92c74312ba33f329b1364258eba06c\n"
    },
    {
      "commit": "86c9ea8f861ec80399305f6f5aff422e45e0ac70",
      "tree": "28ac269401a1b976bb2274b4e1289a14c0c22f8d",
      "parents": [
        "51e3b9cbca982d4917954e04755252b98937523b"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Sep 12 16:23:13 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Sep 12 17:25:29 2023 +0000"
      },
      "message": "Implement android::String access methods that avoid C string cast\n\nBug: 295394788\nTest: m checkbuild\nChange-Id: If25fd69319171e8c549fc8fcfd95a0819291d8e6\n"
    },
    {
      "commit": "8245afd47d9b355cce2034a5b6de957dcdafbb3e",
      "tree": "07996ac18920365999447b87370c6b8ab1f8f2b2",
      "parents": [
        "1b547892f62a84f3e3bfad56ac7865002db56a08",
        "a1853516ff0dc78b677eeafa792cdfa9e5d9a2ee"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Sep 12 14:02:13 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 12 14:02:13 2023 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"Drop all path-related methods from android::String8\"\"\"\"\" into main"
    },
    {
      "commit": "37467f36658aa8ef82eef3e4674099ad6b140940",
      "tree": "9da14cf69ed6ace158d6f385afa3ba3c145550be",
      "parents": [
        "244e581a31da30508648b1a118f864dae491935f"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Tue Sep 12 15:31:24 2023 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Tue Sep 12 16:08:30 2023 +0800"
      },
      "message": "fs_mgr: Refactor fs_mgr_overlayfs_already_mounted() to be more readable\n\nBug: 293695109\nTest: adb_remount test\nChange-Id: Idadd5b99e48fa601b1046aef533027ea6ba5c2f6\n"
    },
    {
      "commit": "244e581a31da30508648b1a118f864dae491935f",
      "tree": "8879bf1d60793511abdddee87ccc0a737537bad2",
      "parents": [
        "1b547892f62a84f3e3bfad56ac7865002db56a08"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Tue Sep 12 15:53:19 2023 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Tue Sep 12 16:08:30 2023 +0800"
      },
      "message": "fs_mgr: Use /proc/mounts to check if /cache is mounted\n\nThe fstab provided by the user/caller might not be the default fstab,\nwhich might not include the /cache mount entry. We should just use the\nprocfs mount info to determine if /cache is currently mounted.\n\nBug: 300036012\nTest: adb_remount test\nChange-Id: I4643d0a21ae21f3513f715de424f0be1fe64ff9e\n"
    },
    {
      "commit": "1b547892f62a84f3e3bfad56ac7865002db56a08",
      "tree": "80dd0b82b14fdbd390872407373816f8cb385fe9",
      "parents": [
        "a3b232c30cf828f691b89afdb0849b5fbf9738b7",
        "afe1163ade57699c1d251f0ae06100a2af42b952"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Mon Sep 11 21:06:32 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 21:06:32 2023 +0000"
      },
      "message": "Merge \"Adding test for IsDynamicPartition\" into main"
    },
    {
      "commit": "a3b232c30cf828f691b89afdb0849b5fbf9738b7",
      "tree": "bc9ada96c1768b8906695dd065665bef6cb723b5",
      "parents": [
        "d395f638facc1084d31619a7865feb6675d9dd5c",
        "2d4261ca4356839711b55397418bf63c334a9da3"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Mon Sep 11 21:06:02 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 21:06:02 2023 +0000"
      },
      "message": "Merge \"documenting optimized flash super\" into main"
    },
    {
      "commit": "a1853516ff0dc78b677eeafa792cdfa9e5d9a2ee",
      "tree": "4f2cb7f0c4ebb3c2859c9e207a0c7d5c56f0a79c",
      "parents": [
        "141255f30c35372bba80bfff9ac164f34e38784b"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Mon Sep 11 17:45:16 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 17:45:16 2023 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Drop all path-related methods from android::String8\"\"\"\"\n\nThis reverts commit 141255f30c35372bba80bfff9ac164f34e38784b.\n\nReason for revert: Attempt re-submit again\n\nChange-Id: I0e568fdf8f7a141ee3c5d54f68530ff478a47439\n"
    },
    {
      "commit": "d395f638facc1084d31619a7865feb6675d9dd5c",
      "tree": "d27ac8dc61ec84c33062bebdbf5dc8e47d2c60ee",
      "parents": [
        "6b78aac2cf1b7ee21ee25e8cd7427dd3ccb6f503",
        "141255f30c35372bba80bfff9ac164f34e38784b"
      ],
      "author": {
        "name": "Rhed Jao",
        "email": "rhedjao@google.com",
        "time": "Mon Sep 11 03:43:31 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 03:43:31 2023 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Drop all path-related methods from android::String8\"\"\"\" into main"
    },
    {
      "commit": "141255f30c35372bba80bfff9ac164f34e38784b",
      "tree": "56a797967f446fa576412a988e16ad196f166149",
      "parents": [
        "4b6a7c3940bc6d5e89e15179d8d49600e6dd4857"
      ],
      "author": {
        "name": "Rhed Jao",
        "email": "rhedjao@google.com",
        "time": "Mon Sep 11 02:05:58 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 02:05:58 2023 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Drop all path-related methods from android::String8\"\"\"\n\nThis reverts commit 4b6a7c3940bc6d5e89e15179d8d49600e6dd4857.\n\nReason for revert: b/299695302, b/299694769\n\nChange-Id: I89c6719d23446f2f9ce24e5b75d321538b580431\n"
    },
    {
      "commit": "6b78aac2cf1b7ee21ee25e8cd7427dd3ccb6f503",
      "tree": "5fcefe2ba8b78edf7c57cac7cf410180e6c3e6c3",
      "parents": [
        "b2b037d9f05eaef2c09fdd8ec905d75dc7ac2644",
        "bcae6b5e608278bad272a278f9ffd273fb465609"
      ],
      "author": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Sat Sep 09 07:03:40 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 09 07:03:40 2023 +0000"
      },
      "message": "Merge \"libsnapshot_cow: Prepare device to boot from pre-created snapshots\" into main"
    },
    {
      "commit": "bcae6b5e608278bad272a278f9ffd273fb465609",
      "tree": "5fcefe2ba8b78edf7c57cac7cf410180e6c3e6c3",
      "parents": [
        "b2b037d9f05eaef2c09fdd8ec905d75dc7ac2644"
      ],
      "author": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Fri Sep 08 17:01:15 2023 -0700"
      },
      "committer": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Fri Sep 08 23:09:45 2023 -0700"
      },
      "message": "libsnapshot_cow: Prepare device to boot from pre-created snapshots\n\nTwo new API\u0027s have been added:\n\n1: BootFromSnapshotsWithoutSlotSwitch: This will create a new marker\nwhich indicates first-stage init to mount the partitions off snapshots.\n\nWe need this marker as during boot, there are couple of places during\nmounting snapshots wherein the marker is used. However, there is no\nchange in the existing I/O path related to OTA.\n\n2: PrepareDeviceToBootWithoutSnapshot: This will delete the marker so\nthat subsequent reboot will not have the partitions mounted without the\nsnapshots.\n\nVTS tests covers both these API\u0027s. Additionally, when these\nmarkers are present, new OTA\u0027s cannot be installed. All these\nare covered in VTS tests.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nsnapshotctl: General flow to apply and revert pre-created snapshots\n\n1: To install the pre-created snapshots:\n\n$snapshotctl map-snapshots \u003cdirectory path containing snapshots patches\u003e\n\nNow the device is ready to boot from snapshots.\n\n2: After device reboots, partitions are mounted off the snapshots. There\n   is no snapshot-merge.\n\n3: In order to go back to previous build:\n\n$snapshotctl revert-snapshots\n\nNow the device is ready to boot from base build.\n\n4: After device reboots back to previous build, all the snapshot states\n   and COW images are removed.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAdditional commands:\n\nTo delete the pre-created snapshots:\n\n$snapshotctl delete-snapshots\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nTested it on Pixel 6 Pro between two builds which are ~24 hours apart.\n\n1: Creating snapshots on a linux-host - ~4-6 seconds\n2: Applying pre-created snapshots - ~10-15 seconds (includes intermediate\n   transfer of patches to the device). This depends on the size of snapshot patches.\n3: Device reboot - ~12-14 seconds.\n\nBug: 299011882\nTest: 1: Apply pre-created snapshots\n2: Reboot device: Verify new build\n3: Apply OTA when partitions are mounted of snapshots and verify OTA\n   fails.\n3: Revert-snapshot and reboot.\n4: Verify device goes back to base build.\n\nFull OTA on Pixel. vts_libsnapshot_test\n\nChange-Id: I36a72d973d8f70ae49773ebd45dd996fac22a4e3\nSigned-off-by: Akilesh Kailash \u003cakailash@google.com\u003e\n"
    },
    {
      "commit": "b2b037d9f05eaef2c09fdd8ec905d75dc7ac2644",
      "tree": "77f9394715d6db9d327e8b1bd22ec82db5f939b3",
      "parents": [
        "9cbae9d75bcb531a12d0a5b23088f396091690cd",
        "4b6a7c3940bc6d5e89e15179d8d49600e6dd4857"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 19:59:48 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 19:59:48 2023 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Drop all path-related methods from android::String8\"\"\" into main"
    },
    {
      "commit": "9cbae9d75bcb531a12d0a5b23088f396091690cd",
      "tree": "b4415901401e5e4f524eadbbf4d4af624882fbb6",
      "parents": [
        "acc7ff19f995a41e3033d841c2f0051b2fd25269",
        "adaf33026a32e336dd727cb4d03e9cd656c2869c"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 18:17:25 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 18:17:25 2023 +0000"
      },
      "message": "Merge \"Drop String8::std_string\" into main"
    },
    {
      "commit": "4b6a7c3940bc6d5e89e15179d8d49600e6dd4857",
      "tree": "4f2cb7f0c4ebb3c2859c9e207a0c7d5c56f0a79c",
      "parents": [
        "acc7ff19f995a41e3033d841c2f0051b2fd25269"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 17:11:39 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 11:03:59 2023 -0700"
      },
      "message": "Revert \"Revert \"Drop all path-related methods from android::String8\"\"\n\nThis reverts commit cff2e40d19113fa7ed57fedae072ad605cef1be7.\n\nReason for revert: Attempt re-submit\n\nChange-Id: I8802b519e4ae3046858b854815ba580c7a6b965d\n"
    },
    {
      "commit": "acc7ff19f995a41e3033d841c2f0051b2fd25269",
      "tree": "56a797967f446fa576412a988e16ad196f166149",
      "parents": [
        "cc64ed986547fccac4a15e6bd38d99d357e426a6",
        "cff2e40d19113fa7ed57fedae072ad605cef1be7"
      ],
      "author": {
        "name": "Ross Kettleson",
        "email": "kettro@google.com",
        "time": "Fri Sep 08 17:09:54 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 17:09:54 2023 +0000"
      },
      "message": "Merge \"Revert \"Drop all path-related methods from android::String8\"\" into main"
    },
    {
      "commit": "cff2e40d19113fa7ed57fedae072ad605cef1be7",
      "tree": "87e277e6e9161309c318dd4f35d555fc800c45b0",
      "parents": [
        "b9dc1c2991de9ca87bdbf00c413b7f2bb4477fe2"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 17:08:39 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 17:08:39 2023 +0000"
      },
      "message": "Revert \"Drop all path-related methods from android::String8\"\n\nThis reverts commit b9dc1c2991de9ca87bdbf00c413b7f2bb4477fe2.\n\nReason for revert: http://b/299624573\n\nChange-Id: I0d5993295df65ec31c180b6b5a76fbe939891f45\n"
    },
    {
      "commit": "adaf33026a32e336dd727cb4d03e9cd656c2869c",
      "tree": "252c0662fc055cd161c7cb8f43be23070684d838",
      "parents": [
        "cc64ed986547fccac4a15e6bd38d99d357e426a6"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 09:51:24 2023 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 09:51:24 2023 -0700"
      },
      "message": "Drop String8::std_string\n\nThis method was preserved under assumption it would be baked into many\nprebuilts, but since it\u0027s inline, there should be no linkage to libutils\n- thus, should be safe to remove anyway.\n\nBug: 35363681\nBug: 295394788\nTest: treehugger\nChange-Id: I59964935600e9e786424136177bfc8a70bebec67\n"
    },
    {
      "commit": "cc64ed986547fccac4a15e6bd38d99d357e426a6",
      "tree": "de6deb8c7196b574e151e7fb88c31df5ab9d3f3d",
      "parents": [
        "f3dd1c9389328d6c918e0142d13f29f97f9dacc8",
        "b9dc1c2991de9ca87bdbf00c413b7f2bb4477fe2"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 14:47:14 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 14:47:14 2023 +0000"
      },
      "message": "Merge \"Drop all path-related methods from android::String8\" into main"
    },
    {
      "commit": "f3dd1c9389328d6c918e0142d13f29f97f9dacc8",
      "tree": "56a797967f446fa576412a988e16ad196f166149",
      "parents": [
        "66b68dde923892be447e48355095dbf74be8ea70",
        "32f69204046c24c15ff2d2bac7122cbfd5896596"
      ],
      "author": {
        "name": "Hongguang Chen",
        "email": "hgchen@google.com",
        "time": "Fri Sep 08 06:06:50 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 06:06:50 2023 +0000"
      },
      "message": "Merge \"Only restart media.tuner when it\u0027s running\" into main"
    },
    {
      "commit": "32f69204046c24c15ff2d2bac7122cbfd5896596",
      "tree": "56a797967f446fa576412a988e16ad196f166149",
      "parents": [
        "66b68dde923892be447e48355095dbf74be8ea70"
      ],
      "author": {
        "name": "Hongguang Chen",
        "email": "hgchen@google.com",
        "time": "Thu Sep 07 21:15:00 2023 -0700"
      },
      "committer": {
        "name": "Hongguang Chen",
        "email": "hgchen@google.com",
        "time": "Fri Sep 08 04:19:34 2023 +0000"
      },
      "message": "Only restart media.tuner when it\u0027s running\n\nFix: 287520719\nTest: Kill system_server on TV device w/o tuner. media.tuner is not restarted.\nChange-Id: I13006f16746a12c33960feca1288aa17ef2ed9c9\n"
    },
    {
      "commit": "b9dc1c2991de9ca87bdbf00c413b7f2bb4477fe2",
      "tree": "86cbcf3728bfe7451ad67791ebfaccad4d46cc07",
      "parents": [
        "66b68dde923892be447e48355095dbf74be8ea70"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Aug 22 20:45:21 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 08 03:07:52 2023 +0000"
      },
      "message": "Drop all path-related methods from android::String8\n\nMove them to androidfw and aapt, the last users.\n\nBug: 295394788\nTest: m checkbuild\nChange-Id: I7268b88d11bf221f93efed06cfd1ee65449a2421\n"
    },
    {
      "commit": "66b68dde923892be447e48355095dbf74be8ea70",
      "tree": "87e277e6e9161309c318dd4f35d555fc800c45b0",
      "parents": [
        "f00639393a828d1adf81a84e4a83373ad83e7a52",
        "e72b3ad20409ed6e31d376c497089cdc4c076eb5"
      ],
      "author": {
        "name": "Chun-Wei Wang",
        "email": "wangchun@google.com",
        "time": "Fri Sep 08 02:59:32 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 02:59:32 2023 +0000"
      },
      "message": "Merge \"Disallow fastboot to modify locked DSU\" into main"
    },
    {
      "commit": "f00639393a828d1adf81a84e4a83373ad83e7a52",
      "tree": "a61cc5ec1e8ef796ffd63411740df61ff50c729f",
      "parents": [
        "5b3f7c32831233689ba198b94f015952008a16ff",
        "a8e259db663e6308d6d9fcfd8db95f84346f2c68"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 07 20:39:36 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 07 20:39:36 2023 +0000"
      },
      "message": "Merge \"Remove stray newline from err() call.\" into main"
    },
    {
      "commit": "5b3f7c32831233689ba198b94f015952008a16ff",
      "tree": "bbae9e2a8ff2b049c9a4ff9c2f88341ab07a20a9",
      "parents": [
        "7d8ac7f1227782b858bc4a4c2bc8b77fc169bacc",
        "670f983f45906849ed64ed6ac4387a1207862a55"
      ],
      "author": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Thu Sep 07 20:15:59 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 07 20:15:59 2023 +0000"
      },
      "message": "Merge \"Reland exporting create_snapshot\" into main"
    },
    {
      "commit": "a8e259db663e6308d6d9fcfd8db95f84346f2c68",
      "tree": "1762e49fba0255242503406a11159a45b12d1bac",
      "parents": [
        "720007ba43d9c42ffb8ca463df9566e6496f2d9a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 07 18:52:11 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 07 19:30:31 2023 +0000"
      },
      "message": "Remove stray newline from err() call.\n\nerr() does this itself, and includes strerror() too.\n\nTest: treehugger\nChange-Id: I0e844f9cc3992e80a302b2f3ca1084b165582a9b\n"
    },
    {
      "commit": "670f983f45906849ed64ed6ac4387a1207862a55",
      "tree": "bbae9e2a8ff2b049c9a4ff9c2f88341ab07a20a9",
      "parents": [
        "7d8ac7f1227782b858bc4a4c2bc8b77fc169bacc"
      ],
      "author": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Thu Sep 07 09:38:38 2023 -0700"
      },
      "committer": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Thu Sep 07 17:05:50 2023 +0000"
      },
      "message": "Reland exporting create_snapshot\n\nPrevious attempt: aosp/2743815\nDisabled on windows \u0026 mac.\n\nTest: presubmit, (previously failed build: https://android-build.googleplex.com/builds/abtd/run/L06100000962955289?referrer\u003demail now passing)\nBug: 290951369\nChange-Id: I3d8084c13d843ea5919e3b50a0513faf386ccfed\n"
    },
    {
      "commit": "7d8ac7f1227782b858bc4a4c2bc8b77fc169bacc",
      "tree": "39579ab6a5d8a556735ab5880ea7a6c7169ff319",
      "parents": [
        "b03378fe7113746641f480e198fb3bd3173aab5d",
        "1fff690c180a06e76e2e89b08cf20c6ef8c5efcd"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Thu Sep 07 16:12:30 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 07 16:12:30 2023 +0000"
      },
      "message": "Merge \"Adding testing for optimized flash super\" into main"
    },
    {
      "commit": "b03378fe7113746641f480e198fb3bd3173aab5d",
      "tree": "54dd1d2cae4aeced418f6ba341b1c28d9c2e036d",
      "parents": [
        "2095008f32cf9e03f450099b95e152c184b27e96",
        "a4d34c5715ca554edfc67471ece5b52142a85d29"
      ],
      "author": {
        "name": "Marvin Ramin",
        "email": "marvinramin@google.com",
        "time": "Thu Sep 07 09:11:57 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 07 09:11:57 2023 +0000"
      },
      "message": "Merge \"Revert \"Export create_snapshot to sdk targets\"\" into main"
    },
    {
      "commit": "a4d34c5715ca554edfc67471ece5b52142a85d29",
      "tree": "54dd1d2cae4aeced418f6ba341b1c28d9c2e036d",
      "parents": [
        "bf72b25a07eeb24f4467d397dfeb2d94265f95b6"
      ],
      "author": {
        "name": "Marvin Ramin",
        "email": "marvinramin@google.com",
        "time": "Thu Sep 07 08:14:26 2023 +0000"
      },
      "committer": {
        "name": "Marvin Ramin",
        "email": "marvinramin@google.com",
        "time": "Thu Sep 07 09:03:25 2023 +0000"
      },
      "message": "Revert \"Export create_snapshot to sdk targets\"\n\nThis reverts commit bf72b25a07eeb24f4467d397dfeb2d94265f95b6.\n\nReason for revert: DroidMonitor: Culprit for b/299411079\n\nChange-Id: I9d46abcbcc81d43fde23d4431b6757d3520d4b2c\n"
    },
    {
      "commit": "e72b3ad20409ed6e31d376c497089cdc4c076eb5",
      "tree": "290c5507cb2c9758f98d50e6b909ad63ee04f328",
      "parents": [
        "158a26da4a4918b89fdaeeb158ae5d7bb1debcd6"
      ],
      "author": {
        "name": "Chun-Wei Wang",
        "email": "wangchun@google.com",
        "time": "Thu Sep 07 09:53:11 2023 +0800"
      },
      "committer": {
        "name": "Chun-Wei Wang",
        "email": "wangchun@google.com",
        "time": "Thu Sep 07 15:18:23 2023 +0800"
      },
      "message": "Disallow fastboot to modify locked DSU\n\nThis enhances the security requirement by only allowing\nthe owner app to change a locked DSU.\n\nBug: 277691885\nBug: 296985785\nTest: 1. ensure device is OEM locked\n      2. adb shell am start-activity \\\n         -n com.android.dynsystem/com.android.dynsystem.VerificationActivity \\\n         -a android.os.image.action.START_INSTALL \\\n         --el KEY_USERDATA_SIZE 2147483648 \\\n\t --es KEY_DSU_SLOT foo.lock\n      3. adb reboot fastboot\n      4. `fastboot gsi disable|wipe` should be blocked\n\nChange-Id: I1a0cb8a074412468d16043ddf4101fbb76490115\n"
    },
    {
      "commit": "2095008f32cf9e03f450099b95e152c184b27e96",
      "tree": "c4e72143b7bb1e98cb695b8fe99c266eea7a2a71",
      "parents": [
        "51e3b9cbca982d4917954e04755252b98937523b",
        "bf72b25a07eeb24f4467d397dfeb2d94265f95b6"
      ],
      "author": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Thu Sep 07 00:20:51 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 07 00:20:51 2023 +0000"
      },
      "message": "Merge \"Export create_snapshot to sdk targets\" into main"
    },
    {
      "commit": "bf72b25a07eeb24f4467d397dfeb2d94265f95b6",
      "tree": "c4e72143b7bb1e98cb695b8fe99c266eea7a2a71",
      "parents": [
        "51e3b9cbca982d4917954e04755252b98937523b"
      ],
      "author": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Wed Sep 06 11:10:03 2023 -0700"
      },
      "committer": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Wed Sep 06 11:10:03 2023 -0700"
      },
      "message": "Export create_snapshot to sdk targets\n\nSimilar to fastboot binaries. This will ease the\nautomation to use this tool\n\nTest: presubmit\nBug: 290951369\nChange-Id: I5c879acc7cdecbafebfa074ef76034403cb0cd72\n"
    },
    {
      "commit": "51e3b9cbca982d4917954e04755252b98937523b",
      "tree": "54dd1d2cae4aeced418f6ba341b1c28d9c2e036d",
      "parents": [
        "15956777be1682544532bc797ed47126db048d22",
        "9ccb84a8bac43271055786d26da54dca4b58121e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Sep 06 09:02:07 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 06 09:02:07 2023 +0000"
      },
      "message": "Merge \"snapshotctl: Create and write pre-created snapshots\" into main"
    },
    {
      "commit": "15956777be1682544532bc797ed47126db048d22",
      "tree": "6b11b35798bb813027003f0a35628bb116858afd",
      "parents": [
        "3c4123065410c700dc924796779f5c0559ab0ad1",
        "e3bda36e0be2ad690ec48666d56eefcb26489378"
      ],
      "author": {
        "name": "Andrei Diea",
        "email": "adiea@google.com",
        "time": "Wed Sep 06 07:11:37 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 06 07:11:37 2023 +0000"
      },
      "message": "Merge \"debuggerd: add socksetopt to seccomp policy\" into main"
    },
    {
      "commit": "9ccb84a8bac43271055786d26da54dca4b58121e",
      "tree": "33dff6e2adb6ce819b508140f93641460ab6df9a",
      "parents": [
        "3c4123065410c700dc924796779f5c0559ab0ad1"
      ],
      "author": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Mon Sep 04 16:19:05 2023 -0700"
      },
      "committer": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Wed Sep 06 06:02:51 2023 +0000"
      },
      "message": "snapshotctl: Create and write pre-created snapshots\n\nExtend snapshotctl binary on the device\nto create and apply pre-created snapshots.\n\nsnapshotctl map-snapshots \u003cdirectory-where snapshot patches are present\u003e\n\n1: snapshotctl creates the block device based on the size of the\n       snapshot patches.\n\n2: snapshotctl will copy the data to the block device.\n\nunmap and delete snapshots will cleanup.\n\nNo change in libsnapshot library except with minor refactoring.\n\nThis patch doesn\u0027t yet prepare the device to reboot from these\nsnapshots.\n\nOn Pixel 6 Pro, applying pre-created snapshots for all partitions\ntakes ~3 seconds wherein the delta between two builds are 24 hours apart.\n\nBug: 299011882\n\nTest: snapshotctl map-snapshots /data/test-snapshots/\nsnapshotctl unmap-snapshots\nsnapshotctl delete-snapshots\n\nChange-Id: I98a0fbd9cf7234c2188bad85cdd092ded8997710\nSigned-off-by: Akilesh Kailash \u003cakailash@google.com\u003e\n"
    },
    {
      "commit": "3c4123065410c700dc924796779f5c0559ab0ad1",
      "tree": "54a22bce00961d7e07bade36d3cfe38fb22798bf",
      "parents": [
        "158a26da4a4918b89fdaeeb158ae5d7bb1debcd6",
        "214d62e3f79a80e1c8e1cd466f2b2412f56e2894"
      ],
      "author": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Wed Sep 06 06:02:39 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 06 06:02:39 2023 +0000"
      },
      "message": "Merge \"create_snapshot: Create snapshot patch comparing two partition images\" into main"
    },
    {
      "commit": "158a26da4a4918b89fdaeeb158ae5d7bb1debcd6",
      "tree": "53394bef6763ee4f151e761252476fbe6a37d3c7",
      "parents": [
        "c2b4411b439a3295048f60a88f96b8765156764c",
        "50f03fd58e4cfd75cbdde1d779893f66485e4a49"
      ],
      "author": {
        "name": "Thiébaud Weksteen",
        "email": "tweek@google.com",
        "time": "Wed Sep 06 04:16:41 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 06 04:16:41 2023 +0000"
      },
      "message": "Merge \"Revert \"Use Apex sepolicy if it\u0027s available\"\" into main"
    },
    {
      "commit": "c2b4411b439a3295048f60a88f96b8765156764c",
      "tree": "28a22b5eca9d8300d205fa45377b795b6f28b9b2",
      "parents": [
        "62051237a28d3ba858e28072d87112a3995f83f9",
        "e474f21a45b5e2b8973ffd378b119bf378cd0282"
      ],
      "author": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Wed Sep 06 02:43:32 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 06 02:43:32 2023 +0000"
      },
      "message": "Merge \"Check the ABI of libutils for vendor and product only\" into main"
    },
    {
      "commit": "50f03fd58e4cfd75cbdde1d779893f66485e4a49",
      "tree": "248c00bcfd83a434b34a6d4efe23d8bb69e48f92",
      "parents": [
        "62051237a28d3ba858e28072d87112a3995f83f9"
      ],
      "author": {
        "name": "Thiébaud Weksteen",
        "email": "tweek@google.com",
        "time": "Wed Sep 06 10:52:49 2023 +1000"
      },
      "committer": {
        "name": "Thiébaud Weksteen",
        "email": "tweek@google.com",
        "time": "Wed Sep 06 10:52:49 2023 +1000"
      },
      "message": "Revert \"Use Apex sepolicy if it\u0027s available\"\n\nThis reverts commit baeece6d0c0ff72f667318ec365e5281955c8f42.\n\nTest: boot aosp_cf_x86_64_phone-userdebug\nBug: 297794885\nChange-Id: I0515bc30eba42589c407deb587684b4da011aead\n"
    },
    {
      "commit": "214d62e3f79a80e1c8e1cd466f2b2412f56e2894",
      "tree": "8999d3ad88f5ad403d3e6fc4b8bcec3a0f6729a3",
      "parents": [
        "a5c51c9cee2ce0ce324ac05c4a461a611fe274e2"
      ],
      "author": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Mon Sep 04 00:47:19 2023 -0700"
      },
      "committer": {
        "name": "Akilesh Kailash",
        "email": "akailash@google.com",
        "time": "Tue Sep 05 15:42:11 2023 -0700"
      },
      "message": "create_snapshot: Create snapshot patch comparing two partition images\n\nThis is a host based tool wherein it compares two Android images and generates snapshot patches which are similar to Android OTA format.\n\nThere are few advantages:\n\n1: All the computation of snapshot logic is pushed onto the host.\n2: Each partition can have different compression algorithm.\n3: All the libsnapshot_cow changes can be tested very quickly.\n\nHere is the test run. This compares two builds which are 24 hours apart.\n\n```\n\ncreate_snapshot --source\u003d$ANDROID_PRODUCT_OUT/system.img --target\u003d./images/system.img --compression\u003d\"zstd\" \u0026\ncreate_snapshot --source\u003d$ANDROID_PRODUCT_OUT/product.img --target\u003d./images/product.img --compression\u003d\"lz4\" \u0026\ncreate_snapshot --source\u003d$ANDROID_PRODUCT_OUT/vendor.img --target\u003d./images/vendor.img \u0026\ncreate_snapshot --source\u003d$ANDROID_PRODUCT_OUT/system_ext.img --target\u003d./images/system_ext.img --compression\u003d\"gz\" \u0026\ncreate_snapshot --source\u003d$ANDROID_PRODUCT_OUT/vendor_dlkm.img --target\u003d./images/vendor_dlkm.img \u0026\n\necho \"Waiting for snapshot patch creation\"\nwait $(jobs -p)\necho \"Snapshot patch creation completed\"\n```\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWaiting for snapshot patch creation\nSnapshot patch: vendor_dlkm.patch created successfully\nSnapshot patch: vendor.patch created successfully\nSnapshot patch: system_ext.patch created successfully\nSnapshot patch: product.patch created successfully\nSnapshot patch: system.patch created successfully\nSnapshot patch creation completed\n\nreal\t0m3.848s\nuser\t0m14.239s\nsys\t0m8.045s\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nIt takes ~4 seconds to generate the snapshot patches on the host. Snapshot patches are named as \u003cpartition-name\u003e.patch.\n\nBug: 299011882\nTest: create_snapshot between two builds as mentioned above.\nChange-Id: Ic87dd3349a866b5626fa03f1f879f417a8116cc2\nSigned-off-by: Akilesh Kailash \u003cakailash@google.com\u003e\n"
    }
  ],
  "next": "62051237a28d3ba858e28072d87112a3995f83f9"
}
