)]}'
{
  "commit": "7e6fa6727cb5f66c63a259abaceabdd67e92d530",
  "tree": "f67aa67fad3a975dc524cd5135c8c4098097e39d",
  "parents": [
    "caa6519f682060c386925d17e163a9de4eff4e4d"
  ],
  "author": {
    "name": "Martijn Coenen",
    "email": "maco@google.com",
    "time": "Mon Nov 05 11:45:26 2018 +0100"
  },
  "committer": {
    "name": "Martijn Coenen",
    "email": "maco@google.com",
    "time": "Mon Jan 07 09:10:31 2019 +0000"
  },
  "message": "Initial support for application Zygote.\n\nWhen an application has requested isolated services to be spawned\nfrom an app zygote, we need to spawn the app zygote itself, and then\nask it to fork an isolated service.\n\nThe application zygote currently only creates the class loader, and\ndoesn\u0027t do much else. We keep track of the isolated services that\nuse the app zygote, and when the last isolated service goes away,\nwe stop the app zygote itself (after a timeout).\n\nThe app zygote itself runs with the app\u0027s UID and under the app\nseccomp filter. That last one is too restricted, so this currently\nonly works with SELinux disabled.\n\nFuture CLs will add an application callback for preloading.\n\nTest: start multiple isolated services with useAppZygote\u003d\"true\",\n      verify app_zygote starts, services start as a child of\n      app_zygote. Stopping all services stops app_zygote as well.\n\nBug: 111434506\n\nChange-Id: I10ee1d4bd148c9298974d434fbc5e5eccbec16cb\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "22756934abc06c403aa7b866ad5e7bb4e080925e",
      "new_mode": 33188,
      "new_path": "core/java/android/os/AppZygote.java"
    },
    {
      "type": "modify",
      "old_id": "f136cd6699a7fc7a96cf339cb6f811007c1c02cf",
      "old_mode": 33188,
      "old_path": "core/java/android/os/ZygoteProcess.java",
      "new_id": "251c5eebadc4db7adfaf3c0bc57131f225b3c20b",
      "new_mode": 33188,
      "new_path": "core/java/android/os/ZygoteProcess.java"
    },
    {
      "type": "modify",
      "old_id": "49e11b8baf51f4b6bcdc0ead8acf3ce5919a7179",
      "old_mode": 33188,
      "old_path": "core/java/android/webkit/WebViewZygote.java",
      "new_id": "9f7aa6a2852af383ebffcd7e86d5ff24c57f7419",
      "new_mode": 33188,
      "new_path": "core/java/android/webkit/WebViewZygote.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "09f4b36027cf59ec0de9741e23ee72c42479aeef",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/os/AppZygoteInit.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f90cd022459649ae5edc08cd3802ccf0f5753333",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/os/ChildZygoteInit.java"
    },
    {
      "type": "modify",
      "old_id": "9f2434e97d7a2f8449bb359f4075da4256110533",
      "old_mode": 33188,
      "old_path": "core/java/com/android/internal/os/WebViewZygoteInit.java",
      "new_id": "2c8e66d010f926941178f50cf9ef106dea77b281",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/os/WebViewZygoteInit.java"
    },
    {
      "type": "modify",
      "old_id": "65b9fad97d8920b70be7961ac19051ad47bce992",
      "old_mode": 33188,
      "old_path": "core/java/com/android/internal/os/Zygote.java",
      "new_id": "d720c689f5de12456ac756566b91a039f5c9e7a0",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/os/Zygote.java"
    },
    {
      "type": "modify",
      "old_id": "f182c4d447dfa6484eb4cf3ed96a9f4436686aac",
      "old_mode": 33188,
      "old_path": "core/java/com/android/internal/os/ZygoteConnection.java",
      "new_id": "5990d72d89b4636c0f697cd142c718f8602fff06",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/os/ZygoteConnection.java"
    },
    {
      "type": "modify",
      "old_id": "a94fa12e4f35091b006d33cecef560b2b8f2a6b4",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/am/ActiveServices.java",
      "new_id": "ed39d8302bf705ea99d7a6b883b9b4c27d61fb4e",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/am/ActiveServices.java"
    },
    {
      "type": "modify",
      "old_id": "b053979f1fcd507a9567269c7f6ded97a92e5ce1",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/am/ActivityManagerService.java",
      "new_id": "e171736bd9cc6f8b09a6b0aef8443b95422ac801",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/am/ActivityManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "895a86ba9fc7f1afff731a78001c1087d109f068",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/am/ProcessList.java",
      "new_id": "896452b4ad62db499733ccd8650cc5623ee6c487",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/am/ProcessList.java"
    }
  ]
}
