init Oreo

This commit is contained in:
Valera1978 2018-01-01 00:53:06 +03:00
parent d444541944
commit 22e1bcc46a
39 changed files with 3232 additions and 3094 deletions

View file

@ -14,7 +14,7 @@
# limitations under the License.
# inherit from common msm8974
-include device/samsung/msm8974-common/BoardConfigCommon.mk
include device/samsung/msm8974-common/BoardConfigCommon.mk
LOCAL_PATH := device/samsung/viennalte
@ -28,12 +28,17 @@ TARGET_OTA_ASSERT_DEVICE := viennalte,viennaltexx
# Use Snapdragon LLVM if available on build server
TARGET_USE_SDCLANG := true
# ADB Legacy Interface
TARGET_USES_LEGACY_ADB_INTERFACE := true
# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := MSM8974
# Kernel
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_SEPARATED_DT := true
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
USE_CUSTOM_AUDIO_POLICY := 1
# Binder API version
TARGET_USES_64_BIT_BINDER := true
# Bluetooth
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(LOCAL_PATH)/bluetooth
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
USE_DEVICE_SPECIFIC_CAMERA := true
# CMHW
BOARD_HARDWARE_CLASS += $(LOCAL_PATH)/cmhw
# Filesystem
TARGET_FS_CONFIG_GEN := $(LOCAL_PATH)/config.fs
# HIDL
DEVICE_MANIFEST_FILE += $(LOCAL_PATH)/manifest.xml
# Legacy BLOB Support
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
# Radio
BOARD_RIL_CLASS := ../../../device/samsung/viennalte/ril
#BOARD_PROVIDES_LIBRIL := true
#TARGET_RIL_VARIANT := caf
# Recovery
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_SELECT_BUTTON := true
BOARD_RECOVERY_SWIPE := true
TARGET_RECOVERY_FSTAB := $(LOCAL_PATH)/rootdir/etc/fstab.qcom
TARGET_RECOVERY_FSTAB := $(LOCAL_PATH)/rootdir/etc/fstab.full
# SELinux
-include device/qcom/sepolicy/sepolicy.mk
BOARD_SEPOLICY_DIRS += $(LOCAL_PATH)/sepolicy
# Sensors
#TARGET_NO_SENSOR_PERMISSION_CHECK := true
BOARD_SEPOLICY_DIRS += \
$(COMMON_PATH)/sepolicy
# TWRP Support - Optional
ifeq ($(WITH_TWRP),true)

277
audio/audio_effects.conf Executable file
View 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
#

View file

@ -20,9 +20,9 @@
#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 KERNEL_MISSING_CLOCK_BOOTTIME_ALARM TRUE
#define BTM_WBS_INCLUDED TRUE /* Enable WBS */
#define BTIF_HF_WBS_PREFERRED TRUE /* Use WBS */
#endif

View file

@ -1,13 +1,16 @@
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_NOTIFY_DEASSERT=TRUE
PROC_BTWRITE_TIMER_TIMEOUT_MS = 0
UART_TARGET_BAUD_RATE = 4000000
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
BTHW_DBG = TRUE
VNDUSERIAL_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

View file

@ -1,17 +1,23 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := \
system/media/camera/include
LOCAL_SRC_FILES := \
CameraWrapper.cpp
LOCAL_STATIC_LIBRARIES := libbase libarect
LOCAL_SHARED_LIBRARIES := \
libhardware liblog libcamera_client libutils
libhardware liblog libcamera_client libutils libcutils libdl \
android.hidl.token@1.0-utils \
android.hardware.graphics.bufferqueue@1.0
LOCAL_C_INCLUDES += \
system/media/camera/include
LOCAL_HEADER_LIBRARIES := libnativebase_headers
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
LOCAL_MODULE := camera.$(TARGET_BOARD_PLATFORM)
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_MODULE_TAGS := optional
LOCAL_PROPRIETARY_MODULE := true
include $(BUILD_SHARED_LIBRARY)

View file

@ -34,9 +34,21 @@
#include <camera/Camera.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 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 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);
}
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,
camera_notify_callback notify_cb,
camera_data_callback data_cb,
@ -230,7 +261,14 @@ void camera_set_callbacks(struct camera_device * device,
if(!device)
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)

8
config.fs Executable file
View file

@ -0,0 +1,8 @@
[AID_QCOM_DIAG]
value:2950
[AID_RFS]
value:2951
[AID_RFS_SHARED]
value:2952

View file

@ -129,7 +129,7 @@ BASEBAND=all
PROCESS_NAME=/system/bin/lowi-server
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
IZAT_FEATURE_MASK=0x333
PLATFORMS=all
@ -161,7 +161,7 @@ BASEBAND=all
PROCESS_NAME=/system/bin/xtwifi-client
PROCESS_STATE=ENABLED
PROCESS_GROUPS=net_admin wifi inet gps
PROCESS_GROUPS=net_admin wifi inet gps net_raw oem_2952
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0x30f
PLATFORMS=all
@ -169,7 +169,7 @@ BASEBAND=all
PROCESS_NAME=/system/vendor/bin/slim_ap_daemon
PROCESS_STATE=ENABLED
PROCESS_GROUPS=gps net_raw misc qcom_oncrpc qcom_diag
PROCESS_GROUPS=gps net_raw oem_2950
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0xf0
PLATFORMS=all

View file

@ -51,9 +51,10 @@ PRODUCT_COPY_FILES += \
# Audio
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/audio/audio_platform_info.xml:system/etc/audio_platform_info.xml \
$(LOCAL_PATH)/audio/audio_policy.conf:system/etc/audio_policy.conf \
$(LOCAL_PATH)/audio/mixer_paths.xml:system/etc/mixer_paths.xml
$(LOCAL_PATH)/audio/audio_effects.conf:system/vendor/etc/audio_effects.conf \
$(LOCAL_PATH)/audio/audio_platform_info.xml:system/vendor/etc/audio_platform_info.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
PRODUCT_PACKAGES += \
@ -66,18 +67,24 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/izat.conf:system/etc/izat.conf \
$(LOCAL_PATH)/configs/sap.conf:system/etc/sap.conf
# Bluetooth
PRODUCT_PACKAGES += \
libbt-vendor
# Camera
PRODUCT_PACKAGES += \
android.hardware.camera.provider@2.4-impl \
camera.device@1.0-impl \
camera.msm8974 \
libstlport \
libshim_camera \
libxml2
#PRODUCT_PACKAGES += \
# Snap
# Doze
PRODUCT_PACKAGES += \
SamsungDoze
#PRODUCT_PACKAGES += \
# SamsungDoze
# IPv6 tethering
PRODUCT_PACKAGES += \
@ -85,8 +92,8 @@ PRODUCT_PACKAGES += \
ethertypes
# IR Blaster
PRODUCT_PACKAGES += \
consumerir.msm8974
#PRODUCT_PACKAGES += \
# consumerir.msm8974
# Input device
PRODUCT_COPY_FILES += \
@ -104,6 +111,7 @@ PRODUCT_COPY_FILES += \
# Lights
PRODUCT_PACKAGES += \
android.hardware.light@2.0-impl \
lights.MSM8974
# Media
@ -112,7 +120,8 @@ PRODUCT_COPY_FILES += \
# Radio
PRODUCT_PACKAGES += \
libril_shim
libsecnativefeature \
libshim_cutils_atomic
# Ramdisk
PRODUCT_PACKAGES += \
@ -126,18 +135,15 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/thermal-engine-8974.conf:system/etc/thermal-engine-8974.conf
# Vibrator
PRODUCT_PACKAGES += \
android.hardware.vibrator@1.0-impl
# Wifi
PRODUCT_PACKAGES += \
libnetcmdiface \
macloader
PRODUCT_PACKAGES += \
hostapd.accept \
hostapd.deny \
hostapd \
wpa_supplicant \
wpa_supplicant.conf
PRODUCT_COPY_FILES += \
$(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

View file

@ -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);

View file

@ -26,8 +26,41 @@
#include <hardware/hardware.h>
#include <hardware/gnss-base.h>
__BEGIN_DECLS
/*
* Enums defined in HIDL in hardware/interfaces are auto-generated and present
* in gnss-base.h.
*/
/* for compatibility */
/** Maximum number of SVs for gps_sv_status_callback(). */
#define GNSS_MAX_SVS GNSS_MAX_SVS_COUNT
/** Maximum number of Measurements in gnss_measurement_callback(). */
#define GNSS_MAX_MEASUREMENT GNSS_MAX_SVS_COUNT
#define GPS_REQUEST_AGPS_DATA_CONN GNSS_REQUEST_AGNSS_DATA_CONN
#define GPS_RELEASE_AGPS_DATA_CONN GNSS_RELEASE_AGNSS_DATA_CONN
#define GPS_AGPS_DATA_CONNECTED GNSS_AGNSS_DATA_CONNECTED
#define GPS_AGPS_DATA_CONN_DONE GNSS_AGNSS_DATA_CONN_DONE
#define GPS_AGPS_DATA_CONN_FAILED GNSS_AGNSS_DATA_CONN_FAILED
#define AGPS_RIL_NETWORK_TYPE_MOBILE_MMS AGPS_RIL_NETWORK_TYPE_MMS
#define AGPS_RIL_NETWORK_TYPE_MOBILE_SUPL AGPS_RIL_NETWORK_TYPE_SUPL
#define AGPS_RIL_NETWORK_TTYPE_MOBILE_DUN AGPS_RIL_NETWORK_TYPE_DUN
#define AGPS_RIL_NETWORK_TTYPE_MOBILE_HIPRI AGPS_RIL_NETWORK_TYPE_HIPRI
#define AGPS_RIL_NETWORK_TTYPE_WIMAX AGPS_RIL_NETWORK_TYPE_WIMAX
#define GNSS_MULTIPATH_INDICATOR_NOT_PRESENT GNSS_MULTIPATH_INDICATIOR_NOT_PRESENT
#define AGPS_SETID_TYPE_MSISDN AGPS_SETID_TYPE_MSISDM
#define GPS_MEASUREMENT_OPERATION_SUCCESS GPS_MEASUREMENT_SUCCESS
#define GPS_NAVIGATION_MESSAGE_OPERATION_SUCCESS GPS_NAVIGATION_MESSAGE_SUCCESS
#define GNSS_NAVIGATION_MESSAGE_TYPE_GPS_L1CA GNSS_NAVIGATION_MESSAGE_TYPE_GNSS_L1CA
#define GNSS_NAVIGATION_MESSAGE_TYPE_GPS_L2CNAV GNSS_NAVIGATION_MESSAGE_TYPE_GNSS_L2CNAV
#define GNSS_NAVIGATION_MESSAGE_TYPE_GPS_L5CNAV GNSS_NAVIGATION_MESSAGE_TYPE_GNSS_L5CNAV
#define GNSS_NAVIGATION_MESSAGE_TYPE_GPS_CNAV2 GNSS_NAVIGATION_MESSAGE_TYPE_GNSS_CNAV2
/**
* The id of this module
*/
@ -39,143 +72,36 @@ typedef int64_t GpsUtcTime;
/** Maximum number of SVs for gps_sv_status_callback(). */
#define GPS_MAX_SVS 32
/** Maximum number of SVs for gps_sv_status_callback(). */
#define GNSS_MAX_SVS 64
/** Maximum number of Measurements in gps_measurement_callback(). */
#define GPS_MAX_MEASUREMENT 32
/** Maximum number of Measurements in gnss_measurement_callback(). */
#define GNSS_MAX_MEASUREMENT 64
/** Requested operational mode for GPS operation. */
typedef uint32_t GpsPositionMode;
/* IMPORTANT: Note that the following values must match
* constants in GpsLocationProvider.java. */
/** Mode for running GPS standalone (no assistance). */
#define GPS_POSITION_MODE_STANDALONE 0
/** AGPS MS-Based mode. */
#define GPS_POSITION_MODE_MS_BASED 1
/**
* AGPS MS-Assisted mode. This mode is not maintained by the platform anymore.
* It is strongly recommended to use GPS_POSITION_MODE_MS_BASED instead.
*/
#define GPS_POSITION_MODE_MS_ASSISTED 2
/** Requested recurrence mode for GPS operation. */
typedef uint32_t GpsPositionRecurrence;
/* IMPORTANT: Note that the following values must match
* constants in GpsLocationProvider.java. */
/** Receive GPS fixes on a recurring basis at a specified period. */
#define GPS_POSITION_RECURRENCE_PERIODIC 0
/** Request a single shot GPS fix. */
#define GPS_POSITION_RECURRENCE_SINGLE 1
/** GPS status event values. */
typedef uint16_t GpsStatusValue;
/* IMPORTANT: Note that the following values must match
* constants in GpsLocationProvider.java. */
/** GPS status unknown. */
#define GPS_STATUS_NONE 0
/** GPS has begun navigating. */
#define GPS_STATUS_SESSION_BEGIN 1
/** GPS has stopped navigating. */
#define GPS_STATUS_SESSION_END 2
/** GPS has powered on but is not navigating. */
#define GPS_STATUS_ENGINE_ON 3
/** GPS is powered off. */
#define GPS_STATUS_ENGINE_OFF 4
/** Flags to indicate which values are valid in a GpsLocation. */
typedef uint16_t GpsLocationFlags;
/* IMPORTANT: Note that the following values must match
* constants in GpsLocationProvider.java. */
/** GpsLocation has valid latitude and longitude. */
#define GPS_LOCATION_HAS_LAT_LONG 0x0001
/** GpsLocation has valid altitude. */
#define GPS_LOCATION_HAS_ALTITUDE 0x0002
/** GpsLocation has valid speed. */
#define GPS_LOCATION_HAS_SPEED 0x0004
/** GpsLocation has valid bearing. */
#define GPS_LOCATION_HAS_BEARING 0x0008
/** GpsLocation has valid accuracy. */
#define GPS_LOCATION_HAS_ACCURACY 0x0010
/** Flags for the gps_set_capabilities callback. */
/**
* GPS HAL schedules fixes for GPS_POSITION_RECURRENCE_PERIODIC mode. If this is
* not set, then the framework will use 1000ms for min_interval and will start
* and call start() and stop() to schedule the GPS.
*/
#define GPS_CAPABILITY_SCHEDULING (1 << 0)
/** GPS supports MS-Based AGPS mode */
#define GPS_CAPABILITY_MSB (1 << 1)
/** GPS supports MS-Assisted AGPS mode */
#define GPS_CAPABILITY_MSA (1 << 2)
/** GPS supports single-shot fixes */
#define GPS_CAPABILITY_SINGLE_SHOT (1 << 3)
/** GPS supports on demand time injection */
#define GPS_CAPABILITY_ON_DEMAND_TIME (1 << 4)
/** GPS supports Geofencing */
#define GPS_CAPABILITY_GEOFENCING (1 << 5)
/** GPS supports Measurements. */
#define GPS_CAPABILITY_MEASUREMENTS (1 << 6)
/** GPS supports Navigation Messages */
#define GPS_CAPABILITY_NAV_MESSAGES (1 << 7)
/**
* Flags used to specify which aiding data to delete when calling
* delete_aiding_data().
*/
typedef uint32_t GpsAidingData;
typedef uint16_t GpsAidingData;
/* IMPORTANT: Note that the following values must match
* constants in GpsLocationProvider.java. */
#define GPS_DELETE_EPHEMERIS 0x00000001
#define GPS_DELETE_ALMANAC 0x00000002
#define GPS_DELETE_POSITION 0x00000004
#define GPS_DELETE_TIME 0x00000008
#define GPS_DELETE_IONO 0x00000010
#define GPS_DELETE_UTC 0x00000020
#define GPS_DELETE_HEALTH 0x00000040
#define GPS_DELETE_SVDIR 0x00000080
#define GPS_DELETE_SVSTEER 0x00000100
#define GPS_DELETE_SADATA 0x00000200
#define GPS_DELETE_RTI 0x00000400
#define GPS_DELETE_CELLDB_INFO 0x00000800
#define GPS_DELETE_ALMANAC_CORR 0x00001000
#define GPS_DELETE_FREQ_BIAS_EST 0x00002000
#define GLO_DELETE_EPHEMERIS 0x00004000
#define GLO_DELETE_ALMANAC 0x00008000
#define GLO_DELETE_SVDIR 0x00010000
#define GLO_DELETE_SVSTEER 0x00020000
#define GLO_DELETE_ALMANAC_CORR 0x00040000
#define GPS_DELETE_TIME_GPS 0x00080000
#define GLO_DELETE_TIME 0x00100000
#define BDS_DELETE_SVDIR 0X00200000
#define BDS_DELETE_SVSTEER 0X00400000
#define BDS_DELETE_TIME 0X00800000
#define BDS_DELETE_ALMANAC_CORR 0X01000000
#define BDS_DELETE_EPHEMERIS 0X02000000
#define BDS_DELETE_ALMANAC 0X04000000
#define GPS_DELETE_ALL 0xFFFFFFFF
/** AGPS type */
typedef uint16_t AGpsType;
#define AGPS_TYPE_SUPL 1
#define AGPS_TYPE_C2K 2
typedef uint16_t AGpsSetIDType;
#define AGPS_SETID_TYPE_NONE 0
#define AGPS_SETID_TYPE_IMSI 1
#define AGPS_SETID_TYPE_MSISDN 2
typedef uint16_t ApnIpType;
#define APN_IP_INVALID 0
#define APN_IP_IPV4 1
#define APN_IP_IPV6 2
#define APN_IP_IPV4V6 3
/**
* String length constants
@ -187,71 +113,31 @@ typedef uint16_t ApnIpType;
* GpsNiType constants
*/
typedef uint32_t GpsNiType;
#define GPS_NI_TYPE_VOICE 1
#define GPS_NI_TYPE_UMTS_SUPL 2
#define GPS_NI_TYPE_UMTS_CTRL_PLANE 3
/**
* GpsNiNotifyFlags constants
*/
typedef uint32_t GpsNiNotifyFlags;
/** NI requires notification */
#define GPS_NI_NEED_NOTIFY 0x0001
/** NI requires verification */
#define GPS_NI_NEED_VERIFY 0x0002
/** NI requires privacy override, no notification/minimal trace */
#define GPS_NI_PRIVACY_OVERRIDE 0x0004
/**
* GPS NI responses, used to define the response in
* NI structures
*/
typedef int GpsUserResponseType;
#define GPS_NI_RESPONSE_ACCEPT 1
#define GPS_NI_RESPONSE_DENY 2
#define GPS_NI_RESPONSE_NORESP 3
/**
* NI data encoding scheme
*/
typedef int GpsNiEncodingType;
#define GPS_ENC_NONE 0
#define GPS_ENC_SUPL_GSM_DEFAULT 1
#define GPS_ENC_SUPL_UTF8 2
#define GPS_ENC_SUPL_UCS2 3
#define GPS_ENC_UNKNOWN -1
/** AGPS status event values. */
typedef uint16_t AGpsStatusValue;
/** GPS requests data connection for AGPS. */
#define GPS_REQUEST_AGPS_DATA_CONN 1
/** GPS releases the AGPS data connection. */
#define GPS_RELEASE_AGPS_DATA_CONN 2
/** AGPS data connection initiated */
#define GPS_AGPS_DATA_CONNECTED 3
/** AGPS data connection completed */
#define GPS_AGPS_DATA_CONN_DONE 4
/** AGPS data connection failed */
#define GPS_AGPS_DATA_CONN_FAILED 5
typedef uint16_t AGpsRefLocationType;
#define AGPS_REF_LOCATION_TYPE_GSM_CELLID 1
#define AGPS_REF_LOCATION_TYPE_UMTS_CELLID 2
#define AGPS_REF_LOCATION_TYPE_MAC 3
#define AGPS_REF_LOCATION_TYPE_LTE_CELLID 4
/* Deprecated, to be removed in the next Android release. */
#define AGPS_REG_LOCATION_TYPE_MAC 3
/** Network types for update_network_state "type" parameter */
#define AGPS_RIL_NETWORK_TYPE_MOBILE 0
#define AGPS_RIL_NETWORK_TYPE_WIFI 1
#define AGPS_RIL_NETWORK_TYPE_MOBILE_MMS 2
#define AGPS_RIL_NETWORK_TYPE_MOBILE_SUPL 3
#define AGPS_RIL_NETWORK_TTYPE_MOBILE_DUN 4
#define AGPS_RIL_NETWORK_TTYPE_MOBILE_HIPRI 5
#define AGPS_RIL_NETWORK_TTYPE_WIMAX 6
/* The following typedef together with its constants below are deprecated, and
* will be removed in the next release. */
typedef uint16_t GpsClockFlags;
@ -267,20 +153,6 @@ typedef uint16_t GpsClockFlags;
* Flags to indicate what fields in GnssClock are valid.
*/
typedef uint16_t GnssClockFlags;
/** A valid 'leap second' is stored in the data structure. */
#define GNSS_CLOCK_HAS_LEAP_SECOND (1<<0)
/** A valid 'time uncertainty' is stored in the data structure. */
#define GNSS_CLOCK_HAS_TIME_UNCERTAINTY (1<<1)
/** A valid 'full bias' is stored in the data structure. */
#define GNSS_CLOCK_HAS_FULL_BIAS (1<<2)
/** A valid 'bias' is stored in the data structure. */
#define GNSS_CLOCK_HAS_BIAS (1<<3)
/** A valid 'bias uncertainty' is stored in the data structure. */
#define GNSS_CLOCK_HAS_BIAS_UNCERTAINTY (1<<4)
/** A valid 'drift' is stored in the data structure. */
#define GNSS_CLOCK_HAS_DRIFT (1<<5)
/** A valid 'drift uncertainty' is stored in the data structure. */
#define GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY (1<<6)
/* The following typedef together with its constants below are deprecated, and
* will be removed in the next release. */
@ -316,16 +188,6 @@ typedef uint32_t GpsMeasurementFlags;
* Flags to indicate what fields in GnssMeasurement are valid.
*/
typedef uint32_t GnssMeasurementFlags;
/** A valid 'snr' is stored in the data structure. */
#define GNSS_MEASUREMENT_HAS_SNR (1<<0)
/** A valid 'carrier frequency' is stored in the data structure. */
#define GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY (1<<9)
/** A valid 'carrier cycles' is stored in the data structure. */
#define GNSS_MEASUREMENT_HAS_CARRIER_CYCLES (1<<10)
/** A valid 'carrier phase' is stored in the data structure. */
#define GNSS_MEASUREMENT_HAS_CARRIER_PHASE (1<<11)
/** A valid 'carrier phase uncertainty' is stored in the data structure. */
#define GNSS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY (1<<12)
/* The following typedef together with its constants below are deprecated, and
* will be removed in the next release. */
@ -347,12 +209,6 @@ typedef uint8_t GpsMultipathIndicator;
* indicator.
*/
typedef uint8_t GnssMultipathIndicator;
/** The indicator is not available or unknown. */
#define GNSS_MULTIPATH_INDICATOR_UNKNOWN 0
/** The measurement is indicated to be affected by multipath. */
#define GNSS_MULTIPATH_INDICATOR_PRESENT 1
/** The measurement is indicated to be not affected by multipath. */
#define GNSS_MULTIPATH_INDICATOR_NOT_PRESENT 2
/* The following typedef together with its constants below are deprecated, and
* will be removed in the next release. */
@ -379,21 +235,6 @@ typedef uint16_t GpsMeasurementState;
* set to GNSS_MEASUREMENT_STATE_UNKNOWN(0).
*/
typedef uint32_t GnssMeasurementState;
#define GNSS_MEASUREMENT_STATE_UNKNOWN 0
#define GNSS_MEASUREMENT_STATE_CODE_LOCK (1<<0)
#define GNSS_MEASUREMENT_STATE_BIT_SYNC (1<<1)
#define GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC (1<<2)
#define GNSS_MEASUREMENT_STATE_TOW_DECODED (1<<3)
#define GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS (1<<4)
#define GNSS_MEASUREMENT_STATE_SYMBOL_SYNC (1<<5)
#define GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC (1<<6)
#define GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED (1<<7)
#define GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC (1<<8)
#define GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC (1<<9)
#define GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK (1<<10)
#define GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK (1<<11)
#define GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC (1<<12)
#define GNSS_MEASUREMENT_STATE_SBAS_SYNC (1<<13)
/* The following typedef together with its constants below are deprecated, and
* will be removed in the next release. */
@ -407,10 +248,6 @@ typedef uint16_t GpsAccumulatedDeltaRangeState;
* Flags indicating the Accumulated Delta Range's states.
*/
typedef uint16_t GnssAccumulatedDeltaRangeState;
#define GNSS_ADR_STATE_UNKNOWN 0
#define GNSS_ADR_STATE_VALID (1<<0)
#define GNSS_ADR_STATE_RESET (1<<1)
#define GNSS_ADR_STATE_CYCLE_SLIP (1<<2)
/* The following typedef together with its constants below are deprecated, and
* will be removed in the next release. */
@ -430,26 +267,6 @@ typedef uint8_t GpsNavigationMessageType;
*/
typedef int16_t GnssNavigationMessageType;
#define GNSS_NAVIGATION_MESSAGE_TYPE_UNKNOWN 0
/** GPS L1 C/A message contained in the structure. */
#define GNSS_NAVIGATION_MESSAGE_TYPE_GPS_L1CA 0x0101
/** GPS L2-CNAV message contained in the structure. */
#define GNSS_NAVIGATION_MESSAGE_TYPE_GPS_L2CNAV 0x0102
/** GPS L5-CNAV message contained in the structure. */
#define GNSS_NAVIGATION_MESSAGE_TYPE_GPS_L5CNAV 0x0103
/** GPS CNAV-2 message contained in the structure. */
#define GNSS_NAVIGATION_MESSAGE_TYPE_GPS_CNAV2 0x0104
/** Glonass L1 CA message contained in the structure. */
#define GNSS_NAVIGATION_MESSAGE_TYPE_GLO_L1CA 0x0301
/** Beidou D1 message contained in the structure. */
#define GNSS_NAVIGATION_MESSAGE_TYPE_BDS_D1 0x0501
/** Beidou D2 message contained in the structure. */
#define GNSS_NAVIGATION_MESSAGE_TYPE_BDS_D2 0x0502
/** Galileo I/NAV message contained in the structure. */
#define GNSS_NAVIGATION_MESSAGE_TYPE_GAL_I 0x0601
/** Galileo F/NAV message contained in the structure. */
#define GNSS_NAVIGATION_MESSAGE_TYPE_GAL_F 0x0602
/**
* Status of Navigation Message
* When a message is received properly without any parity error in its navigation words, the
@ -460,9 +277,6 @@ typedef int16_t GnssNavigationMessageType;
* corrected.
*/
typedef uint16_t NavigationMessageStatus;
#define NAV_MESSAGE_STATUS_UNKNOWN 0
#define NAV_MESSAGE_STATUS_PARITY_PASSED (1<<0)
#define NAV_MESSAGE_STATUS_PARITY_REBUILT (1<<1)
/* This constant is deprecated, and will be removed in the next release. */
#define NAV_MESSAGE_STATUS_UNKONW 0
@ -471,22 +285,11 @@ typedef uint16_t NavigationMessageStatus;
* Flags that indicate information about the satellite
*/
typedef uint8_t GnssSvFlags;
#define GNSS_SV_FLAGS_NONE 0
#define GNSS_SV_FLAGS_HAS_EPHEMERIS_DATA (1 << 0)
#define GNSS_SV_FLAGS_HAS_ALMANAC_DATA (1 << 1)
#define GNSS_SV_FLAGS_USED_IN_FIX (1 << 2)
/**
* Constellation type of GnssSvInfo
*/
typedef uint8_t GnssConstellationType;
#define GNSS_CONSTELLATION_UNKNOWN 0
#define GNSS_CONSTELLATION_GPS 1
#define GNSS_CONSTELLATION_SBAS 2
#define GNSS_CONSTELLATION_GLONASS 3
#define GNSS_CONSTELLATION_QZSS 4
#define GNSS_CONSTELLATION_BEIDOU 5
#define GNSS_CONSTELLATION_GALILEO 6
/**
* Name for the GPS XTRA interface.
@ -518,6 +321,11 @@ typedef uint8_t GnssConstellationType;
*/
#define AGPS_RIL_INTERFACE "agps_ril"
/**
* The GPS chipset can use Psc for AGPS
*/
#define AGPS_USE_PSC
/**
* Name for the GPS_Geofencing interface.
*/
@ -586,8 +394,8 @@ typedef struct {
float elevation;
/** Azimuth of SV in degrees. */
float azimuth;
/** Samsung-added field */
int used;
/** Placeholder for Samsung ABI compat. */
int unknown;
} GpsSvInfo;
typedef struct {
@ -682,6 +490,9 @@ typedef struct {
* might rely in the old (wrong) behavior.
*/
uint16_t lac;
#ifdef AGPS_USE_PSC
uint16_t psc;
#endif
/** Cell id in 2G. Utran Cell id in 3G. Cell Global Id EUTRA in LTE. */
uint32_t cid;
/** Tracking Area Code in LTE. */
@ -1144,9 +955,6 @@ struct gps_device_t {
const GpsInterface* (*get_gps_interface)(struct gps_device_t* dev);
};
#define AGPS_RIL_REQUEST_SETID_IMSI (1<<0L)
#define AGPS_RIL_REQUEST_SETID_MSISDN (1<<1L)
#define AGPS_RIL_REQUEST_REFLOC_CELLID (1<<0L)
#define AGPS_RIL_REQUEST_REFLOC_MAC (1<<1L)
@ -1269,19 +1077,6 @@ typedef struct {
* subsystem knows about the Geofence.
*
*/
#define GPS_GEOFENCE_ENTERED (1<<0L)
#define GPS_GEOFENCE_EXITED (1<<1L)
#define GPS_GEOFENCE_UNCERTAIN (1<<2L)
#define GPS_GEOFENCE_UNAVAILABLE (1<<0L)
#define GPS_GEOFENCE_AVAILABLE (1<<1L)
#define GPS_GEOFENCE_OPERATION_SUCCESS 0
#define GPS_GEOFENCE_ERROR_TOO_MANY_GEOFENCES -100
#define GPS_GEOFENCE_ERROR_ID_EXISTS -101
#define GPS_GEOFENCE_ERROR_ID_UNKNOWN -102
#define GPS_GEOFENCE_ERROR_INVALID_TRANSITION -103
#define GPS_GEOFENCE_ERROR_GENERIC -149
/**
* The callback associated with the geofence.
@ -1990,10 +1785,6 @@ typedef struct {
gnss_measurement_callback gnss_measurement_callback;
} GpsMeasurementCallbacks;
#define GPS_MEASUREMENT_OPERATION_SUCCESS 0
#define GPS_MEASUREMENT_ERROR_ALREADY_INIT -100
#define GPS_MEASUREMENT_ERROR_GENERIC -101
/**
* Extended interface for GPS Measurements support.
*/
@ -2165,10 +1956,6 @@ typedef struct {
gnss_navigation_message_callback gnss_navigation_message_callback;
} GpsNavigationMessageCallbacks;
#define GPS_NAVIGATION_MESSAGE_OPERATION_SUCCESS 0
#define GPS_NAVIGATION_MESSAGE_ERROR_ALREADY_INIT -100
#define GPS_NAVIGATION_MESSAGE_ERROR_GENERIC -101
/**
* Extended interface for GPS navigation message reporting support.
*/
@ -2226,4 +2013,3 @@ typedef struct {
__END_DECLS
#endif /* ANDROID_INCLUDE_HARDWARE_GPS_H */

View file

@ -31,13 +31,17 @@
#include <stdlib.h>
#include <stdio.h>
#include "vendor_init.h"
#include <android-base/logging.h>
#include <android-base/properties.h>
#include "property_service.h"
#include "log.h"
#include "util.h"
#include "vendor_init.h"
#include "init_msm8974.h"
using android::base::GetProperty;
using android::init::property_set;
void init_target_properties()
{
property_override("ro.build.fingerprint", "samsung/viennaltexx/viennalte:5.0.2/LRX22G/P905XXUABPE2:user/release-keys");

20
libsecnativefeature/Android.mk Executable file
View 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)

View 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

View 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;
}

View 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

View 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;
}

View 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

View 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"

View 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

View 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

View 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
View 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))

View file

@ -1,9 +1,9 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := ril_shim.c
LOCAL_SHARED_LIBRARIES := liblog libcutils libbinder libutils
LOCAL_MODULE := libril_shim
LOCAL_SRC_FILES := camera_shim.c
LOCAL_MODULE := libshim_camera
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_PROPRIETARY_MODULE := true
include $(BUILD_SHARED_LIBRARY)

View 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";

View file

@ -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)

60
manifest.xml Executable file
View 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>

View file

@ -208,12 +208,12 @@
</integer-array>
<!-- Vibrator pattern for feedback about booting with safe mode disabled -->
<integer-array name="config_safeModeDisabledVibePattern">
<!-- <integer-array name="config_safeModeDisabledVibePattern">
<item>0</item>
<item>1</item>
<item>20</item>
<item>21</item>
</integer-array>
</integer-array> -->
<!-- Vibrator pattern for feedback about booting with safe mode disabled -->
<integer-array name="config_safeModeEnabledVibePattern">
@ -241,7 +241,7 @@
<bool name="config_enableLockScreenRotation">false</bool>
<!-- 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.
This integer should equal the sum of the corresponding value for each
@ -255,7 +255,7 @@
64 - Volume rocker
For example, a device with Home, Back and Menu keys would set this
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.
This integer should equal the sum of the corresponding value for each
@ -269,7 +269,7 @@
64 - Volume rocker
For example, a device with Home, Back and Menu keys would set this
config to 7. -->
<integer name="config_deviceHardwareWakeKeys">65</integer>
<!-- <integer name="config_deviceHardwareWakeKeys">65</integer> -->
<bool name="config_enableWifiDisplay">true</bool>
@ -302,7 +302,7 @@
<!-- Certain sensor firmwares break with having a batch
size set. By setting this to false, devices can opt
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
android.view.ViewConfiguration#hasPermanentMenuKey().
@ -313,7 +313,7 @@
<integer name="config_overrideHasPermanentMenuKey">2</integer>
<!-- Enable blur support -->
<bool name="config_uiBlurEnabled">true</bool>
<!-- <bool name="config_uiBlurEnabled">true</bool> -->
<!-- Values for GPS configuration -->
<string-array translatable="false" name="config_gpsParameters">

View file

@ -17,6 +17,7 @@
*/
-->
<resources>
<bool name="def_bluetooth_on">false</bool>
<bool name="def_accelerometer_rotation">true</bool>
<bool name="def_screen_brightness_automatic_mode">true</bool>
</resources>

View file

@ -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...");
}

View file

@ -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
View 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

View file

@ -1,12 +1,11 @@
# Android fstab file.
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
# The filesystem that contains the filesystem e2fsck binary (typically /system) cannot
# specify 'check', and must come before any filesystems that do specify 'check'
#TODO: Add 'check' as fs_mgr_flags with data partition.
# Currently we dont have e2fsck compiled. So fs check would failed.
# NOTE: /system partition is now early-mounted and the fstab entry is specified in device tree:
# /proc/device-tree/firmware/android/fstab/system
#<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

View file

@ -1,4 +1,5 @@
# 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
# modification, are permitted provided that the following conditions are met:
@ -29,7 +30,7 @@ import init.qcom.usb.rc
import init.target.rc
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
chmod 0755 /sys/kernel/debug
@ -48,7 +49,6 @@ on early-init
symlink /data/tombstones /tombstones
on init
# Support legacy paths
symlink /sdcard /storage/sdcard0
@ -56,7 +56,6 @@ on init
on fs
mount_all fstab.qcom
write /proc/sys/vm/swappiness 100
swapon_all fstab.qcom
restorecon_recursive /efs
@ -294,6 +293,8 @@ on boot
mkdir /dev/socket/qmux_gps 0770 gps gps
chmod 2770 /dev/socket/qmux_gps
mkdir /persist/bluetooth 0770 bluetooth bluetooth
# Allow QMUX daemon to assign port open wait time
chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
@ -801,13 +802,13 @@ on boot
# permissions for bluetooth.
setprop ro.bt.bdaddr_path "/efs/bluetooth/bt_addr"
chown bluetooth net_bt_stack ro.bt.bdaddr_path
chown radio net_bt_stack /efs/bluetooth/bt_addr
chown bluetooth bluetooth ro.bt.bdaddr_path
chown radio bluetooth /efs/bluetooth/bt_addr
chmod 0640 /efs/bluetooth/bt_addr
restorecon_recursive /efs/bluetooth
chmod 0660 /sys/class/rfkill/rfkill0/state
chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state
chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
# DualWave
chown system system /sys/kernel/DualWave/sound/DUALWAVE_CONFIG
@ -815,8 +816,8 @@ on boot
# bluetooth LPM
chmod 0660 /proc/bluetooth/sleep/lpm
chmod 0220 /proc/bluetooth/sleep/btwrite
chown bluetooth net_bt_stack /proc/bluetooth/sleep/lpm
chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite
chown bluetooth bluetooth /proc/bluetooth/sleep/lpm
chown bluetooth bluetooth /proc/bluetooth/sleep/btwrite
# Sensors
chown system system /efs/prox_cal
@ -831,9 +832,12 @@ on boot
chmod 0640 /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
service adsprpcd /system/bin/adsprpcd
service adsprpcd /vendor/bin/adsprpcd
class main
user media
group media
@ -841,20 +845,20 @@ service adsprpcd /system/bin/adsprpcd
service qcamerasvr /system/bin/mm-qcamera-daemon
class main
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
user root
group root
service mpdecision /system/bin/mpdecision --avg_comp
service mpdecision /vendor/bin/mpdecision --avg_comp
class main
user root
group root readproc
disabled
service thermal-engine /system/vendor/bin/thermal-engine
service thermal-engine /vendor/bin/thermal-engine
class main
user root
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
group root
service time_daemon /system/bin/time_daemon
service time_daemon /vendor/bin/time_daemon
class late_start
user root
group root
@ -872,72 +876,43 @@ service audiod /system/bin/audiod
user 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
user root
oneshot
service rfs_access /system/bin/rfs_access
service rfs_access /vendor/bin/rfs_access
class core
user system
group system net_raw
service rmt_storage /system/bin/rmt_storage
service rmt_storage /vendor/bin/rmt_storage
class core
user root
group system wakelock
service qmuxd /system/bin/qmuxd
service qmuxd /vendor/bin/qmuxd
class core
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 \
-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 \
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 -N \
-ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
-I/system/etc/wifi/p2p_supplicant_overlay.conf \
-O/data/misc/wifi/sockets -puse_p2p_group_interface=1 \
-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
-puse_p2p_group_interface=1 -e/data/misc/wifi/entropy.bin \
-g@android:wpa_wlan0
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
group system wakelock
oneshot
service macloader /system/bin/macloader
service macloader /vendor/bin/macloader
class late_start
oneshot
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
start macloader
@ -977,6 +952,9 @@ on property:sys.boot_completed=1
# Configure the CPU governor
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/go_hispeed_load 99
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/sampling_down_factor 100000
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/cpu2/online

View file

@ -26,7 +26,7 @@
#
# 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/kgsl 0666 system system
@ -44,6 +44,7 @@
#permissions for CSVT
/dev/smd11 0660 radio radio
/dev/radio0 0640 system system
/dev/rfcomm0 0660 bluetooth bluetooth
/dev/smdcntl0 0640 radio radio
/dev/smdcntl1 0640 radio radio
@ -134,8 +135,9 @@
/dev/msm_preproc_ctl 0660 system audio
/dev/msm_rtac 0660 system audio
/dev/msm_voicememo 0660 system audio
/dev/smd3 0660 bluetooth net_bt_stack
/dev/smd2 0660 bluetooth net_bt_stack
/dev/radio0 0640 fm_radio fm_radio
/dev/smd3 0660 bluetooth bluetooth
/dev/smd2 0660 bluetooth bluetooth
/dev/ttyHSL1 0660 system system
/dev/mdm 0660 system radio
/sys/devices/virtual/smdpkt/smdcntl* open_timeout 0664 radio radio
@ -149,7 +151,7 @@
/dev/ttyHS3 0660 media audio
# Bluetooth
/dev/ttyHS0 0660 bluetooth net_bt_stack
/dev/ttyHS0 0660 bluetooth bluetooth
/dev/ttyHS2 0660 bluetooth bluetooth
# bluetooth LPM

View file

@ -19,9 +19,19 @@
# EFS
/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
/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
/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

14
sepolicy/fingerprintd.te Executable file
View 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
View 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;

View file

@ -25,6 +25,7 @@ ro.hdcp2.rx=tz
ro.qualcomm.cabl=1
ro.secwvk=144
ro.sf.lcd_density=320
debug.hwui.use_buffer_age=false
# GPS
persist.gps.qc_nlp_in_use=0
@ -35,6 +36,7 @@ ro.qc.sdk.izat.service_mask=0x0
# Media
media.stagefright.legacyencoder=true
media.stagefright.less-secure=true
persist.media.treble_omx=false
# Perf
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.lte_vrat_report=1
ro.telephony.mms_data_profile=5
ro.telephony.ril_class=NoteProRIL
rild.libargs=-d /dev/smd0
rild.libpath=/system/lib/libsec-ril.so
@ -58,7 +59,7 @@ ro.telephony.call_ring.multiple=0
debug.sensors=1
# Storage
ro.sys.sdcardfs=true
ro.sys.sdcardfs=false
# Tethering
net.tethering.noprovisioning=true