blob: 75075359e4ce92fe61418c82bde43a64d052ef0c [file] [log] [blame]
Ricardo Cerqueira6ed03ff2011-11-28 16:37:47 +00001PRODUCT_BRAND ?= cyanogenmod
2
Steve Kondikba1ca332012-08-21 02:18:40 -07003ifneq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space))
Steve Kondikba1ca332012-08-21 02:18:40 -07004# determine the smaller dimension
5TARGET_BOOTANIMATION_SIZE := $(shell \
6 if [ $(TARGET_SCREEN_WIDTH) -lt $(TARGET_SCREEN_HEIGHT) ]; then \
7 echo $(TARGET_SCREEN_WIDTH); \
8 else \
9 echo $(TARGET_SCREEN_HEIGHT); \
10 fi )
11
12# get a sorted list of the sizes
13bootanimation_sizes := $(subst .zip,, $(shell ls vendor/cm/prebuilt/common/bootanimation))
14bootanimation_sizes := $(shell echo -e $(subst $(space),'\n',$(bootanimation_sizes)) | sort -rn)
15
16# find the appropriate size and set
17define check_and_set_bootanimation
18$(eval TARGET_BOOTANIMATION_NAME := $(shell \
19 if [ -z "$(TARGET_BOOTANIMATION_NAME)" ]; then
20 if [ $(1) -le $(TARGET_BOOTANIMATION_SIZE) ]; then \
21 echo $(1); \
22 exit 0; \
23 fi;
24 fi;
25 echo $(TARGET_BOOTANIMATION_NAME); ))
26endef
27$(foreach size,$(bootanimation_sizes), $(call check_and_set_bootanimation,$(size)))
28
Steven Luo367e6482014-01-30 12:51:04 -080029ifeq ($(TARGET_BOOTANIMATION_HALF_RES),true)
30PRODUCT_BOOTANIMATION := vendor/cm/prebuilt/common/bootanimation/halfres/$(TARGET_BOOTANIMATION_NAME).zip
31else
William Roberts4256e662013-08-21 13:43:54 -070032PRODUCT_BOOTANIMATION := vendor/cm/prebuilt/common/bootanimation/$(TARGET_BOOTANIMATION_NAME).zip
Steve Kondika8945752012-03-14 00:10:33 -070033endif
Steven Luo367e6482014-01-30 12:51:04 -080034endif
Steve Kondika8945752012-03-14 00:10:33 -070035
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +000036ifdef CM_NIGHTLY
37PRODUCT_PROPERTY_OVERRIDES += \
38 ro.rommanager.developerid=cyanogenmodnightly
39else
40PRODUCT_PROPERTY_OVERRIDES += \
41 ro.rommanager.developerid=cyanogenmod
42endif
43
44PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0
45
Steve Kondik5a27f632013-11-06 13:55:11 -080046ifeq ($(PRODUCT_GMS_CLIENTID_BASE),)
47PRODUCT_PROPERTY_OVERRIDES += \
48 ro.com.google.clientidbase=android-google
49else
50PRODUCT_PROPERTY_OVERRIDES += \
51 ro.com.google.clientidbase=$(PRODUCT_GMS_CLIENTID_BASE)
52endif
53
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +000054PRODUCT_PROPERTY_OVERRIDES += \
55 keyguard.no_require_sim=true \
56 ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html \
57 ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html \
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +000058 ro.com.android.wifi-watchlist=GoogleGuest \
59 ro.setupwizard.enterprise_mode=1 \
60 ro.com.android.dateformat=MM-dd-yyyy \
61 ro.com.android.dataroaming=false
62
Ricardo Cerqueiraf3835632013-08-04 13:25:00 +010063PRODUCT_PROPERTY_OVERRIDES += \
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +010064 ro.build.selinux=1
Ricardo Cerqueiraf3835632013-08-04 13:25:00 +010065
Ricardo Cerqueiraed634842015-09-12 00:13:01 +010066ifneq ($(TARGET_BUILD_VARIANT),user)
Steve Kondike4f938c2014-02-04 22:59:01 -080067# Thank you, please drive thru!
68PRODUCT_PROPERTY_OVERRIDES += persist.sys.dun.override=0
Ricardo Cerqueiraed634842015-09-12 00:13:01 +010069endif
Steve Kondike4f938c2014-02-04 22:59:01 -080070
Chirayu Desai88401db2013-03-20 16:17:17 +053071ifneq ($(TARGET_BUILD_VARIANT),eng)
Chirayu Desai59df3632013-02-15 21:16:39 +053072# Enable ADB authentication
73ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1
Chirayu Desai88401db2013-03-20 16:17:17 +053074endif
Chirayu Desai59df3632013-02-15 21:16:39 +053075
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +000076# Copy over the changelog to the device
77PRODUCT_COPY_FILES += \
78 vendor/cm/CHANGELOG.mkdn:system/etc/CHANGELOG-CM.txt
79
Warren Togamib1637c82012-03-03 22:37:42 -100080# Backup Tool
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +000081PRODUCT_COPY_FILES += \
Tom Marshall65aff662014-12-12 11:56:04 -080082 vendor/cm/prebuilt/common/bin/backuptool.sh:install/bin/backuptool.sh \
83 vendor/cm/prebuilt/common/bin/backuptool.functions:install/bin/backuptool.functions \
Ricardo Cerqueira129989b2012-12-19 01:11:21 +000084 vendor/cm/prebuilt/common/bin/50-cm.sh:system/addon.d/50-cm.sh \
85 vendor/cm/prebuilt/common/bin/blacklist:system/addon.d/blacklist
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +000086
Abhisek Devkotaf1c5ab82016-07-06 15:18:29 -070087# Backup Services whitelist
88PRODUCT_COPY_FILES += \
89 vendor/cm/config/permissions/backup.xml:system/etc/sysconfig/backup.xml
90
Ricardo Cerqueiraaff5e542014-05-09 22:24:12 +010091# Signature compatibility validation
92PRODUCT_COPY_FILES += \
Tom Marshall65aff662014-12-12 11:56:04 -080093 vendor/cm/prebuilt/common/bin/otasigcheck.sh:install/bin/otasigcheck.sh
Ricardo Cerqueiraaff5e542014-05-09 22:24:12 +010094
Steve Kondik485527d2011-12-20 12:14:24 -080095# init.d support
96PRODUCT_COPY_FILES += \
97 vendor/cm/prebuilt/common/etc/init.d/00banner:system/etc/init.d/00banner \
98 vendor/cm/prebuilt/common/bin/sysinit:system/bin/sysinit
99
Ricardo Cerqueirafd6bfe72015-03-16 12:22:11 +0000100ifneq ($(TARGET_BUILD_VARIANT),user)
James Sullinseb7799c2012-04-05 20:18:18 -0500101# userinit support
102PRODUCT_COPY_FILES += \
103 vendor/cm/prebuilt/common/etc/init.d/90userinit:system/etc/init.d/90userinit
Ricardo Cerqueirafd6bfe72015-03-16 12:22:11 +0000104endif
James Sullinseb7799c2012-04-05 20:18:18 -0500105
Ricardo Cerqueira8f412cb2012-10-18 16:38:25 +0100106# CM-specific init file
107PRODUCT_COPY_FILES += \
108 vendor/cm/prebuilt/common/etc/init.local.rc:root/init.cm.rc
109
herriojr5d2c9982015-10-01 11:20:26 -0700110# Copy over added mimetype supported in libcore.net.MimeUtils
111PRODUCT_COPY_FILES += \
112 vendor/cm/prebuilt/common/lib/content-types.properties:system/lib/content-types.properties
113
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +0000114# Enable SIP+VoIP on all targets
115PRODUCT_COPY_FILES += \
Ricardo Cerqueira3ff9b6f2012-07-11 11:21:50 +0100116 frameworks/native/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +0000117
sleeplessninja918a7ea2013-01-30 14:45:20 -0600118# Enable wireless Xbox 360 controller support
119PRODUCT_COPY_FILES += \
120 frameworks/base/data/keyboards/Vendor_045e_Product_028e.kl:system/usr/keylayout/Vendor_045e_Product_0719.kl
121
Steve Kondike0c12da2012-03-25 17:21:32 -0700122# This is CM!
123PRODUCT_COPY_FILES += \
124 vendor/cm/config/permissions/com.cyanogenmod.android.xml:system/etc/permissions/com.cyanogenmod.android.xml
125
Michael Bestasc37028d2015-11-03 21:39:04 +0200126# Theme engine
Ricardo Cerqueira9f75d842012-05-04 10:15:56 +0100127include vendor/cm/config/themes_common.mk
128
Adnan Begovicf3610f52016-03-15 14:17:47 -0700129# CMSDK
130include vendor/cm/config/cmsdk_common.mk
131
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +0000132# Required CM packages
133PRODUCT_PACKAGES += \
Steve Kondike0c297d2011-12-20 16:16:01 -0800134 Development \
Roman Birg52f92f02015-04-20 18:20:59 -0700135 BluetoothExt \
136 Profiles
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +0000137
138# Optional CM packages
139PRODUCT_PACKAGES += \
Ricardo Cerqueira117984f2015-01-04 01:55:24 +0000140 libemoji \
141 Terminal
Koushik Dutta8387c322011-11-26 17:31:19 -0800142
Steve Kondikdac37852015-12-01 13:31:45 -0800143# Include librsjni explicitly to workaround GMS issue
144PRODUCT_PACKAGES += \
145 librsjni
146
Steve Kondik04a49412011-12-14 14:02:19 -0800147# Custom CM packages
148PRODUCT_PACKAGES += \
Ricardo Cerqueira50dda4c2013-11-05 15:26:20 +0000149 Launcher3 \
Michael Bestas8deec442013-12-13 04:54:49 +0200150 Trebuchet \
Steve Kondikc4f6b972014-12-09 13:29:29 -0800151 AudioFX \
Ricardo Cerqueira3dc43542012-05-25 04:31:26 +0400152 CMWallpapers \
DvTonderf0074032012-12-30 13:37:40 -0500153 CMFileManager \
Steve Kondikfd3b0e52014-12-09 13:01:09 -0800154 Eleven \
Giulio Cerverab6f18ff2013-08-20 12:53:56 +0200155 LockClock \
Ricardo Cerqueira178ca722013-11-13 21:16:33 +0000156 CMUpdater \
Michael Bestas344e4482015-09-26 00:58:10 +0300157 CyanogenSetupWizard \
Arne Coucheron3ae1edd2015-11-05 02:35:12 +0100158 CMSettingsProvider \
d34d2cf159c2016-03-08 09:12:04 -0800159 ExactCalculator \
Luis Vidal6d61d302016-03-21 10:18:29 -0700160 LiveLockScreenService \
luca020400f9dccd72016-05-10 20:04:18 +0200161 WeatherProvider \
d34d7454cd92016-06-07 15:39:13 -0700162 DataUsageProvider \
163 WallpaperPicker
Steve Kondik04a49412011-12-14 14:02:19 -0800164
Abhisek Devkotacf03e162016-03-14 12:45:43 -0800165# Exchange support
166PRODUCT_PACKAGES += \
167 Exchange2
168
Sebastian Schmidt7d5de0c2012-04-15 11:39:25 +0200169# Extra tools in CM
170PRODUCT_PACKAGES += \
Tanguy Pruvotac602b42013-11-24 13:05:59 +0100171 libsepol \
Steve Kondik08980282012-07-05 01:20:47 -0700172 mke2fs \
Steve Kondik1949eb52012-09-20 17:09:07 -0700173 tune2fs \
Steve Kondik1949eb52012-09-20 17:09:07 -0700174 nano \
175 htop \
Steve Kondik49852a72015-11-10 15:05:18 +0100176 mkfs.ntfs \
177 fsck.ntfs \
178 mount.ntfs \
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +0100179 gdbserver \
180 micro_bench \
181 oprofiled \
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +0100182 sqlite3 \
Steve Kondik243e70b2015-11-14 21:04:48 +0100183 strace \
184 pigz
Sebastian Schmidt7d5de0c2012-04-15 11:39:25 +0200185
Scott Mertz2911a0e2015-11-09 11:35:41 -0800186WITH_EXFAT ?= true
187ifeq ($(WITH_EXFAT),true)
188TARGET_USES_EXFAT := true
189PRODUCT_PACKAGES += \
190 mount.exfat \
191 fsck.exfat \
192 mkfs.exfat
193endif
194
Chirayu Desai8636d672012-07-19 16:04:25 +0530195# Openssh
196PRODUCT_PACKAGES += \
197 scp \
198 sftp \
199 ssh \
200 sshd \
201 sshd_config \
202 ssh-keygen \
Chirayu Desai4bacf672012-08-19 17:30:04 +0530203 start-ssh
204
205# rsync
206PRODUCT_PACKAGES += \
207 rsync
Chirayu Desai8636d672012-07-19 16:04:25 +0530208
Michael Bestas7d5d16d2014-06-10 20:06:48 +0300209# Stagefright FFMPEG plugin
210PRODUCT_PACKAGES += \
Steve Kondik7c968692015-07-08 09:53:12 -0700211 libffmpeg_extractor \
212 libffmpeg_omx \
Steve Kondik59702502015-06-18 02:22:35 -0700213 media_codecs_ffmpeg.xml
Michael Bestas7d5d16d2014-06-10 20:06:48 +0300214
Steve Kondik7c968692015-07-08 09:53:12 -0700215PRODUCT_PROPERTY_OVERRIDES += \
216 media.sf.omx-plugin=libffmpeg_omx.so \
217 media.sf.extractor-plugin=libffmpeg_extractor.so
218
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +0100219# These packages are excluded from user builds
220ifneq ($(TARGET_BUILD_VARIANT),user)
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +0100221PRODUCT_PACKAGES += \
Steve Kondik275701b2013-11-06 12:41:34 -0800222 procmem \
223 procrank \
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +0100224 su
repo Shareef Ali4bcfc312014-12-29 17:52:04 -0600225endif
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +0100226
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +0100227PRODUCT_PROPERTY_OVERRIDES += \
228 persist.sys.root_access=0
229
Ricardo Cerqueira15c9ef42016-03-11 14:09:52 +0000230DEVICE_PACKAGE_OVERLAYS += vendor/cm/overlay/common
Koushik Duttac6f7a492011-11-28 07:44:23 -0800231
Michael Bestaseb83dba2015-10-07 18:38:03 +0300232PRODUCT_VERSION_MAJOR = 13
233PRODUCT_VERSION_MINOR = 0
Ricardo Cerqueira154d0292013-07-25 01:12:16 +0100234PRODUCT_VERSION_MAINTENANCE = 0-RC0
Koushik Duttac6f7a492011-11-28 07:44:23 -0800235
Ricardo Cerqueira554f3702013-09-24 17:58:56 +0100236# Set CM_BUILDTYPE from the env RELEASE_TYPE, for jenkins compat
237
238ifndef CM_BUILDTYPE
239 ifdef RELEASE_TYPE
240 # Starting with "CM_" is optional
241 RELEASE_TYPE := $(shell echo $(RELEASE_TYPE) | sed -e 's|^CM_||g')
242 CM_BUILDTYPE := $(RELEASE_TYPE)
243 endif
Warren Togami2128e2f2012-05-06 19:49:33 -1000244endif
Ricardo Cerqueira554f3702013-09-24 17:58:56 +0100245
246# Filter out random types, so it'll reset to UNOFFICIAL
247ifeq ($(filter RELEASE NIGHTLY SNAPSHOT EXPERIMENTAL,$(CM_BUILDTYPE)),)
248 CM_BUILDTYPE :=
Warren Togami2128e2f2012-05-06 19:49:33 -1000249endif
250
Ricardo Cerqueirad8e76662012-06-08 11:08:15 +0100251ifdef CM_BUILDTYPE
Ricardo Cerqueira554f3702013-09-24 17:58:56 +0100252 ifneq ($(CM_BUILDTYPE), SNAPSHOT)
253 ifdef CM_EXTRAVERSION
254 # Force build type to EXPERIMENTAL
255 CM_BUILDTYPE := EXPERIMENTAL
256 # Remove leading dash from CM_EXTRAVERSION
257 CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
258 # Add leading dash to CM_EXTRAVERSION
259 CM_EXTRAVERSION := -$(CM_EXTRAVERSION)
260 endif
261 else
262 ifndef CM_EXTRAVERSION
263 # Force build type to EXPERIMENTAL, SNAPSHOT mandates a tag
264 CM_BUILDTYPE := EXPERIMENTAL
265 else
266 # Remove leading dash from CM_EXTRAVERSION
267 CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
268 # Add leading dash to CM_EXTRAVERSION
269 CM_EXTRAVERSION := -$(CM_EXTRAVERSION)
270 endif
Ricardo Cerqueirad8e76662012-06-08 11:08:15 +0100271 endif
272else
273 # If CM_BUILDTYPE is not defined, set to UNOFFICIAL
Warren Togami2128e2f2012-05-06 19:49:33 -1000274 CM_BUILDTYPE := UNOFFICIAL
Ricardo Cerqueirad8e76662012-06-08 11:08:15 +0100275 CM_EXTRAVERSION :=
Warren Togami2128e2f2012-05-06 19:49:33 -1000276endif
277
Matt Mowerf4168392013-12-13 11:04:14 -0600278ifeq ($(CM_BUILDTYPE), UNOFFICIAL)
279 ifneq ($(TARGET_UNOFFICIAL_BUILD_ID),)
Michael Bestas3bf9ba82013-12-18 00:22:58 +0200280 CM_EXTRAVERSION := -$(TARGET_UNOFFICIAL_BUILD_ID)
Matt Mowerf4168392013-12-13 11:04:14 -0600281 endif
282endif
283
Ricardo Cerqueira554f3702013-09-24 17:58:56 +0100284ifeq ($(CM_BUILDTYPE), RELEASE)
Ricardo Cerqueiraae71f042013-11-11 00:55:51 +0000285 ifndef TARGET_VENDOR_RELEASE_BUILD_ID
286 CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(PRODUCT_VERSION_MAINTENANCE)$(PRODUCT_VERSION_DEVICE_SPECIFIC)-$(CM_BUILD)
287 else
288 ifeq ($(TARGET_BUILD_VARIANT),user)
289 CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_VENDOR_RELEASE_BUILD_ID)-$(CM_BUILD)
290 else
291 CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(PRODUCT_VERSION_MAINTENANCE)$(PRODUCT_VERSION_DEVICE_SPECIFIC)-$(CM_BUILD)
292 endif
293 endif
Koushik Duttac6f7a492011-11-28 07:44:23 -0800294else
Dan Pasanenfc254862015-11-04 14:48:08 -0600295 CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(shell date -u +%Y%m%d)-$(CM_BUILDTYPE)$(CM_EXTRAVERSION)-$(CM_BUILD)
Koushik Duttac6f7a492011-11-28 07:44:23 -0800296endif
Koushik Duttad69b2922012-02-23 14:07:44 -0800297
298PRODUCT_PROPERTY_OVERRIDES += \
299 ro.cm.version=$(CM_VERSION) \
Brint E. Kriebelaf917582014-07-10 10:31:00 -0700300 ro.cm.releasetype=$(CM_BUILDTYPE) \
Abhisek Devkota381a3052013-12-10 04:35:08 -0800301 ro.modversion=$(CM_VERSION) \
NBruderman3b7f3d22015-03-04 12:08:33 +0200302 ro.cmlegal.url=https://cyngn.com/legal/privacy-policy
Ricardo Cerqueirad5422742012-11-13 10:42:11 +0000303
Ricardo Cerqueira178dbd62013-10-23 20:56:56 +0100304-include vendor/cm-priv/keys/keys.mk
305
Ricardo Cerqueira46161372014-01-09 10:25:31 +0000306CM_DISPLAY_VERSION := $(CM_VERSION)
307
Brint E. Kriebelac948f52014-01-24 09:58:36 -0800308ifneq ($(PRODUCT_DEFAULT_DEV_CERTIFICATE),)
309ifneq ($(PRODUCT_DEFAULT_DEV_CERTIFICATE),build/target/product/security/testkey)
Ricardo Cerqueira46161372014-01-09 10:25:31 +0000310 ifneq ($(CM_BUILDTYPE), UNOFFICIAL)
311 ifndef TARGET_VENDOR_RELEASE_BUILD_ID
312 ifneq ($(CM_EXTRAVERSION),)
Ricardo Cerqueira17b25872014-02-16 17:15:07 +0000313 # Remove leading dash from CM_EXTRAVERSION
314 CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
Ricardo Cerqueira46161372014-01-09 10:25:31 +0000315 TARGET_VENDOR_RELEASE_BUILD_ID := $(CM_EXTRAVERSION)
316 else
Ricardo Cerqueira17b25872014-02-16 17:15:07 +0000317 TARGET_VENDOR_RELEASE_BUILD_ID := $(shell date -u +%Y%m%d)
Ricardo Cerqueira46161372014-01-09 10:25:31 +0000318 endif
319 else
Ricardo Cerqueira17b25872014-02-16 17:15:07 +0000320 TARGET_VENDOR_RELEASE_BUILD_ID := $(TARGET_VENDOR_RELEASE_BUILD_ID)
Ricardo Cerqueira46161372014-01-09 10:25:31 +0000321 endif
Ricardo Cerqueira17b25872014-02-16 17:15:07 +0000322 CM_DISPLAY_VERSION=$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_VENDOR_RELEASE_BUILD_ID)
Ricardo Cerqueira46161372014-01-09 10:25:31 +0000323 endif
324endif
Ricardo Cerqueira74b4f9b2014-01-11 16:00:16 +0000325endif
Ricardo Cerqueira46161372014-01-09 10:25:31 +0000326
327PRODUCT_PROPERTY_OVERRIDES += \
328 ro.cm.display.version=$(CM_DISPLAY_VERSION)
329
Brint E. Kriebela1e49122014-01-31 11:59:56 -0800330-include $(WORKSPACE)/build_env/image-auto-bits.mk
Koushik Dutta41fd0aa2013-12-07 22:04:17 -0800331
332-include vendor/cyngn/product.mk
Steve Kondikb9dd4002014-09-10 15:41:43 -0700333
Chris Sarbora39b9aa82014-12-17 14:41:28 -0800334$(call prepend-product-if-exists, vendor/extra/product.mk)