)]}'
{
  "commit": "30a4adc0c08cd8b976d021564aafec8ee3e51c30",
  "tree": "3611e1e8e1f9b6bf8a7601ffcc4c01996fb924c9",
  "parents": [
    "94568f1e74e08e8397338d232eac80a866971301"
  ],
  "author": {
    "name": "Kevin Han",
    "email": "kevhan@google.com",
    "time": "Mon Oct 25 20:23:50 2021 -0700"
  },
  "committer": {
    "name": "Kevin Han",
    "email": "kevhan@google.com",
    "time": "Wed Nov 17 23:00:21 2021 +0000"
  },
  "message": "Exempt hibernating apps from dex optimization\n\nWe previously only checked whether an app could be optimized in\nPackageManagerService#getOptimizablePackages. This missed edge cases\nwhere the app would still generate vdex/odex such as when the app is\nupdated.\n\nWe fix this by considering any hibernating app as not optimizable in all\ncases.\n\nTo support unit testing, we also change canOptimizePackage to a\nnon-static method and enumerate PackageDexOptimizer\u0027s dependencies\nclearly with an injector.\n\nBug: 203693378\nTest: Reproduce steps in bug, confirm app does not have vdex/odex\nTest: atest PackageManagerServiceHibernationTests\nTest: forrest run of asit/dexoptota/self_full\nMerged-In: I6b88713529a570f285422e6716ad797e2148ce2c\nChange-Id: I6b88713529a570f285422e6716ad797e2148ce2c\n(cherry picked from commit 7cd8c2535045877ec2d5a31b486acb5dd09d39ea)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b0335fe404f42dba2f16ee536909d3d69df389bf",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/apphibernation/AppHibernationManagerInternal.java",
      "new_id": "a3c9612e0e2c8b5f342d449bb795c2bb39bff81b",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/apphibernation/AppHibernationManagerInternal.java"
    },
    {
      "type": "modify",
      "old_id": "19dcee4828dddbd196bff374ab0d13be6b2bbbda",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/apphibernation/AppHibernationService.java",
      "new_id": "5cfcb4c5f8a81db9a16ddc5a40a30f75a3e77443",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/apphibernation/AppHibernationService.java"
    },
    {
      "type": "modify",
      "old_id": "d6400f3c879efc5b620c8fab4ab8209af176dc9a",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/pm/OtaDexoptService.java",
      "new_id": "b500c9930e004d1b53c863f0e1c716af22aa6e90",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/pm/OtaDexoptService.java"
    },
    {
      "type": "modify",
      "old_id": "44f7d88693223dc7dabf2783edf465bbd077bc74",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/pm/PackageDexOptimizer.java",
      "new_id": "040457bf900014a497b95b3e2e1c610e68a1e391",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/pm/PackageDexOptimizer.java"
    },
    {
      "type": "modify",
      "old_id": "821900bf57fea2ab706a479afec3525f9a0d516b",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/pm/PackageManagerService.java",
      "new_id": "979b77f050b4c3a78ceaf0434e3b8d3d68deca78",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/pm/PackageManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "72bc77ebb9effa99b296e926fc96ce311a38c056",
      "old_mode": 33188,
      "old_path": "services/tests/mockingservicestests/src/com/android/server/pm/PackageManagerServiceHibernationTests.kt",
      "new_id": "fd97557480bbf64bd7a1a837b7227928f84e434c",
      "new_mode": 33188,
      "new_path": "services/tests/mockingservicestests/src/com/android/server/pm/PackageManagerServiceHibernationTests.kt"
    }
  ]
}
