• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1generic_rootdirs = [
2    "apex",
3    "bootstrap-apex",
4    "config",
5    "data",
6    "data_mirror",
7    "debug_ramdisk",
8    "dev",
9    "linkerconfig",
10    "metadata",
11    "mnt",
12    "odm",
13    "odm_dlkm",
14    "oem",
15    "postinstall",
16    "proc",
17    "second_stage_resources",
18    "storage",
19    "sys",
20    "system",
21    "system_dlkm",
22    "tmp",
23    "vendor",
24    "vendor_dlkm",
25]
26
27android_rootdirs = [
28    "system_ext",
29    "product",
30]
31
32generic_symlinks = [
33    {
34        target: "/system/bin/init",
35        name: "init",
36    },
37    {
38        target: "/system/etc",
39        name: "etc",
40    },
41    {
42        target: "/system/bin",
43        name: "bin",
44    },
45    {
46        target: "/vendor",
47        name: "system/vendor",
48    },
49    {
50        target: "/system_dlkm/lib/modules",
51        name: "system/lib/modules",
52    },
53    {
54        target: "/data/user_de/0/com.android.shell/files/bugreports",
55        name: "bugreports",
56    },
57    {
58        target: "/sys/kernel/debug",
59        name: "d",
60    },
61    {
62        target: "/storage/self/primary",
63        name: "sdcard",
64    },
65    {
66        target: "/product/etc/security/adb_keys",
67        name: "adb_keys",
68    },
69    // For Treble Generic System Image (GSI), system-as-root GSI needs to work on both devices with
70    // and without /odm partition. Those symlinks are for devices without /odm partition. For
71    // devices with /odm partition, mount odm.img under /odm will hide those symlinks.
72    {
73        target: "/vendor/odm/app",
74        name: "odm/app",
75    },
76    {
77        target: "/vendor/odm/bin",
78        name: "odm/bin",
79    },
80    {
81        target: "/vendor/odm/etc",
82        name: "odm/etc",
83    },
84    {
85        target: "/vendor/odm/firmware",
86        name: "odm/firmware",
87    },
88    {
89        target: "/vendor/odm/framework",
90        name: "odm/framework",
91    },
92    {
93        target: "/vendor/odm/lib",
94        name: "odm/lib",
95    },
96    {
97        target: "/vendor/odm/lib64",
98        name: "odm/lib64",
99    },
100    {
101        target: "/vendor/odm/overlay",
102        name: "odm/overlay",
103    },
104    {
105        target: "/vendor/odm/priv-app",
106        name: "odm/priv-app",
107    },
108    {
109        target: "/vendor/odm/usr",
110        name: "odm/usr",
111    },
112]
113
114android_symlinks = [
115    {
116        target: "/product",
117        name: "system/product",
118    },
119    {
120        target: "/system_ext",
121        name: "system/system_ext",
122    },
123    {
124        target: "/data/cache",
125        name: "cache",
126    },
127    {
128        target: "/odm/odm_dlkm/etc",
129        name: "odm_dlkm/etc",
130    },
131    {
132        target: "/vendor/vendor_dlkm/etc",
133        name: "vendor_dlkm/etc",
134    },
135]
136
137extra_vendor_symlinks = [
138    // Some vendors still haven't cleaned up all device specific directories under root!
139    // TODO(b/111434759, b/111287060) SoC specific hacks
140    {
141        target: "/vendor/lib/dsp",
142        name: "dsp",
143    },
144    {
145        target: "/mnt/vendor/persist",
146        name: "persist",
147    },
148    {
149        target: "/vendor/firmware_mnt",
150        name: "firmware",
151    },
152]
153
154filegroup {
155    name: "generic_system_sign_key",
156    srcs: [":avb_testkey_rsa4096"],
157}
158
159phony {
160    name: "generic_system_fonts",
161    required: [
162        "AndroidClock.ttf",
163        "CarroisGothicSC-Regular.ttf",
164        "ComingSoon.ttf",
165        "CutiveMono.ttf",
166        "DancingScript-Regular.ttf",
167        "DroidSansMono.ttf",
168        "NotoColorEmoji.ttf",
169        "NotoColorEmojiFlags.ttf",
170        "NotoNaskhArabic-Bold.ttf",
171        "NotoNaskhArabic-Regular.ttf",
172        "NotoNaskhArabicUI-Bold.ttf",
173        "NotoNaskhArabicUI-Regular.ttf",
174        "NotoSansAdlam-VF.ttf",
175        "NotoSansAhom-Regular.otf",
176        "NotoSansAnatolianHieroglyphs-Regular.otf",
177        "NotoSansArmenian-VF.ttf",
178        "NotoSansAvestan-Regular.ttf",
179        "NotoSansBalinese-Regular.ttf",
180        "NotoSansBamum-Regular.ttf",
181        "NotoSansBassaVah-Regular.otf",
182        "NotoSansBatak-Regular.ttf",
183        "NotoSansBengali-VF.ttf",
184        "NotoSansBengaliUI-VF.ttf",
185        "NotoSansBhaiksuki-Regular.otf",
186        "NotoSansBrahmi-Regular.ttf",
187        "NotoSansBuginese-Regular.ttf",
188        "NotoSansBuhid-Regular.ttf",
189        "NotoSansCJK-Regular.ttc",
190        "NotoSansCanadianAboriginal-Regular.ttf",
191        "NotoSansCarian-Regular.ttf",
192        "NotoSansChakma-Regular.otf",
193        "NotoSansCham-Bold.ttf",
194        "NotoSansCham-Regular.ttf",
195        "NotoSansCherokee-Regular.ttf",
196        "NotoSansCoptic-Regular.ttf",
197        "NotoSansCuneiform-Regular.ttf",
198        "NotoSansCypriot-Regular.ttf",
199        "NotoSansDeseret-Regular.ttf",
200        "NotoSansDevanagari-VF.ttf",
201        "NotoSansDevanagariUI-VF.ttf",
202        "NotoSansEgyptianHieroglyphs-Regular.ttf",
203        "NotoSansElbasan-Regular.otf",
204        "NotoSansEthiopic-VF.ttf",
205        "NotoSansGeorgian-VF.ttf",
206        "NotoSansGlagolitic-Regular.ttf",
207        "NotoSansGothic-Regular.ttf",
208        "NotoSansGrantha-Regular.ttf",
209        "NotoSansGujarati-Bold.ttf",
210        "NotoSansGujarati-Regular.ttf",
211        "NotoSansGujaratiUI-Bold.ttf",
212        "NotoSansGujaratiUI-Regular.ttf",
213        "NotoSansGunjalaGondi-Regular.otf",
214        "NotoSansGurmukhi-VF.ttf",
215        "NotoSansGurmukhiUI-VF.ttf",
216        "NotoSansHanifiRohingya-Regular.otf",
217        "NotoSansHanunoo-Regular.ttf",
218        "NotoSansHatran-Regular.otf",
219        "NotoSansHebrew-Bold.ttf",
220        "NotoSansHebrew-Regular.ttf",
221        "NotoSansImperialAramaic-Regular.ttf",
222        "NotoSansInscriptionalPahlavi-Regular.ttf",
223        "NotoSansInscriptionalParthian-Regular.ttf",
224        "NotoSansJavanese-Regular.otf",
225        "NotoSansKaithi-Regular.ttf",
226        "NotoSansKannada-VF.ttf",
227        "NotoSansKannadaUI-VF.ttf",
228        "NotoSansKayahLi-Regular.ttf",
229        "NotoSansKharoshthi-Regular.ttf",
230        "NotoSansKhmer-VF.ttf",
231        "NotoSansKhmerUI-Bold.ttf",
232        "NotoSansKhmerUI-Regular.ttf",
233        "NotoSansKhojki-Regular.otf",
234        "NotoSansLao-Bold.ttf",
235        "NotoSansLao-Regular.ttf",
236        "NotoSansLaoUI-Bold.ttf",
237        "NotoSansLaoUI-Regular.ttf",
238        "NotoSansLepcha-Regular.ttf",
239        "NotoSansLimbu-Regular.ttf",
240        "NotoSansLinearA-Regular.otf",
241        "NotoSansLinearB-Regular.ttf",
242        "NotoSansLisu-Regular.ttf",
243        "NotoSansLycian-Regular.ttf",
244        "NotoSansLydian-Regular.ttf",
245        "NotoSansMalayalam-VF.ttf",
246        "NotoSansMalayalamUI-VF.ttf",
247        "NotoSansMandaic-Regular.ttf",
248        "NotoSansManichaean-Regular.otf",
249        "NotoSansMarchen-Regular.otf",
250        "NotoSansMasaramGondi-Regular.otf",
251        "NotoSansMedefaidrin-VF.ttf",
252        "NotoSansMeeteiMayek-Regular.ttf",
253        "NotoSansMeroitic-Regular.otf",
254        "NotoSansMiao-Regular.otf",
255        "NotoSansModi-Regular.ttf",
256        "NotoSansMongolian-Regular.ttf",
257        "NotoSansMro-Regular.otf",
258        "NotoSansMultani-Regular.otf",
259        "NotoSansMyanmar-Bold.otf",
260        "NotoSansMyanmar-Medium.otf",
261        "NotoSansMyanmar-Regular.otf",
262        "NotoSansMyanmarUI-Bold.otf",
263        "NotoSansMyanmarUI-Medium.otf",
264        "NotoSansMyanmarUI-Regular.otf",
265        "NotoSansNKo-Regular.ttf",
266        "NotoSansNabataean-Regular.otf",
267        "NotoSansNewTaiLue-Regular.ttf",
268        "NotoSansNewa-Regular.otf",
269        "NotoSansOgham-Regular.ttf",
270        "NotoSansOlChiki-Regular.ttf",
271        "NotoSansOldItalic-Regular.ttf",
272        "NotoSansOldNorthArabian-Regular.otf",
273        "NotoSansOldPermic-Regular.otf",
274        "NotoSansOldPersian-Regular.ttf",
275        "NotoSansOldSouthArabian-Regular.ttf",
276        "NotoSansOldTurkic-Regular.ttf",
277        "NotoSansOriya-Bold.ttf",
278        "NotoSansOriya-Regular.ttf",
279        "NotoSansOriyaUI-Bold.ttf",
280        "NotoSansOriyaUI-Regular.ttf",
281        "NotoSansOsage-Regular.ttf",
282        "NotoSansOsmanya-Regular.ttf",
283        "NotoSansPahawhHmong-Regular.otf",
284        "NotoSansPalmyrene-Regular.otf",
285        "NotoSansPauCinHau-Regular.otf",
286        "NotoSansPhagsPa-Regular.ttf",
287        "NotoSansPhoenician-Regular.ttf",
288        "NotoSansRejang-Regular.ttf",
289        "NotoSansRunic-Regular.ttf",
290        "NotoSansSamaritan-Regular.ttf",
291        "NotoSansSaurashtra-Regular.ttf",
292        "NotoSansSharada-Regular.otf",
293        "NotoSansShavian-Regular.ttf",
294        "NotoSansSinhala-VF.ttf",
295        "NotoSansSinhalaUI-VF.ttf",
296        "NotoSansSoraSompeng-Regular.otf",
297        "NotoSansSoyombo-VF.ttf",
298        "NotoSansSundanese-Regular.ttf",
299        "NotoSansSylotiNagri-Regular.ttf",
300        "NotoSansSymbols-Regular-Subsetted.ttf",
301        "NotoSansSymbols-Regular-Subsetted2.ttf",
302        "NotoSansSyriacEastern-Regular.ttf",
303        "NotoSansSyriacEstrangela-Regular.ttf",
304        "NotoSansSyriacWestern-Regular.ttf",
305        "NotoSansTagalog-Regular.ttf",
306        "NotoSansTagbanwa-Regular.ttf",
307        "NotoSansTaiLe-Regular.ttf",
308        "NotoSansTaiTham-Regular.ttf",
309        "NotoSansTaiViet-Regular.ttf",
310        "NotoSansTakri-VF.ttf",
311        "NotoSansTamil-VF.ttf",
312        "NotoSansTamilUI-VF.ttf",
313        "NotoSansTelugu-VF.ttf",
314        "NotoSansTeluguUI-VF.ttf",
315        "NotoSansThaana-Bold.ttf",
316        "NotoSansThaana-Regular.ttf",
317        "NotoSansThai-Bold.ttf",
318        "NotoSansThai-Regular.ttf",
319        "NotoSansThaiUI-Bold.ttf",
320        "NotoSansThaiUI-Regular.ttf",
321        "NotoSansTifinagh-Regular.otf",
322        "NotoSansUgaritic-Regular.ttf",
323        "NotoSansVai-Regular.ttf",
324        "NotoSansWancho-Regular.otf",
325        "NotoSansWarangCiti-Regular.otf",
326        "NotoSansYi-Regular.ttf",
327        "NotoSerif-Bold.ttf",
328        "NotoSerif-BoldItalic.ttf",
329        "NotoSerif-Italic.ttf",
330        "NotoSerif-Regular.ttf",
331        "NotoSerifArmenian-VF.ttf",
332        "NotoSerifBengali-VF.ttf",
333        "NotoSerifCJK-Regular.ttc",
334        "NotoSerifDevanagari-VF.ttf",
335        "NotoSerifDogra-Regular.ttf",
336        "NotoSerifEthiopic-VF.ttf",
337        "NotoSerifGeorgian-VF.ttf",
338        "NotoSerifGujarati-VF.ttf",
339        "NotoSerifGurmukhi-VF.ttf",
340        "NotoSerifHebrew-Bold.ttf",
341        "NotoSerifHebrew-Regular.ttf",
342        "NotoSerifHentaigana.ttf",
343        "NotoSerifKannada-VF.ttf",
344        "NotoSerifKhmer-Bold.otf",
345        "NotoSerifKhmer-Regular.otf",
346        "NotoSerifLao-Bold.ttf",
347        "NotoSerifLao-Regular.ttf",
348        "NotoSerifMalayalam-VF.ttf",
349        "NotoSerifMyanmar-Bold.otf",
350        "NotoSerifMyanmar-Regular.otf",
351        "NotoSerifNyiakengPuachueHmong-VF.ttf",
352        "NotoSerifSinhala-VF.ttf",
353        "NotoSerifTamil-VF.ttf",
354        "NotoSerifTelugu-VF.ttf",
355        "NotoSerifThai-Bold.ttf",
356        "NotoSerifThai-Regular.ttf",
357        "NotoSerifTibetan-VF.ttf",
358        "NotoSerifYezidi-VF.ttf",
359        "Roboto-Regular.ttf",
360        "RobotoFlex-Regular.ttf",
361        "RobotoStatic-Regular.ttf",
362        "SourceSansPro-Bold.ttf",
363        "SourceSansPro-BoldItalic.ttf",
364        "SourceSansPro-Italic.ttf",
365        "SourceSansPro-Regular.ttf",
366        "SourceSansPro-SemiBold.ttf",
367        "SourceSansPro-SemiBoldItalic.ttf",
368        "font_fallback.xml",
369        "fonts.xml",
370    ],
371}
372
373android_filesystem_defaults {
374    name: "system_ext_image_defaults",
375    deps: [
376        ///////////////////////////////////////////
377        // base_system_ext
378        ///////////////////////////////////////////
379        "build_flag_system_ext",
380        "fs_config_dirs_system_ext",
381        "fs_config_files_system_ext",
382        "group_system_ext",
383        "passwd_system_ext",
384        "SatelliteClient",
385        "selinux_policy_system_ext",
386        "system_ext_manifest.xml",
387        "system_ext-build.prop",
388        // Base modules when shipping api level is less than or equal to 34
389        "hwservicemanager",
390        "android.hidl.allocator@1.0-service",
391
392        ///////////////////////////////////////////
393        // media_system_ext
394        ///////////////////////////////////////////
395        "StatementService",
396
397        ///////////////////////////////////////////
398        // window_extensions_base
399        ///////////////////////////////////////////
400        "androidx.window.extensions",
401        "androidx.window.sidecar",
402
403        ///////////////////////////////////////////
404        // base_system
405        ///////////////////////////////////////////
406        "charger",
407    ] + select(release_flag("RELEASE_APPFUNCTION_SIDECAR"), {
408        true: [
409            "com.android.extensions.appfunctions",
410            "appfunctions.extension.xml",
411        ],
412        default: [],
413    }),
414}
415
416android_filesystem_defaults {
417    name: "product_image_defaults",
418    deps: [
419        ///////////////////////////////////////////
420        // media_product
421        ///////////////////////////////////////////
422        "webview",
423
424        ///////////////////////////////////////////
425        // base_product
426        ///////////////////////////////////////////
427
428        // Base modules and settings for the product partition.
429        "build_flag_product",
430        "fs_config_dirs_product",
431        "fs_config_files_product",
432        "group_product",
433        "ModuleMetadata",
434        "passwd_product",
435        "product_compatibility_matrix.xml",
436        "product_manifest.xml",
437        "selinux_policy_product",
438        "product-build.prop",
439
440        // AUDIO
441        "frameworks_sounds",
442    ] + select(product_variable("debuggable"), {
443        // Packages included only for eng or userdebug builds, previously debug tagged
444        true: ["adb_keys"],
445        default: [],
446    }),
447}
448
449system_image_fsverity_default = {
450    inputs: [
451        "etc/boot-image.prof",
452        "etc/classpaths/*.pb",
453        "etc/dirty-image-objects",
454        "etc/preloaded-classes",
455        "framework/*",
456        "framework/*/*", // framework/{arch}
457        "framework/oat/*/*", // framework/oat/{arch}
458    ],
459    libs: [":framework-res{.export-package.apk}"],
460}
461
462soong_config_module_type {
463    name: "system_image_defaults",
464    module_type: "android_filesystem_defaults",
465    config_namespace: "ANDROID",
466    bool_variables: ["TARGET_ADD_ROOT_EXTRA_VENDOR_SYMLINKS"],
467    properties: ["symlinks"],
468}
469
470genrule {
471    name: "plat_and_vendor_file_contexts",
472    device_common_srcs: [
473        ":plat_file_contexts",
474        ":vendor_file_contexts",
475    ],
476    out: ["file_contexts"],
477    cmd: "cat $(in) > $(out)",
478}
479
480system_image_defaults {
481    name: "system_image_defaults",
482    partition_name: "system",
483    base_dir: "system",
484    stem: "system.img",
485    no_full_install: true,
486    dirs: generic_rootdirs,
487    soong_config_variables: {
488        TARGET_ADD_ROOT_EXTRA_VENDOR_SYMLINKS: {
489            symlinks: generic_symlinks + extra_vendor_symlinks,
490            conditions_default: {
491                symlinks: generic_symlinks,
492            },
493        },
494    },
495    file_contexts: ":plat_and_vendor_file_contexts",
496    linker_config: {
497        gen_linker_config: true,
498        linker_config_srcs: [":system_linker_config_json_file"],
499    },
500    fsverity: {
501        inputs: select(soong_config_variable("ANDROID", "PRODUCT_FSVERITY_GENERATE_METADATA"), {
502            true: [
503                "etc/boot-image.prof",
504                "etc/classpaths/*.pb",
505                "etc/dirty-image-objects",
506                "etc/preloaded-classes",
507                "framework/*",
508                "framework/*/*", // framework/{arch}
509                "framework/oat/*/*", // framework/oat/{arch}
510            ],
511            default: [],
512        }),
513        libs: select(soong_config_variable("ANDROID", "PRODUCT_FSVERITY_GENERATE_METADATA"), {
514            true: [":framework-res{.export-package.apk}"],
515            default: [],
516        }),
517    },
518    build_logtags: true,
519    gen_aconfig_flags_pb: true,
520
521    compile_multilib: "both",
522
523    use_avb: true,
524    avb_private_key: ":generic_system_sign_key",
525    avb_algorithm: "SHA256_RSA4096",
526    avb_hash_algorithm: "sha256",
527    rollback_index_location: 1,
528
529    deps: [
530        "abx",
531        "aconfigd-system",
532        "aflags",
533        "am",
534        "android.software.credentials.prebuilt.xml", // generic_system
535        "android.software.webview.prebuilt.xml", // media_system
536        "android.software.window_magnification.prebuilt.xml", // handheld_system
537        "android.system.suspend-service",
538        "apexd",
539        "appops",
540        "approved-ogki-builds.xml", // base_system
541        "appwidget",
542        "atrace",
543        "audioserver",
544        "bcc",
545        "blank_screen",
546        "blkid",
547        "bmgr",
548        "bootanimation",
549        "bootstat",
550        "bpfloader",
551        "bu",
552        "bugreport",
553        "bugreportz",
554        "cameraserver",
555        "cgroups.json",
556        "cmd",
557        "content",
558        "cppreopts.sh", // generic_system
559        "credstore",
560        "debuggerd",
561        "device_config",
562        "dirty-image-objects",
563        "dmctl",
564        "dmesgd",
565        "dnsmasq",
566        "dpm",
567        "dump.erofs",
568        "dumpstate",
569        "dumpsys",
570        "e2fsck",
571        "enhanced-confirmation.xml", // base_system
572        "etc_hosts",
573        "flags_health_check",
574        "framework-audio_effects.xml", // for handheld // handheld_system
575        "framework-sysconfig.xml",
576        "fs_config_dirs_system",
577        "fs_config_files_system",
578        "fsck.erofs",
579        "fsck.f2fs", // for media_system
580        "fsck_msdos",
581        "fsverity-release-cert-der",
582        "gatekeeperd",
583        "gpu_counter_producer",
584        "gpuservice",
585        "group_system",
586        "gsi_tool",
587        "gsid",
588        "heapprofd",
589        "hid",
590        "hiddenapi-package-whitelist.xml", // from runtime_libart
591        "idc_data",
592        "idmap2",
593        "idmap2d",
594        "ime",
595        "incident",
596        "incident-helper-cmd",
597        "incident_helper",
598        "incidentd",
599        "init.environ.rc-soong",
600        "init.usb.configfs.rc",
601        "init.usb.rc",
602        "init.zygote32.rc",
603        "init.zygote64.rc",
604        "init.zygote64_32.rc",
605        "initial-package-stopped-states.xml",
606        "input",
607        "installd",
608        "ip", // base_system
609        "iptables",
610        "kcmdlinectrl",
611        "kernel-lifetimes.xml", // base_system
612        "keychars_data",
613        "keylayout_data",
614        "keystore2",
615        "ld.mc",
616        "llkd", // base_system
617        "lmkd", // base_system
618        "locksettings", // base_system
619        "logcat", // base_system
620        "logd", // base_system
621        "lpdump", // base_system
622        "lshal", // base_system
623        "make_f2fs", // media_system
624        "mdnsd", // base_system
625        "media_profiles_V1_0.dtd", // base_system
626        "mediacodec.policy", // base_system
627        "mediaextractor", // base_system
628        "mediametrics", // base_system
629        "misctrl", // from base_system
630        "mke2fs", // base_system
631        "mkfs.erofs", // base_system
632        "monkey", // base_system
633        "mtectrl", // base_system
634        "ndc", // base_system
635        "netd", // base_system
636        "netutils-wrapper-1.0", // full_base
637        "notice_xml_system",
638        "odsign", // base_system
639        "otapreopt_script", // generic_system
640        "package-shareduid-allowlist.xml", // base_system
641        "passwd_system", // base_system
642        "pbtombstone", // base_system
643        "perfetto", // base_system
644        "ping", // base_system
645        "ping6", // base_system
646        "pintool", // base_system
647        "platform.xml", // base_system
648        "pm", // base_system
649        "prefetch", //base_system
650        "preinstalled-packages-asl-files.xml", // base_system
651        "preinstalled-packages-platform-generic-system.xml", // generic_system
652        "preinstalled-packages-platform-handheld-system.xml", // handheld_system
653        "preinstalled-packages-platform.xml", // base_system
654        "preinstalled-packages-strict-signature.xml", // base_system
655        "preloaded-classes", // ok
656        "privapp-permissions-platform.xml", // base_system
657        "prng_seeder", // base_system
658        "public.libraries.android.txt",
659        "recovery-persist", // base_system
660        "recovery-refresh", // generic_system
661        "requestsync", // media_system
662        "resize2fs", // base_system
663        "rss_hwm_reset", // base_system
664        "run-as", // base_system
665        "schedtest", // base_system
666        "screencap", // base_system
667        "screenrecord", // handheld_system
668        "sdcard", // base_system
669        "secdiscard", // base_system
670        "sensorservice", // base_system
671        "service", // base_system
672        "servicemanager", // base_system
673        "settings", // base_system
674        "sfdo", // base_system
675        "sgdisk", // base_system
676        "sm", // base_system
677        "snapuserd", // base_system
678        "storaged", // base_system
679        "surfaceflinger", // base_system
680        "svc", // base_system
681        "system_manifest.xml", // base_system
682        "task_profiles.json", // base_system
683        "tc", // base_system
684        "telecom", // base_system
685        "tombstoned", // base_system
686        "traced", // base_system
687        "traced_probes", // base_system
688        "tradeinmode", // base_system
689        "tune2fs", // base_system
690        "uiautomator", // base_system
691        "uinput", // base_system
692        "uncrypt", // base_system
693        "update_engine", // generic_system
694        "update_engine_sideload", // recovery
695        "update_verifier", // generic_system
696        "usbd", // base_system
697        "vdc", // base_system
698        "virtual_camera", // handheld_system // release_package_virtual_camera
699        "vold", // base_system
700        "vr", // handheld_system
701        "watchdogd", // base_system
702        "wifi.rc", // base_system
703        "wificond", // base_system
704        "wm", // base_system
705    ] + select(release_flag("RELEASE_PLATFORM_VERSION_CODENAME"), {
706        "REL": [],
707        default: [
708            "android.software.preview_sdk.prebuilt.xml", // media_system
709        ],
710    }) + select(release_flag("RELEASE_MEMORY_MANAGEMENT_DAEMON"), {
711        true: [
712            "mm_daemon", // base_system (RELEASE_MEMORY_MANAGEMENT_DAEMON)
713        ],
714        default: [
715            "init-mmd-prop.rc", // base_system
716        ],
717    }) + select(product_variable("debuggable"), {
718        true: [
719            "alloctop",
720            "adevice_fingerprint",
721            "arping",
722            "avbctl",
723            "bootctl",
724            "dmuserd",
725            "evemu-record",
726            "idlcli",
727            "init-debug.rc",
728            "iotop",
729            "iperf3",
730            "iw",
731            "layertracegenerator",
732            "logpersist.start",
733            "logtagd.rc",
734            "ot-cli-ftd",
735            "ot-ctl",
736            "overlay_remounter",
737            "procrank",
738            "profcollectctl",
739            "profcollectd",
740            "record_binder",
741            "sanitizer-status",
742            "servicedispatcher",
743            "showmap",
744            "snapshotctl",
745            "sqlite3",
746            "ss",
747            "start_with_lockagent",
748            "strace",
749            "su",
750            "tinycap",
751            "tinyhostless",
752            "tinymix",
753            "tinypcminfo",
754            "tinyplay", // host
755            "tracepath",
756            "tracepath6",
757            "traceroute6",
758            "unwind_info",
759            "unwind_reg_info",
760            "unwind_symbols",
761            "update_engine_client",
762        ],
763        default: [],
764    }) + select(release_flag("RELEASE_UPROBESTATS_MODULE"), {
765        true: [],
766        default: [
767            "uprobestats", // base_system internal
768        ],
769    }),
770    multilib: {
771        common: {
772            deps: [
773                "BackupRestoreConfirmation", // base_system
774                "BasicDreams", // handheld_system
775                "BlockedNumberProvider", // handheld_system
776                "BluetoothMidiService", // handheld_system
777                "BookmarkProvider", // handheld_system
778                "BuiltInPrintService", // handheld_system
779                "CalendarProvider", // handheld_system
780                "CallLogBackup", // telephony_system
781                "CameraExtensionsProxy", // handheld_system
782                "CaptivePortalLogin", // handheld_system
783                "CarrierDefaultApp", // telephony_system
784                "CellBroadcastLegacyApp", // telephony_system
785                "CertInstaller", // handheld_system
786                "CompanionDeviceManager", // media_system
787                "ContactsProvider", // base_system
788                "CredentialManager", // handheld_system
789                "DeviceAsWebcam", // handheld_system
790                "DeviceDiagnostics", // handheld_system - internal
791                "DocumentsUI", // handheld_system
792                "DownloadProvider", // base_system
793                "DownloadProviderUi", // handheld_system
794                "DynamicSystemInstallationService", // base_system
795                "E2eeContactKeysProvider", // base_system
796                "EasterEgg", // handheld_system
797                "ExtShared", // base_system
798                "ExternalStorageProvider", // handheld_system
799                "FusedLocation", // handheld_system
800                "HTMLViewer", // media_system
801                "InputDevices", // handheld_system
802                "IntentResolver", // base_system
803                "KeyChain", // handheld_system
804                "LiveWallpapersPicker", // generic_system, full_base
805                "LocalTransport", // base_system
806                "ManagedProvisioning", // handheld_system
807                "MediaProviderLegacy", // base_system
808                "MmsService", // handheld_system
809                "MtpService", // handheld_system
810                "MusicFX", // handheld_system
811                "NetworkStack", // base_system
812                "ONS", // telephony_system
813                "PacProcessor", // handheld_system
814                "PackageInstaller", // base_system
815                "PartnerBookmarksProvider", // generic_system
816                "PrintRecommendationService", // handheld_system
817                "PrintSpooler", // handheld_system
818                "ProxyHandler", // handheld_system
819                "SecureElement", // handheld_system
820                "SettingsProvider", // base_system
821                "SharedStorageBackup", // handheld_system
822                "Shell", // base_system
823                "SimAppDialog", // handheld_system
824                "SoundPicker", // not installed by anyone
825                "Stk", // generic_system
826                "Tag", // generic_system
827                "TeleService", // handheld_system
828                "Telecom", // handheld_system
829                "TelephonyProvider", // handheld_system
830                "Traceur", // handheld_system
831                "UserDictionaryProvider", // handheld_system
832                "VpnDialogs", // handheld_system
833                "WallpaperBackup", // base_system
834                "adbd_system_api", // base_system
835                "android.hidl.base-V1.0-java", // base_system
836                "android.hidl.manager-V1.0-java", // base_system
837                "android.test.base", // from runtime_libart
838                "android.test.mock", // base_system
839                "android.test.runner", // base_system
840                "aosp_mainline_modules", // ok
841                "build_flag_system", // base_system
842                "charger_res_images", // generic_system
843                "com.android.apex.cts.shim.v1_prebuilt", // ok
844                "com.android.cellbroadcast", // telephony_system
845                "com.android.future.usb.accessory", // media_system
846                "com.android.location.provider", // base_system
847                "com.android.media.remotedisplay", // media_system
848                "com.android.media.remotedisplay.xml", // media_system
849                "com.android.mediadrm.signer", // media_system
850                "com.android.nfc_extras", // ok
851                "com.android.nfcservices", // base_system (RELEASE_PACKAGE_NFC_STACK != NfcNci)
852                "com.android.runtime", // ok
853                "dex_bootjars",
854                "ext", // from runtime_libart
855                "framework-graphics", // base_system
856                "framework-location", // base_system
857                "framework-minus-apex-install-dependencies", // base_system
858                "framework_compatibility_matrix.device.xml",
859                "generic_system_fonts", // ok
860                "hwservicemanager_compat_symlink_module", // base_system
861                "hyph-data",
862                "ims-common", // base_system
863                "init_system", // base_system
864                "javax.obex", // base_system
865                "llndk.libraries.txt", //ok
866                "org.apache.http.legacy", // base_system
867                "perfetto-extras", // system
868                "sanitizer.libraries.txt", // base_system
869                "selinux_policy_system_soong", // ok
870                "services", // base_system
871                "shell_and_utilities_system", // ok
872                "system-build.prop",
873                "system_compatibility_matrix.xml", //base_system
874                "telephony-common", // libs from TeleService
875                "voip-common", // base_system
876            ] + select(soong_config_variable("ANDROID", "release_crashrecovery_module"), {
877                "true": [
878                    "com.android.crashrecovery", // base_system (RELEASE_CRASHRECOVERY_MODULE)
879                ],
880                default: [
881                    "framework-platformcrashrecovery", // base_system
882                ],
883            }) + select(release_flag("RELEASE_ONDEVICE_INTELLIGENCE_MODULE"), {
884                true: [
885                    "com.android.neuralnetworks", // base_system (RELEASE_ONDEVICE_INTELLIGENCE_MODULE)
886                ],
887                default: [
888                    "framework-ondeviceintelligence-platform", // base_system
889                ],
890            }) + select(soong_config_variable("ANDROID", "release_package_profiling_module"), {
891                "true": [
892                    "com.android.profiling", // base_system (RELEASE_PACKAGE_PROFILING_MODULE)
893                ],
894                default: [],
895            }) + select(release_flag("RELEASE_MOVE_VCN_TO_MAINLINE"), {
896                true: [],
897                default: [
898                    "framework-connectivity-b", // base_system
899                ],
900            }) + select(release_flag("RELEASE_UPROBESTATS_MODULE"), {
901                true: [
902                    "com.android.uprobestats", // base_system (RELEASE_UPROBESTATS_MODULE)
903                ],
904                default: [],
905            }),
906        },
907        prefer32: {
908            deps: [
909                "drmserver", // media_system
910                "mediaserver", // base_system
911            ],
912        },
913        lib64: {
914            deps: [
915                "android.system.virtualizationcommon-ndk",
916                "android.system.virtualizationservice-ndk",
917                "libgsi",
918                "servicemanager",
919            ],
920        },
921        both: {
922            deps: [
923                "android.hardware.biometrics.fingerprint@2.1", // generic_system
924                "android.hardware.radio.config@1.0", // generic_system
925                "android.hardware.radio.deprecated@1.0", // generic_system
926                "android.hardware.radio@1.0", // generic_system
927                "android.hardware.radio@1.1", // generic_system
928                "android.hardware.radio@1.2", // generic_system
929                "android.hardware.radio@1.3", // generic_system
930                "android.hardware.radio@1.4", // generic_system
931                "android.hardware.secure_element@1.0", // generic_system
932                "app_process", // base_system
933                "boringssl_self_test", // base_system
934                "heapprofd_client", // base_system
935                "libEGL", // base_system
936                "libEGL_angle", // base_system
937                "libETC1", // base_system
938                "libFFTEm", // base_system
939                "libGLESv1_CM", // base_system
940                "libGLESv1_CM_angle", // base_system
941                "libGLESv2", // base_system
942                "libGLESv2_angle", // base_system
943                "libGLESv3", // base_system
944                "libOpenMAXAL", // base_system
945                "libOpenSLES", // base_system
946                "libaaudio", // base_system
947                "libalarm_jni", // base_system
948                "libamidi", // base_system
949                "libandroid",
950                "libandroid_runtime",
951                "libandroid_servers",
952                "libandroidfw",
953                "libartpalette-system",
954                "libaudio-resampler", // generic-system
955                "libaudioeffect_jni",
956                "libaudiohal", // generic-system
957                "libaudiopolicyengineconfigurable", // generic-system
958                "libbinder",
959                "libbinder_ndk",
960                "libbinder_rpc_unstable",
961                "libcamera2ndk",
962                "libcgrouprc", // llndk library
963                "libclang_rt.asan",
964                "libcompiler_rt",
965                "libcutils", // used by many libs
966                "libdmabufheap", // used by many libs
967                "libdrm", // used by many libs // generic_system
968                "libdrmframework", // base_system
969                "libdrmframework_jni", // base_system
970                "libfdtrack", // base_system
971                "libfilterfw", // base_system
972                "libfilterpack_imageproc", // media_system
973                "libfwdlockengine", // generic_system
974                "libgatekeeper", // base_system
975                "libgui", // base_system
976                "libhardware", // base_system
977                "libhardware_legacy", // base_system
978                "libhidltransport", // generic_system
979                "libhwbinder", // generic_system
980                "libinput", // base_system
981                "libinputflinger", // base_system
982                "libiprouteutil", // base_system
983                "libjnigraphics", // base_system
984                "libjpeg", // base_system
985                "liblog", // base_system
986                "liblogwrap", // generic_system
987                "liblz4", // generic_system
988                "libmedia", // base_system
989                "libmedia_jni", // base_system
990                "libmediandk", // base_system
991                "libminui", // generic_system
992                "libmonkey_jni", // base_system - internal
993                "libmtp", // base_system
994                "libnetd_client", // base_system
995                "libnetlink", // base_system
996                "libnetutils", // base_system
997                "libneuralnetworks_packageinfo", // base_system
998                "libnl", // generic_system
999                "libpdfium", // base_system
1000                "libpolicy-subsystem", // generic_system
1001                "libpower", // base_system
1002                "libpowermanager", // base_system
1003                "libprotobuf-cpp-full", // generic_system
1004                "libradio_metadata", // base_system
1005                "librs_jni", // handheld_system
1006                "librtp_jni", // base_system
1007                "libsensorservice", // base_system
1008                "libsfplugin_ccodec", // base_system
1009                "libskia", // base_system
1010                "libsonic", // base_system
1011                "libsonivox", // base_system
1012                "libsoundpool", // base_system
1013                "libspeexresampler", // base_system
1014                "libsqlite", // base_system
1015                "libstagefright", // base_system
1016                "libstagefright_foundation", // base_system
1017                "libstagefright_omx", // base_system
1018                "libstdc++", // base_system
1019                "libsysutils", // base_system
1020                "libui", // base_system
1021                "libusbhost", // base_system
1022                "libutils", // base_system
1023                "libvendorsupport", // llndk library
1024                "libvintf_jni", // base_system
1025                "libvulkan", // base_system
1026                "libwebviewchromium_loader", // media_system
1027                "libwebviewchromium_plat_support", // media_system
1028                "libwilhelm", // base_system
1029                "linker", // base_system
1030            ] + select(soong_config_variable("ANDROID", "TARGET_DYNAMIC_64_32_DRMSERVER"), {
1031                "true": ["drmserver"],
1032                default: [],
1033            }) + select(soong_config_variable("ANDROID", "TARGET_DYNAMIC_64_32_MEDIASERVER"), {
1034                "true": ["mediaserver"],
1035                default: [],
1036            }) + select(release_flag("RELEASE_UPROBESTATS_MODULE"), {
1037                true: [],
1038                default: [
1039                    "libuprobestats_client", // base_system internal
1040                ],
1041            }),
1042        },
1043    },
1044    arch: {
1045        arm64: {
1046            deps: [
1047                "libclang_rt.hwasan",
1048                "libc_hwasan",
1049            ],
1050        },
1051    },
1052}
1053
1054android_system_image {
1055    name: "aosp_shared_system_image",
1056    defaults: ["system_image_defaults"],
1057    dirs: android_rootdirs,
1058    symlinks: android_symlinks,
1059    type: "erofs",
1060    erofs: {
1061        compressor: "lz4hc,9",
1062        compress_hints: "erofs_compress_hints.txt",
1063    },
1064    deps: [
1065        // DO NOT update this list. Instead, update the system_image_defaults to
1066        // sync with the base_system.mk
1067        "logpersist.start", // cf only
1068    ],
1069}
1070