| # 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. |