)]}'
{
  "commit": "61fe76e8fcb6ed856eb35952faf521dca8922564",
  "tree": "27add92129fa5248d1543ef3f026b6ae1df238c7",
  "parents": [
    "ad4aed305710c583c4bf2a5b77b39153fa5c09a2"
  ],
  "author": {
    "name": "A Googler",
    "email": "no-reply@google.com",
    "time": "Fri Oct 23 11:51:08 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri Oct 23 11:51:49 2026 -0700"
  },
  "message": "`adb.Controller.Exec` previously concatenated command arguments with spaces without shell quoting before passing the command string to `adb shell`. When launching an Android activity or `\u003cactivity-alias\u003e` whose component name contains `$` (such as `com.example/.app.honeycomb.Shell$HomeActivity`), the device shell (`/system/bin/sh`) expands `$HomeActivity` as an unset environment variable before `am start` receives the component name. As a result, ActivityManager receives a truncated component name (`com.example/.app.honeycomb.Shell`), fails to resolve the activity, and the app never starts.\n\nSingle-quote each argument in `Controller.Exec` (escaping any embedded single quotes) so both explicit `--launch_activity` components and default launcher components resolved via `resolveLauncherActivity` are passed verbatim to the device shell.\n\nPiperOrigin-RevId: 1005756088\nChange-Id: Ia4d432affcf79b32c5f9ec39099805b3293a680f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9182ff2e624cc5e533d96a878eebc45bd25995a9",
      "old_mode": 33188,
      "old_path": "src/tools/mi/broker/adb.go",
      "new_id": "c456e4424f09c901e03f0998dd51cd6cde382bb6",
      "new_mode": 33188,
      "new_path": "src/tools/mi/broker/adb.go"
    },
    {
      "type": "modify",
      "old_id": "36c04d8607d880e6d70add18cad3cfbf67a6889d",
      "old_mode": 33188,
      "old_path": "src/tools/mi/broker/adb_test.go",
      "new_id": "131930ec19797d0462cd4f0d4a1c8e9caf721468",
      "new_mode": 33188,
      "new_path": "src/tools/mi/broker/adb_test.go"
    },
    {
      "type": "modify",
      "old_id": "f868a4069ebbdb777fcb13b59a27fc67840308ab",
      "old_mode": 33188,
      "old_path": "src/tools/mi/broker/device_test.go",
      "new_id": "784a8048daa25cb5b42152546497b8f203faf63b",
      "new_mode": 33188,
      "new_path": "src/tools/mi/broker/device_test.go"
    }
  ]
}
