summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/aapt/SdkConstants.h1
-rw-r--r--tools/aapt2/SdkConstants.cpp2
-rw-r--r--tools/aapt2/SdkConstants.h1
-rw-r--r--tools/aapt2/cmd/Link.h4
-rw-r--r--tools/aapt2/dump/DumpManifest.cpp5
-rw-r--r--tools/aapt2/link/ManifestFixer.cpp22
-rw-r--r--tools/aapt2/link/ManifestFixer.h4
-rw-r--r--tools/aapt2/link/ManifestFixer_test.cpp26
-rw-r--r--tools/protologtool/Android.bp2
-rw-r--r--tools/stats_log_api_gen/Collation.cpp7
-rw-r--r--tools/stats_log_api_gen/Collation.h1
-rw-r--r--tools/stats_log_api_gen/atoms_info_writer.cpp104
-rw-r--r--tools/stats_log_api_gen/atoms_info_writer.h2
-rw-r--r--tools/stats_log_api_gen/java_writer.cpp8
-rw-r--r--tools/stats_log_api_gen/main.cpp2
15 files changed, 70 insertions, 121 deletions
diff --git a/tools/aapt/SdkConstants.h b/tools/aapt/SdkConstants.h
index 27ffcdf52168..04fbbe1f1069 100644
--- a/tools/aapt/SdkConstants.h
+++ b/tools/aapt/SdkConstants.h
@@ -45,6 +45,7 @@ enum {
SDK_O_MR1 = 27,
SDK_P = 28,
SDK_Q = 29,
+ SDK_R = 30,
};
#endif // H_AAPT_SDK_CONSTANTS
diff --git a/tools/aapt2/SdkConstants.cpp b/tools/aapt2/SdkConstants.cpp
index b4b6ff1daaaa..f9faed84f5f0 100644
--- a/tools/aapt2/SdkConstants.cpp
+++ b/tools/aapt2/SdkConstants.cpp
@@ -57,6 +57,8 @@ static const std::vector<std::pair<uint16_t, ApiVersion>> sAttrIdMap = {
{0x0568, SDK_O},
{0x056d, SDK_O_MR1},
{0x0586, SDK_P},
+ {0x0606, SDK_Q},
+ {0x0617, SDK_R},
};
static bool less_entry_id(const std::pair<uint16_t, ApiVersion>& p, uint16_t entryId) {
diff --git a/tools/aapt2/SdkConstants.h b/tools/aapt2/SdkConstants.h
index a00d978565ad..aa9aa12d2cee 100644
--- a/tools/aapt2/SdkConstants.h
+++ b/tools/aapt2/SdkConstants.h
@@ -55,6 +55,7 @@ enum : ApiVersion {
SDK_O_MR1 = 27,
SDK_P = 28,
SDK_Q = 29,
+ SDK_R = 30,
};
ApiVersion FindAttributeSdkLevel(const ResourceId& id);
diff --git a/tools/aapt2/cmd/Link.h b/tools/aapt2/cmd/Link.h
index e7be43459e16..852b1244cd6e 100644
--- a/tools/aapt2/cmd/Link.h
+++ b/tools/aapt2/cmd/Link.h
@@ -263,6 +263,10 @@ class LinkCommand : public Command {
"Changes the name of the target package for instrumentation. Most useful\n"
"when used in conjunction with --rename-manifest-package.",
&options_.manifest_fixer_options.rename_instrumentation_target_package);
+ AddOptionalFlag("--rename-overlay-target-package",
+ "Changes the name of the target package for overlay. Most useful\n"
+ "when used in conjunction with --rename-manifest-package.",
+ &options_.manifest_fixer_options.rename_overlay_target_package);
AddOptionalFlagList("-0", "File suffix not to compress.",
&options_.extensions_to_not_compress);
AddOptionalSwitch("--no-compress", "Do not compress any resources.",
diff --git a/tools/aapt2/dump/DumpManifest.cpp b/tools/aapt2/dump/DumpManifest.cpp
index e7a82034c77a..4a6bfd031284 100644
--- a/tools/aapt2/dump/DumpManifest.cpp
+++ b/tools/aapt2/dump/DumpManifest.cpp
@@ -91,6 +91,7 @@ enum {
};
const std::string& kAndroidNamespace = "http://schemas.android.com/apk/res/android";
+constexpr int kCurrentDevelopmentVersion = 10000;
/** Retrieves the attribute of the element with the specified attribute resource id. */
static xml::Attribute* FindAttribute(xml::Element *el, uint32_t resd_id) {
@@ -325,7 +326,7 @@ class ManifestExtractor {
ConfigDescription config;
config.orientation = android::ResTable_config::ORIENTATION_PORT;
config.density = android::ResTable_config::DENSITY_MEDIUM;
- config.sdkVersion = 10000; // Very high.
+ config.sdkVersion = kCurrentDevelopmentVersion; // Very high.
config.screenWidthDp = 320;
config.screenHeightDp = 480;
config.smallestScreenWidthDp = 320;
@@ -622,6 +623,8 @@ class UsesSdkBadging : public ManifestExtractor::Element {
}
if (target_sdk) {
extractor()->RaiseTargetSdk(*target_sdk);
+ } else if (target_sdk_name) {
+ extractor()->RaiseTargetSdk(kCurrentDevelopmentVersion);
}
}
diff --git a/tools/aapt2/link/ManifestFixer.cpp b/tools/aapt2/link/ManifestFixer.cpp
index bcfce663db00..c813a446b8db 100644
--- a/tools/aapt2/link/ManifestFixer.cpp
+++ b/tools/aapt2/link/ManifestFixer.cpp
@@ -263,6 +263,16 @@ bool ManifestFixer::BuildRules(xml::XmlActionExecutor* executor,
}
}
+ if (options_.rename_overlay_target_package) {
+ if (!util::IsJavaPackageName(options_.rename_overlay_target_package.value())) {
+ diag->Error(DiagMessage()
+ << "invalid overlay target package override '"
+ << options_.rename_overlay_target_package.value()
+ << "'");
+ return false;
+ }
+ }
+
// Common <intent-filter> actions.
xml::XmlNodeAction intent_filter_action;
intent_filter_action["action"].Action(RequiredNameIsNotEmpty);
@@ -373,7 +383,17 @@ bool ManifestFixer::BuildRules(xml::XmlActionExecutor* executor,
manifest_action["attribution"];
manifest_action["attribution"]["inherit-from"];
manifest_action["original-package"];
- manifest_action["overlay"];
+ manifest_action["overlay"].Action([&](xml::Element* el) -> bool {
+ if (!options_.rename_overlay_target_package) {
+ return true;
+ }
+
+ if (xml::Attribute* attr =
+ el->FindAttribute(xml::kSchemaAndroid, "targetPackage")) {
+ attr->value = options_.rename_overlay_target_package.value();
+ }
+ return true;
+ });
manifest_action["protected-broadcast"];
manifest_action["adopt-permissions"];
manifest_action["uses-permission"];
diff --git a/tools/aapt2/link/ManifestFixer.h b/tools/aapt2/link/ManifestFixer.h
index 3ef57d0d0e42..ec4367b450fb 100644
--- a/tools/aapt2/link/ManifestFixer.h
+++ b/tools/aapt2/link/ManifestFixer.h
@@ -44,6 +44,10 @@ struct ManifestFixerOptions {
// <instrumentation>.
Maybe<std::string> rename_instrumentation_target_package;
+ // The Android package to use instead of the one defined in 'android:targetPackage' in
+ // <overlay>.
+ Maybe<std::string> rename_overlay_target_package;
+
// The version name to set if 'android:versionName' is not defined in <manifest> or if
// replace_version is set.
Maybe<std::string> version_name_default;
diff --git a/tools/aapt2/link/ManifestFixer_test.cpp b/tools/aapt2/link/ManifestFixer_test.cpp
index 3af06f53d4f3..0791805e2506 100644
--- a/tools/aapt2/link/ManifestFixer_test.cpp
+++ b/tools/aapt2/link/ManifestFixer_test.cpp
@@ -325,6 +325,32 @@ TEST_F(ManifestFixerTest,
EXPECT_THAT(attr->value, StrEq("com.android"));
}
+TEST_F(ManifestFixerTest,
+ RenameManifestOverlayPackageAndFullyQualifyTarget) {
+ ManifestFixerOptions options;
+ options.rename_overlay_target_package = std::string("com.android");
+
+ std::unique_ptr<xml::XmlResource> doc = VerifyWithOptions(R"EOF(
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="android">
+ <overlay android:targetName="Customization" android:targetPackage="android" />
+ </manifest>)EOF",
+ options);
+ ASSERT_THAT(doc, NotNull());
+
+ xml::Element* manifest_el = doc->root.get();
+ ASSERT_THAT(manifest_el, NotNull());
+
+ xml::Element* overlay_el =
+ manifest_el->FindChild({}, "overlay");
+ ASSERT_THAT(overlay_el, NotNull());
+
+ xml::Attribute* attr =
+ overlay_el->FindAttribute(xml::kSchemaAndroid, "targetPackage");
+ ASSERT_THAT(attr, NotNull());
+ EXPECT_THAT(attr->value, StrEq("com.android"));
+}
+
TEST_F(ManifestFixerTest, UseDefaultVersionNameAndCode) {
ManifestFixerOptions options;
options.version_name_default = std::string("Beta");
diff --git a/tools/protologtool/Android.bp b/tools/protologtool/Android.bp
index d1a86c245dec..ce551bd0cc10 100644
--- a/tools/protologtool/Android.bp
+++ b/tools/protologtool/Android.bp
@@ -6,7 +6,7 @@ java_library_host {
static_libs: [
"protolog-common",
"javaparser",
- "protolog-proto",
+ "platformprotos",
"jsonlib",
],
}
diff --git a/tools/stats_log_api_gen/Collation.cpp b/tools/stats_log_api_gen/Collation.cpp
index 526876f5ec26..958e94efcf9c 100644
--- a/tools/stats_log_api_gen/Collation.cpp
+++ b/tools/stats_log_api_gen/Collation.cpp
@@ -478,7 +478,6 @@ static void populateFieldNumberToAtomDeclSet(const shared_ptr<AtomDecl>& atomDec
int collate_atoms(const Descriptor* descriptor, const string& moduleName, Atoms* atoms) {
int errorCount = 0;
- int maxPushedAtomId = 2;
for (int i = 0; i < descriptor->field_count(); i++) {
const FieldDescriptor* atomField = descriptor->field(i);
@@ -563,14 +562,8 @@ int collate_atoms(const Descriptor* descriptor, const string& moduleName, Atoms*
atoms->non_chained_decls.insert(nonChainedAtomDecl);
}
-
- if (atomDecl->code < PULL_ATOM_START_ID && atomDecl->code > maxPushedAtomId) {
- maxPushedAtomId = atomDecl->code;
- }
}
- atoms->maxPushedAtomId = maxPushedAtomId;
-
if (dbg) {
printf("signatures = [\n");
for (SignatureInfoMap::const_iterator it = atoms->signatureInfoMap.begin();
diff --git a/tools/stats_log_api_gen/Collation.h b/tools/stats_log_api_gen/Collation.h
index b513463ec98f..043f8b1e74d8 100644
--- a/tools/stats_log_api_gen/Collation.h
+++ b/tools/stats_log_api_gen/Collation.h
@@ -191,7 +191,6 @@ struct Atoms {
AtomDeclSet decls;
AtomDeclSet non_chained_decls;
SignatureInfoMap nonChainedSignatureInfoMap;
- int maxPushedAtomId;
};
/**
diff --git a/tools/stats_log_api_gen/atoms_info_writer.cpp b/tools/stats_log_api_gen/atoms_info_writer.cpp
index 5fe94987aa65..292cb21bac30 100644
--- a/tools/stats_log_api_gen/atoms_info_writer.cpp
+++ b/tools/stats_log_api_gen/atoms_info_writer.cpp
@@ -25,68 +25,13 @@
namespace android {
namespace stats_log_api_gen {
-static void write_atoms_info_header_body(FILE* out, const Atoms& atoms) {
- fprintf(out, "static int UNSET_VALUE = INT_MAX;\n");
- fprintf(out, "static int FIRST_UID_IN_CHAIN = 0;\n");
-
- fprintf(out, "struct StateAtomFieldOptions {\n");
- fprintf(out, " std::vector<int> primaryFields;\n");
- fprintf(out, " int exclusiveField;\n");
- fprintf(out, " int defaultState = UNSET_VALUE;\n");
- fprintf(out, " int resetState = UNSET_VALUE;\n");
- fprintf(out, " bool nested;\n");
- fprintf(out, "};\n");
- fprintf(out, "\n");
-
+static void write_atoms_info_header_body(FILE* out) {
fprintf(out, "struct AtomsInfo {\n");
- fprintf(out,
- " const static std::set<int> "
- "kTruncatingTimestampAtomBlackList;\n");
- fprintf(out, " const static std::set<int> kAtomsWithAttributionChain;\n");
- fprintf(out,
- " const static std::map<int, StateAtomFieldOptions> "
- "kStateAtomsFieldOptions;\n");
fprintf(out, " const static std::set<int> kWhitelistedAtoms;\n");
fprintf(out, "};\n");
- fprintf(out, "const static int kMaxPushedAtomId = %d;\n\n", atoms.maxPushedAtomId);
}
static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) {
- std::set<string> kTruncatingAtomNames = {"mobile_radio_power_state_changed",
- "audio_state_changed",
- "call_state_changed",
- "phone_signal_strength_changed",
- "mobile_bytes_transfer_by_fg_bg",
- "mobile_bytes_transfer"};
- fprintf(out,
- "const std::set<int> "
- "AtomsInfo::kTruncatingTimestampAtomBlackList = {\n");
- for (AtomDeclSet::const_iterator atomIt = atoms.decls.begin(); atomIt != atoms.decls.end();
- atomIt++) {
- if (kTruncatingAtomNames.find((*atomIt)->name) != kTruncatingAtomNames.end()) {
- const string constant = make_constant_name((*atomIt)->name);
- fprintf(out, " %d, // %s\n", (*atomIt)->code, constant.c_str());
- }
- }
-
- fprintf(out, "};\n");
- fprintf(out, "\n");
-
- fprintf(out, "const std::set<int> AtomsInfo::kAtomsWithAttributionChain = {\n");
- for (AtomDeclSet::const_iterator atomIt = atoms.decls.begin(); atomIt != atoms.decls.end();
- atomIt++) {
- for (vector<AtomField>::const_iterator field = (*atomIt)->fields.begin();
- field != (*atomIt)->fields.end(); field++) {
- if (field->javaType == JAVA_TYPE_ATTRIBUTION_CHAIN) {
- const string constant = make_constant_name((*atomIt)->name);
- fprintf(out, " %d, // %s\n", (*atomIt)->code, constant.c_str());
- break;
- }
- }
- }
-
- fprintf(out, "};\n");
- fprintf(out, "\n");
fprintf(out, "const std::set<int> AtomsInfo::kWhitelistedAtoms = {\n");
for (AtomDeclSet::const_iterator atomIt = atoms.decls.begin(); atomIt != atoms.decls.end();
@@ -100,52 +45,9 @@ static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) {
fprintf(out, "};\n");
fprintf(out, "\n");
- fprintf(out,
- "static std::map<int, StateAtomFieldOptions> "
- "getStateAtomFieldOptions() {\n");
- fprintf(out, " std::map<int, StateAtomFieldOptions> options;\n");
- fprintf(out, " StateAtomFieldOptions* opt;\n");
- for (AtomDeclSet::const_iterator atomIt = atoms.decls.begin(); atomIt != atoms.decls.end();
- atomIt++) {
- if ((*atomIt)->primaryFields.size() == 0 && (*atomIt)->exclusiveField == 0) {
- continue;
- }
- fprintf(out,
- "\n // Adding primary and exclusive fields for atom "
- "(%d)%s\n",
- (*atomIt)->code, (*atomIt)->name.c_str());
- fprintf(out, " opt = &(options[%d /* %s */]);\n", (*atomIt)->code,
- make_constant_name((*atomIt)->name).c_str());
- fprintf(out, " opt->primaryFields.reserve(%lu);\n", (*atomIt)->primaryFields.size());
- for (const auto& field : (*atomIt)->primaryFields) {
- fprintf(out, " opt->primaryFields.push_back(%d);\n", field);
- }
-
- fprintf(out, " opt->exclusiveField = %d;\n", (*atomIt)->exclusiveField);
- if ((*atomIt)->defaultState != INT_MAX) {
- fprintf(out, " opt->defaultState = %d;\n", (*atomIt)->defaultState);
- } else {
- fprintf(out, " opt->defaultState = UNSET_VALUE;\n");
- }
-
- if ((*atomIt)->triggerStateReset != INT_MAX) {
- fprintf(out, " opt->resetState = %d;\n", (*atomIt)->triggerStateReset);
- } else {
- fprintf(out, " opt->resetState = UNSET_VALUE;\n");
- }
- fprintf(out, " opt->nested = %d;\n", (*atomIt)->nested);
- }
-
- fprintf(out, " return options;\n");
- fprintf(out, "}\n");
-
- fprintf(out,
- "const std::map<int, StateAtomFieldOptions> "
- "AtomsInfo::kStateAtomsFieldOptions = "
- "getStateAtomFieldOptions();\n");
}
-int write_atoms_info_header(FILE* out, const Atoms& atoms, const string& namespaceStr) {
+int write_atoms_info_header(FILE* out, const string& namespaceStr) {
// Print prelude
fprintf(out, "// This file is autogenerated\n");
fprintf(out, "\n");
@@ -158,7 +60,7 @@ int write_atoms_info_header(FILE* out, const Atoms& atoms, const string& namespa
write_namespace(out, namespaceStr);
- write_atoms_info_header_body(out, atoms);
+ write_atoms_info_header_body(out);
fprintf(out, "\n");
write_closing_namespace(out, namespaceStr);
diff --git a/tools/stats_log_api_gen/atoms_info_writer.h b/tools/stats_log_api_gen/atoms_info_writer.h
index ffe9e439d7ff..09a4303eaee6 100644
--- a/tools/stats_log_api_gen/atoms_info_writer.h
+++ b/tools/stats_log_api_gen/atoms_info_writer.h
@@ -29,7 +29,7 @@ using namespace std;
int write_atoms_info_cpp(FILE* out, const Atoms& atoms, const string& namespaceStr,
const string& importHeader);
-int write_atoms_info_header(FILE* out, const Atoms& atoms, const string& namespaceStr);
+int write_atoms_info_header(FILE* out, const string& namespaceStr);
} // namespace stats_log_api_gen
} // namespace android
diff --git a/tools/stats_log_api_gen/java_writer.cpp b/tools/stats_log_api_gen/java_writer.cpp
index 556cf5e12d01..f4c937c3f599 100644
--- a/tools/stats_log_api_gen/java_writer.cpp
+++ b/tools/stats_log_api_gen/java_writer.cpp
@@ -124,13 +124,7 @@ static int write_java_methods(FILE* out, const SignatureInfoMap& signatureInfoMa
// Print method body.
string indent("");
if (supportQ) {
- // TODO(b/146235828): Use just SDK_INT check once it is incremented from
- // Q.
- fprintf(out, " if (Build.VERSION.SDK_INT > Build.VERSION_CODES.Q\n");
- fprintf(out,
- " || (Build.VERSION.SDK_INT == "
- "Build.VERSION_CODES.Q\n");
- fprintf(out, " && Build.VERSION.PREVIEW_SDK_INT > 0)) {\n");
+ fprintf(out, " if (Build.VERSION.SDK_INT > Build.VERSION_CODES.Q) {\n");
indent = " ";
}
diff --git a/tools/stats_log_api_gen/main.cpp b/tools/stats_log_api_gen/main.cpp
index fda57369d7bf..136933b8cfb2 100644
--- a/tools/stats_log_api_gen/main.cpp
+++ b/tools/stats_log_api_gen/main.cpp
@@ -229,7 +229,7 @@ static int run(int argc, char const* const* argv) {
fprintf(stderr, "Unable to open file for write: %s\n", atomsInfoHeaderFilename.c_str());
return 1;
}
- errorCount = android::stats_log_api_gen::write_atoms_info_header(out, atoms, cppNamespace);
+ errorCount = android::stats_log_api_gen::write_atoms_info_header(out, cppNamespace);
fclose(out);
}