OSDN Git Service

Allow only selected priv apps to run OOB
authorVictor Hsieh <victorhsieh@google.com>
Thu, 19 Apr 2018 21:26:28 +0000 (14:26 -0700)
committerVictor Hsieh <victorhsieh@google.com>
Wed, 9 May 2018 14:45:51 +0000 (07:45 -0700)
commit785d618b1a4c66d885cafec34ed1981daee6736d
tree48b98b37f3db877086dd1c51ac09f5c32cb77e92
parent8ea760c8158b27129a9838338d209d8841be0cc0
Allow only selected priv apps to run OOB

- Add pm.dexopt.priv-apps-oob-list to allow selecting specific packages
  to run OOB, in a comma-separated string of package names. When set to
  "ALL" (default), all priv apps will run in OOB.
- Add a global config priv_app_oob_list to persist the state for
  experiment.
- Also make background dexopt to respect the config.

Test: 0. Reset previous OOB settings.
      1. settings put global priv_app_oob_list \
         com.google.android.gms,com.android.vending
      2. cmd package compile -m speed -f com.google.android.gms (then
         com.android.vending, com.google.android.googlequicksearchbox)
      3. dumpsys package dexopt
         # .vending and .gms are "verify", .googlequicksearchbox is
         # "speed".
Test: settings put global priv_app_oob_list 'ALL'  # see the same result
Test: settings delete global priv_app_oob_list  # see the same result
Test: atest SettingsBackupTest
Bug: 30972906
Bug: 63920015
Change-Id: Iba47b4763a026cdc94939db0a743822278917269
core/java/android/provider/Settings.java
core/tests/coretests/src/android/provider/SettingsBackupTest.java
services/core/java/com/android/server/am/ActivityManagerService.java
services/core/java/com/android/server/pm/PackageDexOptimizer.java
services/core/java/com/android/server/pm/PackageManagerService.java
services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
services/core/java/com/android/server/pm/dex/DexManager.java
services/tests/servicestests/src/com/android/server/pm/dex/DexManagerTests.java