)]}'
{
  "log": [
    {
      "commit": "b913011777f33daf49e9043e769a7d4e60d1da21",
      "tree": "67e44ca435c09c968650cfff6ade7d42ea9c2682",
      "parents": [
        "2f2b0d4c05f0d57d082c67d6c58bce2f1889ac3e",
        "76a42f5c25cb02313ad6e6b026b237a0e708e769"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 16 23:27:32 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 16 23:27:32 2021 +0000"
      },
      "message": "Merge changes from topic \"mkboot\"\n\n* changes:\n  prebuilt_etc is OutputFileProducer\n  Revert \"`data` dependency of java_test_host can be arch-specific\"\n"
    },
    {
      "commit": "031d8693b3dae7edaca2e5fef3d017ac2e67424d",
      "tree": "496cc3cd5c3166c0b4c048fe7e66e5833e46a93a",
      "parents": [
        "7ad17bdad5b613d483d4f77d3c7637c407904211"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Feb 12 11:46:42 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 16 13:28:26 2021 +0000"
      },
      "message": "Allow explicitly specified additional annotations for hiddenapi\n\nAdds the hiddenapi_additional_annotations to allow a library to list\nthe libraries that provided additional hiddenapi related annotations\nfor a library.\n\nModifies merge_csv.py so it can process multiple zip files at the same\ntime and uses that to merge the embedded .uau files from a module and\nthose it depends upon.\n\nBug: 180102243\nTest: m droid\n      Verified that hiddenapi files (both aggregated ones and for the\n      individual modules) are not affected by this change.\nChange-Id: I796520021c7357398a9e2a09f1029e4a578b05b3\n"
    },
    {
      "commit": "2b0e4908c223860d61ba8b7ed8918621acf9c3a1",
      "tree": "478da30f6bb7cd17379557d094d965a66f34a263",
      "parents": [
        "404adeefdc26c833d27e290592214c2a2d541938"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Feb 16 06:52:39 2021 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Feb 16 06:58:53 2021 +0900"
      },
      "message": "Revert \"`data` dependency of java_test_host can be arch-specific\"\n\nThis reverts commit cdd9b8392d669731fef6e1415496b181ae80ede9.\n\nReason: this doesn\u0027t work. java_test_host is a multi target module.\nTherefore, `arch.\u003carhc\u003e.data` is not collapsed to `data` by the arch\nmutator.\n\nBug: N/A\nTest: N/A\nChange-Id: I755b06718bacfe1513f6ad1e734e5a0d0ac57cd8\n"
    },
    {
      "commit": "404adeefdc26c833d27e290592214c2a2d541938",
      "tree": "8e5f5810aeb3464a15ab556462fa6104359e5ba2",
      "parents": [
        "36eb24b3ab47fb0822739bb0c811de569b774750",
        "973d31c75711b36a9e5300a5daad3258f163a34b"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Mon Feb 15 11:31:37 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 15 11:31:37 2021 +0000"
      },
      "message": "Merge \"Fix api_fingerprint.txt generation\""
    },
    {
      "commit": "b87f4b4cabcb792a5b4a5db546bd0424cf3f7ca5",
      "tree": "de0611ee8ad578abba2d854b3f60e3c5b21b5a5e",
      "parents": [
        "c66769ddd96b88cb129733e03b585b0d9c3bed15",
        "dcf71b299ca9c85a31f9b895d8e8529d03cd7e04"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Feb 13 00:39:24 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 13 00:39:24 2021 +0000"
      },
      "message": "Merge \"Convert java.Dependency to JavaInfo provider\""
    },
    {
      "commit": "f75e527c2b65bf94252188f5d032eadae68a8492",
      "tree": "9a679d98fec908c72d859b2b82e0a11184bdc234",
      "parents": [
        "e7975ff77c662f4f25dfa60b2d11fde43ce22540"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 09 14:34:25 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Feb 11 15:43:28 2021 +0000"
      },
      "message": "Move logic for selecting the primary module into initHiddenAPI()\n\nBug: 178361284\nTest: m droid\n      Verified that hiddenapi files (both aggregated ones and for the\n      individual modules) are not affected by this change.\n      Also verified that the hiddenapi files created when using the\n      prebuilts (using SOONG_CONFIG_art_module_source_build\u003dfalse) are\n      the same as when using the source. There is a slight difference\n      in the order but otherwise identical.\nChange-Id: I831da5fa41eb7668b07bbdc4dd08ec2cdb8803d0\n"
    },
    {
      "commit": "e7975ff77c662f4f25dfa60b2d11fde43ce22540",
      "tree": "7b96767ec30481fba76cd89b2b8836b927203761",
      "parents": [
        "56ca4e470658df0683ad39420b40193d9c5f4902"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Feb 11 15:33:37 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Feb 11 15:43:28 2021 +0000"
      },
      "message": "Ensure that \u003cx\u003e-hiddenapi modules are included in hiddenapi-index.csv\n\nAdds a test that makes sure that \u003cx\u003e-hiddenapi modules that provide\nadditional annotations for the \u003cx\u003e boot jar module are included when\ngenerating the hiddenapi-index.csv file.\n\nBug: 178361284\nTest: m nothing\nChange-Id: I866916c9275af17954e0634347d183228d4ddc17\n"
    },
    {
      "commit": "973d31c75711b36a9e5300a5daad3258f163a34b",
      "tree": "f9d54b35b42330df15970f5d59dd43884d483658",
      "parents": [
        "89886cbdb05cf4a4445a4fc7706ccff91fb310fd"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Feb 10 14:52:42 2021 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Feb 11 09:17:10 2021 +0000"
      },
      "message": "Fix api_fingerprint.txt generation\n\nUse the generated txt files as input instead\nof globbing for now non-existent files.\n\nAlso add the system server api txt to the hash.\n\nBug: 179807354\nTest: verify out/soong/api_fingerprint.txt changes now\nTest: verify the command in the ninja file looks ok:\n      grep api_fingerprint out/soong/build.ninja\nChange-Id: I7a49ca134eb93b22537a4f3054285eb15f8c4256\n"
    },
    {
      "commit": "b68036f44b59531785efa9ae25f21a27d66253bc",
      "tree": "c261bf3d682d27ab2bd4cc932dcead1f78a45853",
      "parents": [
        "c6226d668e5022b3631415becc5e4c201892eb06",
        "02040de891df30c881b4ec38e5525c6246dbc6d5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 10 07:18:29 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 10 07:18:29 2021 +0000"
      },
      "message": "Merge \"Add LOCAL_LICENSE_KINDS to build/soong\""
    },
    {
      "commit": "a3348295d42ece19042271d28b5cdd3c7dfceb76",
      "tree": "152b45e34c61e0563d102e1029db59319074cbde",
      "parents": [
        "c59c512e98d3a7a7cd739e489e8182725109323e",
        "07065cd36095565cc37017f5466786bf3a10a21f"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Feb 10 02:46:40 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 10 02:46:40 2021 +0000"
      },
      "message": "Merge \"Allow cross-cutting dependencies like licenses.\""
    },
    {
      "commit": "dcf71b299ca9c85a31f9b895d8e8529d03cd7e04",
      "tree": "9010ad5f799f7df0589c824310d1e33720ca56ed",
      "parents": [
        "a6cfcac7279755c76ab742f21e29f0ab3de2c7ea"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 01 13:59:03 2021 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 09 15:36:25 2021 -0800"
      },
      "message": "Convert java.Dependency to JavaInfo provider\n\nExport information about java dependencies through a Provider\ninstead of accessing the module directly.\n\nTest: java_test.go\nTest: no changes to build.ninja\nChange-Id: Ifc5d566bf6f6ebc0ad399e948effaa1ef6a22876\n"
    },
    {
      "commit": "a6cfcac7279755c76ab742f21e29f0ab3de2c7ea",
      "tree": "aaa3dd63ec82d3ee641fbe9d9a6ab848f98d1c7f",
      "parents": [
        "609b124e5e61a424ecc77332388b0c23d1d32f84",
        "cbce0b0dbdb65457e76ef29b363fd2e6e0dd7263"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 09 21:10:27 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 09 21:10:27 2021 +0000"
      },
      "message": "Merge \"Add android_test_helper_app properties to java_defaults\""
    },
    {
      "commit": "cbce0b0dbdb65457e76ef29b363fd2e6e0dd7263",
      "tree": "7b49f71405db83092ae5747e71c1780746398889",
      "parents": [
        "033bfa6e2903bbf858d7b666c5e52db69ba68bb4"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 09 10:38:30 2021 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 09 10:38:30 2021 -0800"
      },
      "message": "Add android_test_helper_app properties to java_defaults\n\nAllows android_test_helper_apps to get their test_suites and\nauto_gen_config properties from a java_defaults module.\n\nFixes: 179744452\nTest: m checkbuild\nChange-Id: Ifa09f9fd0a51d3a9682401e4c6bd2f82cd4f1b8a\n"
    },
    {
      "commit": "937c91c406bce4a44f1d2fa07d92b91f83967dd5",
      "tree": "c747c3c86651cfd06f3ccf9aa0cd47378c2bc77f",
      "parents": [
        "320e170675a5d8ce2e8fbdf05c3f0ee822a2b08e",
        "fdada68320dbfcff7aea5bbe64a328189be494b4"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 09 15:17:42 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 09 15:17:42 2021 +0000"
      },
      "message": "Merge \"Move hiddenapi tools used by build/soong from frameworks/base\""
    },
    {
      "commit": "320e170675a5d8ce2e8fbdf05c3f0ee822a2b08e",
      "tree": "a5c7816ce85ef7574e5b41f069a305e665a8f434",
      "parents": [
        "b71a8de0d5cc7571a7c900c1573c7cda38de9c2b",
        "9d67ca6ab7cbc3874b51d7a434a8b0c1506f7ecf"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 09 13:58:12 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 09 13:58:12 2021 +0000"
      },
      "message": "Merge \"Allow dex jars from prebuilt_apex to be used by hiddenapi\""
    },
    {
      "commit": "b71a8de0d5cc7571a7c900c1573c7cda38de9c2b",
      "tree": "1e7882943fa1465cd3b33764a1312d07fa8499ca",
      "parents": [
        "abe1abd224036ded5b9438d943f567dc6fdf07b4",
        "4fd997bc137e31ce66d6ef4ad64d166d72692187"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 09 13:57:52 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 09 13:57:52 2021 +0000"
      },
      "message": "Merge \"Refactor the hiddenAPI() method for reusability\""
    },
    {
      "commit": "abe1abd224036ded5b9438d943f567dc6fdf07b4",
      "tree": "d154ff9296ce9211b62eb5d98965e76daef2b8f3",
      "parents": [
        "4ccfcc2ee4471e08b5ab663db73ca88e681d6d46",
        "4103e92c4b8f1a30a82a32e8e22ed722ec7a866b"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 09 13:57:37 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 09 13:57:37 2021 +0000"
      },
      "message": "Merge \"Extract initHiddenAPI() from hiddenapi()\""
    },
    {
      "commit": "fdada68320dbfcff7aea5bbe64a328189be494b4",
      "tree": "46ce6860a36de9534cba903d4b890fe0486a6d6a",
      "parents": [
        "198158b9f7ebdb311b82dd2223f4b793215d4e3b"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 08 18:08:09 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 09 10:46:36 2021 +0000"
      },
      "message": "Move hiddenapi tools used by build/soong from frameworks/base\n\nAlso, creates a python_binary_host module for generate_hiddenapi_lists\nand uses that when constructing the build rule rather than using the\nfile directly.\n\nBug: 177317659\nTest: m droid\n      Verified that hiddenapi files (both aggregated ones and for the\n      individual modules) are not affected by this change.\nChange-Id: Ia11bb203ce5a74740d35f1b7e86716e15aad336e\n"
    },
    {
      "commit": "ed7bfd9726e79f58e3ac2e02ceb3af0ca3c24895",
      "tree": "3b312caeb66a619e20e098d96dd1805552db6d41",
      "parents": [
        "3b9b0a11e919fb89a73718147986a72df77a42b8",
        "d97cf63cdf31cd7b78cdabedab2f159be836bfea"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 08 23:47:13 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 08 23:47:13 2021 +0000"
      },
      "message": "Merge \"Turn missing jarjar output files into errors\""
    },
    {
      "commit": "5c2406bde96d587f06e09be48d809daebb5938ce",
      "tree": "ac1536868c3460727b50680ddced6ce66640bd97",
      "parents": [
        "5d0572b7ebbe54e88db03c8594f6b2b4c290cb7f",
        "a036da9b275a9614bf7734ab227fc5cd4305f7e7"
      ],
      "author": {
        "name": "Bill Peckham",
        "email": "bpeckham@google.com",
        "time": "Mon Feb 08 19:15:10 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 08 19:15:10 2021 +0000"
      },
      "message": "Merge \"Enable android_app_import to supply framework-res.\""
    },
    {
      "commit": "9d67ca6ab7cbc3874b51d7a434a8b0c1506f7ecf",
      "tree": "d9f264223851cf4bc8e4183778ce670b7550343d",
      "parents": [
        "4fd997bc137e31ce66d6ef4ad64d166d72692187"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Feb 03 20:06:33 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 08 19:10:50 2021 +0000"
      },
      "message": "Allow dex jars from prebuilt_apex to be used by hiddenapi\n\nInvokes hiddenAPIExtractInformation() on the dex jar provided by the\ndeapexer (on behalf of prebuilt_apex) so that hiddenAPI can extract the\ninformation it needs, if anything, from the dex file (and accompanying\nclasses implementation file).\n\nThe dex file provided by deapexer has already had the hiddenapi\ninformation encoded into it so it does not need to do that again.\n\nThis change adds the primary parameter to hiddenAPIExtractInformation()\nand checks it (and also the hiddenAPI.active property) before it does\nanything. That ensures that it behaves correctly when called directly\nas well as when called from hiddenAPIExtractAndEncode().\n\nBug: 178361284\nTest: m droid\n      Verified that hiddenapi files (both aggregated ones and for the\n      individual modules) are not affected by this change.\n      Also verified that the hiddenapi files created when using the\n      prebuilts (using SOONG_CONFIG_art_module_source_build\u003dfalse) are\n      the same as when using the source. There is a slight difference\n      in the order but otherwise identical.\nChange-Id: I7abb63fd310bb94787ab7f4821e5fd283dc03046\n"
    },
    {
      "commit": "4fd997bc137e31ce66d6ef4ad64d166d72692187",
      "tree": "2111079c5747feb811232451418e315fed79b29a",
      "parents": [
        "4103e92c4b8f1a30a82a32e8e22ed722ec7a866b"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Feb 03 20:06:33 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 08 19:10:50 2021 +0000"
      },
      "message": "Refactor the hiddenAPI() method for reusability\n\nA follow up change needs to be able to contribute to the information\nthe hiddenapi process collates without having a dex file encoded. This\nchange pushes all the functionality related to information gathering\ninto the hiddenAPIGenerateCSV() method and then renames it and the\nhiddenAPI() method to make it clearer what they do.\n\nBug: 178361284\nTest: m droid\n      Verified that hiddenapi files (both aggregated ones and for the\n      individual modules) are not affected by this change.\nChange-Id: I04417720216a0fbadcd88e6185e7de6570af6216\n"
    },
    {
      "commit": "4103e92c4b8f1a30a82a32e8e22ed722ec7a866b",
      "tree": "5ae0e9a3217eb4f182079267581c85c8b1ad01df",
      "parents": [
        "5d0572b7ebbe54e88db03c8594f6b2b4c290cb7f"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 01 19:01:34 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 08 19:10:50 2021 +0000"
      },
      "message": "Extract initHiddenAPI() from hiddenapi()\n\nPreviously, the hiddenapi() method combined both checks to determine\nwhether a module contributed to/was modified by the hiddenapi process\nand logic to create ninja rules to perform those tasks. This change\nseparates the former out into a new initHiddenAPI() method.\n\nThe main purpose of this is to simplify the process of allowing the\nCSV generation to be separated from the encoding. That is required\nbecause when a java_import retrieves its dex file from the apex it\nhas already been encoded.\n\nThe initHiddenAPI() method is only called for java.Library (and\nindirectly for java.SdkLibrary) and java.Import modules which means\nthat the hiddenapi() method does nothing for any other module type.\nThat is consistent with the previous behaviour because while the\nhiddenapi() method is called for other module types they fail because\nthe boot image jars only support java_library, java_sdk_library,\nand java_import at the moment. While it will need to support\njava_sdk_library_import once any of the libraries that are currently\nprovided as java_sdk_library modules switches to providing prebuilts\nthat is outside the scope of this work.\n\nBug: 178361284\nTest: m droid\n      Verified that hiddenapi files (both aggregated ones and for the\n      individual modules) are not affected by this change.\nChange-Id: Iaa91e0a8e2bffec03296dd894e9662556f4464c0\n"
    },
    {
      "commit": "d97cf63cdf31cd7b78cdabedab2f159be836bfea",
      "tree": "ad9c78f63071045398dbcd7358fd36c7fb9f873d",
      "parents": [
        "033bfa6e2903bbf858d7b666c5e52db69ba68bb4"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 08 10:14:04 2021 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 08 10:14:04 2021 -0800"
      },
      "message": "Turn missing jarjar output files into errors\n\nJarjar doesn\u0027t exit with a nonzero return code when there is a syntax\nerror in a rules file and doesn\u0027t write the output file.  Without a\nnonzero return code ninja prints a warning but continues, which leads\nto stale results on incremental builds where the output file already\nexists, or delayed errors on clean builds whre the output file didn\u0027t\nexist.\n\nDelete the output file before running jarjar, and then check if it\nexists after running jarjar.\n\nFixes: 119516143\nTest: m out/target/common/obj/APPS/TeleService_intermediates/classes.jar\nChange-Id: I7e9f7ff34de565a986ab0dc6e375f606c91c3846\n"
    },
    {
      "commit": "219b177279c703eeb3caa58e3c868a9203417117",
      "tree": "a40182cbab3c6b990899d568675bee45df1d0fc8",
      "parents": [
        "01289a24076289369e8eb6995d35d276f225d18e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Feb 04 17:49:45 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Sun Feb 07 10:58:24 2021 +0000"
      },
      "message": "Remove duplicate entries from hiddenapi files\n\nPrevents the hiddenapi files index and metadata files from including\nduplicate entries.\n\nBug: 178361284\nTest: m droid\n      Compared hiddenapi files before and after change\n      Verified that the only differences were due to the removal of duplicates\n      Used sort -u to remove duplicates from before file and compared with after file\nChange-Id: I0b9e420aec42cdcf4584099a7ffd2ed9c3715d6d\n"
    },
    {
      "commit": "01289a24076289369e8eb6995d35d276f225d18e",
      "tree": "68604918dbd4538c153f3233604197cb0370b817",
      "parents": [
        "89886cbdb05cf4a4445a4fc7706ccff91fb310fd"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Feb 04 17:49:33 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Sun Feb 07 10:58:24 2021 +0000"
      },
      "message": "Add test for hiddenAPI index file generation\n\nThe index file and the metadata file both currently include duplicate\nentries due to them including both the \u003cx\u003e and \u003cx\u003e.impl libraries\ncreated by java_sdk_library in their inputs, plus including both source\nand prebuilt versions of the same named module. This change adds a test\nto illustrate that behavior. A follow up change will correct the problem\nand update the test accordingly.\n\nThis change only adds a test for the index file because the metadata\nfile depends on files from frameworks/base which makes it difficult to\ntest. Bug 177317659 will fix that and allow the metadata file\ngeneration to be tested too.\n\nBug: 178361284\nTest: m nothing\nChange-Id: I33921d7267c9f4bb42726343d73f8a396d536aaa\n"
    },
    {
      "commit": "254aee484342af91056ce0dd5aa7865385e1c037",
      "tree": "e00d6c78b5a457bbb44bb55c5e66ca604e75759e",
      "parents": [
        "a7070926367c56c820afc014d0614a987b9eae05",
        "22ff0aaf51bdd9409eafe74151decb58f47308bc"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Sun Feb 07 10:52:01 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Feb 07 10:52:01 2021 +0000"
      },
      "message": "Merge changes I9e94662d,I4b4e0dc8\n\n* changes:\n  Export implementation class jars for java_boot_libs\n  Improve module filtering in hiddenapi stubFlagsRule()\n"
    },
    {
      "commit": "02040de891df30c881b4ec38e5525c6246dbc6d5",
      "tree": "452fca215b05f9db5dcca0cf907bdbf05634cafb",
      "parents": [
        "7a1053073695bc184f91770fc74a3a68ae292af4"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Feb 03 18:08:28 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Sat Feb 06 04:23:21 2021 +0000"
      },
      "message": "Add LOCAL_LICENSE_KINDS to build/soong\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  Android.bp\n  android/Android.bp\n  android/soongconfig/Android.bp\n  androidmk/Android.bp\n  apex/Android.bp\n  bazel/Android.bp\n  bp2build/Android.bp\n  bpf/Android.bp\n  bpfix/Android.bp\n  cc/Android.bp\n  cc/config/Android.bp\n  cc/libbuildversion/Android.bp\n  cc/libbuildversion/tests/Android.bp\n  cc/ndk_api_coverage_parser/Android.bp\n  cc/ndkstubgen/Android.bp\n  cc/symbolfile/Android.bp\n  cmd/dep_fixer/Android.bp\n  cmd/diff_target_files/Android.bp\n  cmd/extract_apks/Android.bp\n  cmd/extract_jar_packages/Android.bp\n  cmd/extract_linker/Android.bp\n  cmd/fileslist/Android.bp\n  cmd/host_bionic_inject/Android.bp\n  cmd/javac_wrapper/Android.bp\n  cmd/merge_zips/Android.bp\n  cmd/multiproduct_kati/Android.bp\n  cmd/path_interposer/Android.bp\n  cmd/pom2bp/Android.bp\n  cmd/pom2mk/Android.bp\n  cmd/sbox/Android.bp\n  cmd/soong_build/Android.bp\n  cmd/soong_env/Android.bp\n  cmd/soong_ui/Android.bp\n  cmd/zip2zip/Android.bp\n  cmd/zipsync/Android.bp\n  cuj/Android.bp\n  dexpreopt/Android.bp\n  dexpreopt/dexpreopt_gen/Android.bp\n  env/Android.bp\n  etc/Android.bp\n  filesystem/Android.bp\n  finder/Android.bp\n  finder/cmd/Android.bp\n  genrule/Android.bp\n  jar/Android.bp\n  java/Android.bp\n  java/config/Android.bp\n  kernel/Android.bp\n  linkerconfig/Android.bp\n  linkerconfig/proto/Android.bp\n  makedeps/Android.bp\n  partner/Android.bp\n  phony/Android.bp\n  python/Android.bp\n  python/tests/Android.bp\n  remoteexec/Android.bp\n  rust/Android.bp\n  rust/config/Android.bp\n  scripts/Android.bp\n  sdk/Android.bp\n  sh/Android.bp\n  shared/Android.bp\n  symbol_inject/Android.bp\n  symbol_inject/cmd/Android.bp\n  sysprop/Android.bp\n  tradefed/Android.bp\n  ui/build/Android.bp\n  ui/logger/Android.bp\n  ui/metrics/Android.bp\n  ui/metrics/proc/Android.bp\n  ui/status/Android.bp\n  ui/terminal/Android.bp\n  ui/tracer/Android.bp\n  xml/Android.bp\n  zip/Android.bp\n  zip/cmd/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  finder/fs/Android.bp\n  third_party/zip/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\n\nChange-Id: Ia47ca14f16b8c9f84f9d533a07e5b00e2c04e8d4\n"
    },
    {
      "commit": "07065cd36095565cc37017f5466786bf3a10a21f",
      "tree": "2a2ec41e625e4015a7578664ebe5efd80e660dc0",
      "parents": [
        "770130988943a36f0960a0279d050c5870bb9ac7"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 05 19:59:11 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 05 19:59:11 2021 -0800"
      },
      "message": "Allow cross-cutting dependencies like licenses.\n\nTest: m all\n\nBug: 171227245\nBug: 151953481\nBug: 151177513\nBug: 67772237\nChange-Id: I6e8ce01898e174a9587469157485debbb7b96980\n"
    },
    {
      "commit": "a036da9b275a9614bf7734ab227fc5cd4305f7e7",
      "tree": "67ddc933222821c5e507d8679d7f8d5d8cc9a6af",
      "parents": [
        "c64b96170847cc14d188222dbf50b94f11f4598b"
      ],
      "author": {
        "name": "Bill Peckham",
        "email": "bpeckham@google.com",
        "time": "Fri Jan 08 16:09:09 2021 -0800"
      },
      "committer": {
        "name": "Bill Peckham",
        "email": "bpeckham@google.com",
        "time": "Fri Feb 05 14:30:46 2021 -0800"
      },
      "message": "Enable android_app_import to supply framework-res.\n\nBy enabling an android_app_import module to supply the\nspecial framework-res module, it becomes possible to\ncreate a split build that excludes the source of over\n10,000 files under frameworks/base/core/res, replacing\nthis source with a prebuilt. However, since other parts\nof a monolithic build use the source of framework-res,\nthis scheme works only if your split build manifest\nexcludes modules that depend on framework-res source.\n\nBug: 176851898\nTest: lunch aosp_arm64-userdebug \u0026\u0026 m nothing\nTest: new TestAndroidAppImportExportPackageResources\nTest: local build without prebuilt framework-res\nTest: local build with prebuilt framework-res\nChange-Id: If00d9dbc656c8406c038448d09f93f767c1e06d1\n"
    },
    {
      "commit": "b7eab01167af0320e2552826381497111a4c66c6",
      "tree": "097b401ce7e704715ca92c1e5be6c389f1a1eb59",
      "parents": [
        "b89336487e22a3671b5e095c279fb33970ea2d39",
        "356f7d45c19ff8b862ff4d5db7384e87c2b052f9"
      ],
      "author": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Fri Feb 05 13:39:08 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 05 13:39:08 2021 +0000"
      },
      "message": "Merge \"bp2build: convert paths/module refs to Bazel label\""
    },
    {
      "commit": "22ff0aaf51bdd9409eafe74151decb58f47308bc",
      "tree": "90342540bc1b8d69a76aa58940f4bac70864e47a",
      "parents": [
        "dd63d6d7bdae32a1bf89a1ce8ade15ee10afd6cc"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Feb 04 11:15:34 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Feb 05 13:35:25 2021 +0000"
      },
      "message": "Export implementation class jars for java_boot_libs\n\nHiddenapi processing currently requires access to the class\nimplementation jars for libraries on the bootclasspath which means that\nthey need to be provided as part of the prebuilts. This change modifies\nthe java_boot_libs property on the sdk to make those files available.\n\nModularization of the hiddenapi processing will hopefully remove the\nneed for these to be exported so this should be temporary.\n\nBug: 178361284\nTest: m art-module-sdk\n      check generated snapshot zip contains implementation jars\nChange-Id: I9e94662dddb0ddb85a477ae6d27e533085147e88\n"
    },
    {
      "commit": "dd63d6d7bdae32a1bf89a1ce8ade15ee10afd6cc",
      "tree": "43800443a8b2ad66fdc78fcdbb790acd9bf56a25",
      "parents": [
        "b89336487e22a3671b5e095c279fb33970ea2d39"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Feb 03 18:34:00 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Feb 05 13:33:25 2021 +0000"
      },
      "message": "Improve module filtering in hiddenapi stubFlagsRule()\n\nPreviously, it ignored any module that was not a platform apex variant\nhowever that required every module that was referenced from the boot\njars to have a platform variant which is not the case when building\nfrom prebuilts.\n\nThis change switches it to explicitly check that the variant is for\neither the appropriate apex or the platform depending on what is\nconfigured in the BootJars or UpdatableBootJars.\n\nIt partially duplicates some logic from the getBootImageJar() function.\nIt intentionally does not refactor the getBootImageJar() to allow for\nreuse because coupling the hiddenapi and dexpreopt logic would make\nrefactoring either of them more difficult. Any duplicated code will be\ndeduped once they have both been refactored.\n\nBug: 178361284\nTest: m droid\nChange-Id: I4b4e0dc8ee40c1ba1713d7ef72df13d175e84af6\n"
    },
    {
      "commit": "9b91082452957d0760a58dba017406d928bb8ba7",
      "tree": "ebdf85a2b74076410c7a30681dc2a006f5f0f599",
      "parents": [
        "b8887127bafa757c7e22ed926e2bdc393b36e092",
        "c0f64799da4ff941d5d132027a3b723fc76a5d5a"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Feb 05 11:10:03 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 05 11:10:03 2021 +0000"
      },
      "message": "Merge \"Don\u0027t write nonexistent DEX file paths to dexpreopt.config files.\""
    },
    {
      "commit": "b8887127bafa757c7e22ed926e2bdc393b36e092",
      "tree": "0f087d8e10fb14cc7691a4a8a6440d8c755ea507",
      "parents": [
        "3a5c0af0fbb5f8b81fb290dcbe15614d56ee6a56",
        "9c3ac96f1fcc64432ef28f21f86bc98bfd518647"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Feb 05 09:30:15 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 05 09:30:15 2021 +0000"
      },
      "message": "Merge \"Detect empty apex in ConfiguredJarList\""
    },
    {
      "commit": "356f7d45c19ff8b862ff4d5db7384e87c2b052f9",
      "tree": "57db9c0e7b1d346c85a40ffd72602dce13c12df9",
      "parents": [
        "aef038aac1f18259a941b05b028e5e9beb5b3bd7"
      ],
      "author": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Tue Jan 26 09:18:53 2021 -0500"
      },
      "committer": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Thu Feb 04 13:45:56 2021 -0500"
      },
      "message": "bp2build: convert paths/module refs to Bazel label\n\nThis currently expands all globs, still need to support converting glob\nsyntax.\n\nTest: go build_conversion_test\nTest: GENERATE_BAZEL_FILES\u003dtrue m nothing\nTest: m nothing\nBug: 165114590\nChange-Id: If7b26e8e663d17566fad9614ca87a8da1f095284\n"
    },
    {
      "commit": "cdd9b8392d669731fef6e1415496b181ae80ede9",
      "tree": "92fcddb3c67add02372e5ff864981c1c974673ea",
      "parents": [
        "599992bc3e6795b94949eefd36e5812df237d03a"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Feb 04 19:42:53 2021 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Feb 05 00:29:47 2021 +0900"
      },
      "message": "`data` dependency of java_test_host can be arch-specific\n\nThis allows java_test_host to have arch-specific data files. Currently,\nVirtualizationHostTestCases needs this to have arch-specific kernels as\nits data.\n\nBug: N/A\nTest: m VirtualizationHostTestCases\nChange-Id: Ib5680ef48b613955ad92c9bc212184ac75900d3e\n"
    },
    {
      "commit": "c0f64799da4ff941d5d132027a3b723fc76a5d5a",
      "tree": "0d7d67d8e6ba8d4e17d18b1a0058a352662887c2",
      "parents": [
        "53b2427fc9a3e256d8611ba27f399fe828797468"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Feb 04 10:04:39 2021 +0000"
      },
      "committer": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Feb 04 12:14:51 2021 +0000"
      },
      "message": "Don\u0027t write nonexistent DEX file paths to dexpreopt.config files.\n\nA path to an nonexistent file caused dex2oat to write an empty path in\nthe class loader context stored inside of the OAT/ODEX file, which\nresulted in class loader context mistmatch and a failure to load\ndexpreopt code on device.\n\nAn example of a faulty class loader context for GoogleDialer, can be\nseen either with oatdump or by grepping logcat for class loader context\nmimatch messages (the first empty PCL[] is expected, note the second\nempty PCL[] in the subcontext for shared libraries):\n\n  PCL[]{PCL[]#PCL[/system/framework/org.apache.http.legacy.jar*22205474]\n\nThis CL removes the nonexistent path from the generated dexpreopt.config\nfile, which works in conjunction with a change in makefiles that stops\nusing the removed config field. This is possible because makefiles can\naccess DEX files using a module name and \"intermediates-dir-for\" macro.\n\nBug: 132357300\nTest: lunch cf_x86_64_phone-userdebug \u0026\u0026 m \u0026\u0026 launch_cvd \\\n      adb wait-for-device \u0026\u0026 adb root \u0026\u0026 adb logcat \\\n      | grep -E \u0027ClassLoaderContext [a-z ]+ mismatch\u0027\n      # empty grep output, no errors\nChange-Id: I8d16f77c6f76ad6234cc4114ad3545cbe572ef13\n"
    },
    {
      "commit": "9c3ac96f1fcc64432ef28f21f86bc98bfd518647",
      "tree": "312e11e9331fd48f0bb6f301573ae1b8ebf8e62a",
      "parents": [
        "53b2427fc9a3e256d8611ba27f399fe828797468"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Feb 03 14:11:27 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Feb 04 10:07:41 2021 +0000"
      },
      "message": "Detect empty apex in ConfiguredJarList\n\nPreviously, ConfiguredJarList would accept an empty apex name,\ne.g. \":jar\" which makes no sense as every apex has to have a non-empty\nname. This change makes an empty apex invalid.\n\nIn order to improve the test coverage of the TestConfiguredJarList test\nthis change also changes the implementation of\nCreateTestConfiguredJarList([]string) to marshal the supplied strings\ninto a json list and then unmarshal into a ConfiguredJarList which more\nclosely matches how it is used at runtime.\n\nBug: 178361284\nTest: m nothing\nChange-Id: I7dfec6b4cc1923aa99746e976da0393922ef0791\n"
    },
    {
      "commit": "e1f9b35d9250b7c0f5290e7da70ee71945d2b15e",
      "tree": "25f66ab0d7a6b5daa43bebc6cacb998f67668a1c",
      "parents": [
        "7e2fad3f8998f0c3ef9bf1f4a17e18a561fce5ba",
        "612e61006324d830cfeb65025a63ae31cb913422"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Feb 03 10:02:36 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 03 10:02:36 2021 +0000"
      },
      "message": "Merge \"Switch hiddenapi to use OutputPath instead of ModuleOutPath\""
    },
    {
      "commit": "dadc62cdb4dd624c5e18cc99c9f8de6e78ba955e",
      "tree": "7450aecbb7547b092bf132d4a510ebd55ed32dc6",
      "parents": [
        "38ce066d3bfde04a00924e462ad811f2691a11ea",
        "1b3e949d14d87684d56bbfda411048c605cab805"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Tue Feb 02 18:19:38 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 02 18:19:38 2021 +0000"
      },
      "message": "Merge \"go/Android.bp: Clarify sdk_version documentation.\""
    },
    {
      "commit": "612e61006324d830cfeb65025a63ae31cb913422",
      "tree": "1f94bf754d442bedd75dcc2fa889da7afbbb2c28",
      "parents": [
        "0267d49255b5a660f93d02c03c33cce23c132015"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 02 13:38:13 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 02 14:42:05 2021 +0000"
      },
      "message": "Switch hiddenapi to use OutputPath instead of ModuleOutPath\n\nIn order to allow the hiddenapi code which expects its inputs to be\nModuleOutPath to consume the output from the deapexer module type (used\nby prebuilt_apex) this change converts the hiddenapi from using\nModuleOutPath to use OutputPath instead.\n\nThis is part of a general cleanup to remove ModuleOutPath that is\nseparated out in order to avoid having the hiddenapi work dependent\nupon and possibly delayed by issues with that general cleanup.\n\nBug: 178361284\nBug: 179124768\nTest: m droid\nChange-Id: I890f775bf5e33528dbaa62b95fa4198185ff8bf8\n"
    },
    {
      "commit": "8705ba06bfa7844a7db55065154cb8d57ab07dca",
      "tree": "b7bb97de9429359bf8eca8880a4e327e53afdc1d",
      "parents": [
        "1020772b049c323dd96832fabfcd5387389c15aa",
        "34982f109652742aa0686fc4e156cc21dff991b8"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 01 17:28:20 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 01 17:28:20 2021 +0000"
      },
      "message": "Merge \"Move creation of paths into hiddenAPIGenerateCSV\""
    },
    {
      "commit": "aded43c80875e69feb5729ab7f05e66f7d5c2258",
      "tree": "8b76ef3c7d39f21589bdf9909479e97d78b5b1b9",
      "parents": [
        "4a838dfb3f375a2a1cfcd378dcfefc41cbeb5539",
        "5bbfef87183d240d518af795e6f9add6695c8f31"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 01 10:21:34 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 01 10:21:34 2021 +0000"
      },
      "message": "Merge \"Fix some minor issues with boot_image\""
    },
    {
      "commit": "4a838dfb3f375a2a1cfcd378dcfefc41cbeb5539",
      "tree": "e4f526b44e35847cd425a71a03129f3fd5ee1f63",
      "parents": [
        "a4fce3b488f3b2632e5c13906dca5749d8acc83f",
        "a1d6025a49bb7293885e5a9fcbd63a02d67e95d8"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 01 10:21:21 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 01 10:21:21 2021 +0000"
      },
      "message": "Merge \"Add boot_images to apex\""
    },
    {
      "commit": "a4fce3b488f3b2632e5c13906dca5749d8acc83f",
      "tree": "877f2030cacde5bb50916f1caa6fd34acf51e2af",
      "parents": [
        "523bb85995f956258dbd0d80675615bc31e64af9",
        "76b0852a481d3a0c81464e3470294e030b78c897"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Feb 01 10:16:57 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 01 10:16:57 2021 +0000"
      },
      "message": "Merge \"Write module dexpreopt.config for Make.\""
    },
    {
      "commit": "5bbfef87183d240d518af795e6f9add6695c8f31",
      "tree": "7f6d8d5eab58b07466b2f92ab3340a100d27d7c0",
      "parents": [
        "a1d6025a49bb7293885e5a9fcbd63a02d67e95d8"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Sat Jan 30 12:57:26 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Sat Jan 30 12:57:26 2021 +0000"
      },
      "message": "Fix some minor issues with boot_image\n\nMistakenly used HostAndDeviceDefault (which builds host and device\nvariants by default) instead of HostAndDeviceSupported which only\nbuilds a device variant by default.\n\nMoved the test definitions of art and framework boot images from being\ndefined in all Java related tests into the test where they belong. This\nis needed in order to improve the ART and framework boot image specific\ntesting.\n\nBug: 177892522\nTest: m droid\nChange-Id: I16771f09bd789033e18c58ae6dd4b6b9e865d831\n"
    },
    {
      "commit": "a1d6025a49bb7293885e5a9fcbd63a02d67e95d8",
      "tree": "3474df486c35b40d255d94351328f6340764c3b9",
      "parents": [
        "c4e17317d135b20cab28a1e6f9ca1425ba6a1e02"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jan 21 18:13:43 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Sat Jan 30 12:45:07 2021 +0000"
      },
      "message": "Add boot_images to apex\n\nPreviously, the apex module had to hard code behavior specific to the\nart apex module in order to include the art boot image. This change\nadds support to the apex module to allow the boot images to be\nspecified per apex.\n\nIn combination with a change to add the \"art-boot-image\" to the ART\napex this allows the custom code for handling the art boot image in\napex to be removed.\n\nThat custom apex code also included the logic to ensure that the\nGlobalSoongConfig was initialized for use by the dex_bootjars\nsingleton. That logic has been moved from the APEX to the boot_image\nmodule. That ensures that it will be run if and only if a boot_image\nmodule is present in the checked out repos. So, limited manifest\ncheckouts which do not contain the art or frameworks/base repos (which\nis where the boot_image modules are defined) will not attempt to run\nthis logic, which would fail because dex2oat would not be present.\n\nBug: 177892522\nTest: m droid\nChange-Id: I02d25fbef6e864e31eb5e0f4eb50358c79486db0\n"
    },
    {
      "commit": "34982f109652742aa0686fc4e156cc21dff991b8",
      "tree": "39a5771daa01a0288c25c7faeb70bec9bb5beafa",
      "parents": [
        "ff774a04ad9208d91d483e6468e9d21cdb8f98aa"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jan 27 15:11:42 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jan 29 13:22:31 2021 +0000"
      },
      "message": "Move creation of paths into hiddenAPIGenerateCSV\n\nA minor refactoring to simplify the generation of the CSV files.\n\nTest: m nothing\nBug: 178361284\nChange-Id: If79d21c7cebc6643a404973d3e0e5f174d7b0bb1\n"
    },
    {
      "commit": "ff774a04ad9208d91d483e6468e9d21cdb8f98aa",
      "tree": "84872c5ee4d506019faeae21b4f5f59d5872ab02",
      "parents": [
        "c4e17317d135b20cab28a1e6f9ca1425ba6a1e02"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jan 29 12:53:15 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jan 29 13:19:51 2021 +0000"
      },
      "message": "Add documentation for the different files created by hiddenapi\n\nTest: m nothing\nBug: 178361284\nChange-Id: Id55646b9d4b7bc1acdb4ed6a6dd4456b746eb54c\n"
    },
    {
      "commit": "c4e17317d135b20cab28a1e6f9ca1425ba6a1e02",
      "tree": "8c31db91a6424c87b07a29a4fb4243990e748086",
      "parents": [
        "30d6f68b1abcbc8998f48495c47fadb29e8d1ad7",
        "1dc0d6d7f2f76b056864b77f9bbbfcfbb50d1eef"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Jan 29 13:15:02 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 29 13:15:02 2021 +0000"
      },
      "message": "Merge \"Fix boot jar handling when both source and prebuilt APEXes and modules are present.\""
    },
    {
      "commit": "1b3e949d14d87684d56bbfda411048c605cab805",
      "tree": "61e93ee0f6b6e3f11b0e55445ae17a31c1272de3",
      "parents": [
        "b0d0710f67537833dc25450f2d6d431758b46853"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Sat Jan 02 19:01:16 2021 +0000"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Jan 28 21:55:37 2021 +0000"
      },
      "message": "go/Android.bp: Clarify sdk_version documentation.\n\nThe documentation was unclear because there are at least three\ndifferent ways (codename, version, API level) to refer to each\nversion, see https://source.android.com/setup/start/build-numbers\nIt is further complicated by the fact that this value is taken\nas a String even though the API level it refers to is normally\nan integer. To disambiguate, this CL adds an example.\n\nTest: Treehugger only.\nChange-Id: I40c13104a87d16c84c2098f36f7f63447d3dda4d\n"
    },
    {
      "commit": "1dc0d6d7f2f76b056864b77f9bbbfcfbb50d1eef",
      "tree": "1a5e2a6b1424a6036d410a39affcd30038af5161",
      "parents": [
        "57eec1007efb7911e9060584a6ef15b53cfdf85d"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Sun Jan 17 21:05:12 2021 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Jan 28 20:09:24 2021 +0000"
      },
      "message": "Fix boot jar handling when both source and prebuilt APEXes and modules\nare present.\n\n1) The boot jar to APEX mapping is maintained by the base names for\nboth of them. When building with prebuilt modules and APEXes, that\nmeans we need to take care to compare them without regard to any\n\"prebuilt_\" prefixes.\n\n2) VisitAllModules can visit disabled modules and both source and\nprebuilt modules, so they need some conditions to skip modules that\naren\u0027t applicable for boot jars.\n\nTest: `m droid`\nTest: `m droid SOONG_CONFIG_art_module_source_build\u003dfalse`\n  with fresh ART Module prebuilts in place\nBug: 171061220\nChange-Id: Iced269d29127bc8b8f9b3171adb60a97d115628b\n"
    },
    {
      "commit": "b0d0710f67537833dc25450f2d6d431758b46853",
      "tree": "95e9f2173431f2f35c8e9c68335e75597d780373",
      "parents": [
        "b9d731c8a9013901039c9d50ce110c0b102235c1",
        "20ce41d0b929b32daed83796ccbc3975f7d5fa33"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Jan 28 16:48:16 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 28 16:48:16 2021 +0000"
      },
      "message": "Merge \"Fix prebuilt_apis creating of \"latest\" incompatibilities\""
    },
    {
      "commit": "76b0852a481d3a0c81464e3470294e030b78c897",
      "tree": "fc4eaba0f873cc9daa29a6ce21781c4f82ebc677",
      "parents": [
        "27878ca164ba98b130bd0752d089f5cba3787eb9"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jan 14 17:52:43 2021 +0000"
      },
      "committer": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jan 28 06:29:13 2021 +0000"
      },
      "message": "Write module dexpreopt.config for Make.\n\nThis is needed for Java libraries that are \u003cuses-library\u003e dependencies\nof Java libraries and apps defined as Make modules. Each dexpreopted\nmodule in Make generates a dexpreopt.config file, which incorporates\ninformation from its dependencies\u0027 dexpreopt.config files. For\ndependencies that are Make modules their dexpreopt.config files are\ngenerated by Make, and for Soong modules they are generated by Soong.\nSince Soong doesn\u0027t know which libraries are used by Make, it generates\nbuild rules for a superset of the necessary libraries.\n\nBug: 132357300\nTest: lunch aosp_cf_x86_phone-userdebug \u0026\u0026 m\nChange-Id: I325b1037658736ee3c02450b08c00eca1a175962\n"
    },
    {
      "commit": "20ce41d0b929b32daed83796ccbc3975f7d5fa33",
      "tree": "091b883a03b78fd9fe4ea7153f48f1adc9c6cf4d",
      "parents": [
        "370fd0b0500e8817eb1f4cc94ba0fbc29b8444a8"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Jan 22 15:05:32 2021 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Jan 26 18:08:19 2021 +0000"
      },
      "message": "Fix prebuilt_apis creating of \"latest\" incompatibilities\n\nIncompatibilities are a bit special in that we only ever want to use\nthe \"latest\" if it is for a non-finalized SDK.\n\nAdd a new argument, next_api_dir, and use only those files to create\n\"latest incompatibilities\". Create empty incompatibilities for all\nmodules not in next_api_dir.\n\nBug: 178171189\nTest: m\nChange-Id: I727a52e3a45a5e607c6176d481b40fbf495c6eb0\n"
    },
    {
      "commit": "3451e1600f0ee43111284d5198c2167ac2916293",
      "tree": "a0de4eabc5fe2dbab72721f44a6eec9224229766",
      "parents": [
        "4c183c758143a887373d2719fad07d418f099a8e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jan 20 15:16:56 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jan 26 13:00:07 2021 +0000"
      },
      "message": "Add boot_image module type\n\nAdds a boot_image module type. Follow on changes will add instances of\nboot_image to represent the ART and framework boot images in the art\nand frameworks/base repositories respectively.\n\nFor the moment they retrieve their associated boot image configuration\nfrom the map returned by genBootImageConfigs() and leave the actual\nwork of creating the ninja rules to create the boot images to the\ndex_bootjars singleton.\n\nBug: 177892522\nTest: m droid\nChange-Id: Ib69701de0d24d996bb8e8be7a20b941be907390e\n"
    },
    {
      "commit": "4c183c758143a887373d2719fad07d418f099a8e",
      "tree": "34242cd2425454ec55989b573f24b2339c3f2a15",
      "parents": [
        "65490b8cf302de862ddcc8323c80f0403e78e4a0",
        "635aa0834f657282c0dd74c23d83e31e6003f6bd"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jan 26 12:08:30 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 26 12:08:30 2021 +0000"
      },
      "message": "Merge \"Make dexpreopt tools available for all java tests\""
    },
    {
      "commit": "635aa0834f657282c0dd74c23d83e31e6003f6bd",
      "tree": "88bc6772d1fbd040a5b850f35194e8f7d4dca95c",
      "parents": [
        "f17b07fc52b49896d0a357f3deeba7177180907c"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jan 25 19:11:24 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jan 25 19:15:19 2021 +0000"
      },
      "message": "Make dexpreopt tools available for all java tests\n\nBug: 177892522\nTest: m nothing\nChange-Id: I594bddae692ef76dc8c3da504934d0151b13d4c9\n"
    },
    {
      "commit": "370fd0b0500e8817eb1f4cc94ba0fbc29b8444a8",
      "tree": "1562809fe93e9bf55b4e787e1b13518d62685a57",
      "parents": [
        "f17b07fc52b49896d0a357f3deeba7177180907c"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Jan 22 15:05:04 2021 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Mon Jan 25 10:58:41 2021 +0000"
      },
      "message": "Minor cleanup in prebuilt_apis\n\nUse ints instead of strings for version comparison.\n\nBug: 178171189\nTest: m\nChange-Id: I53d71b138a64b902b3f00adafec5d354630a5e35\n"
    },
    {
      "commit": "98325717b1aa566cda2685fb74e1a9eb6dbaecbf",
      "tree": "573bd116ced9cb4dd39909787f66e40cfcb715e9",
      "parents": [
        "8479ea296dde576004734634af31a60a5eb343cc",
        "1ab6186e91f2e8d9620ebf1557ab503c7719cd3e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jan 22 17:42:54 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 22 17:42:54 2021 +0000"
      },
      "message": "Merge \"Switch dex_bootjars to a singleton module\""
    },
    {
      "commit": "8479ea296dde576004734634af31a60a5eb343cc",
      "tree": "11c41a6e4aabea14918aaab1e9bc1b9d119bc6a4",
      "parents": [
        "c44075b71017cf11eeba19717598a0567178945c",
        "9f04524673e84f9be7f06e2e13266d8fda2f151f"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jan 22 17:42:00 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 22 17:42:00 2021 +0000"
      },
      "message": "Merge \"Allow createGlobalSoongConfig() to be used from tests\""
    },
    {
      "commit": "c44075b71017cf11eeba19717598a0567178945c",
      "tree": "5c16994378277b4a56b348788b28d827650686dd",
      "parents": [
        "dbc79a737c02313b332f37e075430d8f0860866c",
        "c059c8c9a05e28b5d3782464f01c493047a64d21"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jan 22 17:41:02 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 22 17:41:02 2021 +0000"
      },
      "message": "Merge \"Add java.RegisterRequiredBuildComponentsForTest function\""
    },
    {
      "commit": "4de3c42c73913d25318615b25358c45d8d1b0f55",
      "tree": "c2caf987fb4fabee14c5b35f6ccd3f8b1334b52c",
      "parents": [
        "4b197e110b0e87142c778b9ae1775ebc00173131",
        "e77fccc95991d670dc9585f4f1e9db52175ae325"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Jan 22 10:31:15 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 22 10:31:15 2021 +0000"
      },
      "message": "Merge \"Add a better error message for missing api files\""
    },
    {
      "commit": "1ab6186e91f2e8d9620ebf1557ab503c7719cd3e",
      "tree": "e73fc8d791f0805cd46515e93d84b6ec8804737a",
      "parents": [
        "9f04524673e84f9be7f06e2e13266d8fda2f151f"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jan 20 17:44:53 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jan 21 16:49:34 2021 +0000"
      },
      "message": "Switch dex_bootjars to a singleton module\n\nThe main difference between a singleton and a singleton module that\naffects this change is that the latter requires a module to be defined\nin order for the singleton to be instantiated. This change defines the\nmodule in both the tests and the standard build.\n\nBug: 177892522\nTest: m droid\nChange-Id: Id6669835cf3a2ab7359fa53047eb9042992a9362\n"
    },
    {
      "commit": "9f04524673e84f9be7f06e2e13266d8fda2f151f",
      "tree": "98613bac182bf23bd10184c7f2f73da524bfddd2",
      "parents": [
        "c059c8c9a05e28b5d3782464f01c493047a64d21"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jan 21 15:05:11 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jan 21 15:44:30 2021 +0000"
      },
      "message": "Allow createGlobalSoongConfig() to be used from tests\n\nPreviously, the createGlobalSoongConfig() function was explicitly\nprevented from being used in tests because it would fail. However, it\nturns out that is no longer the case and it does now work.\n\nThat allows the following changes to be made:\n* Tests no longer need to use GlobalSoongConfigForTests() to\n  prepopulate the cache.\n* GlobalSoongConfigForTests() is only needed in the dexpreopt\n  package.\n\nBug: 177892522\nTest: m nothing\nChange-Id: Ifcbb1a44254c5d2d10c1d02ab23227488d1d1ed1\n"
    },
    {
      "commit": "c059c8c9a05e28b5d3782464f01c493047a64d21",
      "tree": "6782cb51332ee87f092c4ff984c158bb0a9db8c2",
      "parents": [
        "ec7cab81f90bde94561f562d9f20ae059c1f5185"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jan 20 17:13:52 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jan 21 11:47:32 2021 +0000"
      },
      "message": "Add java.RegisterRequiredBuildComponentsForTest function\n\nInsulate tests that exercise code in the java package from having to\nregister the build components provided by the java package by providing\na single function that registers them all. This follows the pattern\ncurrently used in the cc and rust packages.\n\nThis change is in preparation for switching the dex_bootjars singleton\nfrom a singleton, which does not require a module definition in order\nto be instantiated, to a singleton module which does. That will require\nadding a module definition into java.GatherRequiredDepsForTest() and\nthis change ensures that the required components will have been\nregistered in every test.\n\nBug: 177892522\nTest: m nothing\nChange-Id: I6475db8240894947dd07c89a940a3e4f201aa598\n"
    },
    {
      "commit": "e77fccc95991d670dc9585f4f1e9db52175ae325",
      "tree": "fdb83fe765ccc3172f19f4c96ea80cb8aa9c17bc",
      "parents": [
        "04f8d379e6c012f93fa0e6fb29556d30dddaae50"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Jan 20 16:52:41 2021 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Jan 20 19:21:16 2021 +0000"
      },
      "message": "Add a better error message for missing api files\n\nAdd some instructions for what to do.\n\nBug: 177806245\nTest: m nothing (with java_sdk_library with no tracking files)\nChange-Id: I286018f4d9105d5ade1e76cddb8670d0d097d77d\n"
    },
    {
      "commit": "324234bd0007ebc78843eece46bb7e8d337e8026",
      "tree": "5065265ad740c1f41f7308a4ec4064ed963786d1",
      "parents": [
        "0ae13ec3077237c9ae4c3e31680c096a6752f771",
        "1086e604b97a564550fa3abfd04fa7d1d2da39d0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 20 18:13:20 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 18:13:20 2021 +0000"
      },
      "message": "Merge \"dexpreopt: Use the dirty-image-objects path from frameworks/base.\""
    },
    {
      "commit": "0caabb6e277b50602ac9c883703f6e0fc06a95a9",
      "tree": "304fc75792698465aa6f3fa677f8b1d72404ac68",
      "parents": [
        "1c8e5e817ef5aa852a88ea58c85f616eccee7d27",
        "a4a1c4ee984e9b2c4b970dc373dc025e92f70349"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Jan 20 17:46:02 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 17:46:02 2021 +0000"
      },
      "message": "Merge \"Support building boot images with disabled dexpreopt.\""
    },
    {
      "commit": "1c8e5e817ef5aa852a88ea58c85f616eccee7d27",
      "tree": "439f2a1d2480ba074699f2a90240cf013ead695d",
      "parents": [
        "965561ce434817fa1c6f819919f6bae0eec18320",
        "fb04df4d57e52b38e6ebfec9cfcc2bb76968b2ce"
      ],
      "author": {
        "name": "Bill Peckham",
        "email": "bpeckham@google.com",
        "time": "Wed Jan 20 17:43:48 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 17:43:48 2021 +0000"
      },
      "message": "Merge changes from topic \"prebuilt-hiddenapi\"\n\n* changes:\n  Supply LOCAL_SOONG_DEX_JAR for java_import with compile_dex.\n  Enable an apex to include a java_import.\n  Enable prebuilt hiddenapi CSV files.\n"
    },
    {
      "commit": "1086e604b97a564550fa3abfd04fa7d1d2da39d0",
      "tree": "f4f00d37afd5e2c6d2ba2398248422f2088a8c97",
      "parents": [
        "4d31a041c75525ffb526376792760622b081e9e1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 20 14:30:40 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 20 14:31:32 2021 +0000"
      },
      "message": "dexpreopt: Use the dirty-image-objects path from frameworks/base.\n\nTest: m\nBug: 176171716\nChange-Id: Ifbc08ae03e2b1bec7161948970bd197386e3b305\n"
    },
    {
      "commit": "a4a1c4ee984e9b2c4b970dc373dc025e92f70349",
      "tree": "2492697e65457216ee40eb6b929532050cec9b97",
      "parents": [
        "04f8d379e6c012f93fa0e6fb29556d30dddaae50"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Jan 15 18:40:04 2021 +0000"
      },
      "committer": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Jan 20 14:03:07 2021 +0000"
      },
      "message": "Support building boot images with disabled dexpreopt.\n\nBug: 176171716\nTest: build_mainline_modules.sh and ensure that the ART boot image is\n    built: `find out -type f -name \u0027*.art\u0027` is nonempty for every arch.\nChange-Id: Ibc45581eef2b205c750a30709780cf659ba7cfa1\n"
    },
    {
      "commit": "cdbbb1ea684b8e3d87f854a6d27e8b46a3c81963",
      "tree": "8a40b2000616df8f5fb7cf4a99d750dc6f99e428",
      "parents": [
        "de1357378b9d1bd0a53d77cc2869726d38d15ab6",
        "90e75350d70c3a27cc1cb2586ad10bbb99bb9286"
      ],
      "author": {
        "name": "JaeMan Park",
        "email": "jaeman@google.com",
        "time": "Wed Jan 20 00:00:54 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 00:00:54 2021 +0000"
      },
      "message": "Merge \"Make TestJavaSdkLibraryEnforce faster\""
    },
    {
      "commit": "fb04df4d57e52b38e6ebfec9cfcc2bb76968b2ce",
      "tree": "86a325d8082e9c172324c907fef214862c8f7de8",
      "parents": [
        "a41a6963b4a8636a6b5de9b0d4aa746c9a6e99ac"
      ],
      "author": {
        "name": "Bill Peckham",
        "email": "bpeckham@google.com",
        "time": "Mon Jan 11 12:27:24 2021 -0800"
      },
      "committer": {
        "name": "Bill Peckham",
        "email": "bpeckham@google.com",
        "time": "Tue Jan 19 18:15:16 2021 +0000"
      },
      "message": "Supply LOCAL_SOONG_DEX_JAR for java_import with compile_dex.\n\nWithout LOCAL_SOONG_DEX_JAR, ninja fails with a missing\ndependency error.\n\nTest: m nothing\nTest: new TestImportSoongDexJar\nBug: 173705556\nChange-Id: I54a4c6ea93877667a3fb97f8b2621c42e431f577\n"
    },
    {
      "commit": "a41a6963b4a8636a6b5de9b0d4aa746c9a6e99ac",
      "tree": "d7db1b9c2ae17dae167ffb1fd299606c5f17f434",
      "parents": [
        "bae4749de28b89a5702ed8cdeda1a390ad112e50"
      ],
      "author": {
        "name": "Bill Peckham",
        "email": "bpeckham@google.com",
        "time": "Mon Jan 11 10:58:54 2021 -0800"
      },
      "committer": {
        "name": "Bill Peckham",
        "email": "bpeckham@google.com",
        "time": "Tue Jan 19 18:15:03 2021 +0000"
      },
      "message": "Enable an apex to include a java_import.\n\nWith the addition of the compile_dex property to the\njava_import module it becomes possible to include a\njava_import module in an apex. This change allows the\ndependency and adds a test.\n\nBug: 177228901\nTest: m nothing\nTest: new TestApexWithJavaImport\nChange-Id: I9336dade1857109e2fd21f7d57e1dc4abc4a402c\n"
    },
    {
      "commit": "bae4749de28b89a5702ed8cdeda1a390ad112e50",
      "tree": "35e2ec21b1e9ece53246ca1f1e5c2feab57abc75",
      "parents": [
        "ad3421aacfac42bd4d2c907473eb943df94054ac"
      ],
      "author": {
        "name": "Bill Peckham",
        "email": "bpeckham@google.com",
        "time": "Fri Jan 08 09:34:44 2021 -0800"
      },
      "committer": {
        "name": "Bill Peckham",
        "email": "bpeckham@google.com",
        "time": "Tue Jan 19 10:07:45 2021 -0800"
      },
      "message": "Enable prebuilt hiddenapi CSV files.\n\nBy enabling these hiddenapi CSV files to be prebuilt, it\nbecomes possible to create a split build that supports\nthe hiddenapi encode dex step, but doesn\u0027t contain all\nof the java sources needed to generate the CSV files.\n\nBug: 175048716\nTest: m nothing\nTest: new TestHiddenAPISingletonWithPrebuiltCsvFile\nTest: local build without prebuilt hiddenapi\nTest: local build with prebuilt hiddenapi\nChange-Id: I805ea3ec05860d2df211a3985ec025bf36f0d775\n"
    },
    {
      "commit": "064b70c9183c5d4c2698347d25912638663281b6",
      "tree": "f67911bc162ae99f8c0c59ac42e129c755fa3a89",
      "parents": [
        "db170e4a923c1383026746242e354c6b859e0044"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Nov 02 17:32:38 2020 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jan 15 18:14:10 2021 +0000"
      },
      "message": "Export dex implementation jars from prebuilt_apex\n\nDexpreopt and boot jars package check all require access to dex\nimplementation jars created for java_library and java_sdk_library. They\nwere available when building from source but not when building from\nprebuilts, even though they are embedded within the .apex files that\nare referenced from prebuilt_apex.\n\nThis changes adds support to prebuilt_apex to export the dex\nimplementation jars and updates java_import to use those exported dex\nimplementation jars.\n\nIn a source build dexpreopt/boot jars package check access the apex (or\nplatform) specific variant of a java_library, e.g. core-oj, from which\nit retrieves the dex implementation jar path.\n\nAfter this change in a prebuilt build dexpreopt/boot jars package check\nbehave in the same way except in this case they retrieve the dex\nimplementation jar path from the apex (or platform) specific variant of\nthe java_import, e.g. core-oj.\n\nThe work to export files from a `.apex` file for use by other modules\nis performed by a new `deapexer` module type. It is not used directly\nin an `Android.bp` file but instead is created implicitly by\n`prebuilt_apex`,\n\nIn order to do that this contains the following changes:\n* Adds a new `dexapexer` module type to handle the exporting of files\n  from the `.apex` file.\n* Adds an exported_java_libs property to prebuilt_apex to specify the\n  set of libraries whose dex implementation jars need exporting.\n* Creates apex specific variants of the libraries listed in the\n  exported_java_libs property.\n* Adds the set of exported files to the ApexInfo to make them available\n  to the apex specific variants.\n* Prevents the prebuilt_apex variants from being merged together as\n  they will not be compatible.\n* Modifies java_import to use the exported file for variants of a\n  prebuilt_apex.\n* Adds a ninja rule to unpack (using deapexer) the contents of the\n  prebuilt_apex\u0027s apex file, verify that the required files are present\n  and make them available as outputs for other rules to use.\n* Some minor refactorings to support these changes.\n* Adds tests to cover prebuilt only, prebuilt with source preferred,\n  and prebuilt preferred with source.\n\nTest: m nothing\nBug: 171061220\nChange-Id: Ic9bed81fb65b92f0d59f64c0bce168a9ed44cfac\n"
    },
    {
      "commit": "db170e4a923c1383026746242e354c6b859e0044",
      "tree": "a1e9329a1dc3819c931775b64708db6c35e5f662",
      "parents": [
        "b47dcf7f0d290f140e32460846aacb795a02b060"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Dec 08 17:48:25 2020 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jan 15 18:14:10 2021 +0000"
      },
      "message": "Add java_boot_libs to sdk\n\nThe build has some implicit dependencies (via the boot jars\nconfiguration) on a number of modules, e.g. core-oj, apache-xml, that\nare part of the java boot class path and which are provided by mainline\nmodules (e.g. art, conscrypt, runtime-i18n) but which are not otherwise\nused outside those mainline modules.\n\nAs they are not needed outside the mainline modules adding them to\nthe sdk/module-exports as either java_libs, or java_header_libs would\nend up exporting more information than was strictly necessary. This\nchange adds the java_boot_libs property to allow those modules to be\nexported as part of the sdk/module_exports without exposing any\nunnecessary information.\n\nSome points to note:\n* The java_import has to have a valid file for the src property\n  otherwise it will be disabled.\n* The src property is supposed to reference a jar file but the\n  java_boot_libs property will make it reference an empty file (not\n  an empty jar) so that any attempt to use that file as a jar, e.g.\n  compiling against it, will cause a build failure.\n* The name of the file passed to the src property should make it\n  clear that the file is not intended to be used.\n* The test makes sure that only the jar file is copied to the\n  snapshot.\n\nTest: m nothing\nBug: 171061220\nChange-Id: I175331e4c8e3874ab70a67cdc2f76ed1576e41eb\n"
    },
    {
      "commit": "90e75350d70c3a27cc1cb2586ad10bbb99bb9286",
      "tree": "1fed01401e5930e3eebe20f8e19e19a613ceffa3",
      "parents": [
        "66f7fdd1c89ad5d0eab631143902f6ee17de6332"
      ],
      "author": {
        "name": "JaeMan Park",
        "email": "jaeman@google.com",
        "time": "Thu Jan 14 11:56:56 2021 +0900"
      },
      "committer": {
        "name": "JaeMan Park",
        "email": "jaeman@google.com",
        "time": "Fri Jan 15 13:24:09 2021 +0900"
      },
      "message": "Make TestJavaSdkLibraryEnforce faster\n\nTestJavaSdkLibraryEnforce is too slow because it tests all\ncombinations of options. Change TestJavaSdkLibraryEnforce to\nrun test on specific test cases, not all combinations.\n\nBug: 177323052\nTest: go test -timeout 10s -run ^TestJavaSdkLibraryEnforce$ android/soong/java\nChange-Id: Ie7fe4e22b570a3e25259a6ad4bd37936805c6604\n"
    },
    {
      "commit": "c1be2f810599859a2806413ff72643d7d6466365",
      "tree": "499264eee769fc46cdc941406f5486fd13deb2c0",
      "parents": [
        "142b28a095d9ecc43ab573e9923ad2c775a0a9c8"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Jan 13 15:49:17 2021 +0000"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Jan 13 15:49:17 2021 +0000"
      },
      "message": "Move temp blocklist APIs to max-sdk-r list.\n\nThese APIs were temporarily blocked but are now being moved to the\nmax-sdk-r for final release. Tag these APIs as \"lo-prio\" since we\nbelieve that they are unused.\n\nBug: 173499988\nTest: m\nChange-Id: If9c6be963faa75df77cf3cc7761b384324c8cd3e\n"
    },
    {
      "commit": "53230fefa3ab51f9b66fdea34bbd4dcd68b35b53",
      "tree": "20b404e9bed55ecc7dd807305fc59c9c36251d24",
      "parents": [
        "65f7312db00d66e35eb48c9335ca81ffbf5aecc1",
        "7bc1cf508f8d730c852736ab77470a7be9af9988"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Jan 08 17:00:56 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 08 17:00:56 2021 +0000"
      },
      "message": "Merge \"Remove obsolete class loader context API and update unit tests.\""
    },
    {
      "commit": "ddac9bf3f26a224eba760727d5edd3ddd95b0c8f",
      "tree": "1bd95ea5039e6a0aa5f90dea306638d15ae050b1",
      "parents": [
        "ee7d0fd0f64f8bc53fb2c59e589fb89b15b7a5a1",
        "b80dfee900640bebb01214d34e4aa56409f1d612"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Jan 07 22:42:08 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 07 22:42:08 2021 +0000"
      },
      "message": "Merge changes from topic \"revert-1541855-revert-1377717-metalics-BOEMJWNSHV-PBOZXBJQZD\"\n\n* changes:\n  Revert^2 \"Define the standard license_kind rules.\"\n  Revert^2 \"Export soong license data to make.\"\n  Revert^2 \"Add ability to declare licenses in soong.\"\n"
    },
    {
      "commit": "b499922acc4e46c2cedd1884d8faa3135d2052b7",
      "tree": "53f984a2d6ace85423ebbe11530aef8d65028b0c",
      "parents": [
        "37af04600228de4fd0a5ac1aa9c9eaceefd67370"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Jan 07 03:34:31 2021 +0000"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Jan 06 20:49:11 2021 -0800"
      },
      "message": "Revert^2 \"Export soong license data to make.\"\n\n61a55a03440313461c0fd2805834e69c3131d483\n\nChange-Id: I5fb017c683df18bad42a8e27fb2d7c7c510514e5\n"
    },
    {
      "commit": "26ab0f1051bfbd0961eb380282625769ff1dbcd5",
      "tree": "b7be96664df1750d8e6fc1a7335823497c62bbd5",
      "parents": [
        "b5d641ea3f81ec24a6054d2b647ff4a75f6a6f8c",
        "e197d8b174208baa68f442b8c50910ad3be1aa34"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Jan 07 01:28:47 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 07 01:28:47 2021 +0000"
      },
      "message": "Merge \"Add \"aidl.flags:\" property for cc_/java_ modules\""
    },
    {
      "commit": "a1b87c81cae812c74721322cc4dca8a5b836d060",
      "tree": "b02182bd2063abed58eb6b1b671d1934d2592b4c",
      "parents": [
        "659f11fcfcc55f97b5d6ca6e75668fecbeaa01c3",
        "df98d3e4a546a3a3e5e6aba5ca6151d00547ef20"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Jan 06 19:17:45 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 06 19:17:45 2021 +0000"
      },
      "message": "Merge changes from topic \"revert-1377717-metalics-BOEMJWNSHV\"\n\n* changes:\n  Revert \"Add ability to declare licenses in soong.\"\n  Revert \"Export soong license data to make.\"\n  Revert \"Define the standard license_kind rules.\"\n"
    },
    {
      "commit": "61a55a03440313461c0fd2805834e69c3131d483",
      "tree": "f3bc5ea110412e4b39a45bd10aa94941710dbe3e",
      "parents": [
        "cc4921607909af4196ca7506523e611c1e67dc17"
      ],
      "author": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Wed Jan 06 19:00:05 2021 +0000"
      },
      "committer": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Wed Jan 06 19:00:05 2021 +0000"
      },
      "message": "Revert \"Export soong license data to make.\"\n\nRevert submission 1377717-metalics\n\nReason for revert: This has broken renderscript_mac target for aosp-master, see b/176909442\n\nReverted Changes:\nI26ac54ca9:Define the standard license_kind rules.\nI656486070:Export soong license data to make.\nIf9d661dfc:Export soong license data to make.\nI97943de53:Add ability to declare licenses in soong.\nIcaff40171:Rough-in license metadata support to make.\nIb8e538bd0:Add variables for notice deps, license kinds etc.\n\nChange-Id: I51799c94a274eadab414abd80a07b5cda4584be9\n"
    },
    {
      "commit": "659f11fcfcc55f97b5d6ca6e75668fecbeaa01c3",
      "tree": "114ba80c3c6fa81ee49de3c25df1da1b054d6730",
      "parents": [
        "5542859c312bac47097a116d5d439727fefa24a1",
        "13351b2c7d181f6d100001e86ca3faa6cabb92eb"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Jan 06 18:08:07 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 06 18:08:07 2021 +0000"
      },
      "message": "Merge changes from topic \"metalics\"\n\n* changes:\n  Define the standard license_kind rules.\n  Export soong license data to make.\n  Add ability to declare licenses in soong.\n"
    },
    {
      "commit": "74fab317122bb58e4b96d8ffdb17ceb19d57d828",
      "tree": "dce4ae804b9534fa72656c74e90078bad6d970ff",
      "parents": [
        "8a36d94714e0f3ba41c8b3588956a2e1f652a36d"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Oct 08 10:53:27 2020 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Jan 05 08:42:48 2021 -0800"
      },
      "message": "Export soong license data to make.\n\nSee: http://go/android-license-checking-in-soong-v2-design\n\nBug: 151953481\nBug: 151177513\nBug: 67772237\n\nChange-Id: If9d661dfcaa732c459d38d8ad7ec4a0e540846b8\n"
    },
    {
      "commit": "7bc1cf508f8d730c852736ab77470a7be9af9988",
      "tree": "67201bcc2faa1e05c22a834e8c2e476dda4fea98",
      "parents": [
        "e6056153cf40b2bd68410573ffab9a8c1430e428"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Jan 05 15:41:55 2021 +0000"
      },
      "committer": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Jan 05 15:41:55 2021 +0000"
      },
      "message": "Remove obsolete class loader context API and update unit tests.\n\nThe removed API has been unused since https://r.android.com/1533342\n(except for unit tests).\n\nChanges in the unit tests reflect the change of API in\nhttps://r.android.com/1533342: early errors caused by unknown library\npaths at CLC construction time have been replaced with late errors at\nthe time of CLC validation.\n\nBug: 132357300\nTest: m nothing\nChange-Id: I739c7c41b6f882b7e28cdd6acd05961d754d8687\n"
    },
    {
      "commit": "22890c466e8d69968b420af1e2b59341913f6042",
      "tree": "27b8bb4ca81222d4ebca12031b278cbf798b5e35",
      "parents": [
        "e6056153cf40b2bd68410573ffab9a8c1430e428"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Jan 05 12:04:17 2021 +0000"
      },
      "committer": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Jan 05 12:04:17 2021 +0000"
      },
      "message": "Enforce \u003cuses-library\u003e checks for android_app and android_app_import.\n\nBug: 132357300\nTest: lunch aosp_cf_x86_phone-userdebug \u0026\u0026 m\nChange-Id: Ib9653aa27a173f0f0c03c7c9b0963d8ea71bb155\n"
    },
    {
      "commit": "e197d8b174208baa68f442b8c50910ad3be1aa34",
      "tree": "778ca30fbf634a07bfbfa9a28d1bc461c44f9edc",
      "parents": [
        "591920fcfa319358c24c476e4e6db0a8a2662b24"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Tue Jan 05 10:33:16 2021 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Tue Jan 05 10:40:22 2021 +0900"
      },
      "message": "Add \"aidl.flags:\" property for cc_/java_ modules\n\nThe property can be used to pass additional flags to the AIDL compiler.\nFor example,\n\n  cc_library {\n    ..\n    srcs: [\"Foo.aidl\"],\n    aidl: {\n      flags: [\n        \"-Werror\",      // warnings as error\n        \"-Weverything\", // turn on all warnings\n      ],\n    },\n  }\n\nBug: 168028537\nTest: soong test\nChange-Id: I8120eeae7cd7b1acdd34c554af996a29e760a368\n"
    },
    {
      "commit": "e6056153cf40b2bd68410573ffab9a8c1430e428",
      "tree": "f551576aad85bbe5a9f34f9b96f2da77df796d58",
      "parents": [
        "591920fcfa319358c24c476e4e6db0a8a2662b24"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Dec 31 10:37:27 2020 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Dec 31 10:44:38 2020 +0000"
      },
      "message": "Remove Ignore_missing_latest_api\n\nThis flag was only used by sdk_library.go, and is no longer needed\nsince sdk_library.go now knows which libraries are missing latest_api\ntracking files.\n\nBug: 176092454\nTest: m\nChange-Id: I5a967f784bde99f103b85654c794e8d7110fd0db\n"
    },
    {
      "commit": "591920fcfa319358c24c476e4e6db0a8a2662b24",
      "tree": "0f822a14113cfcd54acd92d30464b99ae66e8f05",
      "parents": [
        "6b8c40036cd88cbbb6b51305f0bd9e710743c770",
        "0615864046ea777e555eb7674b137bc69a86deab"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Dec 31 08:53:45 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 31 08:53:45 2020 +0000"
      },
      "message": "Merge \"Stop allowing missing last-api files by default\""
    },
    {
      "commit": "e87b03d1bb837dfac724376447a0e07a4ef8ccc3",
      "tree": "c994616e3efcfce684b7a02849fbccac5588bad3",
      "parents": [
        "8bfb63c5a9717ef50e7a10fcd85274b4fcd55df3"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Mon Dec 21 15:29:34 2020 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Dec 29 13:24:02 2020 +0000"
      },
      "message": "Set previous_api correctly for java_sdk_library\n\nMetalava used this attribute to potentially re-write some nullness\nannotations from @Nullable to @RecentlyNonNull, and not doing so can\ncause problems when compiling kotlin.\n\nBug: 176092452\nTest: m art.module.public.api.stubs \u0026\u0026 \\\n      rm -rf /tmp/lib \u0026\u0026 \\\n      unzip -qd /tmp/lib art.module.public.api.stubs.jar \u0026\u0026 \\\n      javap -v /tmp/lib/java/util/concurrent/ConcurrentHashMap.class | \\\n      grep Recently\nChange-Id: I9012798f27e39d9a53dbcf0976548f6cec2d3150\n"
    },
    {
      "commit": "0615864046ea777e555eb7674b137bc69a86deab",
      "tree": "febcacd91179fad7f7c74b2c6348f50099ff5d5e",
      "parents": [
        "8bfb63c5a9717ef50e7a10fcd85274b4fcd55df3"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Mon Dec 21 17:10:01 2020 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Dec 29 13:20:42 2020 +0000"
      },
      "message": "Stop allowing missing last-api files by default\n\nBug: 176092454\nTest: m nothing\nChange-Id: I9eadcb774e9898bb4f43054661826326b2c527c2\n"
    },
    {
      "commit": "8bfb63c5a9717ef50e7a10fcd85274b4fcd55df3",
      "tree": "a84051d035c36ecf08a33e4f928db320fca4e046",
      "parents": [
        "3d419e3b3d1dc313f33ee48833a96c6dd381c1be",
        "f9b44657c81af46d409478e18fc88201f595d510"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Mon Dec 28 17:50:44 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 28 17:50:44 2020 +0000"
      },
      "message": "Merge \"Break up app.go.\""
    },
    {
      "commit": "3d419e3b3d1dc313f33ee48833a96c6dd381c1be",
      "tree": "a7d5819f91cd7297d7c6e4cb12afa80c91fae2ae",
      "parents": [
        "31094b10d2d1ec64c99ee117b686810cfd4494b8",
        "ff89ffae0bc80e04ddb5dd216deaf8b52f0e6856"
      ],
      "author": {
        "name": "Bill Peckham",
        "email": "bpeckham@google.com",
        "time": "Mon Dec 28 17:20:14 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 28 17:20:14 2020 +0000"
      },
      "message": "Merge \"Automatically set uncompress_dex for java_import.\""
    },
    {
      "commit": "b2d77d4a52209c6dd340fcbb93544fadd1542325",
      "tree": "2aa15e1161bb2e3e0f234d54f4d6eb8c0750b05d",
      "parents": [
        "7dbc5786e3af292c1e2e786e4a9ec82cea93f051",
        "cf02ec87476e7dc044e85cc04b4182df3f53cbd2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 24 03:04:37 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 24 03:04:37 2020 +0000"
      },
      "message": "Merge \"Use soong_zip -srcjar for proto and aidl srcjars\""
    },
    {
      "commit": "cf02ec87476e7dc044e85cc04b4182df3f53cbd2",
      "tree": "3bb924016947b1c5c8629cbb2c2dc17b0ab2d1d5",
      "parents": [
        "1f8c2729846b83e24c09292ef5739b13375f7c0c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Dec 23 17:13:16 2020 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Dec 23 17:13:16 2020 -0800"
      },
      "message": "Use soong_zip -srcjar for proto and aidl srcjars\n\nIntelliJ\u0027s indexer is unhappy with the full paths in the proto\nand aidl srcjars.  Use the -srcjar argument to soong_zip, which\ncauses it to extract the correct filename for .java files based on\nthe package statement in the file.\n\nBug: 176209347\nTest: manual\nChange-Id: I63d9d4f6ba670e3b851835d719519d675ae54c7f\n"
    }
  ],
  "next": "ff89ffae0bc80e04ddb5dd216deaf8b52f0e6856"
}
