Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f03eebdd authored by Calin Juravle's avatar Calin Juravle Committed by Josh Gao
Browse files

Accept DexMetadata files (.dm) for install-multiple

Allow .dm files (DexMetadata) to be passed to adb install-multiple.

Do not rename the input files based on their indices as the naming matters
for associating an .dm file to an .apk file.

Test: adb install-multiple -p com.android.cts.classloadersplitapp base.apk
     split.apk split.dm

Bug: 30934496
Change-Id: I2ac39e00d64eae938124250033f79e02f3c3f9c0
(cherry picked from commit aa775387)
parent ddcee93c
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1925,7 +1925,8 @@ static int install_multiple_app(int argc, const char** argv) {
    for (int i = argc - 1; i >= 0; i--) {
        const char* file = argv[i];

        if (android::base::EndsWithIgnoreCase(file, ".apk")) {
        if (android::base::EndsWithIgnoreCase(file, ".apk") ||
            android::base::EndsWithIgnoreCase(file, ".dm")) {
            struct stat sb;
            if (stat(file, &sb) != -1) total_size += sb.st_size;
            first_apk = i;
@@ -1986,9 +1987,8 @@ static int install_multiple_app(int argc, const char** argv) {
        }

        std::string cmd = android::base::StringPrintf(
                "%s install-write -S %" PRIu64 " %d %d_%s -",
                install_cmd.c_str(), static_cast<uint64_t>(sb.st_size), session_id, i,
                android::base::Basename(file).c_str());
            "%s install-write -S %" PRIu64 " %d %s -", install_cmd.c_str(),
            static_cast<uint64_t>(sb.st_size), session_id, android::base::Basename(file).c_str());

        int localFd = adb_open(file, O_RDONLY);
        if (localFd < 0) {