init Oreo
This commit is contained in:
parent
d444541944
commit
22e1bcc46a
39 changed files with 3232 additions and 3094 deletions
|
@ -14,7 +14,7 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
# inherit from common msm8974
|
# inherit from common msm8974
|
||||||
-include device/samsung/msm8974-common/BoardConfigCommon.mk
|
include device/samsung/msm8974-common/BoardConfigCommon.mk
|
||||||
|
|
||||||
LOCAL_PATH := device/samsung/viennalte
|
LOCAL_PATH := device/samsung/viennalte
|
||||||
|
|
||||||
|
@ -28,12 +28,17 @@ TARGET_OTA_ASSERT_DEVICE := viennalte,viennaltexx
|
||||||
# Use Snapdragon LLVM if available on build server
|
# Use Snapdragon LLVM if available on build server
|
||||||
TARGET_USE_SDCLANG := true
|
TARGET_USE_SDCLANG := true
|
||||||
|
|
||||||
|
# ADB Legacy Interface
|
||||||
|
TARGET_USES_LEGACY_ADB_INTERFACE := true
|
||||||
|
|
||||||
# Bootloader
|
# Bootloader
|
||||||
TARGET_BOOTLOADER_BOARD_NAME := MSM8974
|
TARGET_BOOTLOADER_BOARD_NAME := MSM8974
|
||||||
|
|
||||||
# Kernel
|
# Kernel
|
||||||
BOARD_KERNEL_BASE := 0x00000000
|
BOARD_KERNEL_BASE := 0x00000000
|
||||||
BOARD_KERNEL_CMDLINE := console=null androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3
|
#BOARD_KERNEL_CMDLINE := console=null androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3
|
||||||
|
BOARD_KERNEL_CMDLINE := androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 androidboot.selinux=permissive
|
||||||
|
BOARD_KERNEL_IMAGE_NAME := zImage
|
||||||
BOARD_KERNEL_PAGESIZE := 2048
|
BOARD_KERNEL_PAGESIZE := 2048
|
||||||
BOARD_KERNEL_SEPARATED_DT := true
|
BOARD_KERNEL_SEPARATED_DT := true
|
||||||
BOARD_MKBOOTIMG_ARGS := --ramdisk_offset 0x02000000 --tags_offset 0x01E00000
|
BOARD_MKBOOTIMG_ARGS := --ramdisk_offset 0x02000000 --tags_offset 0x01E00000
|
||||||
|
@ -51,6 +56,9 @@ TARGET_LIBINIT_MSM8974_DEFINES_FILE := device/samsung/viennalte/init/init_vienna
|
||||||
BOARD_HAVE_NEW_QCOM_CSDCLIENT := true
|
BOARD_HAVE_NEW_QCOM_CSDCLIENT := true
|
||||||
USE_CUSTOM_AUDIO_POLICY := 1
|
USE_CUSTOM_AUDIO_POLICY := 1
|
||||||
|
|
||||||
|
# Binder API version
|
||||||
|
TARGET_USES_64_BIT_BINDER := true
|
||||||
|
|
||||||
# Bluetooth
|
# Bluetooth
|
||||||
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(LOCAL_PATH)/bluetooth
|
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(LOCAL_PATH)/bluetooth
|
||||||
BOARD_CUSTOM_BT_CONFIG := $(LOCAL_PATH)/bluetooth/vnd_viennalte.txt
|
BOARD_CUSTOM_BT_CONFIG := $(LOCAL_PATH)/bluetooth/vnd_viennalte.txt
|
||||||
|
@ -61,8 +69,11 @@ BOARD_HAVE_BLUETOOTH_BCM := true
|
||||||
TARGET_HAS_LEGACY_CAMERA_HAL1 := true
|
TARGET_HAS_LEGACY_CAMERA_HAL1 := true
|
||||||
USE_DEVICE_SPECIFIC_CAMERA := true
|
USE_DEVICE_SPECIFIC_CAMERA := true
|
||||||
|
|
||||||
# CMHW
|
# Filesystem
|
||||||
BOARD_HARDWARE_CLASS += $(LOCAL_PATH)/cmhw
|
TARGET_FS_CONFIG_GEN := $(LOCAL_PATH)/config.fs
|
||||||
|
|
||||||
|
# HIDL
|
||||||
|
DEVICE_MANIFEST_FILE += $(LOCAL_PATH)/manifest.xml
|
||||||
|
|
||||||
# Legacy BLOB Support
|
# Legacy BLOB Support
|
||||||
TARGET_NEEDS_PLATFORM_TEXT_RELOCATIONS := true
|
TARGET_NEEDS_PLATFORM_TEXT_RELOCATIONS := true
|
||||||
|
@ -86,7 +97,8 @@ TARGET_POWERHAL_SET_INTERACTIVE_EXT := $(LOCAL_PATH)/power/power_ext.c
|
||||||
TARGET_POWERHAL_VARIANT := qcom
|
TARGET_POWERHAL_VARIANT := qcom
|
||||||
|
|
||||||
# Radio
|
# Radio
|
||||||
BOARD_RIL_CLASS := ../../../device/samsung/viennalte/ril
|
#BOARD_PROVIDES_LIBRIL := true
|
||||||
|
#TARGET_RIL_VARIANT := caf
|
||||||
|
|
||||||
# Recovery
|
# Recovery
|
||||||
BOARD_CUSTOM_RECOVERY_KEYMAPPING := ../../device/samsung/viennalte/recovery/recovery_keys.c
|
BOARD_CUSTOM_RECOVERY_KEYMAPPING := ../../device/samsung/viennalte/recovery/recovery_keys.c
|
||||||
|
@ -96,14 +108,13 @@ BOARD_HAS_LARGE_FILESYSTEM := true
|
||||||
BOARD_HAS_NO_MISC_PARTITION := true
|
BOARD_HAS_NO_MISC_PARTITION := true
|
||||||
BOARD_HAS_NO_SELECT_BUTTON := true
|
BOARD_HAS_NO_SELECT_BUTTON := true
|
||||||
BOARD_RECOVERY_SWIPE := true
|
BOARD_RECOVERY_SWIPE := true
|
||||||
TARGET_RECOVERY_FSTAB := $(LOCAL_PATH)/rootdir/etc/fstab.qcom
|
TARGET_RECOVERY_FSTAB := $(LOCAL_PATH)/rootdir/etc/fstab.full
|
||||||
|
|
||||||
# SELinux
|
# SELinux
|
||||||
-include device/qcom/sepolicy/sepolicy.mk
|
-include device/qcom/sepolicy/sepolicy.mk
|
||||||
BOARD_SEPOLICY_DIRS += $(LOCAL_PATH)/sepolicy
|
|
||||||
|
|
||||||
# Sensors
|
BOARD_SEPOLICY_DIRS += \
|
||||||
#TARGET_NO_SENSOR_PERMISSION_CHECK := true
|
$(COMMON_PATH)/sepolicy
|
||||||
|
|
||||||
# TWRP Support - Optional
|
# TWRP Support - Optional
|
||||||
ifeq ($(WITH_TWRP),true)
|
ifeq ($(WITH_TWRP),true)
|
||||||
|
|
277
audio/audio_effects.conf
Executable file
277
audio/audio_effects.conf
Executable file
|
@ -0,0 +1,277 @@
|
||||||
|
# List of effect libraries to load. Each library element must contain a "path" element
|
||||||
|
# giving the full path of the library .so file.
|
||||||
|
# libraries {
|
||||||
|
# <lib name> {
|
||||||
|
# path <lib path>
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
libraries {
|
||||||
|
bundle {
|
||||||
|
path /vendor/lib/soundfx/libbundlewrapper.so
|
||||||
|
}
|
||||||
|
reverb {
|
||||||
|
path /vendor/lib/soundfx/libreverbwrapper.so
|
||||||
|
}
|
||||||
|
qcbassboost {
|
||||||
|
path /vendor/lib/soundfx/libqcbassboost.so
|
||||||
|
}
|
||||||
|
qcvirt {
|
||||||
|
path /vendor/lib/soundfx/libqcvirt.so
|
||||||
|
}
|
||||||
|
qcreverb {
|
||||||
|
path /vendor/lib/soundfx/libqcreverb.so
|
||||||
|
}
|
||||||
|
visualizer_sw {
|
||||||
|
path /vendor/lib/soundfx/libvisualizer.so
|
||||||
|
}
|
||||||
|
visualizer_hw {
|
||||||
|
path /vendor/lib/soundfx/libqcomvisualizer.so
|
||||||
|
}
|
||||||
|
downmix {
|
||||||
|
path /vendor/lib/soundfx/libdownmix.so
|
||||||
|
}
|
||||||
|
loudness_enhancer {
|
||||||
|
path /vendor/lib/soundfx/libldnhncr.so
|
||||||
|
}
|
||||||
|
proxy {
|
||||||
|
path /vendor/lib/soundfx/libeffectproxy.so
|
||||||
|
}
|
||||||
|
offload_bundle {
|
||||||
|
path /vendor/lib/soundfx/libqcompostprocbundle.so
|
||||||
|
}
|
||||||
|
audio_pre_processing {
|
||||||
|
path /vendor/lib/soundfx/libqcomvoiceprocessing.so
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# list of effects to load. Each effect element must contain a "library" and a "uuid" element.
|
||||||
|
# The value of the "library" element must correspond to the name of one library element in the
|
||||||
|
# "libraries" element.
|
||||||
|
# The name of the effect element is indicative, only the value of the "uuid" element
|
||||||
|
# designates the effect.
|
||||||
|
# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
|
||||||
|
# generic effect type UUID.
|
||||||
|
# effects {
|
||||||
|
# <fx name> {
|
||||||
|
# library <lib name>
|
||||||
|
# uuid <effect uuid>
|
||||||
|
# }
|
||||||
|
# ...
|
||||||
|
# }
|
||||||
|
|
||||||
|
effects {
|
||||||
|
|
||||||
|
# additions for the proxy implementation
|
||||||
|
# Proxy implementation
|
||||||
|
#effectname {
|
||||||
|
#library proxy
|
||||||
|
#uuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
||||||
|
|
||||||
|
# SW implemetation of the effect. Added as a node under the proxy to
|
||||||
|
# indicate this as a sub effect.
|
||||||
|
#libsw {
|
||||||
|
#library libSW
|
||||||
|
#uuid yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
|
||||||
|
#} End of SW effect
|
||||||
|
|
||||||
|
# HW implementation of the effect. Added as a node under the proxy to
|
||||||
|
# indicate this as a sub effect.
|
||||||
|
#libhw {
|
||||||
|
#library libHW
|
||||||
|
#uuid zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
|
||||||
|
#}End of HW effect
|
||||||
|
#} End of effect proxy
|
||||||
|
|
||||||
|
bassboost {
|
||||||
|
library proxy
|
||||||
|
uuid 14804144-a5ee-4d24-aa88-0002a5d5c51b
|
||||||
|
|
||||||
|
libsw {
|
||||||
|
library qcbassboost
|
||||||
|
uuid 23aca180-44bd-11e2-bcfd-0800200c9a66
|
||||||
|
}
|
||||||
|
|
||||||
|
libhw {
|
||||||
|
library offload_bundle
|
||||||
|
uuid 2c4a8c24-1581-487f-94f6-0002a5d5c51b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
virtualizer {
|
||||||
|
library proxy
|
||||||
|
uuid d3467faa-acc7-4d34-acaf-0002a5d5c51b
|
||||||
|
|
||||||
|
libsw {
|
||||||
|
library qcvirt
|
||||||
|
uuid e6c98a16-22a3-11e2-b87b-f23c91aec05e
|
||||||
|
}
|
||||||
|
|
||||||
|
libhw {
|
||||||
|
library offload_bundle
|
||||||
|
uuid 509a4498-561a-4bea-b3b1-0002a5d5c51b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
equalizer {
|
||||||
|
library proxy
|
||||||
|
uuid c8e70ecd-48ca-456e-8a4f-0002a5d5c51b
|
||||||
|
|
||||||
|
libsw {
|
||||||
|
library bundle
|
||||||
|
uuid ce772f20-847d-11df-bb17-0002a5d5c51b
|
||||||
|
}
|
||||||
|
|
||||||
|
libhw {
|
||||||
|
library offload_bundle
|
||||||
|
uuid a0dac280-401c-11e3-9379-0002a5d5c51b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
volume {
|
||||||
|
library bundle
|
||||||
|
uuid 119341a0-8469-11df-81f9-0002a5d5c51b
|
||||||
|
}
|
||||||
|
reverb_env_aux {
|
||||||
|
library proxy
|
||||||
|
uuid 48404ac9-d202-4ccc-bf84-0002a5d5c51b
|
||||||
|
|
||||||
|
libsw {
|
||||||
|
library qcreverb
|
||||||
|
uuid a8c1e5f3-293d-43cd-95ec-d5e26c02e217
|
||||||
|
}
|
||||||
|
|
||||||
|
libhw {
|
||||||
|
library offload_bundle
|
||||||
|
uuid 79a18026-18fd-4185-8233-0002a5d5c51b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
reverb_env_ins {
|
||||||
|
library proxy
|
||||||
|
uuid b707403a-a1c1-4291-9573-0002a5d5c51b
|
||||||
|
|
||||||
|
libsw {
|
||||||
|
library qcreverb
|
||||||
|
uuid 791fff8b-8129-4655-83a4-59bc61034c3a
|
||||||
|
}
|
||||||
|
|
||||||
|
libhw {
|
||||||
|
library offload_bundle
|
||||||
|
uuid eb64ea04-973b-43d2-8f5e-0002a5d5c51b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
reverb_pre_aux {
|
||||||
|
library proxy
|
||||||
|
uuid 1b78f587-6d1c-422e-8b84-0002a5d5c51b
|
||||||
|
|
||||||
|
libsw {
|
||||||
|
library qcreverb
|
||||||
|
uuid 53ef1db5-c0c0-445b-b060-e34d20ebb70a
|
||||||
|
}
|
||||||
|
|
||||||
|
libhw {
|
||||||
|
library offload_bundle
|
||||||
|
uuid 6987be09-b142-4b41-9056-0002a5d5c51b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
reverb_pre_ins {
|
||||||
|
library proxy
|
||||||
|
uuid f3e178d2-ebcb-408e-8357-0002a5d5c51b
|
||||||
|
|
||||||
|
libsw {
|
||||||
|
library qcreverb
|
||||||
|
uuid b08a0e38-22a5-11e2-b87b-f23c91aec05e
|
||||||
|
}
|
||||||
|
|
||||||
|
libhw {
|
||||||
|
library offload_bundle
|
||||||
|
uuid aa2bebf6-47cf-4613-9bca-0002a5d5c51b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
visualizer {
|
||||||
|
library proxy
|
||||||
|
uuid 1d0a1a53-7d5d-48f2-8e71-27fbd10d842c
|
||||||
|
|
||||||
|
libsw {
|
||||||
|
library visualizer_sw
|
||||||
|
uuid d069d9e0-8329-11df-9168-0002a5d5c51b
|
||||||
|
}
|
||||||
|
|
||||||
|
libhw {
|
||||||
|
library visualizer_hw
|
||||||
|
uuid 7a8044a0-1a71-11e3-a184-0002a5d5c51b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
downmix {
|
||||||
|
library downmix
|
||||||
|
uuid 93f04452-e4fe-41cc-91f9-e475b6d1d69f
|
||||||
|
}
|
||||||
|
loudness_enhancer {
|
||||||
|
library loudness_enhancer
|
||||||
|
uuid fa415329-2034-4bea-b5dc-5b381c8d1e2c
|
||||||
|
}
|
||||||
|
# aec {
|
||||||
|
# library audio_pre_processing
|
||||||
|
# uuid 29dfd020-e88b-11e5-b505-0002a5d5c51b
|
||||||
|
# }
|
||||||
|
# agc {
|
||||||
|
# library audio_pre_processing
|
||||||
|
# uuid e6cdbac0-4a7c-11e4-a018-0002a5d5c51b
|
||||||
|
# }
|
||||||
|
# ns {
|
||||||
|
# library audio_pre_processing
|
||||||
|
# uuid e4eb6b40-e88b-11e5-b6ad-0002a5d5c51b
|
||||||
|
# }
|
||||||
|
}
|
||||||
|
|
||||||
|
# Default pre-processing effects. Add to audio_effect.conf "effects" section if
|
||||||
|
# audio HAL implements support for them.
|
||||||
|
#
|
||||||
|
# aec {
|
||||||
|
# library pre_processing
|
||||||
|
# uuid bb392ec0-8d4d-11e0-a896-0002a5d5c51b
|
||||||
|
# }
|
||||||
|
# agc {
|
||||||
|
# library pre_processing
|
||||||
|
# uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b
|
||||||
|
# }
|
||||||
|
# ns {
|
||||||
|
# library pre_processing
|
||||||
|
# uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Audio preprocessor configurations.
|
||||||
|
# The pre processor configuration consists in a list of elements each describing
|
||||||
|
# pre processor settings for a given input source. Valid input source names are:
|
||||||
|
# "mic", "camcorder", "voice_recognition", "voice_communication"
|
||||||
|
# Each input source element contains a list of effects elements. The name of the effect
|
||||||
|
# element must be the name of one of the effects in the "effects" list of the file.
|
||||||
|
# Each effect element may optionally contain a list of parameters and their
|
||||||
|
# default value to apply when the pre processor effect is created.
|
||||||
|
# A parameter is defined by a "param" element and a "value" element. Each of these elements
|
||||||
|
# consists in one or more elements specifying a type followed by a value.
|
||||||
|
# The types defined are: "int", "short", "float", "bool" and "string"
|
||||||
|
# When both "param" and "value" are a single int, a simple form is allowed where just
|
||||||
|
# the param and value pair is present in the parameter description
|
||||||
|
# pre_processing {
|
||||||
|
# <input source name> {
|
||||||
|
# <fx name> {
|
||||||
|
# <param 1 name> {
|
||||||
|
# param {
|
||||||
|
# int|short|float|bool|string <value>
|
||||||
|
# [ int|short|float|bool|string <value> ]
|
||||||
|
# ...
|
||||||
|
# }
|
||||||
|
# value {
|
||||||
|
# int|short|float|bool|string <value>
|
||||||
|
# [ int|short|float|bool|string <value> ]
|
||||||
|
# ...
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
# <param 2 name > {<param> <value>}
|
||||||
|
# ...
|
||||||
|
# }
|
||||||
|
# ...
|
||||||
|
# }
|
||||||
|
# ...
|
||||||
|
# }
|
||||||
|
|
||||||
|
#
|
||||||
|
# TODO: add default audio pre processor configurations after debug and tuning phase
|
||||||
|
#
|
|
@ -20,9 +20,9 @@
|
||||||
|
|
||||||
#define BTM_DEF_LOCAL_NAME "Samsung Galaxy Note Pro 12.2"
|
#define BTM_DEF_LOCAL_NAME "Samsung Galaxy Note Pro 12.2"
|
||||||
|
|
||||||
#define BTM_WBS_INCLUDED TRUE
|
#define BTA_DISABLE_DELAY 1000 /* in milliseconds */
|
||||||
|
|
||||||
/* Defined if the kernel does not have support for CLOCK_BOOTTIME_ALARM */
|
#define BTM_WBS_INCLUDED TRUE /* Enable WBS */
|
||||||
#define KERNEL_MISSING_CLOCK_BOOTTIME_ALARM TRUE
|
#define BTIF_HF_WBS_PREFERRED TRUE /* Use WBS */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyHS0"
|
BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyHS0"
|
||||||
FW_PATCHFILE_LOCATION = "/vendor/firmware"
|
FW_PATCHFILE_LOCATION = "/vendor/firmware/"
|
||||||
BT_WAKE_VIA_PROC = TRUE
|
BT_WAKE_VIA_PROC = TRUE
|
||||||
|
BT_WAKE_VIA_PROC_NOTIFY_DEASSERT=TRUE
|
||||||
|
PROC_BTWRITE_TIMER_TIMEOUT_MS = 0
|
||||||
|
UART_TARGET_BAUD_RATE = 4000000
|
||||||
LPM_IDLE_TIMEOUT_MULTIPLE = 5
|
LPM_IDLE_TIMEOUT_MULTIPLE = 5
|
||||||
|
LPM_BT_WAKE_POLARITY = 0
|
||||||
|
LPM_HOST_WAKE_POLARITY = 0
|
||||||
|
SCO_USE_I2S_INTERFACE = FALSE
|
||||||
|
SCO_WBS_SAMPLE_RATE = 0
|
||||||
|
SCO_I2SPCM_IF_ROLE = 0
|
||||||
BTVND_DBG = FALSE
|
BTVND_DBG = FALSE
|
||||||
BTHW_DBG = TRUE
|
BTHW_DBG = TRUE
|
||||||
VNDUSERIAL_DBG = FALSE
|
VNDUSERIAL_DBG = FALSE
|
||||||
UPIO_DBG = FALSE
|
UPIO_DBG = FALSE
|
||||||
UART_TARGET_BAUD_RATE = 3000000
|
|
||||||
FW_PATCH_SETTLEMENT_DELAY_MS = 100
|
|
||||||
USE_AXI_BRIDGE_LOCK = TRUE
|
|
||||||
UART_FORCE_TWO_STOPBITS = TRUE
|
|
||||||
LPM_COMBINE_SLEEP_MODE_AND_LPM = 0
|
|
||||||
|
|
|
@ -1,17 +1,23 @@
|
||||||
LOCAL_PATH := $(call my-dir)
|
LOCAL_PATH := $(call my-dir)
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
LOCAL_SRC_FILES := \
|
LOCAL_C_INCLUDES := \
|
||||||
CameraWrapper.cpp
|
system/media/camera/include
|
||||||
|
|
||||||
LOCAL_SHARED_LIBRARIES := \
|
LOCAL_SRC_FILES := \
|
||||||
libhardware liblog libcamera_client libutils
|
CameraWrapper.cpp
|
||||||
|
|
||||||
LOCAL_C_INCLUDES += \
|
LOCAL_STATIC_LIBRARIES := libbase libarect
|
||||||
system/media/camera/include
|
LOCAL_SHARED_LIBRARIES := \
|
||||||
|
libhardware liblog libcamera_client libutils libcutils libdl \
|
||||||
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
|
android.hidl.token@1.0-utils \
|
||||||
LOCAL_MODULE := camera.$(TARGET_BOARD_PLATFORM)
|
android.hardware.graphics.bufferqueue@1.0
|
||||||
LOCAL_MODULE_TAGS := optional
|
|
||||||
|
LOCAL_HEADER_LIBRARIES := libnativebase_headers
|
||||||
|
|
||||||
|
LOCAL_MODULE := camera.$(TARGET_BOARD_PLATFORM)
|
||||||
|
LOCAL_MODULE_RELATIVE_PATH := hw
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_PROPRIETARY_MODULE := true
|
||||||
|
|
||||||
include $(BUILD_SHARED_LIBRARY)
|
include $(BUILD_SHARED_LIBRARY)
|
||||||
|
|
|
@ -34,9 +34,21 @@
|
||||||
#include <camera/Camera.h>
|
#include <camera/Camera.h>
|
||||||
#include <camera/CameraParameters.h>
|
#include <camera/CameraParameters.h>
|
||||||
|
|
||||||
|
static const char KEY_DIS[] = "dis";
|
||||||
|
static const char DIS_DISABLE[] = "disable";
|
||||||
|
static const char KEY_ZSL[] = "zsl";
|
||||||
|
static const char ZSL_ON[] = "on";
|
||||||
|
static const char ZSL_OFF[] = "off";
|
||||||
|
|
||||||
static android::Mutex gCameraWrapperLock;
|
static android::Mutex gCameraWrapperLock;
|
||||||
static camera_module_t *gVendorModule = 0;
|
static camera_module_t *gVendorModule = 0;
|
||||||
|
|
||||||
|
static camera_notify_callback gUserNotifyCb = NULL;
|
||||||
|
static camera_data_callback gUserDataCb = NULL;
|
||||||
|
static camera_data_timestamp_callback gUserDataCbTimestamp = NULL;
|
||||||
|
static camera_request_memory gUserGetMemory = NULL;
|
||||||
|
static void *gUserCameraDevice = NULL;
|
||||||
|
|
||||||
static char **fixed_set_params = NULL;
|
static char **fixed_set_params = NULL;
|
||||||
|
|
||||||
static int camera_device_open(const hw_module_t* module, const char* name,
|
static int camera_device_open(const hw_module_t* module, const char* name,
|
||||||
|
@ -217,6 +229,25 @@ int camera_set_preview_window(struct camera_device * device,
|
||||||
return VENDOR_CALL(device, set_preview_window, window);
|
return VENDOR_CALL(device, set_preview_window, window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void camera_notify_cb(int32_t msg_type, int32_t ext1, int32_t ext2, void *user) {
|
||||||
|
gUserNotifyCb(msg_type, ext1, ext2, gUserCameraDevice);
|
||||||
|
}
|
||||||
|
|
||||||
|
void camera_data_cb(int32_t msg_type, const camera_memory_t *data, unsigned int index,
|
||||||
|
camera_frame_metadata_t *metadata, void *user) {
|
||||||
|
gUserDataCb(msg_type, data, index, metadata, gUserCameraDevice);
|
||||||
|
}
|
||||||
|
|
||||||
|
void camera_data_cb_timestamp(nsecs_t timestamp, int32_t msg_type,
|
||||||
|
const camera_memory_t *data, unsigned index, void *user) {
|
||||||
|
gUserDataCbTimestamp(timestamp, msg_type, data, index, gUserCameraDevice);
|
||||||
|
}
|
||||||
|
|
||||||
|
camera_memory_t* camera_get_memory(int fd, size_t buf_size,
|
||||||
|
uint_t num_bufs, void *user) {
|
||||||
|
return gUserGetMemory(fd, buf_size, num_bufs, gUserCameraDevice);
|
||||||
|
}
|
||||||
|
|
||||||
void camera_set_callbacks(struct camera_device * device,
|
void camera_set_callbacks(struct camera_device * device,
|
||||||
camera_notify_callback notify_cb,
|
camera_notify_callback notify_cb,
|
||||||
camera_data_callback data_cb,
|
camera_data_callback data_cb,
|
||||||
|
@ -230,7 +261,14 @@ void camera_set_callbacks(struct camera_device * device,
|
||||||
if(!device)
|
if(!device)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
VENDOR_CALL(device, set_callbacks, notify_cb, data_cb, data_cb_timestamp, get_memory, user);
|
gUserNotifyCb = notify_cb;
|
||||||
|
gUserDataCb = data_cb;
|
||||||
|
gUserDataCbTimestamp = data_cb_timestamp;
|
||||||
|
gUserGetMemory = get_memory;
|
||||||
|
gUserCameraDevice = user;
|
||||||
|
|
||||||
|
VENDOR_CALL(device, set_callbacks, camera_notify_cb, camera_data_cb,
|
||||||
|
camera_data_cb_timestamp, camera_get_memory, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
void camera_enable_msg_type(struct camera_device * device, int32_t msg_type)
|
void camera_enable_msg_type(struct camera_device * device, int32_t msg_type)
|
||||||
|
|
8
config.fs
Executable file
8
config.fs
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
[AID_QCOM_DIAG]
|
||||||
|
value:2950
|
||||||
|
|
||||||
|
[AID_RFS]
|
||||||
|
value:2951
|
||||||
|
|
||||||
|
[AID_RFS_SHARED]
|
||||||
|
value:2952
|
|
@ -129,7 +129,7 @@ BASEBAND=all
|
||||||
|
|
||||||
PROCESS_NAME=/system/bin/lowi-server
|
PROCESS_NAME=/system/bin/lowi-server
|
||||||
PROCESS_STATE=ENABLED
|
PROCESS_STATE=ENABLED
|
||||||
PROCESS_GROUPS=gps net_admin wifi inet qcom_diag net_raw
|
PROCESS_GROUPS=gps net_admin wifi inet oem_2950 net_raw
|
||||||
PREMIUM_FEATURE=1
|
PREMIUM_FEATURE=1
|
||||||
IZAT_FEATURE_MASK=0x333
|
IZAT_FEATURE_MASK=0x333
|
||||||
PLATFORMS=all
|
PLATFORMS=all
|
||||||
|
@ -161,7 +161,7 @@ BASEBAND=all
|
||||||
|
|
||||||
PROCESS_NAME=/system/bin/xtwifi-client
|
PROCESS_NAME=/system/bin/xtwifi-client
|
||||||
PROCESS_STATE=ENABLED
|
PROCESS_STATE=ENABLED
|
||||||
PROCESS_GROUPS=net_admin wifi inet gps
|
PROCESS_GROUPS=net_admin wifi inet gps net_raw oem_2952
|
||||||
PREMIUM_FEATURE=1
|
PREMIUM_FEATURE=1
|
||||||
IZAT_FEATURE_MASK=0x30f
|
IZAT_FEATURE_MASK=0x30f
|
||||||
PLATFORMS=all
|
PLATFORMS=all
|
||||||
|
@ -169,7 +169,7 @@ BASEBAND=all
|
||||||
|
|
||||||
PROCESS_NAME=/system/vendor/bin/slim_ap_daemon
|
PROCESS_NAME=/system/vendor/bin/slim_ap_daemon
|
||||||
PROCESS_STATE=ENABLED
|
PROCESS_STATE=ENABLED
|
||||||
PROCESS_GROUPS=gps net_raw misc qcom_oncrpc qcom_diag
|
PROCESS_GROUPS=gps net_raw oem_2950
|
||||||
PREMIUM_FEATURE=1
|
PREMIUM_FEATURE=1
|
||||||
IZAT_FEATURE_MASK=0xf0
|
IZAT_FEATURE_MASK=0xf0
|
||||||
PLATFORMS=all
|
PLATFORMS=all
|
||||||
|
|
38
device.mk
38
device.mk
|
@ -51,9 +51,10 @@ PRODUCT_COPY_FILES += \
|
||||||
|
|
||||||
# Audio
|
# Audio
|
||||||
PRODUCT_COPY_FILES += \
|
PRODUCT_COPY_FILES += \
|
||||||
$(LOCAL_PATH)/audio/audio_platform_info.xml:system/etc/audio_platform_info.xml \
|
$(LOCAL_PATH)/audio/audio_effects.conf:system/vendor/etc/audio_effects.conf \
|
||||||
$(LOCAL_PATH)/audio/audio_policy.conf:system/etc/audio_policy.conf \
|
$(LOCAL_PATH)/audio/audio_platform_info.xml:system/vendor/etc/audio_platform_info.xml \
|
||||||
$(LOCAL_PATH)/audio/mixer_paths.xml:system/etc/mixer_paths.xml
|
$(LOCAL_PATH)/audio/audio_policy.conf:system/vendor/etc/audio_policy.conf \
|
||||||
|
$(LOCAL_PATH)/audio/mixer_paths.xml:system/vendor/etc/mixer_paths.xml
|
||||||
|
|
||||||
# GPS
|
# GPS
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
|
@ -66,18 +67,24 @@ PRODUCT_COPY_FILES += \
|
||||||
$(LOCAL_PATH)/configs/izat.conf:system/etc/izat.conf \
|
$(LOCAL_PATH)/configs/izat.conf:system/etc/izat.conf \
|
||||||
$(LOCAL_PATH)/configs/sap.conf:system/etc/sap.conf
|
$(LOCAL_PATH)/configs/sap.conf:system/etc/sap.conf
|
||||||
|
|
||||||
|
# Bluetooth
|
||||||
|
PRODUCT_PACKAGES += \
|
||||||
|
libbt-vendor
|
||||||
|
|
||||||
# Camera
|
# Camera
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
|
android.hardware.camera.provider@2.4-impl \
|
||||||
|
camera.device@1.0-impl \
|
||||||
camera.msm8974 \
|
camera.msm8974 \
|
||||||
libstlport \
|
libshim_camera \
|
||||||
libxml2
|
libxml2
|
||||||
|
|
||||||
#PRODUCT_PACKAGES += \
|
#PRODUCT_PACKAGES += \
|
||||||
# Snap
|
# Snap
|
||||||
|
|
||||||
# Doze
|
# Doze
|
||||||
PRODUCT_PACKAGES += \
|
#PRODUCT_PACKAGES += \
|
||||||
SamsungDoze
|
# SamsungDoze
|
||||||
|
|
||||||
# IPv6 tethering
|
# IPv6 tethering
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
|
@ -85,8 +92,8 @@ PRODUCT_PACKAGES += \
|
||||||
ethertypes
|
ethertypes
|
||||||
|
|
||||||
# IR Blaster
|
# IR Blaster
|
||||||
PRODUCT_PACKAGES += \
|
#PRODUCT_PACKAGES += \
|
||||||
consumerir.msm8974
|
# consumerir.msm8974
|
||||||
|
|
||||||
# Input device
|
# Input device
|
||||||
PRODUCT_COPY_FILES += \
|
PRODUCT_COPY_FILES += \
|
||||||
|
@ -104,6 +111,7 @@ PRODUCT_COPY_FILES += \
|
||||||
|
|
||||||
# Lights
|
# Lights
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
|
android.hardware.light@2.0-impl \
|
||||||
lights.MSM8974
|
lights.MSM8974
|
||||||
|
|
||||||
# Media
|
# Media
|
||||||
|
@ -112,7 +120,8 @@ PRODUCT_COPY_FILES += \
|
||||||
|
|
||||||
# Radio
|
# Radio
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
libril_shim
|
libsecnativefeature \
|
||||||
|
libshim_cutils_atomic
|
||||||
|
|
||||||
# Ramdisk
|
# Ramdisk
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
|
@ -126,18 +135,15 @@ PRODUCT_PACKAGES += \
|
||||||
PRODUCT_COPY_FILES += \
|
PRODUCT_COPY_FILES += \
|
||||||
$(LOCAL_PATH)/configs/thermal-engine-8974.conf:system/etc/thermal-engine-8974.conf
|
$(LOCAL_PATH)/configs/thermal-engine-8974.conf:system/etc/thermal-engine-8974.conf
|
||||||
|
|
||||||
|
# Vibrator
|
||||||
|
PRODUCT_PACKAGES += \
|
||||||
|
android.hardware.vibrator@1.0-impl
|
||||||
|
|
||||||
# Wifi
|
# Wifi
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
libnetcmdiface \
|
libnetcmdiface \
|
||||||
macloader
|
macloader
|
||||||
|
|
||||||
PRODUCT_PACKAGES += \
|
|
||||||
hostapd.accept \
|
|
||||||
hostapd.deny \
|
|
||||||
hostapd \
|
|
||||||
wpa_supplicant \
|
|
||||||
wpa_supplicant.conf
|
|
||||||
|
|
||||||
PRODUCT_COPY_FILES += \
|
PRODUCT_COPY_FILES += \
|
||||||
$(LOCAL_PATH)/configs/wpa_supplicant_overlay.conf:system/etc/wifi/wpa_supplicant_overlay.conf \
|
$(LOCAL_PATH)/configs/wpa_supplicant_overlay.conf:system/etc/wifi/wpa_supplicant_overlay.conf \
|
||||||
$(LOCAL_PATH)/configs/p2p_supplicant_overlay.conf:system/etc/wifi/p2p_supplicant_overlay.conf
|
$(LOCAL_PATH)/configs/p2p_supplicant_overlay.conf:system/etc/wifi/p2p_supplicant_overlay.conf
|
||||||
|
|
|
@ -1,249 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2014 The CyanogenMod 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define CAMERA_PARAMETERS_EXTRA_C \
|
|
||||||
const char CameraParameters::KEY_DIS[] = "dis"; \
|
|
||||||
const char CameraParameters::DIS_DISABLE[] = "disable"; \
|
|
||||||
const char CameraParameters::KEY_DYNAMIC_RANGE_CONTROL[] = "dynamic-range-control"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_DYNAMIC_RANGE_CONTROL[] = "dynamic-range-control-values"; \
|
|
||||||
const char CameraParameters::DRC_ON[] = "on"; \
|
|
||||||
const char CameraParameters::DRC_OFF[] = "off"; \
|
|
||||||
\
|
|
||||||
const char CameraParameters::KEY_PHASE_AF[] = "phase-af"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_PHASE_AF[] = "phase-af-values"; \
|
|
||||||
const char CameraParameters::PAF_ON[] = "on"; \
|
|
||||||
const char CameraParameters::PAF_OFF[] = "off"; \
|
|
||||||
\
|
|
||||||
const char CameraParameters::KEY_RT_HDR[] = "rt-hdr"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_RT_HDR[] = "rt-hdr-values"; \
|
|
||||||
const char CameraParameters::RTHDR_ON[] = "on"; \
|
|
||||||
const char CameraParameters::RTHDR_OFF[] = "off"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_ISO_MODES[] = "iso-values"; \
|
|
||||||
const char CameraParameters::KEY_FACE_DETECTION[] = "face-detection"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_FACE_DETECTION[] = "face-detection-values"; \
|
|
||||||
const char CameraParameters::FACE_DETECTION_OFF[] = "off"; \
|
|
||||||
const char CameraParameters::FACE_DETECTION_ON[] = "on"; \
|
|
||||||
const char CameraParameters::KEY_ZSL[] = "zsl"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_ZSL_MODES[] = "zsl-values"; \
|
|
||||||
const char CameraParameters::ZSL_OFF[] = "off"; \
|
|
||||||
const char CameraParameters::ZSL_ON[] = "on"; \
|
|
||||||
const char CameraParameters::KEY_ISO_MODE[] = "iso"; \
|
|
||||||
const char CameraParameters::KEY_CAMERA_MODE[] = "camera-mode"; \
|
|
||||||
const char CameraParameters::KEY_SAMSUNG_CAMERA_MODE[] = "cam_mode"; \
|
|
||||||
const char CameraParameters::KEY_SELECTABLE_ZONE_AF[] = "selectable-zone-af"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_SELECTABLE_ZONE_AF[] = "selectable-zone-af-values"; \
|
|
||||||
const char CameraParameters::SELECTABLE_ZONE_AF_AUTO[] = "auto"; \
|
|
||||||
const char CameraParameters::SELECTABLE_ZONE_AF_SPOT_METERING[] = "spot-metering"; \
|
|
||||||
const char CameraParameters::SELECTABLE_ZONE_AF_CENTER_WEIGHTED[] = "center-weighted"; \
|
|
||||||
const char CameraParameters::SELECTABLE_ZONE_AF_FRAME_AVERAGE[] = "frame-average"; \
|
|
||||||
const char CameraParameters::KEY_PREVIEW_FRAME_RATE_MODE[] = "preview-frame-rate-mode"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_PREVIEW_FRAME_RATE_MODES[] = "preview-frame-rate-modes"; \
|
|
||||||
const char CameraParameters::KEY_PREVIEW_FRAME_RATE_AUTO_MODE[] = "frame-rate-auto"; \
|
|
||||||
const char CameraParameters::KEY_PREVIEW_FRAME_RATE_FIXED_MODE[] = "frame-rate-fixed"; \
|
|
||||||
const char CameraParameters::KEY_SHARPNESS[] = "sharpness"; \
|
|
||||||
const char CameraParameters::KEY_SATURATION[] = "saturation"; \
|
|
||||||
const char CameraParameters::KEY_CONTRAST[] = "contrast"; \
|
|
||||||
const char CameraParameters::KEY_SCENE_DETECT[] = "scene-detect"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_SCENE_DETECT[] = "scene-detect-values"; \
|
|
||||||
const char CameraParameters::SCENE_DETECT_OFF[] = "off"; \
|
|
||||||
const char CameraParameters::SCENE_DETECT_ON[] = "on"; \
|
|
||||||
const char CameraParameters::KEY_WEATHER[] = "weather"; \
|
|
||||||
const char CameraParameters::KEY_CITYID[] = "contextualtag-cityid"; \
|
|
||||||
const char CameraParameters::KEY_TOUCH_AF_AEC[] = "touch-af-aec"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_TOUCH_AF_AEC[] = "touch-af-aec-values"; \
|
|
||||||
const char CameraParameters::TOUCH_AF_AEC_OFF[] = "touch-off"; \
|
|
||||||
const char CameraParameters::TOUCH_AF_AEC_ON[] = "touch-on"; \
|
|
||||||
const char CameraParameters::KEY_MEMORY_COLOR_ENHANCEMENT[] = "mce"; \
|
|
||||||
const char CameraParameters::KEY_LENSSHADE[] = "lensshade"; \
|
|
||||||
const char CameraParameters::KEY_REDEYE_REDUCTION[] = "redeye-reduction"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_REDEYE_REDUCTION[] = "redeye-reduction-values"; \
|
|
||||||
const char CameraParameters::REDEYE_REDUCTION_ENABLE[] = "enable"; \
|
|
||||||
const char CameraParameters::REDEYE_REDUCTION_DISABLE[] = "disable"; \
|
|
||||||
const char CameraParameters::KEY_GPS_LATITUDE_REF[] = "gps-latitude-ref"; \
|
|
||||||
const char CameraParameters::KEY_GPS_LONGITUDE_REF[] = "gps-longitude-ref"; \
|
|
||||||
const char CameraParameters::KEY_GPS_ALTITUDE_REF[] = "gps-altitude-ref"; \
|
|
||||||
const char CameraParameters::KEY_GPS_STATUS[] = "gps-status"; \
|
|
||||||
const char CameraParameters::KEY_EXIF_DATETIME[] = "exif-datetime"; \
|
|
||||||
const char CameraParameters::KEY_AUTO_EXPOSURE[] = "auto-exposure"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_AUTO_EXPOSURE[] = "auto-exposure-values"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_LENSSHADE_MODES[] = "lensshade-values"; \
|
|
||||||
const char CameraParameters::LENSSHADE_ENABLE[] = "enable"; \
|
|
||||||
const char CameraParameters::LENSSHADE_DISABLE[] = "disable"; \
|
|
||||||
const char CameraParameters::MCE_ENABLE[] = "enable"; \
|
|
||||||
const char CameraParameters::MCE_DISABLE[] = "disable"; \
|
|
||||||
const char CameraParameters::ISO_AUTO[] = "auto"; \
|
|
||||||
const char CameraParameters::ISO_HJR[] = "ISO_HJR"; \
|
|
||||||
const char CameraParameters::ISO_100[] = "ISO100"; \
|
|
||||||
const char CameraParameters::ISO_200[] = "ISO200"; \
|
|
||||||
const char CameraParameters::ISO_400[] = "ISO400"; \
|
|
||||||
const char CameraParameters::ISO_800[] = "ISO800"; \
|
|
||||||
const char CameraParameters::ISO_1600[] = "ISO1600"; \
|
|
||||||
const char CameraParameters::ISO_3200[] = "ISO3200"; \
|
|
||||||
const char CameraParameters::ISO_6400[] = "ISO6400"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_HFR_SIZES[] = "hfr-size-values"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_MEM_COLOR_ENHANCE_MODES[] = "mce-values"; \
|
|
||||||
const char CameraParameters::VIDEO_HFR_OFF[] = "off"; \
|
|
||||||
const char CameraParameters::VIDEO_HFR_2X[] = "60"; \
|
|
||||||
const char CameraParameters::VIDEO_HFR_3X[] = "90"; \
|
|
||||||
const char CameraParameters::VIDEO_HFR_4X[] = "120"; \
|
|
||||||
const char CameraParameters::KEY_VIDEO_HIGH_FRAME_RATE[] = "video-hfr"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_VIDEO_HIGH_FRAME_RATE_MODES[] = "video-hfr-values"; \
|
|
||||||
const char CameraParameters::KEY_HISTOGRAM[] = "histogram"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_HISTOGRAM_MODES[] = "histogram-values"; \
|
|
||||||
const char CameraParameters::HISTOGRAM_ENABLE[] = "enable"; \
|
|
||||||
const char CameraParameters::HISTOGRAM_DISABLE[] = "disable"; \
|
|
||||||
const char CameraParameters::SKIN_TONE_ENHANCEMENT_ENABLE[] = "enable"; \
|
|
||||||
const char CameraParameters::SKIN_TONE_ENHANCEMENT_DISABLE[] = "disable"; \
|
|
||||||
const char CameraParameters::KEY_SKIN_TONE_ENHANCEMENT[] = "skinToneEnhancement"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_SKIN_TONE_ENHANCEMENT_MODES[] = "skinToneEnhancement-values"; \
|
|
||||||
const char CameraParameters::DENOISE_OFF[] = "denoise-off"; \
|
|
||||||
const char CameraParameters::DENOISE_ON[] = "denoise-on"; \
|
|
||||||
const char CameraParameters::KEY_DENOISE[] = "denoise"; \
|
|
||||||
const char CameraParameters::KEY_SUPPORTED_DENOISE[] = "denoise-values"; \
|
|
||||||
const char CameraParameters::EFFECT_EMBOSS[] = "emboss"; \
|
|
||||||
const char CameraParameters::EFFECT_SKETCH[] = "sketch"; \
|
|
||||||
const char CameraParameters::EFFECT_NEON[] = "neon"; \
|
|
||||||
const char CameraParameters::SCENE_MODE_FLOWERS[] = "flowers"; \
|
|
||||||
const char CameraParameters::SCENE_MODE_AR[] = "AR"; \
|
|
||||||
const char CameraParameters::PIXEL_FORMAT_YUV420SP_ADRENO[] = "yuv420sp-adreno"; \
|
|
||||||
const char CameraParameters::PIXEL_FORMAT_RAW[] = "raw"; \
|
|
||||||
const char CameraParameters::PIXEL_FORMAT_YV12[] = "yuv420p"; \
|
|
||||||
const char CameraParameters::PIXEL_FORMAT_NV12[] = "nv12"; \
|
|
||||||
int CameraParameters::getInt64(const char *key) const { return -1; }; \
|
|
||||||
const char *CameraParameters::getPreviewFrameRateMode() const { return get(KEY_PREVIEW_FRAME_RATE_MODE); }; \
|
|
||||||
void CameraParameters::setPreviewFrameRateMode(const char *mode) { set(KEY_PREVIEW_FRAME_RATE_MODE, mode); }; \
|
|
||||||
void CameraParameters::getMeteringAreaCenter(int *x, int *y) const { }; \
|
|
||||||
void CameraParameters::setTouchIndexAec(int x, int y) { }; \
|
|
||||||
void CameraParameters::setTouchIndexAf(int x, int y) { }; \
|
|
||||||
void CameraParameters::setPreviewFpsRange(int minFPS, int maxFPS) { };
|
|
||||||
|
|
||||||
#define CAMERA_PARAMETERS_EXTRA_H \
|
|
||||||
static const char KEY_DIS[]; \
|
|
||||||
static const char DIS_DISABLE[]; \
|
|
||||||
\
|
|
||||||
static const char KEY_DYNAMIC_RANGE_CONTROL[]; \
|
|
||||||
static const char KEY_SUPPORTED_DYNAMIC_RANGE_CONTROL[]; \
|
|
||||||
static const char DRC_ON[]; \
|
|
||||||
static const char DRC_OFF[]; \
|
|
||||||
\
|
|
||||||
static const char KEY_PHASE_AF[]; \
|
|
||||||
static const char KEY_SUPPORTED_PHASE_AF[]; \
|
|
||||||
static const char PAF_ON[]; \
|
|
||||||
static const char PAF_OFF[]; \
|
|
||||||
\
|
|
||||||
static const char KEY_RT_HDR[]; \
|
|
||||||
static const char KEY_SUPPORTED_RT_HDR[]; \
|
|
||||||
static const char RTHDR_ON[]; \
|
|
||||||
static const char RTHDR_OFF[]; \
|
|
||||||
\
|
|
||||||
static const char KEY_SUPPORTED_ISO_MODES[]; \
|
|
||||||
static const char KEY_FACE_DETECTION[]; \
|
|
||||||
static const char KEY_SUPPORTED_FACE_DETECTION[]; \
|
|
||||||
static const char FACE_DETECTION_OFF[]; \
|
|
||||||
static const char FACE_DETECTION_ON[]; \
|
|
||||||
static const char KEY_ZSL[]; \
|
|
||||||
static const char KEY_SUPPORTED_ZSL_MODES[]; \
|
|
||||||
static const char ZSL_OFF[]; \
|
|
||||||
static const char ZSL_ON[]; \
|
|
||||||
static const char KEY_ISO_MODE[]; \
|
|
||||||
static const char KEY_CAMERA_MODE[]; \
|
|
||||||
static const char KEY_SAMSUNG_CAMERA_MODE[]; \
|
|
||||||
static const char KEY_SELECTABLE_ZONE_AF[]; \
|
|
||||||
static const char KEY_SUPPORTED_SELECTABLE_ZONE_AF[]; \
|
|
||||||
static const char SELECTABLE_ZONE_AF_AUTO[]; \
|
|
||||||
static const char SELECTABLE_ZONE_AF_SPOT_METERING[]; \
|
|
||||||
static const char SELECTABLE_ZONE_AF_CENTER_WEIGHTED[]; \
|
|
||||||
static const char SELECTABLE_ZONE_AF_FRAME_AVERAGE[]; \
|
|
||||||
static const char KEY_PREVIEW_FRAME_RATE_MODE[]; \
|
|
||||||
static const char KEY_SUPPORTED_PREVIEW_FRAME_RATE_MODES[]; \
|
|
||||||
static const char KEY_PREVIEW_FRAME_RATE_AUTO_MODE[]; \
|
|
||||||
static const char KEY_PREVIEW_FRAME_RATE_FIXED_MODE[]; \
|
|
||||||
static const char KEY_SHARPNESS[]; \
|
|
||||||
static const char KEY_SATURATION[]; \
|
|
||||||
static const char KEY_CONTRAST[]; \
|
|
||||||
static const char KEY_SCENE_DETECT[]; \
|
|
||||||
static const char KEY_SUPPORTED_SCENE_DETECT[]; \
|
|
||||||
static const char SCENE_DETECT_OFF[]; \
|
|
||||||
static const char SCENE_DETECT_ON[]; \
|
|
||||||
static const char KEY_WEATHER[]; \
|
|
||||||
static const char KEY_CITYID[]; \
|
|
||||||
static const char KEY_TOUCH_AF_AEC[]; \
|
|
||||||
static const char KEY_SUPPORTED_TOUCH_AF_AEC[]; \
|
|
||||||
static const char TOUCH_AF_AEC_OFF[]; \
|
|
||||||
static const char TOUCH_AF_AEC_ON[]; \
|
|
||||||
static const char KEY_MEMORY_COLOR_ENHANCEMENT[]; \
|
|
||||||
static const char KEY_LENSSHADE[]; \
|
|
||||||
static const char KEY_REDEYE_REDUCTION[]; \
|
|
||||||
static const char KEY_SUPPORTED_REDEYE_REDUCTION[]; \
|
|
||||||
static const char REDEYE_REDUCTION_ENABLE[]; \
|
|
||||||
static const char REDEYE_REDUCTION_DISABLE[]; \
|
|
||||||
static const char KEY_GPS_LATITUDE_REF[]; \
|
|
||||||
static const char KEY_GPS_LONGITUDE_REF[]; \
|
|
||||||
static const char KEY_GPS_ALTITUDE_REF[]; \
|
|
||||||
static const char KEY_GPS_STATUS[]; \
|
|
||||||
static const char KEY_EXIF_DATETIME[]; \
|
|
||||||
static const char KEY_AUTO_EXPOSURE[]; \
|
|
||||||
static const char KEY_SUPPORTED_AUTO_EXPOSURE[]; \
|
|
||||||
static const char KEY_SUPPORTED_LENSSHADE_MODES[]; \
|
|
||||||
static const char LENSSHADE_ENABLE[]; \
|
|
||||||
static const char LENSSHADE_DISABLE[]; \
|
|
||||||
static const char MCE_ENABLE[]; \
|
|
||||||
static const char MCE_DISABLE[]; \
|
|
||||||
static const char ISO_AUTO[]; \
|
|
||||||
static const char ISO_HJR[]; \
|
|
||||||
static const char ISO_100[]; \
|
|
||||||
static const char ISO_200[]; \
|
|
||||||
static const char ISO_400[]; \
|
|
||||||
static const char ISO_800[]; \
|
|
||||||
static const char ISO_1600[]; \
|
|
||||||
static const char ISO_3200[]; \
|
|
||||||
static const char ISO_6400[]; \
|
|
||||||
static const char KEY_SUPPORTED_HFR_SIZES[]; \
|
|
||||||
static const char KEY_SUPPORTED_MEM_COLOR_ENHANCE_MODES[]; \
|
|
||||||
static const char VIDEO_HFR_OFF[]; \
|
|
||||||
static const char VIDEO_HFR_2X[]; \
|
|
||||||
static const char VIDEO_HFR_3X[]; \
|
|
||||||
static const char VIDEO_HFR_4X[]; \
|
|
||||||
static const char KEY_VIDEO_HIGH_FRAME_RATE[]; \
|
|
||||||
static const char KEY_SUPPORTED_VIDEO_HIGH_FRAME_RATE_MODES[]; \
|
|
||||||
static const char KEY_HISTOGRAM[]; \
|
|
||||||
static const char KEY_SUPPORTED_HISTOGRAM_MODES[]; \
|
|
||||||
static const char HISTOGRAM_ENABLE[]; \
|
|
||||||
static const char HISTOGRAM_DISABLE[]; \
|
|
||||||
static const char SKIN_TONE_ENHANCEMENT_ENABLE[]; \
|
|
||||||
static const char SKIN_TONE_ENHANCEMENT_DISABLE[]; \
|
|
||||||
static const char KEY_SKIN_TONE_ENHANCEMENT[]; \
|
|
||||||
static const char KEY_SUPPORTED_SKIN_TONE_ENHANCEMENT_MODES[]; \
|
|
||||||
static const char DENOISE_OFF[]; \
|
|
||||||
static const char DENOISE_ON[]; \
|
|
||||||
static const char KEY_DENOISE[]; \
|
|
||||||
static const char KEY_SUPPORTED_DENOISE[];\
|
|
||||||
static const char EFFECT_EMBOSS[]; \
|
|
||||||
static const char EFFECT_SKETCH[]; \
|
|
||||||
static const char EFFECT_NEON[]; \
|
|
||||||
static const char SCENE_MODE_FLOWERS[]; \
|
|
||||||
static const char SCENE_MODE_AR[]; \
|
|
||||||
static const char PIXEL_FORMAT_YUV420SP_ADRENO[]; \
|
|
||||||
static const char PIXEL_FORMAT_RAW[]; \
|
|
||||||
static const char PIXEL_FORMAT_YV12[]; \
|
|
||||||
static const char PIXEL_FORMAT_NV12[]; \
|
|
||||||
int getInt64(const char *key) const; \
|
|
||||||
const char *getPreviewFrameRateMode() const; \
|
|
||||||
void setPreviewFrameRateMode(const char *mode); \
|
|
||||||
void getMeteringAreaCenter(int *x, int *y) const; \
|
|
||||||
void setTouchIndexAec(int x, int y); \
|
|
||||||
void setTouchIndexAf(int x, int y); \
|
|
||||||
void setPreviewFpsRange(int minFPS, int maxFPS);
|
|
File diff suppressed because it is too large
Load diff
|
@ -31,13 +31,17 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "vendor_init.h"
|
#include <android-base/logging.h>
|
||||||
|
#include <android-base/properties.h>
|
||||||
|
|
||||||
#include "property_service.h"
|
#include "property_service.h"
|
||||||
#include "log.h"
|
#include "vendor_init.h"
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
#include "init_msm8974.h"
|
#include "init_msm8974.h"
|
||||||
|
|
||||||
|
using android::base::GetProperty;
|
||||||
|
using android::init::property_set;
|
||||||
|
|
||||||
void init_target_properties()
|
void init_target_properties()
|
||||||
{
|
{
|
||||||
property_override("ro.build.fingerprint", "samsung/viennaltexx/viennalte:5.0.2/LRX22G/P905XXUABPE2:user/release-keys");
|
property_override("ro.build.fingerprint", "samsung/viennaltexx/viennalte:5.0.2/LRX22G/P905XXUABPE2:user/release-keys");
|
||||||
|
|
20
libsecnativefeature/Android.mk
Executable file
20
libsecnativefeature/Android.mk
Executable file
|
@ -0,0 +1,20 @@
|
||||||
|
LOCAL_PATH:= $(call my-dir)
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
|
||||||
|
LOCAL_SRC_FILES := \
|
||||||
|
SecNativeFeatureCIf.cpp \
|
||||||
|
SecNativeFeatureCppIf.cpp
|
||||||
|
|
||||||
|
LOCAL_C_INCLUDES += \
|
||||||
|
external/expat/lib
|
||||||
|
|
||||||
|
LOCAL_SHARED_LIBRARIES := \
|
||||||
|
libexpat
|
||||||
|
|
||||||
|
LOCAL_CFLAGS := -Wall -Werror
|
||||||
|
|
||||||
|
LOCAL_MODULE := libsecnativefeature
|
||||||
|
|
||||||
|
include $(BUILD_SHARED_LIBRARY)
|
31
libsecnativefeature/SecNativeFeature.h
Executable file
31
libsecnativefeature/SecNativeFeature.h
Executable file
|
@ -0,0 +1,31 @@
|
||||||
|
#ifndef SEC_NATIVE_FEATURE_H
|
||||||
|
#define SEC_NATIVE_FEATURE_H
|
||||||
|
|
||||||
|
#include "SecNativeFeatureTagAll.h"
|
||||||
|
|
||||||
|
// define TAG for default value
|
||||||
|
/*
|
||||||
|
#define Str_NoTag ""
|
||||||
|
#define Bool_NoTag false
|
||||||
|
#define Int_NoTag (0)
|
||||||
|
|
||||||
|
#define TAG_BOOLEAN_TEST_TRUE "CscFeature_BooleanTestTrue"
|
||||||
|
#define TAG_BOOLEAN_TEST_FALSE "CscFeature_BooleanTestFalse"
|
||||||
|
#define TAG_BOOLEAN_TEST_NULL "CscFeature_BooleanTestNull"
|
||||||
|
#define TAG_STRING_TEST "CscFeature_StringTest"
|
||||||
|
#define TAG_STRING_TEST_NULL "CscFeature_StringTestNull"
|
||||||
|
#define TAG_INTEGER_TEST "CscFeature_IntegerTest"
|
||||||
|
#define TAG_INTEGER_TEST_NULL "CscFeature_IntegerTestNull"
|
||||||
|
|
||||||
|
#define TAG_FMRADIO_RTPLUS "CscFeature_FMRadioRTPlus"
|
||||||
|
#define TAG_FMRADIO_SEASETTING "CscFeature_FMRadioSEASetting"
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#include "SecNativeFeatureCppIf.h"
|
||||||
|
#else
|
||||||
|
#include "SecNativeFeatureCIf.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // SEC_NATIVE_FEATURE_H
|
||||||
|
|
85
libsecnativefeature/SecNativeFeatureCIf.cpp
Executable file
85
libsecnativefeature/SecNativeFeatureCIf.cpp
Executable file
|
@ -0,0 +1,85 @@
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include "SecNativeFeatureCppIf.h"
|
||||||
|
#include "SecNativeFeatureCIf.h"
|
||||||
|
#include <expat.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
SecNativeFeature_getEnableStatus(const char* tag)
|
||||||
|
{
|
||||||
|
SecNativeFeature* instance = SecNativeFeature::getInstance();
|
||||||
|
|
||||||
|
if (instance)
|
||||||
|
{
|
||||||
|
return instance->getEnableStatus(tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
SecNativeFeature_getEnableStatusWithDefault(const char* tag, int defaultValue)
|
||||||
|
{
|
||||||
|
SecNativeFeature* instance = SecNativeFeature::getInstance();
|
||||||
|
|
||||||
|
if (instance)
|
||||||
|
{
|
||||||
|
return instance->getEnableStatus(tag, defaultValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
SecNativeFeature_getInteger(const char* tag)
|
||||||
|
{
|
||||||
|
SecNativeFeature* instance = SecNativeFeature::getInstance();
|
||||||
|
|
||||||
|
if (instance)
|
||||||
|
{
|
||||||
|
return instance->getInteger(tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
SecNativeFeature_getIntegerWithDefault(const char* tag, int defaultValue)
|
||||||
|
{
|
||||||
|
SecNativeFeature* instance = SecNativeFeature::getInstance();
|
||||||
|
|
||||||
|
if (instance)
|
||||||
|
{
|
||||||
|
return instance->getInteger(tag, defaultValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char*
|
||||||
|
SecNativeFeature_getString(const char* tag)
|
||||||
|
{
|
||||||
|
SecNativeFeature* instance = SecNativeFeature::getInstance();
|
||||||
|
|
||||||
|
if (instance)
|
||||||
|
{
|
||||||
|
return instance->getString(tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char*
|
||||||
|
SecNativeFeature_getStringWithDefault(const char* tag, char* defaultValue)
|
||||||
|
{
|
||||||
|
SecNativeFeature* instance = SecNativeFeature::getInstance();
|
||||||
|
|
||||||
|
if (instance)
|
||||||
|
{
|
||||||
|
return instance->getString(tag, defaultValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
return defaultValue;
|
||||||
|
}
|
24
libsecnativefeature/SecNativeFeatureCIf.h
Executable file
24
libsecnativefeature/SecNativeFeatureCIf.h
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#ifndef SEC_NATIVE_FEATURE_CIF_H
|
||||||
|
#define SEC_NATIVE_FEATURE_CIF_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define DECLARE_BEGIN_C extern "C" {
|
||||||
|
#define DECLARE_END_C }
|
||||||
|
#else
|
||||||
|
#define DECLARE_BEGIN_C
|
||||||
|
#define DECLARE_END_C
|
||||||
|
#endif
|
||||||
|
|
||||||
|
DECLARE_BEGIN_C
|
||||||
|
|
||||||
|
int SecNativeFeature_getEnableStatus(const char* tag);
|
||||||
|
int SecNativeFeature_getEnableStatusWithDefault(const char* tag, int defaultValue);
|
||||||
|
int SecNativeFeature_getInteger(const char* tag);
|
||||||
|
int SecNativeFeature_getIntegerWithDefault(const char* tag, int defaultValue);
|
||||||
|
const char* SecNativeFeature_getString(const char* tag);
|
||||||
|
const char* SecNativeFeature_getStringWithDefault(const char* tag, char* defaultValue);
|
||||||
|
|
||||||
|
DECLARE_END_C
|
||||||
|
|
||||||
|
#endif // SEC_NATIVE_FEATURE_CIF_H
|
||||||
|
|
187
libsecnativefeature/SecNativeFeatureCppIf.cpp
Executable file
187
libsecnativefeature/SecNativeFeatureCppIf.cpp
Executable file
|
@ -0,0 +1,187 @@
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include "SecNativeFeatureCppIf.h"
|
||||||
|
#include <expat.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
// feature file location (which should be "/system/csc/feature.xml")
|
||||||
|
#define FEATURE_FILE "/system/csc/feature.xml"
|
||||||
|
// feature file location (which should be "/system/csc/others.xml")
|
||||||
|
#define MPS_FEATURE_FILE "/system/csc/others.xml"
|
||||||
|
|
||||||
|
// XML parsing using expat lib - handlers
|
||||||
|
typedef struct{
|
||||||
|
std::string curr_name;
|
||||||
|
std::map<std::string,std::string> *pFeatures;
|
||||||
|
int depth;
|
||||||
|
} ParserUserData;
|
||||||
|
|
||||||
|
static void XMLCALL
|
||||||
|
charDataHandler(void *userData, const char *s, int len){
|
||||||
|
ParserUserData* pData = (ParserUserData*)userData;
|
||||||
|
std::string value(s, len);
|
||||||
|
std::string curr_name = pData->curr_name;
|
||||||
|
|
||||||
|
if(!curr_name.empty()){
|
||||||
|
std::map<std::string,std::string>::iterator result = (*pData->pFeatures).find(curr_name);
|
||||||
|
|
||||||
|
if (result != (*pData->pFeatures).end()) {
|
||||||
|
value = result->second + value;
|
||||||
|
(*pData->pFeatures).erase(curr_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::map<std::string,std::string>::iterator begin;
|
||||||
|
begin = (*pData->pFeatures).begin();
|
||||||
|
std::pair<std::string,std::string> feature(curr_name,value);
|
||||||
|
(*pData->pFeatures).insert(begin, feature);
|
||||||
|
}
|
||||||
|
// else{
|
||||||
|
// // printf("no name\n");
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
static void XMLCALL
|
||||||
|
startElement(void *userData, const char *name, const char **atts __unused)
|
||||||
|
{
|
||||||
|
ParserUserData* pData = (ParserUserData*)userData;
|
||||||
|
pData->curr_name.assign(name);
|
||||||
|
pData->depth += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void XMLCALL
|
||||||
|
endElement(void *userData, const char *name __unused)
|
||||||
|
{
|
||||||
|
ParserUserData* pData = (ParserUserData*)userData;
|
||||||
|
pData->curr_name.clear();
|
||||||
|
pData->depth -= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SecNativeFeture class implementation
|
||||||
|
SecNativeFeature* SecNativeFeature::_instance = NULL;
|
||||||
|
SecNativeFeature::SecNativeFeature() {
|
||||||
|
int load_result = 0;
|
||||||
|
_features.clear();
|
||||||
|
load_result = _loadFeature();
|
||||||
|
if (load_result == -1){
|
||||||
|
// todo : handle _loadFeature errors here.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SecNativeFeature::~SecNativeFeature() {
|
||||||
|
delete _instance;
|
||||||
|
}
|
||||||
|
SecNativeFeature* SecNativeFeature::getInstance() {
|
||||||
|
if(_instance == NULL) {
|
||||||
|
_instance = new SecNativeFeature();
|
||||||
|
}
|
||||||
|
return _instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SecNativeFeature::getEnableStatus(const char* tag) {
|
||||||
|
std::map<std::string,std::string>::iterator found;
|
||||||
|
found = _features.find(tag);
|
||||||
|
|
||||||
|
if(found == _features.end()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(found->second.compare("true") == 0 || found->second.compare("TRUE") == 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SecNativeFeature::getEnableStatus(const char* tag, bool defaultValue) {
|
||||||
|
std::map<std::string,std::string>::iterator found;
|
||||||
|
found = _features.find(tag);
|
||||||
|
|
||||||
|
if(found == _features.end()) {
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(found->second.compare("true") == 0 || found->second.compare("TRUE") == 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* SecNativeFeature::getString(const char* tag) {
|
||||||
|
std::map<std::string,std::string>::iterator found;
|
||||||
|
found = _features.find(tag);
|
||||||
|
|
||||||
|
if(found == _features.end()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return found->second.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* SecNativeFeature::getString(const char* tag, char* defaultValue) {
|
||||||
|
std::map<std::string,std::string>::iterator found;
|
||||||
|
found = _features.find(tag);
|
||||||
|
|
||||||
|
if(found == _features.end()) {
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
return found->second.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
int SecNativeFeature::getInteger(const char* tag) {
|
||||||
|
std::map<std::string,std::string>::iterator found;
|
||||||
|
found = _features.find(tag);
|
||||||
|
|
||||||
|
if(found == _features.end()) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
std::string raw_value = _features.find(tag)->second;
|
||||||
|
return atoi(raw_value.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
int SecNativeFeature::getInteger(const char* tag, int defaultValue) {
|
||||||
|
std::map<std::string,std::string>::iterator found;
|
||||||
|
found = _features.find(tag);
|
||||||
|
|
||||||
|
if(found == _features.end()) {
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
std::string raw_value = _features.find(tag)->second;
|
||||||
|
return atoi(raw_value.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
int SecNativeFeature::_loadFeature(){
|
||||||
|
char buf[BUFSIZ];
|
||||||
|
XML_Parser parser = XML_ParserCreate(NULL);
|
||||||
|
int done;
|
||||||
|
FILE * pFeatureFile = NULL;
|
||||||
|
ParserUserData userData;
|
||||||
|
userData.curr_name = std::string ();
|
||||||
|
userData.pFeatures = &_features;
|
||||||
|
userData.depth = 0;
|
||||||
|
|
||||||
|
pFeatureFile = fopen(FEATURE_FILE, "r");
|
||||||
|
if (pFeatureFile == NULL) {
|
||||||
|
pFeatureFile = fopen(MPS_FEATURE_FILE, "r");
|
||||||
|
if (pFeatureFile == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
XML_SetUserData(parser, &userData);
|
||||||
|
XML_SetElementHandler(parser, startElement, endElement);
|
||||||
|
XML_SetCharacterDataHandler(parser, charDataHandler);
|
||||||
|
do {
|
||||||
|
size_t len = fread(buf, 1, sizeof(buf), pFeatureFile);
|
||||||
|
if ((len != sizeof(buf)) && (ferror(pFeatureFile))){
|
||||||
|
fclose(pFeatureFile);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
done = len < sizeof(buf);
|
||||||
|
if (XML_Parse(parser, buf, len, done) == XML_STATUS_ERROR) {
|
||||||
|
if(pFeatureFile) {
|
||||||
|
fclose(pFeatureFile);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
} while (!done);
|
||||||
|
XML_ParserFree(parser);
|
||||||
|
fclose(pFeatureFile);
|
||||||
|
return 0;
|
||||||
|
}
|
27
libsecnativefeature/SecNativeFeatureCppIf.h
Executable file
27
libsecnativefeature/SecNativeFeatureCppIf.h
Executable file
|
@ -0,0 +1,27 @@
|
||||||
|
#ifndef SEC_NATIVE_FEATURE_CPPIF_H
|
||||||
|
#define SEC_NATIVE_FEATURE_CPPIF_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
|
class SecNativeFeature {
|
||||||
|
public:
|
||||||
|
bool getEnableStatus(const char* tag);
|
||||||
|
bool getEnableStatus(const char* tag, bool defaultValue);
|
||||||
|
const char* getString(const char* tag);
|
||||||
|
const char* getString(const char* tag, char* defaultValue);
|
||||||
|
int getInteger(const char* tag);
|
||||||
|
int getInteger(const char* tag, int defaultValue);
|
||||||
|
|
||||||
|
static SecNativeFeature* getInstance();
|
||||||
|
private:
|
||||||
|
static SecNativeFeature* _instance;
|
||||||
|
SecNativeFeature();
|
||||||
|
~SecNativeFeature();
|
||||||
|
int _loadFeature();
|
||||||
|
int _loadDefault();
|
||||||
|
std::map<std::string,std::string> _features;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SEC_NATIVE_FEATURE_CPPIF_H
|
||||||
|
|
20
libsecnativefeature/SecNativeFeatureTagAll.h
Executable file
20
libsecnativefeature/SecNativeFeatureTagAll.h
Executable file
|
@ -0,0 +1,20 @@
|
||||||
|
/*
|
||||||
|
* CSC Features
|
||||||
|
* Auto generated by gen_cscfeaturetag_ih.pl
|
||||||
|
* DO NOT EDIT THIS FILE
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
#include "SecNativeFeatureTagGMS.h"
|
||||||
|
#include "SecNativeFeatureTagIMS.h"
|
||||||
|
#include "SecNativeFeatureTagMediaProvider.h"
|
||||||
|
#include "SecNativeFeatureTagNFC.h"
|
||||||
|
#include "SecNativeFeatureTagRIL.h"
|
||||||
|
#include "SecNativeFeatureTagStreaming.h"
|
||||||
|
#include "SecNativeFeatureTagWiFi.h"
|
||||||
|
#include "SecNativeFeatureTagBT.h"
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "SecNativeFeatureTagFramework.h"
|
||||||
|
#include "SecNativeFeatureTagCommon.h"
|
||||||
|
#include "SecNativeFeatureTagWeb.h"
|
9
libsecnativefeature/SecNativeFeatureTagCommon.h
Executable file
9
libsecnativefeature/SecNativeFeatureTagCommon.h
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#ifndef SEC_NATIVE_FEATURE_TAG_COMMON_H
|
||||||
|
#define SEC_NATIVE_FEATURE_TAG_COMMON_H
|
||||||
|
|
||||||
|
// Note
|
||||||
|
// The string must be same as the string in CSCFeatureTagCommon.java
|
||||||
|
// Because one feature coulde be implemented both in java layer and in native layer
|
||||||
|
#define TAG_CSCFEATURE_COMMON_USECHAMELEON "CscFeature_Common_UseChameleon"
|
||||||
|
|
||||||
|
#endif // SEC_NATIVE_FEATURE_TAG_COMMON_H
|
16
libsecnativefeature/SecNativeFeatureTagFramework.h
Executable file
16
libsecnativefeature/SecNativeFeatureTagFramework.h
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#ifndef SEC_NATIVE_FEATURE_TAG_FRAMEWORK_H
|
||||||
|
#define SEC_NATIVE_FEATURE_TAG_FRAMEWORK_H
|
||||||
|
|
||||||
|
|
||||||
|
// Note
|
||||||
|
// The string must be same as the string in CSCFeatureTagFramework.java
|
||||||
|
// Because one feature coulde be implemented both in java layer and in native layer
|
||||||
|
|
||||||
|
|
||||||
|
#define TAG_CSCFEATURE_FRAMEWORK_ENABLEBIDIRECTION "CscFeature_Framework_EnableBidirection"
|
||||||
|
|
||||||
|
#define TAG_CSCFEATURE_FRAMEWORK_ENABLEHARFBUZZ "CscFeature_Framework_EnableHarfbuzz"
|
||||||
|
|
||||||
|
#define TAG_CSCFEATURE_FRAMEWORK_ENABLETHAIVIETRESHAPING "CscFeature_Framework_EnableThaiVietReshaping"
|
||||||
|
|
||||||
|
#endif // SEC_NATIVE_FEATURE_TAG_FRAMEWORK_H
|
150
libsecnativefeature/SecNativeFeatureTagWeb.h
Executable file
150
libsecnativefeature/SecNativeFeatureTagWeb.h
Executable file
|
@ -0,0 +1,150 @@
|
||||||
|
#ifndef SEC_NATIVE_FEATURE_TAG_WEB_H
|
||||||
|
#define SEC_NATIVE_FEATURE_TAG_WEB_H
|
||||||
|
|
||||||
|
|
||||||
|
// Note
|
||||||
|
// The string must be same as the string in CSCFeatureTagWeb.java
|
||||||
|
// Because one feature coulde be implemented both in java layer and in native layer
|
||||||
|
|
||||||
|
// The default values for each types
|
||||||
|
// This means the specified TAG is not defined
|
||||||
|
#define CSCFeatureTagWeb_Str_NoTag ""
|
||||||
|
#define CSCFeatureTagWeb_Bool_NoTag false
|
||||||
|
#define CSCFeatureTagWeb_Int_NoTag 0
|
||||||
|
|
||||||
|
// To define custom UserAgent string
|
||||||
|
// If this value is not defined, the default Android UserAgent will be sent to server
|
||||||
|
#define CSCFeatureTagWeb_SetUserAgent "CscFeature_Web_SetUserAgent"
|
||||||
|
|
||||||
|
|
||||||
|
// To define UAProfile string
|
||||||
|
// If this value is not defined, UAProfile will not be sent to server
|
||||||
|
#define CSCFeatureTagWeb_SetUAProfile "CscFeature_Web_SetUAProfile"
|
||||||
|
|
||||||
|
// Change homepage_base regardless language and APN
|
||||||
|
#define CscFeatureTagWeb_SetHomepageURL "CscFeature_Web_SetHomepageURL"
|
||||||
|
// Disable RSS button on the url bar
|
||||||
|
#define CscFeatureTagWeb_DisableRSS "CscFeature_Web_DisableRSS"
|
||||||
|
// Remove voicesearch button on the url bar
|
||||||
|
#define CscFeatureTagWeb_DisableVoiceSearch "CscFeature_Web_DisableVoiceSearch"
|
||||||
|
// Disable showing activity chooser on redirecting in case when 3rd party browser also installed
|
||||||
|
#define CscFeatureTagWeb_DisableRedirectionChooser "CscFeature_Web_DisableRedirectionChooser"
|
||||||
|
|
||||||
|
// Enable UAProfile in Header
|
||||||
|
#define CscFeatureTagWeb_Bool_EnableUAProfile "CscFeature_Web_Bool_EnableUAProfile"
|
||||||
|
|
||||||
|
// To Enable the GateConfig Logs(USA STA requirement for stability test)
|
||||||
|
#define CscFeatureTagWeb_Bool_EnableGateConfig "CscFeature_Web_EnableLogStabililtyTest"
|
||||||
|
|
||||||
|
//add for Handling Operator UA
|
||||||
|
#define CscFeature_Web_OverrideUserAgent "CscFeature_Web_OverrideUserAgent"
|
||||||
|
|
||||||
|
// add menu clear today history
|
||||||
|
#define CscFeatureTagWeb_EnableDeletingTodayHistory "CscFeature_Web_EnableDeletingTodayHistory"
|
||||||
|
|
||||||
|
// To enable bookmark overwrite
|
||||||
|
#define CscFeatureTagWeb_EnableOverwritingBookmark "CscFeature_Web_EnableOverwritingBookmark"
|
||||||
|
|
||||||
|
// To enable downloaded folder notification
|
||||||
|
#define CscFeatureTagWeb_EnableDownloadedFolderInNotificationBar "CscFeature_Web_EnableDownloadedFolderInNotificationBar"
|
||||||
|
|
||||||
|
//Enable DeviceID at Header(USA ATT Requirement)
|
||||||
|
#define CscFeatureTag_Web_Bool_DeviceID "CscFeature_Web_UseDeviceIdInHeader"
|
||||||
|
|
||||||
|
// support uploading contacts in VCard format (China-Telecom requirement)
|
||||||
|
#define CscFeatureTagWeb_SupportVcfUpload "CscFeature_Web_SupportVcfUpload"
|
||||||
|
//Parse XHTML document as HTML (ignore parse error. China-Telecom requirement)
|
||||||
|
#define CscFeatureTagWeb_ParseXHtmlToHtml "CscFeature_Web_ParseXHtmlToHtml"
|
||||||
|
|
||||||
|
//Block SD & CD download ( NAGSM common requirement)
|
||||||
|
#define CscFeatureTag_Web_Bool_BlockSDCDDownload "CscFeature_Web_BlockSDCDDownload"
|
||||||
|
|
||||||
|
// display download progress on notification bar (China-Telecom requirement)
|
||||||
|
#define CscFeatureTagWeb_ShowDownloadProgressOnNotification "CscFeature_Web_ShowDownloadProgressOnNotification"
|
||||||
|
|
||||||
|
// show browser version in browser settings (China-Telecom requirement)
|
||||||
|
#define CscFeatureTagWeb_ShowVersionInSetting "CscFeature_Web_ShowVersionInSetting"
|
||||||
|
|
||||||
|
// support "exit browser" option (China-Telecom requirement)
|
||||||
|
#define CscFeatureTagWeb_AddOptionToTerminate "CscFeature_Web_AddOptionToTerminate"
|
||||||
|
// Add "Delete-all" function at Download list (China-Telecom requirement)
|
||||||
|
#define CscFeatureTagWeb_EnableDeleteAllOnDownloadList "CscFeature_Web_EnableDeleteAllOnDownloadList"
|
||||||
|
// Support save-as function and default folder by mime-type (China-Telecom requirement)
|
||||||
|
#define CscFeatureTagWeb_SupportDownloadSaveAs "CscFeature_Web_SupportDownloadSaveAs"
|
||||||
|
// support delete-all option in bookmarks page (China-Telecom requirement)
|
||||||
|
#define CscFeatureTagWeb_EnableDeleteAllBookmarks "CscFeature_Web_EnableDeleteAllBookmarks"
|
||||||
|
// Add "FullHandwriting IME issue "(China-Common requirement)
|
||||||
|
#define CscFeatureTagWeb_EnableOptionEditTextDuringFullHwr "CscFeature_Web_EnableOptionEditTextDuringFullHwr"
|
||||||
|
// support offline-startup page includes bookmarks, history, search dialog (China-Telecom requirement)
|
||||||
|
#define CscFeatureTagWeb_SupportOfflineStartupPage "CscFeature_Web_SupportOfflineStartupPage"
|
||||||
|
|
||||||
|
// support not to set factory-reset-homepage to PREF_HOMEPAGE
|
||||||
|
#define CscFeatureTagWeb_Bool_DisableSetFactoryResetHomeToPrefHome "CscFeature_Web_Bool_DisableSetFactoryResetHomeToPrefHome"
|
||||||
|
|
||||||
|
// Show roaming dialog (ATT Requirement)
|
||||||
|
#define CscFeatureTagWeb_Bool_ShowRoamingDialog "CscFeature_Web_EnableRoamingDialog"
|
||||||
|
|
||||||
|
// set download folder by mime-type for China-Telecom requirement
|
||||||
|
#define CscFeatureTagWeb_SetDownloadFolderNameByMimeType "CscFeature_Web_SetDownloadFolderNameByMimeType"
|
||||||
|
|
||||||
|
// Disable showing activity chooser for defined string
|
||||||
|
#define CscFeature_Web_DisableChooser4 "CscFeature_Web_DisableChooser4"
|
||||||
|
|
||||||
|
// Enable download hebrew filename
|
||||||
|
#define CscFeature_Web_SupportHebrewFileName "CscFeature_Web_SupportHebrewFileName"
|
||||||
|
|
||||||
|
// remove google in search engine list
|
||||||
|
#define CscFeatureTagWeb_DisableGoogleInBrowserSearchEngine "CscFeature_Web_DisableGoogleInBrowserSearchEngine"
|
||||||
|
|
||||||
|
// set off overview mode as default (CTC Requirement)
|
||||||
|
#define CscFeatureTagWeb_SetOffOverviewModeAsDefault "CscFeature_Web_SetOffOverviewModeAsDefault"
|
||||||
|
|
||||||
|
// Disable setting homepage as it is set in APN when SIM changed
|
||||||
|
#define CscFeature_Web_EnableAutoSimHomeUrlInProfile "CscFeature_Web_EnableAutoSimHomeUrlInProfile"
|
||||||
|
|
||||||
|
// Add download file name decode feature for China region
|
||||||
|
#define CscFeatureTagWeb_SupportDownloadedFileNameInChineseChar "CscFeature_Web_SupportDownloadedFileNameInChineseChar"
|
||||||
|
|
||||||
|
// support multiAPN (CMCC Requirement)
|
||||||
|
#define CscFeatureTagWeb_EnableMultipleApn4 "CscFeature_Web_EnableMultipleApn4"
|
||||||
|
|
||||||
|
// Enable Ask to exit on back (CMCC Requirement)
|
||||||
|
#define CscFeatureTagWeb_EnablePromptToExit "CscFeature_Web_EnablePromptToExit"
|
||||||
|
|
||||||
|
|
||||||
|
// Enable EMOJI for JPN
|
||||||
|
#define CscFeatureTagWeb_EnableEmoji "CscFeature_Web_Bool_EnableEmoji"
|
||||||
|
|
||||||
|
// Show Wifi AP List when WIFI switch is on (CMCC Requirement)
|
||||||
|
#define CscFeatureTagWeb_ShowWifiAPList "CscFeature_Web_ShowWifiAPList"
|
||||||
|
|
||||||
|
// Enable Operator's toolbar (ATT Requirement)
|
||||||
|
#define CscFeatureTagWeb_EnableOperatorToolbar "CscFeature_Web_EnableOperatorToolbar"
|
||||||
|
|
||||||
|
// Set TCP Connection timout (China Requirement)
|
||||||
|
#define CscFeatureTagWeb_SetTcpConnTimeoutAs "CscFeature_Web_SetTcpConnTimeoutAs"
|
||||||
|
|
||||||
|
// Add WML mime type to Accept Header (CMCC Requirement)
|
||||||
|
#define CscFeatureTagWeb_AddWmlToHttpAcceptHeader4 "CscFeature_Web_AddWmlToHttpAcceptHeader4"
|
||||||
|
|
||||||
|
// change block zoom method to position based touch block zoom (Australia Requirement)
|
||||||
|
#define CscFeature_Web_BlockZoomBaseOnTouchPosition "CscFeature_Web_BlockZoomBaseOnTouchPosition"
|
||||||
|
|
||||||
|
// Remove Partial View During Horizontal Scroll in Nav Screen (Australia Requirement)
|
||||||
|
#define CscFeature_Web_RemovePartialViewDuringHorizontalScroll "CscFeature_Web_RemovePartialViewDuringHorizontalScroll"
|
||||||
|
|
||||||
|
// Show Popup for MaxLength reached during Url input (CMCC Requirement)
|
||||||
|
#define CscFeatureTagWeb_EnablePopup4MaxLengthReachedDuringUrlInput "CscFeature_Web_EnablePopup4MaxLengthReachedDuringUrlInput"
|
||||||
|
|
||||||
|
// Support Tel Number in the page to go to dialing app (KOR Requirement)
|
||||||
|
#define CscFeature_Web_RecognizeTelNumber "CscFeature_Web_RecognizeTelNumber"
|
||||||
|
|
||||||
|
// Large file transfer in Internet download (VZW Requirement)
|
||||||
|
#define CscFeature_Web_EnableWifiOption4LargeFileDownload "CscFeature_Web_EnableWifiOption4LargeFileDownload"
|
||||||
|
|
||||||
|
// Add additional accept charset to Accept Header (CTC Requirement)
|
||||||
|
#define CscFeature_Web_AddCharSetToHttpHeader "CscFeature_Web_AddCharSetToHttpHeader"
|
||||||
|
|
||||||
|
// max connection per host for performance
|
||||||
|
#define CscFeature_Web_MaxConnectionPerHost "CscFeature_Web_MaxConnectionPerHost"
|
||||||
|
#endif // SEC_NATIVE_FEATURE_TAG_WEB_H
|
17
libshims/Android.mk
Executable file
17
libshims/Android.mk
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2017 The LineageOS 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(call first-makefiles-under,$(call my-dir))
|
|
@ -1,9 +1,9 @@
|
||||||
LOCAL_PATH := $(call my-dir)
|
LOCAL_PATH := $(call my-dir)
|
||||||
|
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_SRC_FILES := ril_shim.c
|
LOCAL_SRC_FILES := camera_shim.c
|
||||||
LOCAL_SHARED_LIBRARIES := liblog libcutils libbinder libutils
|
LOCAL_MODULE := libshim_camera
|
||||||
LOCAL_MODULE := libril_shim
|
|
||||||
LOCAL_MODULE_TAGS := optional
|
LOCAL_MODULE_TAGS := optional
|
||||||
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
|
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
|
||||||
|
LOCAL_PROPRIETARY_MODULE := true
|
||||||
include $(BUILD_SHARED_LIBRARY)
|
include $(BUILD_SHARED_LIBRARY)
|
33
libshims/libshim_camera/camera_shim.c
Executable file
33
libshims/libshim_camera/camera_shim.c
Executable file
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2017 The LineageOS 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// rt hdr
|
||||||
|
const char *_ZN7android16CameraParameters10KEY_RT_HDRE = "rt-hdr";
|
||||||
|
const char *_ZN7android16CameraParameters20KEY_SUPPORTED_RT_HDRE = "rt-hdr-values";
|
||||||
|
const char *_ZN7android16CameraParameters9RTHDR_OFFE = "off";
|
||||||
|
const char *_ZN7android16CameraParameters8RTHDR_ONE = "on";
|
||||||
|
|
||||||
|
// phase af
|
||||||
|
const char *_ZN7android16CameraParameters12KEY_PHASE_AFE = "phase-af";
|
||||||
|
const char *_ZN7android16CameraParameters22KEY_SUPPORTED_PHASE_AFE = "phase-af-values";
|
||||||
|
const char *_ZN7android16CameraParameters7PAF_OFFE = "off";
|
||||||
|
const char *_ZN7android16CameraParameters6PAF_ONE = "on";
|
||||||
|
|
||||||
|
// dynamic range control
|
||||||
|
const char *_ZN7android16CameraParameters25KEY_DYNAMIC_RANGE_CONTROLE = "dynamic-range-control";
|
||||||
|
const char *_ZN7android16CameraParameters35KEY_SUPPORTED_DYNAMIC_RANGE_CONTROLE = "dynamic-range-control-values";
|
||||||
|
const char *_ZN7android16CameraParameters7DRC_OFFE = "off";
|
||||||
|
const char *_ZN7android16CameraParameters6DRC_ONE = "on";
|
20
lineage.mk
20
lineage.mk
|
@ -1,4 +1,22 @@
|
||||||
$(call inherit-product, vendor/cm/config/common_full_phone.mk)
|
#
|
||||||
|
# Copyright (C) 2014-2016 The CyanogenMod Project
|
||||||
|
# Copyright (C) 2017 The LineageOS 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Inherit some common LineageOS stuff.
|
||||||
|
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
|
||||||
|
|
||||||
$(call inherit-product, device/samsung/viennalte/full_viennalte.mk)
|
$(call inherit-product, device/samsung/viennalte/full_viennalte.mk)
|
||||||
|
|
||||||
|
|
60
manifest.xml
Executable file
60
manifest.xml
Executable file
|
@ -0,0 +1,60 @@
|
||||||
|
<manifest version="1.0" type="device">
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.camera.provider</name>
|
||||||
|
<transport arch="32">passthrough</transport>
|
||||||
|
<version>2.4</version>
|
||||||
|
<interface>
|
||||||
|
<name>ICameraProvider</name>
|
||||||
|
<instance>legacy/0</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.light</name>
|
||||||
|
<transport arch="32">passthrough</transport>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ILight</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.nfc</name>
|
||||||
|
<transport arch="32">passthrough</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>INfc</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.radio</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IRadio</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>ISap</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.radio.deprecated</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IOemHook</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.vibrator</name>
|
||||||
|
<transport arch="32">passthrough</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IVibrator</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
</manifest>
|
|
@ -208,12 +208,12 @@
|
||||||
</integer-array>
|
</integer-array>
|
||||||
|
|
||||||
<!-- Vibrator pattern for feedback about booting with safe mode disabled -->
|
<!-- Vibrator pattern for feedback about booting with safe mode disabled -->
|
||||||
<integer-array name="config_safeModeDisabledVibePattern">
|
<!-- <integer-array name="config_safeModeDisabledVibePattern">
|
||||||
<item>0</item>
|
<item>0</item>
|
||||||
<item>1</item>
|
<item>1</item>
|
||||||
<item>20</item>
|
<item>20</item>
|
||||||
<item>21</item>
|
<item>21</item>
|
||||||
</integer-array>
|
</integer-array> -->
|
||||||
|
|
||||||
<!-- Vibrator pattern for feedback about booting with safe mode disabled -->
|
<!-- Vibrator pattern for feedback about booting with safe mode disabled -->
|
||||||
<integer-array name="config_safeModeEnabledVibePattern">
|
<integer-array name="config_safeModeEnabledVibePattern">
|
||||||
|
@ -241,7 +241,7 @@
|
||||||
<bool name="config_enableLockScreenRotation">false</bool>
|
<bool name="config_enableLockScreenRotation">false</bool>
|
||||||
|
|
||||||
<!-- Indicate whether the SD card is accessible without removing the battery. -->
|
<!-- Indicate whether the SD card is accessible without removing the battery. -->
|
||||||
<bool name="config_batterySdCardAccessibility">true</bool>
|
<!-- <bool name="config_batterySdCardAccessibility">true</bool> -->
|
||||||
|
|
||||||
<!-- Hardware keys present on the device, stored as a bit field.
|
<!-- Hardware keys present on the device, stored as a bit field.
|
||||||
This integer should equal the sum of the corresponding value for each
|
This integer should equal the sum of the corresponding value for each
|
||||||
|
@ -255,7 +255,7 @@
|
||||||
64 - Volume rocker
|
64 - Volume rocker
|
||||||
For example, a device with Home, Back and Menu keys would set this
|
For example, a device with Home, Back and Menu keys would set this
|
||||||
config to 7. -->
|
config to 7. -->
|
||||||
<integer name="config_deviceHardwareKeys">83</integer>
|
<!-- <integer name="config_deviceHardwareKeys">83</integer> -->
|
||||||
|
|
||||||
<!-- Hardware keys present on the device with the ability to wake, stored as a bit field.
|
<!-- Hardware keys present on the device with the ability to wake, stored as a bit field.
|
||||||
This integer should equal the sum of the corresponding value for each
|
This integer should equal the sum of the corresponding value for each
|
||||||
|
@ -269,7 +269,7 @@
|
||||||
64 - Volume rocker
|
64 - Volume rocker
|
||||||
For example, a device with Home, Back and Menu keys would set this
|
For example, a device with Home, Back and Menu keys would set this
|
||||||
config to 7. -->
|
config to 7. -->
|
||||||
<integer name="config_deviceHardwareWakeKeys">65</integer>
|
<!-- <integer name="config_deviceHardwareWakeKeys">65</integer> -->
|
||||||
|
|
||||||
<bool name="config_enableWifiDisplay">true</bool>
|
<bool name="config_enableWifiDisplay">true</bool>
|
||||||
|
|
||||||
|
@ -302,7 +302,7 @@
|
||||||
<!-- Certain sensor firmwares break with having a batch
|
<!-- Certain sensor firmwares break with having a batch
|
||||||
size set. By setting this to false, devices can opt
|
size set. By setting this to false, devices can opt
|
||||||
out of setting a batch size, which fixes rotation. -->
|
out of setting a batch size, which fixes rotation. -->
|
||||||
<bool name="config_useDefaultBatchingForAccel">false</bool>
|
<!-- <bool name="config_useDefaultBatchingForAccel">false</bool> -->
|
||||||
|
|
||||||
<!-- Override the default detection behavior for the framework method
|
<!-- Override the default detection behavior for the framework method
|
||||||
android.view.ViewConfiguration#hasPermanentMenuKey().
|
android.view.ViewConfiguration#hasPermanentMenuKey().
|
||||||
|
@ -313,7 +313,7 @@
|
||||||
<integer name="config_overrideHasPermanentMenuKey">2</integer>
|
<integer name="config_overrideHasPermanentMenuKey">2</integer>
|
||||||
|
|
||||||
<!-- Enable blur support -->
|
<!-- Enable blur support -->
|
||||||
<bool name="config_uiBlurEnabled">true</bool>
|
<!-- <bool name="config_uiBlurEnabled">true</bool> -->
|
||||||
|
|
||||||
<!-- Values for GPS configuration -->
|
<!-- Values for GPS configuration -->
|
||||||
<string-array translatable="false" name="config_gpsParameters">
|
<string-array translatable="false" name="config_gpsParameters">
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
<resources>
|
<resources>
|
||||||
|
<bool name="def_bluetooth_on">false</bool>
|
||||||
<bool name="def_accelerometer_rotation">true</bool>
|
<bool name="def_accelerometer_rotation">true</bool>
|
||||||
<bool name="def_screen_brightness_automatic_mode">true</bool>
|
<bool name="def_screen_brightness_automatic_mode">true</bool>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1,70 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2017 The LineageOS 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define LOG_TAG "SEC_RIL_SHIM"
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#include <utils/Log.h>
|
|
||||||
|
|
||||||
//various funcs we'll need to call, in their mangled form
|
|
||||||
|
|
||||||
//android::Parcel::writeString16(char16_t const*, unsigned int)
|
|
||||||
extern void _ZN7android6Parcel13writeString16EPKDsj(void **str16P,
|
|
||||||
uint16_t const *str, unsigned int len);
|
|
||||||
|
|
||||||
//code exports we provide
|
|
||||||
|
|
||||||
void _ZN7android6Parcel13writeString16EPKtj(void **str16P,
|
|
||||||
unsigned short const *str, unsigned int len);
|
|
||||||
|
|
||||||
//library on-load and on-unload handlers (to help us set things up and tear them down)
|
|
||||||
void libEvtLoading(void) __attribute__((constructor));
|
|
||||||
void libEvtUnloading(void) __attribute__((destructor));
|
|
||||||
|
|
||||||
/*
|
|
||||||
* FUNCTION: android::Parcel::writeString16(unsigned short const*, unsigned int)
|
|
||||||
* USE: INTERPOSE: write String16 to binder
|
|
||||||
* NOTES: This function no longer exists in M, instead now one must pass
|
|
||||||
* in a char16_t instead of a short. M So we'll craft the same call here.
|
|
||||||
*/
|
|
||||||
void _ZN7android6Parcel13writeString16EPKtj(void **str16P,
|
|
||||||
unsigned short const *str, unsigned int len)
|
|
||||||
{
|
|
||||||
_ZN7android6Parcel13writeString16EPKDsj(str16P, str, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* FUNCTION: libEvtLoading()
|
|
||||||
* USE: Handle library loading
|
|
||||||
* NOTES: This is a good time to log the fact that we were loaded and plan to
|
|
||||||
* do our thing.
|
|
||||||
*/
|
|
||||||
void libEvtLoading(void)
|
|
||||||
{
|
|
||||||
ALOGV("libbinder interposition library loaded");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* FUNCTION: libEvtUnloading()
|
|
||||||
* USE: Handle library unloading
|
|
||||||
* NOTES: This is a good time to free whatever is unfreed and say goodbye
|
|
||||||
*/
|
|
||||||
void libEvtUnloading(void)
|
|
||||||
{
|
|
||||||
ALOGV("libbinder interposition library unloading. Goodbye...");
|
|
||||||
}
|
|
|
@ -1,414 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2014, The CyanogenMod Project. All rights reserved.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.internal.telephony;
|
|
||||||
|
|
||||||
import static com.android.internal.telephony.RILConstants.*;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.telephony.Rlog;
|
|
||||||
import android.os.AsyncResult;
|
|
||||||
import android.os.Message;
|
|
||||||
import android.os.Parcel;
|
|
||||||
import android.os.SystemProperties;
|
|
||||||
import android.telephony.PhoneNumberUtils;
|
|
||||||
import android.telephony.SignalStrength;
|
|
||||||
import com.android.internal.telephony.cdma.CdmaInformationRecords;
|
|
||||||
import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaSignalInfoRec;
|
|
||||||
import com.android.internal.telephony.cdma.SignalToneUtil;
|
|
||||||
import com.android.internal.telephony.uicc.IccCardApplicationStatus;
|
|
||||||
import com.android.internal.telephony.uicc.IccCardStatus;
|
|
||||||
import com.android.internal.telephony.uicc.IccUtils;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RIL customization for Galaxy Note Pro 12.2 LTE devices
|
|
||||||
*
|
|
||||||
* {@hide}
|
|
||||||
*/
|
|
||||||
public class NoteProRIL extends RIL {
|
|
||||||
|
|
||||||
private static final int RIL_UNSOL_ON_SS_LL = 11055;
|
|
||||||
|
|
||||||
private boolean mIsGsm = false;
|
|
||||||
|
|
||||||
public NoteProRIL(Context context, int networkMode, int cdmaSubscription) {
|
|
||||||
super(context, networkMode, cdmaSubscription, null);
|
|
||||||
mQANElements = 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
public NoteProRIL(Context context, int preferredNetworkType,
|
|
||||||
int cdmaSubscription, Integer instanceId) {
|
|
||||||
super(context, preferredNetworkType, cdmaSubscription, instanceId);
|
|
||||||
mQANElements = 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void
|
|
||||||
fixNitz(Parcel p) {
|
|
||||||
int dataPosition = p.dataPosition();
|
|
||||||
String nitz = p.readString();
|
|
||||||
long nitzReceiveTime = p.readLong();
|
|
||||||
|
|
||||||
String[] nitzParts = nitz.split(",");
|
|
||||||
if (nitzParts.length >= 4) {
|
|
||||||
// 0=date, 1=time+zone, 2=dst, 3(+)=garbage that confuses ServiceStateTracker
|
|
||||||
nitz = nitzParts[0] + "," + nitzParts[1] + "," + nitzParts[2];
|
|
||||||
p.setDataPosition(dataPosition);
|
|
||||||
p.writeString(nitz);
|
|
||||||
p.writeLong(nitzReceiveTime);
|
|
||||||
// The string is shorter now, drop the extra bytes
|
|
||||||
p.setDataSize(p.dataPosition());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void
|
|
||||||
dial(String address, int clirMode, UUSInfo uusInfo, Message result) {
|
|
||||||
|
|
||||||
RILRequest rr = RILRequest.obtain(RIL_REQUEST_DIAL, result);
|
|
||||||
|
|
||||||
rr.mParcel.writeString(address);
|
|
||||||
rr.mParcel.writeInt(clirMode);
|
|
||||||
rr.mParcel.writeInt(0); // CallDetails.call_type
|
|
||||||
rr.mParcel.writeInt(1); // CallDetails.call_domain
|
|
||||||
rr.mParcel.writeString(""); // CallDetails.getCsvFromExtras
|
|
||||||
|
|
||||||
if (uusInfo == null) {
|
|
||||||
rr.mParcel.writeInt(0); // UUS information is absent
|
|
||||||
} else {
|
|
||||||
rr.mParcel.writeInt(1); // UUS information is present
|
|
||||||
rr.mParcel.writeInt(uusInfo.getType());
|
|
||||||
rr.mParcel.writeInt(uusInfo.getDcs());
|
|
||||||
rr.mParcel.writeByteArray(uusInfo.getUserData());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
|
|
||||||
|
|
||||||
send(rr);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Object
|
|
||||||
responseIccCardStatus(Parcel p) {
|
|
||||||
IccCardApplicationStatus appStatus;
|
|
||||||
|
|
||||||
IccCardStatus cardStatus = new IccCardStatus();
|
|
||||||
cardStatus.setCardState(p.readInt());
|
|
||||||
cardStatus.setUniversalPinState(p.readInt());
|
|
||||||
cardStatus.mGsmUmtsSubscriptionAppIndex = p.readInt();
|
|
||||||
cardStatus.mCdmaSubscriptionAppIndex = p.readInt();
|
|
||||||
cardStatus.mImsSubscriptionAppIndex = p.readInt();
|
|
||||||
|
|
||||||
int numApplications = p.readInt();
|
|
||||||
|
|
||||||
// limit to maximum allowed applications
|
|
||||||
if (numApplications > IccCardStatus.CARD_MAX_APPS) {
|
|
||||||
numApplications = IccCardStatus.CARD_MAX_APPS;
|
|
||||||
}
|
|
||||||
cardStatus.mApplications = new IccCardApplicationStatus[numApplications];
|
|
||||||
|
|
||||||
appStatus = new IccCardApplicationStatus();
|
|
||||||
for (int i = 0 ; i < numApplications ; i++) {
|
|
||||||
if (i!=0) {
|
|
||||||
appStatus = new IccCardApplicationStatus();
|
|
||||||
}
|
|
||||||
appStatus.app_type = appStatus.AppTypeFromRILInt(p.readInt());
|
|
||||||
appStatus.app_state = appStatus.AppStateFromRILInt(p.readInt());
|
|
||||||
appStatus.perso_substate = appStatus.PersoSubstateFromRILInt(p.readInt());
|
|
||||||
appStatus.aid = p.readString();
|
|
||||||
appStatus.app_label = p.readString();
|
|
||||||
appStatus.pin1_replaced = p.readInt();
|
|
||||||
appStatus.pin1 = appStatus.PinStateFromRILInt(p.readInt());
|
|
||||||
appStatus.pin2 = appStatus.PinStateFromRILInt(p.readInt());
|
|
||||||
p.readInt(); // pin1_num_retries
|
|
||||||
p.readInt(); // puk1_num_retries
|
|
||||||
p.readInt(); // pin2_num_retries
|
|
||||||
p.readInt(); // puk2_num_retries
|
|
||||||
p.readInt(); // perso_unblock_retries
|
|
||||||
cardStatus.mApplications[i] = appStatus;
|
|
||||||
}
|
|
||||||
// For Sprint LTE only SIM
|
|
||||||
if (numApplications==1 && !mIsGsm && appStatus.app_type == appStatus.AppTypeFromRILInt(2)) {
|
|
||||||
cardStatus.mApplications = new IccCardApplicationStatus[numApplications+2];
|
|
||||||
cardStatus.mGsmUmtsSubscriptionAppIndex = 0;
|
|
||||||
cardStatus.mApplications[cardStatus.mGsmUmtsSubscriptionAppIndex]=appStatus;
|
|
||||||
cardStatus.mCdmaSubscriptionAppIndex = 1;
|
|
||||||
cardStatus.mImsSubscriptionAppIndex = 2;
|
|
||||||
|
|
||||||
IccCardApplicationStatus appStatus2 = new IccCardApplicationStatus();
|
|
||||||
appStatus2.app_type = appStatus2.AppTypeFromRILInt(4); // csim state
|
|
||||||
appStatus2.app_state = appStatus.app_state;
|
|
||||||
appStatus2.perso_substate = appStatus.perso_substate;
|
|
||||||
appStatus2.aid = appStatus.aid;
|
|
||||||
appStatus2.app_label = appStatus.app_label;
|
|
||||||
appStatus2.pin1_replaced = appStatus.pin1_replaced;
|
|
||||||
appStatus2.pin1 = appStatus.pin1;
|
|
||||||
appStatus2.pin2 = appStatus.pin2;
|
|
||||||
cardStatus.mApplications[cardStatus.mCdmaSubscriptionAppIndex] = appStatus2;
|
|
||||||
|
|
||||||
IccCardApplicationStatus appStatus3 = new IccCardApplicationStatus();
|
|
||||||
appStatus3.app_type = appStatus3.AppTypeFromRILInt(5); // ims state
|
|
||||||
appStatus3.app_state = appStatus.app_state;
|
|
||||||
appStatus3.perso_substate = appStatus.perso_substate;
|
|
||||||
appStatus3.aid = appStatus.aid;
|
|
||||||
appStatus3.app_label = appStatus.app_label;
|
|
||||||
appStatus3.pin1_replaced = appStatus.pin1_replaced;
|
|
||||||
appStatus3.pin1 = appStatus.pin1;
|
|
||||||
appStatus3.pin2 = appStatus.pin2;
|
|
||||||
cardStatus.mApplications[cardStatus.mImsSubscriptionAppIndex] = appStatus3;
|
|
||||||
}
|
|
||||||
return cardStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Object
|
|
||||||
responseCallList(Parcel p) {
|
|
||||||
int num;
|
|
||||||
int voiceSettings;
|
|
||||||
ArrayList<DriverCall> response;
|
|
||||||
DriverCall dc;
|
|
||||||
|
|
||||||
num = p.readInt();
|
|
||||||
response = new ArrayList<DriverCall>(num);
|
|
||||||
|
|
||||||
if (RILJ_LOGV) {
|
|
||||||
riljLog("responseCallList: num=" + num +
|
|
||||||
" mEmergencyCallbackModeRegistrant=" + mEmergencyCallbackModeRegistrant +
|
|
||||||
" mTestingEmergencyCall=" + mTestingEmergencyCall.get());
|
|
||||||
}
|
|
||||||
for (int i = 0 ; i < num ; i++) {
|
|
||||||
dc = new DriverCall();
|
|
||||||
|
|
||||||
dc.state = DriverCall.stateFromCLCC(p.readInt());
|
|
||||||
dc.index = p.readInt() & 0xff;
|
|
||||||
dc.TOA = p.readInt();
|
|
||||||
dc.isMpty = (0 != p.readInt());
|
|
||||||
dc.isMT = (0 != p.readInt());
|
|
||||||
dc.als = p.readInt();
|
|
||||||
voiceSettings = p.readInt();
|
|
||||||
dc.isVoice = (0 != voiceSettings);
|
|
||||||
int call_type = p.readInt(); // Samsung CallDetails
|
|
||||||
int call_domain = p.readInt(); // Samsung CallDetails
|
|
||||||
String csv = p.readString(); // Samsung CallDetails
|
|
||||||
dc.isVoicePrivacy = (0 != p.readInt());
|
|
||||||
dc.number = p.readString();
|
|
||||||
int np = p.readInt();
|
|
||||||
dc.numberPresentation = DriverCall.presentationFromCLIP(np);
|
|
||||||
dc.name = p.readString();
|
|
||||||
dc.namePresentation = DriverCall.presentationFromCLIP(p.readInt());
|
|
||||||
int uusInfoPresent = p.readInt();
|
|
||||||
if (uusInfoPresent == 1) {
|
|
||||||
dc.uusInfo = new UUSInfo();
|
|
||||||
dc.uusInfo.setType(p.readInt());
|
|
||||||
dc.uusInfo.setDcs(p.readInt());
|
|
||||||
byte[] userData = p.createByteArray();
|
|
||||||
dc.uusInfo.setUserData(userData);
|
|
||||||
riljLogv(String.format("Incoming UUS : type=%d, dcs=%d, length=%d",
|
|
||||||
dc.uusInfo.getType(), dc.uusInfo.getDcs(),
|
|
||||||
dc.uusInfo.getUserData().length));
|
|
||||||
riljLogv("Incoming UUS : data (string)="
|
|
||||||
+ new String(dc.uusInfo.getUserData()));
|
|
||||||
riljLogv("Incoming UUS : data (hex): "
|
|
||||||
+ IccUtils.bytesToHexString(dc.uusInfo.getUserData()));
|
|
||||||
} else {
|
|
||||||
riljLogv("Incoming UUS : NOT present!");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make sure there's a leading + on addresses with a TOA of 145
|
|
||||||
dc.number = PhoneNumberUtils.stringFromStringAndTOA(dc.number, dc.TOA);
|
|
||||||
|
|
||||||
response.add(dc);
|
|
||||||
|
|
||||||
if (dc.isVoicePrivacy) {
|
|
||||||
mVoicePrivacyOnRegistrants.notifyRegistrants();
|
|
||||||
riljLog("InCall VoicePrivacy is enabled");
|
|
||||||
} else {
|
|
||||||
mVoicePrivacyOffRegistrants.notifyRegistrants();
|
|
||||||
riljLog("InCall VoicePrivacy is disabled");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Collections.sort(response);
|
|
||||||
|
|
||||||
if ((num == 0) && mTestingEmergencyCall.getAndSet(false)) {
|
|
||||||
if (mEmergencyCallbackModeRegistrant != null) {
|
|
||||||
riljLog("responseCallList: call ended, testing emergency call," +
|
|
||||||
" notify ECM Registrants");
|
|
||||||
mEmergencyCallbackModeRegistrant.notifyRegistrant();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Object responseSignalStrength(Parcel p) {
|
|
||||||
int numInts = 12;
|
|
||||||
int response[];
|
|
||||||
|
|
||||||
// Get raw data
|
|
||||||
response = new int[numInts];
|
|
||||||
for (int i = 0; i < numInts; i++) {
|
|
||||||
response[i] = p.readInt();
|
|
||||||
}
|
|
||||||
//gsm
|
|
||||||
response[0] &= 0xff;
|
|
||||||
//cdma
|
|
||||||
response[2] %= 256;
|
|
||||||
response[4] %= 256;
|
|
||||||
response[7] &= 0xff;
|
|
||||||
|
|
||||||
return new SignalStrength(response[0], response[1], response[2], response[3], response[4], response[5], response[6], response[7], response[8], response[9], response[10], response[11], true);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void notifyRegistrantsCdmaInfoRec(CdmaInformationRecords infoRec) {
|
|
||||||
final int response = RIL_UNSOL_CDMA_INFO_REC;
|
|
||||||
|
|
||||||
if (infoRec.record instanceof CdmaSignalInfoRec) {
|
|
||||||
CdmaSignalInfoRec rec = (CdmaSignalInfoRec) infoRec.record;
|
|
||||||
if (rec != null
|
|
||||||
&& rec.isPresent
|
|
||||||
&& rec.signalType == SignalToneUtil.IS95_CONST_IR_SIGNAL_IS54B
|
|
||||||
&& rec.alertPitch == SignalToneUtil.IS95_CONST_IR_ALERT_MED
|
|
||||||
&& rec.signal == SignalToneUtil.IS95_CONST_IR_SIG_IS54B_L) {
|
|
||||||
/* Drop record, otherwise IS95_CONST_IR_SIG_IS54B_L tone will
|
|
||||||
* continue to play after the call is connected */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
super.notifyRegistrantsCdmaInfoRec(infoRec);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setPhoneType(int phoneType) {
|
|
||||||
super.setPhoneType(phoneType);
|
|
||||||
mIsGsm = (phoneType != RILConstants.CDMA_PHONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void
|
|
||||||
processUnsolicited (Parcel p, int type) {
|
|
||||||
Object ret;
|
|
||||||
int dataPosition = p.dataPosition();
|
|
||||||
int response = p.readInt();
|
|
||||||
int newResponse = response;
|
|
||||||
|
|
||||||
switch(response) {
|
|
||||||
case RIL_UNSOL_NITZ_TIME_RECEIVED:
|
|
||||||
fixNitz(p);
|
|
||||||
break;
|
|
||||||
case RIL_UNSOL_ON_SS_LL:
|
|
||||||
newResponse = RIL_UNSOL_ON_SS;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (newResponse != response) {
|
|
||||||
p.setDataPosition(dataPosition);
|
|
||||||
p.writeInt(newResponse);
|
|
||||||
}
|
|
||||||
p.setDataPosition(dataPosition);
|
|
||||||
super.processUnsolicited(p, type);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void
|
|
||||||
acceptCall (Message result) {
|
|
||||||
RILRequest rr
|
|
||||||
= RILRequest.obtain(RIL_REQUEST_ANSWER, result);
|
|
||||||
|
|
||||||
rr.mParcel.writeInt(1);
|
|
||||||
rr.mParcel.writeInt(0);
|
|
||||||
|
|
||||||
if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
|
|
||||||
|
|
||||||
send(rr);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected RILRequest
|
|
||||||
processSolicited (Parcel p, int type) {
|
|
||||||
int serial, error;
|
|
||||||
boolean found = false;
|
|
||||||
int dataPosition = p.dataPosition(); // save off position within the Parcel
|
|
||||||
serial = p.readInt();
|
|
||||||
error = p.readInt();
|
|
||||||
RILRequest rr = null;
|
|
||||||
/* Pre-process the reply before popping it */
|
|
||||||
synchronized (mRequestList) {
|
|
||||||
RILRequest tr = mRequestList.get(serial);
|
|
||||||
if (tr != null && tr.mSerial == serial) {
|
|
||||||
if (error == 0 || p.dataAvail() > 0) {
|
|
||||||
try {switch (tr.mRequest) {
|
|
||||||
/* Get those we're interested in */
|
|
||||||
case RIL_REQUEST_DATA_REGISTRATION_STATE:
|
|
||||||
rr = tr;
|
|
||||||
break;
|
|
||||||
}} catch (Throwable thr) {
|
|
||||||
// Exceptions here usually mean invalid RIL responses
|
|
||||||
if (tr.mResult != null) {
|
|
||||||
AsyncResult.forMessage(tr.mResult, null, thr);
|
|
||||||
tr.mResult.sendToTarget();
|
|
||||||
}
|
|
||||||
return tr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (rr == null) {
|
|
||||||
/* Nothing we care about, go up */
|
|
||||||
p.setDataPosition(dataPosition);
|
|
||||||
// Forward responses that we are not overriding to the super class
|
|
||||||
return super.processSolicited(p, type);
|
|
||||||
}
|
|
||||||
rr = findAndRemoveRequestFromList(serial);
|
|
||||||
if (rr == null) {
|
|
||||||
return rr;
|
|
||||||
}
|
|
||||||
Object ret = null;
|
|
||||||
if (error == 0 || p.dataAvail() > 0) {
|
|
||||||
switch (rr.mRequest) {
|
|
||||||
case RIL_REQUEST_DATA_REGISTRATION_STATE: ret = responseDataRegistrationState(p); break;
|
|
||||||
default:
|
|
||||||
throw new RuntimeException("Unrecognized solicited response: " + rr.mRequest);
|
|
||||||
}
|
|
||||||
//break;
|
|
||||||
}
|
|
||||||
if (RILJ_LOGD) riljLog(rr.serialString() + "< " + requestToString(rr.mRequest)
|
|
||||||
+ " " + retToString(rr.mRequest, ret));
|
|
||||||
if (rr.mResult != null) {
|
|
||||||
AsyncResult.forMessage(rr.mResult, ret, null);
|
|
||||||
rr.mResult.sendToTarget();
|
|
||||||
}
|
|
||||||
return rr;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Object
|
|
||||||
responseDataRegistrationState(Parcel p) {
|
|
||||||
String response[] = (String[])responseStrings(p);
|
|
||||||
/* DANGER WILL ROBINSON
|
|
||||||
* In some cases from Vodaphone we are receiving a RAT of 102
|
|
||||||
* while in tunnels of the metro. Lets Assume that if we
|
|
||||||
* receive 102 we actually want a RAT of 2 for EDGE service */
|
|
||||||
if (response.length > 4 &&
|
|
||||||
response[0].equals("1") &&
|
|
||||||
response[3].equals("102")) {
|
|
||||||
response[3] = "2";
|
|
||||||
}
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
}
|
|
23
rootdir/etc/fstab.full
Executable file
23
rootdir/etc/fstab.full
Executable file
|
@ -0,0 +1,23 @@
|
||||||
|
# Android fstab file.
|
||||||
|
# The filesystem that contains the filesystem e2fsck binary (typically /system) cannot
|
||||||
|
# specify 'check', and must come before any filesystems that do specify 'check'
|
||||||
|
|
||||||
|
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
|
||||||
|
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,errors=panic wait
|
||||||
|
/dev/block/platform/msm_sdcc.1/by-name/userdata /data f2fs nosuid,nodev,noatime,rw,inline_xattr wait,check,formattable,encryptable=footer,length=-16384
|
||||||
|
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 nosuid,nodev,noatime,noauto_da_alloc,errors=continue,commit=20 wait,check,formattable,encryptable=footer,length=-16384
|
||||||
|
/dev/block/platform/msm_sdcc.1/by-name/cache /cache f2fs nosuid,nodev,noatime,rw,inline_xattr wait,check,formattable
|
||||||
|
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 nosuid,nodev,noatime,noauto_da_alloc,errors=continue,commit=20 wait,check,formattable
|
||||||
|
/dev/block/platform/msm_sdcc.1/by-name/apnhlos /firmware vfat ro,shortname=lower,uid=1000,gid=1026,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait
|
||||||
|
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware-modem vfat ro,shortname=lower,uid=1000,gid=1026,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait
|
||||||
|
/dev/block/platform/msm_sdcc.1/by-name/efs /efs ext4 nosuid,nodev,noatime,noauto_da_alloc,journal_async_commit,errors=panic wait,check
|
||||||
|
/dev/block/platform/msm_sdcc.1/by-name/fota /misc emmc defaults defaults
|
||||||
|
|
||||||
|
/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults recoveryonly
|
||||||
|
/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults recoveryonly
|
||||||
|
|
||||||
|
/devices/msm_sdcc.3/mmc_host/mmc* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata
|
||||||
|
|
||||||
|
/dev/block/zram0 none swap defaults zramsize=25%,zramstreams=4,swapprio=10,notrim
|
||||||
|
|
||||||
|
/devices/platform/xhci-hcd* auto auto defaults voldmanaged=usb:auto
|
|
@ -1,12 +1,11 @@
|
||||||
# Android fstab file.
|
# Android fstab file.
|
||||||
# The filesystem that contains the filesystem checker binary (typically /system) cannot
|
# The filesystem that contains the filesystem e2fsck binary (typically /system) cannot
|
||||||
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
|
# specify 'check', and must come before any filesystems that do specify 'check'
|
||||||
|
|
||||||
#TODO: Add 'check' as fs_mgr_flags with data partition.
|
# NOTE: /system partition is now early-mounted and the fstab entry is specified in device tree:
|
||||||
# Currently we dont have e2fsck compiled. So fs check would failed.
|
# /proc/device-tree/firmware/android/fstab/system
|
||||||
|
|
||||||
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
|
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
|
||||||
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,errors=panic wait
|
|
||||||
/dev/block/platform/msm_sdcc.1/by-name/userdata /data f2fs nosuid,nodev,noatime,rw,inline_xattr wait,check,formattable,encryptable=footer,length=-16384
|
/dev/block/platform/msm_sdcc.1/by-name/userdata /data f2fs nosuid,nodev,noatime,rw,inline_xattr wait,check,formattable,encryptable=footer,length=-16384
|
||||||
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 nosuid,nodev,noatime,noauto_da_alloc,errors=continue,commit=20 wait,check,formattable,encryptable=footer,length=-16384
|
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 nosuid,nodev,noatime,noauto_da_alloc,errors=continue,commit=20 wait,check,formattable,encryptable=footer,length=-16384
|
||||||
/dev/block/platform/msm_sdcc.1/by-name/cache /cache f2fs nosuid,nodev,noatime,rw,inline_xattr wait,check,formattable
|
/dev/block/platform/msm_sdcc.1/by-name/cache /cache f2fs nosuid,nodev,noatime,rw,inline_xattr wait,check,formattable
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
# Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
|
# Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
|
||||||
|
# 2017, The LineageOS Project. All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
# modification, are permitted provided that the following conditions are met:
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
@ -29,7 +30,7 @@ import init.qcom.usb.rc
|
||||||
import init.target.rc
|
import init.target.rc
|
||||||
|
|
||||||
on early-init
|
on early-init
|
||||||
export LD_SHIM_LIBS /system/lib/libril.so|libril_shim.so
|
export LD_SHIM_LIBS /system/lib/hw/camera.vendor.msm8974.so|libshim_camera.so:/system/lib/libcutils.so|libshim_cutils_atomic.so
|
||||||
|
|
||||||
mount debugfs debugfs /sys/kernel/debug
|
mount debugfs debugfs /sys/kernel/debug
|
||||||
chmod 0755 /sys/kernel/debug
|
chmod 0755 /sys/kernel/debug
|
||||||
|
@ -48,7 +49,6 @@ on early-init
|
||||||
symlink /data/tombstones /tombstones
|
symlink /data/tombstones /tombstones
|
||||||
|
|
||||||
on init
|
on init
|
||||||
|
|
||||||
# Support legacy paths
|
# Support legacy paths
|
||||||
symlink /sdcard /storage/sdcard0
|
symlink /sdcard /storage/sdcard0
|
||||||
|
|
||||||
|
@ -56,7 +56,6 @@ on init
|
||||||
|
|
||||||
on fs
|
on fs
|
||||||
mount_all fstab.qcom
|
mount_all fstab.qcom
|
||||||
write /proc/sys/vm/swappiness 100
|
|
||||||
swapon_all fstab.qcom
|
swapon_all fstab.qcom
|
||||||
|
|
||||||
restorecon_recursive /efs
|
restorecon_recursive /efs
|
||||||
|
@ -294,6 +293,8 @@ on boot
|
||||||
mkdir /dev/socket/qmux_gps 0770 gps gps
|
mkdir /dev/socket/qmux_gps 0770 gps gps
|
||||||
chmod 2770 /dev/socket/qmux_gps
|
chmod 2770 /dev/socket/qmux_gps
|
||||||
|
|
||||||
|
mkdir /persist/bluetooth 0770 bluetooth bluetooth
|
||||||
|
|
||||||
# Allow QMUX daemon to assign port open wait time
|
# Allow QMUX daemon to assign port open wait time
|
||||||
chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
|
chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
|
||||||
|
|
||||||
|
@ -801,13 +802,13 @@ on boot
|
||||||
|
|
||||||
# permissions for bluetooth.
|
# permissions for bluetooth.
|
||||||
setprop ro.bt.bdaddr_path "/efs/bluetooth/bt_addr"
|
setprop ro.bt.bdaddr_path "/efs/bluetooth/bt_addr"
|
||||||
chown bluetooth net_bt_stack ro.bt.bdaddr_path
|
chown bluetooth bluetooth ro.bt.bdaddr_path
|
||||||
chown radio net_bt_stack /efs/bluetooth/bt_addr
|
chown radio bluetooth /efs/bluetooth/bt_addr
|
||||||
chmod 0640 /efs/bluetooth/bt_addr
|
chmod 0640 /efs/bluetooth/bt_addr
|
||||||
restorecon_recursive /efs/bluetooth
|
restorecon_recursive /efs/bluetooth
|
||||||
chmod 0660 /sys/class/rfkill/rfkill0/state
|
chmod 0660 /sys/class/rfkill/rfkill0/state
|
||||||
chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state
|
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
|
||||||
chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type
|
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
|
||||||
|
|
||||||
# DualWave
|
# DualWave
|
||||||
chown system system /sys/kernel/DualWave/sound/DUALWAVE_CONFIG
|
chown system system /sys/kernel/DualWave/sound/DUALWAVE_CONFIG
|
||||||
|
@ -815,8 +816,8 @@ on boot
|
||||||
# bluetooth LPM
|
# bluetooth LPM
|
||||||
chmod 0660 /proc/bluetooth/sleep/lpm
|
chmod 0660 /proc/bluetooth/sleep/lpm
|
||||||
chmod 0220 /proc/bluetooth/sleep/btwrite
|
chmod 0220 /proc/bluetooth/sleep/btwrite
|
||||||
chown bluetooth net_bt_stack /proc/bluetooth/sleep/lpm
|
chown bluetooth bluetooth /proc/bluetooth/sleep/lpm
|
||||||
chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite
|
chown bluetooth bluetooth /proc/bluetooth/sleep/btwrite
|
||||||
|
|
||||||
# Sensors
|
# Sensors
|
||||||
chown system system /efs/prox_cal
|
chown system system /efs/prox_cal
|
||||||
|
@ -831,9 +832,12 @@ on boot
|
||||||
chmod 0640 /efs/gyro_cal_data
|
chmod 0640 /efs/gyro_cal_data
|
||||||
restorecon /efs/gyro_cal_data
|
restorecon /efs/gyro_cal_data
|
||||||
|
|
||||||
|
# Set permissions for firmware path control
|
||||||
|
chown wifi wifi /sys/module/dhd/parameters/firmware_path
|
||||||
|
|
||||||
# Services begin here
|
# Services begin here
|
||||||
|
|
||||||
service adsprpcd /system/bin/adsprpcd
|
service adsprpcd /vendor/bin/adsprpcd
|
||||||
class main
|
class main
|
||||||
user media
|
user media
|
||||||
group media
|
group media
|
||||||
|
@ -841,20 +845,20 @@ service adsprpcd /system/bin/adsprpcd
|
||||||
service qcamerasvr /system/bin/mm-qcamera-daemon
|
service qcamerasvr /system/bin/mm-qcamera-daemon
|
||||||
class main
|
class main
|
||||||
user camera
|
user camera
|
||||||
group camera system inet input graphics net_bt_stack
|
group camera system inet input graphics bluetooth
|
||||||
|
|
||||||
service qseecomd /system/bin/qseecomd
|
service qseecomd /vendor/bin/qseecomd
|
||||||
class core
|
class core
|
||||||
user root
|
user root
|
||||||
group root
|
group root
|
||||||
|
|
||||||
service mpdecision /system/bin/mpdecision --avg_comp
|
service mpdecision /vendor/bin/mpdecision --avg_comp
|
||||||
class main
|
class main
|
||||||
user root
|
user root
|
||||||
group root readproc
|
group root readproc
|
||||||
disabled
|
disabled
|
||||||
|
|
||||||
service thermal-engine /system/vendor/bin/thermal-engine
|
service thermal-engine /vendor/bin/thermal-engine
|
||||||
class main
|
class main
|
||||||
user root
|
user root
|
||||||
socket thermal-send-client stream 0666 system system
|
socket thermal-send-client stream 0666 system system
|
||||||
|
@ -862,7 +866,7 @@ service thermal-engine /system/vendor/bin/thermal-engine
|
||||||
socket thermal-recv-passive-client stream 0666 system system
|
socket thermal-recv-passive-client stream 0666 system system
|
||||||
group root
|
group root
|
||||||
|
|
||||||
service time_daemon /system/bin/time_daemon
|
service time_daemon /vendor/bin/time_daemon
|
||||||
class late_start
|
class late_start
|
||||||
user root
|
user root
|
||||||
group root
|
group root
|
||||||
|
@ -872,72 +876,43 @@ service audiod /system/bin/audiod
|
||||||
user system
|
user system
|
||||||
group system
|
group system
|
||||||
|
|
||||||
service irsc_util /system/bin/irsc_util "/etc/sec_config"
|
service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config"
|
||||||
class main
|
class main
|
||||||
user root
|
user root
|
||||||
oneshot
|
oneshot
|
||||||
|
|
||||||
service rfs_access /system/bin/rfs_access
|
service rfs_access /vendor/bin/rfs_access
|
||||||
class core
|
class core
|
||||||
user system
|
user system
|
||||||
group system net_raw
|
group system net_raw
|
||||||
|
|
||||||
service rmt_storage /system/bin/rmt_storage
|
service rmt_storage /vendor/bin/rmt_storage
|
||||||
class core
|
class core
|
||||||
user root
|
user root
|
||||||
group system wakelock
|
group system wakelock
|
||||||
|
|
||||||
service qmuxd /system/bin/qmuxd
|
service qmuxd /vendor/bin/qmuxd
|
||||||
class core
|
class core
|
||||||
user radio
|
user radio
|
||||||
group radio audio bluetooth gps qcom_diag log
|
group radio audio bluetooth gps oem_2950 log
|
||||||
|
|
||||||
service wpa_supplicant /system/bin/wpa_supplicant \
|
service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
|
||||||
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
|
|
||||||
-I/system/etc/wifi/wpa_supplicant_overlay.conf \
|
|
||||||
-O/data/misc/wifi/sockets \
|
|
||||||
-e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
|
|
||||||
# we will start as root and wpa_supplicant will switch to user wifi
|
|
||||||
# after setting up the capabilities required for WEXT
|
|
||||||
# user wifi
|
|
||||||
# group wifi inet keystore
|
|
||||||
class main
|
|
||||||
socket wpa_wlan0 dgram 660 wifi wifi
|
|
||||||
disabled
|
|
||||||
group system wakelock
|
|
||||||
oneshot
|
|
||||||
|
|
||||||
service p2p_supplicant /system/bin/wpa_supplicant \
|
|
||||||
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
|
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
|
||||||
-I/system/etc/wifi/wpa_supplicant_overlay.conf -N \
|
-I/system/etc/wifi/wpa_supplicant_overlay.conf -N \
|
||||||
-ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
|
-ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
|
||||||
-I/system/etc/wifi/p2p_supplicant_overlay.conf \
|
-I/system/etc/wifi/p2p_supplicant_overlay.conf \
|
||||||
-O/data/misc/wifi/sockets -puse_p2p_group_interface=1 \
|
-puse_p2p_group_interface=1 -e/data/misc/wifi/entropy.bin \
|
||||||
-e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
|
-g@android:wpa_wlan0
|
||||||
# we will start as root and wpa_supplicant will switch to user wifi
|
|
||||||
# after setting up the capabilities required for WEXT
|
|
||||||
# user wifi
|
|
||||||
# group wifi inet keystore
|
|
||||||
class main
|
class main
|
||||||
socket wpa_wlan0 dgram 660 wifi wifi
|
socket wpa_wlan0 dgram 660 wifi wifi
|
||||||
disabled
|
disabled
|
||||||
group system wakelock
|
|
||||||
oneshot
|
oneshot
|
||||||
|
|
||||||
service macloader /system/bin/macloader
|
service macloader /vendor/bin/macloader
|
||||||
class late_start
|
class late_start
|
||||||
oneshot
|
oneshot
|
||||||
seclabel u:r:macloader:s0
|
seclabel u:r:macloader:s0
|
||||||
|
|
||||||
service ril-daemon /system/bin/rild
|
|
||||||
class main
|
|
||||||
socket rild stream 660 root radio
|
|
||||||
socket sap_uim_socket1 stream 660 bluetooth bluetooth
|
|
||||||
socket rild-debug stream 660 radio system
|
|
||||||
socket rild-cas stream 660 casdrm mmb
|
|
||||||
user root
|
|
||||||
group radio cache inet misc audio log system wakelock qcom_diag
|
|
||||||
|
|
||||||
on property:wlan.driver.status=ok
|
on property:wlan.driver.status=ok
|
||||||
start macloader
|
start macloader
|
||||||
|
|
||||||
|
@ -977,6 +952,9 @@ on property:sys.boot_completed=1
|
||||||
|
|
||||||
# Configure the CPU governor
|
# Configure the CPU governor
|
||||||
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive
|
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive
|
||||||
|
write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor interactive
|
||||||
|
write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor interactive
|
||||||
|
write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor interactive
|
||||||
write /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay "19000 1400000:39000 1700000:19000"
|
write /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay "19000 1400000:39000 1700000:19000"
|
||||||
write /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load 99
|
write /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load 99
|
||||||
write /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq 1497600
|
write /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq 1497600
|
||||||
|
@ -986,6 +964,9 @@ on property:sys.boot_completed=1
|
||||||
write /sys/devices/system/cpu/cpufreq/interactive/timer_rate 30000
|
write /sys/devices/system/cpu/cpufreq/interactive/timer_rate 30000
|
||||||
write /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor 100000
|
write /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor 100000
|
||||||
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000
|
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000
|
||||||
|
write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 300000
|
||||||
|
write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 300000
|
||||||
|
write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 300000
|
||||||
|
|
||||||
chown root system /sys/devices/system/cpu/cpu1/online
|
chown root system /sys/devices/system/cpu/cpu1/online
|
||||||
chown root system /sys/devices/system/cpu/cpu2/online
|
chown root system /sys/devices/system/cpu/cpu2/online
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
# the DIAG device node is not world writable/readable.
|
# the DIAG device node is not world writable/readable.
|
||||||
/dev/diag 0660 system qcom_diag
|
/dev/diag 0660 system oem_2950
|
||||||
|
|
||||||
/dev/genlock 0666 system system
|
/dev/genlock 0666 system system
|
||||||
/dev/kgsl 0666 system system
|
/dev/kgsl 0666 system system
|
||||||
|
@ -44,6 +44,7 @@
|
||||||
|
|
||||||
#permissions for CSVT
|
#permissions for CSVT
|
||||||
/dev/smd11 0660 radio radio
|
/dev/smd11 0660 radio radio
|
||||||
|
/dev/radio0 0640 system system
|
||||||
/dev/rfcomm0 0660 bluetooth bluetooth
|
/dev/rfcomm0 0660 bluetooth bluetooth
|
||||||
/dev/smdcntl0 0640 radio radio
|
/dev/smdcntl0 0640 radio radio
|
||||||
/dev/smdcntl1 0640 radio radio
|
/dev/smdcntl1 0640 radio radio
|
||||||
|
@ -134,8 +135,9 @@
|
||||||
/dev/msm_preproc_ctl 0660 system audio
|
/dev/msm_preproc_ctl 0660 system audio
|
||||||
/dev/msm_rtac 0660 system audio
|
/dev/msm_rtac 0660 system audio
|
||||||
/dev/msm_voicememo 0660 system audio
|
/dev/msm_voicememo 0660 system audio
|
||||||
/dev/smd3 0660 bluetooth net_bt_stack
|
/dev/radio0 0640 fm_radio fm_radio
|
||||||
/dev/smd2 0660 bluetooth net_bt_stack
|
/dev/smd3 0660 bluetooth bluetooth
|
||||||
|
/dev/smd2 0660 bluetooth bluetooth
|
||||||
/dev/ttyHSL1 0660 system system
|
/dev/ttyHSL1 0660 system system
|
||||||
/dev/mdm 0660 system radio
|
/dev/mdm 0660 system radio
|
||||||
/sys/devices/virtual/smdpkt/smdcntl* open_timeout 0664 radio radio
|
/sys/devices/virtual/smdpkt/smdcntl* open_timeout 0664 radio radio
|
||||||
|
@ -149,7 +151,7 @@
|
||||||
/dev/ttyHS3 0660 media audio
|
/dev/ttyHS3 0660 media audio
|
||||||
|
|
||||||
# Bluetooth
|
# Bluetooth
|
||||||
/dev/ttyHS0 0660 bluetooth net_bt_stack
|
/dev/ttyHS0 0660 bluetooth bluetooth
|
||||||
/dev/ttyHS2 0660 bluetooth bluetooth
|
/dev/ttyHS2 0660 bluetooth bluetooth
|
||||||
|
|
||||||
# bluetooth LPM
|
# bluetooth LPM
|
||||||
|
|
|
@ -19,9 +19,19 @@
|
||||||
# EFS
|
# EFS
|
||||||
/dev/block/platform/msm_sdcc.1/by-name/efs u:object_r:modem_efs_partition_device:s0
|
/dev/block/platform/msm_sdcc.1/by-name/efs u:object_r:modem_efs_partition_device:s0
|
||||||
|
|
||||||
|
# Fingerprint
|
||||||
|
/data/validity(/.*)? u:object_r:vcs_data_file:s0
|
||||||
|
/dev/validity(/.*)? u:object_r:vcs_device:s0
|
||||||
|
/dev/vfsspi u:object_r:vcs_device:s0
|
||||||
|
|
||||||
# Macloader
|
# Macloader
|
||||||
/system/bin/macloader u:object_r:macloader_exec:s0
|
/system/bin/macloader u:object_r:macloader_exec:s0
|
||||||
|
|
||||||
|
# NFC
|
||||||
|
/dev/bcm2079x u:object_r:nfc_device:s0
|
||||||
|
/dev/pn547 u:object_r:nfc_device:s0
|
||||||
|
/dev/sec-nfc u:object_r:nfc_device:s0
|
||||||
|
|
||||||
# RIL
|
# RIL
|
||||||
/data/data/com.android.providers.telephony/databases(/.*)? u:object_r:radio_data_file:s0
|
/data/data/com.android.providers.telephony/databases(/.*)? u:object_r:radio_data_file:s0
|
||||||
/data/data/com.android.providers.telephony/shared_prefs(/.*)? u:object_r:radio_data_file:s0
|
/data/data/com.android.providers.telephony/shared_prefs(/.*)? u:object_r:radio_data_file:s0
|
||||||
|
|
14
sepolicy/fingerprintd.te
Executable file
14
sepolicy/fingerprintd.te
Executable file
|
@ -0,0 +1,14 @@
|
||||||
|
allow fingerprintd vcs_data_file:dir create_dir_perms;
|
||||||
|
allow fingerprintd vcs_data_file:file create_file_perms;
|
||||||
|
|
||||||
|
allow fingerprintd vcs_device:dir create_dir_perms;
|
||||||
|
allow fingerprintd vcs_device:file create_file_perms;
|
||||||
|
allow fingerprintd vcs_device:fifo_file create_file_perms;
|
||||||
|
allow fingerprintd vcs_device:chr_file create_file_perms;
|
||||||
|
|
||||||
|
allow fingerprintd tee_device:chr_file rw_file_perms;
|
||||||
|
|
||||||
|
allow fingerprintd firmware_file:dir r_dir_perms;
|
||||||
|
allow fingerprintd firmware_file:file r_file_perms;
|
||||||
|
|
||||||
|
allow fingerprintd vfat:file { getattr open read };
|
4
sepolicy/shell.te
Executable file
4
sepolicy/shell.te
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
allow shell exfat:dir create_dir_perms;
|
||||||
|
allow shell exfat:file create_file_perms;
|
||||||
|
allow shell fuseblk:dir create_dir_perms;
|
||||||
|
allow shell fuseblk:file create_file_perms;
|
|
@ -25,6 +25,7 @@ ro.hdcp2.rx=tz
|
||||||
ro.qualcomm.cabl=1
|
ro.qualcomm.cabl=1
|
||||||
ro.secwvk=144
|
ro.secwvk=144
|
||||||
ro.sf.lcd_density=320
|
ro.sf.lcd_density=320
|
||||||
|
debug.hwui.use_buffer_age=false
|
||||||
|
|
||||||
# GPS
|
# GPS
|
||||||
persist.gps.qc_nlp_in_use=0
|
persist.gps.qc_nlp_in_use=0
|
||||||
|
@ -35,6 +36,7 @@ ro.qc.sdk.izat.service_mask=0x0
|
||||||
# Media
|
# Media
|
||||||
media.stagefright.legacyencoder=true
|
media.stagefright.legacyencoder=true
|
||||||
media.stagefright.less-secure=true
|
media.stagefright.less-secure=true
|
||||||
|
persist.media.treble_omx=false
|
||||||
|
|
||||||
# Perf
|
# Perf
|
||||||
ro.vendor.extension_library=/vendor/lib/libqti-perfd-client.so
|
ro.vendor.extension_library=/vendor/lib/libqti-perfd-client.so
|
||||||
|
@ -45,7 +47,6 @@ persist.data.qmi.adb_logmask=0
|
||||||
persist.radio.add_power_save=1
|
persist.radio.add_power_save=1
|
||||||
persist.radio.lte_vrat_report=1
|
persist.radio.lte_vrat_report=1
|
||||||
ro.telephony.mms_data_profile=5
|
ro.telephony.mms_data_profile=5
|
||||||
ro.telephony.ril_class=NoteProRIL
|
|
||||||
|
|
||||||
rild.libargs=-d /dev/smd0
|
rild.libargs=-d /dev/smd0
|
||||||
rild.libpath=/system/lib/libsec-ril.so
|
rild.libpath=/system/lib/libsec-ril.so
|
||||||
|
@ -58,7 +59,7 @@ ro.telephony.call_ring.multiple=0
|
||||||
debug.sensors=1
|
debug.sensors=1
|
||||||
|
|
||||||
# Storage
|
# Storage
|
||||||
ro.sys.sdcardfs=true
|
ro.sys.sdcardfs=false
|
||||||
|
|
||||||
# Tethering
|
# Tethering
|
||||||
net.tethering.noprovisioning=true
|
net.tethering.noprovisioning=true
|
||||||
|
|
Loading…
Add table
Reference in a new issue