blob: cae14ceacd446b219cfc5c5d19daaa784b0e1427 [file] [log] [blame]
Ricardo Cerqueira6ed03ff2011-11-28 16:37:47 +00001PRODUCT_BRAND ?= cyanogenmod
2
Koushik Dutta82d0fda2013-02-28 10:33:25 -08003SUPERUSER_EMBEDDED := true
Koushik Dutta9d15c7a2013-03-04 00:37:02 -08004SUPERUSER_PACKAGE_PREFIX := com.android.settings.cyanogenmod.superuser
Koushik Dutta82d0fda2013-02-28 10:33:25 -08005
Steve Kondikba1ca332012-08-21 02:18:40 -07006# To deal with CM9 specifications
7# TODO: remove once all devices have been switched
Steve Kondika8945752012-03-14 00:10:33 -07008ifneq ($(TARGET_BOOTANIMATION_NAME),)
Steve Kondikba1ca332012-08-21 02:18:40 -07009TARGET_SCREEN_DIMENSIONS := $(subst -, $(space), $(subst x, $(space), $(TARGET_BOOTANIMATION_NAME)))
10ifeq ($(TARGET_SCREEN_WIDTH),)
11TARGET_SCREEN_WIDTH := $(word 2, $(TARGET_SCREEN_DIMENSIONS))
12endif
13ifeq ($(TARGET_SCREEN_HEIGHT),)
14TARGET_SCREEN_HEIGHT := $(word 3, $(TARGET_SCREEN_DIMENSIONS))
15endif
16endif
17
18ifneq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space))
19
20# clear TARGET_BOOTANIMATION_NAME in case it was set for CM9 purposes
21TARGET_BOOTANIMATION_NAME :=
22
23# determine the smaller dimension
24TARGET_BOOTANIMATION_SIZE := $(shell \
25 if [ $(TARGET_SCREEN_WIDTH) -lt $(TARGET_SCREEN_HEIGHT) ]; then \
26 echo $(TARGET_SCREEN_WIDTH); \
27 else \
28 echo $(TARGET_SCREEN_HEIGHT); \
29 fi )
30
31# get a sorted list of the sizes
32bootanimation_sizes := $(subst .zip,, $(shell ls vendor/cm/prebuilt/common/bootanimation))
33bootanimation_sizes := $(shell echo -e $(subst $(space),'\n',$(bootanimation_sizes)) | sort -rn)
34
35# find the appropriate size and set
36define check_and_set_bootanimation
37$(eval TARGET_BOOTANIMATION_NAME := $(shell \
38 if [ -z "$(TARGET_BOOTANIMATION_NAME)" ]; then
39 if [ $(1) -le $(TARGET_BOOTANIMATION_SIZE) ]; then \
40 echo $(1); \
41 exit 0; \
42 fi;
43 fi;
44 echo $(TARGET_BOOTANIMATION_NAME); ))
45endef
46$(foreach size,$(bootanimation_sizes), $(call check_and_set_bootanimation,$(size)))
47
William Roberts4256e662013-08-21 13:43:54 -070048PRODUCT_BOOTANIMATION := vendor/cm/prebuilt/common/bootanimation/$(TARGET_BOOTANIMATION_NAME).zip
Steve Kondika8945752012-03-14 00:10:33 -070049endif
50
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +000051ifdef CM_NIGHTLY
52PRODUCT_PROPERTY_OVERRIDES += \
53 ro.rommanager.developerid=cyanogenmodnightly
54else
55PRODUCT_PROPERTY_OVERRIDES += \
56 ro.rommanager.developerid=cyanogenmod
57endif
58
59PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0
60
Steve Kondik5a27f632013-11-06 13:55:11 -080061ifeq ($(PRODUCT_GMS_CLIENTID_BASE),)
62PRODUCT_PROPERTY_OVERRIDES += \
63 ro.com.google.clientidbase=android-google
64else
65PRODUCT_PROPERTY_OVERRIDES += \
66 ro.com.google.clientidbase=$(PRODUCT_GMS_CLIENTID_BASE)
67endif
68
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +000069PRODUCT_PROPERTY_OVERRIDES += \
70 keyguard.no_require_sim=true \
71 ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html \
72 ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html \
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +000073 ro.com.android.wifi-watchlist=GoogleGuest \
74 ro.setupwizard.enterprise_mode=1 \
75 ro.com.android.dateformat=MM-dd-yyyy \
76 ro.com.android.dataroaming=false
77
Ricardo Cerqueiraf3835632013-08-04 13:25:00 +010078PRODUCT_PROPERTY_OVERRIDES += \
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +010079 ro.build.selinux=1
Ricardo Cerqueiraf3835632013-08-04 13:25:00 +010080
Chirayu Desai88401db2013-03-20 16:17:17 +053081ifneq ($(TARGET_BUILD_VARIANT),eng)
Chirayu Desai59df3632013-02-15 21:16:39 +053082# Enable ADB authentication
83ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1
Chirayu Desai88401db2013-03-20 16:17:17 +053084endif
Chirayu Desai59df3632013-02-15 21:16:39 +053085
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +000086# Copy over the changelog to the device
87PRODUCT_COPY_FILES += \
88 vendor/cm/CHANGELOG.mkdn:system/etc/CHANGELOG-CM.txt
89
Warren Togamib1637c82012-03-03 22:37:42 -100090# Backup Tool
Steve Kondikbc68cf22013-10-06 22:41:52 -070091ifneq ($(WITH_GMS),true)
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +000092PRODUCT_COPY_FILES += \
Warren Togamib1637c82012-03-03 22:37:42 -100093 vendor/cm/prebuilt/common/bin/backuptool.sh:system/bin/backuptool.sh \
94 vendor/cm/prebuilt/common/bin/backuptool.functions:system/bin/backuptool.functions \
Ricardo Cerqueira129989b2012-12-19 01:11:21 +000095 vendor/cm/prebuilt/common/bin/50-cm.sh:system/addon.d/50-cm.sh \
96 vendor/cm/prebuilt/common/bin/blacklist:system/addon.d/blacklist
Steve Kondikbc68cf22013-10-06 22:41:52 -070097endif
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +000098
Steve Kondik485527d2011-12-20 12:14:24 -080099# init.d support
100PRODUCT_COPY_FILES += \
101 vendor/cm/prebuilt/common/etc/init.d/00banner:system/etc/init.d/00banner \
102 vendor/cm/prebuilt/common/bin/sysinit:system/bin/sysinit
103
James Sullinseb7799c2012-04-05 20:18:18 -0500104# userinit support
105PRODUCT_COPY_FILES += \
106 vendor/cm/prebuilt/common/etc/init.d/90userinit:system/etc/init.d/90userinit
107
Ricardo Cerqueirad2d1a7f2013-07-17 16:45:20 +0100108# SELinux filesystem labels
109PRODUCT_COPY_FILES += \
110 vendor/cm/prebuilt/common/etc/init.d/50selinuxrelabel:system/etc/init.d/50selinuxrelabel
111
Ricardo Cerqueira8f412cb2012-10-18 16:38:25 +0100112# CM-specific init file
113PRODUCT_COPY_FILES += \
114 vendor/cm/prebuilt/common/etc/init.local.rc:root/init.cm.rc
115
Steve Kondik485527d2011-12-20 12:14:24 -0800116# Compcache/Zram support
117PRODUCT_COPY_FILES += \
Steve Kondik485527d2011-12-20 12:14:24 -0800118 vendor/cm/prebuilt/common/bin/compcache:system/bin/compcache \
119 vendor/cm/prebuilt/common/bin/handle_compcache:system/bin/handle_compcache
120
Adam Fardendb2438b2012-03-07 14:34:38 +0100121# Bring in camera effects
fitsnugly407b3992012-01-14 18:50:25 -0500122PRODUCT_COPY_FILES += \
fitsnuglyc1c6ce22012-01-12 01:10:39 -0500123 vendor/cm/prebuilt/common/media/LMprec_508.emd:system/media/LMprec_508.emd \
124 vendor/cm/prebuilt/common/media/PFFprec_600.emd:system/media/PFFprec_600.emd
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +0000125
126# Enable SIP+VoIP on all targets
127PRODUCT_COPY_FILES += \
Ricardo Cerqueira3ff9b6f2012-07-11 11:21:50 +0100128 frameworks/native/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +0000129
sleeplessninja918a7ea2013-01-30 14:45:20 -0600130# Enable wireless Xbox 360 controller support
131PRODUCT_COPY_FILES += \
132 frameworks/base/data/keyboards/Vendor_045e_Product_028e.kl:system/usr/keylayout/Vendor_045e_Product_0719.kl
133
Steve Kondike0c12da2012-03-25 17:21:32 -0700134# This is CM!
135PRODUCT_COPY_FILES += \
136 vendor/cm/config/permissions/com.cyanogenmod.android.xml:system/etc/permissions/com.cyanogenmod.android.xml
137
Ricardo Cerqueira9f75d842012-05-04 10:15:56 +0100138# T-Mobile theme engine
139include vendor/cm/config/themes_common.mk
140
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +0000141# Required CM packages
142PRODUCT_PACKAGES += \
Steve Kondike0c297d2011-12-20 16:16:01 -0800143 Development \
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +0000144 LatinIME \
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +0100145 BluetoothExt
Ricardo Cerqueirae1f37382011-11-27 19:56:54 +0000146
147# Optional CM packages
148PRODUCT_PACKAGES += \
Koushik Dutta8475d722013-07-21 09:34:19 -0700149 VoicePlus \
Koushik Dutta74d3bad2011-11-27 13:00:30 -0800150 VoiceDialer \
Warren Togami5960a702012-02-22 09:22:42 -1000151 SoundRecorder \
David Fergusonf474b122013-11-10 19:39:36 -0500152 Basic \
153 libemoji
Koushik Dutta8387c322011-11-26 17:31:19 -0800154
Steve Kondik04a49412011-12-14 14:02:19 -0800155# Custom CM packages
Ricardo Cerqueira50dda4c2013-11-05 15:26:20 +0000156 #Trebuchet \
157
Steve Kondik04a49412011-12-14 14:02:19 -0800158PRODUCT_PACKAGES += \
Ricardo Cerqueira50dda4c2013-11-05 15:26:20 +0000159 Launcher3 \
Steve Kondik04a49412011-12-14 14:02:19 -0800160 DSPManager \
Steve Kondika25e4e02011-12-14 22:27:07 -0800161 libcyanogen-dsp \
Steve Kondikfcc16102012-05-05 16:23:24 -0700162 audio_effects.conf \
Ricardo Cerqueira3dc43542012-05-25 04:31:26 +0400163 CMWallpapers \
Ricardo Cerqueira2526fef2012-09-29 17:17:45 +0100164 Apollo \
DvTonderf0074032012-12-30 13:37:40 -0500165 CMFileManager \
Giulio Cerverab6f18ff2013-08-20 12:53:56 +0200166 LockClock \
167 CMAccount
Steve Kondik04a49412011-12-14 14:02:19 -0800168
Ricardo Cerqueira17809562013-08-08 00:49:44 +0100169# CM Hardware Abstraction Framework
170PRODUCT_PACKAGES += \
171 org.cyanogenmod.hardware \
172 org.cyanogenmod.hardware.xml
173
Chirayu Desai7a7185b2013-03-28 11:44:05 +0530174PRODUCT_PACKAGES += \
175 CellBroadcastReceiver
176
Sebastian Schmidt7d5de0c2012-04-15 11:39:25 +0200177# Extra tools in CM
178PRODUCT_PACKAGES += \
Steve Kondik08980282012-07-05 01:20:47 -0700179 openvpn \
180 e2fsck \
181 mke2fs \
Steve Kondik1949eb52012-09-20 17:09:07 -0700182 tune2fs \
183 bash \
184 vim \
185 nano \
186 htop \
187 powertop \
Steve Kondik2978e202013-07-06 04:07:56 -0700188 lsof \
189 mount.exfat \
190 fsck.exfat \
191 mkfs.exfat \
192 ntfsfix \
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +0100193 ntfs-3g \
194 gdbserver \
195 micro_bench \
196 oprofiled \
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +0100197 sqlite3 \
198 strace
Sebastian Schmidt7d5de0c2012-04-15 11:39:25 +0200199
Chirayu Desai8636d672012-07-19 16:04:25 +0530200# Openssh
201PRODUCT_PACKAGES += \
202 scp \
203 sftp \
204 ssh \
205 sshd \
206 sshd_config \
207 ssh-keygen \
Chirayu Desai4bacf672012-08-19 17:30:04 +0530208 start-ssh
209
210# rsync
211PRODUCT_PACKAGES += \
212 rsync
Chirayu Desai8636d672012-07-19 16:04:25 +0530213
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +0100214# These packages are excluded from user builds
215ifneq ($(TARGET_BUILD_VARIANT),user)
216
217PRODUCT_PACKAGES += \
Steve Kondik275701b2013-11-06 12:41:34 -0800218 procmem \
219 procrank \
Ricardo Cerqueiraa21887e2013-09-25 17:13:25 +0100220 CMUpdater \
221 Superuser \
222 su
223
224# Terminal Emulator
225PRODUCT_COPY_FILES += \
226 vendor/cm/proprietary/Term.apk:system/app/Term.apk \
227 vendor/cm/proprietary/lib/armeabi/libjackpal-androidterm4.so:system/lib/libjackpal-androidterm4.so
228
229PRODUCT_PROPERTY_OVERRIDES += \
230 persist.sys.root_access=1
231else
232
233PRODUCT_PACKAGES += \
234 CMFota
235
236PRODUCT_PROPERTY_OVERRIDES += \
237 persist.sys.root_access=0
238
239endif
240
Koushik Dutta45e65982013-08-12 15:41:14 -0700241# easy way to extend to add more packages
242-include vendor/extra/product.mk
243
Koushik Duttac6f7a492011-11-28 07:44:23 -0800244PRODUCT_PACKAGE_OVERLAYS += vendor/cm/overlay/dictionaries
Steve Kondik254db262011-12-20 15:02:07 -0800245PRODUCT_PACKAGE_OVERLAYS += vendor/cm/overlay/common
Koushik Duttac6f7a492011-11-28 07:44:23 -0800246
Ricardo Cerqueira50dda4c2013-11-05 15:26:20 +0000247PRODUCT_VERSION_MAJOR = 11
248PRODUCT_VERSION_MINOR = 0
Ricardo Cerqueira154d0292013-07-25 01:12:16 +0100249PRODUCT_VERSION_MAINTENANCE = 0-RC0
Koushik Duttac6f7a492011-11-28 07:44:23 -0800250
Ricardo Cerqueira554f3702013-09-24 17:58:56 +0100251# Set CM_BUILDTYPE from the env RELEASE_TYPE, for jenkins compat
252
253ifndef CM_BUILDTYPE
254 ifdef RELEASE_TYPE
255 # Starting with "CM_" is optional
256 RELEASE_TYPE := $(shell echo $(RELEASE_TYPE) | sed -e 's|^CM_||g')
257 CM_BUILDTYPE := $(RELEASE_TYPE)
258 endif
Warren Togami2128e2f2012-05-06 19:49:33 -1000259endif
Ricardo Cerqueira554f3702013-09-24 17:58:56 +0100260
261# Filter out random types, so it'll reset to UNOFFICIAL
262ifeq ($(filter RELEASE NIGHTLY SNAPSHOT EXPERIMENTAL,$(CM_BUILDTYPE)),)
263 CM_BUILDTYPE :=
Warren Togami2128e2f2012-05-06 19:49:33 -1000264endif
265
Ricardo Cerqueirad8e76662012-06-08 11:08:15 +0100266ifdef CM_BUILDTYPE
Ricardo Cerqueira554f3702013-09-24 17:58:56 +0100267 ifneq ($(CM_BUILDTYPE), SNAPSHOT)
268 ifdef CM_EXTRAVERSION
269 # Force build type to EXPERIMENTAL
270 CM_BUILDTYPE := EXPERIMENTAL
271 # Remove leading dash from CM_EXTRAVERSION
272 CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
273 # Add leading dash to CM_EXTRAVERSION
274 CM_EXTRAVERSION := -$(CM_EXTRAVERSION)
275 endif
276 else
277 ifndef CM_EXTRAVERSION
278 # Force build type to EXPERIMENTAL, SNAPSHOT mandates a tag
279 CM_BUILDTYPE := EXPERIMENTAL
280 else
281 # Remove leading dash from CM_EXTRAVERSION
282 CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
283 # Add leading dash to CM_EXTRAVERSION
284 CM_EXTRAVERSION := -$(CM_EXTRAVERSION)
285 endif
Ricardo Cerqueirad8e76662012-06-08 11:08:15 +0100286 endif
287else
288 # If CM_BUILDTYPE is not defined, set to UNOFFICIAL
Warren Togami2128e2f2012-05-06 19:49:33 -1000289 CM_BUILDTYPE := UNOFFICIAL
Ricardo Cerqueirad8e76662012-06-08 11:08:15 +0100290 CM_EXTRAVERSION :=
Warren Togami2128e2f2012-05-06 19:49:33 -1000291endif
292
Ricardo Cerqueira554f3702013-09-24 17:58:56 +0100293ifeq ($(CM_BUILDTYPE), RELEASE)
Warren Togami2128e2f2012-05-06 19:49:33 -1000294 CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(PRODUCT_VERSION_MAINTENANCE)$(PRODUCT_VERSION_DEVICE_SPECIFIC)-$(CM_BUILD)
Koushik Duttac6f7a492011-11-28 07:44:23 -0800295else
Chirayu Desaie6e61632012-12-04 19:16:48 +0530296 ifeq ($(PRODUCT_VERSION_MINOR),0)
Ricardo Cerqueira554f3702013-09-24 17:58:56 +0100297 CM_VERSION := $(PRODUCT_VERSION_MAJOR)-$(shell date -u +%Y%m%d)-$(CM_BUILDTYPE)$(CM_EXTRAVERSION)-$(CM_BUILD)
Chirayu Desaie6e61632012-12-04 19:16:48 +0530298 else
Ricardo Cerqueira554f3702013-09-24 17:58:56 +0100299 CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(shell date -u +%Y%m%d)-$(CM_BUILDTYPE)$(CM_EXTRAVERSION)-$(CM_BUILD)
Chirayu Desaie6e61632012-12-04 19:16:48 +0530300 endif
Koushik Duttac6f7a492011-11-28 07:44:23 -0800301endif
Koushik Duttad69b2922012-02-23 14:07:44 -0800302
303PRODUCT_PROPERTY_OVERRIDES += \
304 ro.cm.version=$(CM_VERSION) \
Warren Togamib1637c82012-03-03 22:37:42 -1000305 ro.modversion=$(CM_VERSION)
Ricardo Cerqueirad5422742012-11-13 10:42:11 +0000306
Ricardo Cerqueira178dbd62013-10-23 20:56:56 +0100307-include vendor/cm-priv/keys/keys.mk
308
Ricardo Cerqueirad5422742012-11-13 10:42:11 +0000309-include $(WORKSPACE)/hudson/image-auto-bits.mk