)]}'
{
  "commit": "767fac1b8de8ff25cc3b463f9799d94e1dd94a16",
  "tree": "125bf9f20ffc952dfb52500e454e33d818ff6f71",
  "parents": [
    "f19a80a14283f07ebb2470e2c0184f7512a59602"
  ],
  "author": {
    "name": "Matt Boetger",
    "email": "matt.boetger@gmail.com",
    "time": "Thu Nov 06 13:36:20 2025 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Nov 06 21:36:20 2025 +0000"
  },
  "message": "Respect product flavor abiFilters by adding a `disable-abi-filtering` Android project flag. (#177753)\n\nThis PR introduces a flag (`disable-abi-filtering`) that disables the\nFlutterPlugin\u0027s abiFiltering on buildTypes. This should only be used\nwhen the developers know what they are doing. Specifically this allows\ndevelopers to set their own abiFilters in ProductFlavors or\ndefaultConfig.\n\nBecause Gradle has complex merging logic, there is a hierarchy of\npriority when calculating settings (like abiFilters). For example:\ndefaultConfig \u003c productFlavors \u003c buildTypes when combining the three\ninto the final build variant. If abiFilters are set in buildType, it\nwill override abiFilters in productFlavors.\n\nWhen the FlutterPlugin executes, it cannot know about the developers\nbuild.gradle settings and therefore we cannot add logic that checks to\nsee if abiFilters are set in productFlavors. Therefore, this flag gives\ndevelopers an escape hatch so they can implement what they want.\n\nFixes: #175845 \n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [X] I listed at least one issue that this PR fixes in the description\nabove.\n- [X] I updated/added relevant documentation (doc comments with `///`).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [X] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d6fc07c8d988ac32a5ca88fdf7ff6bcb6e4937d4",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/gradle/src/main/kotlin/FlutterPlugin.kt",
      "new_id": "a0f304612a0392869cdf8880c1888868c126098b",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/gradle/src/main/kotlin/FlutterPlugin.kt"
    },
    {
      "type": "modify",
      "old_id": "9e8dc5d29bf35e5f9d15cf67d511eff2aee34fde",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/gradle/src/main/kotlin/FlutterPluginUtils.kt",
      "new_id": "d7bdc23a2e45cfb78593f3e669672434e1b6bb1a",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/gradle/src/main/kotlin/FlutterPluginUtils.kt"
    },
    {
      "type": "modify",
      "old_id": "4a2b1e84426fc6846a291dae1720b3e8050a7ec4",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/integration.shard/gradle_jni_packaging_test.dart",
      "new_id": "46858a4499bcc8a9b93e421951893617bd5b4ab0",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/integration.shard/gradle_jni_packaging_test.dart"
    }
  ]
}
