f416839b8a
By defining TARGET_UNOFFICIAL_BUILD_ID in a device's cm.mk, users can build custom CM builds with their own identifier in place. This adheres to CM's policy that unofficial builds must be marked as such, as both the filename and internal version will still contain the word UNOFFICIAL. Example: TARGET_UNOFFICIAL_BUILD_ID := CatEater01 results in cm-11-20131211-UNOFFICIAL-CatEater01-device(.zip) Change-Id: I61acdf4698a7fe2b35d3d5315be4b444b1b97987
308 lines
8.6 KiB
Makefile
308 lines
8.6 KiB
Makefile
PRODUCT_BRAND ?= cyanogenmod
|
|
|
|
SUPERUSER_EMBEDDED := true
|
|
SUPERUSER_PACKAGE_PREFIX := com.android.settings.cyanogenmod.superuser
|
|
|
|
ifneq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space))
|
|
# determine the smaller dimension
|
|
TARGET_BOOTANIMATION_SIZE := $(shell \
|
|
if [ $(TARGET_SCREEN_WIDTH) -lt $(TARGET_SCREEN_HEIGHT) ]; then \
|
|
echo $(TARGET_SCREEN_WIDTH); \
|
|
else \
|
|
echo $(TARGET_SCREEN_HEIGHT); \
|
|
fi )
|
|
|
|
# get a sorted list of the sizes
|
|
bootanimation_sizes := $(subst .zip,, $(shell ls vendor/cm/prebuilt/common/bootanimation))
|
|
bootanimation_sizes := $(shell echo -e $(subst $(space),'\n',$(bootanimation_sizes)) | sort -rn)
|
|
|
|
# find the appropriate size and set
|
|
define check_and_set_bootanimation
|
|
$(eval TARGET_BOOTANIMATION_NAME := $(shell \
|
|
if [ -z "$(TARGET_BOOTANIMATION_NAME)" ]; then
|
|
if [ $(1) -le $(TARGET_BOOTANIMATION_SIZE) ]; then \
|
|
echo $(1); \
|
|
exit 0; \
|
|
fi;
|
|
fi;
|
|
echo $(TARGET_BOOTANIMATION_NAME); ))
|
|
endef
|
|
$(foreach size,$(bootanimation_sizes), $(call check_and_set_bootanimation,$(size)))
|
|
|
|
PRODUCT_BOOTANIMATION := vendor/cm/prebuilt/common/bootanimation/$(TARGET_BOOTANIMATION_NAME).zip
|
|
endif
|
|
|
|
ifdef CM_NIGHTLY
|
|
PRODUCT_PROPERTY_OVERRIDES += \
|
|
ro.rommanager.developerid=cyanogenmodnightly
|
|
else
|
|
PRODUCT_PROPERTY_OVERRIDES += \
|
|
ro.rommanager.developerid=cyanogenmod
|
|
endif
|
|
|
|
PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0
|
|
|
|
ifeq ($(PRODUCT_GMS_CLIENTID_BASE),)
|
|
PRODUCT_PROPERTY_OVERRIDES += \
|
|
ro.com.google.clientidbase=android-google
|
|
else
|
|
PRODUCT_PROPERTY_OVERRIDES += \
|
|
ro.com.google.clientidbase=$(PRODUCT_GMS_CLIENTID_BASE)
|
|
endif
|
|
|
|
PRODUCT_PROPERTY_OVERRIDES += \
|
|
keyguard.no_require_sim=true \
|
|
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html \
|
|
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html \
|
|
ro.com.android.wifi-watchlist=GoogleGuest \
|
|
ro.setupwizard.enterprise_mode=1 \
|
|
ro.com.android.dateformat=MM-dd-yyyy \
|
|
ro.com.android.dataroaming=false
|
|
|
|
PRODUCT_PROPERTY_OVERRIDES += \
|
|
ro.build.selinux=1
|
|
|
|
ifneq ($(TARGET_BUILD_VARIANT),eng)
|
|
# Enable ADB authentication
|
|
ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1
|
|
endif
|
|
|
|
# Copy over the changelog to the device
|
|
PRODUCT_COPY_FILES += \
|
|
vendor/cm/CHANGELOG.mkdn:system/etc/CHANGELOG-CM.txt
|
|
|
|
# Backup Tool
|
|
ifneq ($(WITH_GMS),true)
|
|
PRODUCT_COPY_FILES += \
|
|
vendor/cm/prebuilt/common/bin/backuptool.sh:system/bin/backuptool.sh \
|
|
vendor/cm/prebuilt/common/bin/backuptool.functions:system/bin/backuptool.functions \
|
|
vendor/cm/prebuilt/common/bin/50-cm.sh:system/addon.d/50-cm.sh \
|
|
vendor/cm/prebuilt/common/bin/blacklist:system/addon.d/blacklist
|
|
endif
|
|
|
|
# init.d support
|
|
PRODUCT_COPY_FILES += \
|
|
vendor/cm/prebuilt/common/etc/init.d/00banner:system/etc/init.d/00banner \
|
|
vendor/cm/prebuilt/common/bin/sysinit:system/bin/sysinit
|
|
|
|
# userinit support
|
|
PRODUCT_COPY_FILES += \
|
|
vendor/cm/prebuilt/common/etc/init.d/90userinit:system/etc/init.d/90userinit
|
|
|
|
# SELinux filesystem labels
|
|
PRODUCT_COPY_FILES += \
|
|
vendor/cm/prebuilt/common/etc/init.d/50selinuxrelabel:system/etc/init.d/50selinuxrelabel
|
|
|
|
# CM-specific init file
|
|
PRODUCT_COPY_FILES += \
|
|
vendor/cm/prebuilt/common/etc/init.local.rc:root/init.cm.rc
|
|
|
|
# Compcache/Zram support
|
|
PRODUCT_COPY_FILES += \
|
|
vendor/cm/prebuilt/common/bin/compcache:system/bin/compcache \
|
|
vendor/cm/prebuilt/common/bin/handle_compcache:system/bin/handle_compcache
|
|
|
|
# Bring in camera effects
|
|
PRODUCT_COPY_FILES += \
|
|
vendor/cm/prebuilt/common/media/LMprec_508.emd:system/media/LMprec_508.emd \
|
|
vendor/cm/prebuilt/common/media/PFFprec_600.emd:system/media/PFFprec_600.emd
|
|
|
|
# Enable SIP+VoIP on all targets
|
|
PRODUCT_COPY_FILES += \
|
|
frameworks/native/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml
|
|
|
|
# Enable wireless Xbox 360 controller support
|
|
PRODUCT_COPY_FILES += \
|
|
frameworks/base/data/keyboards/Vendor_045e_Product_028e.kl:system/usr/keylayout/Vendor_045e_Product_0719.kl
|
|
|
|
# This is CM!
|
|
PRODUCT_COPY_FILES += \
|
|
vendor/cm/config/permissions/com.cyanogenmod.android.xml:system/etc/permissions/com.cyanogenmod.android.xml
|
|
|
|
# T-Mobile theme engine
|
|
include vendor/cm/config/themes_common.mk
|
|
|
|
# Required CM packages
|
|
PRODUCT_PACKAGES += \
|
|
Development \
|
|
LatinIME \
|
|
BluetoothExt
|
|
|
|
# Optional CM packages
|
|
PRODUCT_PACKAGES += \
|
|
VoicePlus \
|
|
VoiceDialer \
|
|
SoundRecorder \
|
|
Basic \
|
|
libemoji
|
|
|
|
# Custom CM packages
|
|
#Trebuchet \
|
|
|
|
PRODUCT_PACKAGES += \
|
|
Launcher3 \
|
|
DSPManager \
|
|
libcyanogen-dsp \
|
|
audio_effects.conf \
|
|
CMWallpapers \
|
|
Apollo \
|
|
CMFileManager \
|
|
LockClock \
|
|
CMUpdater \
|
|
CMFota \
|
|
CMAccount
|
|
|
|
# CM Hardware Abstraction Framework
|
|
PRODUCT_PACKAGES += \
|
|
org.cyanogenmod.hardware \
|
|
org.cyanogenmod.hardware.xml
|
|
|
|
PRODUCT_PACKAGES += \
|
|
CellBroadcastReceiver
|
|
|
|
# Extra tools in CM
|
|
PRODUCT_PACKAGES += \
|
|
openvpn \
|
|
e2fsck \
|
|
mke2fs \
|
|
tune2fs \
|
|
bash \
|
|
vim \
|
|
nano \
|
|
htop \
|
|
powertop \
|
|
lsof \
|
|
mount.exfat \
|
|
fsck.exfat \
|
|
mkfs.exfat \
|
|
ntfsfix \
|
|
ntfs-3g \
|
|
gdbserver \
|
|
micro_bench \
|
|
oprofiled \
|
|
sqlite3 \
|
|
strace
|
|
|
|
# Openssh
|
|
PRODUCT_PACKAGES += \
|
|
scp \
|
|
sftp \
|
|
ssh \
|
|
sshd \
|
|
sshd_config \
|
|
ssh-keygen \
|
|
start-ssh
|
|
|
|
# rsync
|
|
PRODUCT_PACKAGES += \
|
|
rsync
|
|
|
|
# These packages are excluded from user builds
|
|
ifneq ($(TARGET_BUILD_VARIANT),user)
|
|
|
|
PRODUCT_PACKAGES += \
|
|
procmem \
|
|
procrank \
|
|
Superuser \
|
|
su
|
|
|
|
# Terminal Emulator
|
|
PRODUCT_COPY_FILES += \
|
|
vendor/cm/proprietary/Term.apk:system/app/Term.apk \
|
|
vendor/cm/proprietary/lib/armeabi/libjackpal-androidterm4.so:system/lib/libjackpal-androidterm4.so
|
|
|
|
PRODUCT_PROPERTY_OVERRIDES += \
|
|
persist.sys.root_access=1
|
|
else
|
|
|
|
PRODUCT_PROPERTY_OVERRIDES += \
|
|
persist.sys.root_access=0
|
|
|
|
endif
|
|
|
|
# easy way to extend to add more packages
|
|
-include vendor/extra/product.mk
|
|
|
|
PRODUCT_PACKAGE_OVERLAYS += vendor/cm/overlay/dictionaries
|
|
PRODUCT_PACKAGE_OVERLAYS += vendor/cm/overlay/common
|
|
|
|
PRODUCT_VERSION_MAJOR = 11
|
|
PRODUCT_VERSION_MINOR = 0
|
|
PRODUCT_VERSION_MAINTENANCE = 0-RC0
|
|
|
|
# Set CM_BUILDTYPE from the env RELEASE_TYPE, for jenkins compat
|
|
|
|
ifndef CM_BUILDTYPE
|
|
ifdef RELEASE_TYPE
|
|
# Starting with "CM_" is optional
|
|
RELEASE_TYPE := $(shell echo $(RELEASE_TYPE) | sed -e 's|^CM_||g')
|
|
CM_BUILDTYPE := $(RELEASE_TYPE)
|
|
endif
|
|
endif
|
|
|
|
# Filter out random types, so it'll reset to UNOFFICIAL
|
|
ifeq ($(filter RELEASE NIGHTLY SNAPSHOT EXPERIMENTAL,$(CM_BUILDTYPE)),)
|
|
CM_BUILDTYPE :=
|
|
endif
|
|
|
|
ifdef CM_BUILDTYPE
|
|
ifneq ($(CM_BUILDTYPE), SNAPSHOT)
|
|
ifdef CM_EXTRAVERSION
|
|
# Force build type to EXPERIMENTAL
|
|
CM_BUILDTYPE := EXPERIMENTAL
|
|
# Remove leading dash from CM_EXTRAVERSION
|
|
CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
|
|
# Add leading dash to CM_EXTRAVERSION
|
|
CM_EXTRAVERSION := -$(CM_EXTRAVERSION)
|
|
endif
|
|
else
|
|
ifndef CM_EXTRAVERSION
|
|
# Force build type to EXPERIMENTAL, SNAPSHOT mandates a tag
|
|
CM_BUILDTYPE := EXPERIMENTAL
|
|
else
|
|
# Remove leading dash from CM_EXTRAVERSION
|
|
CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
|
|
# Add leading dash to CM_EXTRAVERSION
|
|
CM_EXTRAVERSION := -$(CM_EXTRAVERSION)
|
|
endif
|
|
endif
|
|
else
|
|
# If CM_BUILDTYPE is not defined, set to UNOFFICIAL
|
|
CM_BUILDTYPE := UNOFFICIAL
|
|
CM_EXTRAVERSION :=
|
|
endif
|
|
|
|
ifeq ($(CM_BUILDTYPE), UNOFFICIAL)
|
|
ifneq ($(TARGET_UNOFFICIAL_BUILD_ID),)
|
|
CM_EXTRAVERSION := "-$(TARGET_UNOFFICIAL_BUILD_ID)"
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(CM_BUILDTYPE), RELEASE)
|
|
ifndef TARGET_VENDOR_RELEASE_BUILD_ID
|
|
CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(PRODUCT_VERSION_MAINTENANCE)$(PRODUCT_VERSION_DEVICE_SPECIFIC)-$(CM_BUILD)
|
|
else
|
|
ifeq ($(TARGET_BUILD_VARIANT),user)
|
|
CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_VENDOR_RELEASE_BUILD_ID)-$(CM_BUILD)
|
|
else
|
|
CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(PRODUCT_VERSION_MAINTENANCE)$(PRODUCT_VERSION_DEVICE_SPECIFIC)-$(CM_BUILD)
|
|
endif
|
|
endif
|
|
else
|
|
ifeq ($(PRODUCT_VERSION_MINOR),0)
|
|
CM_VERSION := $(PRODUCT_VERSION_MAJOR)-$(shell date -u +%Y%m%d)-$(CM_BUILDTYPE)$(CM_EXTRAVERSION)-$(CM_BUILD)
|
|
else
|
|
CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(shell date -u +%Y%m%d)-$(CM_BUILDTYPE)$(CM_EXTRAVERSION)-$(CM_BUILD)
|
|
endif
|
|
endif
|
|
|
|
PRODUCT_PROPERTY_OVERRIDES += \
|
|
ro.cm.version=$(CM_VERSION) \
|
|
ro.modversion=$(CM_VERSION)
|
|
|
|
-include vendor/cm-priv/keys/keys.mk
|
|
|
|
-include $(WORKSPACE)/hudson/image-auto-bits.mk
|
|
|
|
-include vendor/cyngn/product.mk
|