)]}'
{
  "log": [
    {
      "commit": "4956c372cf320328952665629b2626e7cbc84c54",
      "tree": "7a02304c6c2eadc93b1b7a357fb31a143b661a89",
      "parents": [
        "e592dacfa254f59bb097c98d118d0c860b181da1"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Dec 19 16:35:51 2019 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jan 02 14:09:50 2020 -0800"
      },
      "message": "Move bionic_macros.h from private to platform.\n\nTest: treehugger\nChange-Id: Ie473914f4c8924c7240b3ac22093a9daf42fc948\n"
    },
    {
      "commit": "b481a2e743102efc6b18cc586aa979a70e575d64",
      "tree": "25b69c933cd0ca4d776d7845ad22a8692157a0cd",
      "parents": [
        "de39d9242ae38733c33173957386db0b8060e52a"
      ],
      "author": {
        "name": "Raman Tenneti",
        "email": "rtenneti@google.com",
        "time": "Tue Nov 12 20:41:55 2019 +0000"
      },
      "committer": {
        "name": "Raman Tenneti",
        "email": "rtenneti@google.com",
        "time": "Tue Nov 12 20:41:55 2019 +0000"
      },
      "message": "Revert \"Revert \"Make system property reads wait-free\"\"\n\nThis reverts commit de39d9242ae38733c33173957386db0b8060e52a.\n\nReason for revert: This revert is not needed\n\nChange-Id: I34af8e5d75c724f6c4066fafbfc6bc7d58377601\n"
    },
    {
      "commit": "de39d9242ae38733c33173957386db0b8060e52a",
      "tree": "2a7e44d156dac92caacf04f9c6c9c3540638a03f",
      "parents": [
        "0cf90556de2bde53a1957c5946036b2fe2e4e429"
      ],
      "author": {
        "name": "Raman Tenneti",
        "email": "rtenneti@google.com",
        "time": "Tue Nov 12 18:24:06 2019 +0000"
      },
      "committer": {
        "name": "Raman Tenneti",
        "email": "rtenneti@google.com",
        "time": "Tue Nov 12 18:24:06 2019 +0000"
      },
      "message": "Revert \"Make system property reads wait-free\"\n\nThis reverts commit 0cf90556de2bde53a1957c5946036b2fe2e4e429.\n\nReason for revert: Device boot failures - 144355953\n\nChange-Id: Icd4fc8c7a1d06d688a6d37e6f1c1aa45563f711b\n"
    },
    {
      "commit": "0cf90556de2bde53a1957c5946036b2fe2e4e429",
      "tree": "25b69c933cd0ca4d776d7845ad22a8692157a0cd",
      "parents": [
        "5d9ba9ea702a4d20b99639996b8bd27f121d5bd7"
      ],
      "author": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Tue Oct 29 15:40:16 2019 -0700"
      },
      "committer": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Mon Nov 11 11:17:00 2019 -0800"
      },
      "message": "Make system property reads wait-free\n\nRight now, when we read a system property, we first (assuming we\u0027ve\nalready looked up the property\u0027s prop_info) read the property\u0027s serial\nnumber; if we find that the low bit (the dirty bit) in the serial\nnumber is set, we futex-wait for that serial number to become\nnon-dirty. By doing so, we spare readers from seeing partially-updated\nproperty values if they race with the property service\u0027s non-atomic\nmemcpy to the property value slot. (The futex-wait here isn\u0027t\nessential to the algorithm: spinning while dirty would suffice,\nalthough it\u0027d be somewhat less efficient.)\n\nThe problem with this approach is that readers can wait on the\nproperty service process, potentially causing delays due to scheduling\nvariance. Property reads are not guaranteed to complete in finite time\nright now.\n\nThis change makes property reads wait-free and ensures that they\ncomplete in finite time in all cases. In the new approach, we prevent\nvalue tearing by backing up each property we\u0027re about to modify and\ndirecting readers to the backup copy if they try to read a property\nwith the dirty bit set.\n\n(The wait freedom is limited to the case of readers racing against\n*one* property update. A writer can still delay readers by rapidly\nupdating a property --- but after this change, readers can\u0027t hang due\nto PID 1 scheduling delays.)\n\nI considered adding explicit atomic access to short property values,\nbut between binary compatibility with the existing property database\nand the need to carefully handle transitions of property values\nbetween \"short\" (compatible with atomics) and \"long\" (incompatible\nwith atomics) length domains, I figured the complexity wasn\u0027t worth it\nand that making property reads wait-free would be adequate.\n\nTest: boots\nBug: 143561649\nChange-Id: Ifd3108aedba5a4b157b66af6ca0a4ed084bd5982\n"
    },
    {
      "commit": "7f048808203bb4e1c01f50793b424364cd669f06",
      "tree": "a6165b26a6c255448370e195b95d360bfcb0ffae",
      "parents": [
        "2c02e45f4b4ad997ea681993601c9f67bf96a2ca"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Fri May 03 15:57:34 2019 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Mon May 06 17:13:51 2019 +0200"
      },
      "message": "Enable native_bridge_support\n\nEnable native bridge support for bionic libraries.\nMakes it possible to use them in binaries for translated\narchitectures.\n\nBug: http://b/77159578\nTest: make\nChange-Id: Iccd4ad7aecfa5260cc15f09ca975d2e18987278a\n"
    },
    {
      "commit": "3019d78d4abc2a5a279c75e78f76478b79364b7e",
      "tree": "6f13cd058ecfaf410dc3385c3622b561ff0fe140",
      "parents": [
        "40f18976dbb8bc3def6c65f13c94e8c4a345fc20"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 13 12:39:07 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 14 14:23:13 2019 -0800"
      },
      "message": "libasync_safe: stop clobbering other folks\u0027 identifiers.\n\nThe log priorities and ids are in an NDK header, available to everyone.\n\nMove CHECK into its own header for now. This would be better if it was\nmore like the \u003candroid-base/logging.h\u003e CHECK family, but I don\u0027t have an\neasy way to do that without lots of copy \u0026 paste, so punting for now.\n\nBug: https://issuetracker.google.com/issues/119713191\nTest: boots\nChange-Id: I4566be8a0a024fede0e2d257c98b908ec67af2a8\n"
    },
    {
      "commit": "5e62b34c0d6fa545b487b9b64fb4a04a0589bc13",
      "tree": "e08ee44067b3b636ace11b21ec8d63a08d4d2a19",
      "parents": [
        "c89a3971e94c30611c885e4c440eae2fd9937948"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 11:00:00 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 11:00:00 2018 -0700"
      },
      "message": "Clean up bionic_macros.h a bit.\n\nUse \u003candroid-base/macros.h\u003e instead where possible, and move the bionic\nmacros out of the way of the libbase ones. Yes, there are folks who manage\nto end up with both included at once (thanks OpenGL!), and cleaning that\nup doesn\u0027t seem nearly as practical as just making this change.\n\nBug: N/A\nTest: builds\nChange-Id: I23fc544f39d5addf81dc61471771a5438778895b\n"
    },
    {
      "commit": "99d54656bda40edb817e6bc6de9a85d88ef4e6b5",
      "tree": "1a176f12c89582f0d06a3376ef66c6281d8af01c",
      "parents": [
        "8f2298e73f4d930b58a8466fd7264e9a88c96d99"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 22 10:36:23 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 22 10:36:23 2018 -0700"
      },
      "message": "Add PR_SET_VMA and PR_SET_VMA_ANON_NAME to \u003csys/prctl.h\u003e.\n\nWe\u0027ve copied \u0026 pasted these to too many places. And if we\u0027re going to\nhave another go at upstreaming these, that\u0027s probably yet another reason\nto have the *values* in just one place. (Even if upstream wants different\nnames, we\u0027ll likely keep the legacy names around for a while for source\ncompatibility.)\n\nBug: http://b/111903542\nTest: ran tests\nChange-Id: I8ccc557453d69530e5b74f865cbe0b458c84e3ba\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": "d91285f1666a2bbca9f4d620bbd74ab87632a8c4",
      "tree": "8def602a6ddf96c73f971132f87633ff1071bc73",
      "parents": [
        "5258c2518e582585e1b00097296053b334790d13"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue May 01 18:03:05 2018 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue May 01 18:19:21 2018 -0700"
      },
      "message": "Fix PROP_FILENAME_MAX overflow handling\n\nBug: b/79117743\nTest: /data/nativetest64/bionic-unit-tests/bionic-unit-tests\nChange-Id: Idd5aa4d195abc13c06d3e5b57aef69a68c2a9a9d\n"
    },
    {
      "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": "cbc80ba9d839675a0c4891e2ab33f39ba51b04b2",
      "tree": "0b24e6123c94bd3e61d94fd6eca6a3b9cc9b074e",
      "parents": [
        "3374d0cabb973ff2b73ad8cd909389bdeed18658"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 13 14:26:29 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 13 14:27:17 2018 -0800"
      },
      "message": "Switch the rest of our internal headers to #pragma once.\n\nWe\u0027ve been using #pragma once for new internal files, but let\u0027s be more bold.\n\nBug: N/A\nTest: builds\nChange-Id: I7e2ee2730043bd884f9571cdbd8b524043030c07\n"
    },
    {
      "commit": "a9fc82fefe07307f3af2e18014dbc6bc3925504f",
      "tree": "914faa845ce5620c7918314b50d2acb1d37bd31e",
      "parents": [
        "b44bd827abf2b870ebf4a0f6b126098a46bf42ec"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Thu Feb 01 23:03:49 2018 +0800"
      },
      "committer": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Thu Feb 01 23:32:24 2018 +0800"
      },
      "message": "Renames nonplat_property_contexts to vendor_property_contexts\n\nBug: 64240127\nTest: build\nChange-Id: Ifff956fa1a0557d7d10e1012b29d16f25bb80e8f\n"
    },
    {
      "commit": "5cec377f49d6429b19895eb632225cd757ea611e",
      "tree": "bcd08fe1e6b656a5a4e235a225fbe88feb54a112",
      "parents": [
        "0d63a3c233040af004cc470d5f76547f3adc0148"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 19 15:45:23 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 19 15:56:12 2018 -0800"
      },
      "message": "Address a bunch of clang-tidy complaints.\n\nThere were a bunch more unreasonable/incorrect ones, but these ones\nseemed legit. Nothing very interesting, though.\n\nBug: N/A\nTest: ran tests, benchmarks\nChange-Id: If66971194d4a7b4bf6d0251bedb88e8cdc88a76f\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": "721a5305e24b69b68ecc9431526f32131abc8f6c",
      "tree": "ee87a24a2b366c1bcfaa61e91337fb3c9a3c78d4",
      "parents": [
        "580c2cd5d31281c3446c5a4552c04fdc99c91182",
        "8be995b6ac69100996e55e1d24c1398a19916436"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Dec 18 22:02:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 18 22:02:35 2017 +0000"
      },
      "message": "Merge \"Revert \"Don\u0027t use serialized propertyinfo\"\""
    },
    {
      "commit": "8be995b6ac69100996e55e1d24c1398a19916436",
      "tree": "e9f19eaab6d54c42730a8fb3fe96a455ac008b11",
      "parents": [
        "e149f3c1d7b6848af6a27e4089d5f0c915e1437d"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 14 01:57:37 2017 +0000"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 14 01:58:49 2017 +0000"
      },
      "message": "Revert \"Don\u0027t use serialized propertyinfo\"\n\nThis reverts commit e149f3c1d7b6848af6a27e4089d5f0c915e1437d.\n\nReason for revert: This is ready to be enabled now.\n\nBug: 36001741\n\nChange-Id: I418d3a498ff0712ce9a1857924c6d0039026a664\n"
    },
    {
      "commit": "4ca6b8784747e4495dcf48ab046732e0f26bc685",
      "tree": "956c679af7608453dba819e47dc64da2aca56ec1",
      "parents": [
        "894e6f12ad53c219fcf6725f42bced3ea9938bf5",
        "e149f3c1d7b6848af6a27e4089d5f0c915e1437d"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Dec 13 21:40:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 13 21:40:47 2017 +0000"
      },
      "message": "Merge \"Don\u0027t use serialized propertyinfo\""
    },
    {
      "commit": "894e6f12ad53c219fcf6725f42bced3ea9938bf5",
      "tree": "a0594c314797b399367a7b67b048d3c15ba57d53",
      "parents": [
        "af36229250de40444f3f550a3348823ab35eccfc",
        "3429c090f50a3114369482c550c382f8fa070c2e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 13 21:32:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 13 21:32:49 2017 +0000"
      },
      "message": "Merge \"Include what we use.\""
    },
    {
      "commit": "e149f3c1d7b6848af6a27e4089d5f0c915e1437d",
      "tree": "c591f2e001fa34f2af240f251c5319f77455a18f",
      "parents": [
        "e6e8f6ee77ac0be9b950ddd94f52ebcefe4433ce"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Dec 13 02:48:23 2017 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Dec 13 02:48:23 2017 -0800"
      },
      "message": "Don\u0027t use serialized propertyinfo\n\nThis needs more work before it can be enabled.\n\nBug: 36001741\nTest: boot, check that we\u0027re using old style properties\nChange-Id: I7032f4b4224758b187cf4e8a53fd8845466a5d4a\n"
    },
    {
      "commit": "3429c090f50a3114369482c550c382f8fa070c2e",
      "tree": "8f4464347c1570e28d7627313ea23fd3a22d923d",
      "parents": [
        "eb7347aedbc61ba45555aef3e6e863f0d90b407b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Dec 12 15:42:45 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Dec 12 15:43:09 2017 -0800"
      },
      "message": "Include what we use.\n\nTest: mma\nBug: None\nChange-Id: I259468e829052bf27fab599ff951a5a2638d35aa\nExempt-From-Owner-Approval: trivial cleanup\n"
    },
    {
      "commit": "79b724ca5a33e5dff7c2530b2649648021c1258d",
      "tree": "703e81d1d3c41fe093f4747d4d7d4324427dde2c",
      "parents": [
        "78b40e8fe1f37de319344c92d8e6e1eb595c1067"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Nov 17 17:14:05 2017 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Dec 12 00:36:20 2017 -0800"
      },
      "message": "Add support for serialized property contexts\n\nThis adds support for reading a serialized\n/dev/__properties__/property_info file, which contains a\nserialized trie that maps property names to the SELinux context to\nwhich they belong.\n\nPerformance wise on walleye, this change reduces the start up cost in\nlibc from ~3000us to ~430us.  On a benchmark that calls\n__system_property_find() for each property set on the system, it\nreduces the time per iteration from ~650us to ~292us.\n\nBug: 36001741\nTest: Boot bullhead, walleye, run unit tests\nTest: Benchmark initialization and lookup performance\n\nChange-Id: I0887a3a7da88eb51b6d1bd494fa5bce593423599\n"
    },
    {
      "commit": "8d366a81a361221d872db99d74bbaaa4611bdb82",
      "tree": "d7e363de4e901821136272ca2ac2d16373ec79f1",
      "parents": [
        "f5a6fd2001baad5ea92d50f9e38388a2eda21e23"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Nov 30 15:41:32 2017 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Nov 30 16:26:34 2017 -0800"
      },
      "message": "Fix static classes in system properties\n\nPreviously, the functionality for mapping properties to contexts were\nbroken into a set of classes, each statically defined in\nsystem_properties.cpp to prevent using new/malloc.  This is a mistake\nhowever, since system property initialization happens before static\ninitialization, so it is possible for the Constructors of these\nclasses to clobber the initialized data.\n\nThis change fixes that by placing them in a Union and having that\nUnion have a no-op constructor.  The individual classes will be\ninitialized via placement new before they are used as is typically\ndone with classes in a union.\n\nTest: boot bullhead\nChange-Id: Ideb9d6ad8b6fc768811d8615d005cd4b8d134bce\n"
    },
    {
      "commit": "f76bbf5384c0504b165168f51ccadfb605ccb2af",
      "tree": "c064deacfbff5a8d7de99d8a37ff86d66e4c0101",
      "parents": [
        "fd44b9f8d89ce4f33ff39d7f340a5ed08029d21c"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Nov 08 14:01:00 2017 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Nov 14 08:55:27 2017 -0800"
      },
      "message": "Remove some globals from system_properties\n\npa_size should be static to prop_area, so make it so.\n\n__system_property_area__ was reused for various purposes, but\nrealistically is a deprecated symbol and this finally separates us\nfrom it.\n\nBug: 36001741\nTest: boot bullhead, system property unit tests\nChange-Id: I39663cc3b613093fa4c728b21d8ba58754f8e105\n"
    },
    {
      "commit": "fd44b9f8d89ce4f33ff39d7f340a5ed08029d21c",
      "tree": "24268cde0a4afd99c6500691f949687c65ce5985",
      "parents": [
        "0793e3dd07b8ecb5bd0a0e91740f68f42f4f7e60"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Nov 08 14:01:00 2017 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Nov 14 08:50:52 2017 -0800"
      },
      "message": "Split system_properties.cpp into its component pieces\n\nsystem_properties.cpp is a little bit unmanageable in its current\nform, and is overdue for a refactoring into more clearly defined\ncomponents.\n\nOf particular interest, is creating of a Contexts interface that\nhandles mapping of system property name -\u003e SEContext and its\nassociated prop_area, and creating two classes that implement the\ncurrent and legacy functionality.  This is needed as there will likely\nbe a third even newer way to do this mapping.\n\nBug: 36001741\nTest: boot bullhead, system property unit tests\nChange-Id: Ie75ec6fea1a95f90813918f54669d533e51327c6\n"
    }
  ]
}
