xref: /aosp_15_r20/system/logging/logd/Android.bp (revision 598139dc91b21518d67c408eaea2644226490971)
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