Ensure dex2oat is run with background priority for OTA dexopt.

This makes us query `dalvik.vm.background-dex2oat-cpu-set` and
`dalvik.vm.background-dex2oat-threads` for those runs.

A test run shows that `DEXOPT_BOOTCOMPLETE` is propagated from
`OtaDexoptService`, but set it anyway to be certain.

Test: Apply OTA and check that `boot_complete` and
      `background_job_compile` get set in `android::installd::dexopt`.
Bug: 237017087
Change-Id: I48627dd062fb6155c826d48b7caefeec36f0cfff
diff --git a/cmds/installd/otapreopt.cpp b/cmds/installd/otapreopt.cpp
index 7cabdb0..407cb24 100644
--- a/cmds/installd/otapreopt.cpp
+++ b/cmds/installd/otapreopt.cpp
@@ -471,13 +471,18 @@
     // TODO(calin): embed the profile name in the parameters.
     int Dexopt() {
         std::string error;
+
+        int dexopt_flags = parameters_.dexopt_flags;
+        // Make sure dex2oat is run with background priority.
+        dexopt_flags |= DEXOPT_BOOTCOMPLETE | DEXOPT_IDLE_BACKGROUND_JOB;
+
         int res = dexopt(parameters_.apk_path,
                          parameters_.uid,
                          parameters_.pkgName,
                          parameters_.instruction_set,
                          parameters_.dexopt_needed,
                          parameters_.oat_dir,
-                         parameters_.dexopt_flags,
+                         dexopt_flags,
                          parameters_.compiler_filter,
                          parameters_.volume_uuid,
                          parameters_.shared_libraries,