diff options
author | Muhammad Qureshi <muhammadq@google.com> | 2020-06-18 18:28:21 -0700 |
---|---|---|
committer | Muhammad Qureshi <muhammadq@google.com> | 2020-06-18 18:59:12 -0700 |
commit | 741d31898aee02855220cfd3a1492dd287e4d212 (patch) | |
tree | 19523b503a903197c722cfe986f629a101d47a88 /tools | |
parent | 19272a236b0b6de53a330af745f5b5500ecc95d0 (diff) |
Remove libstatsmetadata
Remove kWhitelistedAtoms usage in MetricsManager and remove:
- atoms_info references from statsd
- libstatsmetadata usages from statsd
- libstatsmetadata library
- atoms_info_writer.h/.cpp
- references to atoms_info in rest of stats-log-api-gen
- allow_from_any_uid annotation
Fixes: 147600720
Fixes: 154856835
Fixes: 148993016
Test: m stats-log-api-gen
Test: m stats-log-api-gen-test &&
out/host/linux-x86/nativetest/stats-log-api-gen-test/stats-log-api-gen-test
Test: m statsd
Change-Id: I2e0579609ff257da934b95cdda397f3ca0ffa1f0
Diffstat (limited to 'tools')
-rw-r--r-- | tools/stats_log_api_gen/Android.bp | 1 | ||||
-rw-r--r-- | tools/stats_log_api_gen/Collation.cpp | 11 | ||||
-rw-r--r-- | tools/stats_log_api_gen/Collation.h | 4 | ||||
-rw-r--r-- | tools/stats_log_api_gen/atoms_info_writer.cpp | 91 | ||||
-rw-r--r-- | tools/stats_log_api_gen/atoms_info_writer.h | 35 | ||||
-rw-r--r-- | tools/stats_log_api_gen/main.cpp | 61 | ||||
-rw-r--r-- | tools/stats_log_api_gen/test.proto | 18 | ||||
-rw-r--r-- | tools/stats_log_api_gen/test_collation.cpp | 19 | ||||
-rw-r--r-- | tools/stats_log_api_gen/utils.h | 1 |
9 files changed, 2 insertions, 239 deletions
diff --git a/tools/stats_log_api_gen/Android.bp b/tools/stats_log_api_gen/Android.bp index b1e2487c54fe..e3b6db08c503 100644 --- a/tools/stats_log_api_gen/Android.bp +++ b/tools/stats_log_api_gen/Android.bp @@ -21,7 +21,6 @@ cc_binary_host { name: "stats-log-api-gen", srcs: [ "Collation.cpp", - "atoms_info_writer.cpp", "java_writer.cpp", "java_writer_q.cpp", "main.cpp", diff --git a/tools/stats_log_api_gen/Collation.cpp b/tools/stats_log_api_gen/Collation.cpp index 958e94efcf9c..a230de46dcf3 100644 --- a/tools/stats_log_api_gen/Collation.cpp +++ b/tools/stats_log_api_gen/Collation.cpp @@ -52,9 +52,7 @@ AtomDecl::AtomDecl(const AtomDecl& that) defaultState(that.defaultState), triggerStateReset(that.triggerStateReset), nested(that.nested), - uidField(that.uidField), - whitelisted(that.whitelisted), - truncateTimestamp(that.truncateTimestamp) { + uidField(that.uidField) { } AtomDecl::AtomDecl(int c, const string& n, const string& m) : code(c), name(n), message(m) { @@ -520,13 +518,6 @@ int collate_atoms(const Descriptor* descriptor, const string& moduleName, Atoms* shared_ptr<AtomDecl> atomDecl = make_shared<AtomDecl>(atomField->number(), atomField->name(), atom->name()); - if (atomField->options().GetExtension(os::statsd::allow_from_any_uid) == true) { - atomDecl->whitelisted = true; - if (dbg) { - printf("%s is whitelisted\n", atomField->name().c_str()); - } - } - if (atomDecl->code < PULL_ATOM_START_ID && atomField->options().GetExtension(os::statsd::truncate_timestamp)) { addAnnotationToAtomDecl(atomDecl.get(), ATOM_ID_FIELD_NUMBER, diff --git a/tools/stats_log_api_gen/Collation.h b/tools/stats_log_api_gen/Collation.h index 043f8b1e74d8..10b34ecf5f54 100644 --- a/tools/stats_log_api_gen/Collation.h +++ b/tools/stats_log_api_gen/Collation.h @@ -164,10 +164,6 @@ struct AtomDecl { int uidField = 0; - bool whitelisted = false; - - bool truncateTimestamp = false; - AtomDecl(); AtomDecl(const AtomDecl& that); AtomDecl(int code, const string& name, const string& message); diff --git a/tools/stats_log_api_gen/atoms_info_writer.cpp b/tools/stats_log_api_gen/atoms_info_writer.cpp deleted file mode 100644 index 292cb21bac30..000000000000 --- a/tools/stats_log_api_gen/atoms_info_writer.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 2019, The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "atoms_info_writer.h" - -#include <map> -#include <set> -#include <vector> - -#include "utils.h" - -namespace android { -namespace stats_log_api_gen { - -static void write_atoms_info_header_body(FILE* out) { - fprintf(out, "struct AtomsInfo {\n"); - fprintf(out, " const static std::set<int> kWhitelistedAtoms;\n"); - fprintf(out, "};\n"); -} - -static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) { - - fprintf(out, "const std::set<int> AtomsInfo::kWhitelistedAtoms = {\n"); - for (AtomDeclSet::const_iterator atomIt = atoms.decls.begin(); atomIt != atoms.decls.end(); - atomIt++) { - if ((*atomIt)->whitelisted) { - const string constant = make_constant_name((*atomIt)->name); - fprintf(out, " %d, // %s\n", (*atomIt)->code, constant.c_str()); - } - } - - fprintf(out, "};\n"); - fprintf(out, "\n"); - -} - -int write_atoms_info_header(FILE* out, const string& namespaceStr) { - // Print prelude - fprintf(out, "// This file is autogenerated\n"); - fprintf(out, "\n"); - fprintf(out, "#pragma once\n"); - fprintf(out, "\n"); - fprintf(out, "#include <vector>\n"); - fprintf(out, "#include <map>\n"); - fprintf(out, "#include <set>\n"); - fprintf(out, "\n"); - - write_namespace(out, namespaceStr); - - write_atoms_info_header_body(out); - - fprintf(out, "\n"); - write_closing_namespace(out, namespaceStr); - - return 0; -} - -int write_atoms_info_cpp(FILE* out, const Atoms& atoms, const string& namespaceStr, - const string& importHeader) { - // Print prelude - fprintf(out, "// This file is autogenerated\n"); - fprintf(out, "\n"); - fprintf(out, "#include <%s>\n", importHeader.c_str()); - fprintf(out, "\n"); - - write_namespace(out, namespaceStr); - - write_atoms_info_cpp_body(out, atoms); - - // Print footer - fprintf(out, "\n"); - write_closing_namespace(out, namespaceStr); - - return 0; -} - -} // namespace stats_log_api_gen -} // namespace android diff --git a/tools/stats_log_api_gen/atoms_info_writer.h b/tools/stats_log_api_gen/atoms_info_writer.h deleted file mode 100644 index 09a4303eaee6..000000000000 --- a/tools/stats_log_api_gen/atoms_info_writer.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2019, The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include <stdio.h> -#include <string.h> - -#include "Collation.h" - -namespace android { -namespace stats_log_api_gen { - -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 string& namespaceStr); - -} // namespace stats_log_api_gen -} // namespace android diff --git a/tools/stats_log_api_gen/main.cpp b/tools/stats_log_api_gen/main.cpp index 136933b8cfb2..b888ce904b31 100644 --- a/tools/stats_log_api_gen/main.cpp +++ b/tools/stats_log_api_gen/main.cpp @@ -9,7 +9,6 @@ #include <vector> #include "Collation.h" -#include "atoms_info_writer.h" #include "frameworks/base/cmds/statsd/src/atoms.pb.h" #include "java_writer.h" #include "java_writer_q.h" @@ -30,12 +29,6 @@ static void print_usage() { fprintf(stderr, "OPTIONS\n"); fprintf(stderr, " --cpp FILENAME the header file to output for write helpers\n"); fprintf(stderr, " --header FILENAME the cpp file to output for write helpers\n"); - fprintf(stderr, - " --atomsInfoCpp FILENAME the header file to output for " - "statsd metadata\n"); - fprintf(stderr, - " --atomsInfoHeader FILENAME the cpp file to output for statsd " - "metadata\n"); fprintf(stderr, " --help this message\n"); fprintf(stderr, " --java FILENAME the java file to output\n"); fprintf(stderr, " --module NAME optional, module name to generate outputs for\n"); @@ -49,10 +42,6 @@ static void print_usage() { " --importHeader NAME required for cpp/jni to say which header to " "import " "for write helpers\n"); - fprintf(stderr, - " --atomsInfoImportHeader NAME required for cpp to say which " - "header to import " - "for statsd metadata\n"); fprintf(stderr, " --javaPackage PACKAGE the package for the java file.\n"); fprintf(stderr, " required for java with module\n"); fprintf(stderr, " --javaClass CLASS the class name of the java class.\n"); @@ -74,15 +63,12 @@ static int run(int argc, char const* const* argv) { string cppFilename; string headerFilename; string javaFilename; - string atomsInfoCppFilename; - string atomsInfoHeaderFilename; string javaPackage; string javaClass; string moduleName = DEFAULT_MODULE_NAME; string cppNamespace = DEFAULT_CPP_NAMESPACE; string cppHeaderImport = DEFAULT_CPP_HEADER_IMPORT; - string atomsInfoCppHeaderImport = DEFAULT_ATOMS_INFO_CPP_HEADER_IMPORT; bool supportQ = false; bool supportWorkSource = false; bool compileQ = false; @@ -148,27 +134,6 @@ static int run(int argc, char const* const* argv) { return 1; } javaClass = argv[index]; - } else if (0 == strcmp("--atomsInfoHeader", argv[index])) { - index++; - if (index >= argc) { - print_usage(); - return 1; - } - atomsInfoHeaderFilename = argv[index]; - } else if (0 == strcmp("--atomsInfoCpp", argv[index])) { - index++; - if (index >= argc) { - print_usage(); - return 1; - } - atomsInfoCppFilename = argv[index]; - } else if (0 == strcmp("--atomsInfoImportHeader", argv[index])) { - index++; - if (index >= argc) { - print_usage(); - return 1; - } - atomsInfoCppHeaderImport = argv[index]; } else if (0 == strcmp("--supportQ", argv[index])) { supportQ = true; } else if (0 == strcmp("--worksource", argv[index])) { @@ -180,8 +145,7 @@ static int run(int argc, char const* const* argv) { index++; } - if (cppFilename.size() == 0 && headerFilename.size() == 0 && javaFilename.size() == 0 && - atomsInfoHeaderFilename.size() == 0 && atomsInfoCppFilename.size() == 0) { + if (cppFilename.size() == 0 && headerFilename.size() == 0 && javaFilename.size() == 0) { print_usage(); return 1; } @@ -210,29 +174,6 @@ static int run(int argc, char const* const* argv) { collate_atom(android::os::statsd::AttributionNode::descriptor(), &attributionDecl, &attributionSignature); - // Write the atoms info .cpp file - if (atomsInfoCppFilename.size() != 0) { - FILE* out = fopen(atomsInfoCppFilename.c_str(), "w"); - if (out == NULL) { - fprintf(stderr, "Unable to open file for write: %s\n", atomsInfoCppFilename.c_str()); - return 1; - } - errorCount = android::stats_log_api_gen::write_atoms_info_cpp(out, atoms, cppNamespace, - atomsInfoCppHeaderImport); - fclose(out); - } - - // Write the atoms info .h file - if (atomsInfoHeaderFilename.size() != 0) { - FILE* out = fopen(atomsInfoHeaderFilename.c_str(), "w"); - if (out == NULL) { - 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, cppNamespace); - fclose(out); - } - // Write the .cpp file if (cppFilename.size() != 0) { FILE* out = fopen(cppFilename.c_str(), "w"); diff --git a/tools/stats_log_api_gen/test.proto b/tools/stats_log_api_gen/test.proto index d22acc6e6598..aaa488e44fee 100644 --- a/tools/stats_log_api_gen/test.proto +++ b/tools/stats_log_api_gen/test.proto @@ -187,24 +187,6 @@ message GoodStateAtom3 { optional int32 state = 3 [(android.os.statsd.state_field_option).exclusive_state = true]; } -message WhitelistedAtom { - optional int32 field = 1; -} - -message NonWhitelistedAtom { - optional int32 field = 1; -} - -message ListedAtoms { - oneof event { - // Atoms can be whitelisted i.e. they can be triggered by any source - WhitelistedAtom whitelisted_atom = 1 [(android.os.statsd.allow_from_any_uid) = true]; - // Atoms are not whitelisted by default, so they can only be triggered - // by whitelisted sources - NonWhitelistedAtom non_whitelisted_atom = 2; - } -} - message ModuleOneAtom { optional int32 field = 1 [(android.os.statsd.is_uid) = true]; } diff --git a/tools/stats_log_api_gen/test_collation.cpp b/tools/stats_log_api_gen/test_collation.cpp index 150475223bfa..dbae58889333 100644 --- a/tools/stats_log_api_gen/test_collation.cpp +++ b/tools/stats_log_api_gen/test_collation.cpp @@ -225,25 +225,6 @@ TEST(CollationTest, FailOnBadBinaryFieldAtom) { EXPECT_TRUE(errorCount > 0); } -TEST(CollationTest, PassOnWhitelistedAtom) { - Atoms atoms; - int errorCount = collate_atoms(ListedAtoms::descriptor(), DEFAULT_MODULE_NAME, &atoms); - EXPECT_EQ(errorCount, 0); - EXPECT_EQ(atoms.decls.size(), 2ul); -} - -TEST(CollationTest, RecogniseWhitelistedAtom) { - Atoms atoms; - collate_atoms(ListedAtoms::descriptor(), DEFAULT_MODULE_NAME, &atoms); - for (const auto& atomDecl : atoms.decls) { - if (atomDecl->code == 1) { - EXPECT_TRUE(atomDecl->whitelisted); - } else { - EXPECT_FALSE(atomDecl->whitelisted); - } - } -} - TEST(CollationTest, PassOnLogFromModuleAtom) { Atoms atoms; int errorCount = collate_atoms(ModuleAtoms::descriptor(), DEFAULT_MODULE_NAME, &atoms); diff --git a/tools/stats_log_api_gen/utils.h b/tools/stats_log_api_gen/utils.h index 7d6d08ebbcbe..73e0cb838227 100644 --- a/tools/stats_log_api_gen/utils.h +++ b/tools/stats_log_api_gen/utils.h @@ -32,7 +32,6 @@ using namespace std; const string DEFAULT_CPP_NAMESPACE = "android,util"; const string DEFAULT_CPP_HEADER_IMPORT = "statslog.h"; -const string DEFAULT_ATOMS_INFO_CPP_HEADER_IMPORT = "atoms_info.h"; const int JAVA_MODULE_REQUIRES_FLOAT = 0x01; const int JAVA_MODULE_REQUIRES_ATTRIBUTION = 0x02; |