)]}'
{
  "log": [
    {
      "commit": "882cad2d87fc003ced61ddf9d68f8810ec8c4b3f",
      "tree": "e8c320809a6b684cfaa5bb1174e6b514b4763a78",
      "parents": [
        "102eb90837d1e30fe9603b046e351c28cbaebbd9"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 01 15:12:49 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 25 10:30:55 2017 -0700"
      },
      "message": "Load vendor public libraries to sphal namespace\n\nLoad vendor public libraries to sphal namespace\nif it exists - preserve old behavior of loading\nthese libraries to default namespace if sphal\nnamespace is not present on the device.\n\nBug: http://b/37410104\nTest: cts-tradefed run singleCommand cts --skip-preconditions -m CtsJniTestCases\n      on marlin (with enabled sphal configuration) and on angler where ld.config.txt\n      is not present.\n\nChange-Id: Iaa3fa437ba2900acc2e5b9c78039fe1553e4c9dd\n(cherry picked from commit af0264bbe9f5e1228eb8fb486fa3d0d8e6e8605e)\n"
    },
    {
      "commit": "9e253ce6b7aea5a1a6f761d94a7471bb88574e53",
      "tree": "0057da8b67e2cad2b8c2f1b59814ce5b2bc6e388",
      "parents": [
        "e732d1533798cd495391da4aa1c1df2ef17e20a4"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 08 22:24:24 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 09 18:00:38 2017 -0700"
      },
      "message": "Explicitly enable greylist for classloader-namespaces\n\nThe linker no longer enables greylist by default, it\nneeds to be explicitly enabled by specifying corresponding\nflag.\n\nBug: https://issuetracker.google.com/38146125\nTest: builds\nChange-Id: Ib593f2d9a35dbadffb436f5fbc9a2a7a8f64ada0\n(cherry picked from commit 058b2ea8c52ed8ce33442eda3a39e49ecd11e6dd)\n"
    },
    {
      "commit": "e8fb11dfa1b376124d0a1a349c8800799f25606a",
      "tree": "6b10f653cd6c76db1966a007aaea26498509a3fa",
      "parents": [
        "c169b2018fb72ea31da68616548dcf6582cb0a93"
      ],
      "author": {
        "name": "Zhenhua WANG",
        "email": "zhenhua.wang@intel.com",
        "time": "Mon Feb 27 10:14:45 2017 +0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 29 17:34:11 2017 -0700"
      },
      "message": "NativeBridge: add \"linked namespace\" semantic corresponding to linker\n\nFor dynamic linking perspective, semantics of NativeBridge needs to\nalign with dynamic linker. This patch adds \"linked namespace\" semantic\nwhich shares some libraries from one namespace to another.\n\nTest: make test-art-host-run-test-115-native-bridge\nChange-Id: I71ce1dde19d61363d5eb9731fd4795a8c315b3a0\n"
    },
    {
      "commit": "c169b2018fb72ea31da68616548dcf6582cb0a93",
      "tree": "5de3bb5dc9b2c13048a4aae4b58d570db724d09d",
      "parents": [
        "bac980724797d8fd2ae5a76e8c78768ea6e57bf7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 29 17:33:12 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 29 17:33:12 2017 -0700"
      },
      "message": "Set libnativeloader style to clang-format-2\n\nTest: clang-format.py ...\nChange-Id: I322c134c1e6b58b2c4ea21b6dfac5727860604c2\n"
    },
    {
      "commit": "3f5b5dc546c398db10dd9a5631070e2f09d33d0b",
      "tree": "f96a930294ec807e6c9c515f97506dd4ff135670",
      "parents": [
        "fd87c062abb0c1600e068f477699530e9c6758ed"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Feb 12 21:07:04 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 13 08:52:35 2017 -0800"
      },
      "message": "Add comment to android_link_namespaces method\n\nTest: n/a - comment only change\nBug: http://b/26833548\nChange-Id: I40356eec37aeb864206982feb877c59c21c9a433\n"
    },
    {
      "commit": "fd87c062abb0c1600e068f477699530e9c6758ed",
      "tree": "42fa68c0ce3fa59bbd932a010bc4d5254c59f8be",
      "parents": [
        "e499403bf4b9ad717345e37dc4e85477f64d9640",
        "26e1a846ef6b3bda9386fba405ea4485056b4e62"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Feb 11 19:26:48 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 11 19:26:50 2017 +0000"
      },
      "message": "Merge \"Replace public library list with shared lib sonames\""
    },
    {
      "commit": "26e1a846ef6b3bda9386fba405ea4485056b4e62",
      "tree": "5225cedcea6088846b7ebb1883079dd2b7122b31",
      "parents": [
        "e7005979c2ba01e13d75df218c0bc07ea71a479b"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 03 14:11:27 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 06 14:26:56 2017 -0800"
      },
      "message": "Replace public library list with shared lib sonames\n\nCall updated interface in order to setup anonymous and classloader\nnamespaces\n\nBug: http://b/26833548\nTest: build \u0026 boot angler\nChange-Id: I1fae5d9c015f2026563eb64d986c622c1b68effb\n"
    },
    {
      "commit": "6b7425881860c7b16d4228a27ed2b2119aba0bda",
      "tree": "b011d0a9120746304c86c63796f4ef0687368124",
      "parents": [
        "279cb8b39aeda9e8642a52794e6e67aa84fa2af7",
        "15a264e65c0df7574f2e8f2406ee6427b084cfff"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 06 21:05:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 06 21:05:02 2017 +0000"
      },
      "message": "Merge \"Log errors from loading public libraries\""
    },
    {
      "commit": "15a264e65c0df7574f2e8f2406ee6427b084cfff",
      "tree": "c18b30b17a97225a5ba45ddb813dd911a0fac441",
      "parents": [
        "9cd890e9b7a1ae1d354815f529a0b3df1dd07aea"
      ],
      "author": {
        "name": "Evan Ralston",
        "email": "eralston@amazon.com",
        "time": "Fri Feb 03 17:09:46 2017 -0800"
      },
      "committer": {
        "name": "Evan Ralston",
        "email": "eralston@amazon.com",
        "time": "Mon Feb 06 11:05:35 2017 -0800"
      },
      "message": "Log errors from loading public libraries\n\nPrevent the boot from failing silently if one of the public libraries\ndoes not exist.\n\nTest: Add invalid element to public libraries and observe log is emited\nduring boot failure.\n\nChange-Id: I0425085a1cc081068954f327f15be853a3ccd553\n"
    },
    {
      "commit": "e7005979c2ba01e13d75df218c0bc07ea71a479b",
      "tree": "ab528b2a4092ae4981acb875ad2b9e48f76d36a6",
      "parents": [
        "b75d82b42a52faa66a6c00d46bf0de6391c95db4"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Jan 12 14:56:17 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 02 11:36:14 2017 -0800"
      },
      "message": "dlext_namespace.h: Declare android_get_LD_LIBRARY_PATH\n\nThis allows clients creating their own namespace do so by modifying\nthe default library path, rather than hardcoding it multiple places in\nthe system.\n\nBug: 33531483\nTest: build\nChange-Id: I321e219392b38c235b220986e1520b49a4669863\n(cherry picked from commit 823c266a8a9d9db9654103456a7b759358ce4e10)\n"
    },
    {
      "commit": "b75d82b42a52faa66a6c00d46bf0de6391c95db4",
      "tree": "a0b2a00a0893a34249503104322b346456ece6ef",
      "parents": [
        "afe25958b66f6186ada566a7c4af6b776b00cc42"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Jan 09 16:04:28 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 02 11:36:04 2017 -0800"
      },
      "message": "Make dlext_namespaces.h available to users of libnativeloader\n\nBug: 33531483\nTest: build\nChange-Id: I1da92e2b1437b6775a9d81fc6c1a2d4bacecbc04\n(cherry picked from commit 0936d25371e4f2618bf5760583a60dd542740542)\n"
    },
    {
      "commit": "30f991f251940be3ed11566fb71139852286f68a",
      "tree": "5cef5c112aa400da1ad1572d26fcc3b6b3099b6e",
      "parents": [
        "cdd7ec12be3dfb6a7fa2f597d2220445c96725cf"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 10 13:19:54 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jan 11 09:31:15 2017 -0800"
      },
      "message": "liblog: use log/log.h when utilizing ALOG macros\n\nTest: compile\nBug: 30465923\nChange-Id: Id6d76510819ebd88c3f5003d00d73a0dbe85e943\n"
    },
    {
      "commit": "86e80b9be0a1fc6070ffae08e4c99d6dd577eb2a",
      "tree": "f59fd6d6611d87b45ae99bbabf05172148f37e42",
      "parents": [
        "8a1c4b85303cd636f4920f99093063f57ecc8e73"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Wed Dec 21 14:22:00 2016 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Dec 22 07:03:26 2016 +0900"
      },
      "message": "Use shared lib of libutils, libz and libbase.\n\nlibutils, libz and libbase are being used as shared lib by many other\nmodules.\nSo using their shared lib will reduce total image size.\n\nSize diffs on angler build image are as follows.\n\nlibziparchive.so  : 103844 -\u003e 41680 (-62164)\nlibnativeloader.so:  50824 -\u003e 25104 (-25720)\ntotal             : (-87884)\n\nTest: building succeeded, and the image was tested on angler.\nBug: 33056637\nChange-Id: I015afe5b8f4d87d495b706e2e78d60f44a910e87\n"
    },
    {
      "commit": "d836ab005a3fd70e477a01d4200483131a285c9a",
      "tree": "bed575ec93b56e95650318697219c1daa75e43d8",
      "parents": [
        "8d339e940fb6aab288287139cdc3617c52d7ae00"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Nov 02 18:03:10 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 04 15:21:13 2016 -0700"
      },
      "message": "Allow different namespace types for different classloaders\n\nAn app should be able to make cross-arch calls to different apps\nvia other app\u0027s Context.getClassLoader()\n\nBug: 32542970\nTest: Boot fugu. Check that there are no linker-namespace\n      related errors in the log.\n\nChange-Id: I1593f4688bcde0121a5e24a707441a4935fa7dc4\n"
    },
    {
      "commit": "800083d229fbf4ab4008e73205679556b058748b",
      "tree": "e9215c9cf8e797daf6f24232d3b1d4b176b982c4",
      "parents": [
        "0945380e36e4106a643af0a6e756fdc3487cfee2"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Nov 01 14:17:00 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Nov 01 14:48:45 2016 -0700"
      },
      "message": "Return nullptr from FindNamespaceByClassLoader for NB-enabled apps.\n\nThis function is always called by the frameworks in order to\ninitialize vulkan layer path. For NB apps returning nullptr\ndisables vulkan layer library lookup as expected.\n\nBug: http://b/32542970\nTest: mm\nChange-Id: I426b2b9f5ea7227b00f063ed6040f37bb2b4f21f\n"
    },
    {
      "commit": "f2804e59854c2c7e7d3d5b58f987e5ec5cdc5b66",
      "tree": "536a348fda09a1b31edecd5ef12a58e47a588bf9",
      "parents": [
        "0ca2fe4c43e4d525979befd0a59d80fb0a9fa649"
      ],
      "author": {
        "name": "Zhenhua WANG",
        "email": "zhenhua.wang@intel.com",
        "time": "Mon May 30 11:16:08 2016 +0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 25 11:11:38 2016 -0700"
      },
      "message": "Upgrade native bridge to version 3 to support namespace\n\nNative bridge implements namespace related interfaces in version 3.\nThe namespace semantic here is same as Android dynamic linker\u0027s.\nNative loader wraps library loading functions of dynamic linker and\nnative bridge. Thus, Android runtime is able to load native library\nof different ISA on one device by calling native loader directly.\n\nBug: http://b/28242460\nTest: mm \u0026\u0026 make test-art-host -j48\nChange-Id: Idde2b9d99fb6ebe547407c716b5478a231f745a7\nSigned-off-by: Zhenhua WANG \u003czhenhua.wang@intel.com\u003e\n"
    },
    {
      "commit": "36e0d390a2de7d13cdf667d9a7d125f0d66b3107",
      "tree": "b7ae89c6bbe40c5e820b8ddc2e2f073a67794911",
      "parents": [
        "0d762648d0b9cb29f13f3f8cb7815236078fafbd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 14:31:12 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 14:31:12 2016 -0700"
      },
      "message": "Rely on the platform -std default.\n\nBug: http://b/32019064\nTest: builds\nChange-Id: I18a1d816d63b64601485045070851f32d44e85eb\n"
    },
    {
      "commit": "ff2dcd9af994a23ed483939a416b48bdc10eefd5",
      "tree": "6e5a0dfe4e39c407eea7e39840eef5d56b720de4",
      "parents": [
        "66ce3e08c5632a20ea66bde6dd76397041edf034"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 28 15:54:45 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 12:47:05 2016 -0700"
      },
      "message": "system/core Replace log/log.h with android/log.h\n\nShould use android/log.h instead of log/log.h as a good example\nto all others.  Adjust header order to comply with Android Coding\nstandards.\n\nTest: Compile\nBug: 26552300\nBug: 31289077\nChange-Id: I33a8fb4e754d2dc4754d335660c450e0a67190fc\n"
    },
    {
      "commit": "627112a87ed4bb11e321915852e99922a52bbbb0",
      "tree": "54bd2e57d8eb832b2448925a2ba4ef20d832f6d3",
      "parents": [
        "119d41c18e9a6ea7f04fd3fa65ab2016fb8c6ac9",
        "5783dea0650e96f4b58997d62705f984a12b1e78"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 28 10:53:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 28 10:53:40 2016 +0000"
      },
      "message": "Merge \\\"libnativeloader: convert Android.mk to Android.bp\\\"\nam: 5783dea065\n\nChange-Id: I347c0822bbfcc351a36154391c4cd1bcaa3fc7c2\n"
    },
    {
      "commit": "d4ce20aa849ceda35ca7e758467a9825b315ef20",
      "tree": "43476847b3a823d4edabb23348ad41e49ebc0eca",
      "parents": [
        "00a4ee0f46d36aff90fa120619f4dc6f4a837930"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 27 10:36:36 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 27 10:36:36 2016 -0700"
      },
      "message": "libnativeloader: convert Android.mk to Android.bp\n\nChange-Id: I94d7cde3138f28bbd158d62b657af8448b4175fd\n"
    },
    {
      "commit": "1b4f54e8786da5fbf50a06fc9ce5e18eed916b53",
      "tree": "d7ac24238a7745f47ae3c42b1ef0bb9cacec50a3",
      "parents": [
        "a81117b8f98f68456daf9d49783684e98c3bf74f",
        "3fb358478ff561f06f3cfa569477a27ec065b912"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 22 19:37:31 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 22 19:37:31 2016 +0000"
      },
      "message": "Merge \\\"Add support to indicate bitness of public library.\\\"\nam: 3fb358478f\n\nChange-Id: Ia5a7580cb26dbafa5863ae5d85aaaccb62936921\n"
    },
    {
      "commit": "39da84b06cf53f87ae535a685b315c1584bba7cb",
      "tree": "1fd6d1ad57a1eb458b7cad941b8c683ed0cfd001",
      "parents": [
        "57bbedc036e298878f7a3af57492123393879e0e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jun 21 16:11:23 2016 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 22 11:21:21 2016 -0700"
      },
      "message": "Add support to indicate bitness of public library.\n\nFor public vendor libraries, a vendor might have only a 32 bit\nor only a 64 bit version of the library. Add a way to indicate this\nin the public.libraries.txt files. The new format is:\n\n  library.so 32\n\nThis indicates that this is a 32 bit only public library.\n\n  library.so 64\n\nThis indicates that this is a 64 bit only public library.\n\nBug: 29370721\nBug: 29512261\n(cherry picked from commit 6664a805cae6983c7a19caf8abbe88ad2d918bcb)\n\nChange-Id: Id52c8b61d5c802ce62edda7e25f2755f6f93d6b7\n"
    },
    {
      "commit": "823d5bbc204da3da76aa78253143e73fe29696d9",
      "tree": "f9c85330129d216e266395fbf0c7bd55afad46ef",
      "parents": [
        "c1b985435f3a4515534921f6b3b763d0868c3403",
        "9ae3c079dca647869dcbc5a5075609f0895e4f4c"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Jun 01 21:57:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 01 21:57:27 2016 +0000"
      },
      "message": "Merge \"Remove invalid uses of -l and -I\" am: 5d6193c658\nam: 9ae3c079dc\n\n* commit \u00279ae3c079dca647869dcbc5a5075609f0895e4f4c\u0027:\n  Remove invalid uses of -l and -I\n\nChange-Id: Id0ddd34cee10579684cdde36f3c095658a50784b\n"
    },
    {
      "commit": "ee2da03e2666dcb01721b55aa4767e371120f4fb",
      "tree": "b628830902bfb84f00c39cb391971e608a640252",
      "parents": [
        "58ea31cc9013b8aab168cb828571ffc44721d9ef"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed May 25 13:19:49 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Jun 01 13:41:23 2016 -0700"
      },
      "message": "Remove invalid uses of -l and -I\n\nLOCAL_LDLIBS should only be used with -l flags for NDK and some host\nlibraries. Other uses should use LOCAL_SHARED_LIBRARIES.\n\nLOCAL_LDFLAGS should not contain -l entries, they should be in\nLOCAL_LDLIBS instead.\n\nLOCAL_CFLAGS should not contain -I entries, those should use\nLOCAL_C_INCLUDES instead.\n\nChange-Id: Ic901aa14651572ac682166becd4f0cd86baecc34\n"
    },
    {
      "commit": "fcd4ee48a4f29c3271e4a3d0f5174f9d6a7042c9",
      "tree": "656b8a6c2cb837ef1e4e2189cc7fdd0968c258fa",
      "parents": [
        "d797b5cb8b3933631263ae6218815fce90fefb1c",
        "07f46c84e614e2635e8072403dce8f17cc9285ba"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 24 17:15:12 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 24 17:15:12 2016 +0000"
      },
      "message": "Merge \"Remove target_sdk_version parameter\" into nyc-dev\nam: 07f46c84e6\n\n* commit \u002707f46c84e614e2635e8072403dce8f17cc9285ba\u0027:\n  Remove target_sdk_version parameter\n\nChange-Id: Idf4bca526e7a40064518ad0e5ccc5aa1f63dbe75\n"
    },
    {
      "commit": "94ee4e690dc4e529a27561b9e0d1e52a0dddc7d5",
      "tree": "e4a2e74652f473c8e79b5bf589a1ca792e7f6e11",
      "parents": [
        "70a46d674a04e95da633a5914abd7a55a46e2b3e"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 24 08:37:05 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 24 08:40:38 2016 -0700"
      },
      "message": "Remove target_sdk_version parameter\n\nSince linker-namespaces are enabled for all target_sdk_versions\nand there is no longer need in workarounds in libnativeloader -\nremove unused target_sdk_version parameter for internal calls.\n\nThis also brings libnativeloader closer to aosp/master\n\nBug: http://b/26040253\nChange-Id: I7d6f6ac31be0dca5f3c3f6ea20e6cc87ce3a3c7f\n"
    },
    {
      "commit": "e17c2efc4c6a49c5c02061d90b9d5384c94eddce",
      "tree": "9f23d8f2f73ab9ff03da5ab56f8bc047e62660ae",
      "parents": [
        "666d9aa507a8118a54146f08c6a4dad02773868d",
        "3457aba39480e85d582dd6890c4c72e418958782"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 17 23:06:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 17 23:06:21 2016 +0000"
      },
      "message": "Merge \"Set parent namespace for linker-namespaces\" am: ac50d0cc57\nam: 3457aba394\n\n* commit \u00273457aba39480e85d582dd6890c4c72e418958782\u0027:\n  Set parent namespace for linker-namespaces\n\nChange-Id: I20ea9239e95377894f477c33cf65bc7da7ad1e5a\n"
    },
    {
      "commit": "ade364b4566212a0c16920443a84aa85ac31f781",
      "tree": "7fc40f020206d0bfd6629fd6d1bade01f365c895",
      "parents": [
        "6e394f0f6c693e6f05def66d0427abd385b3f798"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 12 15:34:41 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 17 15:58:56 2016 -0700"
      },
      "message": "Set parent namespace for linker-namespaces\n\nThis change allows applications to share RTLD_GLOBAL\nnative libraries between namespaces associated with\ndifferent classloaders.\n\nThe rule is - if a library is GLOBAL within namespace\nassociated with parent classloader, it is shared\nwith namespace associated with this classloader\n\nNote that the sharing happens on create_namespace\nevent, which is tied to createClassloader in case of\napplication classloaders created by the framework, for\ncustom application classloaders it is tied to first\nloadLibrary() event.\n\nBug: http://b/28560538\nBug: https://code.google.com/p/android/issues/detail?id\u003d208458\nChange-Id: I7ee701166f8ec5eff033b7acc0f80c7aa4ec5bda\n(cherry picked from commit 24db75c1ce7ff8376a475214b059b9a37ac07936)\n"
    },
    {
      "commit": "d98683f415db73668378e1945d4eb5c9dc2d0a18",
      "tree": "d02970801076373ceafed20ec38c004e5843bf03",
      "parents": [
        "8781256b19619a142b671db94eef12cbcbe59bd9",
        "25df4bff44a0d1a342dc45521bf7e860b3fef947"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 17 04:06:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 17 04:06:05 2016 +0000"
      },
      "message": "Pass permitted_path to the linker as is.\nam: 25df4bff44\n\n* commit \u002725df4bff44a0d1a342dc45521bf7e860b3fef947\u0027:\n  Pass permitted_path to the linker as is.\n\nChange-Id: Idf8459267f8e1cc7bebc9a55b1272871b3d8119a\n"
    },
    {
      "commit": "24db75c1ce7ff8376a475214b059b9a37ac07936",
      "tree": "66b0e79b7cc091a08e353a77013e660b92d89454",
      "parents": [
        "a214a769f9a98b0962e62bd716575a05cf6f9f59"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 12 15:34:41 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 16 18:13:49 2016 -0700"
      },
      "message": "Set parent namespace for linker-namespaces\n\nThis change allows applications to share RTLD_GLOBAL\nnative libraries between namespaces associated with\ndifferent classloaders.\n\nThe rule is - if a library is GLOBAL within namespace\nassociated with parent classloader, it is shared\nwith namespace associated with this classloader\n\nNote that the sharing happens on create_namespace\nevent, which is tied to createClassloader in case of\napplication classloaders created by the framework, for\ncustom application classloaders it is tied to first\nloadLibrary() event.\n\nBug: http://b/28560538\nBug: https://code.google.com/p/android/issues/detail?id\u003d208458\nChange-Id: I7ee701166f8ec5eff033b7acc0f80c7aa4ec5bda\n"
    },
    {
      "commit": "25df4bff44a0d1a342dc45521bf7e860b3fef947",
      "tree": "60f32053b8ac25eb448142699fb34da71aa05467",
      "parents": [
        "8b452b876b90dcfff1dab9012b65b5e67c4531a4"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 16 17:08:06 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 16 18:09:15 2016 -0700"
      },
      "message": "Pass permitted_path to the linker as is.\n\nNow that we have the fixed list of whitelisted libraries\nthere is no longer need to check if java_permitted_path is nullptr.\nIn fact checking it prevents custom classloaders created by apps\nfrom loading libraries using absolute path.\n\nBug: http://b/28659864\nChange-Id: I1bfc16a573b090f70f078ecccd0e4016939a5dc0\n(cherry picked from commit b31caa95ec1ab9da7b300544e9716c1cac92d8f8)\n"
    },
    {
      "commit": "b31caa95ec1ab9da7b300544e9716c1cac92d8f8",
      "tree": "3bbcffa2dbd5833476745d2916901c490590ef19",
      "parents": [
        "422492c5063956e4f69bdbe01a30b0bc54a5fb2c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 16 17:08:06 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 16 17:08:06 2016 -0700"
      },
      "message": "Pass permitted_path to the linker as is.\n\nNow that we have the fixed list of whitelisted libraries\nthere is no longer need to check if java_permitted_path is nullptr.\nIn fact checking it prevents custom classloaders created by apps\nfrom loading libraries using absolute path.\n\nBug: http://b/28659864\nChange-Id: I1bfc16a573b090f70f078ecccd0e4016939a5dc0\n"
    },
    {
      "commit": "17decbd637ab9dba0d87ea8cb92867c4117b5a7d",
      "tree": "9acca4fd18e26441324dd7f27c3196a01aa6cc45",
      "parents": [
        "69541606c1a6b6e1ee8b3b59fa5d592aee3e6851",
        "3f0a12622b8d35f1223945498a086e19c791bf24"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 11 21:29:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 11 21:29:15 2016 +0000"
      },
      "message": "Merge \"Move linker-namespace functions declarations\" am: 37ed923d1c\nam: 3f0a12622b\n\n* commit \u00273f0a12622b8d35f1223945498a086e19c791bf24\u0027:\n  Move linker-namespace functions declarations\n\nChange-Id: I6f3e8b5ef608e3b930510b5c483ec6e7963eb4f7\n"
    },
    {
      "commit": "c337cae9adcb538a4562641f97bdde933d085a82",
      "tree": "4a53e8cba0b77f1090df3cee41c4188b816324ac",
      "parents": [
        "6edd0c3a68f60541c31fd65080e52939f2be3bc2"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 09 17:51:51 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 11 14:20:12 2016 -0700"
      },
      "message": "Move linker-namespace functions declarations\n\nThey are intended for platform use only and we shouldn\u0027t have them\nin the public header file. This CL moves them to libnativeloader\nprivate header file.\n\nBug: http://b/28174921\nChange-Id: I01cf446d2d8d7cf6f9e31130aa3d4e54fbbbb9fc\n(cherry picked from commit 6796522256b4cd861d3ebaf8264bd272b3c7441f)\n"
    },
    {
      "commit": "37ed923d1c08b8b9204a6a66f11bbf0b4375d35b",
      "tree": "6eb08ee15c46d780880d66c3d844169e20165922",
      "parents": [
        "e674d32d2d2816255c836cb7eed51eee6c9e8147",
        "6796522256b4cd861d3ebaf8264bd272b3c7441f"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 11 21:14:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 11 21:14:41 2016 +0000"
      },
      "message": "Merge \"Move linker-namespace functions declarations\""
    },
    {
      "commit": "d7cbb6f053c29c9967c25b5723be32ae6d26f97d",
      "tree": "02f8d7918d94d9f8d29f7f83abe86727fcfcad9b",
      "parents": [
        "ddc6a4a0a6d5ee2faab9021ff302142033b16842",
        "6edd0c3a68f60541c31fd65080e52939f2be3bc2"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 11 05:03:07 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 11 05:03:07 2016 +0000"
      },
      "message": "Merge \"nativeloader: Ignore empty java_permitted_path\" into nyc-dev\nam: 6edd0c3a68\n\n* commit \u00276edd0c3a68f60541c31fd65080e52939f2be3bc2\u0027:\n  nativeloader: Ignore empty java_permitted_path\n\nChange-Id: I1777b3a05d2e233000815172cfa1e56326be634b\n"
    },
    {
      "commit": "72ca40f738a86d9bb8d1cdfb06ce20ca4493bf61",
      "tree": "f300078df2d351f3a83268a7c8be66290d46eb8f",
      "parents": [
        "0756fae4f1aea5072ed820087b2487b408194c38"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 10 16:21:25 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 10 22:02:05 2016 -0700"
      },
      "message": "nativeloader: Ignore empty java_permitted_path\n\nPassing empty permitted path should result in no-op.\nThis addresses review comment on CL with commit\nf334cbf0e1425633bef96a21b0ce9e30f4c6ffa9\n\nBug: http://b/28639227\nChange-Id: I4a4540e522e90a145a374939921932c86f35e88d\n(cherry picked from commit d0b1531929d76411d964d4077d441d751e2c01fb)\n"
    },
    {
      "commit": "ddc6a4a0a6d5ee2faab9021ff302142033b16842",
      "tree": "03e89cdb5b83cee8ba261ac4956ce819f9e5ebf6",
      "parents": [
        "8f79183a11200edcc73dc39fdfdf691892094fe5",
        "5cd1e6822abd016e5ee6e642528b39acaf15ae55"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 11 01:30:32 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 11 01:30:32 2016 +0000"
      },
      "message": "Merge \"Check if public namespace has already been initialized\" am: 0756fae4f1\nam: 5cd1e6822a\n\n* commit \u00275cd1e6822abd016e5ee6e642528b39acaf15ae55\u0027:\n  Check if public namespace has already been initialized\n\nChange-Id: I13740764783765256af2fb1672fbfc5592147760\n"
    },
    {
      "commit": "0756fae4f1aea5072ed820087b2487b408194c38",
      "tree": "2d2bc04190d65867b5fa897df68878f8c053d996",
      "parents": [
        "3fb5f1380671b6b9d3b511fc2b80051a14313dec",
        "80ddb8f5517b4632307705858c3402081583a456"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 11 01:23:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 11 01:23:20 2016 +0000"
      },
      "message": "Merge \"Check if public namespace has already been initialized\""
    },
    {
      "commit": "d0b1531929d76411d964d4077d441d751e2c01fb",
      "tree": "aa8e0c632ad9f3adc296dc09c68d249d9b352bb3",
      "parents": [
        "f334cbf0e1425633bef96a21b0ce9e30f4c6ffa9"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 10 16:21:25 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 10 17:32:38 2016 -0700"
      },
      "message": "nativeloader: Ignore empty java_permitted_path\n\nPassing empty permitted path should result in no-op.\nThis addresses review comment on CL with commit\nf334cbf0e1425633bef96a21b0ce9e30f4c6ffa9\n\nBug: http://b/28639227\nChange-Id: I4a4540e522e90a145a374939921932c86f35e88d\n"
    },
    {
      "commit": "637da4eeeb3ac023a8af497ee91cf3c871d4b6dc",
      "tree": "f2986e8a020aaf80393fdf501e1d90bd3a747aee",
      "parents": [
        "c5016de66b6d778dd7c292e215aad6b5c079e92c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 10 10:39:48 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 10 15:31:18 2016 -0700"
      },
      "message": "Extend white-listed directories to include /mnt/expand\n\nApps on sdcard live under /mnt/expand and therefore\nthis directory should be under linker namespaces\npermitted_path.\n\nBug: http://b/28639227\nChange-Id: I462f9f23656c95d9c2a48bb3f513abcd9d08f340\n(cherry picked from commit f334cbf0e1425633bef96a21b0ce9e30f4c6ffa9)\n"
    },
    {
      "commit": "f334cbf0e1425633bef96a21b0ce9e30f4c6ffa9",
      "tree": "ea96d0254bf8bee283020a4384cd17d7d7260ea5",
      "parents": [
        "cf9892b6d1b0138bdf2341aaa0670c43af27cb85"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 10 10:39:48 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 10 10:39:48 2016 -0700"
      },
      "message": "Extend white-listed directories to include /mnt/expand\n\nApps on sdcard live under /mnt/expand and therefore\nthis directory should be under linker namespaces\npermitted_path.\n\nBug: http://b/28639227\nChange-Id: I462f9f23656c95d9c2a48bb3f513abcd9d08f340\n"
    },
    {
      "commit": "80ddb8f5517b4632307705858c3402081583a456",
      "tree": "a6473b1fd9f078db48c0dbc808a80e3a2652f417",
      "parents": [
        "179fea40bb1ed2da183f3a2a6398d1c68b9f6f32"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 09 18:12:00 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 09 18:12:00 2016 -0700"
      },
      "message": "Check if public namespace has already been initialized\n\nThere is no point in reading/loading the list of public\nlibraries once public namespace is already initialized.\n\nChange-Id: I5a53c46bb57b8de241ba521a6321c12e94a76476\n"
    },
    {
      "commit": "6796522256b4cd861d3ebaf8264bd272b3c7441f",
      "tree": "b59d1e01f615e36f04fdcea78027f1103bb048f0",
      "parents": [
        "179fea40bb1ed2da183f3a2a6398d1c68b9f6f32"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 09 17:51:51 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 09 18:09:06 2016 -0700"
      },
      "message": "Move linker-namespace functions declarations\n\nThey are intended for platform use only and we shouldn\u0027t have them\nin the public header file. This CL moves them to libnativeloader\nprivate header file.\n\nBug: http://b/28174921\nChange-Id: I01cf446d2d8d7cf6f9e31130aa3d4e54fbbbb9fc\n"
    },
    {
      "commit": "cf9892b6d1b0138bdf2341aaa0670c43af27cb85",
      "tree": "3c6fed38a2454bd68921a581c85e26768eed516a",
      "parents": [
        "08660a811e078d3a6ce950a340a1b9071cfd7e8d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 09 10:55:50 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 09 12:21:55 2016 -0700"
      },
      "message": "nativeloader: Fix the case of search_path \u003d\u003d null\n\nWhen user creates custom classloader which does not extend\nBaseDexClassLoader the librarySearchPath gets set to null\nby java.lang.Runtime.doLoad().\n\nThis patch makes nativeloader correctly handle it.\n\nBug: http://b/28659864\nChange-Id: I1b61c6bc952984d7c49775a9178fc3270948e62a\n(cherry picked from commit 8a0425b86acd4f20ef68ef350ac32e1c5057c558)\n"
    },
    {
      "commit": "8a0425b86acd4f20ef68ef350ac32e1c5057c558",
      "tree": "d7d92f136687cf30e93c2e3c240df9eeb0e0d400",
      "parents": [
        "fc2a8b2bd605e4639db0feaab49c516c0ae90180"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 09 10:55:50 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 09 10:55:50 2016 -0700"
      },
      "message": "nativeloader: Fix the case of search_path \u003d\u003d null\n\nWhen user creates custom classloader which does not extend\nBaseDexClassLoader the librarySearchPath gets set to null\nby java.lang.Runtime.doLoad().\n\nThis patch makes nativeloader correctly handle it.\n\nBug: http://b/28659864\nChange-Id: I1b61c6bc952984d7c49775a9178fc3270948e62a\n"
    },
    {
      "commit": "7d02829636cfb4d23c5665b1481ccb3d20f27b56",
      "tree": "bcf744ed9f818ea8005eedb613d77a2248726da6",
      "parents": [
        "fd1eee58f985b3d528ca352ff278d7b200390ab2"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 05 17:30:24 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 06 13:16:45 2016 -0700"
      },
      "message": "Add public libs from an environment variable\n\nThis is enabled only for builds with ro.debuggable\u003d1\nIt is intended for use only in tests using dalvikvm\nand needing access to platform libraries.\n\nBug: http://b/28449304\nChange-Id: I402457d0da542996ccf265aeaa305f09881e4333\n(cherry picked from commit 4ddabd01bf361cadb33baa7213e2ca5129b938f0)\n"
    },
    {
      "commit": "4ddabd01bf361cadb33baa7213e2ca5129b938f0",
      "tree": "bb26ecba4d0041eb43053dc83ef868f5caa19e8f",
      "parents": [
        "830561bb2b34ca8c09be4860380e9032202c3112"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 05 17:30:24 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 06 11:39:47 2016 -0700"
      },
      "message": "Add public libs from an environment variable\n\nThis is enabled only for builds with ro.debuggable\u003d1\nIt is intended for use only in tests using dalvikvm\nand needing access to platform libraries.\n\nBug: http://b/28449304\nChange-Id: I402457d0da542996ccf265aeaa305f09881e4333\n"
    },
    {
      "commit": "ad717d6566eb381fb0ef47941c000789f048cf81",
      "tree": "7f790289ef9df142a64b2b81d0c46e9546453fec",
      "parents": [
        "f9f76146a1d0f05654be8963e78c2ed6c56d4a57",
        "7a1f9518f77e33e40efcec7ace0ee5d3855ccd8b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 04 23:38:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 04 23:38:55 2016 +0000"
      },
      "message": "Merge \"nativeloader: Add CloseNativeLibrary() method\""
    },
    {
      "commit": "7a1f9518f77e33e40efcec7ace0ee5d3855ccd8b",
      "tree": "aec54f34318b8c2e70dd6736c7cb578089c5451c",
      "parents": [
        "bfd6a0f24dbcf00db61c283249e5e5a4f6a9d8a6"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 03 14:55:25 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 04 15:26:33 2016 -0700"
      },
      "message": "nativeloader: Add CloseNativeLibrary() method\n\nThis method is called by art on UnloadNativeLibraries()\n\nBug: http://b/28406866\nChange-Id: Ibccff93c83d6ccd3d0a1c0294a64b09281b4e05e\n(cherry picked from commit 09a516bf161c5cabdaa3a67df5aa7fbac667f5f9)\n"
    },
    {
      "commit": "09a516bf161c5cabdaa3a67df5aa7fbac667f5f9",
      "tree": "5e8fa828d391d0abd233bec62965c671ea3447b1",
      "parents": [
        "3174bda7ac07465400a4b38b272ebe5126212ba6"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 03 14:55:25 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 03 14:55:25 2016 -0700"
      },
      "message": "nativeloader: Add CloseNativeLibrary() method\n\nThis method is called by art on UnloadNativeLibraries()\n\nBug: http://b/28406866\nChange-Id: Ibccff93c83d6ccd3d0a1c0294a64b09281b4e05e\n"
    },
    {
      "commit": "911472da85bb1caa3e28d86c17ade347d06f33b3",
      "tree": "14c5bff543c6071a7d48b67f5698eac5043d2a56",
      "parents": [
        "bfd6a0f24dbcf00db61c283249e5e5a4f6a9d8a6"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 02 10:43:16 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 02 13:35:32 2016 -0700"
      },
      "message": "nativeloader: Add Reset capabilities\n\nIn the case when VM is restarted all weak references\nfrom the old VM become invalid. In such event NativeLoader\nneeds to clear the list of classloaders from old VM.\n\nBug: http://b/28453840\nBug: http://b/28449304\nChange-Id: I2268c1e21cf940c57ddc5f0312f56b71aa702134\n(cherry picked from commit be4ca3afc0636b314d676480156eb6977739dd00)\n"
    },
    {
      "commit": "be4ca3afc0636b314d676480156eb6977739dd00",
      "tree": "71f7f7218be57efc66ab91595cb27761844e39bc",
      "parents": [
        "721c9ce4a55c13716f263dc7a9cbda92b349b4b7"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 02 10:43:16 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 02 10:43:16 2016 -0700"
      },
      "message": "nativeloader: Add Reset capabilities\n\nIn the case when VM is restarted all weak references\nfrom the old VM become invalid. In such event NativeLoader\nneeds to clear the list of classloaders from old VM.\n\nBug: http://b/28453840\nBug: http://b/28449304\nChange-Id: I2268c1e21cf940c57ddc5f0312f56b71aa702134\n"
    },
    {
      "commit": "0b5651e1588c2fee6a587314993a166a77068974",
      "tree": "38d46db4c123cc4496600050b18d9cac0fe04f8e",
      "parents": [
        "5539db0b4f915bf15de742d1378904a553dc80dc"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 21 16:42:48 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 27 13:43:33 2016 -0700"
      },
      "message": "native_loader: Use ANDROID_ROOT environment variable\n\nReplace \"/system\" with ANDROID_ROOT environment variable.\n\nBug: http://b/28320913\nBug: http://b/28082914\nChange-Id: Ib039722cb059bae1635b45f6af20ef0180e83ba9\n(cherry picked from commit 7e8cee8fb2e3d92e60554296eebe9d1e75cfd473)\n"
    },
    {
      "commit": "5539db0b4f915bf15de742d1378904a553dc80dc",
      "tree": "692cb3a71c1756a1b523f23802193f8b32d0db31",
      "parents": [
        "f92838ca1d5e315943022b7225a6c97c6c1283f4"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 20 16:07:30 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 27 11:44:42 2016 -0700"
      },
      "message": "Enable namespaces for all target sdk versions\n\nWe previously relied on the fact that target sdk version 0\nimplies system_server, which is not true, target sdk version\nmay be set to 0 for other apps and it means 1 - the earliest\nversion of android. This change enables namespaces for\napps targeting all sdk version and for system_server.\n\nBug: http://b/27702070\nChange-Id: I16fbdeb6868c7035aec71132c80c150c08ea2cc3\n(cherry picked from commit 213676b88019016f8c968a05c50a196e2aaaeff8)\n"
    },
    {
      "commit": "7e8cee8fb2e3d92e60554296eebe9d1e75cfd473",
      "tree": "27cf209223b4ed8a2f797927afb829c408c0e291",
      "parents": [
        "213676b88019016f8c968a05c50a196e2aaaeff8"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 21 16:42:48 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 21 16:42:48 2016 -0700"
      },
      "message": "native_loader: Use ANDROID_ROOT environment variable\n\nReplace \"/system\" with ANDROID_ROOT environment variable.\n\nBug: http://b/28320913\nBug: http://b/28082914\nChange-Id: Ib039722cb059bae1635b45f6af20ef0180e83ba9\n"
    },
    {
      "commit": "213676b88019016f8c968a05c50a196e2aaaeff8",
      "tree": "48e5effa290575710d0b459681d683f831836bcb",
      "parents": [
        "d61bfb9a79e3e7a85738341a8cbc67abf4e56e8b"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 20 16:07:30 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 21 11:35:57 2016 -0700"
      },
      "message": "Enable namespaces for all target sdk versions\n\nWe previously relied on the fact that target sdk version 0\nimplies system_server, which is not true, target sdk version\nmay be set to 0 for other apps and it means 1 - the earliest\nversion of android. This change enables namespaces for\napps targeting all sdk version and for system_server.\n\nBug: http://b/27702070\nChange-Id: I16fbdeb6868c7035aec71132c80c150c08ea2cc3\n"
    },
    {
      "commit": "3150fa25140fd5e2d66569841bd8e8eba07adb27",
      "tree": "c4a5fcfdca5f0e97df5459ca06b77537c7a22bf3",
      "parents": [
        "578bc039dc66e8ddaf186d901f9d043e506e1950"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Apr 15 10:18:43 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Apr 15 12:42:44 2016 -0700"
      },
      "message": "Remove workaround for libart greylist.\n\nBug: 27775991\n\nChange-Id: I77f03b95f70957df58e666b011a07cfc2a33b480\n"
    },
    {
      "commit": "b614045894c99fb1d35179d3e0a0bab0d5dec666",
      "tree": "51beec8b50e0fd96f71001dd169f180207ab5b82",
      "parents": [
        "15fea7ae1a4a179bb2c2e4066bfbfb312eec56e0"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 06 18:24:08 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Apr 11 13:13:18 2016 -0700"
      },
      "message": "Allow vendors to extend the list of public libs\n\nnative_loader adds libraries specified in the\n(optional) file: /vendor/etc/public.libraries.txt\nto the list of public native libraries.\n\nBug: http://b/27073931\nChange-Id: I927193cce99d48c3395bd0e6c373ae9fad0f13f4\n(cherry picked from commit 617f495cf7a8e07b433058fb7f4c7611b584fda9)\n"
    },
    {
      "commit": "617f495cf7a8e07b433058fb7f4c7611b584fda9",
      "tree": "c13fefc843445d5b516100826c9735d7c7bf0605",
      "parents": [
        "adf1cdeda07acfa6fc96627f8d4fca5b98bb7428"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 06 18:24:08 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 06 18:24:08 2016 -0700"
      },
      "message": "Allow vendors to extend the list of public libs\n\nnative_loader adds libraries specified in the\n(optional) file: /vendor/etc/public.libraries.txt\nto the list of public native libraries.\n\nBug: http://b/27073931\nChange-Id: I927193cce99d48c3395bd0e6c373ae9fad0f13f4\n"
    },
    {
      "commit": "4f8bb2577a7394f7c9ba0e4530f6374b8cbf20fa",
      "tree": "de508848bc872c6feac62c816aecec68bf676641",
      "parents": [
        "5e635f7c06a01ec635a9774d4cf942e058dddb11"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 29 16:10:02 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 29 16:12:40 2016 -0700"
      },
      "message": "Adjust check for target_sdk_version for workarounds\n\ntarget_sdk_version\u003d0 is a valid version, it basically\nmeans 1 (the very first version of android) not current one.\n\nBug: http://b/27702070\nChange-Id: Ib7843718f364b975e1d09a05377bf8580b407d9d\n"
    },
    {
      "commit": "7f9a1aaf05dda20904f08a667dadcf555a41477e",
      "tree": "999befa80dad8266e9fb0fd6efc33eb60a70276c",
      "parents": [
        "c1b10a9e84d675a3611e8bb5ee93001e8a286932"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 22 13:59:59 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 29 11:12:18 2016 -0700"
      },
      "message": "A workaround for apps using custom classloaders\n\nAllow custom classloaders to load native libraries\nfrom anywhere under /data\n\nBug: http://b/27588281\nChange-Id: Idb87b33361903f52b734ddd0ceaabe1ff9c281eb\n"
    },
    {
      "commit": "d1fdb9883011f57ab7a3fdcde4d835ef6918b14c",
      "tree": "66fc8c184162c859a1237577aa65943b3d32a0bf",
      "parents": [
        "371e7ea170d749489a0eb7085347f58b7be63734"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 15 13:51:26 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Mar 17 10:54:19 2016 -0700"
      },
      "message": "Move list of public libraries to a config file\n\nThis list contains libraries that should directly or indirectly\nbe accessible to apps for the platform. Note that this list is\nnot device specific but rather device class specific.\n\nFor now we have 2 separate lists; one for Android Phones and Tablets,\nand another one for Android Wear devices.\n\nBug: http://b/27546414\nBug: http://b/22548808\nChange-Id: I83de5e3cf67392d0e9af66f70123898bd5997146\n(cherry picked from commit 4b0e963872715775a63f36b385150cba4801b1d0)\n"
    },
    {
      "commit": "4b0e963872715775a63f36b385150cba4801b1d0",
      "tree": "f2af91f4c9afec4112f507850340b68b92285a32",
      "parents": [
        "9c0a2029771846ecea9121cf249169e581f6f7f5"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 15 13:51:26 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Mar 17 09:45:52 2016 -0700"
      },
      "message": "Move list of public libraries to a config file\n\nThis list contains libraries that should directly or indirectly\nbe accessible to apps for the platform. Note that this list is\nnot device specific but rather device class specific.\n\nFor now we have 2 separate lists; one for Android Phones and Tablets,\nand another one for Android Wear devices.\n\nBug: http://b/27546414\nBug: http://b/22548808\nChange-Id: I83de5e3cf67392d0e9af66f70123898bd5997146\n"
    },
    {
      "commit": "9c0a2029771846ecea9121cf249169e581f6f7f5",
      "tree": "05a59884b3c476bbd33140cc63c0856920424bf8",
      "parents": [
        "75dda7551f6a3499c0c45ed0f9530353c7616357"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 16 13:54:33 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 16 13:54:33 2016 -0700"
      },
      "message": "Revert \"libnativeloader: Make webviewchromium so file optional\"\n\nThis reverts commit 75dda7551f6a3499c0c45ed0f9530353c7616357.\n\nBug: http://b/27546414\n"
    },
    {
      "commit": "75dda7551f6a3499c0c45ed0f9530353c7616357",
      "tree": "e93c1dbb5b8448293f4d62954b212572fd7e839c",
      "parents": [
        "53263ffa00b291de92dd4cb399b1cb5218d363f6"
      ],
      "author": {
        "name": "Prashant Malani",
        "email": "pmalani@google.com",
        "time": "Wed Mar 16 12:59:53 2016 -0700"
      },
      "committer": {
        "name": "Prashant Malani",
        "email": "pmalani@google.com",
        "time": "Wed Mar 16 13:03:12 2016 -0700"
      },
      "message": "libnativeloader: Make webviewchromium so file optional\n\nNot all android devices ship with Webview. The requirement of\nlibwebviewchromium_plat_support.so to be loaded while initializing the\nandroid namespace is therefore liable to cause a crash on devices that\ndon\u0027t support or use Webview. Therefore, this patch makes this\nrequirement conditional, but enabled by default.\n\nTo remove the dependency, device make files should add the following:\n\nTARGET_IGNORE_WEBVIEW_CHROMIUM :\u003d true\n\nBug: 27336841\nBug: 27546414\nChange-Id: Iaec1b58236356d981504ea8f716413ea334ca4f4\n"
    },
    {
      "commit": "5f28b8460d9e53c5ccbe154ec244c9ae56b4a97c",
      "tree": "f08d97d92b08ea48c5950fd468d6bb466eaa9357",
      "parents": [
        "a996c2963a9c1fa9d2339e560c7d6dad2be4a2f8"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 04 11:00:37 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 04 15:02:16 2016 -0800"
      },
      "message": "Handle the case when libart.so is not in use\n\nIn the case when libartd.so is used libart.so does not have\nto be included in the public namespace.\n\nBug: http://b/27496326\nChange-Id: I464bafec1d9da5c3f3f03fef02af3f34bf377297\n"
    },
    {
      "commit": "1dff1aa97c4ee3ea1436e95fea2fb20c7e8cbead",
      "tree": "7ef95ff719bff398b4580ff24c4c1787a88b0744",
      "parents": [
        "4cd07681158830ec49f763f746d6644099a73b42"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 29 13:21:43 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 29 13:31:26 2016 -0800"
      },
      "message": "Fix locking of libnativeloader\n\nThis commit fixes race condition introduced in\nd047c925af62e1fe28fcd1c1940df4afe18d458a\n\nBug: http://b/27189432\nBug: http://b/22548808\nChange-Id: I5d94f130937f18d3443878b3521715a8f87427e0\n(cherry picked from commit 34d5a20c8bb57adae8711c7f9d90a77fbd4043c7)\n"
    },
    {
      "commit": "34d5a20c8bb57adae8711c7f9d90a77fbd4043c7",
      "tree": "1cdcfdbf72fa74dda38841ccb21031aa852cb20d",
      "parents": [
        "99fb01e42a184fa8a206c84be12b7e34cc2947bb"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 29 13:21:43 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 29 13:21:43 2016 -0800"
      },
      "message": "Fix locking of libnativeloader\n\nThis commit fixes race condition introduced in\nd047c925af62e1fe28fcd1c1940df4afe18d458a\n\nBug: http://b/27189432\nBug: http://b/22548808\nChange-Id: I5d94f130937f18d3443878b3521715a8f87427e0\n"
    },
    {
      "commit": "4cd07681158830ec49f763f746d6644099a73b42",
      "tree": "66258f61b5e4729627fe57adfa597d1d27b64ce7",
      "parents": [
        "a887c4faca223765956200a86316eee196a49b43"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 23 14:23:51 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 26 18:38:58 2016 -0800"
      },
      "message": "Added function to explicitly initialize a namespace\n\nThis change replaces lazy get-or-create logic for\nlinker namespaces with the explicit one.\n\nApplicationLoaders.getClassLoader(..) is now resposible for\nthe namespace initialization for PathClassLoaders.\n\nBug: http://b/27189432\nBug: http://b/22548808\nChange-Id: Ife987c3ca1db33a47c20f363a5ed61512be8b5a7\n(cherry picked from commit d047c925af62e1fe28fcd1c1940df4afe18d458a)\n"
    },
    {
      "commit": "d047c925af62e1fe28fcd1c1940df4afe18d458a",
      "tree": "8fb2ac4e56eed5f78641efba6f00506156a74687",
      "parents": [
        "b046e74beff221d96189c4142f42f18730565921"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 23 14:23:51 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 25 11:33:32 2016 -0800"
      },
      "message": "Added function to explicitly initialize a namespace\n\nThis change replaces lazy get-or-create logic for\nlinker namespaces with the explicit one.\n\nApplicationLoaders.getClassLoader(..) is now resposible for\nthe namespace initialization for PathClassLoaders.\n\nBug: http://b/27189432\nBug: http://b/22548808\nChange-Id: Ife987c3ca1db33a47c20f363a5ed61512be8b5a7\n"
    },
    {
      "commit": "6f80022908e79cb64b95828beb2883c7c3ce2a2c",
      "tree": "b0083ebbc7a1e829a76943f77a0b11c3449cc44c",
      "parents": [
        "d458730b649a044268807d1458867e3c1d0577b2"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 22 11:27:48 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 24 16:45:26 2016 -0800"
      },
      "message": "Add PreloadPublicNativeLibraries function\n\nShift responsibility of preloading native libraries to the user\nof the library. This lets applications that do not use jni but\ndepend on libnative_loader.so to avoid unnecessary preloads of\npublic libraries which could be expensive.\n\nBug: http://b/27245894\nChange-Id: I12a8100de5da639c068769bca21ecebff2b2d538\n(cherry picked from commit 426799d77014888315233253e96277bef13158eb)\n"
    },
    {
      "commit": "426799d77014888315233253e96277bef13158eb",
      "tree": "8153828c125d5c27cec21f90389ed6642a9fe60b",
      "parents": [
        "b236ff71562ab93a5474831edb9c8dced309ea74"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 22 11:27:48 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 24 23:30:27 2016 +0000"
      },
      "message": "Add PreloadPublicNativeLibraries function\n\nShift responsibility of preloading native libraries to the user\nof the library. This lets applications that do not use jni but\ndepend on libnative_loader.so to avoid unnecessary preloads of\npublic libraries which could be expensive.\n\nBug: http://b/27245894\nChange-Id: I12a8100de5da639c068769bca21ecebff2b2d538\n"
    },
    {
      "commit": "2f9cd05c47e7739cda5f931c120cc1f55e2a9e82",
      "tree": "9124ba960b377c3461b867ffdea119e85150abbb",
      "parents": [
        "5dac46ac944da477c1abcba70cf424064ca233fe",
        "dee3d96c01d6de65b3d890012162a367bb6918b7"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Feb 24 00:50:09 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 00:50:10 2016 +0000"
      },
      "message": "Merge \"native_loader: add libvulkan.so to public native library list\" into nyc-dev"
    },
    {
      "commit": "dee3d96c01d6de65b3d890012162a367bb6918b7",
      "tree": "7049848ceb4d8ef61889ec2f5dfb87320a5f6ec7",
      "parents": [
        "85def183bd5a01ef8b406ce304a668a05d4c3612"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Feb 23 16:16:47 2016 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Feb 23 16:16:47 2016 -0800"
      },
      "message": "native_loader: add libvulkan.so to public native library list\n\nChange-Id: I2228af5ec4b815631a9c5ca745718807d58028a3\n"
    },
    {
      "commit": "f44ecde58832372ca0edf053eeee44ad56f69944",
      "tree": "bef8693d2e24c75db7731986a99534a0a3684414",
      "parents": [
        "c914ebd4841ba9e5b8f446dfc5b6dfeecb56531f"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 22 13:48:22 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 23 11:50:44 2016 -0800"
      },
      "message": "nativeloader: Export FindNamespaceByClassLoader\n\nBug: http://b/27189432\nChange-Id: Ib80dcce949276ee620f601c47b20f783708e8e85\n(cherry picked from commit 0cd10d83e4e14300d03a60f28547b90d0c805579)\n"
    },
    {
      "commit": "c914ebd4841ba9e5b8f446dfc5b6dfeecb56531f",
      "tree": "3113167adff531f060c4a48bbbe11b6b82983b3e",
      "parents": [
        "32912090e6c1a8af4ed36615db84ab500e7c09e1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 22 13:02:35 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 23 11:50:28 2016 -0800"
      },
      "message": "nativeloader: refactor FindNamespaceByClassLoader method\n\nFindNamespaceByClassLoader returns android_namespace_t* to make\nit suitable for exporting this functionality.\n\nBug: http://b/27189432\nChange-Id: Ifef3de753192178e0184fb114596fe956fde2826\n(cherry picked from commit 34fa704df45c5f74aeb5230e4bf3930585cf32fb)\n"
    },
    {
      "commit": "2a7f7e0090d9c59954d117fee07955cfeee570c3",
      "tree": "29191ffe5cb2eae01aea10ae4eb76b8099408e2e",
      "parents": [
        "aed972dead82d2a74c3a9be296ba3390477d30cf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 12 18:07:29 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 22 15:23:22 2016 -0800"
      },
      "message": "Move libnativeloader headers into libnativeloader.\n\nChange-Id: I227676276da1b08a84486f29fb0e1502c8dbdf4a\n(cherry picked from commit e2b4e1e00cc5263ca7c0adbe8f8418f5c98ea5fe)\n"
    },
    {
      "commit": "0cd10d83e4e14300d03a60f28547b90d0c805579",
      "tree": "79d4e39090ef037f6cd27ac4d58bd38f7f5b996f",
      "parents": [
        "34fa704df45c5f74aeb5230e4bf3930585cf32fb"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 22 13:48:22 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 22 13:48:22 2016 -0800"
      },
      "message": "nativeloader: Export FindNamespaceByClassLoader\n\nBug: http://b/27189432\nChange-Id: Ib80dcce949276ee620f601c47b20f783708e8e85\n"
    },
    {
      "commit": "34fa704df45c5f74aeb5230e4bf3930585cf32fb",
      "tree": "594590801af3912d0ffa1a6c971ab6dc4cd18bba",
      "parents": [
        "d633106d3e43a77bb509ce1cf259b14f78f246ae"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 22 13:02:35 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 22 13:15:28 2016 -0800"
      },
      "message": "nativeloader: refactor FindNamespaceByClassLoader method\n\nFindNamespaceByClassLoader returns android_namespace_t* to make\nit suitable for exporting this functionality.\n\nBug: http://b/27189432\nChange-Id: Ifef3de753192178e0184fb114596fe956fde2826\n"
    },
    {
      "commit": "dab56737ca898d913c79c4ded76d78d8b3f5ffa3",
      "tree": "f7ab065c51795dc4478afa4712ef33152fe76233",
      "parents": [
        "7bbb4a0c49d22f19a19fae594706e73c06ad3b42"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 17 17:20:15 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 17 17:22:20 2016 -0800"
      },
      "message": "Limit libart.so visibility to apps targeting \u003c\u003d M\n\nAdd libart.so to the list of public libraries only for\napps targeting android M and below.\n\nBug: http://b/27210062\nBug: http://b/26436837\nChange-Id: I1ed3b0335a343044a76273741ea8770dcce12ebe\n"
    },
    {
      "commit": "e2b4e1e00cc5263ca7c0adbe8f8418f5c98ea5fe",
      "tree": "3ee23f5c018aa71a4b9e3dce4e271153b7dd008a",
      "parents": [
        "1697f4ee71a9e123432c09c068615d9f5a49780b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 12 18:07:29 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 12 18:07:29 2016 -0800"
      },
      "message": "Move libnativeloader headers into libnativeloader.\n\nChange-Id: I227676276da1b08a84486f29fb0e1502c8dbdf4a\n"
    },
    {
      "commit": "55bbb0d88ada4d7394411dba004d2af6086da6a4",
      "tree": "9ce61e69f089834f852383c5bf02c29010020248",
      "parents": [
        "718625010d839481cdef5f0305f2622a0aa87cd8"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 10 14:09:22 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 11 10:33:35 2016 -0800"
      },
      "message": "Preload public native libraries\n\nPreload libraries needed by the public namespace\nat the earlier stage. This saves time on\nInitPublicNamespace and saves memory because\nthe libraries are linked before zygote fork.\n\nBug: http://b/26409579\nChange-Id: I59153a4180b930f31b542d8d2cb17b5d63c36774\n(cherry picked from commit d68c8e9f84557484ef3e8a3ee03398d22f109fa8)\n"
    },
    {
      "commit": "d68c8e9f84557484ef3e8a3ee03398d22f109fa8",
      "tree": "24b10a645e556c9ed39ac71c5f9b5ee6b4c0c6a5",
      "parents": [
        "9136922045978385be99b0171c2c873aa6c2e186"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 10 14:09:22 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 11 10:22:38 2016 -0800"
      },
      "message": "Preload public native libraries\n\nPreload libraries needed by the public namespace\nat the earlier stage. This saves time on\nInitPublicNamespace and saves memory because\nthe libraries are linked before zygote fork.\n\nBug: http://b/26409579\nChange-Id: I59153a4180b930f31b542d8d2cb17b5d63c36774\n"
    },
    {
      "commit": "4e9bda387315c88326813b9d13265bccaa22ceaf",
      "tree": "7714446853aac174da013af774f690cd93f6ccc5",
      "parents": [
        "4659c6311463485e16c27f9a11cbc88fc67ee86d",
        "819da66bec28c31d564ba695d4d32f1a4727cad1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 02 20:10:12 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 02 20:10:12 2016 +0000"
      },
      "message": "Merge \"Include icu4c libraries to the list of public libs\" am: 17e33647f0\nam: 819da66bec\n\n* commit \u0027819da66bec28c31d564ba695d4d32f1a4727cad1\u0027:\n  Include icu4c libraries to the list of public libs\n"
    },
    {
      "commit": "c24ca894f541c78c661ad40ec9bcf78384f2b26d",
      "tree": "f6449d0302f639f20c25ca58208a4f771dca9df3",
      "parents": [
        "650f6809a39d8116f8f13f527c65372b80070f5e"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 02 10:40:08 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 02 11:06:31 2016 -0800"
      },
      "message": "Include icu4c libraries to the list of public libs\n\nNote that with this change the linker will ignore\nicu libraries provided by an app because public\nlibraries are always provided by system. At this point\nit does not affect any apps because before Marshmallow\nall of them were getting platform version of icu4c\nlibs anyways (they will be getting their own copy of the\nlibrary only in Marshmallow release).\n\nBug: http://b/26217329\nBug: http://b/26929349\nChange-Id: I681cab43c9f28ec22319d9f0424bd3df00743a5f\n"
    },
    {
      "commit": "73d2bc07b25e8ee0794e6b63f331a72de631b1be",
      "tree": "ad6b44c10dd6402f0c8a375f82a95cb830e22eee",
      "parents": [
        "d14662e3bbeb046a848775e6cbcc88044fb6c1a9"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 26 10:47:49 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 26 10:49:24 2016 -0800"
      },
      "message": "Add libcamera2ndk.so to the list of public libraries\n\nBug: http://b/23012001\nChange-Id: If5bfd9ea15fcfe508aee4731d7f84fe517bfb43e\n"
    },
    {
      "commit": "e803dd8aec98aa8e2c0679affd3cb661719e6f84",
      "tree": "339971aeeac8ee51a2b35d83d14dce7b6e96d514",
      "parents": [
        "17582e1c7fa1d566083b9cca0b8d4f4982f568bd",
        "108eaa1429ec7cffd5aa38a97674fb3565ad581e"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jan 14 02:08:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 14 02:08:33 2016 +0000"
      },
      "message": "Merge \"Add libRS.so to the list of public libraries\" am: ebe04a9b89\nam: 108eaa1429\n\n* commit \u0027108eaa1429ec7cffd5aa38a97674fb3565ad581e\u0027:\n  Add libRS.so to the list of public libraries\n"
    },
    {
      "commit": "cdb6fee17c29dd6b2c84fdb05dbcc382e24e67c0",
      "tree": "b5feace82cd373ce6b14f1f066193158d248b291",
      "parents": [
        "7b7b2da6b82d9477591a183efde262ead33812fb"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jan 13 15:19:35 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jan 13 15:19:35 2016 -0800"
      },
      "message": "Add libRS.so to the list of public libraries\n\nBug: http://b/26509995\nChange-Id: I8c0ae3629928171d229a901cfc997780665e3ae8\n"
    },
    {
      "commit": "6082622b1805e925412100c736fb98143d9390d7",
      "tree": "cb785b0b9ce0fcc58866688376e3ada8ed3c8f90",
      "parents": [
        "ba01a14659a981deab606223baaba7b22ef5c849",
        "ce292ad06ccd38beaa2d7bf8add13dbdf01f91e5"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 12 04:52:47 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 12 04:52:47 2016 +0000"
      },
      "message": "Merge \"Make libwebviewchromium_plat_support.so public\" am: cd60e4bdd6\nam: ce292ad06c\n\n* commit \u0027ce292ad06ccd38beaa2d7bf8add13dbdf01f91e5\u0027:\n  Make libwebviewchromium_plat_support.so public\n"
    },
    {
      "commit": "3d5a43449f414cde4b7602a20b764f28c58dd740",
      "tree": "d89fb98a3402d8be575acc017d30d7393e1cbeb3",
      "parents": [
        "c76e2a8dadaa1f6cd38ef125d381022c160a45db"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 11 14:53:59 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 11 14:53:59 2016 -0800"
      },
      "message": "Add libart.so to the list of public libraries\n\nThis is a temporary workaround for apps relying\non libart internal state.\n\nBug: http://b/26436837\nChange-Id: Ibd6a766c3c8edebe885d897565a72a7a407828c3\n"
    },
    {
      "commit": "90bf68e8d1388ecf0ff24de4e408ff35d0532730",
      "tree": "1839b16451ac04b876cdf7fe713b6a0637610e8b",
      "parents": [
        "19616ce100771d0f570bc9cf19d08fbbe8feec0f"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jan 08 12:35:38 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jan 08 12:35:38 2016 -0800"
      },
      "message": "Make libwebviewchromium_plat_support.so public\n\nAdd libwebviewchromium_plat_support.so to the list\nof public libraries.\n\nBug: http://b/26461431\nChange-Id: I958a1182198bf59d9b6fc818953212ce505d6bdd\n"
    },
    {
      "commit": "619ffb4f5bec53adcd0b204c61c0e4d1d6ab529e",
      "tree": "043cfd7e1ccbd8062e328faab293f90b5f7506ec",
      "parents": [
        "727aeb66865e1f8450c93404d6db5b6274e0df13"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 15 15:55:50 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 31 14:11:34 2015 -0800"
      },
      "message": "Revert \"Temporary disable linker-namespaces\"\n\nThis reverts commit c18ac7cd2bc6214745b91d74e249962ce9ff7d26.\n"
    },
    {
      "commit": "d2a6220001c9693664f8cf514f0653a4e1b859ea",
      "tree": "1313490e71211255b7d4d3cb011fb85f5304758b",
      "parents": [
        "0e6a23c7d557e6083af6fac6828aff4e4bc3750b"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 15 11:06:57 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Dec 19 23:38:28 2015 -0800"
      },
      "message": "Add parameter for shared namespaces\n\nShared namespaces are used for bundled app classloaders.\n\nBug: http://b/22548808\nBug: http://b/26165097\nChange-Id: I163033f70c50ef9ddb4164676c033ab30748964e\n(cherry picked from commit ef4639c1a5159726797dec719d84e3a88e96f8a0)\n"
    },
    {
      "commit": "c18ac7cd2bc6214745b91d74e249962ce9ff7d26",
      "tree": "91feefa90065c658a311c1648f0f5908a57724eb",
      "parents": [
        "d2d35df279bcc6535455459ba9bd6aff077b7ea3"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 11 18:15:41 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 11 18:15:41 2015 -0800"
      },
      "message": "Temporary disable linker-namespaces\n\nBug: http://b/26164393\nChange-Id: If6277407a6a5a4da9e3ad01dc45f57a7fc9954e4\n"
    },
    {
      "commit": "0d6e59407d7b57805a72fe4d3df03c5249ea7ae8",
      "tree": "f590d4490e1fe6e7f95837e6a985ba23596b36bb",
      "parents": [
        "9729392ffa40ed37aab7fd535c6644d20279bbf0"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 08 11:16:56 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 09 15:39:36 2015 -0800"
      },
      "message": "Apply permitted path to the classloader-namespace\n\nBug: http://b/25853516\nBug: http://b/22548808\nChange-Id: I283e6ee8d743bc3ab41aab9f36af0abbe729943f\n"
    },
    {
      "commit": "8b0471462e5bb9e81652a1a53cc786df9848feef",
      "tree": "6c10047401f5534fce3ca6e4bd34ff6fa3df261d",
      "parents": [
        "bfdc099650b2adcb51d9b0c3a74dae5987b77ed1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 08 10:38:59 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 08 10:38:59 2015 -0800"
      },
      "message": "Track rename of base/ to android-base/.\n\nChange-Id: I974d67b6568e913bfb7700d952be55b4073388ee\n"
    },
    {
      "commit": "ac1b1919f8d655f652e77f59cc52813199085cd9",
      "tree": "33cdc7c42a4e2e68fc4e93b2ed9f86c5075b1fca",
      "parents": [
        "c5e921fe529260db515d66184027e5631b172d45"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 01 13:56:44 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 07 12:59:02 2015 -0800"
      },
      "message": "Native loader as a separate library\n\nExtracted native loader to separate library in order to\nbe able to reuse it for NativeActivities related native code\nin libandroid_runtime.so\n\nBug: http://b/22548808\nChange-Id: Ibcf5ddcdc5aba22e32e4b72887840e9c171c1986\n"
    }
  ]
}
