手把手教你深度定制tiny4412安卓5.0系统(一)---开发板如何预置文件到android系统

http://blog.****.net/morixinguan/article/details/70467973

想要预置文件,首先要了解Android源码中device这个目,打开这个目录我们看到,这个目录厂家会针对不同的开发板做一些修改:

手把手教你深度定制tiny4412安卓5.0系统(一)---开发板如何预置文件到android系统

在这个目录中,我们看到有不同的厂家定制的信息,我们这款开发板是友善之壁提供的,那么我们只要进入friend-arm这个目录下就可以了,进到这个目录,看到tiny4412,我们切换进入看到:

手把手教你深度定制tiny4412安卓5.0系统(一)---开发板如何预置文件到android系统

要预置相关的文件,前面有一篇文章专门讲过怎么预置,一般是在device.mk中进行,但是平台不同,供应商会整合到其它地方:

文章如下,下面我们将参考这篇文章进行预置。

http://blog.****.net/morixinguan/article/details/70170641

我们打开当前的device.mk看下:

[plain] view plain copy
 print?
  1. $(call inherit-product, device/friendly-arm/tiny4412/device_base.mk)  
  2. $(call inherit-product-if-exists, hardware/samsung_slsi/exynos4/exynos4.mk)  
  3.   
  4. # See comment at the top of this file. This is where the other  
  5. # half of the device-specific product definition file takes care  
  6. # of the aspects that require proprietary drivers that aren't  
  7. # commonly available  
  8. $(call inherit-product-if-exists, vendor/friendly-arm/tiny4412/device-tiny4412.mk)  
我们看到,这个脚本包含了vendor/friendly-arm/tiny4412/device-tiny4412.mk。

于是我们切换到Android源码根目录,找到这个文件,打开:

[plain] view plain copy
 print?
  1. VENDOR_PATH := vendor/friendly-arm/tiny4412  
  2.   
  3. # Mali  
  4. PRODUCT_PACKAGES += \  
  5.         libEGL_mali \  
  6.         libGLESv1_CM_mali \  
  7.         libGLESv2_mali \  
  8.         libMali \  
  9.         libUMP  
  10.   
  11. # gralloc, ion  
  12. PRODUCT_PACKAGES += \  
  13.         libsecion \  
  14.         gralloc.tiny4412  
  15.   
  16. # hwcomposer  
  17. PRODUCT_PACKAGES += \  
  18.         hwcomposer.exynos4  
  19.   
  20. # HDMI  
  21. PRODUCT_PACKAGES += \  
  22.         libTVOut \  
  23.         libhdmiclient \  
  24.         sechdmiservice  
  25.   
  26. # Misc other modules  
  27. PRODUCT_PACKAGES += \  
  28.         libnetcmdiface  
  29.   
  30. # Prebuilts  
  31. PRODUCT_PACKAGES += \  
  32.         prebuilt.firmware \  
  33.        prebuilt.kmodules \  
  34.         prebuilt.busybox \  
  35.         prebuilt.gapps \  
  36.         prebuilt.faapps  
  37.   
  38. # FriendlyARM Support  
  39. PRODUCT_COPY_FILES += \  
  40.         $(VENDOR_PATH)/proprietary/fa_codec_ctrl:system/vendor/bin/fa_codec_ctrl \  
  41.         $(VENDOR_PATH)/proprietary/sensors.tiny4412.so:system/lib/hw/sensors.tiny4412.so \  
  42.         $(VENDOR_PATH)/bootanimation/bootanimation.zip:system/media/bootanimation.zip  
  43.   
  44. ifeq ($(BOARD_USES_PWMLIGHTS),false)  
  45. PRODUCT_COPY_FILES += \  
  46.         $(VENDOR_PATH)/proprietary/lights.tiny4412.so:system/lib/hw/lights.tiny4412.so  
  47. endif  
  48.   
  49. PRODUCT_PROPERTY_OVERRIDES += \  
  50.         net.eth0.startonboot=1  
  51.   
  52. -include $(VENDOR_PATH)/wifi/config/config.mk  
有了前面的经验,我们知道,预知文件需要在上边的PRODUCT_COPY_FILES添加,我们可以把开机动画相关的文件预置进去:

比如上面我添加的这行:$(VENDOR_PATH)/bootanimation/bootanimation.zip:system/media/bootanimation.zip

bootanimation.zip这个文件是我自己添加的,bootanimation这个目录也是我在vendor/friendly-arm/tiny4412/这个目录下创建的,上面的$(VENDOR_PATH)就是一个环境变量,代表当前路径。

添加好之后重新编译Android系统就可以了,这些预置的文件会被自动拷贝的out目录下进行打包,一般会打包在system.img里。

以后,如果要预置文件到开发板,就可以在这里进行预置。