summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiranjan Reddy Dumbala <ndumba@codeaurora.org>2017-03-17 17:54:52 +0530
committerVara Prasad A V S G <vavsg@codeaurora.org>2017-03-24 12:13:47 +0530
commitba549c4e0d0f12d153b296fa2b9ed93c0fb67cd2 (patch)
tree2119ebc16f377428e70c8eeeb16c65f2c55b4318
parentfad70d44341ff96b5a3580a65685cbad5de263f0 (diff)
SDM660_64: Intial bring up.
Intial bring up changes Change-Id: I789911a6cd9edacdf73df41b39a80b096b9f1077
-rwxr-xr-x[-rw-r--r--]Android.mk0
-rwxr-xr-x[-rw-r--r--]AndroidBoard.mk15
-rwxr-xr-x[-rw-r--r--]AndroidProducts.mk2
-rwxr-xr-x[-rw-r--r--]BoardConfig.mk50
-rwxr-xr-x[-rw-r--r--]WCNSS_qcom_cfg.ini303
-rwxr-xr-x[-rw-r--r--]android_filesystem_config.h13
-rwxr-xr-xappboosts.xml62
-rwxr-xr-x[-rw-r--r--]egl.cfg0
-rwxr-xr-x[-rw-r--r--]fstab.qcom10
-rwxr-xr-xgamedwhitelist.xml81
-rwxr-xr-x[-rw-r--r--]gpio-keys.kl10
-rwxr-xr-x[-rw-r--r--]hostapd.accept0
-rwxr-xr-x[-rw-r--r--]hostapd.conf0
-rwxr-xr-x[-rw-r--r--]hostapd.deny0
-rwxr-xr-x[-rw-r--r--]init.qcom.modem_links.sh0
-rwxr-xr-xinit.qti.qseecomd.sh35
-rwxr-xr-x[-rw-r--r--]init.target.rc149
-rwxr-xr-xmedia_codecs.xml399
-rwxr-xr-xmedia_codecs_performance.xml141
-rwxr-xr-xmedia_profiles.xml1542
-rwxr-xr-x[-rw-r--r--]msm_irqbalance.conf7
-rwxr-xr-x[-rw-r--r--]overlay/frameworks/base/core/res/res/values/config.xml67
-rwxr-xr-xoverlay/frameworks/base/core/res/res/xml/power_profile.xml115
-rwxr-xr-x[-rw-r--r--]p2p_supplicant_overlay.conf0
-rwxr-xr-x[-rw-r--r--]radio/filesmap49
-rwxr-xr-x[-rw-r--r--]recovery.fstab7
-rwxr-xr-x[-rw-r--r--]sdm660_64.mk (renamed from msmfalcon_64.mk)78
-rwxr-xr-x[-rw-r--r--]sensors/hals.conf0
-rwxr-xr-x[-rw-r--r--]snd_soc_msm/snd_soc_msm_Taiko0
-rwxr-xr-x[-rw-r--r--]snd_soc_msm/snd_soc_msm_Taiko_CDP0
-rwxr-xr-x[-rw-r--r--]snd_soc_msm/snd_soc_msm_Taiko_liquid0
-rwxr-xr-x[-rw-r--r--]synaptics_rmi4_i2c.kl0
-rwxr-xr-x[-rw-r--r--]system.prop84
-rwxr-xr-x[-rw-r--r--]usf_post_boot.sh0
-rwxr-xr-x[-rw-r--r--]usf_settings.sh0
-rwxr-xr-x[-rw-r--r--]vold.fstab0
-rwxr-xr-xwhitelistedapps.xml83
-rwxr-xr-xwifi_concurrency_cfg.txt3
-rwxr-xr-x[-rw-r--r--]wpa_supplicant_overlay.conf0
-rwxr-xr-x[-rw-r--r--]wpa_supplicant_wcn.conf0
40 files changed, 2953 insertions, 352 deletions
diff --git a/Android.mk b/Android.mk
index 9a21fab..9a21fab 100644..100755
--- a/Android.mk
+++ b/Android.mk
diff --git a/AndroidBoard.mk b/AndroidBoard.mk
index d218253..8fd3f78 100644..100755
--- a/AndroidBoard.mk
+++ b/AndroidBoard.mk
@@ -19,7 +19,7 @@ endif
# Compile Linux Kernel
#----------------------------------------------------------------------
ifeq ($(KERNEL_DEFCONFIG),)
- KERNEL_DEFCONFIG := msmfalcon_defconfig
+ KERNEL_DEFCONFIG := sdm660_defconfig
endif
ifeq ($(TARGET_KERNEL_SOURCE),)
@@ -106,11 +106,24 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/hostapd
LOCAL_SRC_FILES := hostapd.deny
include $(BUILD_PREBUILT)
+include $(CLEAR_VARS)
+LOCAL_MODULE := wifi_concurrency_cfg.txt
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := ETC
+LOCAL_SRC_FILES := $(LOCAL_MODULE)
+LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/wifi
+include $(BUILD_PREBUILT)
+
# Create symbolic links for WLAN
$(shell mkdir -p $(TARGET_OUT_ETC)/firmware/wlan/qca_cld; \
ln -sf /system/etc/wifi/WCNSS_qcom_cfg.ini \
$(TARGET_OUT_ETC)/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini)
+# Create symbolic links for msadp
+$(shell mkdir -p $(TARGET_OUT_VENDOR)/firmware; \
+ ln -sf /dev/block/bootdevice/by-name/msadp \
+ $(TARGET_OUT_VENDOR)/firmware/msadp)
+
#----------------------------------------------------------------------
# Radio image
#----------------------------------------------------------------------
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
index 138b5bc..328c094 100644..100755
--- a/AndroidProducts.mk
+++ b/AndroidProducts.mk
@@ -1,2 +1,2 @@
PRODUCT_MAKEFILES := \
- $(LOCAL_DIR)/msmfalcon_64.mk
+ $(LOCAL_DIR)/sdm660_64.mk
diff --git a/BoardConfig.mk b/BoardConfig.mk
index a968b1d..2c6ec98 100644..100755
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -3,9 +3,9 @@
# Product-specific compile-time definitions.
#
-TARGET_BOARD_PLATFORM := msmfalcon
+TARGET_BOARD_PLATFORM := sdm660
TARGET_BOARD_SUFFIX := _64
-TARGET_BOOTLOADER_BOARD_NAME := msmfalcon
+TARGET_BOOTLOADER_BOARD_NAME :=sdm660
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
@@ -25,12 +25,12 @@ SDCLANG := true
TARGET_NO_BOOTLOADER := false
TARGET_USES_UEFI := true
TARGET_NO_KERNEL := false
-BOARD_PRESIL_BUILD := true
--include $(QCPATH)/common/msmfalcon_64/BoardConfigVendor.mk
+-include $(QCPATH)/common/sdm660_64/BoardConfigVendor.mk
MINIMAL_FONT_FOOTPRINT := true
# Some framework code requires this to enable BT
BOARD_HAVE_BLUETOOTH := true
+BOARD_USES_WIPOWER := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/qcom/common
USE_OPENGL_RENDERER := true
@@ -39,29 +39,41 @@ BOARD_USE_LEGACY_UI := true
TARGET_USERIMAGES_USE_EXT4 := true
BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000
-BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x02000000
+#A/B related defines
+AB_OTA_UPDATER := true
+# Full A/B partiton update set
+# AB_OTA_PARTITIONS := xbl rpm tz hyp pmic modem abl boot keymaster cmnlib cmnlib64 system bluetooth
+# Subset A/B partitions for Android-only image update
+AB_OTA_PARTITIONS ?= boot system
+BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
+TARGET_NO_RECOVERY := true
+BOARD_USES_RECOVERY_AS_BOOT := true
+TARGET_RECOVERY_UPDATER_LIBS += librecovery_updater_msm
+
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3221225472
-BOARD_USERDATAIMAGE_PARTITION_SIZE := 3221225472
-BOARD_CACHEIMAGE_PARTITION_SIZE := 134217728
-BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 48318382080
BOARD_PERSISTIMAGE_PARTITION_SIZE := 33554432
BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_FLASH_BLOCK_SIZE := 131072 # (BOARD_KERNEL_PAGESIZE * 64)
+# Enable suspend during charger mode
+BOARD_CHARGER_ENABLE_SUSPEND := true
+
TARGET_USES_ION := true
TARGET_USES_NEW_ION_API :=true
-TARGET_USES_QCOM_BSP := false
+TARGET_USES_QCOM_BSP :=true
ifeq ($(BOARD_KERNEL_CMDLINE),)
ifeq ($(TARGET_KERNEL_VERSION),4.4)
- BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200,n8 androidboot.console=ttyMSM0 earlycon=msm_serial_dm,0xc1b0000
+ BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200,n8 androidboot.console=ttyMSM0 earlycon=msm_serial_dm,0xc170000
else
BOARD_KERNEL_CMDLINE += console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 earlycon=msm_hsl_uart,0xc1b0000
endif
-BOARD_KERNEL_CMDLINE += boot_cpus=0-3 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 sched_enable_hmp=1 sched_enable_power_aware=1 androidboot.selinux=permissive service_locator.enable=1
+BOARD_KERNEL_CMDLINE += androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 sched_enable_hmp=1 sched_enable_power_aware=1 service_locator.enable=1 swiotlb=1
endif
-BOARD_EGL_CFG := device/qcom/msmfalcon_64/egl.cfg
+BOARD_EGL_CFG := device/qcom/sdm660_64/egl.cfg
+BOARD_SECCOMP_POLICY := device/qcom/sdm660_32/seccomp
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_PAGESIZE := 4096
@@ -111,8 +123,22 @@ ifeq ($(HOST_OS),linux)
endif
endif
+#Enable peripheral manager
+TARGET_PER_MGR_ENABLED := true
+
#Enable SSC Feature
TARGET_USES_SSC := true
# Enable sensor multi HAL
USE_SENSOR_MULTI_HAL := true
+
+#Enable CPUSets
+ENABLE_CPUSETS := true
+ENABLE_SCHEDBOOST := true
+
+#Enabling IMS Feature
+TARGET_USES_IMS := true
+
+#Add NON-HLOS files for ota upgrade
+ADD_RADIO_FILES := true
+
diff --git a/WCNSS_qcom_cfg.ini b/WCNSS_qcom_cfg.ini
index 7f49593..6a224db 100644..100755
--- a/WCNSS_qcom_cfg.ini
+++ b/WCNSS_qcom_cfg.ini
@@ -1,158 +1,76 @@
# This file allows user to override the factory
-
# defaults for the WLAN Driver
-
# Enable IMPS or not
gEnableImps=1
-# Enable/Disable Idle Scan
-
-gEnableIdleScan=0
-
-
-# Increase sleep duration (seconds) during IMPS
-# 0 implies no periodic wake up from IMPS. Periodic wakeup is
-# unnecessary if Idle Scan is disabled.
-gImpsModSleepTime=0
-
-
# Enable BMPS or not
gEnableBmps=1
-# Enable suspend or not
-
-# 1: Enable standby, 2: Enable Deep sleep, 3: Enable Mcast/Bcast Filter
-
-gEnableSuspend=3
-
-
# Phy Mode (auto, b, g, n, etc)
# Valid values are 0-9, with 0 = Auto, 4 = 11n, 9 = 11ac
# 1 = 11abg, 2 = 11b, 3 = 11g, 5 = 11g only, 6 = 11n only
# 7 = 11b only 8 = 11ac only.
gDot11Mode=0
-
-# CSR Roaming Enable(1) Disable(0)
-
-gRoamingTime=0
-
-
# Assigned MAC Addresses - This will be used until NV items are in place
-
# Each byte of MAC address is represented in Hex format as XX
-
Intf0MacAddress=000AF58989FF
Intf1MacAddress=000AF58989FE
Intf2MacAddress=000AF58989FD
-
Intf3MacAddress=000AF58989FC
-
# UAPSD service interval for VO,VI, BE, BK traffic
-
InfraUapsdVoSrvIntv=0
-
InfraUapsdViSrvIntv=0
-
InfraUapsdBeSrvIntv=0
-
InfraUapsdBkSrvIntv=0
# Flag to allow STA send AddTspec even when ACM is Off
gAddTSWhenACMIsOff=1
-# Make 1x1 the default antenna configuration
-
-gNumRxAnt=1
-
-
-# Beacon filtering frequency (unit in beacon intervals)
-
-gNthBeaconFilter=50
-
-
-# Enable WAPI or not
-
-# WAPIIsEnabled=0
-
-
-# Flags to filter Mcast abd Bcast RX packets.
-
+# Flags to filter Mcast and Bcast RX packets.
# Value 0: No filtering, 1: Filter all Multicast.
-
# 2: Filter all Broadcast. 3: Filter all Mcast abd Bcast
-
McastBcastFilter=3
-
#Flag to enable HostARPOffload feature or not
-
hostArpOffload=1
#Flag to enable HostNSOffload feature or not
-
hostNSOffload=1
-#SoftAP Related Parameters
-
-# AP MAc addr
-
-gAPMacAddr=000AF589dcab
-
-
# 802.11n Protection flag
-
gEnableApProt=1
-
#Enable OBSS protection
-
gEnableApOBSSProt=1
-
#Enable/Disable UAPSD for SoftAP
-
gEnableApUapsd=1
-
# Fixed Rate
-
gFixedRate=0
-
# Maximum Tx power
-
# gTxPowerCap=30
-
# Fragmentation Threshold
-
# gFragmentationThreshold=2346
-
# RTS threshold
-
RTSThreshold=1048576
-
# Intra-BSS forward
-
gDisableIntraBssFwd=0
-
# WMM Enable/Disable
-
WmmIsEnabled=0
-
# 802.11d support
-
g11dSupportEnabled=0
# 802.11h support
-
g11hSupportEnabled=1
# DFS Master Capability
@@ -160,12 +78,11 @@ gEnableDFSMasterCap=1
# ESE Support and fast transition
EseEnabled=1
+
ImplicitQosIsEnabled=0
-gNeighborScanTimerPeriod=200
+gNeighborScanTimerPeriod=200
gNeighborLookupThreshold=76
-gNeighborReassocThreshold=81
-
gNeighborScanChannelMinTime=20
gNeighborScanChannelMaxTime=30
gMaxNeighborReqTries=3
@@ -175,30 +92,21 @@ gMaxNeighborReqTries=3
# To disable, set FastRoamEnabled=0
FastRoamEnabled=1
-#Check if the AP to which we are roaming is better than current AP in terms of RSSI.
-#Checking is disabled if set to Zero.Otherwise it will use this value as to how better
-#the RSSI of the new/roamable AP should be for roaming
+# Check if the AP to which we are roaming is better than current AP in
+# terms of RSSI. Checking is disabled if set to Zero.Otherwise it will
+# use this value as to how better the RSSI of the new/roamable AP should
+# be for roaming
RoamRssiDiff=3
-# If the RSSI of any available candidate is better than currently associated
-# AP by at least gImmediateRoamRssiDiff, then being to roam immediately (without
-# registering for reassoc threshold).
-# NOTE: Value of 0 means that we would register for reassoc threshold.
-gImmediateRoamRssiDiff=10
-
# To enable, set gRoamIntraBand=1 (Roaming within band)
# To disable, set gRoamIntraBand=0 (Roaming across band)
gRoamIntraBand=0
#Short Guard Interval Enable/disable
-
gShortGI20Mhz=1
-
gShortGI40Mhz=1
-
#Auto Shutdown Value in seconds. A value of 0 means Auto shutoff is disabled
-
gAPAutoShutOff=0
#Auto Shutdown wlan : Value in Seconds. 0 means disabled. Max 1 day = 86400 sec
@@ -207,100 +115,42 @@ gWlanAutoShutdown = 0
# Not used.
gApAutoChannelSelection=0
-
-# Listen Energy Detect Mode Configuration
-
-# Valid values 0-128
-
-# 128 means disable Energy Detect feature
-
-# 0-9 are threshold code and 7 is recommended value from system if feature is to be enabled.
-
-# 10-128 are reserved.
-
-# The EDET threshold mapping is as follows in 3dB step:
-
-# 0 = -60 dBm
-
-# 1 = -63 dBm
-
-# 2 = -66 dBm
-
-# ...
-
-# 7 = -81 dBm
-
-# 8 = -84 dBm
-
-# 9 = -87 dBm
-
-# Note: Any of these settings are valid. Setting 0 would yield the highest power saving (in a noisy environment) at the cost of more range. The range impact is approximately #calculated as:
-
-#
-
-# Range Loss (dB) = EDET threshold level (dBm) + 97 dBm.
-
-#
-
-gEnablePhyAgcListenMode=128
-
-
#Preferred band (both or 2.4 only or 5 only)
-
BandCapability=0
-
-#Beacon Early Termination (1 = enable the BET feature, 0 = disable)
-
-enableBeaconEarlyTermination=0
-
-beaconEarlyTerminationWakeInterval=3
-
-
#Channel Bonding
gChannelBondingMode5GHz=1
-
-#Enable Keep alive with non-zero period value
-
-gStaKeepAlivePeriod = 30
-
#Say gGoKeepAlivePeriod(5 seconds) and gGoLinkMonitorPeriod(10 seconds).
-#For every 10 seconds DUT send Qos Null frame(i.e., Keep Alive frame if link is idle for last 10 seconds.)
-#For both active and power save clients.
-
-#Power save clients: DUT set TIM bit from 10th second onwards and till client honors TIM bit.
-#If doesn't honor for 5 seconds then DUT remove client.
+#For every 10 seconds DUT send Qos Null frame(i.e., Keep Alive frame if link
+#is idle for last 10 seconds.) For both active and power save clients.
-#Active clients: DUT send Qos Null frame for 10th seconds onwards if it is not success still we try on
-#11th second if not tries on 12th and so on till 15th second. Hence before disconnection DUT will send 5 NULL frames.
-#Hence in any case DUT will detect client got removed in (10+5) seconds. i.e., (gGoKeepAlivePeriod + gGoLinkMonitorPeriod)..
+#Power save clients: DUT set TIM bit from 10th second onwards and till client
+#honors TIM bit. If doesn't honor for 5 seconds then DUT remove client.
-#gGoLinkMonitorPeriod/ gApLinkMonitorPeriod is period where link is idle and it is period
-#where we send NULL frame.
+#Active clients: DUT send Qos Null frame for 10th seconds onwards if it is not
+#success still we try on 11th second if not tries on 12th and so on till 15th
+#second. Hence before disconnection DUT will send 5 NULL frames. Hence in any
+#case DUT will detect client got removed in (10+5) seconds.
+#i.e., (gGoKeepAlivePeriod + gGoLinkMonitorPeriod)..
+#gGoLinkMonitorPeriod/ gApLinkMonitorPeriod is period where link is idle and
+#it is period where we send NULL frame.
#gApLinkMonitorPeriod = 10
-
#gGoLinkMonitorPeriod = 10
-#gGoKeepAlivePeriod/gApKeepAlivePeriod is time to spend to check whether frame are succeed to send or not.
-#Hence total effective detection time is gGoLinkMonitorPeriod+ gGoKeepAlivePeriod/gApLinkMonitorPeriod+ gApKeepAlivePeriod.
-
-
+#gGoKeepAlivePeriod/gApKeepAlivePeriod is time to spend to check whether frame
+#are succeed to send or not. Hence total effective detection time is
+# (gGoLinkMonitorPeriod + gGoKeepAlivePeriod) /
+# (gApLinkMonitorPeriod + gApKeepAlivePeriod)
gGoKeepAlivePeriod = 20
-
gApKeepAlivePeriod = 20
-
#If set will start with active scan after driver load, otherwise will start with
-
#passive scan to find out the domain
-
gEnableBypass11d=1
-
#If set to 0, will not scan DFS channels
-
gEnableDFSChnlScan=1
# Enable DFS channel roam
@@ -309,13 +159,6 @@ gAllowDFSChannelRoam=1
gVhtChannelWidth=2
-# Enable Automatic Tx Power control
-
-gEnableAutomaticTxPowerControl=1
-
-# 0 for OLPC 1 for CLPC and SCPC
-gEnableCloseLoop=1
-
#Data Inactivity Timeout when in powersave (in ms)
gDataInactivityTimeout=200
@@ -352,7 +195,7 @@ gEnableRXSTBC=1
gEnableTXSTBC=1
# 1=enable rx LDPC; 0=disable
-gEnableRXLDPC=0
+gEnableRXLDPC=1
#Enable/Disable Tx beamforming
gTxBFEnable=1
@@ -368,19 +211,6 @@ gEnableTxBFin20MHz=1
#Enable/Disable SU Tx beamformer support.
gEnableTxSUBeamformer=1
-#Enable Scan Results Aging based on timer
-#Timer value is in seconds
-#If Set to 0 it will not enable the feature
-gScanAgingTime=30
-
-#Enable Scan Results Aging based on number of scans
-gScanResultAgeCount=1
-
-#Enable Power saving mechanism Based on Android Framework
-#If set to 0 Driver internally control the Power saving mechanism
-#If set to 1 Android Framwrok control the Power saving mechanism
-isAndroidPsEn=0
-
#Enable thermal mitigation
gThermalMitigationEnable=0
@@ -391,19 +221,6 @@ gMaxMediumTime = 6000
# 802.11K support
gRrmEnable=1
-gRrmOperChanMax=8
-gRrmNonOperChanMax=8
-gRrmRandIntvl=100
-
-#Scan offload
-gEnableDirectedScanOffload=1
-
-#FlexConnect Power Factor
-#Default is set to 0 (disable)
-gFlexConnectPowerFactor=0
-
-#Disable split scan, the FW will take care of it
-gNumChanCombinedConc=60
#Enable Power Save offload
gEnablePowerSaveOffload=2
@@ -411,13 +228,19 @@ gEnablePowerSaveOffload=2
#Enable firmware uart print
gEnablefwprint=0
-#P2P Listen offload
-gEnableP2pListenOffload=1
+# Firmware log mode
+# Valid values are 0,1,2
+# 0 - Disable
+# 1 - WMI
+# 2 - DIAG
+gEnablefwlog=1
-# Maximum Receive AMPDU size (VHT only. Valid values: 0->8k 1->16k 2->32k 3->64k 4->128k)
+# Maximum Receive AMPDU size (VHT only. Valid values:
+# 0->8k 1->16k 2->32k 3->64k 4->128k)
gVhtAmpduLenExponent=7
-# Maximum MPDU length (VHT only. Valid values: 0->3895 octets, 1->7991 octets, 2->11454 octets)
+# Maximum MPDU length (VHT only. Valid values:
+# 0->3895 octets, 1->7991 octets, 2->11454 octets)
gVhtMpduLen=2
# Maximum number of wow filters required
@@ -427,7 +250,7 @@ gVhtMpduLen=2
# 0 - Disable both magic pattern match and pattern byte match.
# 1 - Enable magic pattern match on all interfaces.
# 2 - Enable pattern byte match on all interfaces.
-# 3 - Enable both magic patter and pattern byte match on all interfaces.
+# 3 - Enable both magic pattern and pattern byte match on all interfaces.
# Default value of gEnableWoW is 3.
# gEnableWoW=0
@@ -448,9 +271,6 @@ gEnableOverLapCh=0
#Enable VHT on 2.4Ghz
gEnableVhtFor24GHzBand=1
-#Enable or Disable 5G early beacon termination
-gEnable5gEBT=1
-
#Maximum number of offload peers supported
# gMaxOffloadPeers=2
@@ -459,13 +279,14 @@ gEnable5gEBT=1
# to disable set it to zero. ssdp = 0
# Setup multicast pattern for mDNS 224.0.0.251,
# SSDP 239.255.255.250 and LLMNR 224.0.0.252
-ssdp = 0
+ssdp=0
#Enable Memory Deep Sleep
gEnableMemDeepSleep=1
# Regulatory Setting; 0=STRICT; 1=CUSTOM
gRegulatoryChangeCountry=1
+
# RA filtering rate limit param, the current value would not
# help if the lifetime in RA is less than 3*60=3min. Then
# we need to change it, though it is uncommon.
@@ -477,7 +298,7 @@ gMaxConcurrentActiveSessions=3
# Disable/Enable GreenAP
# 0 to disable, 1 to enable, default: 1
-gEnableGreenAp=1
+gEnableGreenAp=0
# Radar PRI multiplier
gDFSradarMappingPriMultiplier=4
@@ -486,7 +307,7 @@ gPNOScanSupport=1
#Enable/Disable LPASS support
# 0 to disable, 1 to enable
-gEnableLpassSupport=0
+gEnableLpassSupport=1
# Whether userspace country code setting shld have priority
gCountryCodePriority=1
@@ -564,15 +385,17 @@ gEnable2x2=1
gVhtRxMCS2x2=2
gVhtTxMCS2x2=2
-#IPA config
-gIPAConfig=0
+#IPA config is a bit mask and following are the configurations.
+#bit0 IPA Enable
+#bit1 IPA PRE Filter enable
+#bit2 IPv6 enable
+#bit3 IPA Resource Manager (RM) enable
+#bit4 IPA Clock scaling enable
+#bit5 IPA uC ENABLE
+#bit6 IPA uC STA ENABLE
+#bit8 IPA Real Time Debugging
+gIPAConfig=0x7d
gIPADescSize=800
-gIPAPreFilterEnable=1
-gIPARMEnable=1
-gIPAIPv6Enable=1
-
-IpaUcOffloadEnabled=0
-gIpaUcStaOffload=0
# Enable/Disable RX full reorder offload
gReorderOffloadSupported=1
@@ -581,9 +404,9 @@ gReorderOffloadSupported=1
# 1 - enable(default) 0 - disable
gCEClassifyEnable=1
-#Enable Rx thread
-# 1 - enable 0 - disable(default)
-gEnableRxThread=0
+# Enable Rx handling options
+# Rx_thread=1 RPS=2(default for ROME) NAPI=4(default for ihelium)
+rx_mode=4
# Enable(Tx) fastpath for data traffic.
# 1 - enable(default) 0 - disable
@@ -593,19 +416,33 @@ gEnableFastPath=1
# 1 - enable(default) 0 - disable
gEnableIpTcpUdpChecksumOffload=1
-# Enable NAPI
-# 1 - enable(default) 0 - disable
-gEnableNAPI=1
-
# Enable TCP Segmentation Offload
-# 1 - enable(default) 0 - disable
+# 1 - enable 0 - disable
TSOEnable=1
# Enable Large Recieve Offload
# 1 - enable(default) 0 - disable
LROEnable=1
+
+# Enable HT MPDU Density
+# 4 for 2 micro sec
+ght_mpdu_density=4
+
+# Enable flow steering to enable multiple CEs for Rx flows.
+# Multiple Rx CEs<==>Multiple Rx IRQs<==>probably different CPUs.
+# Parallel Rx paths.
+# 1 - enable 0 - disable(default)
+gEnableFlowSteering=1
+
################ Datapath feature set End ################
+################ NAN feature set start ###################
+
+# Enable NAN discovery (NAN 1.0)
+# 1 - enable 0 - disable(default)
+gEnableNanSupport=1
+################ NAN feature set end #####################
+
END
# Note: Configuration parser would not read anything past the END marker
diff --git a/android_filesystem_config.h b/android_filesystem_config.h
index 3cf40c4..7251a08 100644..100755
--- a/android_filesystem_config.h
+++ b/android_filesystem_config.h
@@ -30,11 +30,22 @@
#include <private/android_filesystem_config.h>
-#define NO_ANDROID_FILESYSTEM_CONFIG_DEVICE_DIRS
static const struct fs_path_config android_device_files[] = {
// { 00755, AID_UID, AID_GID, (1ULL << CAPABILITY), "PATH_TO_BINARY" },
{ 00755, AID_BLUETOOTH, AID_BLUETOOTH, (1ULL << CAP_BLOCK_SUSPEND), "system/bin/wcnss_filter" },
+ { 00755, AID_SYSTEM, AID_SYSTEM, (1ULL << CAP_NET_BIND_SERVICE), "system/bin/pm-service" },
+ { 00755, AID_SYSTEM, AID_SYSTEM, (1ULL << CAP_NET_BIND_SERVICE), "system/vendor/bin/pm-service" },
+ { 00755, AID_SYSTEM, AID_SYSTEM, (1ULL << CAP_NET_BIND_SERVICE), "system/bin/imsdatadaemon" },
+ { 00755, AID_SYSTEM, AID_RADIO, (1ULL << CAP_NET_BIND_SERVICE), "system/bin/ims_rtp_daemon" },
#ifdef NO_ANDROID_FILESYSTEM_CONFIG_DEVICE_DIRS
{ 00000, AID_ROOT, AID_ROOT, 0, "system/etc/fs_config_dirs" },
#endif
};
+
+
+static const struct fs_path_config android_device_dirs[] = {
+ { 00771, AID_SYSTEM, AID_SYSTEM, 0, "firmware" },
+ { 00771, AID_SYSTEM, AID_SYSTEM, 0, "bt_firmware" },
+ { 00771, AID_MEDIA, AID_MEDIA, 0, "dsp" },
+ { 00771, AID_SYSTEM, AID_SYSTEM, 0, "persist" },
+};
diff --git a/appboosts.xml b/appboosts.xml
new file mode 100755
index 0000000..a05c22c
--- /dev/null
+++ b/appboosts.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+
+<!--
+/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of The Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+-->
+
+<PerfBoosts>
+ <!--Boost params mappings need to be defined for target-->
+ <BoostParamsMappings>
+ <BoostAttributes
+ MapType="freq"
+ Target="sdm660"
+ Resolution="1080p"
+ Mappings="890, 1100, 1400, 1700, 2400" />
+ <BoostAttributes
+ MapType="freq"
+ Target="sdm660"
+ Resolution="2560"
+ Mappings="890, 1100, 1400, 1700, 2400" />
+ <BoostAttributes
+ MapType="cluster"
+ Target="sdm660"
+ Resolution="any"
+ Mappings="0, 1, 1" />
+ <BoostAttributes
+ MapType="freq"
+ Target="sdm630"
+ Resolution="1080p"
+ Mappings="787, 1344, 1670, 1881, 2300" />
+ <BoostAttributes
+ MapType="cluster"
+ Target="sdm630"
+ Resolution="any"
+ Mappings="0, 1, 1" />
+ </BoostParamsMappings>
+</PerfBoosts>
diff --git a/egl.cfg b/egl.cfg
index c4a1437..c4a1437 100644..100755
--- a/egl.cfg
+++ b/egl.cfg
diff --git a/fstab.qcom b/fstab.qcom
index 11c9644..a60b0bb 100644..100755
--- a/fstab.qcom
+++ b/fstab.qcom
@@ -6,8 +6,10 @@
# Currently we dont have e2fsck compiled. So fs check would failed.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
-/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1,discard wait
-/dev/block/bootdevice/by-name/userdata /data ext4 nosuid,nodev,barrier=1,noauto_da_alloc,discard wait,check,encryptable=footer
-/devices/soc/c0a4900.sdhci/mmc_host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=footer
-/dev/block/zram0 none swap defaults zramsize=536870912
+/dev/block/bootdevice/by-name/system / ext4 ro,barrier=1,discard wait,slotselect,verify
+/dev/block/bootdevice/by-name/userdata /data ext4 nosuid,nodev,barrier=1,noauto_da_alloc,discard,lazytime wait,check,forceencrypt=footer,crashcheck
+/devices/soc/c084000.sdhci/mmc_host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=footer
/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
+/dev/block/bootdevice/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait,slotselect
+/dev/block/bootdevice/by-name/bluetooth /bt_firmware vfat ro,shortname=lower,uid=1002,gid=3002,dmask=227,fmask=337,context=u:object_r:bt_firmware_file:s0 wait,slotselect
+/devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
diff --git a/gamedwhitelist.xml b/gamedwhitelist.xml
new file mode 100755
index 0000000..ed1e870
--- /dev/null
+++ b/gamedwhitelist.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+
+<!--
+/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of The Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+-->
+
+ <!--
+/* Three lists exists,
+ * GamedRoBlackList: the name pf the apps
+ * for which the gamed profile should never be applied.
+ * GamedROGame lists: the name of the apps for which gamed
+ * profile should always be applied.
+ * The above two lists are never modified. And contain at
+ * max of 20 entries.
+ * ReadWriteGamed lists is the list of the apps for which the
+ * decision to apply a game-profile is based on the type of
+ * the app. This list can contain 100 entries.
+ * Can be over-written during the execution of the program.It
+ * is maintained as a circular list.
+ *
+ * Activity Type for GamedAppList is determined as follows
+ * GAME =1 , Benchmark =2 , App =3.
+*/ -->
+<AppCatalog>
+ <GamedROBlackList>
+ <AppAttributes
+ PackageName="com.android.launcher2"
+ ActivityType="3" />
+ <AppAttributes
+ PackageName="com.android.launcher3"
+ ActivityType="3" />
+ <AppAttributes
+ PackageName="com.android.systemui"
+ ActivityType="3" />
+ <AppAttributes
+ PackageName="com.google.android.talk"
+ ActivityType="3" />
+ <AppAttributes
+ PackageName="com.facebook.katana"
+ ActivityType="3" />
+ </GamedROBlackList>
+
+ <GamedROGameList>
+ <AppAttributes
+ PackageName="com.ea.games.r3_row"
+ ActivityType="1" />
+ <AppAttributes
+ PackageName="com.kiloo.subwaysurf"
+ ActivityType="1" />
+ </GamedROGameList>
+
+ <GamedRWAppList>
+ </GamedRWAppList>
+
+</AppCatalog>
diff --git a/gpio-keys.kl b/gpio-keys.kl
index 2147c94..7d5afc3 100644..100755
--- a/gpio-keys.kl
+++ b/gpio-keys.kl
@@ -25,8 +25,8 @@
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-key 115 VOLUME_UP WAKE_DROPPED
-key 114 VOLUME_DOWN WAKE_DROPPED
-key 102 HOME WAKE_DROPPED
-key 528 FOCUS WAKE_DROPPED
-key 766 CAMERA WAKE_DROPPED
+key 115 VOLUME_UP
+key 114 VOLUME_DOWN
+key 102 HOME
+key 528 FOCUS
+key 766 CAMERA
diff --git a/hostapd.accept b/hostapd.accept
index 923eab6..923eab6 100644..100755
--- a/hostapd.accept
+++ b/hostapd.accept
diff --git a/hostapd.conf b/hostapd.conf
index 28fd3bc..28fd3bc 100644..100755
--- a/hostapd.conf
+++ b/hostapd.conf
diff --git a/hostapd.deny b/hostapd.deny
index e4b6c09..e4b6c09 100644..100755
--- a/hostapd.deny
+++ b/hostapd.deny
diff --git a/init.qcom.modem_links.sh b/init.qcom.modem_links.sh
index 8aba652..8aba652 100644..100755
--- a/init.qcom.modem_links.sh
+++ b/init.qcom.modem_links.sh
diff --git a/init.qti.qseecomd.sh b/init.qti.qseecomd.sh
new file mode 100755
index 0000000..9d14ea2
--- /dev/null
+++ b/init.qti.qseecomd.sh
@@ -0,0 +1,35 @@
+#!/system/bin/sh
+# Copyright (c) 2016, The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+# * Neither the name of The Linux Foundation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+
+while [ "$registered" != "true" ]
+do
+ sleep 0.1
+ registered="`getprop sys.listeners.registered`"
+done
diff --git a/init.target.rc b/init.target.rc
index 909f6f2..f33e1f0 100644..100755
--- a/init.target.rc
+++ b/init.target.rc
@@ -1,4 +1,4 @@
-# Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
+# Copyright (c) 2013-2017, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
@@ -28,14 +28,19 @@
#
on early-init
- mkdir /firmware 0771 system system
- mkdir /bt_firmware 0771 system system
symlink /data/tombstones /tombstones
- mkdir /dsp 0771 media media
+
+on init
+ write /dev/stune/foreground/schedtune.sched_boost_no_override 1
+ write /dev/stune/top-app/schedtune.sched_boost_no_override 1
+ write /dev/stune/schedtune.colocate 0
+ write /dev/stune/background/schedtune.colocate 0
+ write /dev/stune/system-background/schedtune.colocate 0
+ write /dev/stune/foreground/schedtune.colocate 0
+ write /dev/stune/top-app/schedtune.colocate 1
on fs
- wait /dev/block/platform/soc/1da4000.ufshc
- symlink /dev/block/platform/soc/1da4000.ufshc /dev/block/bootdevice
+ wait /dev/block/bootdevice
mount_all fstab.qcom
swapon_all fstab.qcom
@@ -43,27 +48,23 @@ on fs
# these partition flashed on the device. Failure to mount any partition in fstab file
# results in failure to launch late-start class.
- wait /dev/block/bootdevice/by-name/cache
- mount ext4 /dev/block/bootdevice/by-name/cache /cache nosuid nodev barrier=1
-
wait /dev/block/bootdevice/by-name/persist
mount ext4 /dev/block/bootdevice/by-name/persist /persist nosuid nodev barrier=1
mkdir /persist/data 0700 system system
mkdir /persist/bms 0700 root system
restorecon_recursive /persist
- wait /dev/block/bootdevice/by-name/dsp
mount ext4 /dev/block/bootdevice/by-name/dsp /dsp ro nosuid nodev barrier=1
-
- wait /dev/block/bootdevice/by-name/modem
- mount vfat /dev/block/bootdevice/by-name/modem /firmware ro shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0
-
- wait /dev/block/bootdevice/by-name/bluetooth
- mount vfat /dev/block/bootdevice/by-name/bluetooth /bt_firmware ro shortname=lower,uid=1002,gid=3002,dmask=227,fmask=337,context=u:object_r:bt_firmware_file:s0
+ mount ext4 /dev/block/bootdevice/by-name/dsp_a /dsp ro nosuid nodev barrier=1
on post-fs
+ start qseecomd
+ exec - root root root -- /system/bin/init.qti.qseecomd.sh
write /dev/ipa 1
+on init
+ write /sys/module/qpnp_rtc/parameters/poweron_alarm 1
+
on post-fs-data
mkdir /data/tombstones 0771 system system
mkdir /tombstones/modem 0771 system system
@@ -71,21 +72,66 @@ on post-fs-data
mkdir /tombstones/wcnss 0771 system system
mkdir /tombstones/dsps 0771 system system
mkdir /data/misc/hbtp 0750 system system
+ mkdir /data/misc/seemp 0700 system system
+ mkdir /data/misc/tloc 0700 system drmrpc
+# For cpusets initialize for Silver Only first and then Silver + Gold
+# Silver Only configuration cannot work with 0-7
on boot
start rmt_storage
start rfs_access
+ write /dev/cpuset/top-app/cpus 0-3
+ write /dev/cpuset/foreground/cpus 0-3
+ write /dev/cpuset/foreground/boost/cpus 0-3
+ write /dev/cpuset/background/cpus 0-3
+ write /dev/cpuset/system-background/cpus 0-3
write /dev/cpuset/top-app/cpus 0-7
write /dev/cpuset/foreground/cpus 0-7
write /dev/cpuset/foreground/boost/cpus 0-7
- write /dev/cpuset/background/cpus 0-7
- write /dev/cpuset/system-background/cpus 0-7
+ write /dev/cpuset/background/cpus 0
+ write /dev/cpuset/system-background/cpus 0-2
+ ####Regionalization config and prop files####
+ chmod 0644 /persist/speccfg/spec
+ chmod 0644 /persist/speccfg/devicetype
+ chmod 0644 /persist/speccfg/mbnversion
+ chmod 0644 /persist/speccfg/.not_triggered
+ chmod 0644 /persist/speccfg/vendor_ro.prop
+ chmod 0644 /persist/speccfg/vendor_persist.prop
+ chmod 0644 /persist/speccfg/submask
+ chmod 0644 /persist/speccfg/partition
+ chown system system /persist/speccfg/spec
+ chown system system /persist/speccfg/devicetype
+ chown system system /persist/speccfg/mbnversion
+ chown system system /persist/speccfg/.not_triggered
+ chown system system /persist/speccfg/vendor_ro.prop
+ chown system system /persist/speccfg/vendor_persist.prop
+ chown system system /persist/speccfg/submask
+ chown system system /persist/speccfg/partition
+
+#Peripheral manager
+service per_mgr /system/bin/pm-service
+ class core
+ user system
+ group system
+ ioprio rt 4
+
+service per_proxy /system/bin/pm-proxy
+ class core
+ user system
+ group system
+ disabled
+
+on property:init.svc.per_mgr=running
+ start per_proxy
+
+on property:sys.shutdown.requested=*
+ stop per_proxy
#start camera server as daemon
-service qcamerasvr /system/bin/mm-qcamera-daemon
- class late_start
- user camera
- group camera system inet input graphics
+#service qcamerasvr /system/bin/mm-qcamera-daemon
+# class late_start
+# user camera
+# group camera system inet input graphics
## import cne init file
#on post-fs
@@ -130,6 +176,9 @@ service qseecomd /system/bin/qseecomd
service thermal-engine /system/vendor/bin/thermal-engine
class main
user root
+ socket thermal-send-client stream 0666 system system
+ socket thermal-recv-client stream 0660 system system
+ socket thermal-recv-passive-client stream 0666 system system
group root
#service security-check1 /sbin/security_boot_check system
@@ -156,10 +205,10 @@ service hbtp /system/vendor/bin/hbtp_daemon
group system
disabled
-#service audiod /system/bin/audiod
-# class late_start
-# user system
-# group system
+service audiod /system/bin/audiod
+ class late_start
+ user system
+ group system
#
#service usf_tester /system/bin/usf_tester
# user system
@@ -226,13 +275,13 @@ service imsqmidaemon /system/bin/imsqmidaemon
class main
user system
socket ims_qmid stream 0660 system radio
- group radio net_raw log diag
+ group radio log diag
service imsdatadaemon /system/bin/imsdatadaemon
class main
user system
socket ims_datad stream 0660 system radio
- group system wifi radio inet net_raw log diag net_admin
+ group system wifi radio inet log diag
disabled
#
#service mdm_helper /system/bin/mdm_helper
@@ -275,6 +324,18 @@ service imsdatadaemon /system/bin/imsdatadaemon
#service gnss-detect /system/vendor/bin/gnss.qca1530.sh detect
# class core
# oneshot
+
+service energy-awareness /system/bin/energy-awareness
+ class main
+ user system
+ group system
+ oneshot
+
+service mdtpd /system/vendor/bin/mdtpd
+ class late_start
+ user root
+ group system radio drmrpc
+
service pd_mapper /system/vendor/bin/pd-mapper
class core
@@ -298,7 +359,7 @@ service ims_rtp_daemon /system/bin/ims_rtp_daemon
class main
user system
socket ims_rtpd stream 0660 system radio
- group radio net_raw diag inet log
+ group radio diag inet log
disabled
service imscmservice /system/bin/imscmservice
@@ -309,7 +370,8 @@ service imscmservice /system/bin/imscmservice
on property:sys.ims.DATA_DAEMON_STATUS=1
start ims_rtp_daemon
-#
+ start imscmservice
+
service ppd /system/vendor/bin/mm-pp-dpps
class late_start
@@ -336,6 +398,11 @@ on property:init.svc.zygote=running
on property:init.svc.zygote=restarting
stop ppd
+on charger
+ load_system_props
+ start qcom-post-boot
+ start hvdcp_opti
+
#
#service nqs /system/bin/nqs
# class late_start
@@ -354,3 +421,25 @@ on property:init.svc.zygote=restarting
# socket vqtss stream 0660 system system
# user system
# group system
+
+service seempd /system/bin/seempd
+class late_start
+user system
+group system sdcard_rw
+socket seempdw dgram 0666 system system
+
+service tlocd /system/bin/tloc_daemon
+ class late_start
+ user system
+ group drmrpc
+
+service hvdcp_opti /system/bin/hvdcp_opti
+ class main
+ user root
+ group system wakelock
+
+service smcinvoked /system/vendor/bin/smcinvoked
+ class main
+ user system
+ group system
+
diff --git a/media_codecs.xml b/media_codecs.xml
new file mode 100755
index 0000000..c6a96b6
--- /dev/null
+++ b/media_codecs.xml
@@ -0,0 +1,399 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- Copyright (C) 2012-2017 The Linux Foundation. All rights reserved.
+ Not a contribution.
+
+ Copyright (C) 2012-2013 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!--
+<!DOCTYPE MediaCodecs [
+<!ELEMENT Include EMPTY>
+<!ATTLIST Include href CDATA #REQUIRED>
+<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
+<!ELEMENT Decoders (MediaCodec|Include)*>
+<!ELEMENT Encoders (MediaCodec|Include)*>
+<!ELEMENT MediaCodec (Type|Quirk|Include)*>
+<!ATTLIST MediaCodec name CDATA #REQUIRED>
+<!ATTLIST MediaCodec type CDATA>
+<!ELEMENT Type EMPTY>
+<!ATTLIST Type name CDATA #REQUIRED>
+<!ELEMENT Quirk EMPTY>
+<!ATTLIST Quirk name CDATA #REQUIRED>
+]>
+
+There's a simple and a complex syntax to declare the availability of a
+media codec:
+
+A codec that properly follows the OpenMax spec and therefore doesn't have any
+quirks and that only supports a single content type can be declared like so:
+
+ <MediaCodec name="OMX.foo.bar" type="something/interesting" />
+
+If a codec has quirks OR supports multiple content types, the following syntax
+can be used:
+
+ <MediaCodec name="OMX.foo.bar" >
+ <Type name="something/interesting" />
+ <Type name="something/else" />
+ ...
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Quirk name="output-buffers-are-unreadable" />
+ </MediaCodec>
+
+Only the three quirks included above are recognized at this point:
+
+"requires-allocate-on-input-ports"
+ must be advertised if the component does not properly support specification
+ of input buffers using the OMX_UseBuffer(...) API but instead requires
+ OMX_AllocateBuffer to be used.
+
+"requires-allocate-on-output-ports"
+ must be advertised if the component does not properly support specification
+ of output buffers using the OMX_UseBuffer(...) API but instead requires
+ OMX_AllocateBuffer to be used.
+
+"output-buffers-are-unreadable"
+ must be advertised if the emitted output buffers of a decoder component
+ are not readable, i.e. use a custom format even though abusing one of
+ the official OMX colorspace constants.
+ Clients of such decoders will not be able to access the decoded data,
+ naturally making the component much less useful. The only use for
+ a component with this quirk is to render the output to the screen.
+ Audio decoders MUST NOT advertise this quirk.
+ Video decoders that advertise this quirk must be accompanied by a
+ corresponding color space converter for thumbnail extraction,
+ matching surfaceflinger support that can render the custom format to
+ a texture and possibly other code, so just DON'T USE THIS QUIRK.
+
+
+-->
+
+<!--
+ Decoder capabilities for sdm660
+ __________ _________________________________________ ___________________
+ | Codec | W H fps Mbps MB/s | Encode Secure-dec |
+ |__________|_________________________________________|___________________|
+ | hevc | 3840 2160 30 100 972000 | Y Y |
+ | h264 | 3840 2160 30 100 972000 | Y Y |
+ | h263 | 864 480 30 2 48600 | Y N |
+ | mpeg4 | 1920 1088 60 60 489600 | Y N |
+ | mpeg2 | 1920 1088 30 40 244800 | N Y |
+ | vc1 | 1920 1088 60 60 489600 | N N |
+ | vp8 | 3840 2160 30 100 972000 | Y N |
+ | vp9 | 3840 2160 30 100 972000 | N Y |
+ | divx3 | 720 480 30 2 40500 | N N |
+ | div4/5/6 | 1920 1088 30 10 244800 | N N |
+ |__________|_________________________________________|___________________|
+
+-->
+
+<!--
+ Encoder capabilities for sdm660
+ ____________________________________________________
+ | Codec | W H fps Mbps MB/s |
+ |__________|_________________________________________|
+ | hevc | 3840 2160 30 100 972000 |
+ | h264 | 3840 2160 30 100 972000 |
+ | h263 | 864 480 30 2 48600 |
+ | mpeg4 | 1920 1088 30 40 244800 |
+ | vp8 | 1920 1088 30 40 244800 |
+ |____________________________________________________|
+-->
+
+<MediaCodecs>
+ <Include href="media_codecs_google_audio.xml" />
+ <Include href="media_codecs_google_telephony.xml" />
+ <Settings>
+ <Setting name="max-video-encoder-input-buffers" value="11" />
+ </Settings>
+ <Encoders>
+ <!-- Video Hardware -->
+ <MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Quirk name="requires-loaded-to-idle-after-allocation" />
+ <Limit name="size" min="176x64" max="3840x2160" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="972000" />
+ <Limit name="bitrate" range="1-100000000" />
+ <Limit name="concurrent-instances" max="16" />
+ <Feature name="intra-refresh" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Quirk name="requires-loaded-to-idle-after-allocation" />
+ <Limit name="size" min="96x96" max="3840x2160" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="972000" />
+ <Limit name="bitrate" range="1-100000000" />
+ <Limit name="concurrent-instances" max="16" />
+ <Feature name="intra-refresh" />
+ <Feature name="can-swap-width-height" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Quirk name="requires-loaded-to-idle-after-allocation" />
+ <Limit name="size" min="96x64" max="1920x1088" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="244800" />
+ <Limit name="bitrate" range="1-40000000" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Quirk name="requires-loaded-to-idle-after-allocation" />
+ <Limit name="size" min="96x64" max="864x480" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="48600" />
+ <Limit name="bitrate" range="1-2000000" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Quirk name="requires-loaded-to-idle-after-allocation" />
+ <Limit name="size" min="96x64" max="1920x1088" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="244800" />
+ <Limit name="bitrate" range="1-40000000" />
+ <Limit name="concurrent-instances" max="16" />
+ <Feature name="intra-refresh" />
+ </MediaCodec>
+ </Encoders>
+ <Decoders>
+ <!-- Audio Hardware -->
+ <!-- Audio Software -->
+ <MediaCodec name="OMX.qti.audio.decoder.flac" type="audio/flac" >
+ <Limit name="concurrent-instances" max="10" />
+ </MediaCodec>
+ <!-- Video Hardware -->
+ <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="3840x2160" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="972000" />
+ <Limit name="bitrate" range="1-100000000" />
+ <Feature name="adaptive-playback" />
+ <Limit name="concurrent-instances" max="16" />
+ <Feature name="can-swap-width-height" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="3840x2160" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="972000" />
+ <Limit name="bitrate" range="1-100000000" />
+ <Feature name="adaptive-playback" />
+ <Feature name="secure-playback" required="true" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="1920x1088" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="244800" />
+ <Limit name="bitrate" range="1-40000000" />
+ <Feature name="adaptive-playback" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.mpeg2.secure" type="video/mpeg2" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="1920x1088" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="244800" />
+ <Limit name="bitrate" range="1-40000000" />
+ <Feature name="adaptive-playback" />
+ <Feature name="secure-playback" required="true" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="1920x1088" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="489600" />
+ <Limit name="bitrate" range="1-60000000" />
+ <Feature name="adaptive-playback" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="864x480" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="48600" />
+ <Limit name="bitrate" range="1-2000000" />
+ <Feature name="adaptive-playback" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.wmv" type="video/x-ms-wmv" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="1920x1088" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="489600" />
+ <Limit name="bitrate" range="1-60000000" />
+ <Feature name="adaptive-playback" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.wmv.secure" type="video/x-ms-wmv" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="1920x1088" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="489600" />
+ <Limit name="bitrate" range="1-60000000" />
+ <Feature name="adaptive-playback" />
+ <Feature name="secure-playback" required="true" />
+ <Limit name="concurrent-instances" max="7" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.vc1" type="video/x-ms-wmv" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="1920x1088" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="489600" />
+ <Limit name="bitrate" range="1-60000000" />
+ <Feature name="adaptive-playback" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.vc1.secure" type="video/x-ms-wmv" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="1920x1088" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="489600" />
+ <Limit name="bitrate" range="1-60000000" />
+ <Feature name="adaptive-playback" />
+ <Feature name="secure-playback" required="true" />
+ <Limit name="concurrent-instances" max="7" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.divx" type="video/divx" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="1920x1088" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="244800" />
+ <Limit name="bitrate" range="1-10000000" />
+ <Feature name="adaptive-playback" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.divx311" type="video/divx311" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="720x480" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="40500" />
+ <Limit name="bitrate" range="1-2000000" />
+ <Feature name="adaptive-playback" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.divx4" type="video/divx4" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="1920x1088" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="244800" />
+ <Limit name="bitrate" range="1-10000000" />
+ <Feature name="adaptive-playback" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="3840x2160" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="972000" />
+ <Limit name="bitrate" range="1-100000000" />
+ <Feature name="adaptive-playback" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="3840x2160" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="972000" />
+ <Limit name="bitrate" range="1-100000000" />
+ <Feature name="adaptive-playback" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="3840x2160" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="979200" />
+ <Limit name="bitrate" range="1-100000000" />
+ <Limit name="frame-rate" range="1-240" />
+ <Feature name="adaptive-playback" />
+ <Feature name="secure-playback" required="true" />
+ <Limit name="concurrent-instances" max="10" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="3840x2160" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="972000" />
+ <Limit name="bitrate" range="1-100000000" />
+ <Feature name="adaptive-playback" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports" />
+ <Limit name="size" min="64x64" max="3840x2160" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
+ <Limit name="blocks-per-second" min="1" max="972000" />
+ <Limit name="bitrate" range="1-100000000" />
+ <Feature name="adaptive-playback" />
+ <Feature name="secure-playback" required="true" />
+ <Limit name="concurrent-instances" max="16" />
+ </MediaCodec>
+ </Decoders>
+ <Include href="media_codecs_google_video.xml" />
+</MediaCodecs>
diff --git a/media_codecs_performance.xml b/media_codecs_performance.xml
new file mode 100755
index 0000000..1940ef3
--- /dev/null
+++ b/media_codecs_performance.xml
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
+
+ Not a Contribution.
+
+ Copyright 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<MediaCodecs>
+ <Encoders>
+ <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
+ <Limit name="measured-frame-rate-320x240" range="294-294" />
+ <Limit name="measured-frame-rate-720x480" range="80-90" />
+ <Limit name="measured-frame-rate-1280x720" range="32-37" />
+ <Limit name="measured-frame-rate-1920x1080" range="40-40" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
+ <Limit name="measured-frame-rate-320x240" range="226-226" />
+ <Limit name="measured-frame-rate-720x480" range="121-121" />
+ <Limit name="measured-frame-rate-1280x720" range="49-49" />
+ <Limit name="measured-frame-rate-1920x1080" range="16-45" />
+ <Limit name="measured-frame-rate-3840x2160" range="6-24" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" update="true">
+ <Limit name="measured-frame-rate-176x144" range="400-400" />
+ <Limit name="measured-frame-rate-352x288" range="261-261" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" update="true">
+ <Limit name="measured-frame-rate-176x144" range="351-351" />
+ <Limit name="measured-frame-rate-352x288" range="263-263" />
+ <Limit name="measured-frame-rate-640x480" range="144-144" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
+ <Limit name="measured-frame-rate-320x180" range="312-312" />
+ <Limit name="measured-frame-rate-640x360" range="175-174" />
+ <Limit name="measured-frame-rate-1280x720" range="30-40" />
+ <Limit name="measured-frame-rate-1920x1080" range="20-25" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
+ <Limit name="measured-frame-rate-320x240" range="185-185" />
+ <Limit name="measured-frame-rate-720x480" range="87-87" />
+ <Limit name="measured-frame-rate-1280x720" range="45-45" />
+ <Limit name="measured-frame-rate-1920x1080" range="28-28" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
+ <Limit name="measured-frame-rate-176x144" range="354-354" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
+ <Limit name="measured-frame-rate-176x144" range="385-385" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
+ <Limit name="measured-frame-rate-320x180" range="100-120" />
+ <Limit name="measured-frame-rate-640x360" range="45-50" />
+ <Limit name="measured-frame-rate-1280x720" range="30-35" />
+ <Limit name="measured-frame-rate-1920x1080" range="20-30" />
+ </MediaCodec>
+ </Encoders>
+ <Decoders>
+ <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
+ <Limit name="measured-frame-rate-320x240" range="409-409" />
+ <Limit name="measured-frame-rate-720x480" range="239-239" />
+ <Limit name="measured-frame-rate-1280x720" range="197-197" />
+ <Limit name="measured-frame-rate-1920x1088" range="88-88" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
+ <Limit name="measured-frame-rate-352x288" range="434-434" />
+ <Limit name="measured-frame-rate-720x480" range="338-338" />
+ <Limit name="measured-frame-rate-1280x720" range="241-241" />
+ <Limit name="measured-frame-rate-1920x1088" range="90-100" />
+ <Limit name="measured-frame-rate-3840x2160" range="30-40" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" update="true">
+ <Limit name="measured-frame-rate-176x144" range="400-400" />
+ <Limit name="measured-frame-rate-352x288" range="323-323" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" update="true">
+ <Limit name="measured-frame-rate-176x144" range="635-650" />
+ <Limit name="measured-frame-rate-480x360" range="268-268" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true">
+ <Limit name="measured-frame-rate-320x240" range="430-430" />
+ <Limit name="measured-frame-rate-640x360" range="303-303" />
+ <Limit name="measured-frame-rate-1280x720" range="389-389" />
+ <Limit name="measured-frame-rate-1920x1080" range="199-199" />
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
+ <Limit name="measured-frame-rate-320x240" range="250-270" />
+ <Limit name="measured-frame-rate-640x360" range="230-250" />
+ <Limit name="measured-frame-rate-1280x720" range="190-210" />
+ <Limit name="measured-frame-rate-1920x1080" range="170-190" />
+ <Limit name="measured-frame-rate-3840x2160" range="48-48" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
+ <Limit name="measured-frame-rate-320x240" range="320-350" />
+ <Limit name="measured-frame-rate-720x480" range="100-130" />
+ <Limit name="measured-frame-rate-1280x720" range="50-58" />
+ <Limit name="measured-frame-rate-1920x1080" range="20-30" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
+ <Limit name="measured-frame-rate-352x288" range="458-458" />
+ <Limit name="measured-frame-rate-640x360" range="210-215" />
+ <Limit name="measured-frame-rate-720x480" range="344-344" />
+ <Limit name="measured-frame-rate-1280x720" range="90-95" />
+ <Limit name="measured-frame-rate-1920x1080" range="50-55" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
+ <Limit name="measured-frame-rate-176x144" range="190-210" />
+ <Limit name="measured-frame-rate-352x288" range="170-182" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
+ <Limit name="measured-frame-rate-320x240" range="575-580" />
+ <Limit name="measured-frame-rate-640x360" range="200-220" />
+ <Limit name="measured-frame-rate-1280x720" range="45-55" />
+ <Limit name="measured-frame-rate-1920x1080" range="18-22" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
+ <Limit name="measured-frame-rate-320x240" range="580-604" />
+ <Limit name="measured-frame-rate-640x360" range="180-185" />
+ <Limit name="measured-frame-rate-1280x720" range="88-92" />
+ <Limit name="measured-frame-rate-1920x1080" range="47-52" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.mpeg4.decoder" update="true">
+ <Type name="video/mp4v-es">
+ <Limit name="measured-frame-rate-176x144" range="380-400" />
+ </Type>
+ </MediaCodec>
+ </Decoders>
+</MediaCodecs>
+
diff --git a/media_profiles.xml b/media_profiles.xml
new file mode 100755
index 0000000..c98d592
--- /dev/null
+++ b/media_profiles.xml
@@ -0,0 +1,1542 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2012-2016 The Linux Foundation. All rights reserved.
+ Not a contribution.
+
+ Copyright (C) 2010 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE MediaSettings [
+<!ELEMENT MediaSettings (CamcorderProfiles,
+ EncoderOutputFileFormat+,
+ VideoEncoderCap+,
+ AudioEncoderCap+,
+ VideoDecoderCap,
+ AudioDecoderCap)>
+<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
+<!ELEMENT EncoderProfile (Video, Audio)>
+<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
+<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
+<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
+<!ATTLIST EncoderProfile cameraId (0|1) #REQUIRED>
+<!ELEMENT Video EMPTY>
+<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
+<!ATTLIST Video bitRate CDATA #REQUIRED>
+<!ATTLIST Video width CDATA #REQUIRED>
+<!ATTLIST Video height CDATA #REQUIRED>
+<!ATTLIST Video frameRate CDATA #REQUIRED>
+<!ELEMENT Audio EMPTY>
+<!ATTLIST Audio codec (amrnb|amrwb|aac|lpcm) #REQUIRED>
+<!ATTLIST Audio bitRate CDATA #REQUIRED>
+<!ATTLIST Audio sampleRate CDATA #REQUIRED>
+<!ATTLIST Audio channels (1|2|6) #REQUIRED>
+<!ELEMENT ImageEncoding EMPTY>
+<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
+<!ELEMENT ImageDecoding EMPTY>
+<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
+<!ELEMENT Camera EMPTY>
+<!ELEMENT EncoderOutputFileFormat EMPTY>
+<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
+<!ELEMENT VideoEncoderCap EMPTY>
+<!ATTLIST VideoEncoderCap name (hevc|h264|h263|m4v|wmv) #REQUIRED>
+<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
+<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxHFRFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxHFRFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxHFRMode CDATA #REQUIRED>
+<!ELEMENT AudioEncoderCap EMPTY>
+<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma|lpcm) #REQUIRED>
+<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
+<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap minChannels (1|2|6) #REQUIRED>
+<!ATTLIST AudioEncoderCap maxChannels (1|2|6) #REQUIRED>
+<!ELEMENT VideoDecoderCap EMPTY>
+<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
+<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
+<!ELEMENT AudioDecoderCap EMPTY>
+<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
+<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
+<!ELEMENT VideoEditorCap EMPTY>
+<!ATTLIST VideoEditorCap maxInputFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEditorCap maxInputFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEditorCap maxOutputFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEditorCap maxOutputFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEditorCap maxPrefetchYUVFrames CDATA #REQUIRED>
+<!ELEMENT ExportVideoProfile EMPTY>
+<!ATTLIST ExportVideoProfile name (h264|h263|m4v) #REQUIRED>
+<!ATTLIST ExportVideoProfile profile CDATA #REQUIRED>
+<!ATTLIST ExportVideoProfile level CDATA #REQUIRED>
+]>
+<!--
+ This file is used to declare the multimedia profiles and capabilities
+ on an android-powered device.
+-->
+<MediaSettings>
+ <!-- Each camcorder profile defines a set of predefined configuration parameters -->
+ <!-- Back Camera -->
+ <CamcorderProfiles cameraId="0">
+
+ <EncoderProfile quality="low" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="high" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="cif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="4kdci" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="24" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="vga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+
+ <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="95" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="70" />
+ <ImageDecoding memCap="20000000" />
+
+ </CamcorderProfiles>
+ <!-- Front Camera -->
+ <CamcorderProfiles cameraId="1">
+
+ <EncoderProfile quality="low" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="high" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="cif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="vga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <!-- TIMELAPSE profiles for front camera -->
+ <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="1200000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="5000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="8000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="95" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="70" />
+ <ImageDecoding memCap="20000000" />
+
+ </CamcorderProfiles>
+ <!-- Logical Camera -->
+ <CamcorderProfiles cameraId="2">
+
+ <EncoderProfile quality="low" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="high" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="cif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="4kdci" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="24" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="vga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+
+ <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="95" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="70" />
+ <ImageDecoding memCap="20000000" />
+
+ </CamcorderProfiles>
+ <!-- Logical Camera -->
+ <CamcorderProfiles cameraId="3">
+
+ <EncoderProfile quality="low" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="high" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="cif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="4kdci" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="24" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="vga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+
+ <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="95" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="70" />
+ <ImageDecoding memCap="20000000" />
+
+ </CamcorderProfiles>
+
+ <EncoderOutputFileFormat name="3gp" />
+ <EncoderOutputFileFormat name="mp4" />
+
+ <!--
+ If a codec is not enabled, it is invisible to the applications
+ In other words, the applications won't be able to use the codec
+ or query the capabilities of the codec at all if it is disabled
+ -->
+ <VideoEncoderCap name="h264" enabled="true"
+ minBitRate="64000" maxBitRate="42000000"
+ minFrameWidth="176" maxFrameWidth="4096"
+ minFrameHeight="144" maxFrameHeight="2160"
+ minFrameRate="15" maxFrameRate="30"
+ maxHFRFrameWidth="1920" maxHFRFrameHeight="1080"
+ maxHFRMode="60" />
+
+ <VideoEncoderCap name="h263" enabled="true"
+ minBitRate="64000" maxBitRate="2000000"
+ minFrameWidth="176" maxFrameWidth="800"
+ minFrameHeight="144" maxFrameHeight="480"
+ minFrameRate="15" maxFrameRate="30"
+ maxHFRFrameWidth="0" maxHFRFrameHeight="0"
+ maxHFRMode="0" />
+
+ <VideoEncoderCap name="m4v" enabled="true"
+ minBitRate="64000" maxBitRate="40000000"
+ minFrameWidth="176" maxFrameWidth="1920"
+ minFrameHeight="144" maxFrameHeight="1088"
+ minFrameRate="15" maxFrameRate="30"
+ maxHFRFrameWidth="0" maxHFRFrameHeight="0"
+ maxHFRMode="0" />
+
+ <VideoEncoderCap name="hevc" enabled="true"
+ minBitRate="64000" maxBitRate="100000000"
+ minFrameWidth="176" maxFrameWidth="4096"
+ minFrameHeight="144" maxFrameHeight="2160"
+ minFrameRate="15" maxFrameRate="30"
+ maxHFRFrameWidth="0" maxHFRFrameHeight="0"
+ maxHFRMode="0" />
+
+ <AudioEncoderCap name="aac" enabled="true"
+ minBitRate="8000" maxBitRate="96000"
+ minSampleRate="8000" maxSampleRate="48000"
+ minChannels="1" maxChannels="6" />
+
+ <AudioEncoderCap name="heaac" enabled="true"
+ minBitRate="8000" maxBitRate="64000"
+ minSampleRate="16000" maxSampleRate="48000"
+ minChannels="1" maxChannels="1" />
+
+ <AudioEncoderCap name="aaceld" enabled="true"
+ minBitRate="16000" maxBitRate="192000"
+ minSampleRate="16000" maxSampleRate="48000"
+ minChannels="1" maxChannels="1" />
+
+ <AudioEncoderCap name="amrwb" enabled="true"
+ minBitRate="6600" maxBitRate="23850"
+ minSampleRate="16000" maxSampleRate="16000"
+ minChannels="1" maxChannels="1" />
+
+ <AudioEncoderCap name="amrnb" enabled="true"
+ minBitRate="5525" maxBitRate="12200"
+ minSampleRate="8000" maxSampleRate="8000"
+ minChannels="1" maxChannels="1" />
+
+ <AudioEncoderCap name="lpcm" enabled="true"
+ minBitRate="768000" maxBitRate="4608000"
+ minSampleRate="8000" maxSampleRate="48000"
+ minChannels="1" maxChannels="6" />
+
+ <!--
+ FIXME:
+ We do not check decoder capabilities at present
+ At present, we only check whether windows media is visible
+ for TEST applications. For other applications, we do
+ not perform any checks at all.
+ -->
+ <VideoDecoderCap name="wmv" enabled="true"/>
+ <AudioDecoderCap name="wma" enabled="true"/>
+
+ <!--
+ The VideoEditor Capability configuration:
+ - maxInputFrameWidth: maximum video width of imported video clip.
+ - maxInputFrameHeight: maximum video height of imported video clip.
+ - maxOutputFrameWidth: maximum video width of exported video clip.
+ - maxOutputFrameHeight: maximum video height of exported video clip.
+ - maxPrefetchYUVFrames: maximum prefetch YUV frames for encoder,
+ used to limit the amount of memory for prefetched YUV frames.
+ For this platform, it allows maximum 30MB(3MB per 1080p frame x 10
+ frames) memory.
+ -->
+ <VideoEditorCap maxInputFrameWidth="1280"
+ maxInputFrameHeight="720" maxOutputFrameWidth="1280"
+ maxOutputFrameHeight="720" maxPrefetchYUVFrames="10"/>
+ <!--
+ The VideoEditor Export codec profile and level values
+ correspond to the values in OMX_Video.h.
+ E.g. for h264, profile value 1 means OMX_VIDEO_AVCProfileBaseline
+ and level 4096 means OMX_VIDEO_AVCLevel41.
+ Please note that the values are in decimal.
+ These values are for video encoder.
+ -->
+ <!--
+ Codec = h.264, Baseline profile, level 4.0
+ -->
+ <ExportVideoProfile name="h264" profile= "1" level="2048"/>
+ <!--
+ Codec = h.263, Baseline profile, level 70
+ -->
+ <ExportVideoProfile name="h263" profile= "1" level="128"/>
+ <!--
+ Codec = mpeg4, Simple profile, level 5
+ -->
+ <ExportVideoProfile name="m4v" profile= "1" level="128"/>
+</MediaSettings>
diff --git a/msm_irqbalance.conf b/msm_irqbalance.conf
index f6f4f8a..981ba23 100644..100755
--- a/msm_irqbalance.conf
+++ b/msm_irqbalance.conf
@@ -1,2 +1,5 @@
-PRIO=1,1,1,1,0,0,0,0
-IGNORED_IRQ=19,39,165
+PRIO=1,1,0,0,0,0,0,0
+#arch_timer, arm-pmu, arch_mem_timer, glink-smem-rpm, mpm irqs
+IGNORED_IRQ=19,22,39,200,203
+#WLAN irqs
+BLACKLIST_IRQ=446,455,456
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index 1825a0b..f7cba1e 100644..100755
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -35,32 +35,47 @@
<item>0x40C00000</item> <!-- SCHEDBOOST resource opcode-->
<item>0x1</item> <!-- SCHEDBOOST resource value-->
<item>0x40804000</item> <!-- CPUBOOST_MAX_FREQ BIG Core resource opcode-->
- <item>0xFFF</item> <!-- CPUBOOST MAX_FREQ resource value-->
+ <item>0xFFF</item> <!-- CPUBOOST MAX_FREQ resource value-->
<item>0x40804100</item> <!-- CPUBOOST_MAX_FREQ LITTLE Core resource opcode-->
- <item>0xFFF</item> <!-- CPUBOOST MAX_FREQ resource value-->
- <item>0x40800000</item> <!-- CPUBOOST_MIN_FREQ BIG Core resource opcode-->
- <item>0xFFF</item> <!-- CPUBOOST MIN_FREQ resource value-->
- <item>0x40800100</item> <!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode-->
- <item>0xFFF</item> <!-- CPUBOOST MIN_FREQ resource value-->
- <item>0x41800000</item> <!-- CPUBW_MIN_FREQ resource opcode-->
- <item>140</item> <!-- CPUBW_MIN_FREQ resource value-->
+ <item>0xFFF</item> <!-- CPUBOOST MAX_FREQ resource value-->
+ <item>0x40802000</item> <!-- CPUBOOST_MIN_FREQ BIG Core resource opcode-->
+ <item>3</item> <!-- CPUBOOST MIN_FREQ resource value-->
+ <item>0x40802100</item> <!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode-->
+ <item>2</item> <!-- CPUBOOST MIN_FREQ resource value-->
+ </integer-array>
+ <!-- Whether packing disable is enabled. -->
+ <bool name="config_disablePacking">true</bool>
+ <integer name="disablepacking_timeout_param">1500</integer>
+ <integer-array name="launchboost_packing_param_value">
<item>0x40400000</item> <!-- POWER COLLAPSE resource opcode-->
<item>0x1</item> <!-- POWER COLLAPSE resource value-->
<item>0x42C10000</item> <!-- STORAGE CLK SCALING resource opcode-->
<item>0x1</item> <!-- STORAGE CLK SCALING resource value-->
</integer-array>
+ <bool name="config_enableLaunchBoostv2">true</bool>
+ <integer name="lboostv2_timeout_param">15000</integer>
+ <integer-array name="lboostv2_param_value">
+ <item>0x40C5C000</item> <!-- SCHED FREQ_AGGR_THRH resource opcode-->
+ <item>50</item> <!-- SCHED FREQ_AGGR_THRH resource value-->
+ </integer-array>
+
+
<bool name="config_enableCpuBoostForOverScrollerFling">true</bool>
<integer-array name="flingboost_param_value">
- <item>0x41800000</item> <!-- CPUBW_MIN_FREQ resource opcode-->
- <item>0x33</item> <!-- CPUBW_MIN_FREQ resource value-->
- <item>0x40800000</item> <!-- CPUBOOST_MIN_FREQ BIG CORE resource opcode -->
- <item>1000</item> <!-- CPUBOOST MIN_FREQ resource value -->
- <item>0x40800100</item> <!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode -->
- <item>1000</item> <!-- CPUBOOST MIN_FREQ resource value -->
<item>0x40C00000</item> <!-- SCHEDBOOST resource opcode-->
- <item>0x1</item> <!-- SCHEDBOOST resource value-->
- <item>0x40C28000</item> <!-- SCHEDGROUP resource opcode-->
- <item>0x1</item> <!-- SCHEDGROUP resource value-->
+ <item>0x2</item> <!-- SCHEDBOOST resource value-->
+ <item>0x40802000</item> <!-- CPUBOOST_MIN_FREQ BIG CORE resource opcode -->
+ <item>1</item> <!-- CPUBOOST MIN_FREQ resource value -->
+ <item>0x40802100</item> <!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode -->
+ <item>1</item> <!-- CPUBOOST MIN_FREQ resource value -->
+ <item>0x41800000</item> <!-- CPUBW_MIN_FREQ resource opcode-->
+ <item>0x31</item> <!-- CPUBW_MIN_FREQ resource value-->
+ <item>0x41400000</item> <!-- ABOVE_HISPEED_DELAY_BIG resource opcode-->
+ <item>1</item> <!-- ABOVE_HISPEED_DELAY_BIG resource value-->
+ <item>0x41418000</item> <!-- IO_IS_BUSY_BIG resource opcode-->
+ <item>1</item> <!-- IO_IS_BUSY_BIG resource value-->
+ <item>0x40C5C000</item> <!-- SCHED FREQ_AGGR_THRH resource opcode-->
+ <item>40</item> <!-- SCHED FREQ_AGGR_THRH resource value-->
</integer-array>
<!-- Operating volatage for bluetooth controller. 0 by default-->
@@ -69,7 +84,19 @@
<bool name="config_enableCpuBoostForScroller">true</bool>
<integer-array name="scrollboost_param_value">
<item>0x40C00000</item> <!-- SCHEDBOOST resource opcode-->
- <item>0x1</item> <!-- SCHEDBOOST resource value-->
+ <item>0x2</item> <!-- SCHEDBOOST resource value-->
+ <item>0x40802000</item> <!-- CPUBOOST_MIN_FREQ BIG CORE resource opcode -->
+ <item>1</item> <!-- CPUBOOST MIN_FREQ resource value -->
+ <item>0x40802100</item> <!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode -->
+ <item>1</item> <!-- CPUBOOST MIN_FREQ resource value -->
+ <item>0x41800000</item> <!-- CPUBW_MIN_FREQ resource opcode-->
+ <item>0x31</item> <!-- CPUBW_MIN_FREQ resource value-->
+ <item>0x41400000</item> <!-- ABOVE_HISPEED_DELAY_BIG resource opcode-->
+ <item>1</item> <!-- ABOVE_HISPEED_DELAY_BIG resource value-->
+ <item>0x41418000</item> <!-- IO_IS_BUSY_BIG resource opcode-->
+ <item>1</item> <!-- IO_IS_BUSY_BIG resource value-->
+ <item>0x40C5C000</item> <!-- SCHED FREQ_AGGR_THRH resource opcode-->
+ <item>40</item> <!-- SCHED FREQ_AGGR_THRH resource value-->
</integer-array>
<bool name="config_debugBoost">true</bool>
@@ -89,4 +116,8 @@
<item>0x40800000</item> <!-- SCALING_MIN_FREQ big cluster resource opcode -->
<item>0x4A6</item> <!-- SCALING_MIN_FREQ of 1190 MHz big cluster resource value -->
</integer-array>
+ <!-- The duration (in milliseconds) for the outgoing sms authorization request to timeout.-->
+ <integer name="config_sms_authorization_timeout_ms">15000</integer>
+ <!-- Enable SMS authorization support -->
+ <bool name="config_sms_authorization_enabled">true</bool>
</resources>
diff --git a/overlay/frameworks/base/core/res/res/xml/power_profile.xml b/overlay/frameworks/base/core/res/res/xml/power_profile.xml
new file mode 100755
index 0000000..39c08d7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/xml/power_profile.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (c) 2016, The Linux Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of The Linux Foundation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
+-->
+
+
+<device name="Android">
+ <!-- Most values are the incremental current used by a feature,
+ in mA (measured at nominal voltage).
+ The default values are deliberately incorrect dummy values.
+ OEM's must measure and provide actual values before
+ shipping a device.
+ Example real-world values are given in comments, but they
+ are totally dependent on the platform and can vary
+ significantly, so should be measured on the shipping platform
+ with a power meter. -->
+ <item name="none">0</item>
+ <item name="screen.on">63</item> <!-- ~200mA -->
+ <item name="screen.full">261</item> <!-- ~300mA -->
+
+ <!-- A list of heterogeneous CPU clusters, where the value for each cluster represents the
+ number of CPU cores for that cluster.
+
+ Ex:
+ <array name="cpu.clusters.cores">
+ <value>4</value> // cluster 0 has cpu0, cpu1, cpu2, cpu3
+ <value>2</value> // cluster 1 has cpu4, cpu5
+ </array> -->
+ <array name="cpu.clusters.cores">
+ <value>4</value> <!-- cluster 0 has cpu0, cpu1, cpu2, cpu3 -->
+ <value>4</value> <!-- cluster 1 has cpu4, cpu5, cpu6, cpu7 -->
+ </array>
+
+ <!-- Different CPU speeds for cluster 0 as reported in
+ /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state.
+
+ There must be one of these for each cluster, labeled:
+ cpu.speeds.cluster0, cpu.speeds.cluster1, etc... -->
+ <array name="cpu.speeds.cluster0">
+ <value>633000</value> <!-- 633 MHz CPU speed -->
+ <value>902000</value> <!-- 902 MHz CPU speed -->
+ <value>1113000</value> <!-- 1113 MHz CPU speed -->
+ <value>1401000</value> <!-- 1401 MHz CPU speed -->
+ <value>1536000</value> <!-- 1536 MHz CPU speed -->
+ <value>1747000</value> <!-- 1747 MHz CPU speed -->
+ <value>1843000</value> <!-- 1843 MHz CPU speed -->
+ </array>
+
+ <!-- Current at each CPU speed for cluster 0, as per 'cpu.speeds.cluster0'.
+ Like cpu.speeds.cluster0, there must be one of these present for
+ each heterogeneous CPU cluster. -->
+ <array name="cpu.active.cluster0">
+ <value>34</value> <!-- ~34mA -->
+ <value>60</value> <!-- ~60mA -->
+ <value>85</value> <!-- ~85mA -->
+ <value>128</value> <!-- ~128mA -->
+ <value>163</value> <!-- ~163mA -->
+ <value>202</value> <!-- ~202mA -->
+ <value>253</value> <!-- ~253mA -->
+ </array>
+
+ <array name="cpu.speeds.cluster1">
+ <value>1113000</value> <!-- 1113 MHz CPU speed -->
+ <value>1401000</value> <!-- 1401 MHz CPU speed -->
+ <value>1747000</value> <!-- 1747 MHz CPU speed -->
+ <value>1958000</value> <!-- 1958 MHz CPU speed -->
+ <value>2150000</value> <!-- 2150 MHz CPU speed -->
+ </array>
+
+ <!-- Current at each CPU speed for cluster 1, as per 'cpu.speeds.cluster1'.
+ Like cpu.speeds.cluster1, there must be one of these present for
+ each heterogeneous CPU cluster. -->
+ <array name="cpu.active.cluster1">
+ <value>226</value> <!-- ~226mA -->
+ <value>331</value> <!-- ~331mA -->
+ <value>497</value> <!-- ~497mA -->
+ <value>614</value> <!-- ~614mA -->
+ <value>777</value> <!-- ~777mA -->
+
+ </array>
+
+ <!-- Current when CPU is awake -->
+ <item name="cpu.awake">1.6</item>
+ <!-- Current when CPU is idle -->
+ <item name="cpu.idle">0.1</item>
+
+ <!-- This is the battery capacity in mAh (measured at nominal voltage) -->
+ <item name="battery.capacity">1000</item>
+
+</device>
diff --git a/p2p_supplicant_overlay.conf b/p2p_supplicant_overlay.conf
index b5e89e0..b5e89e0 100644..100755
--- a/p2p_supplicant_overlay.conf
+++ b/p2p_supplicant_overlay.conf
diff --git a/radio/filesmap b/radio/filesmap
index 4e6619e..b4cbcec 100644..100755
--- a/radio/filesmap
+++ b/radio/filesmap
@@ -1,4 +1,4 @@
-# Copyright (c) 2013, The Linux Foundation. All rights reserved.
+# Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
@@ -27,19 +27,38 @@
# filename partition
-NON-HLOS.bin /dev/block/platform/bootdevice/by-name/modem
-
-sbl1.mbn /dev/block/platform/bootdevice/by-name/sbl1
-tz.mbn /dev/block/platform/bootdevice/by-name/tz
-rpm.mbn /dev/block/platform/bootdevice/by-name/rpm
-emmc_appsboot.mbn /dev/block/platform/bootdevice/by-name/aboot
+NON-HLOS.bin /dev/block/bootdevice/by-name/modem
+BTFM.bin /dev/block/bootdevice/by-name/bluetooth
+sbl1.mbn /dev/block/bootdevice/by-name/sbl1
+tz.mbn /dev/block/bootdevice/by-name/tz
+rpm.mbn /dev/block/bootdevice/by-name/rpm
+emmc_appsboot.mbn /dev/block/bootdevice/by-name/aboot
+hyp.mbn /dev/block/bootdevice/by-name/hyp
+pmic.mbn /dev/block/bootdevice/by-name/pmic
+cmnlib.mbn /dev/block/bootdevice/by-name/cmnlib
+cmnlib64.mbn /dev/block/bootdevice/by-name/cmnlib64
+keymaster.mbn /dev/block/bootdevice/by-name/keymaster
+xbl.elf /dev/block/bootdevice/by-name/xbl
+lksecapp.mbn /dev/block/bootdevice/by-name/lksecapp
+devcfg.mbn /dev/block/bootdevice/by-name/devcfg
+adspso.mbn /dev/block/bootdevice/by-name/dsp
+abl.elf /dev/block/bootdevice/by-name/abl
# filename + .bak backup partition
-sbl1.mbn.bak /dev/block/platform/bootdevice/by-name/sbl1bak
-tz.mbn.bak /dev/block/platform/bootdevice/by-name/tzbak
-rpm.mbn.bak /dev/block/platform/bootdevice/by-name/rpmbak
-emmc_appsboot.mbn.bak /dev/block/platform/bootdevice/by-name/abootbak
+sbl1.mbn.bak /dev/block/bootdevice/by-name/sbl1bak
+tz.mbn.bak /dev/block/bootdevice/by-name/tzbak
+rpm.mbn.bak /dev/block/bootdevice/by-name/rpmbak
+emmc_appsboot.mbn.bak /dev/block/bootdevice/by-name/abootbak
+hyp.mbn.bak /dev/block/bootdevice/by-name/hypbak
+pmic.mbn.bak /dev/block/bootdevice/by-name/pmicbak
+cmnlib.mbn.bak /dev/block/bootdevice/by-name/cmnlibbak
+cmnlib64.mbn.bak /dev/block/bootdevice/by-name/cmnlib64bak
+keymaster.mbn.bak /dev/block/bootdevice/by-name/keymasterbak
+xbl.elf.bak /dev/block/bootdevice/by-name/xblbak
+lksecapp.mbn.bak /dev/block/bootdevice/by-name/lksecappbak
+devcfg.mbn.bak /dev/block/bootdevice/by-name/devcfgbak
+abl.elf.bak /dev/block/bootdevice/by-name/ablbak
# For multiple file firmware images that differ from *.mbn and *.bin
# you can specify filename.* to direct all files to the same location.
@@ -50,7 +69,7 @@ emmc_appsboot.mbn.bak /dev/block/platform/bootdevice/by-name/abootbak
# filename location
-modem.* /dev/block/platform/bootdevice/by-name/modem
-wcnss.* /dev/block/platform/bootdevice/by-name/modem
-widevine.* /dev/block/platform/bootdevice/by-name/modem
-adsp.* /dev/block/platform/bootdevice/by-name/modem
+modem.* /dev/block/bootdevice/by-name/modem
+wcnss.* /dev/block/bootdevice/by-name/modem
+widevine.* /dev/block/bootdevice/by-name/modem
+adsp.* /dev/block/bootdevice/by-name/modem
diff --git a/recovery.fstab b/recovery.fstab
index 1f32b4e..26af1bb 100644..100755
--- a/recovery.fstab
+++ b/recovery.fstab
@@ -27,10 +27,9 @@
#device mount point fstype [device2] [length=]
-/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait
-/dev/block/bootdevice/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered wait,check
-/dev/block/bootdevice/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc wait,check
-/dev/block/mmcblk1p1 /sdcard vfat nosuid,nodev,barrier=1,data=ordered,nodelalloc wait
+/dev/block/bootdevice/by-name/system / ext4 ro,barrier=1 wait,slotselect,verify
+/dev/block/bootdevice/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc wait,check,encryptable=footer
+/dev/block/mmcblk1p1 /sdcard vfat nosuid,nodev wait
/dev/block/bootdevice/by-name/boot /boot emmc defaults defaults
/dev/block/bootdevice/by-name/recovery /recovery emmc defaults defaults
/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
diff --git a/msmfalcon_64.mk b/sdm660_64.mk
index 33d7957..10b7ff8 100644..100755
--- a/msmfalcon_64.mk
+++ b/sdm660_64.mk
@@ -1,27 +1,53 @@
-DEVICE_PACKAGE_OVERLAYS := device/qcom/msmfalcon_64/overlay
+DEVICE_PACKAGE_OVERLAYS := device/qcom/sdm660_64/overlay
TARGET_KERNEL_VERSION := 4.4
+BOARD_FRP_PARTITION_NAME := frp
BOARD_HAVE_QCOM_FM := true
#TARGET_USES_QTIC := false # bring-up hack
+TARGET_USES_NQ_NFC := true
+ifeq ($(TARGET_USES_NQ_NFC),true)
+# Flag to enable and support NQ3XX chipsets
+NQ3XX_PRESENT := true
+endif
+
+#QTIC flag
+-include $(QCPATH)/common/config/qtic-config.mk
+
TARGET_ENABLE_QC_AV_ENHANCEMENTS := true
# Video codec configuration files
ifeq ($(TARGET_ENABLE_QC_AV_ENHANCEMENTS), true)
-PRODUCT_COPY_FILES += device/qcom/msmfalcon_32/media_profiles.xml:system/etc/media_profiles.xml \
- device/qcom/msmfalcon_32/media_codecs.xml:system/etc/media_codecs.xml
+PRODUCT_COPY_FILES += device/qcom/sdm660_64/media_profiles.xml:system/etc/media_profiles.xml \
+ device/qcom/sdm660_64/media_codecs.xml:system/etc/media_codecs.xml \
+ device/qcom/sdm660_64/media_codecs_performance.xml:system/etc/media_codecs_performance.xml
endif #TARGET_ENABLE_QC_AV_ENHANCEMENTS
+PRODUCT_COPY_FILES += device/qcom/sdm660_64/whitelistedapps.xml:system/vendor/etc/whitelistedapps.xml \
+ device/qcom/sdm660_64/gamedwhitelist.xml:system/vendor/etc/gamedwhitelist.xml \
+ device/qcom/sdm660_64/appboosts.xml:system/vendor/etc/appboosts.xml
+
$(call inherit-product, device/qcom/common/common64.mk)
-PRODUCT_NAME := msmfalcon_64
-PRODUCT_DEVICE := msmfalcon_64
+PRODUCT_NAME := sdm660_64
+PRODUCT_DEVICE := sdm660_64
PRODUCT_BRAND := Android
-PRODUCT_MODEL := Falcon for arm64
+PRODUCT_MODEL := sdm660 for arm64
# default is nosdcard, S/W button enabled in resource
PRODUCT_CHARACTERISTICS := nosdcard
+# When can normal compile this module, need module owner enable below commands
+# font rendering engine feature switch
+-include $(QCPATH)/common/config/rendering-engine.mk
+ifneq (,$(strip $(wildcard $(PRODUCT_RENDERING_ENGINE_REVLIB))))
+ MULTI_LANG_ENGINE := REVERIE
+# MULTI_LANG_ZAWGYI := REVERIE
+endif
+
# Enable features in video HAL that can compile only on this platform
TARGET_USES_MEDIA_EXTENSIONS := true
+# WLAN chipset
+WLAN_CHIPSET := qca_cld3
+
#Android EGL implementation
PRODUCT_PACKAGES += libGLES_android
PRODUCT_BOOT_JARS += tcmiface
@@ -40,15 +66,21 @@ PRODUCT_BOOT_JARS += qcom.fmradio
endif #BOARD_HAVE_QCOM_FM
# Audio configuration file
--include $(TOPDIR)hardware/qcom/audio/configs/msmfalcon/msmfalcon.mk
+-include $(TOPDIR)hardware/qcom/audio/configs/sdm660/sdm660.mk
# Sensor HAL conf file
PRODUCT_COPY_FILES += \
- device/qcom/msmfalcon_64/sensors/hals.conf:system/etc/sensors/hals.conf
+ device/qcom/sdm660_64/sensors/hals.conf:system/etc/sensors/hals.conf
+
+# WLAN host driver
+ifneq ($(WLAN_CHIPSET),)
+PRODUCT_PACKAGES += $(WLAN_CHIPSET)_wlan.ko
+endif
# WLAN driver configuration file
PRODUCT_COPY_FILES += \
- device/qcom/msmfalcon_64/WCNSS_qcom_cfg.ini:system/etc/wifi/WCNSS_qcom_cfg.ini
+ device/qcom/sdm660_64/WCNSS_qcom_cfg.ini:system/etc/wifi/WCNSS_qcom_cfg.ini \
+ device/qcom/sdm660_64/wifi_concurrency_cfg.txt:system/etc/wifi/wifi_concurrency_cfg.txt
PRODUCT_PACKAGES += \
wpa_supplicant_overlay.conf \
@@ -76,13 +108,26 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.sensor.relative_humidity.xml:system/etc/permissions/android.hardware.sensor.relative_humidity.xml \
frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:system/etc/permissions/android.hardware.sensor.hifi_sensors.xml
+# FBE support
+PRODUCT_COPY_FILES += \
+ device/qcom/sdm660_64/init.qti.qseecomd.sh:system/bin/init.qti.qseecomd.sh
+
# MSM IRQ Balancer configuration file
-PRODUCT_COPY_FILES += device/qcom/msmfalcon_64/msm_irqbalance.conf:system/vendor/etc/msm_irqbalance.conf
+PRODUCT_COPY_FILES += device/qcom/sdm660_64/msm_irqbalance.conf:system/vendor/etc/msm_irqbalance.conf
+
+# dm-verity configuration
+PRODUCT_SUPPORTS_VERITY := true
+PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/bootdevice/by-name/system
#for android_filesystem_config.h
PRODUCT_PACKAGES += \
fs_config_files
+# Add the overlay path
+PRODUCT_PACKAGE_OVERLAYS := $(QCPATH)/qrdplus/Extension/res \
+ $(QCPATH)/qrdplus/globalization/multi-language/res-overlay \
+ $(PRODUCT_PACKAGE_OVERLAYS)
+
# Enable logdumpd service only for non-perf bootimage
ifeq ($(findstring perf,$(KERNEL_DEFCONFIG)),)
ifeq ($(TARGET_BUILD_VARIANT),user)
@@ -96,3 +141,16 @@ else
PRODUCT_DEFAULT_PROPERTY_OVERRIDES+= \
ro.logdumpd.enabled=0
endif
+
+#A/B related packages
+PRODUCT_PACKAGES += update_engine \
+ update_engine_client \
+ update_verifier \
+ bootctrl.sdm660 \
+ brillo_update_payload
+#Boot control HAL test app
+PRODUCT_PACKAGES_DEBUG += bootctl
+
+#FEATURE_OPENGLES_EXTENSION_PACK support string config file
+PRODUCT_COPY_FILES += \
+ frameworks/native/data/etc/android.hardware.opengles.aep.xml:system/etc/permissions/android.hardware.opengles.aep.xml
diff --git a/sensors/hals.conf b/sensors/hals.conf
index 5f3a14b..5f3a14b 100644..100755
--- a/sensors/hals.conf
+++ b/sensors/hals.conf
diff --git a/snd_soc_msm/snd_soc_msm_Taiko b/snd_soc_msm/snd_soc_msm_Taiko
index 4c10824..4c10824 100644..100755
--- a/snd_soc_msm/snd_soc_msm_Taiko
+++ b/snd_soc_msm/snd_soc_msm_Taiko
diff --git a/snd_soc_msm/snd_soc_msm_Taiko_CDP b/snd_soc_msm/snd_soc_msm_Taiko_CDP
index 2ee90ac..2ee90ac 100644..100755
--- a/snd_soc_msm/snd_soc_msm_Taiko_CDP
+++ b/snd_soc_msm/snd_soc_msm_Taiko_CDP
diff --git a/snd_soc_msm/snd_soc_msm_Taiko_liquid b/snd_soc_msm/snd_soc_msm_Taiko_liquid
index 2563a72..2563a72 100644..100755
--- a/snd_soc_msm/snd_soc_msm_Taiko_liquid
+++ b/snd_soc_msm/snd_soc_msm_Taiko_liquid
diff --git a/synaptics_rmi4_i2c.kl b/synaptics_rmi4_i2c.kl
index 6ed0254..6ed0254 100644..100755
--- a/synaptics_rmi4_i2c.kl
+++ b/synaptics_rmi4_i2c.kl
diff --git a/system.prop b/system.prop
index 3360c1e..56b4851 100644..100755
--- a/system.prop
+++ b/system.prop
@@ -1,5 +1,5 @@
#
-# system.prop for falcon
+# system.prop for sdm660
#
#rild.libpath=/system/lib/libreference-ril.so
@@ -16,8 +16,11 @@ persist.rild.nitz_short_ons_2=
persist.rild.nitz_short_ons_3=
ril.subscription.types=NV,RUIM
DEVICE_PROVISIONED=1
-# Start in cdma mode
-ro.telephony.default_network=5
+
+#
+# Set network mode to (T/L/G/W/1X/EVDO, T/G/W/L) for 7+5 mode device on DSDS mode
+#
+ro.telephony.default_network=22,20
debug.sf.hw=1
debug.gralloc.enable_fb_ubwc=1
@@ -40,11 +43,23 @@ media.stagefright.enable-scan=true
mmp.enable.3g2=true
media.aac_51_output_enabled=true
mm.enable.smoothstreaming=true
-#13631487 is decimal sum of supported codecs in AAL
#codecs:(PARSER_)AAC AC3 AMR_NB AMR_WB ASF AVI DTS FLV 3GP 3G2 MKV MP2PS MP2TS MP3 OGG QCP WAV FLAC AIFF APE DSD
mm.enable.qcom_parser=13631487
persist.mm.enable.prefetch=true
+#property to enable narrow search range for video encoding
+vidc.enc.target_support_bframe=1
+vidc.enc.disable_bframes=1
+vidc.dec.enable.downscalar=1
+video.disable.ubwc=1
+
+# enable PQ feature by default
+vidc.enc.disable.pq=false
+
+# Additional buffers shared between Camera and Video
+vidc.enc.dcvs.extra-buff-count=2
+
+
#
# system props for the data modules
#
@@ -57,11 +72,13 @@ persist.timed.enable=true
#
# system prop for opengles version
#
-# 196608 is decimal for 0x30000 to report version 3
-ro.opengles.version=196608
+# 196610 is decimal for 0x30002 to report major/minor versions as 3/2
+ro.opengles.version=196610
# system property for maximum number of HFP client connections
bt.max.hfpclient.connections=1
+#force disable Bluetooth AAC by default
+persist.bt.a2dp.aac_disable=true
# System property for cabl
ro.qualcomm.cabl=2
@@ -78,10 +95,8 @@ persist.fuse_sdcard=true
#system prop for Bluetooth SOC type
qcom.bluetooth.soc=cherokee
-#system prop for A4WP profile support
-ro.bluetooth.a4wp=false
-
#system prop for wipower support
+ro.bluetooth.emb_wp_mode=true
ro.bluetooth.wipower=true
#
@@ -99,14 +114,30 @@ persist.data.df.mux_count=8
persist.data.df.iwlan_mux=9
persist.data.df.dev_name=rmnet_usb0
+#
+# system property determining camera HAL to be used for a Video call
+#
+# 1 is camera1
+# 2 or anything else is camera2
+persist.radio.VT_CAM_INTERFACE=2
+
#property to enable user to access Google WFD settings
persist.debug.wfd.enable=1
+#Enable stm-events
+persist.debug.coresight.config=stm-events
##property to choose between virtual/external wfd display
persist.sys.wfd.virtual=0
# system prop for NFC DT
ro.nfc.port=I2C
+#property for vendor specific library
+ro.vendor.at_library=libqti-at.so
+
+#min/max cpu in core control
+ro.core_ctl_min_cpu=2
+ro.core_ctl_max_cpu=4
+
#hwui properties
ro.hwui.texture_cache_size=72
ro.hwui.layer_cache_size=48
@@ -120,15 +151,36 @@ ro.hwui.text_small_cache_height=1024
ro.hwui.text_large_cache_width=2048
ro.hwui.text_large_cache_height=1024
-#config for bringup
-config.disable_telephony=true
-config.disable_networktime=true
-config.disable_atlas=true
-debug.sf.nobootanimation=1
-debug.batt.no_battery=true
-
# enable navigation bar
qemu.hw.mainkeys=0
+#property to enable VDS WFD solution
+persist.hwc.enable_vds=1
+
#Increase cached app limit
ro.sys.fw.bg_apps_limit=60
+
+#Settings to enable sensors
+#Device Orientation sensor
+ro.qti.sensors.dev_ori=true
+#Persistent Motion Detector
+ro.qti.sensors.pmd=true
+#Stationary Detector
+ro.qti.sensors.sta_detect=true
+#Motion Detector
+ro.qti.sensors.mot_detect=true
+#Facing
+ro.qti.sensors.facing=false
+#CMC
+ro.qti.sensors.cmc=false
+#Gesture
+ro.qti.sdk.sensors.gestures=false
+
+#low power mode for camera
+camera.lowpower.record.enable=1
+
+#Expose aux camera for below packages
+camera.aux.packagelist=org.codeaurora.snapcam
+
+# Create zram disk
+ro.config.zram=true
diff --git a/usf_post_boot.sh b/usf_post_boot.sh
index 9a9d8af..9a9d8af 100644..100755
--- a/usf_post_boot.sh
+++ b/usf_post_boot.sh
diff --git a/usf_settings.sh b/usf_settings.sh
index 8a47089..8a47089 100644..100755
--- a/usf_settings.sh
+++ b/usf_settings.sh
diff --git a/vold.fstab b/vold.fstab
index 635e586..635e586 100644..100755
--- a/vold.fstab
+++ b/vold.fstab
diff --git a/whitelistedapps.xml b/whitelistedapps.xml
new file mode 100755
index 0000000..3bdf820
--- /dev/null
+++ b/whitelistedapps.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+
+<!--
+/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of The Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+-->
+
+<AppCatalog>
+ <ResolutionOverrideApps>
+
+ <!-- In AppAttributes, PackageName is must.
+ ActivityName and VersionCode are optional and can be used to
+ further restrict the whitelisting in terms of when and where to apply
+
+ 1. <AppAttributes PackageName="com.imangi.templerun" />
+ Straight forward whitelisting when activityTrigger is called with this PackageName
+ 2. <AppAttributes PackageName="com.imangi.templerun"
+ ActivityName="com.unity3d.player.UnityPlayerProxyActivity" />
+ Updating ApplicationInfo to override the resolution is done when activityTrigger
+ is called with both the above PackageName and ActivityName
+ 3. <AppAttributes PackageName="com.imangi.templerun"
+ VersionCode="11" />
+ Same as (1) but happens when app is of verionCode 11
+ 4. <AppAttributes PackageName="com.imangi.templerun"
+ ActivityName="com.unity3d.player.UnityPlayerProxyActivity"
+ VersionCode="11" />
+ Same as (2) but happens when app is of versionCode 11
+ -->
+
+ <AppAttributes
+ PackageName="com.imangi.templerun"
+ ActivityName="com.unity3d.player.UnityPlayerProxyActivity" />
+
+ <AppAttributes
+ PackageName="com.imangi.templerun2"
+ ActivityName="com.prime31.UnityPlayerProxyActivity" />
+
+ </ResolutionOverrideApps>
+ <GameTriggerApps>
+ </GameTriggerApps>
+ <AnimTriggerApps>
+ <AppAttributes
+ PackageName="com.tencent.mm"
+ ActivityName="com.tencent.mm.plugin.luckymoney.ui.LuckyMoneyReceiveUI"
+ WindowAnimationScale = "0"
+ TransitionAnimationScale = "0"
+ AnimatorDurationScale = "0" />
+ </AnimTriggerApps>
+ <NetTriggerApps>
+ <AppAttributes
+ PackageName="com.tencent.mm" />
+ </NetTriggerApps>
+ <AppTriggerApps>
+ <AppAttributes PackageName="com.autonavi.xmgd.navigator" />
+ <AppAttributes PackageName="com.tencent.qqpimsecure" />
+ <AppAttributes PackageName="com.ludashi.benchmark" />
+ </AppTriggerApps>
+</AppCatalog>
diff --git a/wifi_concurrency_cfg.txt b/wifi_concurrency_cfg.txt
new file mode 100755
index 0000000..fa2764c
--- /dev/null
+++ b/wifi_concurrency_cfg.txt
@@ -0,0 +1,3 @@
+ENABLE_STA_SAP_CONCURRENCY:1
+SAP_INTERFACE_NAME:softap0
+SAP_CHANNEL:6
diff --git a/wpa_supplicant_overlay.conf b/wpa_supplicant_overlay.conf
index 58c2639..58c2639 100644..100755
--- a/wpa_supplicant_overlay.conf
+++ b/wpa_supplicant_overlay.conf
diff --git a/wpa_supplicant_wcn.conf b/wpa_supplicant_wcn.conf
index 287954e..287954e 100644..100755
--- a/wpa_supplicant_wcn.conf
+++ b/wpa_supplicant_wcn.conf