)]}'
{
  "log": [
    {
      "commit": "7cebf835f310650f67b254295a685918681656fc",
      "tree": "daf485447fccb691750149c465b2c629adf6e305",
      "parents": [
        "a4110def5cec22306313a34fff64b5810c9b1792"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 12 14:25:41 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 12 15:52:14 2020 -0700"
      },
      "message": "Various coverage improvements.\n\nMostly from extra test cases, but also:\n\n* Move the fgets size \u003c 0 assertion into fgets.\n\n* Use ELF aliases for strtoq/strtouq rather than duplicating code.\n\n* Don\u0027t check uname() succeeded, since it can\u0027t fail.\n\nTest: treehugger\nChange-Id: I2e6b3b88b0a3eb16bd68be68b9bc9f40d8043291\n"
    },
    {
      "commit": "b9fa04d805912d58d920ccd1a7af77daf81293e7",
      "tree": "b477bb49353e0881addd5941ac3e13ab48deb6d5",
      "parents": [
        "b5f301eaafdc23f05fe5558fb0406a0ab04fc807"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Jul 10 10:40:21 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Jul 10 10:42:16 2020 -0700"
      },
      "message": "Don\u0027t test pw_shell for old vendor images\n\nR GSI on P product tests fail since pw_shell has changed.  This value\nhas no practical use on Android, so we ignore testing it for older\nvendor images.\n\nBug: 160937247\nTest: this test does/doesn\u0027t run appropriately\nChange-Id: Ie485bd019b3826e71ad19131effcbb002f888d52\n"
    },
    {
      "commit": "0816c9050f465d85e4a6b3c0bc7ab84b6c852a2e",
      "tree": "89ddcaef1a009ea08f6a761171bc4a08555dc37e",
      "parents": [
        "6f2e810198b4529ae179d3e662d3cf7ce76ae829"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Apr 10 13:00:42 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Apr 10 13:00:42 2020 -0700"
      },
      "message": "Tighten pwd/grp iteration tests.\n\nPreviously, these tests would fail if vendors modified\nprivate/android_filesystem_config.h to add their custom AIDs, but we\ndid not have a good alternative that vendors could use, so we added a\nspecial case to ignore the vendor AID ranges.\n\nWe\u0027ve had a proper solution since P for this range, so it\u0027s long past\ntime to remove this special case.\n\nTest: add system, vendor, odm, product, and system_ext AIDs to\n      config.fs, ensure that they\u0027ve taken effect on cuttlefish,\n      pass these unit tests\nChange-Id: I6c9c2bf5e895c25805222da018188b269777171c\n"
    },
    {
      "commit": "6f2e810198b4529ae179d3e662d3cf7ce76ae829",
      "tree": "72a2c601ca27d0b6a7405b414f53cff435bd9192",
      "parents": [
        "753994ab5aa5488966888eee3086be1535055c18"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Apr 10 10:50:09 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Apr 10 11:46:03 2020 -0700"
      },
      "message": "Cleanup some trivial TODOs.\n\n1) \"fix the system properties design\" is written for the old protocol,\n   so we\u0027ve already changed the design.  There are no other further\n   planned changes.\n2) \"don\u0027t drag in all the macros, just the types.\" is not likely to\n   happen or be particularly impactful.\n3) \"Find a location suitable for these functions ...\" is refering to\n   legacy code.  More likely that this code will be removed before we\n   find a serious reason to fix this TODO.\n4) \"(73062966) We still don\u0027t have a good way ...\" is stale; we fixed\n   this bug and added the appropriate mechanism.\n\nTest: n/a\nChange-Id: I23991692cdeb81ad00844a6a1680900ff384208b\n"
    },
    {
      "commit": "95c6cd753f028b1afc0c6a800a3dd6bd85a5a6a0",
      "tree": "3d785e53e88c0b5864a8129c7b13e31f5d0e9caf",
      "parents": [
        "508d270886e90fac23ce51f81864d009307f13ae"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 20 13:26:14 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 20 13:26:14 2019 -0800"
      },
      "message": "Stop using the __ANDROID_API_x__ constants.\n\nHistorically we\u0027ve made a few mistakes where they haven\u0027t matched the\nright number. And most non-Googlers are much more familiar with the\nnumbers, so it seems to make sense to rely more on them. Especially in\nheader files, which we actually expect real people to have to read from\ntime to time.\n\nTest: treehugger\nChange-Id: I0d4a97454ee108de1d32f21df285315c5488d886\n"
    },
    {
      "commit": "777b34dcc3e1a13ddcff75ed533a740fd262a4a9",
      "tree": "446292463b481d20f44b5878a2cc342f88202fbc",
      "parents": [
        "78977053a715113c9a0d0d7f44193025e4c1312e"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Sun Feb 17 09:38:23 2019 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Jul 11 10:31:02 2019 -0700"
      },
      "message": "Load /etc/{passwd,group} from all partitions\n\nNote that unlike the oem_ range that is used for the vendor\npartitions, we do not create oem_\u003cn\u003e entries for these new reserved\nranges; they will only appear in getpwent()/getgrent() if there is an\nentry in the corresponding passwd/group file.\n\nBug: 73062966\nTest: can load AIDs from partitions other than vendor\nTest: bionic-unit-tests\nChange-Id: Ifcbbf202894adff948eaaba2a59e25c993611140\n"
    },
    {
      "commit": "6b116d1bbff7a422557886484db54d705a26d2e8",
      "tree": "f90012c32573c71d7e1e181baa1ba14f3fb2cad3",
      "parents": [
        "c3c492965995a2bd5cfe12846f5038c4d7d2c91e"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Apr 25 10:34:07 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed May 29 15:54:50 2019 -0700"
      },
      "message": "Make \u0027app\u0027 users/groups more accurate\n\nIn an attempt to make bionic\u0027s reporting of users and groups more\naccurate, this change makes the user / group functions do the\nfollowing:\n\n1) Fail to query a uid/gid for a secondary user when the uid/gid\n   doesn\u0027t exist.  Currently bionic would return successfully but with\n   a empty string for the name.\n2) Fail to query a platform uid/gid, except a limited pre-allocated\n   set for a secondary user, as these are not used by second users.\n3) Fail to query uids for all users for the GID-only app ranges:\n   CACHE_GID, EXT_GID, EXT_CACHE_GID, SHARED_GID.\n4) Fail to query gids in SHARED_GID range for secondary users, as\n   these GIDs are only allocated for the first user.\n5) Use \"u#_a#_ext\" and u#_a#_ext_cache\" for EXT_GID and EXT_CACHE_GID\n   ranges.  This both allows querying based on these names and\n   returning these names for the appropriate uids/gids.\n\nThis also consolidates the tests for better readability.\n\nTest: these unit tests, boot\n\nChange-Id: I59a1af0792e7806d423439582e56ce7f9f801c94\n"
    },
    {
      "commit": "c57c5bdb7f8c46e8ed8621cfdd400f6263c59197",
      "tree": "b17c8c66479542bb4ece09f81ae616b3e91bf605",
      "parents": [
        "84c29cc446e580cdfcb3e104f8c052d57d599120"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue May 14 17:02:28 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed May 15 15:49:34 2019 -0700"
      },
      "message": "pwd/grp: fix pwd _r reentrancy, new tests, clean up\n\ngetpwnam_r() and getpwuid_r() clobber the storage used by getpwnam()\nand getpwuid().  This isn\u0027t likely to be a big issue, but since we do\nthis right for the group functions, fix this as well as add a test.\nBoth use more space in buf than is actually required, but well below\ntheir sysconf() suggested values, so we accept that to keep the code\nconcise.\n\nAdd tests for dealing with unaligned input buffers, particularly for\ngetgrnam_r() and getgrgid_r(), as they require alignment but this\nwasn\u0027t being tested.\n\nRefactor common initialization code for both passwd and group state\nstructs.\n\nRemove extraneous null pointer checks; the values they were testing\nwere offsets of a previous pointer, so guaranteed to never actually be\nnull.  If the underlying pointer is actually null, we\u0027re beyond repair\nanyway, so accept that we\u0027ll crash.\n\nTest: pwd/grp unit tests\n\nChange-Id: I60c4d00e9ab3cf55daf8314c5029fd914025b696\n"
    },
    {
      "commit": "bcaa454d32e1b4ccf92467bb263d627695ac9a5b",
      "tree": "65d7d4c493242ecb51bfe1796f133b32538de514",
      "parents": [
        "ff16c0b89b7297bc70353f60afac9bb93d6b0087"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 08 15:20:23 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 10:26:39 2019 -0700"
      },
      "message": "bionic tests: use GTEST_SKIP.\n\nAlso be a bit more to the point in our messages, focusing on \"why\" not\n\"what\".\n\nTest: ran tests\nChange-Id: I297806c7a102bd52602dcd2fcf7a2cd34aba3a11\n"
    },
    {
      "commit": "9da8ff1270c18665c6267d7862f415b04d567aab",
      "tree": "9087657cf0526e92d57e240b8147cb1f4b3301e3",
      "parents": [
        "f84d0a95bd237e56c6aa7cbdce786ef611c53254"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Feb 19 13:23:49 2019 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Feb 19 13:24:59 2019 -0800"
      },
      "message": "Waive AID Range check for devices through Q\n\nWe still don\u0027t have a good way to create vendor AIDs in the system or\nother non-vendor partitions, therefore we keep this check disabled.\n\nBug: 73062966\nTest: treehugger\nChange-Id: I7aed425899d6ec11a22702ccec82476eacdbc790\n"
    },
    {
      "commit": "f9d2299ee2c05477f72dd137f4abddb68b91d8b2",
      "tree": "aba2725b8e73ca67fec1a98b7468f89bb98b3afb",
      "parents": [
        "ca305a39e50d92dc572f50f00262b3dbb0dece9d"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Wed Jan 16 16:25:40 2019 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Jan 17 13:36:47 2019 +0100"
      },
      "message": "Update getpwnam() tests to correctly handle new app zygote uids.\n\nThe UID range [90000..98999] is used for isolated processes that are\nspawned from an application zygote. Otherwise they are identical to\nregular isolated processes in the [99000..99999] range. Fix the tests to\nmatch the new range.\n\nBug: 111434506\nTest: atest bionic-unit-tests-static\nChange-Id: Id0352f2cf0d21edb04d95f01ea2548e95b62317a\n"
    },
    {
      "commit": "5d9312bb139ad8501047c60be7b024dd38c1f0bf",
      "tree": "37cfcbf656d2ee13cd3b39801a23e46886962e10",
      "parents": [
        "a8a716e42a8e6b8f28abf2b2f8f93b1e8579423d"
      ],
      "author": {
        "name": "Chuwei Xu",
        "email": "xucw@motorola.com",
        "time": "Tue Oct 23 13:50:04 2018 +0800"
      },
      "committer": {
        "name": "Chuwei Xu",
        "email": "xucw@motorola.com",
        "time": "Tue Oct 23 13:50:04 2018 +0800"
      },
      "message": "CTS: allow continue to use the old AIDs on devices launch with P\n\nSome vendors may have been using the AIDs outside the oem ranges\nfor long that those aids need continue to be maitained for the\nexisting devices. We allow them countinue to use the old AID names\nand values on device launch with P and before, to give them the\nperiod of time to adopt the new AID scheme.\n\nBug: 116405200\nChange-Id: I0453ed14df4c0855575ef1404c596ddc6ded681b\n"
    },
    {
      "commit": "5c941435ac1b8fdbc3aef741715cb816e2808507",
      "tree": "05246fe6bbc85f6cf20ab231243d77aec42814a5",
      "parents": [
        "cb8ed207d2bb6113a80fc7f27cd0beb8897f5192"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Oct 09 11:01:28 2018 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Oct 11 11:57:13 2018 -0700"
      },
      "message": "Waive AID Range check for upgrading devices launched before P\n\nWe added a check in P that ensures all vendor provided AIDs only\nappear in the carved out ranges for vendors to use.  However,\nupgrading devices may be using AIDs outside of this range and it is\nvery difficult to change these AIDs, so we waive this test for them.\n\nBug: 116830906\nTest: test succeeds on upgrading devices\nChange-Id: Iddcacb1dce77a150d5138e7b3115abf25bf60a6e\n"
    },
    {
      "commit": "fa5f61c8d9a8f80734d4ffc0f9d8ec4ac3a062b9",
      "tree": "7727156aee5b2784c3699386edde5483213c90d5",
      "parents": [
        "8d11bea6c57cf62171f4157e0f2061ada4c19b10"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Sep 27 13:19:02 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 27 20:29:49 2018 +0000"
      },
      "message": "Always return /vendor/bin/sh as shell for OEM ids in getpwnam() etc.\n\nDuring the review of the script that generates /vendor/etc/passwd, it\nwas suggested that the shell be /vendor/bin/sh instead of the typical\n/system/bin/sh.  This has subsequently caused bionic unit tests to\nfail, since they always check that the shell is set to /system/bin/sh.\n\nIn the spirit of that review, libc is modified to return\n/vendor/bin/sh for the OEM AID ranges and the test is updated to\nexpect this.\n\nTest: bionic unit tests\nChange-Id: Ie7c1c48fde8a71b3df1aa0ef112d42ab7bd3baec\n"
    },
    {
      "commit": "32bc0fcf69dfccb3726fe572833a38b01179580e",
      "tree": "abca656f500087493e0997d5cf38cbcc9ec98eb8",
      "parents": [
        "65f82092a17518080178ff7004cc6db362ebfbcd"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 17:31:13 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 18:09:44 2018 -0700"
      },
      "message": "Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: I5b4123bc6709641315120a191e36cc57541349b2\n"
    },
    {
      "commit": "4cddb00d6fcb70fb78ae348f60d72ecebe4d73b5",
      "tree": "d7e6cb4c07f960c514024ac1f7b7331cfd5eec34",
      "parents": [
        "a2389a01bc35f3e0013cf31f7aa1ec6fb6b743ae"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Jun 29 10:39:43 2018 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Jun 29 10:39:43 2018 -0700"
      },
      "message": "Reland \"Remove a check for AIDs in the OEM range.\"\n\nThere may be vendor extensions to the system image which would need to\nuse these IDs.\n\nThis reverts commit 41986a013a10c6f79822002800a9afe90efba4f2.\n\nBug: 110856218\nTest: these tests\n"
    },
    {
      "commit": "e88b4083e46f0a839c476c269f9742a0cf233135",
      "tree": "98adea7e1ec33469fe0aa06479ca11ff6c1fde31",
      "parents": [
        "a6a56784e02d568c4965dcf5538dea48a472b7d1"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu May 24 14:44:10 2018 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu May 24 14:44:10 2018 -0700"
      },
      "message": "Test that vendor AID names begin with vendor_\n\nNow that we\u0027re only processing vendor AID names that begin with\nvendor_, add an explicit test to fail devices that use AID names\nwithout this prefix.\n\nBug: 79528966\nTest: Pass if no vendor defined AIDs are present\nTest: Pass if vendor defined AIDs are present with vendor_ prefix\nTest: Fail if vendor defined AIDs are present without vendor_ prefix\n\nChange-Id: I77c559800b4904f58c49fbe339e4daad7d953089\n"
    },
    {
      "commit": "b4c25c882ef6cb99db692f5aca7db8275b044cbc",
      "tree": "c01ff0c9e695ac793518cdc12f7837a52ef8b348",
      "parents": [
        "b7fd08cad7f4b3338edd687f9a127165e8a58132"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 04 15:02:55 2018 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 04 15:02:55 2018 -0700"
      },
      "message": "Do not check user/group names in pwd/grp tests for OEM uid/gids\n\nVendors that use config.fs will have their own uniquely named\nuser/group names for uids/gids that fall in the OEM ranges.  We\ncontinue to allow lookup via oem_## for these values, however the\nreturned structs will always include the name from config.fs, so we do\nnot check it for anything in the tests.\n\nBug: 77549259\nTest: bionic unit tests with uid 5000 as AID_CRAS\nChange-Id: I27fc1fdd0e22063fea82b4c9d2a6fb8b865c5d7b\n"
    },
    {
      "commit": "2fe1034a02a5fd4b3399d2a949d72cdd70356569",
      "tree": "99de31c32b600ed43b2238cbec8144c8b0ff32e0",
      "parents": [
        "a9050686c44c23a17d9e1c619d18991ede3e33f9"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 27 14:05:53 2018 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 27 14:25:56 2018 -0800"
      },
      "message": "Disable {getpwent,getgrent}_iterate tests on glibc.\n\nThese tests aren\u0027t meaningful on the host, and take forever to fail.\n\nTest: bionic-unit-tests-glibc --gtest_filter\u003d\"*get??ent_iterate\"\nChange-Id: I8ca20829ba94f2ea815c636f779bacc55449cffd\n"
    },
    {
      "commit": "41986a013a10c6f79822002800a9afe90efba4f2",
      "tree": "f736c2bf52ae95d5b5317e4c5efc91000b7a507f",
      "parents": [
        "ab8c86159738a774ca99a5b3311e5e3b81fc8ce9"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Feb 12 10:49:13 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Feb 12 10:49:13 2018 -0800"
      },
      "message": "Revert \"Remove a check for AIDs in the OEM range.\"\n\nWe now have a proper mechanism for OEMs to create new AIDs via\nconfig.fs and /vendor/etc/{passwd,group}.  This means that there is no\nreason for OEMs to add AIDs by modifying android_filesystem_config.h,\nand therefore we can add this check back.\n\nBug: 27999086\nTest: pwd and grp tests pass with custom AIDs in config.fs\n\nThis reverts commit a14485addeacc23587743dad307184c00224b823.\n\nChange-Id: I74a28ff267a595e83cf692b27fd8b5170a021f54\n"
    },
    {
      "commit": "4362f897f73f95b5b9e48f2b758b5800f1cc83a2",
      "tree": "c02e8677078fba76d19b08d95427af4391cc329e",
      "parents": [
        "315dd896deae928f3e64f94d75cd20566cc95183"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Nov 14 08:50:43 2017 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Nov 15 10:31:49 2017 -0800"
      },
      "message": "Only use uids and gids for which we\u0027ve allocated AIDs\n\nCurrently, getpwnam, getpwent, etc return successfully for any uid\nfrom AID_APP_START (10000) to AID_USER_OFFSET (100000) for each user.\nThis is not correct however, as only specific ranges above\nAID_APP_START are reserved as valid ranges.  This change corrects this.\n\nThis is particularly important as the newly added AID_OVERFLOWUID is\n65534, which is above AID_APP_START but not in any reserved range,\ncollided with the faulty returned values.\n\nBug: 69119022\nBug: 69128408\nTest: pwd/grp bionic unit tests\nChange-Id: I3dae97a90597915fa30a88fe27cda88b107e9c35\n"
    },
    {
      "commit": "2c05c0f9b0c9cafeb72633031478583436cddd1d",
      "tree": "5440d7f7595d650f3216475a020898e94f855d87",
      "parents": [
        "ccea8430848833b60ad95488f4a7b48065c6e54c"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Nov 10 10:57:21 2017 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Nov 10 10:57:21 2017 -0800"
      },
      "message": "Better test handling and logging in grp_pwd_test.cpp\n\ngrp_pwd_test.cpp uses ASSERT_ where EXPECT_ is possible, causing\nmissing failures when multiple failures are present.\n\nAlso, print out the uid/gid in the _iterate tests, to make debugging\neasier.\n\nTest: these same unit tests\nChange-Id: I839b74fb86232b3e896091e76ab862cc5b6b8782\n"
    },
    {
      "commit": "a14485addeacc23587743dad307184c00224b823",
      "tree": "b4a7cbb5c2e8fd62e1ae6e969e75f4f09d08fcd9",
      "parents": [
        "316a44f33ceb9f81975568b67b8e8deb19cce156"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Aug 04 11:07:19 2017 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Aug 04 18:15:58 2017 +0000"
      },
      "message": "Remove a check for AIDs in the OEM range.\n\nRemove the check that AIDs in the OEM range are not defind in\nandroid_filesystem_config, as we do not yet have a good solution for\nOEMs to define custom AIDs and what OEMs are currently doing isn\u0027t\nhurting anything.\n\nBug: b/64137613\nTest: pwd.getpwent_iterate / grp.getgrent_iterate\nChange-Id: If98ad4443fe9e827e3f17b3df92eca82763e6290\n"
    },
    {
      "commit": "45be5dfe989143ff5ba1f2a72fd86b8cebb61c73",
      "tree": "e8e782b4af97446e3938460330631fa4c3b56caa",
      "parents": [
        "01a8e5bce3c72627f6ac57f181b98a3c0fc7c3ca",
        "3f6eee9793e4c41c7f4b15a723c777ae67fb1e51"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 10 01:23:26 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 10 01:23:26 2017 +0000"
      },
      "message": "Revert \"Revert \"move android_ids into bionic\"\"\nam: 3f6eee9793\n\nChange-Id: I6a65710f926a76e48705fa4594f479f5d48df068\n"
    },
    {
      "commit": "54891837a0d80325a15b6706fccef33e42552bad",
      "tree": "83c1d8d5f5d74cc628a3c84823b4f2e3221d22fc",
      "parents": [
        "f7e793ef7fcfc8f20be3cadd2f5a233151d4b9c9",
        "934bc86df3e9593551e1a09e242c72f0ee1afb3e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Dec 15 21:46:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 15 21:46:30 2016 +0000"
      },
      "message": "Merge \"Define range of GIDs for cached app data.\""
    },
    {
      "commit": "3f6eee9793e4c41c7f4b15a723c777ae67fb1e51",
      "tree": "8dae7fc7d418fdf69d34057f8b80add179eeb351",
      "parents": [
        "77cb68d9f2621639ec7f4e1b124ceeee5c80a66a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 23:47:25 2016 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 23:47:25 2016 +0000"
      },
      "message": "Revert \"Revert \"move android_ids into bionic\"\"\n\nThis reverts commit 77cb68d9f2621639ec7f4e1b124ceeee5c80a66a.\n\nChange-Id: Ibc9f775c4cd418be90fd8a6f192dd72ca5dff09a\n"
    },
    {
      "commit": "9f9c73bb2e4e2dd5533d2f6258d6deaf753c38e9",
      "tree": "42f56f290b0353e65fa89daff87869e96a0cb698",
      "parents": [
        "755ecdead53ef344251a98ecd3569b275bc9bf4d",
        "5367d1b9d97a01499b5b46849b06dbbf74865de9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 22:53:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 13 22:53:25 2016 +0000"
      },
      "message": "Merge \"Rename \u003cgrp.h\u003e/\u003cpwd.h\u003e tests to fit the usual pattern.\""
    },
    {
      "commit": "934bc86df3e9593551e1a09e242c72f0ee1afb3e",
      "tree": "747e62fbc5af8f2f1ad6f658bcb5c6080c441f76",
      "parents": [
        "2eaba9343f1726d3c4a23717ba3a5cc66c8374d2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Dec 13 14:03:19 2016 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Dec 13 14:22:55 2016 -0700"
      },
      "message": "Define range of GIDs for cached app data.\n\nTo support upcoming disk usage calculation optimizations, this change\ncreates a new GID for each app that will be used to mark its cached\ndata.  We\u0027re allocating these unique GIDs so that we can use\nquotactl() to track cached data on a per-app basis.\n\nTest: builds, boots, tests pass\nBug: 27948817\nChange-Id: Ic00c39ccedc23d5d43988029e9921679126f8f2d\n"
    },
    {
      "commit": "5367d1b9d97a01499b5b46849b06dbbf74865de9",
      "tree": "6e97134100924742a7c30e40eb15b028bb7b46a3",
      "parents": [
        "858ec7abec87f573f624434c3d969169640979c8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 12 17:32:14 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 12 17:32:14 2016 -0800"
      },
      "message": "Rename \u003cgrp.h\u003e/\u003cpwd.h\u003e tests to fit the usual pattern.\n\nBug: N/A\nTest: ran tests\nChange-Id: I5ec30cc17f94e631f3376b671055a0e82fb472c3\n"
    },
    {
      "commit": "77cb68d9f2621639ec7f4e1b124ceeee5c80a66a",
      "tree": "ed8d084df93ed051a0688432dac858a6987f381e",
      "parents": [
        "1a13db5b2675759316a8529873c5d29831a9ba32"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 12 22:11:37 2016 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 12 22:11:37 2016 +0000"
      },
      "message": "Revert \"move android_ids into bionic\"\n\nThis reverts commit 1a13db5b2675759316a8529873c5d29831a9ba32.\n\nChange-Id: I7f571b3a9d542694d16fb9cf1131ef9e59d330ea\n"
    },
    {
      "commit": "1a13db5b2675759316a8529873c5d29831a9ba32",
      "tree": "8dae7fc7d418fdf69d34057f8b80add179eeb351",
      "parents": [
        "fa1a85d0031c1846f7c2a6137c614f6a12dd2279"
      ],
      "author": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Fri Apr 08 13:44:19 2016 -0700"
      },
      "committer": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Wed Nov 30 12:54:08 2016 -0800"
      },
      "message": "move android_ids into bionic\n\nGenerate the android_ids array and include into the\nbuild.\n\nTest: The bionic is built and that core AIDs work as\nexpected with commands like chown, mkdir and init services\nand builtins.\nBug: 27999086\nChange-Id: Ib575bf85326c91801c5674db475dcb9cf44c00dc\nSigned-off-by: William Roberts \u003cwilliam.c.roberts@intel.com\u003e\n"
    },
    {
      "commit": "722ab05b255070e6c8add450c94eeb790618c98e",
      "tree": "23156dbf2afd440a10973ecf3b93aa9635132b92",
      "parents": [
        "130bec7103561fc3657e8a431ca55026430b843e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 06 10:35:48 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 22 10:44:19 2016 -0700"
      },
      "message": "bionic: Implement getpwent and getgrent\n\nNot efficient to iterate through given the large number of Android\nids (AID). Compile warning will result if you use these functions,\ntelling you as much. Not for general consumption, however for\nexample, some filesystem tests would like to see these to perform\nall corners.\n\nAbout 1/4 second for getpwent, and 1/8 second for getgrent to iterate\nthrough all reserved Android aids.\n\nBug: 27999086\nChange-Id: I7784273b7875c38e4954ae21d314f35e4bf8c2fc\n"
    },
    {
      "commit": "8d387ee1ecbcde6d7435a909476e50afc9bed464",
      "tree": "8638b1be5d0c1fb6523fdf76340c19ccc9272340",
      "parents": [
        "9deb01c5a6b98e1b5d33a8f44168884f01bf96d5"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 05 09:24:59 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 06 21:18:49 2016 +0000"
      },
      "message": "fix oem_XXXX ids to incorporate both ranges\n\nThe XXXX now lines up to the underlying uid and has no offset.\nWork with AID_OEM_RESERVED uids.\n\nTest uses hard coded values to catch changes in the API expectations\nthat may occur in private/android_filesystem_config.h.\n\nSideEffects: names change, some product dependencies.\n\nBug: 27999086\nChange-Id: Ic2b4c36de74ae009a44e14711c75834293828207\n"
    },
    {
      "commit": "3735539fc3bcf21b0d994110f359f9f4d7fd16af",
      "tree": "cf4fb79b57e5db7e2aff2b3e31f30dc21889d0b5",
      "parents": [
        "af11ec2e9283c7bc2f28953841573ea7ac31bba4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 06 08:38:21 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 06 09:04:17 2016 -0700"
      },
      "message": "Rename the \u003cgrp.h\u003e/\u003cpwd.h\u003e tests to reflect that they\u0027re no longer in stubs.cpp.\n\nBug: http://b/27999086\nChange-Id: I3255ad5861a705beeb9b462e22f79ae1e5a85a79\n"
    },
    {
      "commit": "a39e30141d46c268ca66d6ad786d244275c4e827",
      "tree": "c193ab12774edd189253ddd914c35654ad74fcfd",
      "parents": [
        "822c40a3389a953d9b43f05ad6e40640fd55f9c4"
      ],
      "author": {
        "name": "Jorge Lucangeli Obes",
        "email": "jorgelo@google.com",
        "time": "Tue Sep 22 11:46:43 2015 -0700"
      },
      "committer": {
        "name": "Jorge Lucangeli Obes",
        "email": "jorgelo@google.com",
        "time": "Tue Sep 22 13:33:17 2015 -0700"
      },
      "message": "Add preliminary OEM UID/GID support.\n\nUntil we implement full support for passwd/group files, add a simple\nway to use the new OEM UID/GID range (5000-5999).\n\noem_XXX -\u003e 5000 + XXX iff 0 \u003c\u003d XXX \u003c 1000.\n\nBug: 23225475\n\nChange-Id: If48b88135d5df538313414f747d6c4c63bf0a103\n"
    },
    {
      "commit": "c4786d366b11ed81165d43ee7f23e0d4965fc00f",
      "tree": "a45d2e9e2dfe936f9c4f74005255a7cea192325a",
      "parents": [
        "e70d7a78f0bfba8b09d37c145769cb8d1d7c5fb6"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jul 20 19:46:26 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jul 21 19:33:34 2015 -0700"
      },
      "message": "Add getgrgid_r/getgrnam_r.\n\nBug: 22568551\nChange-Id: I3c0772d119d6041063c6be53f5bcc5ea1768f0d5\n"
    },
    {
      "commit": "a04c79b9d38cf9c8d3c79f4bbbfc45c9da9c0143",
      "tree": "5b50e3bbabd78ddcac3ada8564814aeac6f96086",
      "parents": [
        "ee4c8febb7bd1f5492486cc11980f925425b02ec"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 18 16:14:54 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 18 19:58:04 2014 -0800"
      },
      "message": "fix shared gid support in getpwnam/getgrnam\n\nBug: 18374693\nChange-Id: I5353403cbbead6f6abac87bee2cf53a60dba408c\n"
    },
    {
      "commit": "c768874c667794bee278b9fbf207b5ca5df4e7a6",
      "tree": "9c2ea42770011f6f3bf80238f5ca394c2c8c6b5f",
      "parents": [
        "790890fd5c896a098142e0783b10fa8246462249"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri May 09 21:50:53 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri May 09 22:29:23 2014 +0100"
      },
      "message": "Align struct passwd definition with other variations of libc\n\nAdd pg_gecos (\"real name\") field to struct passwd.\n\nBug: 14679430\nBug: 12875898\nChange-Id: I833ec2c46f6a6259b7232a8e3f7942968ef0b50d\n"
    },
    {
      "commit": "f04935c85e0b466f0d30d2cd4c0fa2fff62e7d6d",
      "tree": "8f1c6af75517892648f49adad9d4d5d44c20f49c",
      "parents": [
        "e163a3986aa7d1c67fe3274eb9204812be0a6245"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Dec 20 18:43:21 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 06 20:12:21 2014 -0800"
      },
      "message": "Make sure that the same tests are on all platforms.\n\nIn order to be able to generate a list of tests for cts, the same set of\ntests must exist across all platforms. This CL adds empty tests where a\ntest was conditionally compiled out.\n\nThis CL creates a single library libBionicTests that includes all of\nthe tests found in bionic-unit-tests-static.\n\nAlso fix a few missing include files in some test files.\n\nTested by running and compiling the tests for every platform and\nverifying the same number of tests are on each platform.\n\nChange-Id: I9989d4bfebb0f9c409a0ce7e87169299eac605a2\n"
    },
    {
      "commit": "5e3fc43ddeada547a155c6f561a12ff0b16e02d3",
      "tree": "9becf3a8442387f408f7f9ee73ab06ab7f8865d1",
      "parents": [
        "1fea0f258a45d918fe5ae8e9769f45c0348bd095"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 11 16:36:48 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 11 16:39:10 2013 -0800"
      },
      "message": "Fix __pthread_clone on ARM to set errno on failure.\n\nMIPS and x86 appear to have been correct already.\n\n(Also fix unit tests that ASSERT_EQ with errno so that the\narguments are in the retarded junit order.)\n\nBug: 3461078\nChange-Id: I2418ea98927b56e15b4ba9cfec97f5e7094c6291\n"
    },
    {
      "commit": "ac184b21425a0681c51ef152f0567168b575da49",
      "tree": "08d0842acb148aa0ec9c01a455cefb28240b8fe6",
      "parents": [
        "8e630dacf61307e4681f04fc6b5ee593f30d91d0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 26 14:20:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 26 14:20:22 2012 -0700"
      },
      "message": "Fix several compiler warnings.\n\nChange-Id: I55caa50a5937442734f4fcbdb4edf1c70f335bf8\n"
    },
    {
      "commit": "8a05a01de75d78a45d646115b20b2a3e3c12ba9e",
      "tree": "5cefd13caf66aede2241cca2b8cc9200a11edd86",
      "parents": [
        "2a54e5ecd0a96398e8d7d9b1629ecf8fb1633a2b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 13 14:31:50 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 13 15:25:09 2012 -0700"
      },
      "message": "Print out shared app gids correctly\n\nFor applications that share resources across users such as\nforward-locked applications, print out their group name correctly.\n\nChange-Id: I06ee0b67e4325cfa415ffd7a03e301700399a66d\n"
    },
    {
      "commit": "2a54e5ecd0a96398e8d7d9b1629ecf8fb1633a2b",
      "tree": "0fa9a13009d0f9e215921fa3bc58b8b8b23d158c",
      "parents": [
        "fa36875df423af968d053c584c0de18a2448516b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 13 10:52:52 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 13 15:25:09 2012 -0700"
      },
      "message": "Add tests for Android-specific stubs\n\nAlso fix problem with multi-user IDs that the home directory was\nreturned as \"/data\" instead of \"/\" unlike all the other uids.\n\nChange-Id: I914d22052e5a86552989f8969b85aadbc748c65d\n"
    }
  ]
}
