kernel: Add support for module aliases

* On devices using vendor_overlay it could be useful
  to be able to re-name the installed modules to
  match the ones in vendor
  -> An example is QCOM techpack where default module
     name in kernel doesn't match installed module
     name

Change-Id: If9458bca06218aeb8c91283057c083d909bf5104
diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk
index cdcff80..386bca1 100644
--- a/build/tasks/kernel.mk
+++ b/build/tasks/kernel.mk
@@ -268,7 +268,11 @@
 			echo "Installing Kernel Modules"; \
 			$(call make-kernel-target,INSTALL_MOD_PATH=$(MODULES_INTERMEDIATES) INSTALL_MOD_STRIP=1 modules_install); \
 			kernel_release=$$(cat $(KERNEL_RELEASE)) \
-			modules=$$(find $(MODULES_INTERMEDIATES)/lib/modules/$$kernel_release -type f -name '*.ko'); \
+			kernel_modules_dir=$(MODULES_INTERMEDIATES)/lib/modules/$$kernel_release \
+			$(foreach s, $(TARGET_MODULE_ALIASES),\
+				$(eval p := $(subst :,$(space),$(s))) \
+				; mv $$(find $$kernel_modules_dir -name $(word 1,$(p))) $$kernel_modules_dir/$(word 2,$(p))); \
+			modules=$$(find $$kernel_modules_dir -type f -name '*.ko'); \
 			($(call build-image-kernel-modules,$$modules,$(KERNEL_MODULES_OUT),$(KERNEL_MODULE_MOUNTPOINT)/,$(KERNEL_DEPMOD_STAGING_DIR))); \
 		fi