replicant-vendor_replicant/config/common.mk

346 lines
10 KiB
Makefile
Raw Normal View History

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)))
ifeq ($(TARGET_BOOTANIMATION_HALF_RES),true)
PRODUCT_BOOTANIMATION := vendor/cm/prebuilt/common/bootanimation/halfres/$(TARGET_BOOTANIMATION_NAME).zip
else
PRODUCT_BOOTANIMATION := vendor/cm/prebuilt/common/bootanimation/$(TARGET_BOOTANIMATION_NAME).zip
endif
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
# Thank you, please drive thru!
PRODUCT_PROPERTY_OVERRIDES += persist.sys.dun.override=0
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
Modular backuptool.sh. Executes backup and restore methods defined in arbitrary /system/addon.d/*.sh scripts. Tips & Tricks ============= * 50-cm.sh contains only a reference implementation. You may customize the methods however you wish. For example, 20-foobar.sh pre-backup can use a loop with conditionals to generate a dynamic backup list in /tmp/foobar_file_list which is later printed by list_files() so the backup method will act on those files. * Optional methods pre-backup, post-backup, pre-restore, or post-restore may be defined for special purposes. * Inject new files into /tmp/addon.d/ prior to backuptool.sh backup if you want to act during the current CM upgrade. * Delete files from /tmp/addon.d/ during post-restore if you want to permanently remove files from /system/addon.d/ Addons may use this approach to run a script only once. * Scripts run in sort -n order. Prefix with numbers 00 through 99 if want to run in a particular order. * You can have two separate scripts, implementing only backup in one, and only restore in the other with a different number prefix of each. This allows even greater control the backup/restore order even further. * You could use pre-backup to generate a one-time use backup script in /tmp/addon.d/ that deletes itself in post-restore. Patch Series ============ http://review.cyanogenmod.com/#change,13265 CyanogenMod/android_build * edify generator http://review.cyanogenmod.com/#change,13266 CyanogenMod/android_system_core * permissions on /system/addon.d http://review.cyanogenmod.com/#change,13267 CyanogenMod/android_vendor_cm * 50-cm.sh reference backup script * modular backuptool.sh * support backuptool.functions used by /system/addon.d/*.sh scripts Change-Id: Ifd5eaf9dcfd68d92e5043c21d1bae1dc0ad54860
2012-03-04 08:37:42 +00:00
# Backup Tool
ifneq ($(WITH_GMS),true)
PRODUCT_COPY_FILES += \
Modular backuptool.sh. Executes backup and restore methods defined in arbitrary /system/addon.d/*.sh scripts. Tips & Tricks ============= * 50-cm.sh contains only a reference implementation. You may customize the methods however you wish. For example, 20-foobar.sh pre-backup can use a loop with conditionals to generate a dynamic backup list in /tmp/foobar_file_list which is later printed by list_files() so the backup method will act on those files. * Optional methods pre-backup, post-backup, pre-restore, or post-restore may be defined for special purposes. * Inject new files into /tmp/addon.d/ prior to backuptool.sh backup if you want to act during the current CM upgrade. * Delete files from /tmp/addon.d/ during post-restore if you want to permanently remove files from /system/addon.d/ Addons may use this approach to run a script only once. * Scripts run in sort -n order. Prefix with numbers 00 through 99 if want to run in a particular order. * You can have two separate scripts, implementing only backup in one, and only restore in the other with a different number prefix of each. This allows even greater control the backup/restore order even further. * You could use pre-backup to generate a one-time use backup script in /tmp/addon.d/ that deletes itself in post-restore. Patch Series ============ http://review.cyanogenmod.com/#change,13265 CyanogenMod/android_build * edify generator http://review.cyanogenmod.com/#change,13266 CyanogenMod/android_system_core * permissions on /system/addon.d http://review.cyanogenmod.com/#change,13267 CyanogenMod/android_vendor_cm * 50-cm.sh reference backup script * modular backuptool.sh * support backuptool.functions used by /system/addon.d/*.sh scripts Change-Id: Ifd5eaf9dcfd68d92e5043c21d1bae1dc0ad54860
2012-03-04 08:37:42 +00:00
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
# Signature compatibility validation
PRODUCT_COPY_FILES += \
vendor/cm/prebuilt/common/bin/otasigcheck.sh:system/bin/otasigcheck.sh
# 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
# CM-specific init file
PRODUCT_COPY_FILES += \
vendor/cm/prebuilt/common/etc/init.local.rc:root/init.cm.rc
# 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 \
Basic \
libemoji
2011-12-14 22:02:19 +00:00
# Custom CM packages
PRODUCT_PACKAGES += \
Launcher3 \
Trebuchet \
2011-12-14 22:02:19 +00:00
DSPManager \
libcyanogen-dsp \
audio_effects.conf \
CMWallpapers \
Apollo \
CMFileManager \
LockClock \
CMUpdater \
CMFota \
CMAccount \
CMHome
2011-12-14 22:02:19 +00:00
# CM Hardware Abstraction Framework
PRODUCT_PACKAGES += \
org.cyanogenmod.hardware \
org.cyanogenmod.hardware.xml
# Extra tools in CM
PRODUCT_PACKAGES += \
libsepol \
openvpn \
e2fsck \
mke2fs \
tune2fs \
bash \
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
# Stagefright FFMPEG plugin
PRODUCT_PACKAGES += \
libstagefright_soft_ffmpegadec \
libstagefright_soft_ffmpegvdec \
libFFmpegExtractor \
libnamparser
# 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/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.cm.releasetype=$(CM_BUILDTYPE) \
ro.modversion=$(CM_VERSION) \
ro.cmlegal.url=http://www.cyanogenmod.org/docs/privacy
-include vendor/cm-priv/keys/keys.mk
CM_DISPLAY_VERSION := $(CM_VERSION)
ifneq ($(PRODUCT_DEFAULT_DEV_CERTIFICATE),)
ifneq ($(PRODUCT_DEFAULT_DEV_CERTIFICATE),build/target/product/security/testkey)
ifneq ($(CM_BUILDTYPE), UNOFFICIAL)
ifndef TARGET_VENDOR_RELEASE_BUILD_ID
ifneq ($(CM_EXTRAVERSION),)
# Remove leading dash from CM_EXTRAVERSION
CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
TARGET_VENDOR_RELEASE_BUILD_ID := $(CM_EXTRAVERSION)
else
TARGET_VENDOR_RELEASE_BUILD_ID := $(shell date -u +%Y%m%d)
endif
else
TARGET_VENDOR_RELEASE_BUILD_ID := $(TARGET_VENDOR_RELEASE_BUILD_ID)
endif
CM_DISPLAY_VERSION=$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_VENDOR_RELEASE_BUILD_ID)
endif
endif
endif
# by default, do not update the recovery with system updates
PRODUCT_PROPERTY_OVERRIDES += persist.sys.recovery_update=false
PRODUCT_PROPERTY_OVERRIDES += \
ro.cm.display.version=$(CM_DISPLAY_VERSION)
# disable multithreaded dextop for RELEASE and SNAPSHOT builds
ifneq ($(filter RELEASE SNAPSHOT,$(CM_BUILDTYPE)),)
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.dalvik.multithread=false
endif
-include $(WORKSPACE)/build_env/image-auto-bits.mk
-include vendor/cyngn/product.mk