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