手把手教你深度定制tiny4412安卓5.0系統(tǒng)(一)---開(kāi)發(fā)板如何預(yù)置文件到android系統(tǒng)
想要預(yù)置文件,首先要了解Android源碼中device這個(gè)目,打開(kāi)這個(gè)目錄我們看到,這個(gè)目錄廠家會(huì)針對(duì)不同,注意,以下的方式不適用于預(yù)置apk。
在這個(gè)目錄中,我們看到有不同的廠家定制的信息,我們這款開(kāi)發(fā)板是友善之壁提供的,那么我們只要進(jìn)入friend-arm這個(gè)目錄下就可以了,進(jìn)到這個(gè)目錄,看到tiny4412,我們切換進(jìn)入看到:
在這個(gè)目錄中,我們看到有不同的廠家定制的信息,我們這款開(kāi)發(fā)板是友善之壁提供的,那么我們只要進(jìn)入friend-arm這個(gè)目錄下就可以了,進(jìn)到這個(gè)目錄,看到tiny4412,我們切換進(jìn)入看到:
要預(yù)置相關(guān)的文件,前面有一篇文章專(zhuān)門(mén)講過(guò)怎么預(yù)置,一般是在device.mk中進(jìn)行,但是平臺(tái)不同,供應(yīng)商會(huì)整合到其它地方:
文章如下,下面我們將參考這篇文章進(jìn)行預(yù)置。
http://blog.csdn.NET/morixinguan/article/details/70170641
我們打開(kāi)當(dāng)前的device.mk看下:
$(call inherit-product, device/friendly-arm/tiny4412/device_base.mk)
$(call inherit-product-if-exists, hardware/samsung_slsi/exynos4/exynos4.mk)
# See comment at the top of this file. This is where the other
# half of the device-specific product definition file takes care
# of the aspects that require proprietary drivers that aren't
# commonly available
$(call inherit-product-if-exists, vendor/friendly-arm/tiny4412/device-tiny4412.mk)
我們看到,這個(gè)腳本包含了vendor/friendly-arm/tiny4412/device-tiny4412.mk。
于是我們切換到android源碼根目錄,找到這個(gè)文件,打開(kāi):VENDOR_PATH := vendor/friendly-arm/tiny4412
# Mali
PRODUCT_PACKAGES += \
libEGL_mali \
libGLESv1_CM_mali \
libGLESv2_mali \
libMali \
libUMP
# gralloc, ion
PRODUCT_PACKAGES += \
libsecion \
gralloc.tiny4412
# hwcomposer
PRODUCT_PACKAGES += \
hwcomposer.exynos4
# HDMI
PRODUCT_PACKAGES += \
libTVOut \
libhdmiclient \
sechdmiservice
# Misc other modules
PRODUCT_PACKAGES += \
libnetcmdiface
# Prebuilts
PRODUCT_PACKAGES += \
prebuilt.firmware \
prebuilt.kmodules \
prebuilt.busybox \
prebuilt.gapps \
prebuilt.faapps
# FriendlyARM Support
PRODUCT_COPY_FILES += \
$(VENDOR_PATH)/proprietary/fa_codec_ctrl:system/vendor/bin/fa_codec_ctrl \
$(VENDOR_PATH)/proprietary/sensors.tiny4412.so:system/lib/hw/sensors.tiny4412.so \
$(VENDOR_PATH)/bootanimation/bootanimation.zip:system/media/bootanimation.zip
ifeq ($(BOARD_USES_PWMLIGHTS),false)
PRODUCT_COPY_FILES += \
$(VENDOR_PATH)/proprietary/lights.tiny4412.so:system/lib/hw/lights.tiny4412.so
endif
PRODUCT_PROPERTY_OVERRIDES += \
net.eth0.startonboot=1
-include $(VENDOR_PATH)/wifi/config/config.mk
有了前面的經(jīng)驗(yàn),我們知道,預(yù)知文件需要在上邊的PRODUCT_COPY_FILES添加,我們可以把開(kāi)機(jī)動(dòng)畫(huà)相關(guān)的文件預(yù)置進(jìn)去:
比如上面我添加的這行:$(VENDOR_PATH)/bootanimation/bootanimation.zip:system/media/bootanimation.zip
bootanimation.zip這個(gè)文件是我自己添加的,bootanimation這個(gè)目錄也是我在vendor/friendly-arm/tiny4412/這個(gè)目錄下創(chuàng)建的,上面的$(VENDOR_PATH)就是一個(gè)環(huán)境變量,代表當(dāng)前路徑。
添加好之后重新編譯Android系統(tǒng)就可以了,這些預(yù)置的文件會(huì)被自動(dòng)拷貝的out目錄下進(jìn)行打包,一般會(huì)打包在system.img里。
以后,如果要預(yù)置文件到開(kāi)發(fā)板,就可以在這里進(jìn)行預(yù)置。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!