)]}'
{
  "log": [
    {
      "commit": "ee8e3dd67c910907115c7cef87be3d898d71a05d",
      "tree": "022d9c97d9bdc95c34dbf0052b8dcf9ce394bc46",
      "parents": [
        "44c7b6ad0ac277a8ed3ee2278f6c1ee23f130ab5"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 21 15:01:22 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 21 15:10:17 2018 -0800"
      },
      "message": "Remove non-trivial constructors/destructors from SystemProperties\n\nWith the goal of disallowing exit time destructors, SystemProperties\u0027s\nnon-trivial destructor needs to be removed.  This means replacing the\nunion hack with yet another hack as we don\u0027t want to allocate anything\ndespite relying on some polymorphism.\n\nBug: 73485611\nTest: boot bullhead\nChange-Id: I64223714c9b26c9724bfb8f3e2b0168e47b56bc8\n"
    },
    {
      "commit": "e275d6d72db1868056a204e8483a7346a28cb8d6",
      "tree": "3191e33ca242518f7d486c6b37212c7f682498b0",
      "parents": [
        "721a5305e24b69b68ecc9431526f32131abc8f6c"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Dec 11 23:31:33 2017 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Dec 18 15:17:55 2017 -0800"
      },
      "message": "Split properties into their own class to make testing better\n\nReinitializing system properties can result in crashes later in the\nprogram, and is generally not recommended or even supported.  This\nchange moves the actual logic for system properties into a class that\ncan be tested in isolation, without reinitializing the actual system\nproperty area used in libc.\n\nBug: 62197783\nTest: boot devices, ensure properties work\nTest: system property unit tests and benchmarks\nChange-Id: I9ae6e1b56c62f51a4d3fdb5b62b8926cef545649\n"
    },
    {
      "commit": "8a311631edc0c6212d4f9c50854956d2233aea40",
      "tree": "885d3feb21fc2545d9830aaa819e4f24236722fd",
      "parents": [
        "983c2da84cdcd0171b7f726b78990cabd0a58f49"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Oct 09 13:49:17 2017 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Oct 10 15:52:25 2017 -0700"
      },
      "message": "Allow read-only system properties to have arbitrary lengths\n\nWe need to be able to store build fingerprints that are over 92 characters\nlong, which is the current restriction for system property value\nlength.\n\nIncreasing the value maximum across the board has plenty of caveats,\nparticularly that an allocator would be required to handle\ndeallocation when replacing long property values with short values.\nThere is also no compelling reasons to do this.\n\nBut, increasing the length of simply read-only properties, such as the\nbuild fingerprint, has less caveats as there will never be a\ndeallocation of these strings.\n\nThis change uses spare bits in the top of serial (only spare for\nread-only properties) to indicate if a property is \u0027long\u0027 or not.  The\ninformation required to access these \u0027long\u0027 properties is stored in a\nunion where the legacy property value is located.  An error message is\nretained for legacy callers.\n\nThe new property is readable via __system_property_read_callback() and\nmost importantly android::base::GetProperty and higher level (Java,\n`getprop`) callers.  All code should move to these higher level\nfunctions as much as possible.\n\nBug: 23102347\nBug: 34954705\nTest: bionic unit tests\nChange-Id: Ia85e0d979b92afff601cc52b39114379617a0c64\n"
    },
    {
      "commit": "438e01940b90a2b6061a9b9809e08466e1e9faac",
      "tree": "4889c190b65be3636ee5d638db7822624abcd412",
      "parents": [
        "e4e69a174a0b4980eaff49c55c39b476cbe9b73e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 17 14:53:07 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 17 14:53:07 2017 -0700"
      },
      "message": "Un-deprecated __system_property_find_nth.\n\nNetflix was using this, and looking the header file, although\n__system_property_find_nth has been available since the beginning of time,\n__system_property_foreach only appeared in 16. So anyone who wants to run\non pre-JellyBean devices would want to use __system_property_find_nth.\n\nIt\u0027s pretty much a one-liner in terms of __system_property_foreach anyway,\nso it doesn\u0027t cost us anything to keep it.\n\nAlso restore slightly better tests than we originally removed.\n\nBug: http://b/36566667\nTest: ran tests\nChange-Id: Id268c2c2e848da17bb0a5a5420af234d9dcb829a\n"
    },
    {
      "commit": "4a92ffd3029e9e38c3a55222676a126db5a3b962",
      "tree": "433d790ddfffcfb36b0b362e8c968ee2e6197a55",
      "parents": [
        "ebceea8e85ad2897a5ce8575b81f18fdd7aa0320"
      ],
      "author": {
        "name": "Victor Khimenko",
        "email": "khim@google.com",
        "time": "Wed Mar 01 20:36:13 2017 +0100"
      },
      "committer": {
        "name": "Victor Khimenko",
        "email": "khim@google.com",
        "time": "Wed Mar 01 20:43:42 2017 +0100"
      },
      "message": "Stop using __system_property_area__\n\nApparently that \"backdoor\" is no longer needed - the proper way is\nto reinitialize properties:\n    https://android-review.googlesource.com/#/c/181794/24/tests/system_properties_test.cpp\n\nAlso removes mentions of libnativehelper test (it no longer uses\n__system_property_area__) and removes useless \"extern\" declaration\n(actual use was removed long ago).\n\nTest: refactoring CL, existsing tests still pass\n\nBUG\u003d21852512\nBUG\u003d34114501\n\nChange-Id: I2223cab2fcb671ea180ad4470a7aba5c9cd20bd8\n"
    },
    {
      "commit": "40c885a4d18dd1e4480615ddd00c9f035dc08567",
      "tree": "58adbfd0852a7bb1d51122339b6a00e27bb6bcaf",
      "parents": [
        "40854235256c3f51f9ea866f5f8ef03240c00123"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 16 17:13:04 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 21 14:36:24 2017 -0800"
      },
      "message": "Add timeout support to __system_property_wait.\n\nBug: http://b/35201172\nTest: ran tests\nChange-Id: I3a78813bf3cd50d1b308ecb3c742f923606c0cc4\n"
    },
    {
      "commit": "a0d374d587ec18d437d0dd15ba1332aceaa188af",
      "tree": "a9466c8841140cf70290c54d50354f245ea3a9db",
      "parents": [
        "132768084e24119c337e56fd110b97a23e5593c2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 10 18:13:46 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 13:30:10 2017 -0800"
      },
      "message": "Add __system_property_wait and return the serial in __system_property_read_callback.\n\nIn order to implement android::base::WaitForProperty well, we need a way to\nwait not for *any* property to change (__system_property_wait_any), but to\nspecifically wait for the property represented by a given `prop_info` to\nchange.\n\nThe android::base::WaitForProperty implementation, like attempts to cache\nsystem properties in the past, also needs a way to keep serials and values\nin sync, but the existing functions don\u0027t provide a cheap way to get a\nconsistent snapshot. Change the __system_property_read_callback callback\u0027s\ntype to include the serial corresponding to the given value.\n\nAdd a test, slightly clean up some of the existing tests (and name them to\ninclude the names of the functions they\u0027re testing, in our usual style).\n\nBug: http://b/35201172\nTest: ran tests\nChange-Id: Ibc8ebe2e88eef1e333a1bd3dd7f68135f1ba7fb5\n"
    },
    {
      "commit": "16b2a4de143a026b8d467b7d242126adcf67242b",
      "tree": "56e0d6455248408f5c485c8a5403bb970441f7a8",
      "parents": [
        "40250bb6837da0eb0f0882efd07bdaefb3f304b1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 20:43:29 2017 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 12:58:18 2017 -0800"
      },
      "message": "Revert \"Revert \"Remove limit of system property name length\"\"\n\nThis reverts commit 489f58b5eaedd5a80635bb3a7b39e97037c585f6.\nBug: http://b/33926793\nBug: http://b/34670529\nTest: Run bionic-unit-tests --gtest_filter\u003dprop*\n\nChange-Id: Id4e94652dc2310a21f5b7bd3af098bf79df3f380\n"
    },
    {
      "commit": "489f58b5eaedd5a80635bb3a7b39e97037c585f6",
      "tree": "af22a101af7a53336af2669978e9a507f589fbd5",
      "parents": [
        "5c1ce278f31bc6fc338b9b951f1adc7c2b343d7c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 18:39:04 2017 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 18:39:04 2017 +0000"
      },
      "message": "Revert \"Remove limit of system property name length\"\n\nThis reverts commit 5c1ce278f31bc6fc338b9b951f1adc7c2b343d7c.\nBug: http://b/33926793\nBug: http://b/34670529\n\nChange-Id: I0dc4a8ae55576c69b34b2958d8e664f7066b9c54\n"
    },
    {
      "commit": "5c1ce278f31bc6fc338b9b951f1adc7c2b343d7c",
      "tree": "0652006476a923c95c16837640a52f9298322a35",
      "parents": [
        "7844b4c5dbd0be9ea4212a523da2dd6a4804032c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 03 11:26:38 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 23 11:21:18 2017 -0800"
      },
      "message": "Remove limit of system property name length\n\nThis change introduces new __system_property_read_callback\nmethod to use in place of deprecated __system_property_read\n__system_property_set() and get() should just work but now\ndo not have limit on system property names.\n\nBug: http://b/33926793\nTest: boot device, run adb shell propget\nTest: boot device with old version of init (protocol v1)\nTest: run bionic-unit-tests --gtest_filter\u003dprop*\nChange-Id: I619fb5a7e27a272aac30011579665f6160888bc7\n"
    },
    {
      "commit": "581b9f661bc7d32691ac5e5ee8eac38a8807aa09",
      "tree": "2100650f26ccb76348855e2747f86c77926dba3a",
      "parents": [
        "fb07c36bc061db4ca5d8348ff6bc1e60b6c53191"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 09 11:05:52 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 10 13:41:27 2017 -0800"
      },
      "message": "Hide __system_property_add/update, deprecate find_nth\n\nThese functions are supposed to be used only by the\nproperty service.\n\n__system_property_find_nth is deprecated and no longer part\nof NDK. Call to this function will result in abort for apps\ntargeting Android O.\n\nBug: http://b/34114501\nTest: bionic-unit-tests --gtest_filter\u003dprop*\nChange-Id: I9846965bf248e2ddf45cd7b293618245bbd87145\n"
    },
    {
      "commit": "49a309ff6a8349cbd1625711497743463638bebf",
      "tree": "934a2a6d0b469f2345a733b414e26c6654fd6020",
      "parents": [
        "9cbabd8fe5ef3834682996ff23b4a5325e0586cb"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 23 16:09:47 2015 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Dec 02 15:17:03 2015 -0800"
      },
      "message": "Separate properties by selabel\n\nThe purpose of this change is to add read access control to the property\nspace.\n\nIn the current design, a process either has access to the single\n/dev/__properties__ file and therefore all properties that it contains\nor it has access to no properties.  This change separates properties\ninto multiple property files based on their selabel, which allows\ncreation of sepolicies that allow read access of only specific sets of\nproperties to specific domains.\n\nBug 21852512\n\nChange-Id: Ice265db79201ca811c6b6cf6d851703f53224f03\n"
    },
    {
      "commit": "9df70403d95f5cfe6824e38a9a6c35f9b9bbc76a",
      "tree": "5a2914b5db892fa3d2c17caf9e9a53f7fc0a5d93",
      "parents": [
        "2311383180aee9388d28b03901a1e4ef021bcfa7"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 05 18:01:01 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 06 11:09:03 2014 -0800"
      },
      "message": "make all bionic death tests not dumpable\n\nBug: 18067305\n\nChange-Id: Ia1ecacf47eddecc9bc58aaac779e0c218f463179\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": "f00c938c7f5887981d724bf2dd9989ee0af08332",
      "tree": "215f86cc9ce1b1ed167d925419122327d3ffaa3e",
      "parents": [
        "a626e4d8bc3d59cc328942fc30ffc04981b154ed",
        "811b0cdb2d6e4a697dbc63a678712759dd0db242"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:08:12 2013 -0800"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Nov 22 13:38:33 2013 -0800"
      },
      "message": "Merge commit \u0027811b0cdb2d6e4a697dbc63a678712759dd0db242\u0027 into HEAD\n\nChange-Id: I786944f80fb1a2d502fed51dc2c391ed5db66761\n"
    },
    {
      "commit": "e4375196d650f68ad486e2202699c98f9342d616",
      "tree": "4e62b6b03aea5a78845c309a148642a81c72e367",
      "parents": [
        "f4ac8ba566d80679ccc346b3b0af4b46d394319b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 21 17:09:52 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 21 17:40:15 2013 -0700"
      },
      "message": "Fix the system property tests to use $ANDROID_DATA.\n\nThis lets them work on the host.\n\nChange-Id: I771ccc67652ae37451b45859c7831116cd830086\n"
    },
    {
      "commit": "2389a26705a600e69c8c0b24a02bc05522bc68d1",
      "tree": "d71c23e1fe908de2987a8bebd7d8913900d66544",
      "parents": [
        "e714eb157ea92f3166b6292ed54138f3e092d5da",
        "c058154b747f295c98ad771d3dec4065749ee1a9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 16 12:25:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 16 12:25:58 2013 -0700"
      },
      "message": "am c058154b: am c8039337: Merge \"Change hard-coded temporary directory.\"\n\n* commit \u0027c058154b747f295c98ad771d3dec4065749ee1a9\u0027:\n  Change hard-coded temporary directory.\n"
    },
    {
      "commit": "bd6dc6a8864a1997eb8608030ac816740169c463",
      "tree": "4777cffa0488cc715a1e337cfca758d5a2038892",
      "parents": [
        "c5cf53701a5e04aeead70b1298bb38c51633e96d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 15 12:54:40 2013 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 15 12:54:40 2013 -0700"
      },
      "message": "Change hard-coded temporary directory.\n\nThe properties tests creates a temporary directory in /data/nativetest,\nbut this directory might not exist in all circumstances.\nChange this to create the temporary directory in /data/local/tmp.\n\nChange-Id: I812d3e24fcd084c5d74055c9faa95b1656f255bc\n"
    },
    {
      "commit": "be30c7a78a1cf4adc8ec9bbdf17e85186fdb05b2",
      "tree": "e4606a51f2c48d8b06079995309456beb96e7770",
      "parents": [
        "d5276422ca9f1f4d45e91c189a1655521e91962d"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Jun 19 13:31:21 2013 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Jun 25 13:34:32 2013 -0700"
      },
      "message": "bionic: revert to a single (larger) property area\n\nd329697 is too complicated.  Change the multiple property pages back to\na single 128K property area that\u0027s mapped in entirely at initialization\n(the memory will not get allocated until the pages are touched).\n\nd329697 has other changes useful for testing (moving property area\ninitialization inside bionic and adding __system_property_set_filename)\nso undo the change manually rather than with git revert.\n\nChange-Id: Icd137669a4f8bc248e9dd2c1e8cc54e9193c9a6d\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "d5276422ca9f1f4d45e91c189a1655521e91962d",
      "tree": "e8458c86ad851a47098b107c038bfaa1874a9c4d",
      "parents": [
        "4482d8513920d614e3799a214c5bad07b72580d2"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Jun 17 12:37:09 2013 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Jun 25 13:34:29 2013 -0700"
      },
      "message": "bionic: add hierarchical properties test\n\nDeliberately put items several levels deep in the trie hierarchy to test\nthe trie traversal\n\nChange-Id: I995a1cdd3b5e74162fb5d25bc0f65140bdf2f719\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "890aa0d937ae72473c84cc773e77d45e9288b0bc",
      "tree": "774b64dd8a3c9a9c9390eefd073d1c993269ef69",
      "parents": [
        "fa8cc0629f6227b507434245d237d44d7e119b16"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Jun 24 18:05:18 2013 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Jun 24 18:05:18 2013 -0700"
      },
      "message": "Revert \"bionic: add hierarchical properties test\"\n\nThis reverts commit 0f76e2340ca53ce458a01f91627651dfe0112969.\n"
    },
    {
      "commit": "fa8cc0629f6227b507434245d237d44d7e119b16",
      "tree": "14cde25575c80ef5b937857db854a977cd3dc7df",
      "parents": [
        "b938756eb3a2911b7230abf0b35356146afd19dc"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Jun 24 18:05:16 2013 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Jun 24 18:05:16 2013 -0700"
      },
      "message": "Revert \"bionic: revert to a single (larger) property area\"\n\nThis reverts commit 5f05348c18286a2cea46eae8acf94ed5b7932fac.\n"
    },
    {
      "commit": "1540f601be32bdd4af8e8c13bdf2bc06bdaa76f1",
      "tree": "76a3c1ec1fff772960cd08143071ce0bc0e66600",
      "parents": [
        "996cdc4b1a7fcae89650bee0a44b6cb7900a4a3c"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Jun 19 13:31:21 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 16:35:37 2013 -0700"
      },
      "message": "bionic: revert to a single (larger) property area\n\nd329697 is too complicated.  Change the multiple property pages back to\na single 128K property area that\u0027s mapped in entirely at initialization\n(the memory will not get allocated until the pages are touched).\n\nd329697 has other changes useful for testing (moving property area\ninitialization inside bionic and adding __system_property_set_filename)\nso undo the change manually rather than with git revert.\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n\n(cherry picked from commit 5f05348c18286a2cea46eae8acf94ed5b7932fac)\n\nChange-Id: I690704552afc07a4dd410277893ca9c40bc13e5f\n"
    },
    {
      "commit": "cb215a7e9ecec9feb5aae9d9a5b1c89f392208e7",
      "tree": "f1f337bbd7b7c1406bea8821e69b43082c56ba10",
      "parents": [
        "0ea1d5c0ae94ee581c72451b20813c028f51090c"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Feb 13 14:41:48 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 16:35:15 2013 -0700"
      },
      "message": "bionic: make property area expandable\n\nThe property area is initially one 4K region, automatically expanding as\nneeded up to 64 regions.\n\nTo avoid duplicating code, __system_property_area_init() now allocates\nand initializes the first region (previously it was allocated in init\u0027s\ninit_property_area() and initialized in bionic).  For testing purposes,\n__system_property_set_filename() may be used to override the file used\nto map in regions.\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n\n(cherry picked from commit d32969701be070c0161c2643ee3c3df16066bbb8)\n\nChange-Id: I038d451fe8849b0c4863663eec6f57f6521bf4a7\n"
    },
    {
      "commit": "5f05348c18286a2cea46eae8acf94ed5b7932fac",
      "tree": "d8b58028c831c0b05539b4bd121d40eafcd36e80",
      "parents": [
        "0f76e2340ca53ce458a01f91627651dfe0112969"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Jun 19 13:31:21 2013 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Jun 24 16:15:52 2013 -0700"
      },
      "message": "bionic: revert to a single (larger) property area\n\nd329697 is too complicated.  Change the multiple property pages back to\na single 128K property area that\u0027s mapped in entirely at initialization\n(the memory will not get allocated until the pages are touched).\n\nd329697 has other changes useful for testing (moving property area\ninitialization inside bionic and adding __system_property_set_filename)\nso undo the change manually rather than with git revert.\n\nChange-Id: I0ecb27843404f93af5489f15bfe657d65175e4f0\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "0f76e2340ca53ce458a01f91627651dfe0112969",
      "tree": "14cde25575c80ef5b937857db854a977cd3dc7df",
      "parents": [
        "6ac8e6a46d71a51bec16938efa89f275fa89cf7d"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Jun 17 12:37:09 2013 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Jun 24 13:14:10 2013 -0700"
      },
      "message": "bionic: add hierarchical properties test\n\nDeliberately put items several levels deep in the trie hierarchy to test\nthe trie traversal\n\nChange-Id: Id3cbd2e7d3500216b1ac8025eac70c0939622903\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "d32969701be070c0161c2643ee3c3df16066bbb8",
      "tree": "272345ff49f9b6375799f213af21c711cc36ea84",
      "parents": [
        "373ea006ced88b280c4a46ec05eafc60b48e99e0"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Feb 13 14:41:48 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Jun 19 11:02:15 2013 -0700"
      },
      "message": "bionic: make property area expandable\n\nThe property area is initially one 4K region, automatically expanding as\nneeded up to 64 regions.\n\nTo avoid duplicating code, __system_property_area_init() now allocates\nand initializes the first region (previously it was allocated in init\u0027s\ninit_property_area() and initialized in bionic).  For testing purposes,\n__system_property_set_filename() may be used to override the file used\nto map in regions.\n\nChange-Id: Ibe00ef52464bfa590953c4699a6d98383b0142b1\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "c6ff844d75dddfb19fc804b8add2d6a79947b101",
      "tree": "f7eda9c4bf1279480f00c4a27b2009246a1d1f19",
      "parents": [
        "c656d732c7712b0f73d9c560ccf3cb5ae47d219d"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Feb 12 16:39:31 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 18 19:24:29 2013 -0700"
      },
      "message": "bionic: add __system_property_foreach\n\nfind_nth() will be inefficient on a trie.  Since find_nth() is only used\ninternally and only for enumerating properties, we can add a foreach()\nfunction to do this directly.\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n\n(cherry picked from commit 577418403d68e663fb33c7b0c8a90d862d9c00cf)\n\nChange-Id: Iaca97d1182ce2c28863ba85241cbb5cf6185eb2f\n"
    },
    {
      "commit": "577418403d68e663fb33c7b0c8a90d862d9c00cf",
      "tree": "2426b457f82259c0b4fda183557591b6e66e9b06",
      "parents": [
        "1791cb0001516d6f3ffa7b916d61942b98bc88f4"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Feb 12 16:39:31 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Jun 18 15:38:31 2013 -0700"
      },
      "message": "bionic: add __system_property_foreach\n\nfind_nth() will be inefficient on a trie.  Since find_nth() is only used\ninternally and only for enumerating properties, we can add a foreach()\nfunction to do this directly.\n\nChange-Id: I66bde9926c193073d74b244cce9fffd52108fff8\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "b27e200ad6170ba3163f5ae6ba581bdaabb2e696",
      "tree": "fe98c4e40bc492a8db4221bdf539a50df54e7c77",
      "parents": [
        "5cf32de7a0fea0b10959b598300babc6e4f54d95"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jan 28 17:19:43 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 16:58:47 2013 -0700"
      },
      "message": "bionic: add tests for properties\n\n(cherry picked from commit 37d9f75dde881a0ba1c1b3253b1be19d4096963d)\n\nChange-Id: Iac00ce10a4272032a1cbdbc4204277d6876e3365\n"
    },
    {
      "commit": "37d9f75dde881a0ba1c1b3253b1be19d4096963d",
      "tree": "d52f800212758fefac77247e41e283cbce262f57",
      "parents": [
        "dc1038b7900acb664e99643d2974e1a0f4703781"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jan 28 17:19:43 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 12:58:18 2013 -0700"
      },
      "message": "bionic: add tests for properties\n\nChange-Id: I09b212966f1c9624631653ef2c7a71de78bbbec1\n"
    }
  ]
}
