)]}'
{
  "commit": "c6edb1e80c8c3fbc687fa20a0df8e86fa7c3d151",
  "tree": "ec247083c7e50b4eb19d6950892f9509713b2760",
  "parents": [
    "d9772708ef7c10fe6e2d66c075a36dd8c459d6eb"
  ],
  "author": {
    "name": "Hyangseok Chae",
    "email": "neo.chae@lge.com",
    "time": "Mon Apr 02 08:23:31 2018 +0900"
  },
  "committer": {
    "name": "Calin Juravle",
    "email": "calin@google.com",
    "time": "Mon May 07 17:14:23 2018 -0700"
  },
  "message": "Reset the profile when system application change version.\n\nBackground optimization has flag checkProfiles as true,\nperformDexOptLI check profile is updated with checkProfiles.\n(isProfileUpdated() -\u003e mergeProfiles -\u003e analyze_profiles())\nanalyze_profiles decides if it is need to compile and clear\nthe profile or not. But analyze_profiles and profman merge\nonly based on existing profiles. Eventhough checksum of\napplication dex was changed, profman only check the profile\ncan be merge or not.\n\nWith below TC, the return value of profman is PROFMAN_BIN_\nRETURN_CODE_SKIP_COMPILATION(1). Because current profile\nhas not enough informations than reference profile.\nI think ProcessProfilesInternal should consider change\nof dex checksum, If there are mismatch checksum of dex\nbetween profiles and dex, then profman should return with\nPROFMAN_BIN_RETURN_CODE_BAD_PROFILES (2).\nAfter that analyze_profiles can reset profiles with\nPROFMAN_BIN_RETURN_CODE_BAD_PROFILES.\n\nBut profman does not have that implemtation for verify\nthe profile based on checksum. So, It is need to drop\nthe profile based on change of application version.\n\nTest: System update\n1. Factory Image with system application. (vendor, system app)\n2. Use Sample application to generage current profile.\n3. BackgroundDexOptService optimize with speed-profile.\n4. Use Sample application to generage current profile.\n5. There are small size of current profile and large size\n    of reference profile.\n6. System update with application change.\n7. Reboot.\n8. Next background optimization would be fail permanently.\n\nBug: 77839992\n\nChange-Id: Iac575ae5906498a59b750df0b281fab01df57b3e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "af5521d036af22b4cf75c67f18404c25acb711db",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/pm/PackageManagerService.java",
      "new_id": "a9eb7451b2f796245c75faac6e2f90e2f9a9de67",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/pm/PackageManagerService.java"
    }
  ]
}
