1*598139dcSAndroid Build Coastguard Worker// Copyright (C) 2017 The Android Open Source Project 2*598139dcSAndroid Build Coastguard Worker// 3*598139dcSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*598139dcSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*598139dcSAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*598139dcSAndroid Build Coastguard Worker// 7*598139dcSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*598139dcSAndroid Build Coastguard Worker// 9*598139dcSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*598139dcSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*598139dcSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*598139dcSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*598139dcSAndroid Build Coastguard Worker// limitations under the License. 14*598139dcSAndroid Build Coastguard Worker 15*598139dcSAndroid Build Coastguard Worker// This is what we want to do: 16*598139dcSAndroid Build Coastguard Worker// event_logtags = $(shell 17*598139dcSAndroid Build Coastguard Worker// sed -n 18*598139dcSAndroid Build Coastguard Worker// "s/^\([0-9]*\)[ \t]*$1[ \t].*/-D`echo $1 | tr a-z A-Z`_LOG_TAG=\1/p" 19*598139dcSAndroid Build Coastguard Worker// $(LOCAL_PATH)/$2/event.logtags) 20*598139dcSAndroid Build Coastguard Worker// event_flag := $(call event_logtags,auditd) 21*598139dcSAndroid Build Coastguard Worker// event_flag += $(call event_logtags,logd) 22*598139dcSAndroid Build Coastguard Worker// event_flag += $(call event_logtags,tag_def) 23*598139dcSAndroid Build Coastguard Worker// so make sure we do not regret hard-coding it as follows: 24*598139dcSAndroid Build Coastguard Workerpackage { 25*598139dcSAndroid Build Coastguard Worker default_applicable_licenses: ["Android-Apache-2.0"], 26*598139dcSAndroid Build Coastguard Worker default_team: "trendy_team_native_tools_libraries", 27*598139dcSAndroid Build Coastguard Worker} 28*598139dcSAndroid Build Coastguard Worker 29*598139dcSAndroid Build Coastguard Workerevent_flag = [ 30*598139dcSAndroid Build Coastguard Worker "-DAUDITD_LOG_TAG=1003", 31*598139dcSAndroid Build Coastguard Worker "-DTAG_DEF_LOG_TAG=1005", 32*598139dcSAndroid Build Coastguard Worker "-DLIBLOG_LOG_TAG=1006", 33*598139dcSAndroid Build Coastguard Worker] 34*598139dcSAndroid Build Coastguard Worker 35*598139dcSAndroid Build Coastguard Workercc_defaults { 36*598139dcSAndroid Build Coastguard Worker name: "logd_defaults", 37*598139dcSAndroid Build Coastguard Worker 38*598139dcSAndroid Build Coastguard Worker shared_libs: [ 39*598139dcSAndroid Build Coastguard Worker "libbase", 40*598139dcSAndroid Build Coastguard Worker "libz", 41*598139dcSAndroid Build Coastguard Worker ], 42*598139dcSAndroid Build Coastguard Worker static_libs: ["libzstd"], 43*598139dcSAndroid Build Coastguard Worker header_libs: ["libcutils_headers"], 44*598139dcSAndroid Build Coastguard Worker cflags: [ 45*598139dcSAndroid Build Coastguard Worker "-Wextra", 46*598139dcSAndroid Build Coastguard Worker "-Wthread-safety", 47*598139dcSAndroid Build Coastguard Worker ] + event_flag, 48*598139dcSAndroid Build Coastguard Worker 49*598139dcSAndroid Build Coastguard Worker lto: { 50*598139dcSAndroid Build Coastguard Worker thin: true, 51*598139dcSAndroid Build Coastguard Worker }, 52*598139dcSAndroid Build Coastguard Worker sanitize: { 53*598139dcSAndroid Build Coastguard Worker cfi: true, 54*598139dcSAndroid Build Coastguard Worker }, 55*598139dcSAndroid Build Coastguard Worker} 56*598139dcSAndroid Build Coastguard Worker 57*598139dcSAndroid Build Coastguard Workercc_library_static { 58*598139dcSAndroid Build Coastguard Worker name: "liblogd", 59*598139dcSAndroid Build Coastguard Worker defaults: ["logd_defaults"], 60*598139dcSAndroid Build Coastguard Worker host_supported: true, 61*598139dcSAndroid Build Coastguard Worker srcs: [ 62*598139dcSAndroid Build Coastguard Worker "CompressionEngine.cpp", 63*598139dcSAndroid Build Coastguard Worker "LogBufferElement.cpp", 64*598139dcSAndroid Build Coastguard Worker "LogReaderList.cpp", 65*598139dcSAndroid Build Coastguard Worker "LogReaderThread.cpp", 66*598139dcSAndroid Build Coastguard Worker "LogSize.cpp", 67*598139dcSAndroid Build Coastguard Worker "LogStatistics.cpp", 68*598139dcSAndroid Build Coastguard Worker "LogTags.cpp", 69*598139dcSAndroid Build Coastguard Worker "LogdLock.cpp", 70*598139dcSAndroid Build Coastguard Worker "PruneList.cpp", 71*598139dcSAndroid Build Coastguard Worker "SerializedFlushToState.cpp", 72*598139dcSAndroid Build Coastguard Worker "SerializedLogBuffer.cpp", 73*598139dcSAndroid Build Coastguard Worker "SerializedLogChunk.cpp", 74*598139dcSAndroid Build Coastguard Worker "SimpleLogBuffer.cpp", 75*598139dcSAndroid Build Coastguard Worker ], 76*598139dcSAndroid Build Coastguard Worker static_libs: ["liblog"], 77*598139dcSAndroid Build Coastguard Worker shared_libs: ["libbinder"], 78*598139dcSAndroid Build Coastguard Worker logtags: ["event.logtags"], 79*598139dcSAndroid Build Coastguard Worker 80*598139dcSAndroid Build Coastguard Worker export_include_dirs: ["."], 81*598139dcSAndroid Build Coastguard Worker 82*598139dcSAndroid Build Coastguard Worker aidl: { 83*598139dcSAndroid Build Coastguard Worker libs: [ 84*598139dcSAndroid Build Coastguard Worker "ILogcatManagerService_aidl", 85*598139dcSAndroid Build Coastguard Worker ], 86*598139dcSAndroid Build Coastguard Worker }, 87*598139dcSAndroid Build Coastguard Worker} 88*598139dcSAndroid Build Coastguard Worker 89*598139dcSAndroid Build Coastguard Workercc_binary { 90*598139dcSAndroid Build Coastguard Worker name: "logd", 91*598139dcSAndroid Build Coastguard Worker defaults: ["logd_defaults"], 92*598139dcSAndroid Build Coastguard Worker init_rc: ["logd.rc"], 93*598139dcSAndroid Build Coastguard Worker 94*598139dcSAndroid Build Coastguard Worker srcs: [ 95*598139dcSAndroid Build Coastguard Worker "main.cpp", 96*598139dcSAndroid Build Coastguard Worker "CommandListener.cpp", 97*598139dcSAndroid Build Coastguard Worker "LogdNativeService.cpp", 98*598139dcSAndroid Build Coastguard Worker "LogAudit.cpp", 99*598139dcSAndroid Build Coastguard Worker "LogKlog.cpp", 100*598139dcSAndroid Build Coastguard Worker "LogListener.cpp", 101*598139dcSAndroid Build Coastguard Worker "LogPermissions.cpp", 102*598139dcSAndroid Build Coastguard Worker "LogReader.cpp", 103*598139dcSAndroid Build Coastguard Worker "TrustyLog.cpp", 104*598139dcSAndroid Build Coastguard Worker "PkgIds.cpp", 105*598139dcSAndroid Build Coastguard Worker ], 106*598139dcSAndroid Build Coastguard Worker 107*598139dcSAndroid Build Coastguard Worker static_libs: [ 108*598139dcSAndroid Build Coastguard Worker "libaudit", 109*598139dcSAndroid Build Coastguard Worker "liblog", 110*598139dcSAndroid Build Coastguard Worker "liblogd", 111*598139dcSAndroid Build Coastguard Worker "liblogd_binder", 112*598139dcSAndroid Build Coastguard Worker ], 113*598139dcSAndroid Build Coastguard Worker 114*598139dcSAndroid Build Coastguard Worker shared_libs: [ 115*598139dcSAndroid Build Coastguard Worker "libbinder", 116*598139dcSAndroid Build Coastguard Worker "libsysutils", 117*598139dcSAndroid Build Coastguard Worker "libcutils", 118*598139dcSAndroid Build Coastguard Worker "libpackagelistparser", 119*598139dcSAndroid Build Coastguard Worker "libprocessgroup", 120*598139dcSAndroid Build Coastguard Worker "libcap", 121*598139dcSAndroid Build Coastguard Worker "libutils", 122*598139dcSAndroid Build Coastguard Worker ], 123*598139dcSAndroid Build Coastguard Worker aidl: { 124*598139dcSAndroid Build Coastguard Worker libs: [ 125*598139dcSAndroid Build Coastguard Worker "ILogcatManagerService_aidl", 126*598139dcSAndroid Build Coastguard Worker ] 127*598139dcSAndroid Build Coastguard Worker } 128*598139dcSAndroid Build Coastguard Worker} 129*598139dcSAndroid Build Coastguard Worker 130*598139dcSAndroid Build Coastguard Workercc_library_static { 131*598139dcSAndroid Build Coastguard Worker name: "libaudit", 132*598139dcSAndroid Build Coastguard Worker srcs: [ 133*598139dcSAndroid Build Coastguard Worker "libaudit/libaudit.cpp" 134*598139dcSAndroid Build Coastguard Worker ], 135*598139dcSAndroid Build Coastguard Worker shared_libs: ["libbase"], 136*598139dcSAndroid Build Coastguard Worker 137*598139dcSAndroid Build Coastguard Worker export_include_dirs: ["libaudit/include"], 138*598139dcSAndroid Build Coastguard Worker 139*598139dcSAndroid Build Coastguard Worker recovery_available: true, 140*598139dcSAndroid Build Coastguard Worker vendor_available: true, 141*598139dcSAndroid Build Coastguard Worker} 142*598139dcSAndroid Build Coastguard Worker 143*598139dcSAndroid Build Coastguard Workercc_binary { 144*598139dcSAndroid Build Coastguard Worker name: "auditctl", 145*598139dcSAndroid Build Coastguard Worker 146*598139dcSAndroid Build Coastguard Worker srcs: [ 147*598139dcSAndroid Build Coastguard Worker "auditctl.cpp", 148*598139dcSAndroid Build Coastguard Worker ], 149*598139dcSAndroid Build Coastguard Worker 150*598139dcSAndroid Build Coastguard Worker shared_libs: ["libbase"], 151*598139dcSAndroid Build Coastguard Worker static_libs: ["libaudit"], 152*598139dcSAndroid Build Coastguard Worker 153*598139dcSAndroid Build Coastguard Worker cflags: [ 154*598139dcSAndroid Build Coastguard Worker "-Wextra", 155*598139dcSAndroid Build Coastguard Worker ], 156*598139dcSAndroid Build Coastguard Worker} 157*598139dcSAndroid Build Coastguard Worker 158*598139dcSAndroid Build Coastguard Workerprebuilt_etc { 159*598139dcSAndroid Build Coastguard Worker name: "logtagd.rc", 160*598139dcSAndroid Build Coastguard Worker src: "logtagd.rc", 161*598139dcSAndroid Build Coastguard Worker sub_dir: "init", 162*598139dcSAndroid Build Coastguard Worker} 163*598139dcSAndroid Build Coastguard Worker 164*598139dcSAndroid Build Coastguard Worker// ----------------------------------------------------------------------------- 165*598139dcSAndroid Build Coastguard Worker// Unit tests. 166*598139dcSAndroid Build Coastguard Worker// ----------------------------------------------------------------------------- 167*598139dcSAndroid Build Coastguard Worker 168*598139dcSAndroid Build Coastguard Workercc_defaults { 169*598139dcSAndroid Build Coastguard Worker name: "logd-unit-test-defaults", 170*598139dcSAndroid Build Coastguard Worker 171*598139dcSAndroid Build Coastguard Worker cflags: [ 172*598139dcSAndroid Build Coastguard Worker "-fstack-protector-all", 173*598139dcSAndroid Build Coastguard Worker "-g", 174*598139dcSAndroid Build Coastguard Worker "-Wall", 175*598139dcSAndroid Build Coastguard Worker "-Wthread-safety", 176*598139dcSAndroid Build Coastguard Worker "-Wextra", 177*598139dcSAndroid Build Coastguard Worker "-Werror", 178*598139dcSAndroid Build Coastguard Worker "-fno-builtin", 179*598139dcSAndroid Build Coastguard Worker ] + event_flag, 180*598139dcSAndroid Build Coastguard Worker 181*598139dcSAndroid Build Coastguard Worker srcs: [ 182*598139dcSAndroid Build Coastguard Worker "logd_test.cpp", 183*598139dcSAndroid Build Coastguard Worker "LogBufferTest.cpp", 184*598139dcSAndroid Build Coastguard Worker "SerializedLogBufferTest.cpp", 185*598139dcSAndroid Build Coastguard Worker "SerializedLogChunkTest.cpp", 186*598139dcSAndroid Build Coastguard Worker "SerializedFlushToStateTest.cpp", 187*598139dcSAndroid Build Coastguard Worker ], 188*598139dcSAndroid Build Coastguard Worker sanitize: { 189*598139dcSAndroid Build Coastguard Worker cfi: true, 190*598139dcSAndroid Build Coastguard Worker }, 191*598139dcSAndroid Build Coastguard Worker static_libs: [ 192*598139dcSAndroid Build Coastguard Worker "libbase", 193*598139dcSAndroid Build Coastguard Worker "libcutils", 194*598139dcSAndroid Build Coastguard Worker "liblog", 195*598139dcSAndroid Build Coastguard Worker "liblogd", 196*598139dcSAndroid Build Coastguard Worker "libselinux", 197*598139dcSAndroid Build Coastguard Worker "libz", 198*598139dcSAndroid Build Coastguard Worker "libzstd", 199*598139dcSAndroid Build Coastguard Worker ], 200*598139dcSAndroid Build Coastguard Worker shared_libs: [ 201*598139dcSAndroid Build Coastguard Worker "libbinder", 202*598139dcSAndroid Build Coastguard Worker "libutils", 203*598139dcSAndroid Build Coastguard Worker ], 204*598139dcSAndroid Build Coastguard Worker} 205*598139dcSAndroid Build Coastguard Worker 206*598139dcSAndroid Build Coastguard Worker// Build tests for the logger. Run with: 207*598139dcSAndroid Build Coastguard Worker// adb shell /data/nativetest/logd-unit-tests/logd-unit-tests 208*598139dcSAndroid Build Coastguard Workercc_test { 209*598139dcSAndroid Build Coastguard Worker name: "logd-unit-tests", 210*598139dcSAndroid Build Coastguard Worker host_supported: true, 211*598139dcSAndroid Build Coastguard Worker defaults: ["logd-unit-test-defaults"], 212*598139dcSAndroid Build Coastguard Worker test_suites: [ 213*598139dcSAndroid Build Coastguard Worker "general-tests", 214*598139dcSAndroid Build Coastguard Worker ], 215*598139dcSAndroid Build Coastguard Worker} 216*598139dcSAndroid Build Coastguard Worker 217*598139dcSAndroid Build Coastguard Workercc_test { 218*598139dcSAndroid Build Coastguard Worker name: "CtsLogdTestCases", 219*598139dcSAndroid Build Coastguard Worker defaults: ["logd-unit-test-defaults"], 220*598139dcSAndroid Build Coastguard Worker multilib: { 221*598139dcSAndroid Build Coastguard Worker lib32: { 222*598139dcSAndroid Build Coastguard Worker suffix: "32", 223*598139dcSAndroid Build Coastguard Worker }, 224*598139dcSAndroid Build Coastguard Worker lib64: { 225*598139dcSAndroid Build Coastguard Worker suffix: "64", 226*598139dcSAndroid Build Coastguard Worker }, 227*598139dcSAndroid Build Coastguard Worker }, 228*598139dcSAndroid Build Coastguard Worker test_suites: [ 229*598139dcSAndroid Build Coastguard Worker "cts", 230*598139dcSAndroid Build Coastguard Worker "device-tests", 231*598139dcSAndroid Build Coastguard Worker ], 232*598139dcSAndroid Build Coastguard Worker test_config: "device_test_config.xml", 233*598139dcSAndroid Build Coastguard Worker} 234*598139dcSAndroid Build Coastguard Worker 235*598139dcSAndroid Build Coastguard Workercc_binary { 236*598139dcSAndroid Build Coastguard Worker name: "replay_messages", 237*598139dcSAndroid Build Coastguard Worker defaults: ["logd_defaults"], 238*598139dcSAndroid Build Coastguard Worker host_supported: true, 239*598139dcSAndroid Build Coastguard Worker 240*598139dcSAndroid Build Coastguard Worker srcs: [ 241*598139dcSAndroid Build Coastguard Worker "ReplayMessages.cpp", 242*598139dcSAndroid Build Coastguard Worker ], 243*598139dcSAndroid Build Coastguard Worker 244*598139dcSAndroid Build Coastguard Worker static_libs: [ 245*598139dcSAndroid Build Coastguard Worker "libbase", 246*598139dcSAndroid Build Coastguard Worker "libcutils", 247*598139dcSAndroid Build Coastguard Worker "liblog", 248*598139dcSAndroid Build Coastguard Worker "liblogd", 249*598139dcSAndroid Build Coastguard Worker "libselinux", 250*598139dcSAndroid Build Coastguard Worker "libz", 251*598139dcSAndroid Build Coastguard Worker "libzstd", 252*598139dcSAndroid Build Coastguard Worker ], 253*598139dcSAndroid Build Coastguard Worker shared_libs: [ 254*598139dcSAndroid Build Coastguard Worker "libbinder", 255*598139dcSAndroid Build Coastguard Worker "libutils", 256*598139dcSAndroid Build Coastguard Worker ], 257*598139dcSAndroid Build Coastguard Worker} 258*598139dcSAndroid Build Coastguard Worker 259*598139dcSAndroid Build Coastguard Workercc_library_static { 260*598139dcSAndroid Build Coastguard Worker name: "liblogd_binder", 261*598139dcSAndroid Build Coastguard Worker defaults: ["logd_defaults"], 262*598139dcSAndroid Build Coastguard Worker 263*598139dcSAndroid Build Coastguard Worker srcs: [ 264*598139dcSAndroid Build Coastguard Worker ":logd_aidl", 265*598139dcSAndroid Build Coastguard Worker ], 266*598139dcSAndroid Build Coastguard Worker shared_libs: [ 267*598139dcSAndroid Build Coastguard Worker "libbinder", 268*598139dcSAndroid Build Coastguard Worker "libutils", 269*598139dcSAndroid Build Coastguard Worker ], 270*598139dcSAndroid Build Coastguard Worker aidl: { 271*598139dcSAndroid Build Coastguard Worker local_include_dirs: ["binder"], 272*598139dcSAndroid Build Coastguard Worker export_aidl_headers: true, 273*598139dcSAndroid Build Coastguard Worker }, 274*598139dcSAndroid Build Coastguard Worker whole_static_libs: [ 275*598139dcSAndroid Build Coastguard Worker "libincremental_aidl-cpp", 276*598139dcSAndroid Build Coastguard Worker ], 277*598139dcSAndroid Build Coastguard Worker export_shared_lib_headers: [ 278*598139dcSAndroid Build Coastguard Worker "libbinder", 279*598139dcSAndroid Build Coastguard Worker ], 280*598139dcSAndroid Build Coastguard Worker} 281*598139dcSAndroid Build Coastguard Worker 282*598139dcSAndroid Build Coastguard Workerfilegroup { 283*598139dcSAndroid Build Coastguard Worker name: "logd_aidl", 284*598139dcSAndroid Build Coastguard Worker srcs: [ 285*598139dcSAndroid Build Coastguard Worker "binder/android/os/ILogd.aidl", 286*598139dcSAndroid Build Coastguard Worker ], 287*598139dcSAndroid Build Coastguard Worker path: "binder", 288*598139dcSAndroid Build Coastguard Worker} 289