tree: 41efa48bb70581fe8b1c3b94d66a19300f5916a1
  1. allowlist
  2. allowlist_next
  3. Android.bp
  4. file_list_diff.py
  5. OWNERS
  6. README.md
tools/filelistdiff/README.md

Resolving System Image File List Differences

The Android build system uses the file_list_diff tool to ensure consistency between the lists of installed files in system images defined by Kati and Soong. This check is crucial when transitioning to Soong-defined system images. If the tool detects any discrepancies, the build will fail.

This document helps you understand and resolve the reported errors. There are two main types of errors: files present only in the Kati-defined image (PRODUCT_PACKAGES) and files present only in the Soong-defined image (Handwritten android_system_image module in Android.bp).

Understanding and Fixing Errors

Files from PRODUCT_PACKAGES that are missing in the Soong definition

This error indicates that certain system modules are included via PRODUCT_PACKAGES in your device's Makefiles (.mk files) but are not explicitly defined within the android_system_image module (or its dependencies) in Android.bp.

To resolve this:

  • Default System Modules: If the module is defined in a common system Makefile (like base_system.mk, generic_system.mk, etc.), ensure it's listed in the system_image_defaults module within build/make/target/product/generic/Android.bp.
  • Device-Specific Modules: For modules specific to your device, add them to the relevant android_system_image module defined in PRODUCT_SOONG_DEFINED_SYSTEM_IMAGE for your target.

Files in the Soong definition that are missing from PRODUCT_PACKAGES

This error means that certain system modules are present in the Soong-defined system image (specified by PRODUCT_SOONG_DEFINED_SYSTEM_IMAGE) but are not included in the PRODUCT_PACKAGES list for your target.

To resolve this:

  • Remove Incorrect Modules: If these modules shouldn't be part of the system image, remove them from the android_system_image module definition.
  • Add Missing Modules to Makefiles: If these modules are indeed required, add them to the appropriate .mk files, following the guidance in the previous section to ensure they are correctly included in both the Kati and Soong definitions.