In Android, LOCAL_OVERRIDES_PACKAGES
is a variable used in the Android makefile system (Android.mk files) for specifying which packages to override when building the Android Open Source Project (AOSP). This is typically used when you’re modifying or adding features to the AOSP and want to override specific packages without having to modify their original source code.
Here’s how you can use LOCAL_OVERRIDES_PACKAGES
with an example:
- Identify the Package to Override: First, identify the package you want to override. For example, let’s say you want to override the package
com.android.settings
. - Create or Modify Your Android.mk File: In your project’s Android.mk file, you’ll specify the
LOCAL_OVERRIDES_PACKAGES
variable along with the package(s) you want to override. If you’re creating a new package, you’ll create a new Android.mk file for it. If you’re modifying an existing one, you’ll modify the existing Android.mk file.
LOCAL_PATH := $(call my-dir)
# List of packages to override
LOCAL_OVERRIDES_PACKAGES := com.android.settings
include $(call all-subdir-makefiles)
- Define the Overrides: You’ll need to define the overrides in your own package. This typically involves creating a package with the same name as the package you’re overriding. For example, if you’re overriding
com.android.settings
, you’ll create a package structure likecom/android/settings
in your project. - Implement Your Modifications: Within your package, implement the modifications or additions you want to make to the original package. This could involve adding new functionalities, modifying existing ones, or simply tweaking configurations.
- Build Your Project: After making the necessary changes, build your project using the standard AOSP build commands (
make
ormmm
).
Here’s a simplified example to demonstrate:
Let’s say you want to override com.android.settings
to change the default behavior of a certain activity within the Settings app. You would:
- Specify
com.android.settings
inLOCAL_OVERRIDES_PACKAGES
in your Android.mk file. - Create a package structure
com/android/settings
in your project. - Implement the necessary changes within this package structure, perhaps by modifying existing Java files or adding new ones.
- Build your modified AOSP project.