replicant-vendor_replicant/config/common.mk
Matt Mower f416839b8a vendor: support custom unofficial build tags
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
2013-12-13 22:28:23 +00:00

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