Forward args to install-commit properly when using install-multi-package

--staged-ready-timeout is the only flag install-commit supports, so we
only forward that.

Bug: 183990075
Test: atest
StagedInstallInternalTest#testAdbInstallMultiPackageCommandWorksWithTimeoutFlag

Change-Id: I31c48b4a7a6f243fc130be342c584386592cec7f
Merged-In: I31c48b4a7a6f243fc130be342c584386592cec7f
(cherry picked from commit 7a5824583e1744dd9c034e90a545a2d8986f4254)
diff --git a/client/adb_install.cpp b/client/adb_install.cpp
index ea50f59..892af62 100644
--- a/client/adb_install.cpp
+++ b/client/adb_install.cpp
@@ -930,11 +930,22 @@
 
 finalize_multi_package_session:
     // Commit session if we streamed everything okay; otherwise abandon
-    std::vector<std::string> service_args = {
-            install_cmd,
-            success == 0 ? "install-commit" : "install-abandon",
-            parent_session_id_str,
-    };
+    std::vector<std::string> service_args;
+    if (success) {
+        service_args.push_back(install_cmd);
+        service_args.push_back("install-commit");
+        // If successful, we need to forward args to install-commit
+        for (int i = 1; i < first_package - 1; i++) {
+            if (strcmp(argv[i], "--staged-ready-timeout") == 0) {
+                service_args.push_back(argv[i]);
+                service_args.push_back(argv[i + 1]);
+                i++;
+            }
+        }
+        service_args.push_back(parent_session_id_str);
+    } else {
+        service_args = {install_cmd, "install-abandon", parent_session_id_str};
+    }
 
     {
         unique_fd fd = send_command(service_args, &error);