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 aa7753871e)
This commit is contained in:
Calin Juravle 2017-12-14 15:48:15 -08:00 committed by Josh Gao
parent ddcee93c01
commit f03eebdd59
1 changed files with 4 additions and 4 deletions

View File

@ -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) {