merge in lmp-release history after reset to e8d8c97c5d213a0f88c7dbff9c1698651c9d0a75
diff --git a/camera/QCamera2/Android.mk b/camera/QCamera2/Android.mk
index ab8f3a5..9cf5509 100644
--- a/camera/QCamera2/Android.mk
+++ b/camera/QCamera2/Android.mk
@@ -57,9 +57,12 @@
#LOCAL_STATIC_LIBRARIES := libqcamera2_util
LOCAL_C_INCLUDES += \
hardware/qcom/display/$(TARGET_BOARD_PLATFORM)/libgralloc
+LOCAL_C_INCLUDES += \
+ hardware/qcom/display/$(TARGET_BOARD_PLATFORM)/libqdutils
LOCAL_SHARED_LIBRARIES := libcamera_client liblog libhardware libutils libcutils libdl
LOCAL_SHARED_LIBRARIES += libmmcamera_interface libmmjpeg_interface libui libcamera_metadata
+LOCAL_SHARED_LIBRARIES += libqdMetaData
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_MODULE := camera.$(TARGET_BOARD_PLATFORM)
diff --git a/camera/QCamera2/HAL3/QCamera3Channel.cpp b/camera/QCamera2/HAL3/QCamera3Channel.cpp
index 89d3331..1fa6321 100644
--- a/camera/QCamera2/HAL3/QCamera3Channel.cpp
+++ b/camera/QCamera2/HAL3/QCamera3Channel.cpp
@@ -750,6 +750,7 @@
ATRACE_CALL();
int rc = 0;
mIsType = isType;
+ cam_stream_type_t streamType;
if ((uint32_t)mMemory.getCnt() > (mNumBufs - 1)) {
ALOGE("%s: Trying to register more buffers than initially requested",
@@ -766,7 +767,8 @@
}
}
- rc = mMemory.registerBuffer(buffer);
+ streamType = mStreams[0]->getMyType();
+ rc = mMemory.registerBuffer(buffer, streamType);
if (ALREADY_EXISTS == rc) {
return NO_ERROR;
} else if (NO_ERROR != rc) {
@@ -1513,10 +1515,6 @@
}
m_postprocessor.stop();
- rc = m_postprocessor.deinit();
- if (rc != 0) {
- ALOGE("De-init Postprocessor failed");
- }
rc |= QCamera3Channel::stop();
return rc;
@@ -1526,6 +1524,11 @@
{
stop();
+ int32_t rc = m_postprocessor.deinit();
+ if (rc != 0) {
+ ALOGE("De-init Postprocessor failed");
+ }
+
if (0 < mOfflineMetaMemory.getCnt()) {
mOfflineMetaMemory.deallocate();
}
@@ -1698,7 +1701,7 @@
int input_index = mOfflineMemory.getMatchBufIndex((void*)pInputBuffer->buffer);
if(input_index < 0) {
- rc = mOfflineMemory.registerBuffer(pInputBuffer->buffer);
+ rc = mOfflineMemory.registerBuffer(pInputBuffer->buffer, mStreamType);
if (NO_ERROR != rc) {
ALOGE("%s: On-the-fly input buffer registration failed %d",
__func__, rc);
@@ -1862,7 +1865,7 @@
return rc;
}
}
- rc = mMemory.registerBuffer(buffer);
+ rc = mMemory.registerBuffer(buffer, mStreamType);
if (ALREADY_EXISTS == rc) {
return NO_ERROR;
} else if (NO_ERROR != rc) {
diff --git a/camera/QCamera2/HAL3/QCamera3Mem.cpp b/camera/QCamera2/HAL3/QCamera3Mem.cpp
index 05b47a0..fb7de07 100644
--- a/camera/QCamera2/HAL3/QCamera3Mem.cpp
+++ b/camera/QCamera2/HAL3/QCamera3Mem.cpp
@@ -35,6 +35,7 @@
#include <utils/Log.h>
#include <utils/Errors.h>
#include <gralloc_priv.h>
+#include <qdMetaData.h>
#include "QCamera3Mem.h"
#include "QCamera3HWI.h"
@@ -596,16 +597,19 @@
*
* PARAMETERS :
* @buffers : buffer_handle_t pointer
+ * @type : cam_stream_type_t
*
* RETURN : int32_t type of status
* NO_ERROR -- success
* none-zero failure code
*==========================================================================*/
-int QCamera3GrallocMemory::registerBuffer(buffer_handle_t *buffer)
+int QCamera3GrallocMemory::registerBuffer(buffer_handle_t *buffer,
+ cam_stream_type_t type)
{
status_t ret = NO_ERROR;
struct ion_fd_data ion_info_fd;
void *vaddr = NULL;
+ int32_t colorSpace = ITU_R_601;
CDBG(" %s : E ", __FUNCTION__);
memset(&ion_info_fd, 0, sizeof(ion_info_fd));
@@ -624,6 +628,21 @@
mBufferHandle[mBufferCount] = buffer;
mPrivateHandle[mBufferCount] =
(struct private_handle_t *)(*mBufferHandle[mBufferCount]);
+
+ switch (type) {
+ case CAM_STREAM_TYPE_PREVIEW:
+ case CAM_STREAM_TYPE_POSTVIEW:
+ case CAM_STREAM_TYPE_SNAPSHOT:
+ case CAM_STREAM_TYPE_VIDEO:
+ colorSpace = ITU_R_601;
+ break;
+ default:
+ colorSpace = ITU_R_601;
+ break;
+ }
+ ALOGE("%s: setting colorSpace to %d for stream type %d", __func__, colorSpace, type);
+ setMetaData(mPrivateHandle[mBufferCount], UPDATE_COLOR_SPACE, &colorSpace);
+
mMemInfo[mBufferCount].main_ion_fd = open("/dev/ion", O_RDONLY);
if (mMemInfo[mBufferCount].main_ion_fd < 0) {
ALOGE("%s: failed: could not open ion device", __func__);
diff --git a/camera/QCamera2/HAL3/QCamera3Mem.h b/camera/QCamera2/HAL3/QCamera3Mem.h
index c79efe8..a4034f2 100644
--- a/camera/QCamera2/HAL3/QCamera3Mem.h
+++ b/camera/QCamera2/HAL3/QCamera3Mem.h
@@ -107,7 +107,7 @@
QCamera3GrallocMemory();
virtual ~QCamera3GrallocMemory();
- int registerBuffer(buffer_handle_t *buffer);
+ int registerBuffer(buffer_handle_t *buffer, cam_stream_type_t type);
void unregisterBuffers();
virtual int cacheOps(int index, unsigned int cmd);
virtual int getRegFlags(uint8_t *regFlags) const;
diff --git a/camera/QCamera2/HAL3/QCamera3PostProc.cpp b/camera/QCamera2/HAL3/QCamera3PostProc.cpp
index 7f14aa7..a56375f 100644
--- a/camera/QCamera2/HAL3/QCamera3PostProc.cpp
+++ b/camera/QCamera2/HAL3/QCamera3PostProc.cpp
@@ -231,6 +231,12 @@
{
m_dataProcTh.sendCmd(CAMERA_CMD_TYPE_STOP_DATA_PROC, TRUE, TRUE);
+ if (m_pReprocChannel != NULL) {
+ m_pReprocChannel->stop();
+ delete m_pReprocChannel;
+ m_pReprocChannel = NULL;
+ }
+
return NO_ERROR;
}
diff --git a/device.mk b/device.mk
index 6d797e2..1f30ca6 100644
--- a/device.mk
+++ b/device.mk
@@ -98,6 +98,10 @@
PRODUCT_COPY_FILES += \
device/moto/shamu/bcmdhd.cal:system/etc/wifi/bcmdhd.cal
+# For SPN display
+PRODUCT_COPY_FILES += \
+ device/moto/shamu/spn-conf.xml:system/etc/spn-conf.xml
+
PRODUCT_TAGS += dalvik.gc.type-precise
# This device is 560dpi. However the platform doesn't
@@ -269,19 +273,11 @@
NfcNci \
Tag
-# NFCEE access control
-ifeq ($(TARGET_BUILD_VARIANT),user)
- NFCEE_ACCESS_PATH := device/moto/shamu/nfc/nfcee_access.xml
-else
- NFCEE_ACCESS_PATH := device/moto/shamu/nfc/nfcee_access_debug.xml
-endif
-
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.nfc.xml:system/etc/permissions/android.hardware.nfc.xml \
frameworks/native/data/etc/android.hardware.nfc.hce.xml:system/etc/permissions/android.hardware.nfc.hce.xml \
device/moto/shamu/nfc/libnfc-brcm.conf:system/etc/libnfc-brcm.conf \
- device/moto/shamu/nfc/libnfc-brcm-20795a10.conf:system/etc/libnfc-brcm-20795a10.conf \
- $(NFCEE_ACCESS_PATH):system/etc/nfcee_access.xml
+ device/moto/shamu/nfc/libnfc-brcm-20795a10.conf:system/etc/libnfc-brcm-20795a10.conf
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
persist.sys.usb.config=mtp
diff --git a/factory-images/generate-factory-images-package.sh b/factory-images/generate-factory-images-package.sh
new file mode 100755
index 0000000..955286a
--- /dev/null
+++ b/factory-images/generate-factory-images-package.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# Copyright 2014 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.
+
+source ../../../common/clear-factory-images-variables.sh
+BUILD=1433121
+DEVICE=shamu
+PRODUCT=shamu
+VERSION=lrw73l
+SRCPREFIX=signed-
+BOOTLOADER=moto-apq8084-70.39
+RADIO=d4.0-9625-02.48
+source ../../../common/generate-factory-images-common.sh
diff --git a/init.shamu.rc b/init.shamu.rc
index 4771cc8..b94041d 100644
--- a/init.shamu.rc
+++ b/init.shamu.rc
@@ -97,6 +97,9 @@
mkdir /data/ss-ram-dumps 0750 radio log
mkdir /data/ss-ram-dumps/bp-dumps 0750 radio log
+ # rild files
+ mkdir /data/misc/audio_cutback 0770 radio audio
+
on early-boot
# set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864
diff --git a/nfc/nfcee_access.xml b/nfc/nfcee_access.xml
deleted file mode 100644
index 10dd793..0000000
--- a/nfc/nfcee_access.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- The built in list of signatures and package names that are allowed
- access to the NFCEE (Secure Element).
-
- Format:
- <signer android:signature="SIGNATURE">
- <package android:name="PACKAGE_NAME" />
- ...
- </signer>
- ...
-
- Rules:
- SIGNATURE is a hex encoded X.509 certificate
- See Debug section to generate hex encoded certificates.
- PACKAGE_NAME is a Android package name
- Zero or more signer tags are allowed.
- Each signer tag must have one android:signature.
- Zero or more package tags are allowed per signer.
- Each package tag must have one android:name.
- If a signer has zero package tags, then ANY application with the
- specified certificate is granted NFCEE access.
- If a signer has one or more package tags, then an application signed
- with the specified certificate must have a package name that is an
- exact match of one of the specified package names to be granted
- NFCEE access.
- Duplicate signer tags are not allowed.
- Duplicate package tags for a single signer are not allowed.
-
- Example:
- In this example, any application from the first signer is granted
- access, but only applications with the specified package names
- are granted access for the second signer.
- <signer android:signature="308201c53082012ea00302010202044ebb27cc300d06092a864886f70d01010505003026310f300d060355040a1306476f6f676c65311330110603550403130a4e69636b2050656c6c793020170d3131313131303031323432385a180f32313131313031373031323432385a3026310f300d060355040a1306476f6f676c65311330110603550403130a4e69636b2050656c6c7930819f300d06092a864886f70d010101050003818d00308189028181008d43e546b3f5572707a095ced120d8f06781fa162bcf0ffa0ed0ecb48eb90ed009f65a5a1afd69fb4d38cf24e931b69b061741b8c7ca9f785ba59509e883f5a308f5e2da3c496bb362a2229da8f95f08a92f7f94c829c56e78a34e5147d138d0be0671cb5b7caceaffae6199ba544496a7645e7df3c9f02c5ac156eb0501584f0203010001300d06092a864886f70d0101050500038181003511bcb73651a7927db71ad76e4f6dc5ba121c941ae0fd4dfe519aae8775520b204a5e3cdad2c61ad41aff2c510dbe3376a7578d8aba00f35633e1ae72c91ec83d80eac6f5f081fb8361c6c30c47b0a17932d859d7e991e02cba410a82b35234b2b1bc859e50fe308bf9b64b71a8046777300c07ead159287c187b8865e23f23" />
- <signer android:signature="3082044c30820334a003020102020900de7695041d7650c0300d06092a864886f70d01010505003077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643301e170d3131303332343031303332345a170d3338303830393031303332345a3077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e464330820120300d06092a864886f70d01010105000382010d00308201080282010100e6ff3defe92aa10d71eb0fa6408bc036b7e243eeed68a6a4763dc7a52a31757cdac61fe510bb73c716e4000104265b347fcecef4c42bf1e1379dd0a876f028227fbbc1f9bdd5d713b2f6a935a379d2cba9c96f92d2d0787c11f1eb19548008a6a072b34b91836cfa0ae1276780e9007530166986a11c9cef46cef7c704806dde9431fb60284d120ab0e7de1d633f07687d468c51139afffdc6bc9a207ca904b8be1da0aa7b4e97756f43606488be5cae3c68e8bb7942cdf51607c930a2fcda655b75d0759cba89ad06e739bd0ba29b1f404296c2c0a85a847f5ab0d067c6c3ec9c49212042ac63a7e53b546c65b46080b4e3e680e23e1f77cfe7f6de744b1a65020103a381dc3081d9301d0603551d0e04160414a2e89064b05d08865c34db930a9d840050117aec3081a90603551d230481a130819e8014a2e89064b05d08865c34db930a9d840050117aeca17ba4793077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643820900de7695041d7650c0300c0603551d13040530030101ff300d06092a864886f70d010105050003820101003771870ce87c3c52ea84899230c6e962d94b4d5f1293c25d88261541fd90b5555d1285cef3b8312c3f5df691a8aae04cb981b305e427fd1d2d9e1987e1d29078f13c8452990f1821980263d8d4bd36519348d8d8ba26d8b99fbf09f5fd3ebb0ea3c2f0c9376f1e1fca76f3a6a405429d081b752a7a90b756e9ab44da41abc8e1e8f88ac2758da743fb73e650719a57840ccb6b7add21b99fc681e456e1872c223d5c074adf55f6abda268c2d8b64ea0a8845eecd968f92b493127e75c753c3ff30cbc678b51c9f52961472f17da20a0dc6274aa2463434c1a9b614df697d8ff5ca8101e7a25c7db3fb055d65569c04b01d389cabba57b3a1703ec2e74a88d334">
- </signer>
-
- Debug:
- Including the tag <debug /> will print to logcat the
- hex encoded signature of applications that are denied NFCEE
- access, for easy cut-and-paste into this file.
- -->
-<!-- SoftCard AT&T -->
-<signer android:signature="3082037a30820262a00302010202044f86ea3a300d06092a864886f70d0101050500307f310b30090603550406130255533110300e06035504081307556e6b6e6f776e3110300e06035504071307556e6b6e6f776e311c301a060355040a0c13415426542053657276696365732c20496e632e311c301a060355040b0c13415426542053657276696365732c20496e632e3110300e06035504031307556e6b6e6f776e301e170d3132303431323134343431305a170d3339303832393134343431305a307f310b30090603550406130255533110300e06035504081307556e6b6e6f776e3110300e06035504071307556e6b6e6f776e311c301a060355040a0c13415426542053657276696365732c20496e632e311c301a060355040b0c13415426542053657276696365732c20496e632e3110300e06035504031307556e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100a8292e38262bf7371b34ec160fda04231356343fc38b1e06f6293e1a2230d65dba637ca6901f72fd600bfb8f27ad8b851e5f341331bc53c22118884d98b755f3aebcaa541c34f3f98d9660eef006a18425bb5bc762317d27b27c13caafe5c75663aba207c4bdc909352bfcda289503b175976e7a0dcbb2cb59d6d579fcc0c36e15483442b2c2d595aedc806b629347a8c3eb30be0841b5f12a50d8dd03fb25ebe21074d660eeaf0629fcc7479ae382301d29c5d372e295a1e0426c92da910b65d35fa5b94c37032edfdb497db0ca4a5cea7a6ec5c8aa356e8e775b489d33fe9abe775716e705d92b9555fbb8c359be30e668da3469a6475e61c3ea3c4c7bbe850203010001300d06092a864886f70d010105050003820101000dc0e6494b8aaf20daf0fca2186dfc9d54862096b848e507edeb38466f2f00568f2913688e0aaf87504e115aaee363d5186ecc9eb8f219fc7dbb41d8abff0ecdf5edcb0b4c7a09fc0991bcd52cbcd937563135526d778d1592660af1c09af1ea49ba9e1aa695150f97746eec9a43de2b63844a668476780a22d6757b20ebfa835e15bf060f5645e8d1a1a0e9a1908e3cb080edd798c7f717b0f4e14549801e1d9728300face227fb8c656eeed0b4121625daa28b057ae3d17d5afc15bd419284931ed8c3bd57f5dbbcc8cf5ad2295347e469b3d42c88d876b6da4bc18f1c961142a17bad3585b7d61ca8594ad5177ea26d01265ce257486a551512f4da02116c" />
-<!-- SoftCard VZW -->
-<signer android:signature="308203C2308202AAA00302010202044F6B9529300D06092A864886F70D01010505003081A2310B3009060355040613025553310B3009060355040813024E4A311630140603550407130D4261736B696E6720526964676531243022060355040A131B566572697A6F6E20436F6D6D756E69636174696F6E7320496E632E31193017060355040B1310566572697A6F6E20576972656C657373312D302B06035504031324566572697A6F6E20576972656C657373205369676E696E67204365727469666963617465301E170D3132303332323231313030315A170D3339303830383231313030315A3081A2310B3009060355040613025553310B3009060355040813024E4A311630140603550407130D4261736B696E6720526964676531243022060355040A131B566572697A6F6E20436F6D6D756E69636174696F6E7320496E632E31193017060355040B1310566572697A6F6E20576972656C657373312D302B06035504031324566572697A6F6E20576972656C657373205369676E696E6720436572746966696361746530820122300D06092A864886F70D01010105000382010F003082010A02820101009452BDCE78F36373D547CA2F6FE0939C239E423311F96A9A2CA253A7B21CBE6F82AF19A97E4B183270395D222423B3A3B9C1809D213E048EF4C63C3C8033C8AC7EB7943E95EF209D819EDEAA9AA41A4F8838054CEA83A19AFD49BE794DA3AFAAA4216320754D6161E691C64E2396DCA7DF0AFB030FFAAEBA96F1575385CB2EF967A09652D14CA2B6A9ECD58A8DFDDB16792A00E5427C7435CAC1714A3C4014B1ACEE14D6E2B220888DF392ACA253D731884E9D5D40214D36033206F07B8F48BD94FFB649F8CD84417AF9A7E4A344FBB3BEA0DA18DD55E2BBFE3A953A3D484CBB02E650FEE8CD2A74C6CCF506F382592BD64F03A10BC64BDAB4577C47E55C96850203010001300D06092A864886F70D01010505000382010100902BBEE97568A427EE75054C731BDADB5D045EB6557B771C06A4BE4D2253650D9E7CE04CBBF10516B23B6E7E03154CB181B421FC91527A9BDBBD7CF4025F4F808888A8A06C1C34C7637F423B56017FD7C002FD651C7C9BD1B73BCEBB31A0DD0870CDFD117BA119BC32324835E7A4E43FD2267B2FB6A326F7E978B7A856FB0E07C663750BC4ED0A11FB48A05AC0B01CA9B14E65496D5F3866617E6C4A63428ED68F56E87A8544CEE4FC1BBD07ED91D888089B2950397AA332883E3DB5C51D41EA31C76CE03B62AB61ABF17CF5E5145A85CE2DDE698D0E8038346DEE9BC59DCBED7CDF41D3CAD10A61B3357A380FC403F2FD1DCD955B2D5DD9D9DFABEFF8284103" />
-</resources>
-
diff --git a/nfc/nfcee_access_debug.xml b/nfc/nfcee_access_debug.xml
deleted file mode 100644
index 90977ca..0000000
--- a/nfc/nfcee_access_debug.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- The built in list of signatures and package names that are allowed
- access to the NFCEE (Secure Element).
-
- Format:
- <signer android:signature="SIGNATURE">
- <package android:name="PACKAGE_NAME" />
- ...
- </signer>
- ...
-
- Rules:
- SIGNATURE is a hex encoded X.509 certificate
- See Debug section to generate hex encoded certificates.
- PACKAGE_NAME is a Android package name
- Zero or more signer tags are allowed.
- Each signer tag must have one android:signature.
- Zero or more package tags are allowed per signer.
- Each package tag must have one android:name.
- If a signer has zero package tags, then ANY application with the
- specified certificate is granted NFCEE access.
- If a signer has one or more package tags, then an application signed
- with the specified certificate must have a package name that is an
- exact match of one of the specified package names to be granted
- NFCEE access.
- Duplicate signer tags are not allowed.
- Duplicate package tags for a single signer are not allowed.
-
- Example:
- In this example, any application from the first signer is granted
- access, but only applications with the specified package names
- are granted access for the second signer.
- <signer android:signature="308201c53082012ea00302010202044ebb27cc300d06092a864886f70d01010505003026310f300d060355040a1306476f6f676c65311330110603550403130a4e69636b2050656c6c793020170d3131313131303031323432385a180f32313131313031373031323432385a3026310f300d060355040a1306476f6f676c65311330110603550403130a4e69636b2050656c6c7930819f300d06092a864886f70d010101050003818d00308189028181008d43e546b3f5572707a095ced120d8f06781fa162bcf0ffa0ed0ecb48eb90ed009f65a5a1afd69fb4d38cf24e931b69b061741b8c7ca9f785ba59509e883f5a308f5e2da3c496bb362a2229da8f95f08a92f7f94c829c56e78a34e5147d138d0be0671cb5b7caceaffae6199ba544496a7645e7df3c9f02c5ac156eb0501584f0203010001300d06092a864886f70d0101050500038181003511bcb73651a7927db71ad76e4f6dc5ba121c941ae0fd4dfe519aae8775520b204a5e3cdad2c61ad41aff2c510dbe3376a7578d8aba00f35633e1ae72c91ec83d80eac6f5f081fb8361c6c30c47b0a17932d859d7e991e02cba410a82b35234b2b1bc859e50fe308bf9b64b71a8046777300c07ead159287c187b8865e23f23" />
- <signer android:signature="3082044c30820334a003020102020900de7695041d7650c0300d06092a864886f70d01010505003077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643301e170d3131303332343031303332345a170d3338303830393031303332345a3077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e464330820120300d06092a864886f70d01010105000382010d00308201080282010100e6ff3defe92aa10d71eb0fa6408bc036b7e243eeed68a6a4763dc7a52a31757cdac61fe510bb73c716e4000104265b347fcecef4c42bf1e1379dd0a876f028227fbbc1f9bdd5d713b2f6a935a379d2cba9c96f92d2d0787c11f1eb19548008a6a072b34b91836cfa0ae1276780e9007530166986a11c9cef46cef7c704806dde9431fb60284d120ab0e7de1d633f07687d468c51139afffdc6bc9a207ca904b8be1da0aa7b4e97756f43606488be5cae3c68e8bb7942cdf51607c930a2fcda655b75d0759cba89ad06e739bd0ba29b1f404296c2c0a85a847f5ab0d067c6c3ec9c49212042ac63a7e53b546c65b46080b4e3e680e23e1f77cfe7f6de744b1a65020103a381dc3081d9301d0603551d0e04160414a2e89064b05d08865c34db930a9d840050117aec3081a90603551d230481a130819e8014a2e89064b05d08865c34db930a9d840050117aeca17ba4793077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643820900de7695041d7650c0300c0603551d13040530030101ff300d06092a864886f70d010105050003820101003771870ce87c3c52ea84899230c6e962d94b4d5f1293c25d88261541fd90b5555d1285cef3b8312c3f5df691a8aae04cb981b305e427fd1d2d9e1987e1d29078f13c8452990f1821980263d8d4bd36519348d8d8ba26d8b99fbf09f5fd3ebb0ea3c2f0c9376f1e1fca76f3a6a405429d081b752a7a90b756e9ab44da41abc8e1e8f88ac2758da743fb73e650719a57840ccb6b7add21b99fc681e456e1872c223d5c074adf55f6abda268c2d8b64ea0a8845eecd968f92b493127e75c753c3ff30cbc678b51c9f52961472f17da20a0dc6274aa2463434c1a9b614df697d8ff5ca8101e7a25c7db3fb055d65569c04b01d389cabba57b3a1703ec2e74a88d334">
- </signer>
-
- Debug:
- Including the tag <debug /> will print to logcat the
- hex encoded signature of applications that are denied NFCEE
- access, for easy cut-and-paste into this file.
- -->
- <!-- Softcard Wallet debug signature -->
- <signer android:signature="3082034830820230a00302010202044f62832f300d06092a864886f70d01010505003066310b3009060355040613025553310b3009060355040813024e593111300f060355040713084e657720596f726b310d300b060355040a130449736973310d300b060355040b13044973697331193017060355040313104a564c2056656e7475726573204c4c43301e170d3132303331363030303235355a170d3339303830323030303235355a3066310b3009060355040613025553310b3009060355040813024e593111300f060355040713084e657720596f726b310d300b060355040a130449736973310d300b060355040b13044973697331193017060355040313104a564c2056656e7475726573204c4c4330820122300d06092a864886f70d01010105000382010f003082010a02820101009aaf7f1047a6821ab0b4ffb7d58f8a0a66f09689dc59926e966b24896759b96304825ea149ebf30e6249877fedac185eec7aa7a44dc718ab578584888c673f46bc351b48dcd54f47bd27a0836032899b0510e0ce69863184bcd033b0654f09e801a24f06fadd7330f3665e12fbbf1c2b616ca14ac169d206607f229a7ad6d3579d330373be0de0d7148eabb80beed83602494247c0b7b735812a5ece89c1ce7f2229f757e29ebfae72350d2db27974cd5341ba5872a92f471a0768972e35246d0269d41d345cd8bda2df14009212d9640f3a33116460dce389c5a113b84e4a6b7f8b597cb601e53dace8777e380ffe4d9f0abfa14993a1f653c9a6bb5a245fd10203010001300d06092a864886f70d010105050003820101009089e52bb237b78c92dd95b4d07004751b3d68e12e83ab0baca39ea593b9b9f8f6395491f6616fe4d2e4c7a7e53c898a17f3ab2c9fac3b1c0886ee8e769ba96488aafd646a7aa425fb283cd6d9d600a083d18868d4d93de7ec73b258f61fc66d2a3f4b4c7b53df62fd3374a5e658bd8266ee24480923ea584f2e7adde360b459e4ad01bcb9f5582f95dab3964e546baf5b33f63acfbb64494902ebae5cc0930abb7dabf0e4727fcc755a6baa6e68be3b864ab1e6438fed6dd280f081ef1e3b3545a257b456b68787d8080653c31ed7f96f6b5a67186dc5a35e620b9bbb9d47a1871d58bf38e192906399c53cb2fab61c1392deae6209d6fb476897a471a23ab4" />
-</resources>
-
diff --git a/sepolicy/file.te b/sepolicy/file.te
index 006a2cc..894fe47 100644
--- a/sepolicy/file.te
+++ b/sepolicy/file.te
@@ -16,6 +16,7 @@
type quipc_data_file, data_file_type, file_type;
type dropbox_data_file, file_type, data_file_type;
type adspd_data_file, file_type, data_file_type;
+type audio_cutback_data_file, file_type, data_file_type;
type sysfs_rmnet, fs_type, sysfs_type;
type sysfs_smdcntl_open_timeout, fs_type, sysfs_type;
@@ -34,3 +35,4 @@
type sysfs_cpu_online, fs_type, sysfs_type;
type sysfs_cpuboost, fs_type, sysfs_type;
type sysfs_capsense_update, fs_type, sysfs_type;
+type sysfs_sar_wifi, fs_type, sysfs_type;
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 58ce432..a7d8355 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -7,6 +7,7 @@
/data/misc/location/quipc(/.*)? u:object_r:quipc_data_file:s0
/data/ss-ram-dumps(/.*)? u:object_r:ram_dump_logs:s0
/data/adspd(/.*)? u:object_r:adspd_data_file:s0
+/data/misc/audio_cutback(/.*)? u:object_r:audio_cutback_data_file:s0
# TODO move out of /data/system
/data/system/dropbox-add(/.*)? u:object_r:dropbox_data_file:s0
@@ -144,4 +145,5 @@
/sys/bus/platform/drivers/xhci_msm_hsic(/.*)? u:object_r:sysfs_xhci_msm_hsic:s0
/sys/devices/msm_hsic_host/host_ready u:object_r:sysfs_msm_hsic_host:s0
-/sys/devices/cycapsense_prog\.1/cycapsense_fw u:object_r:sysfs_capsense_update:s0
+/sys/devices/cycapsense_prog.1/cycapsense_fw u:object_r:sysfs_capsense_update:s0
+/sys/devices/mmi_sar_ctrl.[0-9]*/sar_wifi u:object_r:sysfs_sar_wifi:s0
diff --git a/sepolicy/mediaserver.te b/sepolicy/mediaserver.te
index 018fc85..cd0a5e7 100644
--- a/sepolicy/mediaserver.te
+++ b/sepolicy/mediaserver.te
@@ -11,8 +11,9 @@
binder_call(mediaserver, rild)
unix_socket_send(mediaserver, camera, camera)
-
unix_socket_connect(mediaserver, adspd, adspd)
+allow mediaserver audio_cutback_data_file:dir search;
+allow mediaserver audio_cutback_data_file:sock_file write;
# TODO b/17015082
allow mediaserver shell_data_file:dir search;
diff --git a/sepolicy/rild.te b/sepolicy/rild.te
index 00c2a56..ebf438e 100644
--- a/sepolicy/rild.te
+++ b/sepolicy/rild.te
@@ -10,4 +10,10 @@
allow rild persist_modem_file:file create_file_perms;
allow rild time:unix_stream_socket connectto;
-allow rild sysfs_capsense_update:file w_file_perms;
+allow rild sysfs_capsense_update:file { getattr w_file_perms};
+allow rild sysfs_sar_wifi:file { getattr w_file_perms};
+
+allow rild audio_cutback_data_file:dir rw_dir_perms;
+allow rild audio_cutback_data_file:sock_file create_file_perms;
+# why?
+allow rild audio_cutback_data_file:dir setattr;
diff --git a/spn-conf.xml b/spn-conf.xml
new file mode 100644
index 0000000..2201279
--- /dev/null
+++ b/spn-conf.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<spnOverrides>
+ <spnOverride numeric="310120" spn="Sprint"/>
+ <spnOverride numeric="40402" spn="airtel"/>
+ <spnOverride numeric="40403" spn="airtel"/>
+ <spnOverride numeric="40410" spn="airtel"/>
+ <spnOverride numeric="40416" spn="airtel"/>
+ <spnOverride numeric="40431" spn="airtel"/>
+ <spnOverride numeric="40440" spn="airtel"/>
+ <spnOverride numeric="40445" spn="airtel"/>
+ <spnOverride numeric="40449" spn="airtel"/>
+ <spnOverride numeric="40490" spn="airtel"/>
+ <spnOverride numeric="40492" spn="airtel"/>
+ <spnOverride numeric="40493" spn="airtel"/>
+ <spnOverride numeric="40494" spn="airtel"/>
+ <spnOverride numeric="40495" spn="airtel"/>
+ <spnOverride numeric="40496" spn="airtel"/>
+ <spnOverride numeric="40497" spn="airtel"/>
+ <spnOverride numeric="40498" spn="airtel"/>
+ <spnOverride numeric="40551" spn="airtel"/>
+ <spnOverride numeric="40552" spn="airtel"/>
+ <spnOverride numeric="40553" spn="airtel"/>
+ <spnOverride numeric="40554" spn="airtel"/>
+ <spnOverride numeric="40555" spn="airtel"/>
+ <spnOverride numeric="40556" spn="airtel"/>
+ <spnOverride numeric="42502" spn="Cellcom"/>
+ <spnOverride numeric="42503" spn="Pelephone"/>
+ <spnOverride numeric="42507" spn="HOT mobile"/>
+ <spnOverride numeric="42508" spn="Golan Telecom"/>
+ <spnOverride numeric="42510" spn="Orange-IL"/>
+ <spnOverride numeric="42514" spn="YouPhone"/>
+ <spnOverride numeric="42515" spn="Home Cellular"/>
+ <spnOverride numeric="42516" spn="Rami Levy"/>
+</spnOverrides>