Android项目客制化
關鍵編譯目錄
Makefile
build/core/Makefile
build/core/main.mk
build/core/config.mk
build/core/envsetup.mk
build/core/product_config.mk
device/*/$(TARGET_DEVICE)/BoardConfig.mk
build/core/definitions.mk
MODULES_DIR/Android.mk
自定義
mkdir device/mcpyname/mphone|mtvtable|mcar
進入目錄后(添加第一個腳本文件)
vim vendorsetup.sh
添加
add_lunch_combo projectname-user
add_lunch_combo projectname-userdebug
add_lunch_combo projectname-eng
add_lunch_combo 是build/envsetup.sh聲明的函數
添加的關鍵文件有 (根目錄下 device/mcpyname/mphone|mtvtable|mcar)
1.AndroidProducts.mk ( 設定PRODUCT_NAME,在source build/envsetup.sh,lunch后顯示PRODUCT_NAME )
2.AndroidBoard.mk
3.BoardConfig.mk
1.AndroidProducts.mk
include build/target/product/languages_full.mk
include build/target/product/full.mk
-------------- 對比新版本 --------------
PRODUCT_MAKEFILES := \
?? ?$(LOCAL_DIR)/mphone_64.mk
/device/qcom/mphone_64/system.prop (加載ro.hwui;persist等)
TARGET_SYSTEM_PROP := device/mcpyname/mphone_64/system.prop
1.1? build/target/product/full.mk
?? ?$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator.mk)
?? ?$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
?? ?$(call inherit-product, $(SRC_TARGET_DIR)/board/generic/device.mk)
?? ?PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true
?? ?PRODUCT_NAME := full
?? ?PRODUCT_DEVICE := generic
?? ?PRODUCT_BRAND := Android
?? ?PRODUCT_MODEL := AOSP on ARM Emulator
?? ?--------------------? general --------------------
?? ?$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
?? ?$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
?? ?PRODUCT_NAME := aosp_marlin
?? ?PRODUCT_DEVICE := marlin
?? ?PRODUCT_BRAND := Android
?? ?PRODUCT_MODEL := AOSP on msm8996
?? ?PRODUCT_MANUFACTURER := google
?? ?PRODUCT_RESTRICT_VENDOR_FILES := true
?? ?PRODUCT_COPY_FILES += device/google/marlin/fstab.common:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.marlin
?? ?$(call inherit-product, device/google/marlin/device-marlin.mk)
?? ?$(call inherit-product-if-exists, vendor/google_devices/marlin/device-vendor-marlin.mk)
?? ?PRODUCT_PACKAGES += \
?? ???? Launcher3QuickStep \
?? ???? WallpaperPicker
?? ?include build/target/product/languages_full.mk
?? ?PRODUCT_LOCALES 設置語言
?? ?引用 build/target/product/languages_default.mk
?
2.AndroidBoard.mk
2.1 device/mcpyname/(mphone|mtvtable|mcar)/AndroidBoard.mk
?? ?-TARGET_KERNEL_MAKE_ENV += HOSTCC=$(TEMP_TOP)/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc-version/bin/x86_64-linux-gcc
?? ?-include build/target/board/generic/AndroidBoard.mk
?? ?-include bootable/bootloader/edk2/AndroidBoot.mk 引用 AndroidBoot
?? ?--PREBUILT_PYTHON_PATH=$(ANDROID_TOP)/prebuilts/python/linux-x86/version/bin/python2
?? ?編譯bootable/bootloader/edk2/AndroidBoot.mk
?? ?系統默認的引用有:AndroidKernel.mk | system.prop
?? ?-include $(TARGET_KERNEL_SOURCE)/AndroidKernel.mk
?? ?-$(shell mkdir -p $(TARGET_OUT_VENDOR)/lib/dsp)
?? ?拷貝system.prop 添加到device/mcpyname/(mphone|mtvtable|mcar)/? 對prop進行客制化
2.2 BoardConfig.mk
?? ?參考build/target/board/generic_arm64/BoardConfig.mk | general | device/mcpyname/(mphone|mtvtable|mcar)/BoardConfig.mk
?? ?配置信息:arm64 | arm
?? ?TARGET_ARCH := arm64
?? ?TARGET_ARCH_VARIANT := armv8-a
?? ?TARGET_CPU_ABI := arm64-v8a
?? ?TARGET_CPU_ABI2 :=
?? ?TARGET_CPU_VARIANT := generic
?? ?TARGET_2ND_ARCH := arm
?? ?TARGET_2ND_ARCH_VARIANT := armv8-a
?? ?TARGET_2ND_CPU_ABI := armeabi-v7a
?? ?TARGET_2ND_CPU_ABI2 := armeabi
?? ?TARGET_2ND_CPU_VARIANT := cortex-a73
?? ?BOARD_ROOT_EXTRA_SYMLINKS += /vendor/lib/dsp:/dsp
?? ?BOARD_ROOT_EXTRA_SYMLINKS += /mnt/vendor/persist:/persist
?? ?BOARD_ROOT_EXTRA_SYMLINKS += /vendor/firmware_mnt:/firmware
?
?
總結
以上是生活随笔為你收集整理的Android项目客制化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第三章 Python Kivy 学习 -
- 下一篇: 线性代数张宇1000题 第六章 向量组