PRODUCT_BRAND ?= replicant 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/replicant/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/replicant/prebuilt/common/bootanimation/halfres/$(TARGET_BOOTANIMATION_NAME).zip else PRODUCT_BOOTANIMATION := vendor/replicant/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 ifneq ($(TARGET_BUILD_VARIANT),user) # Thank you, please drive thru! PRODUCT_PROPERTY_OVERRIDES += persist.sys.dun.override=0 endif 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/replicant/CHANGELOG.mkdn:system/etc/CHANGELOG-CM.txt # Backup Tool ifneq ($(WITH_GMS),true) PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/bin/backuptool.sh:install/bin/backuptool.sh \ vendor/replicant/prebuilt/common/bin/backuptool.functions:install/bin/backuptool.functions \ vendor/replicant/prebuilt/common/bin/50-cm.sh:system/addon.d/50-cm.sh \ vendor/replicant/prebuilt/common/bin/blacklist:system/addon.d/blacklist endif # Signature compatibility validation PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/bin/otasigcheck.sh:install/bin/otasigcheck.sh # init.d support PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/etc/init.d/00banner:system/etc/init.d/00banner \ vendor/replicant/prebuilt/common/bin/sysinit:system/bin/sysinit ifneq ($(TARGET_BUILD_VARIANT),user) # userinit support PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/etc/init.d/90userinit:system/etc/init.d/90userinit endif # CM-specific init file PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/etc/init.local.rc:root/init.cm.rc # Copy over added mimetype supported in libcore.net.MimeUtils PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/lib/content-types.properties:system/lib/content-types.properties # Prebuilt apps PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/apps/FDroid.apk:system/app/FDroid.apk # 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/replicant/config/permissions/com.cyanogenmod.android.xml:system/etc/permissions/com.cyanogenmod.android.xml # Live lockscreen PRODUCT_COPY_FILES += \ vendor/replicant/config/permissions/org.cyanogenmod.livelockscreen.xml:system/etc/permissions/org.cyanogenmod.livelockscreen.xml # Theme engine include vendor/replicant/config/themes_common.mk # Required CM packages PRODUCT_PACKAGES += \ Development \ BluetoothExt \ Profiles # Optional CM packages PRODUCT_PACKAGES += \ libemoji \ Terminal # Include librsjni explicitly to workaround GMS issue PRODUCT_PACKAGES += \ librsjni # Custom packages PRODUCT_PACKAGES += \ Launcher3 \ Trebuchet \ AudioFX \ ReplicantWallpapers \ CMFileManager \ Eleven \ LockClock \ CMSettingsProvider \ ExactCalculator # CM Platform Library PRODUCT_PACKAGES += \ org.cyanogenmod.platform-res \ org.cyanogenmod.platform \ org.cyanogenmod.platform.xml # CM Hardware Abstraction Framework PRODUCT_PACKAGES += \ org.cyanogenmod.hardware \ org.cyanogenmod.hardware.xml # Extra tools in CM PRODUCT_PACKAGES += \ libsepol \ mke2fs \ tune2fs \ nano \ htop \ mkfs.ntfs \ fsck.ntfs \ mount.ntfs \ gdbserver \ micro_bench \ oprofiled \ sqlite3 \ strace \ pigz WITH_EXFAT ?= true ifeq ($(WITH_EXFAT),true) TARGET_USES_EXFAT := true PRODUCT_PACKAGES += \ mount.exfat \ fsck.exfat \ mkfs.exfat endif # Openssh PRODUCT_PACKAGES += \ scp \ sftp \ ssh \ sshd \ sshd_config \ ssh-keygen \ start-ssh # rsync PRODUCT_PACKAGES += \ rsync # Stagefright FFMPEG plugin PRODUCT_PACKAGES += \ libffmpeg_extractor \ libffmpeg_omx \ media_codecs_ffmpeg.xml PRODUCT_PROPERTY_OVERRIDES += \ media.sf.omx-plugin=libffmpeg_omx.so \ media.sf.extractor-plugin=libffmpeg_extractor.so # These packages are excluded from user builds ifneq ($(TARGET_BUILD_VARIANT),user) PRODUCT_PACKAGES += \ procmem \ procrank \ su endif PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.root_access=0 PRODUCT_PACKAGE_OVERLAYS += vendor/replicant/overlay/common ifeq ($(USE_OPENGL_RENDERER),true) PRODUCT_PACKAGE_OVERLAYS += vendor/replicant/overlay/opengl else BOARD_EGL_CFG := vendor/replicant/prebuilt/softwaregl/configs/egl.cfg PRODUCT_PROPERTY_OVERRIDES += ro.softwaregl=1 PRODUCT_PACKAGE_OVERLAYS += vendor/replicant/overlay/softwaregl endif PRODUCT_VERSION_MAJOR = 6 PRODUCT_VERSION_MINOR = 0 PRODUCT_VERSION_MAINTENANCE = 1 REPLICANT_VERSION := "replicant-6.0" PRODUCT_PROPERTY_OVERRIDES += \ ro.cm.version=$(REPLICANT_VERSION) \ ro.modversion=$(REPLICANT_VERSION) -include vendor/cm-priv/keys/keys.mk CM_VERSION := $(REPLICANT_VERSION) CM_DISPLAY_VERSION := $(REPLICANT_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 ifndef CM_PLATFORM_SDK_VERSION # This is the canonical definition of the SDK version, which defines # the set of APIs and functionality available in the platform. It # is a single integer that increases monotonically as updates to # the SDK are released. It should only be incremented when the APIs for # the new release are frozen (so that developers don't write apps against # intermediate builds). CM_PLATFORM_SDK_VERSION := 5 endif ifndef CM_PLATFORM_REV # For internal SDK revisions that are hotfixed/patched # Reset after each CM_PLATFORM_SDK_VERSION release # If you are doing a release and this is NOT 0, you are almost certainly doing it wrong CM_PLATFORM_REV := 0 endif PRODUCT_PROPERTY_OVERRIDES += \ ro.cm.display.version=$(CM_DISPLAY_VERSION) # CyanogenMod Platform SDK Version PRODUCT_PROPERTY_OVERRIDES += \ ro.cm.build.version.plat.sdk=$(CM_PLATFORM_SDK_VERSION) # CyanogenMod Platform Internal PRODUCT_PROPERTY_OVERRIDES += \ ro.cm.build.version.plat.rev=$(CM_PLATFORM_REV) -include $(WORKSPACE)/build_env/image-auto-bits.mk -include vendor/cyngn/product.mk $(call prepend-product-if-exists, vendor/extra/product.mk)