)]}'
{
  "log": [
    {
      "commit": "14626a7c40471090745b7069310a6c6265671fc9",
      "tree": "c3b0b32abe59ecd16b65168034a6675fb02a7a78",
      "parents": [
        "a0130e8d2842a9a82e4fd4e811ee699272eb2e0b"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jul 02 23:17:58 2020 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 24 10:28:24 2020 +0000"
      },
      "message": "libnativeloader understands uses-native-library tag\n\nPreviously, libnativeloader provided all the partner-provided public\nshared libraries to apps unconditionally. Starting from Android S, apps\ntargeting S (or higher) get only the libs that are explicited listed\nas dependencies using the \u003cuses-native-library\u003e tag in the app manifest.\nThe libs not listed there are not available to the app even if they are\nregistered as public libraries.\n\nThe changed behavior affects new (S+) apps. Existing apps are not\naffected; they still get all the libraries.\n\nThe implementation is rather straightforward. The library accepts a new\nparameter soname_list from the framework, which is actually from the\n\u003cuses-native-library\u003e tags of the app manifest. The list is used to\nfilter the partner-provided libraries when the target sdk is \u003e 30.\n\nBug: 142191088\nTest: atest CtsUsesNativeLibraryTest\nMerged-In: I52e23dda58fc69f51451c5dbeffd0a77125c9bff\n(cherry picked from commit e741dfd18dcd15f002bc1db9bd6634322e4eeef8)\nChange-Id: I52e23dda58fc69f51451c5dbeffd0a77125c9bff\n"
    },
    {
      "commit": "7ca8b67c21513d3cd236f47332afdd1be1cb1569",
      "tree": "4e226c25734451053b85d24e5176abcc299e3986",
      "parents": [
        "5c25e537f59c2f87a57097ad3eb2f70d8c54de23"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 15:43:48 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 27 09:34:03 2020 +0000"
      },
      "message": "Use ART_TARGET_ANDROID instead of __ANDROID__\n\nOn golem, we build for ART_TARGET_LINUX, which doesn\u0027t have support for\nlinkerconfig. Therefore, guard all linker namespace code on\nART_TARGET_ANDROID instead of __ANDROID__ (which is unfortunately not\nunder ART\u0027s control).\n\nTest: build for golem and run\nBug: 154074847\nChange-Id: I7a2b81918177704b42d8aafbd6d7e9d06d34e5f4\n"
    },
    {
      "commit": "538f99ab285c1440969b9b3331fc0ce750c0d316",
      "tree": "018e9cbfc08ba39b3f35e457a8658fcc4cc8db75",
      "parents": [
        "6fc471e510d6a4e9c31fcab6c0542e2efdf50099"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Tue Mar 03 00:46:50 2020 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 04 05:56:39 2020 +0000"
      },
      "message": "Loading JNI libraries in an APEX\n\nTo load JNI libraries in an APEX, libnativeloader relies on\njni.config.txt file which contains available JNI libraries for\nAPEX namespaces:\n\n  com_android_foo libfoo_jni.so:...\n  com_android_bar libbar_jni.so:...\n\nThis file is generated by linkerconfig.\n\nBug: 143733063\nTest: cuttlestone boots\n      (For now, no behavioral changes because jni.config.txt is empty)\nChange-Id: I066de90a73875118be53972e50d076061922d762\n"
    },
    {
      "commit": "272b36d1b5cbab951239b32ed679a9dbc4ffdf1a",
      "tree": "07e82dbd51885c2ff453da524fa2a46e48adf3ef",
      "parents": [
        "2ad7c98dda05b0c8a049895cd68b3d2850156912"
      ],
      "author": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Wed Feb 19 16:08:47 2020 +0900"
      },
      "committer": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Fri Feb 21 01:04:32 2020 +0000"
      },
      "message": "Rename APEX Namespace\n\nCurrent APEX Namespace is named with APEX name itself, which also uses\n.(dot) so linker configuration can keep the syntax safe.\n\nFor example, if there are APEX modules named \u0027A\u0027 and \u0027A.link.A\u0027, then\n\u0027namespace.A.link.A.link.A \u003d a.so\u0027 phrase can be ambiguous from the\nlinker. To allow any additional linker syntax in the future, we should\navoid dot separator from the namespace name.\n\nBug: 148826508\nTest: m -j passed\nTest: boot succeeded from cuttlefish and walleye\nChange-Id: I11b6da1b59b4ebf3016f1d783636c7e5d0f8309a\n"
    },
    {
      "commit": "98cf82f227fa8fab694674e72a9a2ca95face4b5",
      "tree": "104b438ec54707e44648ad2e26a65a9774a0a50f",
      "parents": [
        "089c1357c6e5457a7bd5e76f70cead52517d9b0b"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Sat Feb 08 03:53:54 2020 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 11 19:00:38 2020 +0000"
      },
      "message": "Use apex name for apex linker namespace\n\nLinkerconfig now uses apex_names to automatically generate linker\nnamespaces from apexes.\n\nBug: 148826508\nTest: build / boot\nChange-Id: Id7fa68531033124727e618284af4fd2a61bdd85f\n"
    },
    {
      "commit": "4bd58951456ac6082e23a1931293965852c24281",
      "tree": "dd263ff127686a283290ca8dd572a9d5f54879ee",
      "parents": [
        "22be0659402081b59d84d01ec3e7f8aec42d18ad"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Thu Feb 06 15:43:57 2020 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Feb 07 11:41:44 2020 +0000"
      },
      "message": "Convert art/ to Result::ok()\n\nNo functionality changes, this is a mechanical cleanup.\n\nTest: m\nChange-Id: I10030314ad8a06d49a63f1e2f3c5aa5b484e34b6\n"
    },
    {
      "commit": "6dc0a434b8dd53b467838062ea110ee338c5f0a1",
      "tree": "8b1a132e162f5c9ac574a89f18e30a0d52c58243",
      "parents": [
        "c20ab9a81aa99d91c8b60a86a9611697ad1e2d76"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Feb 06 14:28:28 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 06 16:20:29 2020 +0000"
      },
      "message": "Update libnativeloader dependency on libnativehelper\n\nOnly requires header library dependency.\n\nTest: m\nChange-Id: I84de37651f4cb01bdaaa2b354f0a71058a5772f8\n"
    },
    {
      "commit": "9b16e344b246096d228dd4b41ff711884bcfcb3e",
      "tree": "ff93f416fcc59fb831202e80b5fb8c8ede99d500",
      "parents": [
        "e828ea0553b3106598071239e8215fca63b15c9b"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Oct 09 13:29:16 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 11 09:57:02 2019 +0000"
      },
      "message": "Move libnative{bridge,loader} to art/\n\nThis change moves system/core/libnative{bridge,loader} under art/.\n\nBug: 137364733\nTest: m\nChange-Id: I9be7333d00fcd3f36cd80520e50a30ea840187ad\n"
    }
  ]
}
