1// Copyright (C) 2018 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
16//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
17//     DEPENDING ON IT IN YOUR PROJECT. ***
18package {
19    default_applicable_licenses: ["bootable_recovery_license"],
20}
21
22// Added automatically by a large-scale-change that took the approach of
23// 'apply every license found to every target'. While this makes sure we respect
24// every license restriction, it may not be entirely correct.
25//
26// e.g. GPL in an MIT project might only apply to the contrib/ directory.
27//
28// Please consider splitting the single license below into multiple licenses,
29// taking care not to lose any license_kind information, and overriding the
30// default license using the 'licenses: [...]' property on targets as needed.
31//
32// For unused files, consider creating a 'fileGroup' with "//visibility:private"
33// to attach the license to, and including a comment whether the files may be
34// used in the current project.
35// See: http://go/android-license-faq
36license {
37    name: "bootable_recovery_license",
38    visibility: [":__subpackages__"],
39    license_kinds: [
40        "SPDX-license-identifier-Apache-2.0",
41        "SPDX-license-identifier-MIT",
42        "SPDX-license-identifier-OFL", // by exception only
43    ],
44    license_text: [
45        "NOTICE",
46    ],
47}
48
49cc_defaults {
50    name: "recovery_defaults",
51
52    cflags: [
53        "-D_FILE_OFFSET_BITS=64",
54
55        // Must be the same as RECOVERY_API_VERSION.
56        "-DRECOVERY_API_VERSION=3",
57
58        "-Wall",
59        "-Werror",
60    ],
61}
62
63cc_library_static {
64    name: "librecovery_fastboot",
65    recovery_available: true,
66    defaults: [
67        "recovery_defaults",
68    ],
69
70    srcs: [
71        "fastboot/fastboot.cpp",
72    ],
73
74    shared_libs: [
75        "libbase",
76        "libbootloader_message",
77        "libcutils",
78        "liblog",
79        "librecovery_ui",
80    ],
81
82    static_libs: [
83        "librecovery_ui_default",
84    ],
85}
86
87cc_defaults {
88    name: "librecovery_defaults",
89
90    defaults: [
91        "recovery_defaults",
92    ],
93
94    shared_libs: [
95        "android.hardware.boot@1.0",
96        "android.hardware.boot@1.1",
97        "libbase",
98        "libbootloader_message",
99        "libcrypto",
100        "libcutils",
101        "libfs_mgr",
102        "liblp",
103        "liblog",
104        "libprotobuf-cpp-lite",
105        "libziparchive",
106    ],
107
108    static_libs: [
109        "libc++fs",
110        "libinstall",
111        "librecovery_fastboot",
112        "libminui",
113        "librecovery_utils",
114        "libotautil",
115        "libsnapshot_nobinder",
116        "update_metadata-protos",
117    ],
118}
119
120cc_library_static {
121    name: "librecovery",
122    recovery_available: true,
123
124    defaults: [
125        "librecovery_defaults",
126    ],
127
128    srcs: [
129        "recovery.cpp",
130    ],
131
132    shared_libs: [
133        "librecovery_ui",
134    ],
135}
136
137prebuilt_etc {
138    name: "init_recovery.rc",
139    filename: "init.rc",
140    src: "etc/init.rc",
141    sub_dir: "init/hw",
142    recovery: true,
143}
144
145cc_binary {
146    name: "recovery",
147    recovery: true,
148
149    defaults: [
150        "libinstall_defaults",
151        "librecovery_defaults",
152        "librecovery_utils_defaults",
153    ],
154
155    srcs: [
156        "recovery_main.cpp",
157    ],
158
159    shared_libs: [
160        "librecovery_ui",
161    ],
162
163    static_libs: [
164        "librecovery",
165        "librecovery_ui_default",
166    ],
167
168    required: [
169        "e2fsdroid.recovery",
170        "init_recovery.rc",
171        "librecovery_ui_ext",
172        "minadbd",
173        "mke2fs.conf.recovery",
174        "mke2fs.recovery",
175        "recovery_deps",
176        "ueventd.rc.recovery",
177    ],
178}
179
180// The dynamic executable that runs after /data mounts.
181cc_binary {
182    name: "recovery-persist",
183
184    defaults: [
185        "recovery_defaults",
186    ],
187
188    srcs: [
189        "recovery-persist.cpp",
190    ],
191
192    shared_libs: [
193        "libbase",
194        "liblog",
195    ],
196
197    static_libs: [
198        "librecovery_utils",
199    ],
200
201    init_rc: [
202        "recovery-persist.rc",
203    ],
204}
205
206// The dynamic executable that runs at init.
207cc_binary {
208    name: "recovery-refresh",
209
210    defaults: [
211        "recovery_defaults",
212    ],
213
214    srcs: [
215        "recovery-refresh.cpp",
216    ],
217
218    shared_libs: [
219        "libbase",
220        "liblog",
221    ],
222
223    static_libs: [
224        "librecovery_utils",
225    ],
226
227    init_rc: [
228        "recovery-refresh.rc",
229    ],
230}
231
232filegroup {
233    name: "res-testdata",
234
235    srcs: [
236        "res-*/images/*_text.png",
237    ],
238}
239