diff options
author | Joe Onorato <joeo@google.com> | 2018-12-14 15:46:27 -0800 |
---|---|---|
committer | Joe Onorato <joeo@google.com> | 2019-01-26 09:48:40 -0800 |
commit | 70edfa8c31309032b27277f1b897a374dbbd6f23 (patch) | |
tree | 29b14fa9dec09570b70b19a044bbc0549b8e6795 | |
parent | ce0bd06d174460b69594518e5cf35a85e13b73f8 (diff) |
[bit] Use aapt2 instead of aapt, and don't also adb install apps on the system partition
Test: bit services
Change-Id: I7d44ffbb2745b1a6265bbc77f24f885e5f1d3981
-rw-r--r-- | tools/bit/aapt.cpp | 7 | ||||
-rw-r--r-- | tools/bit/main.cpp | 18 | ||||
-rw-r--r-- | tools/bit/print.cpp | 14 | ||||
-rw-r--r-- | tools/bit/print.h | 1 |
4 files changed, 36 insertions, 4 deletions
diff --git a/tools/bit/aapt.cpp b/tools/bit/aapt.cpp index 961b47cdfecd..cee0cd52a546 100644 --- a/tools/bit/aapt.cpp +++ b/tools/bit/aapt.cpp @@ -159,10 +159,11 @@ int inspect_apk(Apk* apk, const string& filename) { // Load the manifest xml - Command cmd("aapt"); + Command cmd("aapt2"); cmd.AddArg("dump"); cmd.AddArg("xmltree"); cmd.AddArg(filename); + cmd.AddArg("--file"); cmd.AddArg("AndroidManifest.xml"); int err; @@ -217,11 +218,11 @@ inspect_apk(Apk* apk, const string& filename) if (current != NULL) { Attribute attr; string str = match[2]; - size_t colon = str.find(':'); + size_t colon = str.rfind(':'); if (colon == string::npos) { attr.name = str; } else { - attr.ns = scope->namespaces[string(str, 0, colon)]; + attr.ns.assign(str, 0, colon); attr.name.assign(str, colon+1, string::npos); } attr.value = match[3]; diff --git a/tools/bit/main.cpp b/tools/bit/main.cpp index 678af7f1c72b..860094aef1f4 100644 --- a/tools/bit/main.cpp +++ b/tools/bit/main.cpp @@ -662,6 +662,7 @@ run_phases(vector<Target*> targets, const Options& options) string dataPath = buildOut + "/target/product/" + buildDevice + "/data/"; bool syncSystem = false; bool alwaysSyncSystem = false; + vector<string> systemFiles; vector<InstallApk> installApks; for (size_t i=0; i<targets.size(); i++) { Target* target = targets[i]; @@ -671,6 +672,7 @@ run_phases(vector<Target*> targets, const Options& options) // System partition if (starts_with(file, systemPath)) { syncSystem = true; + systemFiles.push_back(file); if (!target->build) { // If a system partition target didn't get built then // it won't change we will always need to do adb sync @@ -693,6 +695,19 @@ run_phases(vector<Target*> targets, const Options& options) get_directory_contents(systemPath, &systemFilesBefore); } + if (systemFiles.size() > 0){ + print_info("System files:"); + for (size_t i=0; i<systemFiles.size(); i++) { + printf(" %s\n", systemFiles[i].c_str()); + } + } + if (installApks.size() > 0){ + print_info("APKs to install:"); + for (size_t i=0; i<installApks.size(); i++) { + printf(" %s\n", installApks[i].file.filename.c_str()); + } + } + // // Build // @@ -799,7 +814,8 @@ run_phases(vector<Target*> targets, const Options& options) for (size_t j=0; j<target->module.installed.size(); j++) { string filename = target->module.installed[j]; - if (!ends_with(filename, ".apk")) { + // Apk in the data partition + if (!starts_with(filename, dataPath) || !ends_with(filename, ".apk")) { continue; } diff --git a/tools/bit/print.cpp b/tools/bit/print.cpp index 790e0b4b227e..35feda11ec29 100644 --- a/tools/bit/print.cpp +++ b/tools/bit/print.cpp @@ -116,6 +116,20 @@ print_warning(const char* format, ...) } void +print_info(const char* format, ...) +{ + fputs(g_escapeBold, stdout); + + va_list args; + va_start(args, format); + vfprintf(stdout, format, args); + va_end(args); + + fputs(g_escapeEndColor, stdout); + fputc('\n', stdout); +} + +void print_one_line(const char* format, ...) { if (g_stdoutIsTty) { diff --git a/tools/bit/print.h b/tools/bit/print.h index b6c3e9aa27fa..db6cf5f65cf8 100644 --- a/tools/bit/print.h +++ b/tools/bit/print.h @@ -33,6 +33,7 @@ void print_status(const char* format, ...); void print_command(const Command& command); void print_error(const char* format, ...); void print_warning(const char* format, ...); +void print_info(const char* format, ...); void print_one_line(const char* format, ...); void check_error(int err); |