623fe199f7
While dumpProtoLocked is called, InvalidProtocolBufferException occurred because types are mismatched between platform side and module side. netstats.proto was moved into connectivity module, both the platform(incident.proto) and the module uses protoc-gen-javastream to generate the Java classes from it. It should be fine since platform includes the source of the proto, and jarjar the generated classess in the module to avoid conflict with platform. Bug: 218566849 Test: adb shell incident 3001 adb shell dumpsys netstats --proto atest CtsIncidentHostTestCases:IncidentdTest#testIncidentReportDumpAuto Change-Id: I4654350a59dc1ca1a925785ad37f34aa7b481235 Merged-In: I4654350a59dc1ca1a925785ad37f34aa7b481235
260 lines
6.9 KiB
Plaintext
260 lines
6.9 KiB
Plaintext
// Copyright (C) 2021 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.
|
|
|
|
gensrcs {
|
|
name: "framework-javastream-protos",
|
|
depfile: true,
|
|
|
|
tools: [
|
|
"aprotoc",
|
|
"protoc-gen-javastream",
|
|
"soong_zip",
|
|
],
|
|
|
|
cmd: "mkdir -p $(genDir)/$(in) " +
|
|
"&& $(location aprotoc) " +
|
|
" --plugin=$(location protoc-gen-javastream) " +
|
|
" --dependency_out=$(depfile) " +
|
|
" --javastream_out=$(genDir)/$(in) " +
|
|
" -Iexternal/protobuf/src " +
|
|
" -I . " +
|
|
" $(in) " +
|
|
"&& $(location soong_zip) -jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)",
|
|
|
|
srcs: [
|
|
":framework-connectivity-protos",
|
|
":ipconnectivity-proto-src",
|
|
":libstats_atom_enum_protos",
|
|
":libstats_atom_message_protos",
|
|
":libtombstone_proto-src",
|
|
"core/proto/**/*.proto",
|
|
"libs/incident/**/*.proto",
|
|
":service-permission-protos",
|
|
],
|
|
output_extension: "srcjar",
|
|
}
|
|
|
|
gensrcs {
|
|
name: "framework-cppstream-protos",
|
|
depfile: true,
|
|
|
|
tools: [
|
|
"aprotoc",
|
|
"protoc-gen-cppstream",
|
|
],
|
|
|
|
cmd: "mkdir -p $(genDir) " +
|
|
"&& $(location aprotoc) " +
|
|
" --plugin=$(location protoc-gen-cppstream) " +
|
|
" --dependency_out=$(depfile) " +
|
|
" --cppstream_out=$(genDir) " +
|
|
" -Iexternal/protobuf/src " +
|
|
" -I . " +
|
|
" $(in)",
|
|
|
|
srcs: [
|
|
":framework-connectivity-protos",
|
|
":ipconnectivity-proto-src",
|
|
":libstats_atom_enum_protos",
|
|
":libstats_atom_message_protos",
|
|
"core/proto/**/*.proto",
|
|
"libs/incident/**/*.proto",
|
|
":service-permission-protos",
|
|
],
|
|
|
|
output_extension: "proto.h",
|
|
}
|
|
|
|
// ==== java proto host library ==============================
|
|
java_library_host {
|
|
name: "platformprotos",
|
|
srcs: [
|
|
":framework-connectivity-protos",
|
|
":ipconnectivity-proto-src",
|
|
":libstats_atom_enum_protos",
|
|
":libstats_atom_message_protos",
|
|
":libstats_internal_protos",
|
|
":statsd_internal_protos",
|
|
"cmds/am/proto/instrumentation_data.proto",
|
|
"cmds/statsd/src/**/*.proto",
|
|
"core/proto/**/*.proto",
|
|
"libs/incident/proto/**/*.proto",
|
|
":service-permission-protos",
|
|
],
|
|
proto: {
|
|
include_dirs: [
|
|
"external/protobuf/src",
|
|
"frameworks/proto_logging/stats",
|
|
],
|
|
type: "full",
|
|
},
|
|
// Protos have lots of MissingOverride and similar.
|
|
errorprone: {
|
|
javacflags: ["-XepDisableAllChecks"],
|
|
},
|
|
}
|
|
|
|
// ==== java proto device library (for test only) ==============================
|
|
java_library {
|
|
name: "platformprotosnano",
|
|
proto: {
|
|
type: "nano",
|
|
output_params: ["store_unknown_fields=true"],
|
|
include_dirs: ["external/protobuf/src"],
|
|
},
|
|
exclude_srcs: [
|
|
"core/proto/android/privacy.proto",
|
|
"core/proto/android/section.proto",
|
|
"core/proto/android/typedef.proto",
|
|
],
|
|
sdk_version: "9",
|
|
srcs: [
|
|
":framework-connectivity-protos",
|
|
":ipconnectivity-proto-src",
|
|
":libstats_atom_enum_protos",
|
|
":libstats_atom_message_protos",
|
|
"core/proto/**/*.proto",
|
|
"libs/incident/proto/android/os/**/*.proto",
|
|
":service-permission-protos",
|
|
],
|
|
}
|
|
|
|
// ==== java proto device library (for test only) ==============================
|
|
java_library {
|
|
name: "platformprotoslite",
|
|
proto: {
|
|
type: "lite",
|
|
include_dirs: ["external/protobuf/src"],
|
|
},
|
|
|
|
srcs: [
|
|
":framework-connectivity-protos",
|
|
":ipconnectivity-proto-src",
|
|
":libstats_atom_enum_protos",
|
|
":libstats_atom_message_protos",
|
|
"core/proto/**/*.proto",
|
|
"libs/incident/proto/android/os/**/*.proto",
|
|
":service-permission-protos",
|
|
],
|
|
exclude_srcs: [
|
|
"core/proto/android/privacy.proto",
|
|
"core/proto/android/section.proto",
|
|
"core/proto/android/typedef.proto",
|
|
],
|
|
sdk_version: "core_current",
|
|
// Protos have lots of MissingOverride and similar.
|
|
errorprone: {
|
|
javacflags: ["-XepDisableAllChecks"],
|
|
},
|
|
}
|
|
|
|
// ==== c++ proto device library ==============================
|
|
cc_defaults {
|
|
name: "libplatformprotos-defaults",
|
|
|
|
proto: {
|
|
export_proto_headers: true,
|
|
include_dirs: [
|
|
"external/protobuf/src",
|
|
],
|
|
},
|
|
|
|
cflags: [
|
|
"-Wall",
|
|
"-Werror",
|
|
"-Wno-unused-parameter",
|
|
],
|
|
|
|
srcs: [
|
|
":framework-connectivity-protos",
|
|
":ipconnectivity-proto-src",
|
|
":libstats_atom_enum_protos",
|
|
":libstats_atom_message_protos",
|
|
"core/proto/**/*.proto",
|
|
":service-permission-protos",
|
|
],
|
|
}
|
|
|
|
cc_library {
|
|
name: "libplatformprotos",
|
|
defaults: ["libplatformprotos-defaults"],
|
|
host_supported: true,
|
|
|
|
target: {
|
|
host: {
|
|
proto: {
|
|
type: "full",
|
|
},
|
|
},
|
|
android: {
|
|
proto: {
|
|
type: "lite",
|
|
},
|
|
shared_libs: [
|
|
"libprotobuf-cpp-lite",
|
|
],
|
|
shared: {
|
|
enabled: false,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
// This library is meant for vendor code that needs to output protobuf. It links
|
|
// against the static version of libprotobuf-cpp-lite, for which we can not guarantee
|
|
// binary compatibility.
|
|
cc_library {
|
|
name: "libplatformprotos-static",
|
|
defaults: ["libplatformprotos-defaults"],
|
|
host_supported: false,
|
|
|
|
// This is okay because this library is only built as a static library. The C++
|
|
// API is not guaranteed. The proto API is guaranteed to be stable via Metrics Council,
|
|
// but is not authorized to be used outside of debugging.
|
|
vendor_available: true,
|
|
|
|
target: {
|
|
android: {
|
|
proto: {
|
|
type: "lite",
|
|
},
|
|
static_libs: [
|
|
"libprotobuf-cpp-lite",
|
|
],
|
|
shared: {
|
|
enabled: false,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
// This is the full proto version of libplatformprotos. It may only
|
|
// be used by test code that is not shipped on the device.
|
|
cc_library {
|
|
name: "libplatformprotos-test",
|
|
defaults: ["libplatformprotos-defaults"],
|
|
host_supported: false,
|
|
|
|
target: {
|
|
android: {
|
|
proto: {
|
|
type: "full",
|
|
},
|
|
shared: {
|
|
enabled: false,
|
|
},
|
|
},
|
|
},
|
|
}
|