Initial common device tree

This commit is contained in:
Astrako 2019-11-17 18:53:04 +01:00
commit 765503ce5e
71 changed files with 22665 additions and 0 deletions

24
Android.mk Normal file
View file

@ -0,0 +1,24 @@
#
# Copyright (C) 2019 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.
#
LOCAL_PATH := $(call my-dir)
ifneq ($(filter a3y17lte j5y17lte j7y17lte a6lte j6lte, $(TARGET_DEVICE)),)
include $(call all-makefiles-under,$(LOCAL_PATH))
include $(CLEAR_VARS)
endif

188
BoardConfigCommon.mk Normal file
View file

@ -0,0 +1,188 @@
#
# Copyright (C) 2019 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.
#
LOCAL_PATH := device/samsung/universal7870-common
# Include path
TARGET_SPECIFIC_HEADER_PATH := $(LOCAL_PATH)/include
# Firmware
TARGET_NO_BOOTLOADER := true
TARGET_NO_RADIOIMAGE := true
# Platform
BOARD_VENDOR := samsung
TARGET_BOOTLOADER_BOARD_NAME := universal7870
TARGET_BOARD_PLATFORM := exynos5
TARGET_SOC := exynos7870
# Architecture
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := cortex-a53
TARGET_CPU_VARIANT_RUNTIME := cortex-a53
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv8-a
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := cortex-a53
TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a53
# Binder
TARGET_BOARD_SUFFIX := _64
TARGET_USES_64_BIT_BINDER := true
BUILD_BROKEN_DUP_RULES := true
BUILD_BROKEN_PHONY_TARGETS := true
# Extracted with libbootimg
BOARD_CUSTOM_BOOTIMG := true
BOARD_CUSTOM_BOOTIMG_MK := hardware/samsung/mkbootimg.mk
BOARD_MKBOOTIMG_ARGS := --kernel_offset 0x00008000 --ramdisk_offset 0x01000000 --tags_offset 0x00000100
BOARD_KERNEL_BASE := 0x10000000
BOARD_KERNEL_PAGESIZE := 2048
BOARD_KERNEL_IMAGE_NAME := Image
BOARD_KERNEL_SEPARATED_DT := true
TARGET_CUSTOM_DTBTOOL := dtbhtoolExynos
# Kernel
TARGET_KERNEL_ARCH := arm64
TARGET_KERNEL_HEADER_ARCH := arm64
TARGET_LINUX_KERNEL_VERSION := 3.18
# Kernel config
TARGET_KERNEL_SOURCE := kernel/samsung/exynos7870
# HIDL
DEVICE_MANIFEST_FILE := $(LOCAL_PATH)/manifest.xml
DEVICE_MATRIX_FILE := $(LOCAL_PATH)/compatibility_matrix.xml
# Use these flags if the board has a ext4 partition larger than 2gb
BOARD_HAS_LARGE_FILESYSTEM := true
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
TARGET_FS_CONFIG_GEN := $(LOCAL_PATH)/config.fs
# Partitions
BOARD_BOOTIMAGE_PARTITION_SIZE := 33554432
BOARD_CACHEIMAGE_PARTITION_SIZE := 209715200
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 39845888
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2871279104
BOARD_USERDATAIMAGE_PARTITION_SIZE := 54618209280
BOARD_VENDORIMAGE_PARTITION_SIZE := 434596224
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_FLASH_BLOCK_SIZE := 4096
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
BOARD_ROOT_EXTRA_FOLDERS := efs cpefs
# Vendor separation
TARGET_COPY_OUT_VENDOR := vendor
# Audio
USE_XML_AUDIO_POLICY_CONF := 1
AUDIOSERVER_MULTILIB := 32
# Backlight
BACKLIGHT_PATH := "/sys/class/backlight/panel/brightness"
# Camera
BOARD_USE_SAMSUNG_CAMERAFORMAT_NV21 := true
TARGET_USES_MEDIA_EXTENSIONS := true
USE_DEVICE_SPECIFIC_CAMERA := true
BOARD_BACK_CAMERA_SENSOR := 0
BOARD_FRONT_CAMERA_SENSOR := 1
# Crypto
TARGET_HW_DISK_ENCRYPTION := true
# Device Tree
BOARD_USES_DT := true
# Dexpreopt
ifeq ($(HOST_OS),linux)
ifneq ($(TARGET_BUILD_VARIANT),eng)
ifeq ($(WITH_DEXPREOPT),)
WITH_DEXPREOPT := true
WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false
endif
endif
endif
# HWComposer
BOARD_HDMI_INCAPABLE := true
BOARD_USES_DECON_64BIT_ADDRESS := true
BOARD_USES_EXYNOS5_COMMON_GRALLOC := true
BOARD_USES_HWC_SERVICES := true
BOARD_USES_VPP := true
MAX_EGL_CACHE_KEY_SIZE := 12*1024
MAX_EGL_CACHE_SIZE := 2048*1024
MAX_VIRTUAL_DISPLAY_DIMENSION := 2048
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS := 0x2000
TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS := true
TARGET_USES_GRALLOC1 := true
TARGET_USES_HWC2 := true
TARGET_USES_ION := true
TARGET_USES_NEW_ION_API :=true
TARGET_USES_OVERLAY := true
USE_OPENGL_RENDERER := true
# HALs
TARGET_AUDIOHAL_VARIANT := samsung
TARGET_POWERHAL_VARIANT := samsung
# Libhwui
HWUI_COMPILE_FOR_PERF := true
# Recovery
BOARD_HAS_DOWNLOAD_MODE := true
TARGET_RECOVERY_FSTAB := $(LOCAL_PATH)/rootdir/etc/fstab.recovery
# Renderscript
OVERRIDE_RS_DRIVER := libRSDriverArm.so
# RIL
BOARD_VENDOR := samsung
BOARD_MODEM_TYPE := tss310
BOARD_PROVIDES_LIBRIL := true
ENABLE_VENDOR_RIL_SERVICE := true
# Security patch level
VENDOR_SECURITY_PATCH := 2019-10-05
# Seccomp
BOARD_SECCOMP_POLICY := $(LOCAL_PATH)/seccomp
# SELinux
BOARD_SEPOLICY_DIRS := $(LOCAL_PATH)/sepolicy_minimal
SELINUX_IGNORE_NEVERALLOWS := true
# Treble
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
PRODUCT_FULL_TREBLE_OVERRIDE := true
PRODUCT_VENDOR_MOVE_ENABLED := true
BOARD_VNDK_VERSION := current
# Shims
TARGET_LD_SHIM_LIBS += \
/vendor/lib/libexynoscamera.so|/vendor/lib/libexynoscamera_shim.so
# Wifi
BOARD_HAVE_SAMSUNG_WIFI := true

58
compatibility_matrix.xml Normal file
View file

@ -0,0 +1,58 @@
<compatibility-matrix version="1.0" type="device">
<hal format="hidl" optional="false">
<name>android.frameworks.schedulerservice</name>
<version>1.0</version>
<interface>
<name>ISchedulingPolicyService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.frameworks.sensorservice</name>
<version>1.0</version>
<interface>
<name>ISensorManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.allocator</name>
<version>1.0</version>
<interface>
<name>IAllocator</name>
<instance>ashmem</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.manager</name>
<version>1.1</version>
<interface>
<name>IServiceManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.memory</name>
<version>1.0</version>
<interface>
<name>IMapper</name>
<instance>ashmem</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.token</name>
<version>1.0</version>
<interface>
<name>ITokenManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.system.wifi.keystore</name>
<version>1.0</version>
<interface>
<name>IKeystore</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

11
config.fs Normal file
View file

@ -0,0 +1,11 @@
[cpefs/]
mode: 0771
user: AID_SYSTEM
group: AID_RADIO
caps: 0
[efs/]
mode: 0771
user: AID_SYSTEM
group: AID_RADIO
caps: 0

25
configs/audio/audio_effects.xml Executable file
View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<audio_effects_conf version="2.0" xmlns="http://schemas.android.com/audio/audio_effects_conf/v2_0">
<libraries>
<library name="bundle" path="libbundlewrapper.so"/>
<library name="reverb" path="libreverbwrapper.so"/>
<library name="visualizer" path="libvisualizer.so"/>
<library name="downmix" path="libdownmix.so"/>
<library name="loudness_enhancer" path="libldnhncr.so"/>
<library name="dynamics_processing" path="libdynproc.so"/>
</libraries>
<effects>
<effect name="bassboost" library="bundle" uuid="8631f300-72e2-11df-b57e-0002a5d5c51b"/>
<effect name="virtualizer" library="bundle" uuid="1d4033c0-8557-11df-9f2d-0002a5d5c51b"/>
<effect name="equalizer" library="bundle" uuid="ce772f20-847d-11df-bb17-0002a5d5c51b"/>
<effect name="volume" library="bundle" uuid="119341a0-8469-11df-81f9-0002a5d5c51b"/>
<effect name="reverb_env_aux" library="reverb" uuid="4a387fc0-8ab3-11df-8bad-0002a5d5c51b"/>
<effect name="reverb_env_ins" library="reverb" uuid="c7a511a0-a3bb-11df-860e-0002a5d5c51b"/>
<effect name="reverb_pre_aux" library="reverb" uuid="f29a1400-a3bb-11df-8ddc-0002a5d5c51b"/>
<effect name="reverb_pre_ins" library="reverb" uuid="172cdf00-a3bc-11df-a72f-0002a5d5c51b"/>
<effect name="visualizer" library="visualizer" uuid="d069d9e0-8329-11df-9168-0002a5d5c51b"/>
<effect name="downmix" library="downmix" uuid="93f04452-e4fe-41cc-91f9-e475b6d1d69f"/>
<effect name="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/>
<effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
</effects>
</audio_effects_conf>

122
configs/audio/audio_policy.conf Executable file
View file

@ -0,0 +1,122 @@
global_configuration {
attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE
default_output_device AUDIO_DEVICE_OUT_SPEAKER
attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_REMOTE_SUBMIX|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_PLAYBACK
}
audio_hw_modules {
primary {
outputs {
primary {
sampling_rates 48000
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_PCM_24_BIT
devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO
flags AUDIO_OUTPUT_FLAG_PRIMARY
}
deep_buffer {
sampling_rates 48000
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO
flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
}
}
inputs {
primary {
sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_VOICE_UPLINK|AUDIO_CHANNEL_IN_VOICE_DNLINK
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_FM
}
}
}
a2dp {
outputs {
a2dp {
sampling_rates 44100
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_ALL_A2DP
}
}
inputs {
a2dp {
sampling_rates 44100|48000
channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_BLUETOOTH_A2DP
}
}
}
usb {
outputs {
usb_accessory {
sampling_rates 44100
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_USB_ACCESSORY
}
usb_device {
sampling_rates 44100|48000
channel_masks dynamic
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_USB_DEVICE|AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET
}
}
inputs {
usb_device {
sampling_rates dynamic
channel_masks AUDIO_CHANNEL_IN_STEREO
formats dynamic
devices AUDIO_DEVICE_IN_USB_DEVICE
}
}
}
tms {
outputs {
tms {
sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_EXTERNAL_TMS
}
}
inputs {
tms {
sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_EXTERNAL_TMS
}
}
}
r_submix {
outputs {
submix {
sampling_rates 48000|44100
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX
}
}
inputs {
submix {
sampling_rates 48000|44100
channel_masks AUDIO_CHANNEL_IN_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
}
}
}
playback_record {
inputs {
playback_record {
sampling_rates 48000
channel_masks AUDIO_CHANNEL_IN_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_PLAYBACK
}
}
}
}

View file

@ -0,0 +1,148 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- add for Samsung LSI model -->
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<globalConfiguration speaker_drc_enabled="false"/>
<modules>
<module name="primary" halVersion="3.0">
<attachedDevices>
<item>Earpiece</item>
<item>Speaker</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
<item>Voice Call Mic</item>
</attachedDevices>
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<!-- Playback(Output) Streams -->
<mixPort name="primary-out" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="fast" role="source" flags="AUDIO_OUTPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="hdmi" role="source" flags="AUDIO_OUTPUT_FLAG_MULTI_CH">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_5POINT1"/>
</mixPort>
<!-- Capture(Input) Streams -->
<mixPort name="primary-in" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_VOICE_UPLINK,AUDIO_CHANNEL_IN_VOICE_DNLINK"/>
</mixPort>
</mixPorts>
<devicePorts>
<!-- output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" role="sink" type="AUDIO_DEVICE_OUT_EARPIECE">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headset" role="sink" type="AUDIO_DEVICE_OUT_WIRED_HEADSET">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headphone" role="sink" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Bt Sco All" role="sink" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Aux Device Out" role="sink" type="AUDIO_DEVICE_OUT_AUX_DIGITAL">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
</devicePort>
<!-- input devices declaration, i.e. source DEVICE PORT -->
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_VOICE_UPLINK,AUDIO_CHANNEL_IN_VOICE_DNLINK"/>
</devicePort>
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_VOICE_UPLINK,AUDIO_CHANNEL_IN_VOICE_DNLINK"/>
</devicePort>
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_VOICE_UPLINK,AUDIO_CHANNEL_IN_VOICE_DNLINK"/>
</devicePort>
<devicePort tagName="Bt Sco Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_VOICE_UPLINK,AUDIO_CHANNEL_IN_VOICE_DNLINK"/>
</devicePort>
<devicePort tagName="Aux Device In" type="AUDIO_DEVICE_IN_AUX_DIGITAL" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_VOICE_UPLINK,AUDIO_CHANNEL_IN_VOICE_DNLINK"/>
</devicePort>
<devicePort tagName="Voice Call Mic" type="AUDIO_DEVICE_IN_VOICE_CALL" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_VOICE_UPLINK,AUDIO_CHANNEL_IN_VOICE_DNLINK"/>
</devicePort>
<devicePort tagName="FM Mic" type="AUDIO_DEVICE_IN_FM_TUNER" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_VOICE_UPLINK,AUDIO_CHANNEL_IN_VOICE_DNLINK"/>
</devicePort>
</devicePorts>
<routes>
<route sink="Earpiece" type="mix"
sources="primary-out,fast"/>
<route sink="Speaker" type="mix"
sources="primary-out,fast"/>
<route sink="Wired Headset" type="mix"
sources="primary-out,fast"/>
<route sink="Wired Headphone" type="mix"
sources="primary-out,fast"/>
<route sink="Bt Sco All" type="mix"
sources="primary-out,fast"/>
<route sink="Aux Device Out" type="mix"
sources="hdmi"/>
<route sink="primary-in" type="mix"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,Bt Sco Headset Mic,Aux Device In,Voice Call Mic,FM Mic"/>
</routes>
</module>
<!-- A2dp Audio HAL -->
<xi:include href="a2dp_audio_policy_configuration.xml"/>
<!-- Usb Audio HAL -->
<xi:include href="usb_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="r_submix_audio_policy_configuration.xml"/>
</modules>
<!-- Volume section -->
<xi:include href="audio_policy_volumes.xml"/>
<xi:include href="default_volume_tables.xml"/>
</audioPolicyConfiguration>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,58 @@
<ExternalCamera>
<Provider>
<!-- Internal video devices to be ignored by external camera HAL -->
<ignore>
<id>6</id>
<id>7</id>
<id>8</id>
<id>9</id>
<id>12</id>
<id>50</id>
<id>101</id>
<id>102</id>
<id>103</id>
<id>104</id>
<id>109</id>
<id>110</id>
<id>111</id>
<id>112</id>
<id>120</id>
<id>121</id>
<id>122</id>
<id>130</id>
<id>131</id>
<id>132</id>
<id>140</id>
<id>141</id>
<id>142</id>
<id>160</id>
<id>161</id>
<id>170</id>
<id>171</id>
<id>172</id>
<id>173</id>
<id>174</id>
<id>180</id>
<id>190</id>
<id>191</id>
<id>192</id>
<id>193</id>
<id>210</id>
<id>211</id>
<id>212</id>
<id>213</id>
<id>214</id>
<id>215</id>
<id>216</id>
<id>217</id>
<id>218</id>
<id>219</id>
<id>220</id>
<id>221</id>
<id>222</id>
<id>223</id>
<id>224</id>
<id>225</id>
</ignore>
</Provider>
</ExternalCamera>

19
configs/idc/AVRCP.idc Normal file
View file

@ -0,0 +1,19 @@
# Copyright (C) 2015 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# AVRCP
#
device.internal = 1

28
configs/idc/qwerty.idc Normal file
View file

@ -0,0 +1,28 @@
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Emulator keyboard configuration file #1.
#
touch.deviceType = touchScreen
touch.orientationAware = 1
keyboard.layout = qwerty
keyboard.characterMap = qwerty
keyboard.orientationAware = 1
keyboard.builtIn = 1
cursor.mode = navigation
cursor.orientationAware = 1

28
configs/idc/qwerty2.idc Normal file
View file

@ -0,0 +1,28 @@
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Emulator keyboard configuration file #2.
#
touch.deviceType = touchScreen
touch.orientationAware = 1
keyboard.layout = qwerty
keyboard.characterMap = qwerty2
keyboard.orientationAware = 1
keyboard.builtIn = 1
cursor.mode = navigation
cursor.orientationAware = 1

View file

@ -0,0 +1,30 @@
# Copyright (c) 2013, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
key 114 VOLUME_DOWN
key 115 VOLUME_UP
key 116 POWER
key 172 HOME

View file

@ -0,0 +1,19 @@
#
# 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.
#
key 158 BACK
key 172 HOME
key 254 APP_SWITCH

View file

@ -0,0 +1,18 @@
#
# 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.
#
key 158 BACK
key 254 APP_SWITCH

View file

@ -0,0 +1,223 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (C) 2012 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
<!DOCTYPE MediaCodecs [
<!ELEMENT Include EMPTY>
<!ATTLIST Include href CDATA #REQUIRED>
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
<!ELEMENT Decoders (MediaCodec|Include)*>
<!ELEMENT Encoders (MediaCodec|Include)*>
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
<!ATTLIST MediaCodec name CDATA #REQUIRED>
<!ATTLIST MediaCodec type CDATA>
<!ELEMENT Type EMPTY>
<!ATTLIST Type name CDATA #REQUIRED>
<!ELEMENT Quirk EMPTY>
<!ATTLIST Quirk name CDATA #REQUIRED>
]>
There's a simple and a complex syntax to declare the availability of a
media codec:
A codec that properly follows the OpenMax spec and therefore doesn't have any
quirks and that only supports a single content type can be declared like so:
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
If a codec has quirks OR supports multiple content types, the following syntax
can be used:
<MediaCodec name="OMX.foo.bar" >
<Type name="something/interesting" />
<Type name="something/else" />
...
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="output-buffers-are-unreadable" />
</MediaCodec>
Only the three quirks included above are recognized at this point:
"requires-allocate-on-input-ports"
must be advertised if the component does not properly support specification
of input buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"requires-allocate-on-output-ports"
must be advertised if the component does not properly support specification
of output buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"output-buffers-are-unreadable"
must be advertised if the emitted output buffers of a decoder component
are not readable, i.e. use a custom format even though abusing one of
the official OMX colorspace constants.
Clients of such decoders will not be able to access the decoded data,
naturally making the component much less useful. The only use for
a component with this quirk is to render the output to the screen.
Audio decoders MUST NOT advertise this quirk.
Video decoders that advertise this quirk must be accompanied by a
corresponding color space converter for thumbnail extraction,
matching surfaceflinger support that can render the custom format to
a texture and possibly other code, so just DON'T USE THIS QUIRK.
-->
<MediaCodecs>
<Settings>
<Setting name="supports-multiple-secure-codecs" value="true" />
<Setting name="supports-secure-with-non-secure-codec" value="true" />
<Setting name="max-video-encoder-input-buffers" value="9" />
</Settings>
<Decoders>
<MediaCodec name="OMX.Exynos.mpeg4.dec" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.h263.dec" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="720x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.avc.dec" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1440" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.avc.dec.secure" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="concurrent-instances" max="2" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.vp8.dec" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.hevc.dec" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-50000000" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.vc1.dec" >
<Type name="video/wvc1" />
<Type name="video/x-ms-wmv" />
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="concurrent-instances" max="16"/>
<Feature name="adaptive-playback" />
</MediaCodec>
</Decoders>
<Encoders>
<MediaCodec name="OMX.Exynos.AVC.Encoder" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="486000" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.H263.Encoder" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1088" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="486000" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.MPEG4.Encoder" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="486000" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.VP8.Encoder" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="486000" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.HEVC.Encoder" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="64x64" />
<Limit name="blocks-per-second" min="1" max="30375" />
<Limit name="bitrate" range="1-50000000" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
</Encoders>
<Include href="media_codecs_google_video_le.xml" />
<Include href="media_codecs_google_audio.xml" />
<Include href="media_codecs_google_telephony.xml" />
</MediaCodecs>

View file

@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<MediaCodecs>
<Encoders>
<MediaCodec name="OMX.Exynos.AVC.Encoder" type="video/avc" update="true" >
<Limit name="measured-frame-rate-320x240" range="180-250" />
<Limit name="measured-frame-rate-720x480" range="120-140" />
<Limit name="measured-frame-rate-1280x720" range="40-60" />
<Limit name="measured-frame-rate-1920x1080" range="20-50" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.H263.Encoder" type="video/3gpp" update="true" >
<Limit name="measured-frame-rate-176x144" range="200-400" />
<Limit name="measured-frame-rate-352x288" range="150-220" />
<Limit name="measured-frame-rate-720x480" range="80-140" />
<Limit name="measured-frame-rate-1280x720" range="40-90" />
<Limit name="measured-frame-rate-1920x1080" range="10-30" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.HEVC.Encoder" type="video/hevc" update="true" >
<Limit name="measured-frame-rate-320x240" range="180-250" />
<Limit name="measured-frame-rate-720x480" range="120-140" />
<Limit name="measured-frame-rate-1280x720" range="40-60" />
<Limit name="measured-frame-rate-1920x1080" range="20-50" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.VP8.Encoder" type="video/x-vnd.on2.vp8" update="true" >
<Limit name="measured-frame-rate-320x240" range="180-250" />
<Limit name="measured-frame-rate-720x480" range="120-140" />
<Limit name="measured-frame-rate-1280x720" range="40-60" />
<Limit name="measured-frame-rate-1920x1080" range="20-50" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.MPEG4.Encoder" type="video/mp4v-es" update="true" >
<Limit name="measured-frame-rate-320x240" range="180-250" />
<Limit name="measured-frame-rate-720x480" range="120-140" />
<Limit name="measured-frame-rate-1280x720" range="40-60" />
<Limit name="measured-frame-rate-1920x1080" range="20-50" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="180-210" />
<Limit name="measured-frame-rate-720x480" range="50-100" />
<Limit name="measured-frame-rate-1280x720" range="20-30" />
<Limit name="measured-frame-rate-1920x1080" range="10-20" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="350-420" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="50-210" />
<Limit name="measured-frame-rate-640x360" range="50-100" />
<Limit name="measured-frame-rate-1280x720" range="10-20" />
<Limit name="measured-frame-rate-1920x1080" range="5-10" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="350-420" />
</MediaCodec>
</Encoders>
<Decoders>
<MediaCodec name="OMX.Exynos.avc.dec" type="video/avc" update="true" >
<Limit name="measured-frame-rate-320x240" range="500-1000" />
<Limit name="measured-frame-rate-720x480" range="450-900" />
<Limit name="measured-frame-rate-1280x720" range="200-400" />
<Limit name="measured-frame-rate-1920x1080" range="80-160" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.h263.dec" type="video/3gpp" update="true" >
<Limit name="measured-frame-rate-176x144" range="600-1200" />
<Limit name="measured-frame-rate-352x288" range="500-1000" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.hevc.dec" type="video/hevc" update="true" >
<Limit name="measured-frame-rate-352x288" range="400-800" />
<Limit name="measured-frame-rate-640x360" range="350-700" />
<Limit name="measured-frame-rate-1280x720" range="200-400" />
<Limit name="measured-frame-rate-1920x1080" range="90-180" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.vp8.dec" type="video/x-vnd.on2.vp8" update="true" >
<Limit name="measured-frame-rate-320x180" range="600-1200" />
<Limit name="measured-frame-rate-640x360" range="450-900" />
<Limit name="measured-frame-rate-1280x720" range="200-400" />
<Limit name="measured-frame-rate-1920x1080" range="80-160" />
</MediaCodec>
<MediaCodec name="OMX.Exynos.mpeg4.dec" type="video/mp4v-es" update="true" >
<Limit name="measured-frame-rate-176x144" range="700-1400" />
<Limit name="measured-frame-rate-480x360" range="350-700" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="250-500" />
<Limit name="measured-frame-rate-720x480" range="80-160" />
<Limit name="measured-frame-rate-1280x720" range="35-70" />
<Limit name="measured-frame-rate-1920x1080" range="15-30" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="150-300" />
<Limit name="measured-frame-rate-352x288" range="150-300" />
</MediaCodec>
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="300-600" />
<Limit name="measured-frame-rate-640x360" range="150-300" />
<Limit name="measured-frame-rate-1280x720" range="65-130" />
<Limit name="measured-frame-rate-1920x1080" range="35-70" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="350-700" />
<Limit name="measured-frame-rate-640x360" range="110-220" />
<Limit name="measured-frame-rate-1280x720" range="25-50" />
<Limit name="measured-frame-rate-1920x1080" range="10-20" />
</MediaCodec>
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="250-500" />
<Limit name="measured-frame-rate-640x360" range="100-200" />
<Limit name="measured-frame-rate-1280x720" range="50-100" />
<Limit name="measured-frame-rate-1920x1080" range="30-60" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.decoder" update="true">
<Type name="video/mp4v-es">
<Limit name="measured-frame-rate-176x144" range="200-400" />
</Type>
</MediaCodec>
<MediaCodec name="OMX.SEC.avc.sw.dec" type="video/avc" update="true" >
<Limit name="measured-frame-rate-320x240" range="200-400" />
<Limit name="measured-frame-rate-720x480" range="70-140" />
<Limit name="measured-frame-rate-1280x720" range="25-50" />
<Limit name="measured-frame-rate-1920x1080" range="11-22" />
</MediaCodec>
<MediaCodec name="OMX.SEC.h263.sw.dec" type="video/3gpp" update="true" >
<Limit name="measured-frame-rate-176x144" range="700-1400" />
<Limit name="measured-frame-rate-352x288" range="600-1200" />
</MediaCodec>
<MediaCodec name="OMX.SEC.hevc.sw.dec" type="video/hevc" update="true" >
<Limit name="measured-frame-rate-352x288" range="200-400" />
<Limit name="measured-frame-rate-640x360" range="100-200" />
<Limit name="measured-frame-rate-1280x720" range="35-70" />
<Limit name="measured-frame-rate-1920x1080" range="20-40" />
</MediaCodec>
<MediaCodec name="OMX.SEC.vp8.dec" type="video/x-vnd.on2.vp8" update="true" >
<Limit name="measured-frame-rate-320x180" range="350-700" />
<Limit name="measured-frame-rate-640x360" range="100-200" />
<Limit name="measured-frame-rate-1280x720" range="25-50" />
<Limit name="measured-frame-rate-1920x1080" range="9-18" />
</MediaCodec>
<MediaCodec name="OMX.SEC.mpeg4.sw.dec" type="video/mp4v-es" update="true" >
<Limit name="measured-frame-rate-176x144" range="500-1000" />
<Limit name="measured-frame-rate-480x360" range="500-1000" />
</MediaCodec>
</Decoders>
</MediaCodecs>

View file

@ -0,0 +1,637 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE MediaSettings [
<!ELEMENT MediaSettings (CamcorderProfiles,
EncoderOutputFileFormat+,
VideoEncoderCap+,
AudioEncoderCap+,
VideoDecoderCap,
AudioDecoderCap)>
<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
<!ELEMENT EncoderProfile (Video, Audio)>
<!ATTLIST EncoderProfile quality (low|high|qcif|qvga|480p|720p|1080p|timelapselow|timelapsehigh|timelapseqcif|timelapseqvga|timelapse480p|timelapse720p|timelapse1080p) #REQUIRED>
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
<!ATTLIST EncoderProfile cameraId (0|1) #REQUIRED>
<!ELEMENT Video EMPTY>
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
<!ATTLIST Video bitRate CDATA #REQUIRED>
<!ATTLIST Video width CDATA #REQUIRED>
<!ATTLIST Video height CDATA #REQUIRED>
<!ATTLIST Video frameRate CDATA #REQUIRED>
<!ELEMENT Audio EMPTY>
<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
<!ATTLIST Audio bitRate CDATA #REQUIRED>
<!ATTLIST Audio sampleRate CDATA #REQUIRED>
<!ATTLIST Audio channels (1|2) #REQUIRED>
<!ELEMENT ImageEncoding EMPTY>
<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
<!ELEMENT ImageDecoding EMPTY>
<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
<!ELEMENT Camera EMPTY>
<!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
<!ELEMENT EncoderOutputFileFormat EMPTY>
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
<!ELEMENT VideoEncoderCap EMPTY>
<!ATTLIST VideoEncoderCap name (hevc|h264|h263|m4v|wmv) #REQUIRED>
<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
<!ELEMENT AudioEncoderCap EMPTY>
<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
<!ELEMENT VideoDecoderCap EMPTY>
<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
<!ELEMENT AudioDecoderCap EMPTY>
<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
<!ELEMENT VideoEditorCap EMPTY>
<!ATTLIST VideoEditorCap maxInputFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxInputFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxOutputFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxOutputFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxPrefetchYUVFrames CDATA #REQUIRED>
<!ELEMENT ExportVideoProfile EMPTY>
<!ATTLIST ExportVideoProfile name (h264|h263|m4v) #REQUIRED>
<!ATTLIST ExportVideoProfile profile CDATA #REQUIRED>
<!ATTLIST ExportVideoProfile level CDATA #REQUIRED>
]>
<!--
This file is used to declare the multimedia profiles and capabilities
on an android-powered device.
-->
<MediaSettings>
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
<!-- Back Camera -->
<CamcorderProfiles cameraId="0" startOffsetMs="700">
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="384000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="384000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="767000"
width="320"
height="240"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3449000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="384000"
width="176"
height="144"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="384000"
width="176"
height="144"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="767000"
width="320"
height="240"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3449000"
width="720"
height="480"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<!-- Front Camera -->
<CamcorderProfiles cameraId="1" startOffsetMs="700">
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="384000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="384000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="767000"
width="320"
height="240"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3449000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="384000"
width="176"
height="144"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="384000"
width="176"
height="144"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="767000"
width="320"
height="240"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3449000"
width="720"
height="480"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<EncoderOutputFileFormat name="3gp" />
<EncoderOutputFileFormat name="mp4" />
<!--
If a codec is not enabled, it is invisible to the applications
In other words, the applications won't be able to use the codec
or query the capabilities of the codec at all if it is disabled
-->
<!--
FIXME : we only check Mpeg4 encorder cap and other codec doesn't check
codec cap
-->
<VideoEncoderCap name="h264" enabled="true"
minBitRate="64000" maxBitRate="40000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="1" maxFrameRate="60" />
<VideoEncoderCap name="h263" enabled="true"
minBitRate="64000" maxBitRate="1000000"
minFrameWidth="176" maxFrameWidth="800"
minFrameHeight="144" maxFrameHeight="480"
minFrameRate="1" maxFrameRate="30" />
<VideoEncoderCap name="m4v" enabled="true"
minBitRate="64000" maxBitRate="20000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="1" maxFrameRate="30" />
<VideoEncoderCap name="hevc" enabled="true"
minBitRate="64000" maxBitRate="50000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="1" maxFrameRate="60" />
<AudioEncoderCap name="aac" enabled="true"
minBitRate="8192" maxBitRate="256000"
minSampleRate="8000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
<AudioEncoderCap name="heaac" enabled="true"
minBitRate="8000" maxBitRate="64000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="aaceld" enabled="true"
minBitRate="16000" maxBitRate="192000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="amrwb" enabled="true"
minBitRate="6600" maxBitRate="23850"
minSampleRate="16000" maxSampleRate="16000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="amrnb" enabled="true"
minBitRate="5525" maxBitRate="12200"
minSampleRate="8000" maxSampleRate="8000"
minChannels="1" maxChannels="1" />
<!--
FIXME:
We do not check decoder capabilities at present
At present, we only check whether windows media is visible
for TEST applications. For other applications, we do
not perform any checks at all.
-->
<VideoDecoderCap name="wmv" enabled="false"/>
<AudioDecoderCap name="wma" enabled="false"/>
<!--
The VideoEditor Capability configuration:
- maxInputFrameWidth: maximum video width of imported video clip.
- maxInputFrameHeight: maximum video height of imported video clip.
- maxOutputFrameWidth: maximum video width of exported video clip.
- maxOutputFrameHeight: maximum video height of exported video clip.
- maxPrefetchYUVFrames: maximum prefetch YUV frames for encoder,
used to limit the amount of memory for prefetched YUV frames.
For this platform, it allows maximum 30MB(3MB per 1080p frame x 10
frames) memory.
-->
<VideoEditorCap maxInputFrameWidth="1920"
maxInputFrameHeight="1088" maxOutputFrameWidth="1920"
maxOutputFrameHeight="1080" maxPrefetchYUVFrames="10"/>
<!--
The VideoEditor Export codec profile and level values
correspond to the values in OMX_Video.h.
E.g. for h264, profile value 1 means OMX_VIDEO_AVCProfileBaseline
and level 4096 means OMX_VIDEO_AVCLevel41.
Please note that the values are in decimal.
These values are for video encoder.
-->
<!--
Codec = h.264, Baseline profile, level 4.2
-->
<ExportVideoProfile name="h264" profile= "1" level="8192"/>
<!--
Codec = h.263, Baseline profile, level 45
-->
<ExportVideoProfile name="h263" profile= "1" level="16"/>
<!--
Codec = mpeg4, Simple profile, level 5
-->
<ExportVideoProfile name="m4v" profile= "1" level="128"/>
</MediaSettings>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2018 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<permissions>
<permission name="com.samsung.permission.SSENSOR" />
</permissions>

324
device-common.mk Normal file
View file

@ -0,0 +1,324 @@
#
# Copyright (C) 2019 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.
#
LOCAL_PATH := device/samsung/universal7870-common
# Boot animation
TARGET_BOOTANIMATION_PRELOAD := true
TARGET_BOOTANIMATION_TEXTURE_CACHE := true
TARGET_SCREEN_HEIGHT := 1920
TARGET_SCREEN_WIDTH := 1080
PRODUCT_ENFORCE_RRO_TARGETS := \
framework-res
# Permissions
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \
frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \
frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \
frameworks/native/data/etc/android.hardware.camera.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.xml \
frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \
frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \
frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \
frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml \
frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml \
frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \
frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \
frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \
frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml \
frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml \
frameworks/native/data/etc/android.hardware.telephony.cdma.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.cdma.xml \
frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml \
frameworks/native/data/etc/android.hardware.telephony.ims.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.ims.xml \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \
frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute-0.xml \
frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level-0.xml \
frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version-1_1.xml \
frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml \
frameworks/native/data/etc/android.software.print.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.print.xml \
frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml \
frameworks/native/data/etc/android.software.sip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.xml \
frameworks/native/data/etc/com.android.nfc_extras.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.nfc_extras.xml \
frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
$(LOCAL_PATH)/configs/permissions/com.samsung.permission.SSENSOR.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.samsung.permission.SSENSOR.xml
# AdvancedDisplay (MDNIE)
PRODUCT_PACKAGES += \
AdvancedDisplay
# Audio
PRODUCT_PACKAGES += \
android.hardware.audio@2.0-impl \
android.hardware.audio@2.0-service \
android.hardware.audio@5.0-impl \
android.hardware.audio.common@5.0 \
android.hardware.audio.common@5.0-util \
android.hardware.audio.effect@2.0-impl \
android.hardware.audio.effect@5.0 \
android.hardware.audio.effect@5.0-impl \
android.hardware.soundtrigger@2.1-impl \
audio.a2dp.default \
audio.usb.default \
audio.primary.universal7870_32 \
audio.r_submix.default \
libtinycompress
# Audio configuration
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/audio/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf \
$(LOCAL_PATH)/configs/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
$(LOCAL_PATH)/configs/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
$(LOCAL_PATH)/configs/audio/mixer_gains.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_gains.xml \
$(LOCAL_PATH)/configs/audio/mixer_paths_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_0.xml \
frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
# Camera
PRODUCT_PACKAGES += \
android.hardware.camera.provider@2.4-impl \
android.hardware.camera.provider@2.4-service \
libion_exynos \
Snap
# Camera configurations
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/camera/external_camera_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/external_camera_config.xml
# Cas
PRODUCT_PACKAGES += \
android.hardware.cas@1.1-service
# Configstore
PRODUCT_PACKAGES += \
android.hardware.configstore@1.1-service
# Display
PRODUCT_PACKAGES += \
android.hardware.graphics.allocator@2.0-impl \
android.hardware.graphics.allocator@2.0-service \
android.hardware.graphics.composer@2.1-impl \
android.hardware.graphics.composer@2.1-service \
android.hardware.graphics.mapper@2.0-impl \
android.hardware.memtrack@1.0-impl \
android.hardware.memtrack@1.0-service \
android.hardware.renderscript@1.0-impl \
gralloc.default \
gralloc.exynos5 \
hwcomposer.exynos5 \
memtrack.exynos5 \
libhwc2on1adapter \
libtinyxml
# DRM
PRODUCT_PACKAGES += \
android.hardware.drm@1.0 \
android.hardware.drm@1.1 \
libfwdlockengine \
libdrmclearkeyplugin \
android.hardware.drm@1.0-service \
android.hardware.drm@1.1-service.clearkey \
android.hardware.drm@1.0-impl
# Ebtables
PRODUCT_PACKAGES += \
ebtables \
ethertypes \
libebtc
# Flat device tree for boot image
PRODUCT_HOST_PACKAGES += \
dtbhtoolExynos
# Gatekeeper
PRODUCT_PACKAGES += \
android.hardware.gatekeeper@1.0-impl
# Healthd
PRODUCT_PACKAGES += \
android.hardware.health@2.0-impl \
android.hardware.health@2.0-service \
chargeonlymode
# HIDL
PRODUCT_PACKAGES += \
android.hidl.base@1.0 \
android.hidl.base@1.0_system \
android.hidl.manager@1.0 \
android.hidl.manager@1.0_system
# Keylayout
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/keylayout/gpio-keys.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/gpio-keys.kl \
$(LOCAL_PATH)/configs/keylayout/sec_touchkey.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/sec_touchkey.kl \
$(LOCAL_PATH)/configs/keylayout/sec_touchscreen.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/sec_touchscreen.kl
# Keymaster
PRODUCT_PACKAGES += \
android.hardware.keymaster@3.0-impl \
android.hardware.keymaster@3.0-service
# Lights
PRODUCT_PACKAGES += \
android.hardware.light@2.0-service.samsung
# LiveDisplay
PRODUCT_PACKAGES += \
vendor.lineage.livedisplay@2.0-service.samsung-exynos
# IPv6
PRODUCT_PACKAGES += \
ebtables \
ethertypes \
libebtc
# Media
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/media/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
$(LOCAL_PATH)/configs/media/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
$(LOCAL_PATH)/configs/media/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml
# Net
PRODUCT_PACKAGES += \
android.system.net.netd@1.0 \
libandroid_net \
netutils-wrapper-1.0
# Offmode charger
PRODUCT_PACKAGES += \
charger_res_images
# Overlays
DEVICE_PACKAGE_OVERLAYS += \
$(LOCAL_PATH)/overlay
# Power
PRODUCT_PACKAGES += \
android.hardware.power@1.0-impl \
android.hardware.power@1.0-service \
power.universal7870
# Radio
PRODUCT_PACKAGES += \
android.hardware.radio@1.4 \
android.hardware.radio.config@1.1 \
android.hardware.radio.deprecated@1.0 \
libxml2 \
libprotobuf-cpp-full \
rild \
libril \
libsecril-client \
libsecril-client-sap \
libreference-ril
# Ramdisk
PRODUCT_PACKAGES += \
fstab.samsungexynos7870 \
init.baseband.rc \
init.rilchip.rc \
init.rilcommon.rc \
init.samsung.rc \
init.samsungexynos7870.rc \
init.samsungexynos7870.usb.rc \
init.wifi.rc \
init.wifi_device.rc \
ueventd.samsungexynos7870.rc
# Samsung Doze
PRODUCT_PACKAGES += \
SamsungDoze
# Seccomp_policy
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/seccomp/mediacodec-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \
$(LOCAL_PATH)/seccomp/mediaextractor-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediaextractor.policy
# Sensors
PRODUCT_PACKAGES += \
android.hardware.sensors@1.0-impl
# TextClassifier
PRODUCT_PACKAGES += \
textclassifier.bundle1
# Touchscreen
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/idc/AVRCP.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/AVRCP.idc \
$(LOCAL_PATH)/configs/idc/qwerty.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/qwerty.idc \
$(LOCAL_PATH)/configs/idc/qwerty2.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/qwerty2.idc
# Thermal
PRODUCT_PACKAGES += \
android.hardware.thermal@1.0-impl \
android.hardware.thermal@1.0-service
# Touch features
PRODUCT_PACKAGES += \
vendor.lineage.touch@1.0-service.samsung
# Trust HAL
PRODUCT_PACKAGES += \
vendor.lineage.trust@1.0-service
# Shims
PRODUCT_PACKAGES += \
libexynoscamera_shim
# libstagefright_shim
# USB
PRODUCT_PACKAGES += \
android.hardware.usb@1.0-service.basic
# Vibrator
PRODUCT_PACKAGES += \
android.hardware.vibrator@1.0-impl \
android.hardware.vibrator@1.0-service
# Vendor security patch level
PRODUCT_PROPERTY_OVERRIDES += \
ro.build.vendor_security_patch=2019-11-01
# VNDK
PRODUCT_PACKAGES += \
libgui_vendor
# WiFi Display
PRODUCT_PACKAGES += \
libnl
# Properties
-include $(LOCAL_PATH)/vendor_prop.mk
# call the proprietary setup
$(call inherit-product, vendor/samsung/universal7870-common/universal7870-common-vendor.mk)

67
extract-files.sh Normal file
View file

@ -0,0 +1,67 @@
#!/bin/bash
#
# Copyright (C) 2017-2019 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.
#
set -e
VENDOR=samsung
DEVICE_COMMON=universal7870-common
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
LINEAGE_ROOT="${MY_DIR}"/../../..
HELPER="${AOSP_ROOT}/vendor/aosp/build/tools/extract_utils.sh"
if [ ! -f "${HELPER}" ]; then
echo "Unable to find helper script at ${HELPER}"
exit 1
fi
source "${HELPER}"
SECTION=
KANG=
while [ "${#}" -gt 0 ]; do
case "${1}" in
-n | --no-cleanup )
CLEAN_VENDOR=false
;;
-k | --kang )
KANG="--kang"
;;
-s | --section )
SECTION="${2}"; shift
CLEAN_VENDOR=false
;;
* )
SRC="${1}"
;;
esac
shift
done
if [ -z "${SRC}" ]; then
SRC="adb"
fi
# Initialize the helper
setup_vendor "${DEVICE_COMMON}" "${VENDOR}" "${AOSP_ROOT}" true "${CLEAN_VENDOR}"
extract "$MY_DIR"/proprietary-files.txt "$SRC"
"${MY_DIR}/setup-makefiles.sh"

47
hidl/Android.mk Normal file
View file

@ -0,0 +1,47 @@
#
# 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 $(CLEAR_VARS)
LOCAL_SHARED_LIBRARIES := libhidltransport
LOCAL_MODULE := android.hidl.base@1.0
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_VENDOR_MODULE := true
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_SHARED_LIBRARIES := libhidltransport
LOCAL_MODULE := android.hidl.manager@1.0
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_VENDOR_MODULE := true
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_SHARED_LIBRARIES := libhidltransport
LOCAL_MODULE := android.hidl.base@1.0_system
LOCAL_INSTALLED_MODULE_STEM := android.hidl.base@1.0.so
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_SHARED_LIBRARIES := libhidltransport
LOCAL_MODULE := android.hidl.manager@1.0_system
LOCAL_INSTALLED_MODULE_STEM := android.hidl.manager@1.0.so
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
include $(BUILD_SHARED_LIBRARY)

View file

@ -0,0 +1,157 @@
/*
* Copyright (C) 2015, 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.
*/
#ifndef CM_AUDIO_AMPLIFIER_INTERFACE_H
#define CM_AUDIO_AMPLIFIER_INTERFACE_H
#include <stdint.h>
#include <sys/cdefs.h>
#include <sys/types.h>
#include <hardware/audio.h>
#include <hardware/hardware.h>
#include <system/audio.h>
__BEGIN_DECLS
#define AMPLIFIER_HARDWARE_MODULE_ID "audio_amplifier"
#define AMPLIFIER_HARDWARE_INTERFACE "audio_amplifier_hw_if"
#define AMPLIFIER_MODULE_API_VERSION_0_1 HARDWARE_MODULE_API_VERSION(0, 1)
#define AMPLIFIER_DEVICE_API_VERSION_1_0 HARDWARE_DEVICE_API_VERSION(1, 0)
#define AMPLIFIER_DEVICE_API_VERSION_2_0 HARDWARE_DEVICE_API_VERSION(2, 0)
#define AMPLIFIER_DEVICE_API_VERSION_2_1 HARDWARE_DEVICE_API_VERSION(2, 1)
#define AMPLIFIER_DEVICE_API_VERSION_CURRENT AMPLIFIER_DEVICE_API_VERSION_2_1
struct str_parms;
typedef struct amplifier_device {
/**
* Common methods of the amplifier device. This *must* be the first member
* of amplifier_device as users of this structure will cast a hw_device_t
* to amplifier_device pointer in contexts where it's known
* the hw_device_t references a amplifier_device.
*/
struct hw_device_t common;
/**
* Notify amplifier device of current input devices
*
* This function should handle only input devices.
*/
int (*set_input_devices)(struct amplifier_device *device, uint32_t devices);
/**
* Notify amplifier device of current output devices
*
* This function should handle only output devices.
*/
int (*set_output_devices)(struct amplifier_device *device, uint32_t devices);
/**
* Notify amplifier device of output device enable/disable
*
* This function should handle only output devices.
*/
int (*enable_output_devices)(struct amplifier_device *device,
uint32_t devices, bool enable);
/**
* Notify amplifier device of input device enable/disable
*
* This function should handle only input devices.
*/
int (*enable_input_devices)(struct amplifier_device *device,
uint32_t devices, bool enable);
/**
* Notify amplifier device about current audio mode
*/
int (*set_mode)(struct amplifier_device *device, audio_mode_t mode);
/**
* Notify amplifier device that an output stream has started
*/
int (*output_stream_start)(struct amplifier_device *device,
struct audio_stream_out *stream, bool offload);
/**
* Notify amplifier device that an input stream has started
*/
int (*input_stream_start)(struct amplifier_device *device,
struct audio_stream_in *stream);
/**
* Notify amplifier device that an output stream has stopped
*/
int (*output_stream_standby)(struct amplifier_device *device,
struct audio_stream_out *stream);
/**
* Notify amplifier device that an input stream has stopped
*/
int (*input_stream_standby)(struct amplifier_device *device,
struct audio_stream_in *stream);
/**
* set/get audio device parameters.
*/
int (*set_parameters)(struct amplifier_device *device,
struct str_parms *parms);
/**
* set/get output stream parameters.
*/
int (*out_set_parameters)(struct amplifier_device *device,
struct str_parms *parms);
/**
* set/get input stream parameters.
*/
int (*in_set_parameters)(struct amplifier_device *device,
struct str_parms *parms);
} amplifier_device_t;
typedef struct amplifier_module {
/**
* Common methods of the amplifier module. This *must* be the first member
* of amplifier_module as users of this structure will cast a hw_module_t
* to amplifier_module pointer in contexts where it's known
* the hw_module_t references a amplifier_module.
*/
struct hw_module_t common;
} amplifier_module_t;
/** convenience API for opening and closing a supported device */
static inline int amplifier_device_open(const struct hw_module_t *module,
struct amplifier_device **device)
{
return module->methods->open(module, AMPLIFIER_HARDWARE_INTERFACE,
(struct hw_device_t **) device);
}
static inline int amplifier_device_close(struct amplifier_device *device)
{
return device->common.close(&device->common);
}
__END_DECLS
#endif // CM_AUDIO_AMPLIFIER_INTERFACE_H

View file

@ -0,0 +1,275 @@
// This file is autogenerated by hidl-gen. Do not edit manually.
// Source: android.hardware.gnss@1.0
// Root: android.hardware:hardware/interfaces
#ifndef HIDL_GENERATED_ANDROID_HARDWARE_GNSS_V1_0_EXPORTED_CONSTANTS_H_
#define HIDL_GENERATED_ANDROID_HARDWARE_GNSS_V1_0_EXPORTED_CONSTANTS_H_
#ifdef __cplusplus
extern "C" {
#endif
enum {
GNSS_MAX_SVS_COUNT = 64u, // 64
};
enum {
GNSS_CONSTELLATION_UNKNOWN = 0,
GNSS_CONSTELLATION_GPS = 1,
GNSS_CONSTELLATION_SBAS = 2,
GNSS_CONSTELLATION_GLONASS = 3,
GNSS_CONSTELLATION_QZSS = 4,
GNSS_CONSTELLATION_BEIDOU = 5,
GNSS_CONSTELLATION_GALILEO = 6,
};
enum {
GPS_LOCATION_HAS_LAT_LONG = 1, // 0x0001
GPS_LOCATION_HAS_ALTITUDE = 2, // 0x0002
GPS_LOCATION_HAS_SPEED = 4, // 0x0004
GPS_LOCATION_HAS_BEARING = 8, // 0x0008
GPS_LOCATION_HAS_HORIZONTAL_ACCURACY = 16, // 0x0010
GPS_LOCATION_HAS_VERTICAL_ACCURACY = 32, // 0x0020
GPS_LOCATION_HAS_SPEED_ACCURACY = 64, // 0x0040
GPS_LOCATION_HAS_BEARING_ACCURACY = 128, // 0x0080
};
enum {
APN_IP_INVALID = 0,
APN_IP_IPV4 = 1,
APN_IP_IPV6 = 2,
APN_IP_IPV4V6 = 3,
};
enum {
AGPS_TYPE_SUPL = 1,
AGPS_TYPE_C2K = 2,
};
enum {
GNSS_REQUEST_AGNSS_DATA_CONN = 1,
GNSS_RELEASE_AGNSS_DATA_CONN = 2,
GNSS_AGNSS_DATA_CONNECTED = 3,
GNSS_AGNSS_DATA_CONN_DONE = 4,
GNSS_AGNSS_DATA_CONN_FAILED = 5,
};
enum {
AGPS_SETID_TYPE_NONE = 0,
AGPS_SETID_TYPE_IMSI = 1,
AGPS_SETID_TYPE_MSISDM = 2,
};
enum {
AGPS_RIL_NETWORK_TYPE_MOBILE = 0,
AGPS_RIL_NETWORK_TYPE_WIFI = 1,
AGPS_RIL_NETWORK_TYPE_MMS = 2,
AGPS_RIL_NETWORK_TYPE_SUPL = 3,
AGPS_RIL_NETWORK_TYPE_DUN = 4,
AGPS_RIL_NETWORK_TYPE_HIPRI = 5,
AGPS_RIL_NETWORK_TYPE_WIMAX = 6,
};
enum {
AGPS_REF_LOCATION_TYPE_GSM_CELLID = 1,
AGPS_REF_LOCATION_TYPE_UMTS_CELLID = 2,
AGPS_REF_LOCATION_TYPE_LTE_CELLID = 4,
};
enum {
AGPS_RIL_REQUEST_SETID_IMSI = 1u, // (1 << 0L)
AGPS_RIL_REQUEST_SETID_MSISDN = 2u, // (1 << 1L)
};
enum {
GPS_POSITION_MODE_STANDALONE = 0,
GPS_POSITION_MODE_MS_BASED = 1,
GPS_POSITION_MODE_MS_ASSISTED = 2,
};
enum {
GPS_POSITION_RECURRENCE_PERIODIC = 0u, // 0
GPS_POSITION_RECURRENCE_SINGLE = 1u, // 1
};
enum {
GPS_DELETE_EPHEMERIS = 1, // 0x0001
GPS_DELETE_ALMANAC = 2, // 0x0002
GPS_DELETE_POSITION = 4, // 0x0004
GPS_DELETE_TIME = 8, // 0x0008
GPS_DELETE_IONO = 16, // 0x0010
GPS_DELETE_UTC = 32, // 0x0020
GPS_DELETE_HEALTH = 64, // 0x0040
GPS_DELETE_SVDIR = 128, // 0x0080
GPS_DELETE_SVSTEER = 256, // 0x0100
GPS_DELETE_SADATA = 512, // 0x0200
GPS_DELETE_RTI = 1024, // 0x0400
GPS_DELETE_CELLDB_INFO = 32768, // 0x8000
GPS_DELETE_ALL = 65535, // 0xFFFF
};
enum {
FLP_BATCH_WAKEUP_ON_FIFO_FULL = 1, // 0x01
};
enum {
GPS_CAPABILITY_SCHEDULING = 1u, // (1 << 0)
GPS_CAPABILITY_MSB = 2u, // (1 << 1)
GPS_CAPABILITY_MSA = 4u, // (1 << 2)
GPS_CAPABILITY_SINGLE_SHOT = 8u, // (1 << 3)
GPS_CAPABILITY_ON_DEMAND_TIME = 16u, // (1 << 4)
GPS_CAPABILITY_GEOFENCING = 32u, // (1 << 5)
GPS_CAPABILITY_MEASUREMENTS = 64u, // (1 << 6)
GPS_CAPABILITY_NAV_MESSAGES = 128u, // (1 << 7)
};
enum {
GPS_STATUS_NONE = 0,
GPS_STATUS_SESSION_BEGIN = 1,
GPS_STATUS_SESSION_END = 2,
GPS_STATUS_ENGINE_ON = 3,
GPS_STATUS_ENGINE_OFF = 4,
};
enum {
GNSS_SV_FLAGS_NONE = 0,
GNSS_SV_FLAGS_HAS_EPHEMERIS_DATA = 1, // (1 << 0)
GNSS_SV_FLAGS_HAS_ALMANAC_DATA = 2, // (1 << 1)
GNSS_SV_FLAGS_USED_IN_FIX = 4, // (1 << 2)
GNSS_SV_FLAGS_HAS_CARRIER_FREQUENCY = 8, // (1 << 3)
};
enum {
GPS_GEOFENCE_ENTERED = 1, // (1 << 0L)
GPS_GEOFENCE_EXITED = 2, // (1 << 1L)
GPS_GEOFENCE_UNCERTAIN = 4, // (1 << 2L)
};
enum {
GPS_GEOFENCE_UNAVAILABLE = 1, // (1 << 0L)
GPS_GEOFENCE_AVAILABLE = 2, // (1 << 1L)
};
enum {
GPS_GEOFENCE_OPERATION_SUCCESS = 0,
GPS_GEOFENCE_ERROR_TOO_MANY_GEOFENCES = -100, // (-100)
GPS_GEOFENCE_ERROR_ID_EXISTS = -101, // (-101)
GPS_GEOFENCE_ERROR_ID_UNKNOWN = -102, // (-102)
GPS_GEOFENCE_ERROR_INVALID_TRANSITION = -103, // (-103)
GPS_GEOFENCE_ERROR_GENERIC = -149, // (-149)
};
enum {
GPS_MEASUREMENT_SUCCESS = 0,
GPS_MEASUREMENT_ERROR_ALREADY_INIT = -100, // (-100)
GPS_MEASUREMENT_ERROR_GENERIC = -101, // (-101)
};
enum {
GNSS_CLOCK_HAS_LEAP_SECOND = 1, // (1 << 0)
GNSS_CLOCK_HAS_TIME_UNCERTAINTY = 2, // (1 << 1)
GNSS_CLOCK_HAS_FULL_BIAS = 4, // (1 << 2)
GNSS_CLOCK_HAS_BIAS = 8, // (1 << 3)
GNSS_CLOCK_HAS_BIAS_UNCERTAINTY = 16, // (1 << 4)
GNSS_CLOCK_HAS_DRIFT = 32, // (1 << 5)
GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY = 64, // (1 << 6)
};
enum {
GNSS_MEASUREMENT_HAS_SNR = 1u, // (1 << 0)
GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY = 512u, // (1 << 9)
GNSS_MEASUREMENT_HAS_CARRIER_CYCLES = 1024u, // (1 << 10)
GNSS_MEASUREMENT_HAS_CARRIER_PHASE = 2048u, // (1 << 11)
GNSS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY = 4096u, // (1 << 12)
GNSS_MEASUREMENT_HAS_AUTOMATIC_GAIN_CONTROL = 8192u, // (1 << 13)
};
enum {
GNSS_MULTIPATH_INDICATOR_UNKNOWN = 0,
GNSS_MULTIPATH_INDICATOR_PRESENT = 1,
GNSS_MULTIPATH_INDICATIOR_NOT_PRESENT = 2,
};
enum {
GNSS_MEASUREMENT_STATE_UNKNOWN = 0u, // 0
GNSS_MEASUREMENT_STATE_CODE_LOCK = 1u, // (1 << 0)
GNSS_MEASUREMENT_STATE_BIT_SYNC = 2u, // (1 << 1)
GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC = 4u, // (1 << 2)
GNSS_MEASUREMENT_STATE_TOW_DECODED = 8u, // (1 << 3)
GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS = 16u, // (1 << 4)
GNSS_MEASUREMENT_STATE_SYMBOL_SYNC = 32u, // (1 << 5)
GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC = 64u, // (1 << 6)
GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED = 128u, // (1 << 7)
GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC = 256u, // (1 << 8)
GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC = 512u, // (1 << 9)
GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK = 1024u, // (1 << 10)
GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK = 2048u, // (1 << 11)
GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC = 4096u, // (1 << 12)
GNSS_MEASUREMENT_STATE_SBAS_SYNC = 8192u, // (1 << 13)
GNSS_MEASUREMENT_STATE_TOW_KNOWN = 16384u, // (1 << 14)
GNSS_MEASUREMENT_STATE_GLO_TOD_KNOWN = 32768u, // (1 << 15)
};
enum {
GNSS_ADR_STATE_UNKNOWN = 0,
GNSS_ADR_STATE_VALID = 1, // (1 << 0)
GNSS_ADR_STATE_RESET = 2, // (1 << 1)
GNSS_ADR_STATE_CYCLE_SLIP = 4, // (1 << 2)
};
enum {
GPS_NAVIGATION_MESSAGE_SUCCESS = 0,
GPS_NAVIGATION_MESSAGE_ERROR_ALREADY_INIT = -100, // (-100)
GPS_NAVIGATION_MESSAGE_ERROR_GENERIC = -101, // (-101)
};
enum {
GNSS_NAVIGATION_MESSAGE_TYPE_UNKNOWN = 0,
GNSS_NAVIGATION_MESSAGE_TYPE_GNSS_L1CA = 257, // 0x0101
GNSS_NAVIGATION_MESSAGE_TYPE_GNSS_L2CNAV = 258, // 0x0102
GNSS_NAVIGATION_MESSAGE_TYPE_GNSS_L5CNAV = 259, // 0x0103
GNSS_NAVIGATION_MESSAGE_TYPE_GNSS_CNAV2 = 260, // 0x0104
GNSS_NAVIGATION_MESSAGE_TYPE_GLO_L1CA = 769, // 0x0301
GNSS_NAVIGATION_MESSAGE_TYPE_BDS_D1 = 1281, // 0x0501
GNSS_NAVIGATION_MESSAGE_TYPE_BDS_D2 = 1282, // 0x0502
GNSS_NAVIGATION_MESSAGE_TYPE_GAL_I = 1537, // 0x0601
GNSS_NAVIGATION_MESSAGE_TYPE_GAL_F = 1538, // 0x0602
};
typedef enum {
NAV_MESSAGE_STATUS_PARITY_PASSED = 1, // (1 << 0)
NAV_MESSAGE_STATUS_PARITY_REBUILT = 2, // (1 << 1)
NAV_MESSAGE_STATUS_UNKNOWN = 0,
} navigation_message_status;
enum {
GPS_NI_TYPE_VOICE = 1,
GPS_NI_TYPE_UMTS_SUPL = 2,
GPS_NI_TYPE_UMTS_CTRL_PLANE = 3,
};
enum {
GPS_NI_NEED_NOTIFY = 1u, // 0x0001
GPS_NI_NEED_VERIFY = 2u, // 0x0002
GPS_NI_PRIVACY_OVERRIDE = 4u, // 0x0004
};
enum {
GPS_NI_RESPONSE_ACCEPT = 1,
GPS_NI_RESPONSE_DENY = 2,
GPS_NI_RESPONSE_NORESP = 3,
};
enum {
GPS_ENC_NONE = 0,
GPS_ENC_SUPL_GSM_DEFAULT = 1,
GPS_ENC_SUPL_UTF8 = 2,
GPS_ENC_SUPL_UCS2 = 3,
GPS_ENC_UNKNOWN = -1, // (-1)
};
#ifdef __cplusplus
}
#endif
#endif // HIDL_GENERATED_ANDROID_HARDWARE_GNSS_V1_0_EXPORTED_CONSTANTS_H_

2006
include/hardware/gps.h Normal file

File diff suppressed because it is too large Load diff

437
include/hardware/gralloc.h Normal file
View file

@ -0,0 +1,437 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ANDROID_GRALLOC_INTERFACE_H
#define ANDROID_GRALLOC_INTERFACE_H
#include <system/graphics.h>
#include <hardware/hardware.h>
#include <stdint.h>
#include <sys/cdefs.h>
#include <sys/types.h>
#include <cutils/native_handle.h>
#include <hardware/hardware.h>
#include <hardware/fb.h>
__BEGIN_DECLS
/**
* Module versioning information for the Gralloc hardware module, based on
* gralloc_module_t.common.module_api_version.
*
* Version History:
*
* GRALLOC_MODULE_API_VERSION_0_1:
* Initial Gralloc hardware module API.
*
* GRALLOC_MODULE_API_VERSION_0_2:
* Add support for flexible YCbCr format with (*lock_ycbcr)() method.
*
* GRALLOC_MODULE_API_VERSION_0_3:
* Add support for fence passing to/from lock/unlock.
*/
#define GRALLOC_MODULE_API_VERSION_0_1 HARDWARE_MODULE_API_VERSION(0, 1)
#define GRALLOC_MODULE_API_VERSION_0_2 HARDWARE_MODULE_API_VERSION(0, 2)
#define GRALLOC_MODULE_API_VERSION_0_3 HARDWARE_MODULE_API_VERSION(0, 3)
#define GRALLOC_DEVICE_API_VERSION_0_1 HARDWARE_DEVICE_API_VERSION(0, 1)
/**
* The id of this module
*/
#define GRALLOC_HARDWARE_MODULE_ID "gralloc"
/**
* Name of the graphics device to open
*/
#define GRALLOC_HARDWARE_GPU0 "gpu0"
enum {
/* buffer is never read in software */
GRALLOC_USAGE_SW_READ_NEVER = 0x00000000U,
/* buffer is rarely read in software */
GRALLOC_USAGE_SW_READ_RARELY = 0x00000002U,
/* buffer is often read in software */
GRALLOC_USAGE_SW_READ_OFTEN = 0x00000003U,
/* added for VR single buffer only */
#ifdef USES_VR_FRONT_BUFFER
GRALLOC_USAGE_VR_SINGLE_BUFFER_USAGE= 0x00000004U,
#endif
/* mask for the software read values */
GRALLOC_USAGE_SW_READ_MASK = 0x0000000FU,
/* buffer is never written in software */
GRALLOC_USAGE_SW_WRITE_NEVER = 0x00000000U,
/* buffer is rarely written in software */
GRALLOC_USAGE_SW_WRITE_RARELY = 0x00000020U,
/* buffer is often written in software */
GRALLOC_USAGE_SW_WRITE_OFTEN = 0x00000030U,
/* mask for the software write values */
GRALLOC_USAGE_SW_WRITE_MASK = 0x000000F0U,
/* buffer will be used as an OpenGL ES texture */
GRALLOC_USAGE_HW_TEXTURE = 0x00000100U,
/* buffer will be used as an OpenGL ES render target */
GRALLOC_USAGE_HW_RENDER = 0x00000200U,
/* buffer will be used by the 2D hardware blitter */
GRALLOC_USAGE_HW_2D = 0x00000400U,
/* buffer will be used by the HWComposer HAL module */
GRALLOC_USAGE_HW_COMPOSER = 0x00000800U,
/* buffer will be used with the framebuffer device */
GRALLOC_USAGE_HW_FB = 0x00001000U,
/* buffer should be displayed full-screen on an external display when
* possible */
GRALLOC_USAGE_EXTERNAL_DISP = 0x00002000U,
/* Must have a hardware-protected path to external display sink for
* this buffer. If a hardware-protected path is not available, then
* either don't composite only this buffer (preferred) to the
* external sink, or (less desirable) do not route the entire
* composition to the external sink. */
GRALLOC_USAGE_PROTECTED = 0x00004000U,
/* buffer may be used as a cursor */
GRALLOC_USAGE_CURSOR = 0x00008000U,
/* buffer will be used with the HW video encoder */
GRALLOC_USAGE_HW_VIDEO_ENCODER = 0x00010000U,
/* buffer will be written by the HW camera pipeline */
GRALLOC_USAGE_HW_CAMERA_WRITE = 0x00020000U,
/* buffer will be read by the HW camera pipeline */
GRALLOC_USAGE_HW_CAMERA_READ = 0x00040000U,
/* buffer will be used as part of zero-shutter-lag queue */
GRALLOC_USAGE_HW_CAMERA_ZSL = 0x00060000U,
/* mask for the camera access values */
GRALLOC_USAGE_HW_CAMERA_MASK = 0x00060000U,
/* mask for the software usage bit-mask */
GRALLOC_USAGE_HW_MASK = 0x00071F00U,
/* buffer will be used as a RenderScript Allocation */
GRALLOC_USAGE_RENDERSCRIPT = 0x00100000U,
/* Set by the consumer to indicate to the producer that they may attach a
* buffer that they did not detach from the BufferQueue. Will be filtered
* out by GRALLOC_USAGE_ALLOC_MASK, so gralloc modules will not need to
* handle this flag. */
GRALLOC_USAGE_FOREIGN_BUFFERS = 0x00200000U,
/* Mask of all flags which could be passed to a gralloc module for buffer
* allocation. Any flags not in this mask do not need to be handled by
* gralloc modules. */
GRALLOC_USAGE_ALLOC_MASK = ~(GRALLOC_USAGE_FOREIGN_BUFFERS),
/* implementation-specific private usage flags */
GRALLOC_USAGE_PRIVATE_0 = 0x10000000U,
GRALLOC_USAGE_PRIVATE_1 = 0x20000000U,
GRALLOC_USAGE_PRIVATE_2 = 0x40000000U,
GRALLOC_USAGE_PRIVATE_3 = 0x80000000U,
GRALLOC_USAGE_PRIVATE_MASK = 0xF0000000U,
GRALLOC_USAGE_INTERNAL_ONLY = 0x10000000U,
GRALLOC_USAGE_EXTERNAL_FLEXIBLE = 0x20000000U,
GRALLOC_USAGE_EXTERNAL_BLOCK = 0x40000000U,
GRALLOC_USAGE_EXTERNAL_ONLY = 0x80000000U,
GRALLOC_USAGE_EXTERNAL_VIRTUALFB = 0x00400000U,
GRALLOC_USAGE_PROTECTED_DPB = 0x00800000U,
/* buffer will be used by the HW IPs when sysmmu is off */
GRALLOC_USAGE_PHYSICALLY_LINEAR = 0x01000000U,
GRALLOC_USAGE_PRIVATE_NONSECURE = 0x02000000U,
GRALLOC_USAGE_CAMERA_RESERVED = 0x04000000U,
GRALLOC_USAGE_NOZEROED = 0x08000000U,
GRALLOC_USAGE_VIDEO_EXT = 0x10000000U,
GRALLOC_USAGE_GPU_BUFFER = 0x00800000U,
};
/*****************************************************************************/
/**
* Every hardware module must have a data structure named HAL_MODULE_INFO_SYM
* and the fields of this data structure must begin with hw_module_t
* followed by module specific information.
*/
typedef struct gralloc_module_t {
struct hw_module_t common;
/*
* (*registerBuffer)() must be called before a buffer_handle_t that has not
* been created with (*alloc_device_t::alloc)() can be used.
*
* This is intended to be used with buffer_handle_t's that have been
* received in this process through IPC.
*
* This function checks that the handle is indeed a valid one and prepares
* it for use with (*lock)() and (*unlock)().
*
* It is not necessary to call (*registerBuffer)() on a handle created
* with (*alloc_device_t::alloc)().
*
* returns an error if this buffer_handle_t is not valid.
*/
int (*registerBuffer)(struct gralloc_module_t const* module,
buffer_handle_t handle);
/*
* (*unregisterBuffer)() is called once this handle is no longer needed in
* this process. After this call, it is an error to call (*lock)(),
* (*unlock)(), or (*registerBuffer)().
*
* This function doesn't close or free the handle itself; this is done
* by other means, usually through libcutils's native_handle_close() and
* native_handle_free().
*
* It is an error to call (*unregisterBuffer)() on a buffer that wasn't
* explicitly registered first.
*/
int (*unregisterBuffer)(struct gralloc_module_t const* module,
buffer_handle_t handle);
/*
* The (*lock)() method is called before a buffer is accessed for the
* specified usage. This call may block, for instance if the h/w needs
* to finish rendering or if CPU caches need to be synchronized.
*
* The caller promises to modify only pixels in the area specified
* by (l,t,w,h).
*
* The content of the buffer outside of the specified area is NOT modified
* by this call.
*
* If usage specifies GRALLOC_USAGE_SW_*, vaddr is filled with the address
* of the buffer in virtual memory.
*
* Note calling (*lock)() on HAL_PIXEL_FORMAT_YCbCr_*_888 buffers will fail
* and return -EINVAL. These buffers must be locked with (*lock_ycbcr)()
* instead.
*
* THREADING CONSIDERATIONS:
*
* It is legal for several different threads to lock a buffer from
* read access, none of the threads are blocked.
*
* However, locking a buffer simultaneously for write or read/write is
* undefined, but:
* - shall not result in termination of the process
* - shall not block the caller
* It is acceptable to return an error or to leave the buffer's content
* into an indeterminate state.
*
* If the buffer was created with a usage mask incompatible with the
* requested usage flags here, -EINVAL is returned.
*
*/
int (*lock)(struct gralloc_module_t const* module,
buffer_handle_t handle, int usage,
int l, int t, int w, int h,
void** vaddr);
/*
* The (*unlock)() method must be called after all changes to the buffer
* are completed.
*/
int (*unlock)(struct gralloc_module_t const* module,
buffer_handle_t handle);
/* reserved for future use */
int (*perform)(struct gralloc_module_t const* module,
int operation, ... );
/*
* The (*lock_ycbcr)() method is like the (*lock)() method, with the
* difference that it fills a struct ycbcr with a description of the buffer
* layout, and zeroes out the reserved fields.
*
* If the buffer format is not compatible with a flexible YUV format (e.g.
* the buffer layout cannot be represented with the ycbcr struct), it
* will return -EINVAL.
*
* This method must work on buffers with HAL_PIXEL_FORMAT_YCbCr_*_888
* if supported by the device, as well as with any other format that is
* requested by the multimedia codecs when they are configured with a
* flexible-YUV-compatible color-format with android native buffers.
*
* Note that this method may also be called on buffers of other formats,
* including non-YUV formats.
*
* Added in GRALLOC_MODULE_API_VERSION_0_2.
*/
int (*lock_ycbcr)(struct gralloc_module_t const* module,
buffer_handle_t handle, int usage,
int l, int t, int w, int h,
struct android_ycbcr *ycbcr);
/*
* The (*lockAsync)() method is like the (*lock)() method except
* that the buffer's sync fence object is passed into the lock
* call instead of requiring the caller to wait for completion.
*
* The gralloc implementation takes ownership of the fenceFd and
* is responsible for closing it when no longer needed.
*
* Added in GRALLOC_MODULE_API_VERSION_0_3.
*/
int (*lockAsync)(struct gralloc_module_t const* module,
buffer_handle_t handle, int usage,
int l, int t, int w, int h,
void** vaddr, int fenceFd);
/*
* The (*unlockAsync)() method is like the (*unlock)() method
* except that a buffer sync fence object is returned from the
* lock call, representing the completion of any pending work
* performed by the gralloc implementation.
*
* The caller takes ownership of the fenceFd and is responsible
* for closing it when no longer needed.
*
* Added in GRALLOC_MODULE_API_VERSION_0_3.
*/
int (*unlockAsync)(struct gralloc_module_t const* module,
buffer_handle_t handle, int* fenceFd);
/*
* The (*lockAsync_ycbcr)() method is like the (*lock_ycbcr)()
* method except that the buffer's sync fence object is passed
* into the lock call instead of requiring the caller to wait for
* completion.
*
* The gralloc implementation takes ownership of the fenceFd and
* is responsible for closing it when no longer needed.
*
* Added in GRALLOC_MODULE_API_VERSION_0_3.
*/
int (*lockAsync_ycbcr)(struct gralloc_module_t const* module,
buffer_handle_t handle, int usage,
int l, int t, int w, int h,
struct android_ycbcr *ycbcr, int fenceFd);
/* reserved for future use */
void* reserved_proc[3];
} gralloc_module_t;
/*****************************************************************************/
/**
* Every device data structure must begin with hw_device_t
* followed by module specific public methods and attributes.
*/
typedef struct alloc_device_t {
struct hw_device_t common;
/*
* (*alloc)() Allocates a buffer in graphic memory with the requested
* parameters and returns a buffer_handle_t and the stride in pixels to
* allow the implementation to satisfy hardware constraints on the width
* of a pixmap (eg: it may have to be multiple of 8 pixels).
* The CALLER TAKES OWNERSHIP of the buffer_handle_t.
*
* If format is HAL_PIXEL_FORMAT_YCbCr_420_888, the returned stride must be
* 0, since the actual strides are available from the android_ycbcr
* structure.
*
* Returns 0 on success or -errno on error.
*/
int (*alloc)(struct alloc_device_t* dev,
int w, int h, int format, int usage,
buffer_handle_t* handle, int* stride);
/*
* (*free)() Frees a previously allocated buffer.
* Behavior is undefined if the buffer is still mapped in any process,
* but shall not result in termination of the program or security breaches
* (allowing a process to get access to another process' buffers).
* THIS FUNCTION TAKES OWNERSHIP of the buffer_handle_t which becomes
* invalid after the call.
*
* Returns 0 on success or -errno on error.
*/
int (*free)(struct alloc_device_t* dev,
buffer_handle_t handle);
/* This hook is OPTIONAL.
*
* If non NULL it will be caused by SurfaceFlinger on dumpsys
*/
void (*dump)(struct alloc_device_t *dev, char *buff, int buff_len);
void* reserved_proc[7];
} alloc_device_t;
/** convenience API for opening and closing a supported device */
static inline int gralloc_open(const struct hw_module_t* module,
struct alloc_device_t** device) {
return module->methods->open(module,
#ifdef __cplusplus
GRALLOC_HARDWARE_GPU0, reinterpret_cast<struct hw_device_t**>(device));
#else
GRALLOC_HARDWARE_GPU0, TO_HW_DEVICE_T_OPEN(device));
#endif
}
static inline int gralloc_close(struct alloc_device_t* device) {
return device->common.close(&device->common);
}
/**
* map_usage_to_memtrack should be called after allocating a gralloc buffer.
*
* @param usage - it is the flag used when alloc function is called.
*
* This function maps the gralloc usage flags to appropriate memtrack bucket.
* GrallocHAL implementers and users should make an additional ION_IOCTL_TAG
* call using the memtrack tag returned by this function. This will help the
* in-kernel memtack to categorize the memory allocated by different processes
* according to their usage.
*
*/
static inline const char* map_usage_to_memtrack(uint32_t usage) {
usage &= GRALLOC_USAGE_ALLOC_MASK;
if ((usage & GRALLOC_USAGE_HW_CAMERA_WRITE) != 0) {
return "camera";
} else if ((usage & GRALLOC_USAGE_HW_VIDEO_ENCODER) != 0 ||
(usage & GRALLOC_USAGE_EXTERNAL_DISP) != 0) {
return "video";
} else if ((usage & GRALLOC_USAGE_HW_RENDER) != 0 ||
(usage & GRALLOC_USAGE_HW_TEXTURE) != 0) {
return "gl";
} else if ((usage & GRALLOC_USAGE_HW_CAMERA_READ) != 0) {
return "camera";
} else if ((usage & GRALLOC_USAGE_SW_READ_MASK) != 0 ||
(usage & GRALLOC_USAGE_SW_WRITE_MASK) != 0) {
return "cpu";
}
return "graphics";
}
__END_DECLS
#endif // ANDROID_GRALLOC_INTERFACE_H

84
include/samsung_audio.h Normal file
View file

@ -0,0 +1,84 @@
/*
* 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 <telephony/ril.h>
#ifndef SAMSUNG_AUDIO_H
#define SAMSUNG_AUDIO_H
#define MIXER_CARD 0
#define SOUND_CARD 0
/* Playback */
#define SOUND_DEEP_BUFFER_DEVICE 1
#define SOUND_PLAYBACK_DEVICE 0
#define SOUND_PLAYBACK_SCO_DEVICE 3
/* Capture */
#define SOUND_CAPTURE_DEVICE 0
#define SOUND_CAPTURE_SCO_DEVICE 3
/* Voice calls */
#define SOUND_PLAYBACK_VOICE_DEVICE 2
#define SOUND_CAPTURE_VOICE_DEVICE 2
/* Wideband AMR callback */
#ifndef RIL_UNSOL_SNDMGR_WB_AMR_REPORT
#ifdef RIL_UNSOL_WB_AMR_STATE
#define RIL_UNSOL_SNDMGR_WB_AMR_REPORT RIL_UNSOL_WB_AMR_STATE
#else
#define RIL_UNSOL_SNDMGR_WB_AMR_REPORT 0
#endif
#endif
/* Unusupported
#define SOUND_CAPTURE_LOOPBACK_AEC_DEVICE 1
#define SOUND_CAPTURE_HOTWORD_DEVICE 0
*/
/*
* If the device has stereo speakers and the speakers are arranged on
* different sides of the device you can activate this feature by
* setting it to 1.
*/
#define SWAP_SPEAKER_ON_SCREEN_ROTATION 0
/*
* You can that this to 1 if your kernel supports irq affinity for
* fast mode. See /proc/asound/irq_affinity
*/
#define SUPPORTS_IRQ_AFFINITY 0
/*
* The Wolfson/Cirruslogic chips need to shutdown the DAPM route completely
* to be able to load a new firmware. Some of these chips need a delay after
* shutodown to full poweroff the DSPs.
*
* A good value to start with is 10ms:
*
* #define DSP_POWEROFF_DELAY 10 * 1000
*/
/* #define DSP_POWEROFF_DELAY 0 */
/*
* Some device variants (often T-Mobile) have a separate voice processing IC
* (Audience EarSmart xxx).
* This hooks into the voice call session and enables, configures and disables
* this extra firmware so RX/TX streams can be routed by the driver.
*/
/* #define AUDIENCE_EARSMART_IC */
#endif // SAMSUNG_AUDIO_H

46
include/samsung_dtbh.h Normal file
View file

@ -0,0 +1,46 @@
/* tools/mkbootimg/samsung_dtbh.h
**
** Copyright 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.
*/
#ifndef _SAMSUNG_DTBH_H_
#define _SAMSUNG_DTBH_H_
#define DTBH_MAGIC "DTBH"
#define DTBH_VERSION 2
#define DTBH_PLATFORM "android"
#define DTBH_SUBTYPE "samsung"
/* Hardcoded entry */
#define DTBH_PLATFORM_CODE 0x000050a6
#define DTBH_SUBTYPE_CODE 0x217584da
/* DTBH_MAGIC + DTBH_VERSION + DTB counts */
#define DT_HEADER_PHYS_SIZE 12
/* model = "Samsung Galaxy Tab A LTE rev01 board based on Exynos7870";
* model_info-chip = <7870>;
* model_info-platform = "android";
* model_info-subtype = "samsung";
* model_info-hw_rev = <2>;
* model_info-hw_rev_end = <3>;
* compatible = "samsung, Galaxy Tab A LTE 01", "samsung,exynos7870";
*/
/*
* keep the eight uint32_t entries first in this struct so we can memcpy them to the file
*/
#define DT_ENTRY_PHYS_SIZE (sizeof(uint32_t) * 8)
#endif // _SAMSUNG_DTBH_H_

7481
include/telephony/ril.h Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,806 @@
/*
* Copyright (C) 2006 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* ISSUES:
*
*/
/**
* TODO
*
*
*/
#ifndef ANDROID_RIL_CDMA_SMS_H
#define ANDROID_RIL_CDMA_SMS_H 1
#include <stdlib.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Used by RIL_REQUEST_CDMA_SEND_SMS and RIL_UNSOL_RESPONSE_CDMA_NEW_SMS */
#define RIL_CDMA_SMS_ADDRESS_MAX 36
#define RIL_CDMA_SMS_SUBADDRESS_MAX 36
#define RIL_CDMA_SMS_BEARER_DATA_MAX 255
typedef enum {
RIL_CDMA_SMS_DIGIT_MODE_4_BIT = 0, /* DTMF digits */
RIL_CDMA_SMS_DIGIT_MODE_8_BIT = 1,
RIL_CDMA_SMS_DIGIT_MODE_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_DigitMode;
typedef enum {
RIL_CDMA_SMS_NUMBER_MODE_NOT_DATA_NETWORK = 0,
RIL_CDMA_SMS_NUMBER_MODE_DATA_NETWORK = 1,
RIL_CDMA_SMS_NUMBER_MODE_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_NumberMode;
typedef enum {
RIL_CDMA_SMS_NUMBER_TYPE_UNKNOWN = 0,
RIL_CDMA_SMS_NUMBER_TYPE_INTERNATIONAL_OR_DATA_IP = 1,
/* INTERNATIONAL is used when number mode is not data network address.
* DATA_IP is used when the number mode is data network address
*/
RIL_CDMA_SMS_NUMBER_TYPE_NATIONAL_OR_INTERNET_MAIL = 2,
/* NATIONAL is used when the number mode is not data network address.
* INTERNET_MAIL is used when the number mode is data network address.
* For INTERNET_MAIL, in the address data "digits", each byte contains
* an ASCII character. Examples are "x@y.com,a@b.com - ref TIA/EIA-637A 3.4.3.3
*/
RIL_CDMA_SMS_NUMBER_TYPE_NETWORK = 3,
RIL_CDMA_SMS_NUMBER_TYPE_SUBSCRIBER = 4,
RIL_CDMA_SMS_NUMBER_TYPE_ALPHANUMERIC = 5,
/* GSM SMS: address value is GSM 7-bit chars */
RIL_CDMA_SMS_NUMBER_TYPE_ABBREVIATED = 6,
RIL_CDMA_SMS_NUMBER_TYPE_RESERVED_7 = 7,
RIL_CDMA_SMS_NUMBER_TYPE_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_NumberType;
typedef enum {
RIL_CDMA_SMS_NUMBER_PLAN_UNKNOWN = 0,
RIL_CDMA_SMS_NUMBER_PLAN_TELEPHONY = 1, /* CCITT E.164 and E.163, including ISDN plan */
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_2 = 2,
RIL_CDMA_SMS_NUMBER_PLAN_DATA = 3, /* CCITT X.121 */
RIL_CDMA_SMS_NUMBER_PLAN_TELEX = 4, /* CCITT F.69 */
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_5 = 5,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_6 = 6,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_7 = 7,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_8 = 8,
RIL_CDMA_SMS_NUMBER_PLAN_PRIVATE = 9,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_10 = 10,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_11 = 11,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_12 = 12,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_13 = 13,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_14 = 14,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_15 = 15,
RIL_CDMA_SMS_NUMBER_PLAN_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_NumberPlan;
typedef struct {
RIL_CDMA_SMS_DigitMode digit_mode;
/* Indicates 4-bit or 8-bit */
RIL_CDMA_SMS_NumberMode number_mode;
/* Used only when digitMode is 8-bit */
RIL_CDMA_SMS_NumberType number_type;
/* Used only when digitMode is 8-bit.
* To specify an international address, use the following:
* digitMode = RIL_CDMA_SMS_DIGIT_MODE_8_BIT
* numberMode = RIL_CDMA_SMS_NOT_DATA_NETWORK
* numberType = RIL_CDMA_SMS_NUMBER_TYPE_INTERNATIONAL_OR_DATA_IP
* numberPlan = RIL_CDMA_SMS_NUMBER_PLAN_TELEPHONY
* numberOfDigits = number of digits
* digits = ASCII digits, e.g. '1', '2', '3'3, '4', and '5'
*/
RIL_CDMA_SMS_NumberPlan number_plan;
/* Used only when digitMode is 8-bit */
unsigned char number_of_digits;
unsigned char digits[ RIL_CDMA_SMS_ADDRESS_MAX ];
/* Each byte in this array represnts a 40bit or 8-bit digit of address data */
} RIL_CDMA_SMS_Address;
typedef enum {
RIL_CDMA_SMS_SUBADDRESS_TYPE_NSAP = 0, /* CCITT X.213 or ISO 8348 AD2 */
RIL_CDMA_SMS_SUBADDRESS_TYPE_USER_SPECIFIED = 1, /* e.g. X.25 */
RIL_CDMA_SMS_SUBADDRESS_TYPE_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_SubaddressType;
typedef struct {
RIL_CDMA_SMS_SubaddressType subaddressType;
/* 1 means the last byte's lower 4 bits should be ignored */
unsigned char odd;
unsigned char number_of_digits;
/* Each byte respresents a 8-bit digit of subaddress data */
unsigned char digits[ RIL_CDMA_SMS_SUBADDRESS_MAX ];
} RIL_CDMA_SMS_Subaddress;
typedef struct {
int uTeleserviceID;
unsigned char bIsServicePresent;
int uServicecategory;
RIL_CDMA_SMS_Address sAddress;
RIL_CDMA_SMS_Subaddress sSubAddress;
int uBearerDataLen;
unsigned char aBearerData[ RIL_CDMA_SMS_BEARER_DATA_MAX ];
} RIL_CDMA_SMS_Message;
/* Used by RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE */
typedef enum {
RIL_CDMA_SMS_NO_ERROR = 0,
RIL_CDMA_SMS_ERROR = 1,
RIL_CDMA_SMS_ERROR_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_ErrorClass;
typedef struct {
RIL_CDMA_SMS_ErrorClass uErrorClass;
int uSMSCauseCode; /* As defined in N.S00005, 6.5.2.125.
Currently, only 35 (resource shortage) and
39 (other terminal problem) are reported. */
} RIL_CDMA_SMS_Ack;
/* Used by RIL_REQUEST_CDMA_SMS_GET_BROADCAST_CONFIG and
RIL_REQUEST_CDMA_SMS_SET_BROADCAST_CONFIG */
typedef struct {
int service_category;
int language;
unsigned char selected;
} RIL_CDMA_BroadcastSmsConfigInfo;
/* Used by RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM */
typedef struct {
int status; /* Status of message. See TS 27.005 3.1, "<stat>": */
/* 0 = "REC UNREAD" */
/* 1 = "REC READ" */
/* 2 = "STO UNSENT" */
/* 3 = "STO SENT" */
RIL_CDMA_SMS_Message message;
} RIL_CDMA_SMS_WriteArgs;
/* Used by RIL_REQUEST_ENCODE_CDMA_SMS and RIL_REQUEST_DECODE_CDMA_SMS*/
#define RIL_CDMA_SMS_UDH_MAX_SND_SIZE 128
#define RIL_CDMA_SMS_UDH_EO_DATA_SEGMENT_MAX 131 /* 140 - 3 - 6 */
#define RIL_CDMA_SMS_MAX_UD_HEADERS 7
#define RIL_CDMA_SMS_USER_DATA_MAX 229
#define RIL_CDMA_SMS_ADDRESS_MAX 36
#define RIL_CDMA_SMS_UDH_LARGE_PIC_SIZE 128
#define RIL_CDMA_SMS_UDH_SMALL_PIC_SIZE 32
#define RIL_CDMA_SMS_UDH_VAR_PIC_SIZE 134
#define RIL_CDMA_SMS_UDH_ANIM_NUM_BITMAPS 4
#define RIL_CDMA_SMS_UDH_LARGE_BITMAP_SIZE 32
#define RIL_CDMA_SMS_UDH_SMALL_BITMAP_SIZE 8
#define RIL_CDMA_SMS_UDH_OTHER_SIZE 226
#define RIL_CDMA_SMS_IP_ADDRESS_SIZE 4
/* ------------------- */
/* ---- User Data ---- */
/* ------------------- */
typedef enum {
RIL_CDMA_SMS_UDH_CONCAT_8 = 0x00,
RIL_CDMA_SMS_UDH_SPECIAL_SM,
/* 02 - 03 Reserved */
RIL_CDMA_SMS_UDH_PORT_8 = 0x04,
RIL_CDMA_SMS_UDH_PORT_16,
RIL_CDMA_SMS_UDH_SMSC_CONTROL,
RIL_CDMA_SMS_UDH_SOURCE,
RIL_CDMA_SMS_UDH_CONCAT_16,
RIL_CDMA_SMS_UDH_WCMP,
RIL_CDMA_SMS_UDH_TEXT_FORMATING,
RIL_CDMA_SMS_UDH_PRE_DEF_SOUND,
RIL_CDMA_SMS_UDH_USER_DEF_SOUND,
RIL_CDMA_SMS_UDH_PRE_DEF_ANIM,
RIL_CDMA_SMS_UDH_LARGE_ANIM,
RIL_CDMA_SMS_UDH_SMALL_ANIM,
RIL_CDMA_SMS_UDH_LARGE_PICTURE,
RIL_CDMA_SMS_UDH_SMALL_PICTURE,
RIL_CDMA_SMS_UDH_VAR_PICTURE,
RIL_CDMA_SMS_UDH_USER_PROMPT = 0x13,
RIL_CDMA_SMS_UDH_EXTENDED_OBJECT = 0x14,
/* 15 - 1F Reserved for future EMS */
RIL_CDMA_SMS_UDH_RFC822 = 0x20,
/* 21 - 6F Reserved for future use */
/* 70 - 7f Reserved for (U)SIM Toolkit Security Headers */
/* 80 - 9F SME to SME specific use */
/* A0 - BF Reserved for future use */
/* C0 - DF SC specific use */
/* E0 - FF Reserved for future use */
RIL_CDMA_SMS_UDH_OTHER = 0xFFFF, /* For unsupported or proprietary headers */
RIL_CDMA_SMS_UDH_ID_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_UdhId;
typedef struct {
/*indicates the reference number for a particular concatenated short message. */
/*it is constant for every short message which makes up a particular concatenated short message*/
unsigned char msg_ref;
/*indicates the total number of short messages within the concatenated short message.
The value shall start at 1 and remain constant for every
short message which makes up the concatenated short message.
if it is 0 then the receiving entity shall ignore the whole Information Element*/
unsigned char total_sm;
/*
* it indicates the sequence number of a particular short message within the concatenated short
* message. The value shall start at 1 and increment by one for every short message sent
* within the concatenated short message. If the value is zero or the value is
* greater than the value in octet 2 then the receiving
* entity shall ignore the whole Information Element.
*/
unsigned char seq_num;
} RIL_CDMA_SMS_UdhConcat8;
/* GW message waiting actions
*/
typedef enum {
RIL_CDMA_SMS_GW_MSG_WAITING_NONE,
RIL_CDMA_SMS_GW_MSG_WAITING_DISCARD,
RIL_CDMA_SMS_GW_MSG_WAITING_STORE,
RIL_CDMA_SMS_GW_MSG_WAITING_NONE_1111,
RIL_CDMA_SMS_GW_MSG_WAITING_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_GWMsgWaiting;
/* GW message waiting types
*/
typedef enum {
RIL_CDMA_SMS_GW_MSG_WAITING_VOICEMAIL,
RIL_CDMA_SMS_GW_MSG_WAITING_FAX,
RIL_CDMA_SMS_GW_MSG_WAITING_EMAIL,
RIL_CDMA_SMS_GW_MSG_WAITING_OTHER,
RIL_CDMA_SMS_GW_MSG_WAITING_KIND_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_GWMsgWaitingKind;
typedef struct {
RIL_CDMA_SMS_GWMsgWaiting msg_waiting;
RIL_CDMA_SMS_GWMsgWaitingKind msg_waiting_kind;
/*it indicates the number of messages of the type specified in Octet 1 waiting.*/
unsigned char message_count;
} RIL_CDMA_SMS_UdhSpecialSM;
typedef struct {
unsigned char dest_port;
unsigned char orig_port;
} RIL_CDMA_SMS_UdhWap8;
typedef struct {
unsigned short dest_port;
unsigned short orig_port;
} RIL_CDMA_SMS_UdhWap16;
typedef struct {
unsigned short msg_ref;
unsigned char total_sm;
unsigned char seq_num;
} RIL_CDMA_SMS_UdhConcat16;
typedef enum {
RIL_CDMA_SMS_UDH_LEFT_ALIGNMENT = 0,
RIL_CDMA_SMS_UDH_CENTER_ALIGNMENT,
RIL_CDMA_SMS_UDH_RIGHT_ALIGNMENT,
RIL_CDMA_SMS_UDH_DEFAULT_ALIGNMENT,
RIL_CDMA_SMS_UDH_MAX_ALIGNMENT,
RIL_CDMA_SMS_UDH_ALIGNMENT_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_UdhAlignment;
typedef enum {
RIL_CDMA_SMS_UDH_FONT_NORMAL = 0,
RIL_CDMA_SMS_UDH_FONT_LARGE,
RIL_CDMA_SMS_UDH_FONT_SMALL,
RIL_CDMA_SMS_UDH_FONT_RESERVED,
RIL_CDMA_SMS_UDH_FONT_MAX,
RIL_CDMA_SMS_UDH_FONT_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_UdhFontSize;
typedef enum {
RIL_CDMA_SMS_UDH_TEXT_COLOR_BLACK = 0x0,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_GREY = 0x1,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_RED = 0x2,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_YELLOW = 0x3,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_GREEN = 0x4,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_CYAN = 0x5,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_BLUE = 0x6,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_MAGENTA = 0x7,
RIL_CDMA_SMS_UDH_TEXT_COLOR_GREY = 0x8,
RIL_CDMA_SMS_UDH_TEXT_COLOR_WHITE = 0x9,
RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_RED = 0xA,
RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_YELLOW = 0xB,
RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_GREEN = 0xC,
RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_CYAN = 0xD,
RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_BLUE = 0xE,
RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_MAGENTA = 0xF,
RIL_CDMA_SMS_UDH_TEXT_COLOR_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_UdhTextColor;
typedef struct {
unsigned char start_position;
unsigned char text_formatting_length;
RIL_CDMA_SMS_UdhAlignment alignment_type ; /*bit 0 and bit 1*/
RIL_CDMA_SMS_UdhFontSize font_size ; /*bit 3 and bit 2*/
unsigned char style_bold; /*bit 4 */
unsigned char style_italic; /*bit 5 */
unsigned char style_underlined; /*bit 6 */
unsigned char style_strikethrough; /*bit 7 */
/* if FALSE, ignore the following color information */
unsigned char is_color_present;
RIL_CDMA_SMS_UdhTextColor text_color_foreground;
RIL_CDMA_SMS_UdhTextColor text_color_background;
} RIL_CDMA_SMS_UdhTextFormating;
/* Predefined sound
*/
typedef struct {
unsigned char position;
unsigned char snd_number;
} RIL_CDMA_SMS_UdhPreDefSound;
/* User Defined sound
*/
typedef struct {
unsigned char data_length;
unsigned char position;
unsigned char user_def_sound[RIL_CDMA_SMS_UDH_MAX_SND_SIZE];
} RIL_CDMA_SMS_UdhUserDefSound;
/* Large picture
*/
typedef struct {
unsigned char position;
unsigned char data[RIL_CDMA_SMS_UDH_LARGE_PIC_SIZE];
} RIL_CDMA_SMS_UdhLargePictureData;
/* Small picture
*/
typedef struct {
unsigned char position;
unsigned char data[RIL_CDMA_SMS_UDH_SMALL_PIC_SIZE];
} RIL_CDMA_SMS_UdhSmallPictureData;
/* Variable length picture
*/
typedef struct {
unsigned char position;
unsigned char width; /* Number of pixels - Should be a mutliple of 8 */
unsigned char height;
unsigned char data[RIL_CDMA_SMS_UDH_VAR_PIC_SIZE];
} RIL_CDMA_SMS_UdhVarPicture;
/* Predefined animation
*/
typedef struct {
unsigned char position;
unsigned char animation_number;
} RIL_CDMA_SMS_UdhPreDefAnim;
/* Large animation
*/
typedef struct {
unsigned char position;
unsigned char data[RIL_CDMA_SMS_UDH_ANIM_NUM_BITMAPS][RIL_CDMA_SMS_UDH_LARGE_BITMAP_SIZE];
} RIL_CDMA_SMS_UdhLargeAnim;
/* Small animation
*/
typedef struct {
unsigned char position;
unsigned char data[RIL_CDMA_SMS_UDH_ANIM_NUM_BITMAPS][RIL_CDMA_SMS_UDH_SMALL_BITMAP_SIZE];
} RIL_CDMA_SMS_UdhSmallAnim;
/* User Prompt Indicator UDH
*/
typedef struct {
unsigned char number_of_objects;
/* Number of objects of the same kind that follow this header which will
** be stitched together by the applications. For example, 5 small pictures
** are to be stitched together horizontally, or 6 iMelody tones are to be
** connected together with intermediate iMelody header and footer ignored.
** Allowed objects to be stitched:
** - Images (small, large, variable)
** - User defined sounds
*/
} RIL_CDMA_SMS_UdhUserPrompt;
typedef struct {
unsigned char length;
unsigned char data[RIL_CDMA_SMS_UDH_EO_DATA_SEGMENT_MAX];
/* RIL_CDMA_SMS_UDH_EO_VCARD: See http://www.imc.org/pdi/vcard-21.doc for payload */
/* RIL_CDMA_SMS_UDH_EO_VCALENDAR: See http://www.imc.org/pdi/vcal-10.doc */
/* Or: Unsupported/proprietary extended objects */
} RIL_CDMA_SMS_UdhEoContent;
/* Extended Object UDH
*/
/* Extended Object IDs/types
*/
typedef enum {
RIL_CDMA_SMS_UDH_EO_VCARD = 0x09,
RIL_CDMA_SMS_UDH_EO_VCALENDAR = 0x0A,
RIL_CDMA_SMS_UDH_EO_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_UdhEoId;
typedef struct {
/* Extended objects are to be used together with 16-bit concatenation
** UDH. The max number of segments supported for E.O. is 8 at least.
*/
RIL_CDMA_SMS_UdhEoContent content;
unsigned char first_segment;
/* The following fields are only present in the first segment of a
** concatenated SMS message.
*/
unsigned char reference;
/* Identify those extended object segments which should be linked together
*/
unsigned short length;
/* Length of the whole extended object data
*/
unsigned char control;
RIL_CDMA_SMS_UdhEoId type;
unsigned short position;
/* Absolute position of the E.O. in the whole text after concatenation,
** starting from 1.
*/
} RIL_CDMA_SMS_UdhEo;
typedef struct {
RIL_CDMA_SMS_UdhId header_id;
unsigned char header_length;
unsigned char data[RIL_CDMA_SMS_UDH_OTHER_SIZE];
} RIL_CDMA_SMS_UdhOther;
typedef struct {
unsigned char header_length;
} RIL_CDMA_SMS_UdhRfc822;
typedef struct {
RIL_CDMA_SMS_UdhId header_id;
union {
RIL_CDMA_SMS_UdhConcat8 concat_8; // 00
RIL_CDMA_SMS_UdhSpecialSM special_sm; // 01
RIL_CDMA_SMS_UdhWap8 wap_8; // 04
RIL_CDMA_SMS_UdhWap16 wap_16; // 05
RIL_CDMA_SMS_UdhConcat16 concat_16; // 08
RIL_CDMA_SMS_UdhTextFormating text_formating; // 0a
RIL_CDMA_SMS_UdhPreDefSound pre_def_sound; // 0b
RIL_CDMA_SMS_UdhUserDefSound user_def_sound; // 0c
RIL_CDMA_SMS_UdhPreDefAnim pre_def_anim; // 0d
RIL_CDMA_SMS_UdhLargeAnim large_anim; // 0e
RIL_CDMA_SMS_UdhSmallAnim small_anim; // 0f
RIL_CDMA_SMS_UdhLargePictureData large_picture; // 10
RIL_CDMA_SMS_UdhSmallPictureData small_picture; // 11
RIL_CDMA_SMS_UdhVarPicture var_picture; // 12
RIL_CDMA_SMS_UdhUserPrompt user_prompt; // 13
RIL_CDMA_SMS_UdhEo eo; // 14
RIL_CDMA_SMS_UdhRfc822 rfc822; // 20
RIL_CDMA_SMS_UdhOther other;
}u;
} RIL_CDMA_SMS_Udh;
/* ----------------------------- */
/* -- User data encoding type -- */
/* ----------------------------- */
typedef enum {
RIL_CDMA_SMS_ENCODING_OCTET = 0, /* 8-bit */
RIL_CDMA_SMS_ENCODING_IS91EP, /* varies */
RIL_CDMA_SMS_ENCODING_ASCII, /* 7-bit */
RIL_CDMA_SMS_ENCODING_IA5, /* 7-bit */
RIL_CDMA_SMS_ENCODING_UNICODE, /* 16-bit */
RIL_CDMA_SMS_ENCODING_SHIFT_JIS, /* 8 or 16-bit */
RIL_CDMA_SMS_ENCODING_KOREAN, /* 8 or 16-bit */
RIL_CDMA_SMS_ENCODING_LATIN_HEBREW, /* 8-bit */
RIL_CDMA_SMS_ENCODING_LATIN, /* 8-bit */
RIL_CDMA_SMS_ENCODING_GSM_7_BIT_DEFAULT, /* 7-bit */
RIL_CDMA_SMS_ENCODING_MAX32 = 0x10000000
} RIL_CDMA_SMS_UserDataEncoding;
/* ------------------------ */
/* -- IS-91 EP data type -- */
/* ------------------------ */
typedef enum {
RIL_CDMA_SMS_IS91EP_VOICE_MAIL = 0x82,
RIL_CDMA_SMS_IS91EP_SHORT_MESSAGE_FULL = 0x83,
RIL_CDMA_SMS_IS91EP_CLI_ORDER = 0x84,
RIL_CDMA_SMS_IS91EP_SHORT_MESSAGE = 0x85,
RIL_CDMA_SMS_IS91EP_MAX32 = 0x10000000
} RIL_CDMA_SMS_IS91EPType;
typedef struct {
/* NOTE: If message_id.udh_present == TRUE:
** 'num_headers' is the number of User Data Headers (UDHs),
** and 'headers' include all those headers.
*/
unsigned char num_headers;
RIL_CDMA_SMS_Udh headers[RIL_CDMA_SMS_MAX_UD_HEADERS];
RIL_CDMA_SMS_UserDataEncoding encoding;
RIL_CDMA_SMS_IS91EPType is91ep_type;
/*----------------------------------------------------------------------
'data_len' indicates the valid number of bytes in the 'data' array.
'padding_bits' (0-7) indicates how many bits in the last byte of 'data'
are invalid bits. This parameter is only used for Mobile-Originated
messages. There is no way for the API to tell how many padding bits
exist in the received message. Instead, the application can find out how
many padding bits exist in the user data when decoding the user data.
'data' has the raw bits of the user data field of the SMS message.
The client software should decode the raw user data according to its
supported encoding types and languages.
EXCEPTION 1: CMT-91 user data raw bits are first translated into BD fields
(e.g. num_messages, callback, etc.) The translated user data field in
VMN and Short Message is in the form of ASCII characters, each occupying
a byte in the resulted 'data'.
EXCEPTION 2: GSM 7-bit Default characters are decoded so that each byte
has one 7-bit GSM character.
'number_of_digits' is the number of digits/characters (7, 8, 16, or
whatever bits) in the raw user data, which can be used by the client
when decoding the user data according to the encoding type and language.
-------------------------------------------------------------------------*/
unsigned char data_len;
unsigned char padding_bits;
unsigned char data[ RIL_CDMA_SMS_USER_DATA_MAX ];
unsigned char number_of_digits;
} RIL_CDMA_SMS_CdmaUserData;
/* -------------------- */
/* ---- Message Id ---- */
/* -------------------- */
typedef enum {
RIL_CDMA_SMS_BD_TYPE_RESERVED_0 = 0,
RIL_CDMA_SMS_BD_TYPE_DELIVER, /* MT only */
RIL_CDMA_SMS_BD_TYPE_SUBMIT, /* MO only */
RIL_CDMA_SMS_BD_TYPE_CANCELLATION, /* MO only */
RIL_CDMA_SMS_BD_TYPE_DELIVERY_ACK, /* MT only */
RIL_CDMA_SMS_BD_TYPE_USER_ACK, /* MT & MO */
RIL_CDMA_SMS_BD_TYPE_READ_ACK, /* MT & MO */
RIL_CDMA_SMS_BD_TYPE_MAX32 = 0x10000000
} RIL_CDMA_SMS_BdMessageType;
typedef unsigned int RIL_CDMA_SMS_MessageNumber;
typedef struct {
RIL_CDMA_SMS_BdMessageType type;
RIL_CDMA_SMS_MessageNumber id_number;
unsigned char udh_present;
/* NOTE: if FEATURE_SMS_UDH is not defined,
** udh_present should be ignored.
*/
} RIL_CDMA_SMS_MessageId;
typedef unsigned char RIL_CDMA_SMS_UserResponse;
/* ------------------- */
/* ---- Timestamp ---- */
/* ------------------- */
typedef struct {
/* If 'year' is between 96 and 99, the actual year is 1900 + 'year';
if 'year' is between 00 and 95, the actual year is 2000 + 'year'.
NOTE: Each field has two BCD digits and byte arrangement is <MSB, ... ,LSB>
*/
unsigned char year; /* 0x00-0x99 */
unsigned char month; /* 0x01-0x12 */
unsigned char day; /* 0x01-0x31 */
unsigned char hour; /* 0x00-0x23 */
unsigned char minute; /* 0x00-0x59 */
unsigned char second; /* 0x00-0x59 */
signed char timezone; /* +/-, [-48,+48] number of 15 minutes - GW only */
} RIL_CDMA_SMS_Timestamp;
/* ------------------ */
/* ---- Priority ---- */
/* ------------------ */
typedef enum {
RIL_CDMA_SMS_PRIORITY_NORMAL = 0,
RIL_CDMA_SMS_PRIORITY_INTERACTIVE,
RIL_CDMA_SMS_PRIORITY_URGENT,
RIL_CDMA_SMS_PRIORITY_EMERGENCY,
RIL_CDMA_SMS_PRIORITY_MAX32 = 0x10000000
} RIL_CDMA_SMS_Priority;
/* ----------------- */
/* ---- Privacy ---- */
/* ----------------- */
typedef enum {
RIL_CDMA_SMS_PRIVACY_NORMAL = 0,
RIL_CDMA_SMS_PRIVACY_RESTRICTED,
RIL_CDMA_SMS_PRIVACY_CONFIDENTIAL,
RIL_CDMA_SMS_PRIVACY_SECRET,
RIL_CDMA_SMS_PRIVACY_MAX32 = 0x10000000
} RIL_CDMA_SMS_Privacy;
/* ---------------------- */
/* ---- Reply option ---- */
/* ---------------------- */
typedef struct {
/* whether user ack is requested
*/
unsigned char user_ack_requested;
/* whether delivery ack is requested.
Should be FALSE for incoming messages.
*/
unsigned char delivery_ack_requested;
/* Message originator requests the receiving phone to send back a READ_ACK
** message automatically when the user reads the received message.
*/
unsigned char read_ack_requested;
} RIL_CDMA_SMS_ReplyOption;
typedef enum {
RIL_CDMA_SMS_ALERT_MODE_DEFAULT = 0,
RIL_CDMA_SMS_ALERT_MODE_LOW_PRIORITY = 1,
RIL_CDMA_SMS_ALERT_MODE_MEDIUM_PRIORITY = 2,
RIL_CDMA_SMS_ALERT_MODE_HIGH_PRIORITY = 3,
/* For pre-IS637A implementations, alert_mode only has values of True/False:
*/
RIL_CDMA_SMS_ALERT_MODE_OFF = 0,
RIL_CDMA_SMS_ALERT_MODE_ON = 1
} RIL_CDMA_SMS_AlertMode;
/* ------------------ */
/* ---- Language ---- */
/* ------------------ */
typedef enum {
RIL_CDMA_SMS_LANGUAGE_UNSPECIFIED = 0,
RIL_CDMA_SMS_LANGUAGE_ENGLISH,
RIL_CDMA_SMS_LANGUAGE_FRENCH,
RIL_CDMA_SMS_LANGUAGE_SPANISH,
RIL_CDMA_SMS_LANGUAGE_JAPANESE,
RIL_CDMA_SMS_LANGUAGE_KOREAN,
RIL_CDMA_SMS_LANGUAGE_CHINESE,
RIL_CDMA_SMS_LANGUAGE_HEBREW,
RIL_CDMA_SMS_LANGUAGE_MAX32 = 0x10000000
} RIL_CDMA_SMS_Language;
/* ---------------------------------- */
/* ---------- Display Mode ---------- */
/* ---------------------------------- */
typedef enum {
RIL_CDMA_SMS_DISPLAY_MODE_IMMEDIATE = 0,
RIL_CDMA_SMS_DISPLAY_MODE_DEFAULT = 1,
RIL_CDMA_SMS_DISPLAY_MODE_USER_INVOKE = 2,
RIL_CDMA_SMS_DISPLAY_MODE_RESERVED = 3
} RIL_CDMA_SMS_DisplayMode;
/* IS-637B parameters/fields
*/
/* ---------------------------------- */
/* ---------- Delivery Status ------- */
/* ---------------------------------- */
typedef enum {
RIL_CDMA_SMS_DELIVERY_STATUS_ACCEPTED = 0, /* ERROR_CLASS_NONE */
RIL_CDMA_SMS_DELIVERY_STATUS_DEPOSITED_TO_INTERNET = 1, /* ERROR_CLASS_NONE */
RIL_CDMA_SMS_DELIVERY_STATUS_DELIVERED = 2, /* ERROR_CLASS_NONE */
RIL_CDMA_SMS_DELIVERY_STATUS_CANCELLED = 3, /* ERROR_CLASS_NONE */
RIL_CDMA_SMS_DELIVERY_STATUS_NETWORK_CONGESTION = 4, /* ERROR_CLASS_TEMP & PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_NETWORK_ERROR = 5, /* ERROR_CLASS_TEMP & PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_CANCEL_FAILED = 6, /* ERROR_CLASS_PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_BLOCKED_DESTINATION = 7, /* ERROR_CLASS_PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_TEXT_TOO_LONG = 8, /* ERROR_CLASS_PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_DUPLICATE_MESSAGE = 9, /* ERROR_CLASS_PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_INVALID_DESTINATION = 10, /* ERROR_CLASS_PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_MESSAGE_EXPIRED = 13, /* ERROR_CLASS_PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_UNKNOWN_ERROR = 0x1F /* ERROR_CLASS_PERM */
/* All the other values are reserved */
} RIL_CDMA_SMS_DeliveryStatusE;
typedef struct {
RIL_CDMA_SMS_ErrorClass error_class;
RIL_CDMA_SMS_DeliveryStatusE status;
} RIL_CDMA_SMS_DeliveryStatus;
typedef struct {
unsigned char address[RIL_CDMA_SMS_IP_ADDRESS_SIZE];
unsigned char is_valid;
} RIL_CDMA_SMS_IpAddress;
/* This special parameter captures any unrecognized/proprietary parameters
*/
typedef struct {
unsigned char input_other_len;
unsigned char desired_other_len; /* used during decoding */
unsigned char * other_data;
} RIL_CDMA_SMS_OtherParm;
typedef struct {
/* the mask indicates which fields are present in this message */
unsigned int mask;
RIL_CDMA_SMS_MessageId message_id;
RIL_CDMA_SMS_CdmaUserData user_data;
RIL_CDMA_SMS_UserResponse user_response;
RIL_CDMA_SMS_Timestamp mc_time;
RIL_CDMA_SMS_Timestamp validity_absolute;
RIL_CDMA_SMS_Timestamp validity_relative;
RIL_CDMA_SMS_Timestamp deferred_absolute;
RIL_CDMA_SMS_Timestamp deferred_relative;
RIL_CDMA_SMS_Priority priority;
RIL_CDMA_SMS_Privacy privacy;
RIL_CDMA_SMS_ReplyOption reply_option;
unsigned char num_messages; /* the actual value; not BCDs */
RIL_CDMA_SMS_AlertMode alert_mode;
/* For pre-IS-637A implementations, alert_mode is either Off or On. */
RIL_CDMA_SMS_Language language;
RIL_CDMA_SMS_Address callback;
RIL_CDMA_SMS_DisplayMode display_mode;
RIL_CDMA_SMS_DeliveryStatus delivery_status;
unsigned int deposit_index;
RIL_CDMA_SMS_IpAddress ip_address;
unsigned char rsn_no_notify;
/* See function comments of wms_ts_decode() and
** wms_ts_decode_cdma_bd_with_other() for details regarding 'other' parameters
*/
RIL_CDMA_SMS_OtherParm other;
} RIL_CDMA_SMS_ClientBd;
typedef struct {
unsigned char length; /* length, in bytes, of the encoded SMS message */
unsigned char * data; /* the encoded SMS message (max 255 bytes) */
} RIL_CDMA_Encoded_SMS;
#ifdef __cplusplus
}
#endif
#endif /*ANDROID_RIL_CDMA_SMS_H*/

View file

@ -0,0 +1,46 @@
/* //device/libs/telephony/ril_commands.h
**
** Copyright 2006, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
{10000, NULL},
{RIL_REQUEST_DIAL_EMERGENCY_CALL, NULL}, // 10001
{RIL_REQUEST_CALL_DEFLECTION, NULL}, // 10002
{RIL_REQUEST_MODIFY_CALL_INITIATE, NULL}, // 10003
{RIL_REQUEST_MODIFY_CALL_CONFIRM, NULL}, // 10004
{RIL_REQUEST_SET_VOICE_DOMAIN_PREF, NULL}, // 10005
{RIL_REQUEST_SAFE_MODE, NULL}, // 10006
{RIL_REQUEST_SET_TRANSMIT_POWER, NULL}, // 10007
{RIL_REQUEST_GET_CELL_BROADCAST_CONFIG, NULL}, // 10008
{RIL_REQUEST_GET_PHONEBOOK_STORAGE_INFO, NULL}, // 10009
{RIL_REQUEST_GET_PHONEBOOK_ENTRY, NULL}, // 10010
{RIL_REQUEST_ACCESS_PHONEBOOK_ENTRY, NULL}, // 10011
{RIL_REQUEST_USIM_PB_CAPA, NULL}, // 10012
{RIL_REQUEST_LOCK_INFO, NULL}, // 10013
{RIL_REQUEST_STK_SIM_INIT_EVENT, NULL}, // 10014
{RIL_REQUEST_SET_PREFERRED_NETWORK_LIST, NULL}, // 10015
{RIL_REQUEST_GET_PREFERRED_NETWORK_LIST, NULL}, // 10016
{RIL_REQUEST_CHANGE_SIM_PERSO, NULL}, // 10017
{RIL_REQUEST_ENTER_SIM_PERSO, NULL}, // 10018
{RIL_REQUEST_SEND_ENCODED_USSD, NULL}, // 10019
{RIL_REQUEST_CDMA_SEND_SMS_EXPECT_MORE, NULL}, // 10020
{RIL_REQUEST_HANGUP_VT, NULL}, // 10021
{RIL_REQUEST_HOLD, NULL}, // 10022
{RIL_REQUEST_SET_SIM_POWER, NULL}, // 10023
{RIL_REQUEST_UICC_GBA_AUTHENTICATE_BOOTSTRAP, NULL}, // 10025
{RIL_REQUEST_UICC_GBA_AUTHENTICATE_NAF, NULL}, // 10026
{RIL_REQUEST_GET_INCOMING_COMMUNICATION_BARRING, NULL}, // 10027
{RIL_REQUEST_SET_INCOMING_COMMUNICATION_BARRING, NULL}, // 10028
{RIL_REQUEST_QUERY_CNAP, NULL}, // 10029
{RIL_REQUEST_SET_TRANSFER_CALL, NULL}, // 10030

View file

@ -0,0 +1,48 @@
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ANDROID_RIL_MSIM_H
#define ANDROID_RIL_MSIM_H 1
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
RIL_UICC_SUBSCRIPTION_DEACTIVATE = 0,
RIL_UICC_SUBSCRIPTION_ACTIVATE = 1
} RIL_UiccSubActStatus;
typedef enum {
RIL_SUBSCRIPTION_1 = 0,
RIL_SUBSCRIPTION_2 = 1,
RIL_SUBSCRIPTION_3 = 2
} RIL_SubscriptionType;
typedef struct {
int slot; /* 0, 1, ... etc. */
int app_index; /* array subscriptor from applications[RIL_CARD_MAX_APPS] in
RIL_REQUEST_GET_SIM_STATUS */
RIL_SubscriptionType sub_type; /* Indicates subscription 1 or subscription 2 */
RIL_UiccSubActStatus act_status;
} RIL_SelectUiccSub;
#ifdef __cplusplus
}
#endif
#endif /*ANDROID_RIL_MSIM_H*/

View file

@ -0,0 +1,88 @@
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ANDROID_RIL_NV_ITEMS_H
#define ANDROID_RIL_NV_ITEMS_H 1
#include <stdlib.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Must match the values in RadioNVItems.java in frameworks/opt/telephony. */
typedef enum {
// CDMA radio and account information (items 1-10)
RIL_NV_CDMA_MEID = 1, // CDMA MEID (hex)
RIL_NV_CDMA_MIN = 2, // CDMA MIN (MSID)
RIL_NV_CDMA_MDN = 3, // CDMA MDN
RIL_NV_CDMA_ACCOLC = 4, // CDMA access overload control
// Carrier device provisioning (items 11-30)
RIL_NV_DEVICE_MSL = 11, // device MSL
RIL_NV_RTN_RECONDITIONED_STATUS = 12, // RTN reconditioned status
RIL_NV_RTN_ACTIVATION_DATE = 13, // RTN activation date
RIL_NV_RTN_LIFE_TIMER = 14, // RTN life timer
RIL_NV_RTN_LIFE_CALLS = 15, // RTN life calls
RIL_NV_RTN_LIFE_DATA_TX = 16, // RTN life data TX
RIL_NV_RTN_LIFE_DATA_RX = 17, // RTN life data RX
RIL_NV_OMADM_HFA_LEVEL = 18, // HFA in progress
// Mobile IP profile information (items 31-50)
RIL_NV_MIP_PROFILE_NAI = 31, // NAI realm
RIL_NV_MIP_PROFILE_HOME_ADDRESS = 32, // MIP home address
RIL_NV_MIP_PROFILE_AAA_AUTH = 33, // AAA auth
RIL_NV_MIP_PROFILE_HA_AUTH = 34, // HA auth
RIL_NV_MIP_PROFILE_PRI_HA_ADDR = 35, // primary HA address
RIL_NV_MIP_PROFILE_SEC_HA_ADDR = 36, // secondary HA address
RIL_NV_MIP_PROFILE_REV_TUN_PREF = 37, // reverse TUN preference
RIL_NV_MIP_PROFILE_HA_SPI = 38, // HA SPI
RIL_NV_MIP_PROFILE_AAA_SPI = 39, // AAA SPI
RIL_NV_MIP_PROFILE_MN_HA_SS = 40, // HA shared secret
RIL_NV_MIP_PROFILE_MN_AAA_SS = 41, // AAA shared secret
// CDMA network and band config (items 51-70)
RIL_NV_CDMA_PRL_VERSION = 51, // CDMA PRL version
RIL_NV_CDMA_BC10 = 52, // CDMA band class 10
RIL_NV_CDMA_BC14 = 53, // CDMA band class 14
RIL_NV_CDMA_SO68 = 54, // CDMA SO68
RIL_NV_CDMA_SO73_COP0 = 55, // CDMA SO73 COP0
RIL_NV_CDMA_SO73_COP1TO7 = 56, // CDMA SO73 COP1-7
RIL_NV_CDMA_1X_ADVANCED_ENABLED = 57, // CDMA 1X Advanced enabled
RIL_NV_CDMA_EHRPD_ENABLED = 58, // CDMA eHRPD enabled
RIL_NV_CDMA_EHRPD_FORCED = 59, // CDMA eHRPD forced
// LTE network and band config (items 71-90)
RIL_NV_LTE_BAND_ENABLE_25 = 71, // LTE band 25 enable
RIL_NV_LTE_BAND_ENABLE_26 = 72, // LTE band 26 enable
RIL_NV_LTE_BAND_ENABLE_41 = 73, // LTE band 41 enable
RIL_NV_LTE_SCAN_PRIORITY_25 = 74, // LTE band 25 scan priority
RIL_NV_LTE_SCAN_PRIORITY_26 = 75, // LTE band 26 scan priority
RIL_NV_LTE_SCAN_PRIORITY_41 = 76, // LTE band 41 scan priority
RIL_NV_LTE_HIDDEN_BAND_PRIORITY_25 = 77, // LTE hidden band 25 priority
RIL_NV_LTE_HIDDEN_BAND_PRIORITY_26 = 78, // LTE hidden band 26 priority
RIL_NV_LTE_HIDDEN_BAND_PRIORITY_41 = 79, // LTE hidden band 41 priority
} RIL_NV_Item;
#ifdef __cplusplus
}
#endif
#endif /* ANDROID_RIL_NV_ITEMS_H */

View file

@ -0,0 +1,85 @@
/* //device/libs/telephony/ril_unsol_commands.h
**
** Copyright 2006, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
{SAMSUNG_UNSOL_RESPONSE_BASE, NULL, WAKE_PARTIAL}, // 11000
{RIL_UNSOL_RELEASE_COMPLETE_MESSAGE, NULL, WAKE_PARTIAL}, // 11001
{RIL_UNSOL_STK_SEND_SMS_RESULT, NULL, WAKE_PARTIAL}, // 11002
{RIL_UNSOL_STK_CALL_CONTROL_RESULT, NULL, WAKE_PARTIAL}, // 11003
{11004, NULL, WAKE_PARTIAL},
{11005, NULL, WAKE_PARTIAL},
{11006, NULL, WAKE_PARTIAL},
{11007, NULL, WAKE_PARTIAL},
{RIL_UNSOL_DEVICE_READY_NOTI, NULL, WAKE_PARTIAL}, // 11008
{RIL_UNSOL_GPS_NOTI, NULL, WAKE_PARTIAL}, // 11009
{RIL_UNSOL_AM, NULL, WAKE_PARTIAL}, // 11010
{RIL_UNSOL_DUN_PIN_CONTROL_SIGNAL, NULL, WAKE_PARTIAL}, // 11011
{RIL_UNSOL_DATA_SUSPEND_RESUME, NULL, WAKE_PARTIAL}, // 11012
{RIL_UNSOL_SAP, NULL, WAKE_PARTIAL}, // 11013
{11014, NULL, WAKE_PARTIAL},
{11015, NULL, WAKE_PARTIAL},
{11016, NULL, WAKE_PARTIAL},
{RIL_UNSOL_WB_AMR_STATE, NULL, WAKE_PARTIAL},
{11018, NULL, WAKE_PARTIAL},
{11019, NULL, WAKE_PARTIAL},
{RIL_UNSOL_UART, NULL, WAKE_PARTIAL},
{RIL_UNSOL_SIM_PB_READY, NULL, WAKE_PARTIAL},
{11022, NULL, WAKE_PARTIAL},
{11023, NULL, WAKE_PARTIAL},
{RIL_UNSOL_VE, NULL, WAKE_PARTIAL}, // 11024
{11025, NULL, WAKE_PARTIAL},
{RIL_UNSOL_FACTORY_AM, NULL, WAKE_PARTIAL}, // 11026
{RIL_UNSOL_IMS_REGISTRATION_STATE_CHANGED, NULL, WAKE_PARTIAL}, // 11027
{RIL_UNSOL_MODIFY_CALL, NULL, WAKE_PARTIAL}, // 11028
{11029, NULL, WAKE_PARTIAL},
{RIL_UNSOL_CS_FALLBACK, NULL, WAKE_PARTIAL}, // 11030
{11031, NULL, WAKE_PARTIAL},
{RIL_UNSOL_VOICE_SYSTEM_ID, NULL, WAKE_PARTIAL}, // 11032
{11033, NULL, WAKE_PARTIAL},
{RIL_UNSOL_IMS_RETRYOVER, NULL, WAKE_PARTIAL}, // 11034
{RIL_UNSOL_PB_INIT_COMPLETE, NULL, WAKE_PARTIAL}, // 11035
{11036, NULL, WAKE_PARTIAL},
{RIL_UNSOL_HYSTERESIS_DCN, NULL, WAKE_PARTIAL}, // 11037
{RIL_UNSOL_CP_POSITION, NULL, WAKE_PARTIAL}, // 11038
{11039, NULL, WAKE_PARTIAL},
{11040, NULL, WAKE_PARTIAL},
{11041, NULL, WAKE_PARTIAL},
{11042, NULL, WAKE_PARTIAL},
{RIL_UNSOL_HOME_NETWORK_NOTI, NULL, WAKE_PARTIAL}, // 11043
{11044, NULL, WAKE_PARTIAL},
{11045, NULL, WAKE_PARTIAL},
{11046, NULL, WAKE_PARTIAL},
{11047, NULL, WAKE_PARTIAL},
{11048, NULL, WAKE_PARTIAL},
{11049, NULL, WAKE_PARTIAL},
{11050, NULL, WAKE_PARTIAL},
{11051, NULL, WAKE_PARTIAL},
{11052, NULL, WAKE_PARTIAL},
{11053, NULL, WAKE_PARTIAL},
{RIL_UNSOL_STK_CALL_STATUS, NULL, WAKE_PARTIAL}, // 11054
{11055, NULL, WAKE_PARTIAL},
{RIL_UNSOL_MODEM_CAP, NULL, WAKE_PARTIAL}, // 11056
{RIL_UNSOL_SIM_SWAP_STATE_CHANGED, NULL, WAKE_PARTIAL}, // 11057
{11058, NULL, WAKE_PARTIAL},
{11059, NULL, WAKE_PARTIAL},
{RIL_UNSOL_DUN, NULL, WAKE_PARTIAL}, // 11060
{RIL_UNSOL_IMS_PREFERENCE_CHANGED, NULL, WAKE_PARTIAL}, // 11061
{RIL_UNSOL_SIM_APPLICATION_REFRESH, NULL, WAKE_PARTIAL}, // 11062
{RIL_UNSOL_UICC_APPLICATION_STATUS, NULL, WAKE_PARTIAL}, // 11063
{RIL_UNSOL_VOICE_RADIO_BEARER_HO_STATUS, NULL, WAKE_PARTIAL}, // 11064
{RIL_UNSOL_CLM_NOTI, NULL, WAKE_PARTIAL},
{RIL_UNSOL_SIM_ICCID_NOTI, NULL, WAKE_PARTIAL},
{RIL_UNSOL_SNDMGR_WB_AMR_REPORT, NULL, WAKE_PARTIAL}, // 20017
{RIL_UNSOL_SNDMGR_CLOCK_CTRL, NULL, WAKE_PARTIAL}, // 20022

14
lineage.dependencies Normal file
View file

@ -0,0 +1,14 @@
[
{
"repository": "android_hardware_samsung",
"target_path": "hardware/samsung"
},
{
"repository": "android_kernel_samsung_exynos7870",
"target_path": "kernel/samsung/exynos7870"
},
{
"repository": "android_packages_resources_devicesettings",
"target_path": "packages/resources/devicesettings"
}
]

422
manifest.xml Normal file
View file

@ -0,0 +1,422 @@
<manifest version="1.0" type="device" target-level="3">
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
<version>5.0</version>
<interface>
<name>IDevicesFactory</name>
<instance>default</instance>
</interface>
<fqname>@5.0::IDevicesFactory/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.audio.effect</name>
<transport>hwbinder</transport>
<version>5.0</version>
<interface>
<name>IEffectsFactory</name>
<instance>default</instance>
</interface>
<fqname>@5.0::IEffectsFactory/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.biometrics.fingerprint</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IBiometricsFingerprint</name>
<instance>default</instance>
</interface>
<fqname>@2.1::IBiometricsFingerprint/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.bluetooth</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IBluetoothHci</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IBluetoothHci/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.camera.provider</name>
<transport>hwbinder</transport>
<version>2.4</version>
<interface>
<name>ICameraProvider</name>
<instance>legacy/0</instance>
</interface>
<fqname>@2.4::ICameraProvider/legacy/0</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.configstore</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>ISurfaceFlingerConfigs</name>
<instance>default</instance>
</interface>
<fqname>@1.1::ISurfaceFlingerConfigs/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.drm</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ICryptoFactory</name>
<instance>default</instance>
</interface>
<interface>
<name>IDrmFactory</name>
<instance>default</instance>
</interface>
<fqname>@1.0::ICryptoFactory/default</fqname>
<fqname>@1.0::IDrmFactory/default</fqname>
<fqname>@1.1::ICryptoFactory/widevine</fqname>
<fqname>@1.1::IDrmFactory/widevine</fqname>
<fqname>@1.2::ICryptoFactory/clearkey</fqname>
<fqname>@1.2::IDrmFactory/clearkey</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.gatekeeper</name>
<transport arch="32+64">passthrough</transport>
<version>1.0</version>
<interface>
<name>IGatekeeper</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IGatekeeper/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.gnss</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IGnss</name>
<instance>default</instance>
</interface>
<fqname>@1.1::IGnss/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.allocator</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IAllocator</name>
<instance>default</instance>
</interface>
<fqname>@2.0::IAllocator/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.composer</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IComposer</name>
<instance>default</instance>
</interface>
<fqname>@2.1::IComposer/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.mapper</name>
<transport arch="32+64">passthrough</transport>
<version>2.0</version>
<interface>
<name>IMapper</name>
<instance>default</instance>
</interface>
<fqname>@2.0::IMapper/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.health</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IHealth</name>
<instance>default</instance>
</interface>
<fqname>@2.0::IHealth/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.keymaster</name>
<transport>hwbinder</transport>
<version>3.0</version>
<interface>
<name>IKeymasterDevice</name>
<instance>default</instance>
</interface>
<fqname>@3.0::IKeymasterDevice/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.light</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>ILight</name>
<instance>default</instance>
</interface>
<fqname>@2.0::ILight/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.media.omx</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOmx</name>
<instance>default</instance>
</interface>
<interface>
<name>IOmxStore</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IOmx/default</fqname>
<fqname>@1.0::IOmxStore/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.memtrack</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IMemtrack</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IMemtrack/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.nfc</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>INfc</name>
<instance>default</instance>
</interface>
<fqname>@1.1::INfc/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.power</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IPower</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IPower/default</fqname>
</hal>
<hal format="hidl" override="true">
<name>android.hardware.radio</name>
<transport>hwbinder</transport>
</hal>
<hal format="hidl" override="true">
<name>android.hardware.radio</name>
<transport>hwbinder</transport>
<fqname>@1.2::ISap/slot1</fqname>
<fqname>@1.2::ISap/slot2</fqname>
<fqname>@1.4::IRadio/slot1</fqname>
<fqname>@1.4::IRadio/slot2</fqname>
</hal>
<hal format="hidl" override="true">
<name>android.hardware.radio.config</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IRadioConfig</name>
<instance>default</instance>
</interface>
<fqname>@1.1::IRadioConfig/default</fqname>
</hal>
<hal format="hidl" override="true">
<name>android.hardware.radio.deprecated</name>
<transport>hwbinder</transport>
</hal>
<hal format="hidl">
<name>android.hardware.renderscript</name>
<transport arch="32+64">passthrough</transport>
<version>1.0</version>
<interface>
<name>IDevice</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IDevice/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.sensors</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ISensors</name>
<instance>default</instance>
</interface>
<fqname>@1.0::ISensors/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.soundtrigger</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>ISoundTriggerHw</name>
<instance>default</instance>
</interface>
<fqname>@2.1::ISoundTriggerHw/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.tetheroffload.config</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOffloadConfig</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IOffloadConfig/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.tetheroffload.control</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOffloadControl</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IOffloadControl/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.thermal</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IThermal</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IThermal/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.usb</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IUsb</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IUsb/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.vibrator</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IVibrator</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IVibrator/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.wifi</name>
<transport>hwbinder</transport>
<version>1.3</version>
<interface>
<name>IWifi</name>
<instance>default</instance>
</interface>
<fqname>@1.3::IWifi/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.wifi.hostapd</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IHostapd</name>
<instance>default</instance>
</interface>
<fqname>@1.1::IHostapd/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.wifi.supplicant</name>
<transport>hwbinder</transport>
<version>1.2</version>
<interface>
<name>ISupplicant</name>
<instance>default</instance>
</interface>
<fqname>@1.2::ISupplicant/default</fqname>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.ant</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAntHci</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IAntHci/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.samsung.hardware.biometrics.fingerprint</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>ISecBiometricsFingerprint</name>
<instance>default</instance>
</interface>
<fqname>@2.1::ISecBiometricsFingerprint/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.samsung.hardware.gnss</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ISecGnss</name>
<instance>default</instance>
</interface>
<fqname>@1.0::ISecGnss/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.samsung.hardware.nfc</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>ISecNfc</name>
<instance>default</instance>
</interface>
<fqname>@1.1::ISecNfc/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.samsung.hardware.radio</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>ISehRadio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
<fqname>@2.0::ISehRadio/slot1</fqname>
<fqname>@2.0::ISehRadio/slot2</fqname>
</hal>
<hal format="hidl">
<name>vendor.samsung.hardware.radio.bridge</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>ISehBridge</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
<fqname>@2.0::ISehBridge/slot1</fqname>
<fqname>@2.0::ISehBridge/slot2</fqname>
</hal>
<hal format="hidl">
<name>vendor.samsung.hardware.radio.channel</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>ISehChannel</name>
<instance>epdgd</instance>
<instance>epdgd2</instance>
<instance>imsd</instance>
<instance>imsd2</instance>
</interface>
<fqname>@2.0::ISehChannel/epdgd</fqname>
<fqname>@2.0::ISehChannel/epdgd2</fqname>
<fqname>@2.0::ISehChannel/imsd</fqname>
<fqname>@2.0::ISehChannel/imsd2</fqname>
</hal>
</manifest>

View file

@ -0,0 +1,634 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2014, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<resources>
<!-- Flag indicating whether the we should enable the automatic brightness in Settings.
Software implementation will be used if config_hardware_auto_brightness_available is not set -->
<bool name="config_automatic_brightness_available">true</bool>
<!-- Array of light sensor lux values to define our levels for auto backlight brightness support.
The N entries of this array define N + 1 control points as follows:
(1-based arrays)
Point 1: (0, value[1]): lux <= 0
Point 2: (level[1], value[2]): 0 < lux <= level[1]
Point 3: (level[2], value[3]): level[2] < lux <= level[3]
...
Point N+1: (level[N], value[N+1]): level[N] < lux
The control points must be strictly increasing. Each control point
corresponds to an entry in the brightness backlight values arrays.
For example, if lux == level[1] (first element of the levels array)
then the brightness will be determined by value[2] (second element
of the brightness values array).
Spline interpolation is used to determine the auto-brightness
backlight values for lux levels between these control points.
Must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLevels">
<item>2</item>
<item>7</item>
<item>15</item>
<item>50</item>
<item>100</item>
<item>200</item>
<item>400</item>
<item>1000</item>
<item>2000</item>
<item>3000</item>
<item>5000</item>
<item>10000</item>
</integer-array>
<!-- Array of output values for LCD backlight corresponding to the LUX values
in the config_autoBrightnessLevels array. This array should have size one greater
than the size of the config_autoBrightnessLevels array.
This must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLcdBacklightValues">
<item>12</item> <!-- 0-2 -->
<item>22</item> <!-- 3-7 -->
<item>32</item> <!-- 5-15 -->
<item>42</item> <!-- 15-50 -->
<item>52</item> <!-- 50-100 -->
<item>62</item> <!-- 100-200 -->
<item>72</item> <!-- 200-400 -->
<item>82</item> <!-- 400-1000 -->
<item>96</item> <!-- 1000-2000 -->
<item>134</item> <!-- 2000-3000 -->
<item>178</item> <!-- 3000-5000 -->
<item>225</item> <!-- 5000-10000 -->
<item>255</item> <!-- 10000+ -->
</integer-array>
<!-- An array describing the screen's backlight values corresponding to the brightness
values in the config_screenBrightnessNits array.
This array should be equal in size to config_screenBrightnessBacklight. -->
<integer-array name="config_screenBrightnessBacklight">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
<item>11</item>
<item>12</item>
<item>13</item>
<item>14</item>
<item>15</item>
<item>16</item>
<item>17</item>
<item>18</item>
<item>19</item>
<item>20</item>
<item>25</item>
<item>30</item>
<item>35</item>
<item>40</item>
<item>45</item>
<item>50</item>
<item>55</item>
<item>60</item>
<item>65</item>
<item>70</item>
<item>75</item>
<item>80</item>
<item>85</item>
<item>90</item>
<item>95</item>
<item>100</item>
<item>105</item>
<item>110</item>
<item>115</item>
<item>120</item>
<item>125</item>
<item>130</item>
<item>135</item>
<item>140</item>
<item>145</item>
<item>150</item>
<item>155</item>
<item>160</item>
<item>165</item>
<item>170</item>
<item>175</item>
<item>180</item>
<item>185</item>
<item>190</item>
<item>195</item>
<item>200</item>
<item>205</item>
<item>210</item>
<item>215</item>
<item>220</item>
<item>225</item>
<item>230</item>
<item>235</item>
<item>240</item>
<item>245</item>
<item>250</item>
<item>255</item>
</integer-array>
<!-- Screen brightness used to dim the screen when the user activity
timeout expires. May be less than the minimum allowed brightness setting
that can be set by the user. -->
<integer name="config_screenBrightnessDim">6</integer>
<!-- Default screen brightness setting.
Must be in the range specified by minimum and maximum. -->
<integer name="config_screenBrightnessSettingDefault">184</integer>
<!-- Minimum screen brightness setting allowed by the power manager.
The user is forbidden from setting the brightness below this level. -->
<integer name="config_screenBrightnessSettingMinimum">1</integer>
<!-- Radius of the software rounded corners. -->
<dimen name="rounded_corner_radius">2px</dimen>
<!-- Boolean indicating whether we want button brightness support -->
<bool name="config_button_brightness_support">false</bool>
<!-- Maximum screen brightness allowed by the power manager.
The user is forbidden from setting the brightness above this level. -->
<integer name="config_screenBrightnessSettingMaximum">255</integer>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
USB interfaces. If the device doesn't want to support tething over USB this should
be empty. An example would be "usb.*" -->
<string-array translatable="false" name="config_tether_usb_regexs">
<item>rndis\\d</item>
</string-array>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
Wifi interfaces. If the device doesn't want to support tethering over Wifi this
should be empty. An example would be "softap.*" -->
<string-array translatable="false" name="config_tether_wifi_regexs">
<item>"wlan0"</item>
<item>"swlan0"</item>
<item>"softap.*"</item>
</string-array>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
bluetooth interfaces. If the device doesn't want to support tethering over bluetooth this
should be empty. -->
<string-array translatable="false" name="config_tether_bluetooth_regexs">
<item>bt-pan</item>
</string-array>
<!-- Array of allowable ConnectivityManager network types for tethering -->
<!-- Common options are [1, 4] for TYPE_WIFI and TYPE_MOBILE_DUN or
[0,1,5,7] for TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI and TYPE_BLUETOOTH -->
<integer-array translatable="false" name="config_tether_upstream_types">
<item>0</item>
<item>1</item>
<item>4</item>
<item>5</item>
<item>7</item>
<item>9</item>
</integer-array>
<!-- The default iface on which to monitor data use -->
<string name="config_datause_iface" translatable="false">rmnet0</string>
<!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
<bool name="config_unplugTurnsOnScreen">true</bool>
<!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
<bool translatable="false" name="config_wifi_dual_band_support">true</bool>
<!-- Wifi driver supports batched scan -->
<bool translatable="false" name="config_wifi_batched_scan_supported">true</bool>
<!-- Boolean indicating whether 802.11r Fast BSS Transition is enabled on this platform -->
<bool translatable="false" name="config_wifi_fast_bss_transition_enabled">true</bool>
<!-- Boolean indicating whether the wifi chipset supports background scanning mechanism.
This mechanism allows the host to remain in suspend state and the dongle to actively
scan and wake the host when a configured SSID is detected by the dongle. This chipset
capability can provide power savings when wifi needs to be always kept on. -->
<bool translatable="false" name="config_wifi_background_scan_support">true</bool>
<!-- Integer thresholds, do not connect to APs with RSSI lower than these values -->
<integer translatable="false" name="config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz">-82</integer>
<integer translatable="false" name="config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz">-85</integer>
<!-- Integer thresholds for low network score, should be somewhat less than the entry threshholds -->
<integer translatable="false" name="config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz">-79</integer>
<integer translatable="false" name="config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz">-82</integer>
<!-- Boolean indicating whether or not to revert to default country code when cellular
radio is unable to find any MCC information to infer wifi country code from -->
<bool translatable="false" name="config_wifi_revert_country_code_on_cellular_loss">false</bool>
<!-- This string array should be overridden by the device to present a list of network
attributes. This is used by the connectivity manager to decide which networks can coexist
based on the hardware -->
<!-- An Array of "[Connection name],[ConnectivityManager.TYPE_xxxx],
[associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet] -->
<!-- the 5th element "resore-time" indicates the number of milliseconds to delay
before automatically restore the default connection. Set -1 if the connection
does not require auto-restore. -->
<!-- the 6th element indicates boot-time dependency-met value. -->
<string-array translatable="false" name="networkAttributes">
<item>"wifi,1,1,1,-1,true"</item>
<item>"mobile,0,0,0,-1,true"</item>
<item>"mobile_mms,2,0,4,60000,true"</item>
<item>"mobile_supl,3,0,2,60000,true"</item>
<item>"mobile_dun,4,0,2,60000,true"</item>
<item>"mobile_hipri,5,0,3,60000,true"</item>
<item>"mobile_fota,10,0,2,60000,true"</item>
<item>"mobile_ims,11,0,2,60000,true"</item>
<item>"mobile_cbs,12,0,2,60000,true"</item>
<item>"mobile_ia,14,0,2,-1,true"</item>
<item>"bluetooth,7,7,2,-1,true"</item>
<item>"ethernet,9,9,9,-1,true"</item>
<item>"mobile_emergency,15,0,5,-1,true</item>
</string-array>
<!-- Dhcp range (min, max) to use for tethering purposes -->
<!-- USB is 192.168.42.1 and 255.255.255.0
Wifi is 192.168.43.1 and 255.255.255.0
BT is limited to max default of 5 connections. 192.168.44.1 to 192.168.48.1
with 255.255.255.0
P2P is 192.168.49.1 and 255.255.255.0
Wigig is 192.168.50.1 and 255.255.255.0
Wigig P2P is 192.168.51.1 and 255.255.255.0
-->
<string-array translatable="false" name="config_tether_dhcp_range">
<item>192.168.42.2</item>
<item>192.168.42.254</item>
<item>192.168.43.2</item>
<item>192.168.43.254</item>
<item>192.168.44.2</item>
<item>192.168.44.254</item>
<item>192.168.45.2</item>
<item>192.168.45.254</item>
<item>192.168.46.2</item>
<item>192.168.46.254</item>
<item>192.168.47.2</item>
<item>192.168.47.254</item>
<item>192.168.48.2</item>
<item>192.168.48.254</item>
<item>192.168.49.2</item>
<item>192.168.49.254</item>
<item>192.168.50.2</item>
<item>192.168.50.254</item>
<item>192.168.51.2</item>
<item>192.168.51.254</item>
</string-array>
<!-- This string array should be overridden by the device to present a list of radio
attributes. This is used by the connectivity manager to decide which networks can coexist
based on the hardware -->
<!-- An Array of "[ConnectivityManager connectionType],
[# simultaneous connection types]" -->
<string-array translatable="false" name="radioAttributes">
<item>"1,1"</item>
<item>"0,1"</item>
<item>"7,1"</item>
<item>"9,1"</item>
</string-array>
<!-- Boolean indicating if restoring network selection should be skipped -->
<!-- The restoring is handled by modem if it is true -->
<bool translatable="false" name="skip_restoring_network_selection">true</bool>
<!-- When true use the linux /dev/input/event subsystem to detect the switch changes
on the headphone/microphone jack. When false use the older uevent framework -->
<bool name="config_useDevInputEventForAudioJack">false</bool>
<!-- Set to true to add links to Cell Broadcast app from Settings and MMS app. -->
<bool name="config_cellBroadcastAppLinks">true</bool>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">Android-Mms/2.0</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
<bool name="config_ui_enableFadingMarquee">false</bool>
<!-- reference volume index for music stream to limit headphone volume and display warning -->
<integer name="config_safe_media_volume_index">18</integer>
<!-- Whether WiFi display is supported by this device.
There are many prerequisites for this feature to work correctly.
Here are a few of them:
* The WiFi radio must support WiFi P2P.
* The WiFi radio must support concurrent connections to the WiFi display and
to an access point.
* The Audio Flinger audio_policy.conf file must specify a rule for the "r_submix"
remote submix module. This module is used to record and stream system
audio output to the WiFi display encoder in the media server.
* The remote submix module "audio.r_submix.default" must be installed on the device.
* The device must be provisioned with HDCP keys (for protected content).
-->
<bool name="config_enableWifiDisplay">true</bool>
<!-- Set to true if the wifi display supports compositing content stored
in gralloc protected buffers. For this to be true, there must exist
a protected hardware path for surface flinger to composite and send
protected buffers to the wifi display video encoder.
If this flag is false, we advise applications not to use protected
buffers (if possible) when presenting content to a wifi display because
the content may be blanked.
This flag controls whether the {@link Display#FLAG_SUPPORTS_PROTECTED_BUFFERS}
flag is set for wifi displays.
-->
<bool name="config_wifiDisplaySupportsProtectedBuffers">false</bool>
<!-- Flag indicating if the speed up audio on mt call code should be executed -->
<bool name="config_speed_up_audio_on_mt_calls">true</bool>
<!-- Indicate whether closing the lid causes the device to go to sleep and opening
it causes the device to wake up.
The default is false. -->
<bool name="config_lidControlsSleep">true</bool>
<!-- Indicate whether to allow the device to suspend when the screen is off
due to the proximity sensor. This resource should only be set to true
if the sensor HAL correctly handles the proximity sensor as a wake-up source.
Otherwise, the device may fail to wake out of suspend reliably.
The default is false. -->
<bool name="config_suspendWhenScreenOffDueToProximity">true</bool>
<!-- Disable lockscreen translucent decor by default -->
<bool name="config_enableLockScreenTranslucentDecor">true</bool>
<!-- The list absolute paths of jar/apk files containing the device specific handlers,
delimited by File.pathSeparator, which defaults to ":" on Android -->
<string name="config_deviceKeyHandlerLib" translatable="false">/system/priv-app/DeviceParts/DeviceParts.apk</string>
<!-- Full qualified name of the class that implements
com.android.internal.os.DeviceKeyHandler interface. -->
<string name="config_deviceKeyHandlerClass" translatable="false">org.omnirom.device.KeyHandler</string>
<!-- Flag specifying whether WFC over IMS is available on device -->
<bool name="config_device_wfc_ims_available">true</bool>
<!-- Flag specifying whether WFC over IMS should be available for carrier: independent of
carrier provisioning. If false: hard disabled. If true: then depends on carrier
provisioning, availability etc -->
<bool name="config_carrier_wfc_ims_available">true</bool>
<!-- Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">4</integer>
<!-- Whether Multiuser UI should be shown -->
<bool name="config_enableMultiUserUI">true</bool>
<!-- Screen brightness when dozing -->
<integer name="config_screenBrightnessDoze">20</integer>
<!-- Dream of notifications -->
<string name="config_dozeComponent">com.android.systemui/com.android.systemui.doze.DozeService</string>
<bool name="config_dozeAfterScreenOffByDefault">true</bool>
<!-- Whether the always on display mode is available. -->
<bool name="config_dozeAlwaysOnDisplayAvailable">true</bool>
<!-- Control whether the always on display mode is enabled by default. This value will be used
during initialization when the setting is still null. -->
<bool name="config_dozeAlwaysOnEnabled">false</bool>
<!-- Whether the display blanks itself when going from a doze to a non-doze state -->
<bool name="config_displayBlanksAfterDoze">true</bool>
<!-- Specify custom blanking delay of the display -->
<integer name="config_screen_off_delay">0</integer>
<!-- Power Management: Specifies whether to decouple the auto-suspend state of the
device from the display on/off state.
When false, autosuspend_disable() will be called before the display is turned on
and autosuspend_enable() will be called after the display is turned off.
This mode provides best compatibility for devices using legacy power management
features such as early suspend / late resume.
When true, autosuspend_display() and autosuspend_enable() will be called
independently of whether the display is being turned on or off. This mode
enables the power manager to suspend the application processor while the
display is on.
This resource should be set to "true" when a doze component has been specified
to maximize power savings but not all devices support it.
Refer to autosuspend.h for details.
-->
<bool name="config_powerDecoupleAutoSuspendModeFromDisplay">true</bool>
<!-- Power Management: Specifies whether to decouple the interactive state of the
device from the display on/off state.
When false, setInteractive(..., true) will be called before the display is turned on
and setInteractive(..., false) will be called after the display is turned off.
This mode provides best compatibility for devices that expect the interactive
state to be tied to the display state.
When true, setInteractive(...) will be called independently of whether the display
is being turned on or off. This mode enables the power manager to reduce
clocks and disable the touch controller while the display is on.
This resource should be set to "true" when a doze component has been specified
to maximize power savings but not all devices support it.
Refer to power.h for details.
-->
<bool name="config_powerDecoupleInteractiveModeFromDisplay">true</bool>
<!-- enable doze powersaving mode -->
<bool name="config_enableAutoPowerModes">true</bool>
<!-- Control the behavior when the user long presses the home button.
0 - Nothing
1 - Recent apps view in SystemUI
2 - Launch assist intent
This needs to match the constants in
policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
-->
<integer name="config_longPressOnHomeBehavior">2</integer>
<!-- Control the behavior when the user long presses the menu button.
0 - Nothing
1 - Recent apps view in SystemUI
2 - Launch assist intent
This needs to match the constants in
policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
-->
<!--<integer name="config_longPressOnMenuBehavior">1</integer>-->
<!-- Flag indicating if device supports EAP SIM, AKA, AKA' -->
<bool name="config_eap_sim_based_auth_supported">true</bool>
<!-- Whether device supports double tap to wake -->
<bool name="config_supportDoubleTapWake">true</bool>
<string-array name="config_mobile_tcp_buffers">
<item>5gnr:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>lte:2097152,4194304,8388608,262144,524288,1048576</item>
<item>lte_ca:4096,6291456,12582912,4096,1048576,2097152</item>
<item>umts:4094,87380,1220608,4096,16384,1220608</item>
<item>hspa:4094,87380,1220608,4096,16384,1220608</item>
<item>hsupa:4094,87380,1220608,4096,16384,1220608</item>
<item>hsdpa:4094,87380,1220608,4096,16384,1220608</item>
<item>hspap:4094,87380,1220608,4096,16384,1220608</item>
<item>edge:4093,26280,35040,4096,16384,35040</item>
<item>gprs:4092,8760,11680,4096,8760,11680</item>
<item>evdo:4094,87380,524288,4096,16384,262144</item>
</string-array>
<!-- Values for GPS configuration -->
<string-array translatable="false" name="config_gpsParameters">
<item>SUPL_HOST=supl.google.com</item>
<item>SUPL_PORT=7275</item>
<item>SUPL_VER=0x20000</item>
<item>SUPL_MODE=1</item>
<item>SUPL_ES=1</item>
<item>LPP_PROFILE=2</item>
<item>USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=1</item>
<item>A_GLONASS_POS_PROTOCOL_SELECT=0</item>
<item>GPS_LOCK=0</item>
</string-array>
<!-- Configure wifi tcp buffersizes in the form:
rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max -->
<string name="config_wifi_tcp_buffers" translatable="false">524288,1048576,4194304,524288,1048576,4194304</string>
<!-- Is the device capable of hot swapping an ICC Card -->
<bool name="config_hotswapCapable">true</bool>
<!-- Flag specifying whether VoLTE & VT is available on device -->
<bool name="config_device_volte_available">true</bool>
<!-- Flag specifying whether VoLTE should be available for carrier: independent of
carrier provisioning. If false: hard disabled. If true: then depends on carrier
provisioning, availability etc -->
<bool name="config_carrier_volte_available">true</bool>
<!-- Flag specifying whether VoLTE is available on device -->
<bool name="config_device_vt_available">true</bool>
<!-- Flag specifying whether VoLTE TTY is supported -->
<bool name="config_carrier_volte_tty_supported">true</bool>
<!-- Config determines whether to update phone object when voice registration
state changes. Voice radio tech change will always trigger an update of
phone object irrespective of this config -->
<bool name="config_switch_phone_on_voice_reg_state_change">false</bool>
<!-- Vibrator pattern for feedback about a long screen/key press -->
<integer-array name="config_longPressVibePattern">
<item>0</item>
<item>10</item>
<item>5</item>
</integer-array>
<!-- Vibrator pattern for feedback about touching a virtual key -->
<integer-array name="config_virtualKeyVibePattern">
<item>0</item>
<item>10</item>
<item>5</item>
</integer-array>
<!-- Vibrator pattern for a very short but reliable vibration for soft keyboard tap -->
<integer-array name="config_keyboardTapVibePattern">
<item>10</item>
</integer-array>
<!-- Boolean indicating if current platform supports BLE peripheral mode -->
<bool name="config_bluetooth_le_peripheral_mode_supported">true</bool>
<!-- Max number of scan filters supported by blutooth controller. 0 if the
device does not support hardware scan filters-->
<integer translatable="false" name="config_bluetooth_max_scan_filters">1</integer>
<!-- Max number of advertisers supported by bluetooth controller. 0 if the
device does not support multiple advertisement-->
<integer translatable="false" name="config_bluetooth_max_advertisers">4</integer>
<!-- Operating volatage for bluetooth controller. -->
<integer name="config_bluetooth_operating_voltage_mv">3300</integer>
<!-- Boolean indicating if current platform supports HFP inband ringing -->
<!--<bool name="config_bluetooth_hfp_inband_ringing_support">true</bool>-->
<!-- Enable overlay for all location components. -->
<bool name="config_enableNetworkLocationOverlay" translatable="false">false</bool>
<bool name="config_enableFusedLocationOverlay" translatable="false">false</bool>
<!-- Enable overlay for all location components. -->
<string name="config_networkLocationProviderPackageName" translatable="false">com.qualcomm.location</string>
<string name="config_fusedLocationProviderPackageName" translatable="false">com.qualcomm.location</string>
<string name="config_comboNetworkLocationProvider" translatable="false">com.qualcomm.location</string>
<!-- Should the pinner service pin the Camera application? -->
<bool name="config_pinnerCameraApp">true</bool>
<!-- <bool name="config_fingerprintRemoveClientOnCancel">true</bool>a -->
<!-- If this is true, device supports Sustained Performance Mode. -->
<bool name="config_sustainedPerformanceModeSupported">true</bool>
<!-- Shutdown if the battery temperature exceeds (this value * 0.1) Celsius. -->
<integer name="config_shutdownBatteryTemperature">680</integer>
<bool name="config_dynamic_bind_ims">true</bool>
<string name="config_ims_package">org.codeaurora.ims</string>
<!-- True if Unprocessed audio source supports the required frequency range and level -->
<bool name="config_supportAudioSourceUnprocessed">true</bool>
<!-- Boolean indicating whether the HWC setColorTransform function can be performed efficiently
in hardware. -->
<bool name="config_setColorTransformAccelerated">true</bool>
<integer translatable="false" name="config_wifi_wakeup_available">1</integer>
<bool name="config_proxiSensorWakupCheck">true</bool>
<!-- Whether a software navigation bar should be shown. NOTE: in the future this may be
autodetected from the Configuration. -->
<bool name="config_showNavigationBar">true</bool>
<!-- enable support for configure max aspect ratio per app -->
<bool name="config_haveHigherAspectRatioScreen">false</bool>
<!-- Allow automatic adjusting of the screen brightness while dozing in low power state. -->
<bool name="config_allowAutoBrightnessWhileDozing">true</bool>
<!-- The list of vendor package signatures that should also be considered
platform signatures, specifically for use on devices with a vendor partition. -->
<string-array name="config_vendorPlatformSignatures">
<item>308203e5308202cda003020102020900ca7f2ef3e2f1842e300d06092a864886f70d0101050500308188310b300906035504061302434e3112301006035504080c094775616e67646f6e673111300f06035504070c085368656e7a68656e3110300e060355040a0c074f6e65506c7573310b3009060355040b0c0253573110300e06035504030c074f6e65506c75733121301f06092a864886f70d01090116126f6e65706c7573406f6e65706c75732e636e301e170d3135303530373037323332335a170d3432303932323037323332335a308188310b300906035504061302434e3112301006035504080c094775616e67646f6e673111300f06035504070c085368656e7a68656e3110300e060355040a0c074f6e65506c7573310b3009060355040b0c0253573110300e06035504030c074f6e65506c75733121301f06092a864886f70d01090116126f6e65706c7573406f6e65706c75732e636e30820122300d06092a864886f70d01010105000382010f003082010a0282010100ce24d23c2044f698476fe8f79388fa901520142424b58d10a5656a27bf1fa5ca4e381d8bc5773f29271e892bf25b06357c0cab9a06a93beb3c9eced9928c938f2829fbc63bc045dcfac0660f747dfe325ed5a8c7b785ccca472bc51afa823c1c0d8dd088aa8ef3ead6053f0020fee55b6c450b0c90f9a19f8f60808d1e0eb24309216f39bccb58991c4c1656aed444a5a0652e84587ae44e7c60101190d8d0d92a37407fc6da5432a8f20fe6414cf0ce2257edf76a7d2eb34d0d31e183867b552030beaf8e6e7ade37668d87c2bd52b8c29d3d30437058a31003f3dbbe8943db602feb71c7af51388234a0ea713a9fdd17ebc89463ff1065ee970edd3969d4110203010001a350304e301d0603551d0e04160414e24ca18e47f2c07476f9d37ce0d85a9f2fdf4456301f0603551d23041830168014e24ca18e47f2c07476f9d37ce0d85a9f2fdf4456300c0603551d13040530030101ff300d06092a864886f70d01010505000382010100a682431bd6bd9d99dc267686842fe3e2d6979798ec565314dcbede7b921ba78e210e9682dc72c07c09b0882b65df2a366007f3e4a594d0a85d04644b8e0f3e13cf16f2e764716625fe8dcf93e3936d496a86d0cc4c0aa2f7d46d904eec834c604dd1c5ad2fd1ad599d6ab3375f36382303685edca5078e931977679a4f4c8a532294fd7dbc0c55ffb33e3aa064b628b8083def2ad60ba0abf8a777d69e38fe18bc2e4c63e94d05c2081b947b7caf919f272157ba90ea83a306fd2941c1d6380cc55abf7983125d4d60ac1463bdbf9baf41a6fef117b37d03d086cf754f4f3ef3b5cb054f5d2f26115b221818c785b3de1be552bb1decdf4f3d373bdd5022d150</item>
</string-array>
<!-- Enable dual LTE capability support-->
<bool name="config_dual_LTE_capability">true</bool>
<!-- Enable system navigation keys. -->
<bool name="config_supportSystemNavigationKeys">true</bool>
<!-- Indicate whether the SD card is accessible without removing the battery. -->
<bool name="config_batterySdCardAccessibility">true</bool>
</resources>

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<!-- These resources are around just to allow their values to be customized -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Threshold in micro watts below which a charger is rated as "slow"; 1A @ 5V -->
<integer name="config_chargingSlowlyThreshold">0</integer>
</resources>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/**
* Copyright (c) 2009, The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<resources>
<bool name="def_accelerometer_rotation">true</bool>
<!-- <bool name="def_screen_brightness_automatic_mode">true</bool> -->
</resources>

View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
<!-- Whether recents should use hardware layers for its taskviews. This flag can be enabled
for devices where the java drawing of round rects may be slow -->
<bool name="config_recents_use_hardware_layers">true</bool>
<!-- Doze: does this device support STATE_DOZE and STATE_DOZE_SUSPEND? -->
<bool name="doze_display_state_supported">true</bool>
</resources>

View file

@ -0,0 +1,154 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015 The CyanogenMod Project
2017-2018 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.
-->
<resources>
<!-- All the capabilities of the LEDs on this device, stored as a bit field.
This integer should equal the sum of the corresponding value for each
of the following capabilities present:
// Device has a color adjustable battery light.
LIGHTS_RGB_NOTIFICATION_LED = 1
// Device has a color adjustable notification light.
LIGHTS_RGB_BATTERY_LED = 2
LIGHTS_MULTIPLE_NOTIFICATION_LED = 4 (deprecated)
// The notification light has adjustable pulsing capability.
LIGHTS_PULSATING_LED = 8
// Device has a multi-segment battery light that is able to
// use the light brightness value to determine how many
// segments to show (in order to represent battery level).
LIGHTS_SEGMENTED_BATTERY_LED = 16
// The notification light supports HAL adjustable brightness
// via the alpha channel.
// Note: if a device notification light supports LIGHTS_RGB_NOTIFICATION_LED
// then HAL support is not necessary for brightness control. In this case,
// brightness support will be provided by lineage-sdk through the scaling of
// RGB color values.
LIGHTS_ADJUSTABLE_NOTIFICATION_LED_BRIGHTNESS = 32
// Device has a battery light.
LIGHTS_BATTERY_LED = 64
// The battery light supports HAL adjustable brightness via
// the alpha channel.
// Note: if a device battery light supports LIGHTS_RGB_BATTERY_LED then HAL
// support is not necessary for brightness control. In this case,
// brightness support will be provided by lineage-sdk through the scaling of
// RGB color values.
LIGHTS_ADJUSTABLE_BATTERY_LED_BRIGHTNESS = 128
For example, a device with notification and battery lights that supports
pulsating and RGB control would set this config to 75. -->
<integer name="config_deviceLightCapabilities">0</integer>
<!-- Hardware keys present on the device, stored as a bit field.
This integer should equal the sum of the corresponding value for each
of the following keys present:
1 - Home
2 - Back
4 - Menu
8 - Assistant (search)
16 - App switch
32 - Camera
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>
<!-- 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
of the following keys present:
1 - Home
2 - Back
4 - Menu
8 - Assistant (search)
16 - App switch
32 - Camera
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>
<!-- Control the behavior when the user long presses the home button.
0 - Nothing
1 - Menu key
2 - Recent apps view in SystemUI
3 - Launch assist intent
4 - Voice Search
5 - In-app Search
6 - Launch camera
7 - Sleep
8 - Last app
9 - Toggle split screen
This needs to match the enums in
sdk/src/java/org/lineageos/internal/util/DeviceKeysConstants.java.
-->
<!-- <integer name="config_longPressOnHomeBehavior">3</integer> -->
<!-- Control the behavior when the user double-taps the home button.
0 - Nothing
1 - Menu key
2 - Recent apps view in SystemUI
3 - Launch assist intent
4 - Voice Search
5 - In-app Search
6 - Launch camera
7 - Sleep
8 - Last app
9 - Toggle split screen
This needs to match the enums in
sdk/src/java/org/lineageos/internal/util/DeviceKeysConstants.java.
-->
<!-- <integer name="config_doubleTapOnHomeBehavior">0</integer> -->
<!-- Control the behavior when the user long presses the menu button.
0 - Nothing
1 - Menu key
2 - Recent apps view in SystemUI
3 - Launch assist intent
4 - Voice Search
5 - In-app Search
6 - Launch camera
7 - Sleep
8 - Last app
9 - Toggle split screen
This needs to match the enums in
sdk/src/java/org/lineageos/internal/util/DeviceKeysConstants.java.
-->
<!-- <integer name="config_longPressOnMenuBehavior">2</integer> -->
<!-- Control the behavior when the user long presses the app switch button.
0 - Nothing
1 - Menu key
2 - Recent apps view in SystemUI
3 - Launch assist intent
4 - Voice Search
5 - In-app Search
6 - Launch camera
7 - Sleep
8 - Last app
9 - Toggle split screen
This needs to match the enums in
sdk/src/java/org/lineageos/internal/util/DeviceKeysConstants.java.
-->
<!-- <integer name="config_longPressOnAppSwitchBehavior">9</integer> -->
</resources>

View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2015 The Android Open Source Project
** 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.
*/
-->
<resources>
<!-- IDs for each color mode. The values must match the corresponding constants in
android.view.Display -->
<integer-array name="color_mode_ids">
<item>0</item>
<item>-1</item>
<item>-1</item>
</integer-array>
</resources>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 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.
-->
<resources>
<!-- Home button Wake Support. Some devices do not support this.
Setting to false will disable Home button Wake support -->
<bool name="config_show_homeWake">true</bool>
<!-- Volume Rocker Wake -->
<bool name="config_show_volumeRockerWake">true</bool>
</resources>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Phone app resources that may need to be customized
for different hardware or product builds. -->
<resources>
<!-- Show enabled lte option for lte device -->
<bool name="config_enabled_lte" translatable="false">true</bool>
</resources>

170
proprietary-files.txt Normal file
View file

@ -0,0 +1,170 @@
#
# Copyright (C) 2019 The LineageOS Project
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# Bluetooth (aptX)
product/lib64/libaptX_encoder.so
product/lib64/libaptXHD_encoder.so
# Camera
vendor/lib/hw/camera.universal7870.so
vendor/lib64/hw/camera.universal7870.so
vendor/lib/libcamera_client.so
# DRM
vendor/lib/liboemcrypto.so
vendor/lib/mediadrm/libwvdrmengine.so
# DRM - Widevine
vendor/bin/hw/android.hardware.drm@1.1-service.widevine
vendor/etc/init/android.hardware.drm@1.1-service.widevine.rc
vendor/lib/libwvhidl.so
# GPS
vendor/bin/hw/gpsd
vendor/bin/hw/vendor.samsung.hardware.gnss@1.0-service
vendor/etc/gnss/ca.pem
vendor/etc/gnss/gps.cfg
vendor/etc/init/init.gps.rc
vendor/etc/init/vendor.samsung.hardware.gnss@1.0-service.rc
vendor/lib/libwrappergps.so
vendor/lib/vendor.samsung.hardware.gnss@1.0.so
vendor/lib64/hw/android.hardware.gnss@1.1-impl.so
vendor/lib64/hw/gps.default.so
vendor/lib64/hw/vendor.samsung.hardware.gnss@1.0-impl.so
vendor/lib64/libwrappergps.so
vendor/lib64/vendor.samsung.hardware.gnss@1.0.so
# Graphics
vendor/lib/egl/libGLES_mali.so
vendor/lib64/egl/libGLES_mali.so
# HWC
vendor/bin/hw/android.hardware.graphics.composer@2.1-service
vendor/lib/hw/gralloc.default.so
vendor/lib/hw/gralloc.exynos5.so
vendor/lib/hw/hwcomposer.exynos5.so
vendor/lib/libexynosdisplay.so
vendor/lib/libexynosgscaler.so
vendor/lib/libExynosHWCService.so
vendor/lib/libexynosscaler.so
vendor/lib/libexynosutils.so
vendor/lib/libexynosv4l2.so
vendor/lib/libGrallocWrapper.so
vendor/lib/libhdmi.so
vendor/lib/libhwc2on1adapter.so
vendor/lib/libhwc2onfbadapter.so
vendor/lib/libhwcutils.so
vendor/lib/libion_exynos.so
vendor/lib/libmpp.so
vendor/lib/libstainkiller.so
vendor/lib/libvirtualdisplay.so
vendor/lib64/hw/gralloc.default.so
vendor/lib64/hw/gralloc.exynos5.so
vendor/lib64/hw/hwcomposer.exynos5.so
vendor/lib64/libexynosdisplay.so
vendor/lib64/libexynosgscaler.so
vendor/lib64/libExynosHWCService.so
vendor/lib64/libexynosscaler.so
vendor/lib64/libexynosutils.so
vendor/lib64/libexynosv4l2.so
vendor/lib64/libGrallocWrapper.so
vendor/lib64/libhdmi.so
vendor/lib64/libhwc2on1adapter.so
vendor/lib64/libhwc2onfbadapter.so
vendor/lib64/libhwcutils.so
vendor/lib64/libion_exynos.so
vendor/lib64/libmpp.so
vendor/lib64/libvirtualdisplay.so
# Lpm
vendor/bin/lpm
# Memtrack
vendor/bin/hw/android.hardware.memtrack@1.0-service
vendor/lib/hw/memtrack.exynos5.so
vendor/lib64/hw/memtrack.exynos5.so
# Misc
vendor/bin/sswap
vendor/lib/libcsc.so
vendor/lib/libsecnativefeature.so
vendor/lib/libuniplugin.so
vendor/lib64/libcsc.so
vendor/lib64/libsecnativefeature.so
vendor/lib64/libuniplugin.so
# OMX
vendor/lib/libExynosOMX_Core.so
vendor/lib/libExynosOMX_Resourcemanager.so
vendor/lib/libstagefrighthw.so
vendor/lib/omx/libOMX.Exynos.AVC.Decoder.so
vendor/lib/omx/libOMX.Exynos.AVC.Encoder.so
vendor/lib/omx/libOMX.Exynos.HEVC.Decoder.so
vendor/lib/omx/libOMX.Exynos.HEVC.Encoder.so
vendor/lib/omx/libOMX.Exynos.MPEG4.Decoder.so
vendor/lib/omx/libOMX.Exynos.MPEG4.Encoder.so
vendor/lib/omx/libOMX.Exynos.VP8.Decoder.so
vendor/lib/omx/libOMX.Exynos.VP8.Encoder.so
vendor/lib/omx/libOMX.Exynos.VP9.Decoder.so
vendor/lib/omx/libOMX.Exynos.WMV.Decoder.so
vendor/lib64/libExynosOMX_Core.so
vendor/lib64/libExynosOMX_Resourcemanager.so
vendor/lib64/libstagefrighthw.so
vendor/lib64/omx/libOMX.Exynos.AVC.Decoder.so
vendor/lib64/omx/libOMX.Exynos.AVC.Encoder.so
vendor/lib64/omx/libOMX.Exynos.HEVC.Decoder.so
vendor/lib64/omx/libOMX.Exynos.HEVC.Encoder.so
vendor/lib64/omx/libOMX.Exynos.MPEG4.Decoder.so
vendor/lib64/omx/libOMX.Exynos.MPEG4.Encoder.so
vendor/lib64/omx/libOMX.Exynos.VP8.Decoder.so
vendor/lib64/omx/libOMX.Exynos.VP8.Encoder.so
vendor/lib64/omx/libOMX.Exynos.VP9.Decoder.so
vendor/lib64/omx/libOMX.Exynos.WMV.Decoder.so
# RIL
vendor/bin/cbd
vendor/bin/hw/rild
vendor/etc/plmn_delta.bin
vendor/etc/plmn_delta_attaio.bin
vendor/etc/plmn_delta_hktw.bin
vendor/etc/plmn_delta_usacdma.bin
vendor/etc/plmn_delta_usagsm.bin
vendor/etc/plmn_se13.bin
vendor/lib/libfloatingfeature.so
vendor/lib64/libfloatingfeature.so
vendor/lib64/libreference-ril.so
vendor/lib64/libril.so
vendor/lib64/librilutils.so
vendor/lib64/libsec-ril.so
vendor/lib64/libsec-ril-dsds.so
vendor/lib64/libvndsecril-client.so
vendor/lib64/libvkmanager_vendor.so
vendor/lib64/vendor.samsung.hardware.radio.bridge@2.0.so
vendor/lib64/vendor.samsung.hardware.radio.channel@2.0.so
vendor/lib64/vendor.samsung.hardware.radio@2.0.so
# Sensors
vendor/bin/hw/android.hardware.sensors@1.0-service
vendor/etc/init/android.hardware.sensors@1.0-service.rc
vendor/lib/libsensorlistener.so
vendor/lib/libsensorndkbridge.so
vendor/lib64/libsensorlistener.so
vendor/lib64/libsensorndkbridge.so
# Thermal
vendor/bin/hw/android.hardware.thermal@1.0-service
vendor/etc/init/android.hardware.thermal@1.0-service.rc
vendor/lib/hw/thermal.universal7870.so
vendor/lib64/hw/thermal.universal7870.so

88
rootdir/Android.mk Normal file
View file

@ -0,0 +1,88 @@
#
# Copyright (C) 2019 The LineageOS Project
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := fstab.samsungexynos7870
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/fstab.samsungexynos7870
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.baseband.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.baseband.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.rilchip.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.rilchip.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.rilcommon.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.rilcommon.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.samsung.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.samsung.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.samsungexynos7870.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.samsungexynos7870.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.samsungexynos7870.usb.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.samsungexynos7870.usb.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.wifi.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.wifi.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := ueventd.samsungexynos7870.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_STEM := ueventd.rc
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/ueventd.samsungexynos7870.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)
include $(BUILD_PREBUILT)

View file

@ -0,0 +1,21 @@
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# 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
/dev/block/platform/13540000.dwmmc0/by-name/BOOT /boot emmc defaults defaults
/dev/block/platform/13540000.dwmmc0/by-name/RECOVERY /recovery emmc defaults defaults
/dev/block/platform/13540000.dwmmc0/by-name/SYSTEM /system ext4 ro,errors=panic wait,recoveryonly
/dev/block/platform/13540000.dwmmc0/by-name/VENDOR /vendor ext4 ro,errors=panic wait,recoveryonly
/dev/block/platform/13540000.dwmmc0/by-name/CACHE /cache ext4 nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check
/dev/block/platform/13540000.dwmmc0/by-name/CACHE /cache f2fs nosuid,nodev,noatime,rw,inline_xattr wait,check,formattable
/dev/block/platform/13540000.dwmmc0/by-name/USERDATA /data ext4 nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check,formattable,encryptable=footer,length=-16384
/dev/block/platform/13540000.dwmmc0/by-name/USERDATA /data f2fs nosuid,nodev,noatime,rw,inline_xattr wait,check,formattable,encryptable=footer,length=-16384
/dev/block/platform/13540000.dwmmc0/by-name/EFS /efs ext4 nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check
/dev/block/platform/13540000.dwmmc0/by-name/CPEFS /cpefs ext4 noatime,nosuid,nodev,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check
# VOLD
/dev/block/platform/13540000.dwmmc0/by-name/HIDDEN /preload ext4 defaults voldmanaged=preload:auto
/devices/13560000.dwmmc2/mmc_host/mmc* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata
/devices/13600000.usb/13600000.dwc3/xhci-hcd.2.auto/usb* auto auto defaults voldmanaged=usb:auto

View file

@ -0,0 +1,21 @@
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# 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
# /dev/block/platform/13540000.dwmmc0/by-name/BOOT /boot emmc defaults defaults
# /dev/block/platform/13540000.dwmmc0/by-name/RECOVERY /recovery emmc defaults defaults
# /dev/block/platform/13540000.dwmmc0/by-name/SYSTEM /system ext4 ro,errors=panic wait,recoveryonly
# /dev/block/platform/13540000.dwmmc0/by-name/VENDOR /vendor ext4 ro,errors=panic wait,recoveryonly
/dev/block/platform/13540000.dwmmc0/by-name/CACHE /cache ext4 nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check
/dev/block/platform/13540000.dwmmc0/by-name/CACHE /cache f2fs nosuid,nodev,noatime,rw,inline_xattr wait,check,formattable
/dev/block/platform/13540000.dwmmc0/by-name/USERDATA /data ext4 nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check,formattable,encryptable=footer,length=-16384
/dev/block/platform/13540000.dwmmc0/by-name/USERDATA /data f2fs nosuid,nodev,noatime,rw,inline_xattr wait,check,formattable,encryptable=footer,length=-16384
/dev/block/platform/13540000.dwmmc0/by-name/EFS /efs ext4 nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check
/dev/block/platform/13540000.dwmmc0/by-name/CPEFS /cpefs ext4 noatime,nosuid,nodev,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check
# VOLD
/dev/block/platform/13540000.dwmmc0/by-name/HIDDEN /preload ext4 defaults voldmanaged=preload:auto
/devices/13560000.dwmmc2/mmc_host/mmc* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata
/devices/13600000.usb/13600000.dwc3/xhci-hcd.2.auto/usb* auto auto defaults voldmanaged=usb:auto

View file

@ -0,0 +1,63 @@
on init
symlink /dev/block/platform/13540000.dwmmc0/by-name/RADIO /dev/mbin0
restorecon /dev/mbin0
write /sys/class/net/rmnet0/queues/rx-0/rps_cpus 6
write /sys/class/net/rmnet1/queues/rx-0/rps_cpus 6
write /sys/class/net/rmnet2/queues/rx-0/rps_cpus 6
write /sys/class/net/rmnet3/queues/rx-0/rps_cpus 6
write /sys/class/net/rmnet4/queues/rx-0/rps_cpus 6
write /sys/class/net/rmnet5/queues/rx-0/rps_cpus 6
write /sys/class/net/rmnet6/queues/rx-0/rps_cpus 6
write /sys/class/net/rmnet7/queues/rx-0/rps_cpus 6
on fs
chown radio system /efs
chmod 0771 /efs
chown radio radio sys/devices/virtual/misc/multipdp/waketime
chmod 0660 /sys/devices/virtual/misc/umts_dm0/dm_state
chown radio system /sys/devices/virtual/misc/umts_dm0/dm_state
# /efs/factory.prop for Dual / Single SIM settings
chown radio radio /efs/factory.prop
chmod 0600 /efs/factory.prop
on property:ril.clatd.v4-rmnet0=up
write /sys/class/net/rmnet0/queues/rx-0/rps_cpus 4
write /sys/class/net/v4-rmnet0/queues/rx-0/rps_cpus 2
on property:ril.clatd.v4-rmnet1=up
write /sys/class/net/rmnet1/queues/rx-0/rps_cpus 4
write /sys/class/net/v4-rmnet1/queues/rx-0/rps_cpus 2
on property:ril.clatd.v4-rmnet2=up
write /sys/class/net/rmnet2/queues/rx-0/rps_cpus 4
write /sys/class/net/v4-rmnet2/queues/rx-0/rps_cpus 2
on property:ril.clatd.v4-rmnet3=up
write /sys/class/net/rmnet3/queues/rx-0/rps_cpus 4
write /sys/class/net/v4-rmnet3/queues/rx-0/rps_cpus 2
on property:ril.clatd.v4-rmnet4=up
write /sys/class/net/rmnet4/queues/rx-0/rps_cpus 4
write /sys/class/net/v4-rmnet4/queues/rx-0/rps_cpus 2
on property:ril.clatd.v4-rmnet5=up
write /sys/class/net/rmnet5/queues/rx-0/rps_cpus 4
write /sys/class/net/v4-rmnet5/queues/rx-0/rps_cpus 2
on property:ril.clatd.v4-rmnet6=up
write /sys/class/net/rmnet6/queues/rx-0/rps_cpus 4
write /sys/class/net/v4-rmnet6/queues/rx-0/rps_cpus 2
on property:ril.clatd.v4-rmnet7=up
write /sys/class/net/rmnet7/queues/rx-0/rps_cpus 4
write /sys/class/net/v4-rmnet7/queues/rx-0/rps_cpus 2
service cpboot-daemon /vendor/bin/cbd -d -tss310 -bm -mm -P platform/13540000.dwmmc0/by-name/RADIO
class main
user root
group radio cache inet misc audio sdcard_rw log sdcard_r shell
# seclabel u:r:cbd:s0
on property:ro.multisim.simslotcount=*
write /sys/module/modem_ctrl_ss310ap/parameters/ds_detect ${ro.multisim.simslotcount}

22
rootdir/etc/init.rilchip.rc Executable file
View file

@ -0,0 +1,22 @@
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
service ril-daemon /vendor/bin/hw/rild -l /vendor/lib64/libsec-ril.so
class main
user radio
group radio cache inet misc audio sdcard_r sdcard_rw log vpn system readproc wakelock
capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW SYS_ADMIN CHOWN SYS_TIME
socket sap_uim_socket1 stream 660 bluetooth bluetooth
onrestart restart cpboot-daemon
onrestart restart DIAG-daemon
service ril-daemon1 /vendor/bin/hw/rild -c 2 -l /vendor/lib64/libsec-ril-dsds.so
class main
user radio
group radio cache inet misc audio sdcard_r sdcard_rw log vpn system readproc wakelock
capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW SYS_ADMIN CHOWN SYS_TIME
onrestart restart cpboot-daemon
onrestart restart DIAG-daemon

20
rootdir/etc/init.rilcommon.rc Executable file
View file

@ -0,0 +1,20 @@
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
# service can not be overwritten except SPRINT
# Thus, rilcarrier is imported before common rc, like init.rilchip.rc
on post-fs-data
mkdir /data/vendor/secradio 0770 radio radio
on property:ro.vendor.multisim.simslotcount=1
stop ril-daemon1
on property:hwservicemanager.ready=false
restart ril-daemon
on property:hwservicemanager.ready=false && property:ro.vendor.multisim.simslotcount=2
restart ril-daemon1

1892
rootdir/etc/init.samsung.rc Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,566 @@
import /vendor/etc/init/hw/init.samsungexynos7870.usb.rc
import /vendor/etc/init/hw/init.baseband.rc
import /vendor/etc/init/hw/init.wifi.rc
import /vendor/etc/init/hw/init.wifi_device.rc
import /vendor/etc/init/hw/init.rilchip.rc
import /vendor/etc/init/hw/init.rilcommon.rc
# Samsung stock init.rc additions
import /vendor/etc/init/hw/init.samsung.rc
on early-init
mount debugfs /sys/kernel/debug /sys/kernel/debug
on init
start watchdogd
# See storage config details at http://source.android.com/tech/storage/
mkdir /mnt/shell/emulated 0700 shell shell
mkdir /storage/emulated 0555 root root
# Support legacy paths
symlink /sdcard /mnt/sdcard
export EXTERNAL_STORAGE /sdcard
symlink /data/app /factory
symlink /dev/block/platform/13540000.dwmmc0/by-name/PERSISTENT /dev/block/persistent
symlink /dev/block/platform/13540000.dwmmc0/by-name/STEADY /dev/block/steady
on post-fs-data
# Log data folder
# mkdir /data/log 0771 radio system
# C-STATE
chown system system /sys/module/cpuidle/parameters/off
chmod 0660 /sys/module/cpuidle/parameters/off
# CPU Idle
chown system system /sys/module/cpuidle_exynos64/parameters/enable_mask
# Audio I2C node for TFA amp
chmod 0660 /dev/i2c-20
chown audio audio /dev/i2c-20
setprop vold.post_fs_data_done 1
# /efs/factory.prop for Dual / Single SIM settings
chown radio radio /efs/factory.prop
chmod 0600 /efs/factory.prop
restorecon /sys/kernel/debug/tracing/trace_marker
on boot
# override init.rc to keep plenty of large order chunks around
# to improve allocation times
# write /proc/sys/vm/min_free_kbytes 32768
# write /proc/sys/vm/min_free_order_shift 1
# SSWAP
write /proc/sys/vm/swappiness 130
# mount debugfs /sys/kernel/debug /sys/kernel/debug
# Allow to access debugfs for system:system
chmod 755 /sys/kernel/debug
chown system system /sys/kernel/debug
# setprop ro.radio.noril yes
# Assign TCP buffer thresholds to be ceiling value of technology maximums
# Increased technology maximums should be reflected here.
write /proc/sys/net/core/rmem_max 4194304
write /proc/sys/net/core/wmem_max 4194304
# Set up kernel tracing, but disable it by default
chmod 0222 /sys/kernel/debug/tracing/trace_marker
write /sys/kernel/debug/tracing/tracing_on 0
# sec_log
chown system log /proc/sec_log
# EFS permissions
chown system radio /efs/nv_data.bin
chown system radio /efs/nv_data.bin.md5
chown system radio /cpefs/.nv_core.bak
chown system radio /efs/.nv_core.bak
# Permissions for NAD
symlink /dev/block/platform/13540000.dwmmc0/by-name/NAD_REFER /dev/block/NAD_REFER
chown system radio /sys/class/sec/sec_nad/nad_stat
chmod 0664 /sys/class/sec/sec_nad/nad_stat
chown system radio /sys/class/sec/sec_nad/nad_erase
chmod 0664 /sys/class/sec/sec_nad/nad_erase
chown system radio /sys/class/sec/sec_nad/nad_acat
chmod 0664 /sys/class/sec/sec_nad/nad_acat
chown system radio /sys/class/sec/sec_nad/nad_dram
chmod 0664 /sys/class/sec/sec_nad/nad_dram
chown system radio /sys/class/sec/sec_nad/nad_all
chmod 0664 /sys/class/sec/sec_nad/nad_all
chown system radio /dev/block/NAD_REFER
chmod 0664 /dev/block/NAD_REFER
# 1-key hard reset
chown system system /sys/power/reset_enabled
chmod 0660 /sys/power/reset_enabled
# CPU hotplug
chown system system /sys/power/cpuhotplug/enabled
chmod 0660 /sys/power/cpuhotplug/enabled
chown system system /sys/power/cpuhotplug/min_online_cpu
chmod 0664 /sys/power/cpuhotplug/min_online_cpu
chown system system /sys/power/cpuhotplug/max_online_cpu
chmod 0664 /sys/power/cpuhotplug/max_online_cpu
# GPU dvfs node
chown radio system /sys/devices/11400000.mali/dvfs_table
chmod 0664 /sys/devices/11400000.mali/dvfs_table
chown radio system /sys/devices/11400000.mali/dvfs_min_lock
chmod 0664 /sys/devices/11400000.mali/dvfs_min_lock
chown radio system /sys/devices/11400000.mali/dvfs_max_lock
chmod 0664 /sys/devices/11400000.mali/dvfs_max_lock
# mif, int
chown radio system /sys/class/devfreq/17000010.devfreq_mif/min_freq
chmod 0664 /sys/class/devfreq/17000010.devfreq_mif/min_freq
chown radio system /sys/class/devfreq/17000010.devfreq_mif/max_freq
chmod 0664 /sys/class/devfreq/17000010.devfreq_mif/max_freq
chown radio system /sys/class/devfreq/17000010.devfreq_mif/available_frequencies
chmod 0644 /sys/class/devfreq/17000010.devfreq_mif/available_frequencies
chown radio system /sys/class/devfreq/17000020.devfreq_int/min_freq
chmod 0664 /sys/class/devfreq/17000020.devfreq_int/min_freq
chown radio system /sys/class/devfreq/17000020.devfreq_int/max_freq
chmod 0664 /sys/class/devfreq/17000020.devfreq_int/max_freq
chown radio system /sys/class/devfreq/17000020.devfreq_int/available_frequencies
chmod 0664 /sys/class/devfreq/17000020.devfreq_int/available_frequencies
# Change permission for interactive governor
chown system system /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
chown system system /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_slack
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_slack
chown system system /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
chown system system /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
chown system system /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
chown system system /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
chown system system /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
chown system system /sys/devices/system/cpu/cpu0/cpufreq/interactive/boost
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/interactive/boost
chown system system /sys/devices/system/cpu/cpu0/cpufreq/interactive/boostpulse
chown system system /sys/devices/system/cpu/cpu0/cpufreq/interactive/input_boost
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/interactive/input_boost
chown system system /sys/devices/system/cpu/cpu0/cpufreq/interactive/boostpulse_duration
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/interactive/boostpulse_duration
chown system system /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
chown system system /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
chmod 0660 /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
chown system system /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_slack
chmod 0660 /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_slack
chown system system /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
chmod 0660 /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
chown system system /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
chmod 0660 /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
chown system system /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
chmod 0660 /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
chown system system /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
chmod 0660 /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
chown system system /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
chmod 0660 /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
chown system system /sys/devices/system/cpu/cpu4/cpufreq/interactive/boost
chmod 0660 /sys/devices/system/cpu/cpu4/cpufreq/interactive/boost
chown system system /sys/devices/system/cpu/cpu4/cpufreq/interactive/boostpulse
chown system system /sys/devices/system/cpu/cpu4/cpufreq/interactive/input_boost
chmod 0660 /sys/devices/system/cpu/cpu4/cpufreq/interactive/input_boost
chown system system /sys/devices/system/cpu/cpu4/cpufreq/interactive/boostpulse_duration
chmod 0660 /sys/devices/system/cpu/cpu4/cpufreq/interactive/boostpulse_duration
chown system system /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
chmod 0660 /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
# RTC status
chown system system /sys/power/rtc_status
chmod 0444 /sys/power/rtc_status
chown system system /efs/FactoryApp/rtc_status
chmod 0664 /efs/FactoryApp/rtc_status
chown bluetooth bluetooth /dev/ttySAC0
chmod 0660 /dev/ttySAC0
# sem_daemon permission
chown system system /efs/sec_efs/ssp_data
chmod 0644 /efs/sec_efs/ssp_data
#MST HW Support
setprop ro.mst.support 1
#Secure OS migration
chown radio system /sys/devices/system/sec_os_ctrl/migrate_os
chmod 664 /sys/devices/system/sec_os_ctrl/migrate_os
# permissions for bluetooth.
setprop ro.bt.bdaddr_path "/efs/bluetooth/bt_addr"
chown bluetooth bluetooth ro.bt.bdaddr_path
chown radio bluetooth /efs/bluetooth/bt_addr
chmod 0640 /efs/bluetooth/bt_addr
chmod 0660 /sys/class/rfkill/rfkill0/state
chmod 0660 /sys/class/rfkill/rfkill0/device/extldo
chown bluetooth net_bt /sys/class/rfkill/rfkill0/state
chown bluetooth net_bt /sys/class/rfkill/rfkill0/type
chown bluetooth net_bt /sys/class/rfkill/rfkill0/device/extldo
# MOBEAM
chown system radio /sys/class/sec/sec_barcode_emul/vendor
chown system radio /sys/class/sec/sec_barcode_emul/name
chown system radio /sys/class/sec/sec_barcode_emul/barcode_send
chown system radio /sys/class/sec/sec_barcode_emul/barcode_led_status
chown system radio /sys/class/sec/sec_barcode_emul/barcode_ver_check
#Meta event
chown system radio /sys/class/sensors/sensor_dev/flush
# Permission for USB SELECT
chown system system /sys/class/android_usb/android0/enable
chmod 0660 /sys/class/android_usb/android0/enable
chown system system /sys/class/android_usb/android0/idVendor
chmod 0660 /sys/class/android_usb/android0/idVendor
chown system system /sys/class/android_usb/android0/idProduct
chmod 0660 /sys/class/android_usb/android0/idProduct
chown system system /sys/class/android_usb/android0/f_diag/clients
chmod 0660 /sys/class/android_usb/android0/f_diag/clients
chown system system /sys/class/android_usb/android0/functions
chmod 0660 /sys/class/android_usb/android0/functions
chown system system /sys/class/android_usb/android0/bDeviceClass
chmod 0660 /sys/class/android_usb/android0/bDeviceClass
# Support DM logging
# chmod 0770 /system/bin/dmd
# Support DM logging
chmod 0770 /system/bin/diagexe
# terminal mode
chmod 0660 /sys/class/android_usb/android0/terminal_version
chown system system /sys/class/android_usb/android0/terminal_version
# for datarouter
chown system system /dev/dun
chown system system /dev/ttyGS0
chown system system /dev/ttyGS1
chown system system /dev/ttyGS2
chown system system /dev/ttyGS3
# Support Virtual Com
chmod 0770 /system/bin/vcd
# Support AP/CP log dump
chmod 0770 /system/bin/sced
# Switch Device
chown system radio /sys/class/sec/switch/vbus_value
# LPM mode for ccic
chown system radio /sys/class/sec/ccic/lpm_mode
chown system radio /sys/class/sec/ccic/ccic_control_option
# IPSec for VOLTE
chown root system /dev/socket
chmod 0775 /dev/socket
on fs
mount_all /vendor/etc/fstab.samsungexynos7870
setprop ro.crypto.fuse_sdcard true
chown radio system /efs
# Permissions for ION
chmod 0660 /sys/class/ion_cma/ion_video_ext/isolated
chown system system /sys/class/ion_cma/ion_video_ext/isolated
# Permissions for backlight
chown system system /sys/class/backlight/panel/brightness
# Permissions for LCD
chown system radio /sys/class/lcd/panel/manufacture_code
chown system radio /sys/class/lcd/panel/lcd_type
chown system system /sys/class/lcd/panel/siop_enable
chown system system /sys/class/lcd/panel/temperature
chown system radio /sys/class/lcd/panel/power_reduce
chown system system /sys/class/lcd/panel/lux
chown system system /sys/class/lcd/panel/adaptive_control
chown system system /sys/class/lcd/panel/alpm
chown system system /sys/class/lcd/panel/dpui
chown system system /sys/class/lcd/panel/dpui_dbg
chown system system /sys/devices/svc/OCTA/SVC_OCTA
# Permissions for MDNIE
chown system media_rw /sys/class/mdnie/mdnie/mode
chown system media_rw /sys/class/mdnie/mdnie/scenario
chown system media_rw /sys/class/mdnie/mdnie/outdoor
chown system system /sys/class/mdnie/mdnie/accessibility
chown system media_rw /sys/class/mdnie/mdnie/rgb_adj_enable
chown system media_rw /sys/class/mdnie/mdnie/r_adj
chown system media_rw /sys/class/mdnie/mdnie/g_adj
chown system media_rw /sys/class/mdnie/mdnie/b_adj
chown system media_rw /sys/class/mdnie/mdnie/tuning
chown system system /sys/class/mdnie/mdnie/sensorRGB
chown system system /sys/class/mdnie/mdnie/mdnie_ldu
chown system system /sys/class/mdnie/mdnie/night_mode
chown system system /sys/class/mdnie/mdnie/whiteRGB
write /sys/class/mdnie/mdnie/scenario 0
write /sys/class/mdnie/mdnie/outdoor 0
write /sys/class/mdnie/mdnie/mode 1
write /sys/class/mdnie/mdnie/accessibility 0
write /sys/class/mdnie/mdnie/rgb_adj_enable 1
write /sys/class/mdnie/mdnie/r_adj 255
write /sys/class/mdnie/mdnie/g_adj 255
write /sys/class/mdnie/mdnie/b_adj 255
write /sys/class/mdnie/mdnie/tuning 0
chown system system /sys/class/lcd/panel/hmt_on
chmod 0660 /sys/class/lcd/panel/hmt_on
chown system system /sys/class/lcd/panel/hmt_bright
chmod 0660 /sys/class/lcd/panel/hmt_bright
chown system system /sys/class/mdnie/mdnie/hmt_color_temperature
chmod 0660 /sys/class/mdnie/mdnie/hmt_color_temperature
# Copy DRM Key
copy /system/app/wv.keys /factory/wv.keys
# Permission for DRM Key
chmod 0644 /factory/wv.keys
# Permissions for System LSI NFC
# NFC : Permissions for NFC
chmod 0660 /dev/sec-nfc
chown nfc nfc /dev/sec-nfc
# Permissions for S.LSI ESE
chmod 0660 /dev/p3
chown system system /dev/p3
# Permission for flashlight control for HAL3.3
chmod 0660 /sys/class/camera/flash/rear_torch_flash
chown media system /sys/class/camera/flash/rear_torch_flash
chmod 0660 /sys/class/camera/flash/front_torch_flash
chown media system /sys/class/camera/flash/front_torch_flash
# Permissions for TouchScreen
chown system radio /sys/class/sec/tsp/cmd
chown system system /sys/class/sec/tsp/input/enabled
chown system system /sys/class/sec/tsp/ito_check
chown system system /sys/class/sec/tsp/raw_check
chown system system /sys/class/sec/tsp/module_id
chown system system /sys/class/sec/tsp/multi_count
chown system system /sys/class/sec/tsp/wet_mode
chown system system /sys/class/sec/tsp/comm_err_count
# Permissions for Touchkey
chown system radio /sys/class/sec/sec_touchkey/brightness
chown system radio /sys/class/sec/sec_touchkey/touchkey_firm_update
chown system radio /sys/class/sec/sec_touchkey/touch_sensitivity
chown system radio /sys/class/sec/sec_touchkey/glove_mode
chown system radio /sys/class/sec/sec_touchkey/flip_mode
chown system radio /sys/class/sec/sec_touchkey/sar_enable
chown system radio /sys/class/sec/sec_touchkey/sw_reset
chown system radio /sys/class/sec/sec_touchkey/touchkey_earjack
chown system system /sys/class/sec/sec_touchkey/input/enabled
chown system radio /sys/class/sec/sec_touchkey/touchkey_light_version
chown system radio /sys/class/sec/sec_touchkey/touchkey_light_update
chown system radio /sys/class/sec/sec_touchkey/touchkey_light_id_compare
chown system radio /sys/class/sec/sec_touchkey/touchkey_light_table_write
# Permissions for gpio_keys
chown radio system /sys/class/sec/sec_key/wakeup_keys
write /sys/class/sec/sec_key/wakeup_keys 116,172
# Permissions Camera
mkdir /data/camera 0770 cameraserver system
chown system radio /sys/class/camera/rear/rear_camfw
chown system radio /sys/class/camera/rear/rear_camfw_full
chown system radio /sys/class/camera/rear/rear_checkfw_user
chown system radio /sys/class/camera/rear/rear_checkfw_factory
chown system radio /sys/class/camera/rear/rear_sensor_standby
chown system radio /sys/class/camera/rear/rear_camtype
chown system radio /sys/class/camera/rear/rear_companionfw
chown system radio /sys/class/camera/rear/rear_companionfw_full
chown system radio /sys/class/camera/rear/rear_calcheck
chown system radio /sys/class/camera/rear/rear_caminfo
chown system radio /sys/class/camera/rear/rear_sensorid
chown system radio /sys/class/camera/rear/from_write
chown system radio /sys/class/camera/rear/isp_core
chown system radio /sys/class/camera/rear/fw_update
chown system radio /sys/class/camera/flash/rear_flash
chown system radio /sys/class/camera/flash/front_flash
chown cameraserver system /sys/class/camera/flash/rear_torch_flash
chown cameraserver system /sys/class/camera/flash/front_torch_flash
chown system radio /sys/class/camera/front/front_camfw
chown system radio /sys/class/camera/front/front_camfw_full
chown system radio /sys/class/camera/front/front_checkfw_factory
chown system radio /sys/class/camera/front/front_camtype
chown system radio /sys/class/camera/front/front_moduleid
chown system radio /sys/class/camera/front/front_caminfo
chown system radio /sys/class/camera/front/front_sensorid
chown system radio /sys/class/camera/ois/selftest
chown system radio /sys/class/camera/ois/ois_power
chown system radio /sys/class/camera/ois/ois_rawdata
chown system radio /sys/class/camera/ois/oisfw
chown system radio /sys/class/camera/ois/ois_diff
chown system radio /sys/class/camera/ois/fw_update
chown system radio /sys/class/camera/ois/ois_exif
chown system system /sys/devices/svc/Camera/SVC_rear_module
chown system system /sys/devices/svc/Camera/SVC_front_module
# FM Radio
chown system audio /dev/radio0
chmod 0660 /dev/radio0
#ARGOSD network_throughput
chown system system /dev/network_throughput
# ARGOSD
service argos-daemon /system/bin/argosd
class main
user system
group system radio
# LPM
service lpm /vendor/bin/lpm
class charger
critical
seclabel u:r:charger:s0
# Bluetooth
on property:wc_transport.start_hci=true
start start_hci_filter
on property:wc_transport.start_hci=false
stop start_hci_filter
service start_hci_filter /vendor/bin/wcnss_filter
class late_start
user bluetooth
group bluetooth
disabled
# RPMB daemon
service rpmbd /system/bin/rpmbd
user root
group drmrpc
class main
on property:sys.mobicoredaemon.enable=true
start cs_service
write /proc/iccc_ready 1
on property:ro.multisim.simslotcount=1
setprop persist.radio.multisim.config ss
on property:ro.multisim.simslotcount=2
setprop persist.radio.multisim.config dsds
# Modem boot daemon
# service cpboot-daemon /system/bin/cbd -d
# class main
# user root
# group radio cache inet misc audio sdcard_rw log
# DM daemon
# service DM-daemon /system/bin/dmd
# class main
# user root
# group system
# SCE daemon
# service SCE-daemon /system/bin/sced
# class main
# user root
# group system
# diag daemon
# service DM-daemon /system/bin/diagexe
# class main
# user root
# group system
service fuse_sdcard /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/sdcard /storage/sdcard
class late_start
disabled
service fuse_usb1 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/usb1 /storage/usb1
class late_start
disabled
# IPSec for VOLTE
service ipsec-daemon /system/bin/IPSecService
class main
socket ipsec_socket stream 660 system net_admin
user system
group system net_raw inet net_admin
# Set watchdog timer to 30 seconds and pet it every 10 seconds to get a 20 second margin
service watchdogd /sbin/watchdogd 10 20
class core
seclabel u:r:watchdogd:s0
# on userdebug and eng builds, enable kgdb on the serial console
on property:ro.debuggable=1
write /sys/module/kgdboc/parameters/kgdboc ttyFIQ1
write /sys/module/fiq_debugger/parameters/kgdb_enable 1
service prepare_param /system/bin/prepare_param.sh /dev/block/platform/13540000.dwmmc0/by-name/PARAM
class core
user root
group root
seclabel u:r:prepare_param:s0
oneshot
# Secure Storage startup
service secure_storage /system/bin/secure_storage_daemon
class core
user system
group system
disabled
on property:ro.securestorage.knox=true
mkdir /dev/.secure_storage
chmod 0711 /dev/.secure_storage
chown system system /dev/.secure_storage
restorecon -R /dev/.secure_storage
start secure_storage
on property:ro.securestorage.support=true
mkdir /dev/.secure_storage
chmod 0711 /dev/.secure_storage
chown system system /dev/.secure_storage
restorecon -R /dev/.secure_storage
start secure_storage
# umount service
service umount_service /system/bin/umount -D /preload
disabled
oneshot
# Support Preload install apks
on property:persist.sys.storage_preload=1
mount ext4 /dev/block/platform/13540000.dwmmc0/by-name/HIDDEN /preload nosuid nodev ro barrier=1
setprop storage.preload.complete 1
on property:persist.sys.storage_preload=0
start umount_service
# SSWAP
service sswap /vendor/bin/sswap -s
class core
user root
group root
oneshot
# sem_daemon
service sem_daemon /system/bin/sem_daemon
class core
user system
group system nfc
disabled
on property:sys.boot_completed=1
setprop security.semdaemonfinish 0
start sem_daemon
on property:security.semdaemonfinish=1
stop sem_daemon

View file

@ -0,0 +1,302 @@
on init
write /sys/class/android_usb/android0/iSerial $ro.serialno
write /sys/class/android_usb/android0/f_rndis/manufacturer Samsung
write /sys/class/android_usb/android0/f_rndis/vendorID 04e8
write /sys/class/android_usb/android0/f_rndis/wceis 1
on post-fs
mkdir /dev/usb-ffs 0770 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
write /sys/class/android_usb/android0/f_ffs/aliases adb
on boot
write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
write /sys/class/android_usb/android0/iProduct ${ro.product.model}
write /sys/class/android_usb/android0/iSerial ${ro.serialno}
write /sys/class/android_usb/android0/f_mass_storage/inquiry_string "Samsung"
on property:sys.usb.config=mtp
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6860
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6860
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mtp,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6860
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=midi
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 686C
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=midi,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=midi,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 686C
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ncm
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 685d
write /sys/class/android_usb/android0/functions ncm
write /sys/class/android_usb/android0/bDeviceClass 2
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ncm,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ncm,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 685d
write /sys/class/android_usb/android0/functions ncm,adb
write /sys/class/android_usb/android0/bDeviceClass 2
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6863
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/bDeviceClass 224
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6864
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/bDeviceClass 224
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ptp
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6865
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ptp,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6866
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,dm
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6862
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,acm,dm
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6862
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,acm,dm,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,acm,dm,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6862
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=acm,dm,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=acm,dm,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04E8
write /sys/class/android_usb/android0/idProduct 685d
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=acm,dm
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04E8
write /sys/class/android_usb/android0/idProduct 685d
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=sec_charging
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04E8
write /sys/class/android_usb/android0/idProduct 6860
write /sys/class/android_usb/android0/functions mtp
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=sec_charging,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=sec_charging,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04E8
write /sys/class/android_usb/android0/idProduct 6860
write /sys/class/android_usb/android0/functions mtp,adb
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=vzw_charging
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04E8
write /sys/class/android_usb/android0/idProduct 6860
write /sys/class/android_usb/android0/functions mtp
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=vzw_charging,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=vzw_charging,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04E8
write /sys/class/android_usb/android0/idProduct 6860
write /sys/class/android_usb/android0/functions mtp,adb
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mass_storage
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 685B
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mass_storage,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 685e
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mass_storage,acm
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 685e
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
# rndis,acm,diag and diag,acm,adb used for Hidden Menu
on property:sys.usb.config=rndis,diag
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6862
write /sys/class/android_usb/android0/f_diag/clients diag_mdm
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=dm,acm,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=dm,acm,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04E8
write /sys/class/android_usb/android0/idProduct 685d
write /sys/class/android_usb/android0/f_diag/clients diag_mdm
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,acm
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04E8
write /sys/class/android_usb/android0/idProduct 685d
write /sys/class/android_usb/android0/f_diag/clients diag_mdm
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,acm,diag
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04E8
write /sys/class/android_usb/android0/idProduct 6864
write /sys/class/android_usb/android0/f_diag/clients diag_mdm
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mtp,conn_gadget
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6860
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/bDeviceClass 0
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mtp,conn_gadget,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,conn_gadget,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6860
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/bDeviceClass 0
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}

57
rootdir/etc/init.wifi.rc Normal file
View file

@ -0,0 +1,57 @@
# Wi-Fi init file
on post-fs-data
mkdir /data/vendor/conn 0771 wifi root
mkdir /data/vendor/wifi 0771 wifi wifi
mkdir /data/vendor/wifi/wpa 0770 wifi wifi
mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
mkdir /data/vendor/log/wifi 0770 wifi system
# for WIFI TRP/TIS
chown wifi root /data/vendor/conn/.psm.info
chmod 0660 /data/vendor/conn/.psm.info
# for WIFI Antenna Selection
chown wifi root /data/vendor/conn/.ant.info
chmod 0660 /data/vendor/conn/.ant.info
# for WIFI Version
chown wifi root /data/vendor/conn/.wifiver.info
chmod 0664 /data/vendor/conn/.wifiver.info
# for WIFI MEMDUMP
# The default value of below memdump file is set in SecProductFeature
#write /data/vendor/conn/.memdump.info 2
chown wifi root /data/vendor/conn/.memdump.info
chmod 0660 /data/vendor/conn/.memdump.info
# for WIFI hotspot
chown wifi root /data/vendor/conn/.softap.info
chmod 0664 /data/vendor/conn/.softap.info
chown system wifi /vendor/etc/wifi/indoorchannel.info
chmod 0664 /vendor/etc/wifi/indoorchannel.info
# for WIFI MAC
chown wifi root /sys/wifi/mac_addr
chmod 0660 /sys/wifi/mac_addr
on boot
setprop wifi.interface wlan0
service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
-O/data/vendor/wifi/wpa/sockets \
-g@android:wpa_wlan0
interface android.hardware.wifi.supplicant@1.0::ISupplicant default
interface android.hardware.wifi.supplicant@1.1::ISupplicant default
interface android.hardware.wifi.supplicant@1.2::ISupplicant default
interface android.hardware.wifi.supplicant@1.3::ISupplicant default
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
service macloader /vendor/bin/hw/macloader
class main
oneshot
# end of WiFi MFG (TestMode)

14
rootdir/etc/twrp.fstab Normal file
View file

@ -0,0 +1,14 @@
/boot emmc /dev/block/platform/13540000.dwmmc0/by-name/BOOT
/recovery emmc /dev/block/platform/13540000.dwmmc0/by-name/RECOVERY flags=backup=1
/system ext4 /dev/block/platform/13540000.dwmmc0/by-name/SYSTEM
/data ext4 /dev/block/platform/13540000.dwmmc0/by-name/USERDATA flags=encryptable=footer;length=-20480
/cache ext4 /dev/block/platform/13540000.dwmmc0/by-name/CACHE
/modem emmc /dev/block/platform/13540000.dwmmc0/by-name/RADIO flags=backup=1;display="Modem"
/modem-cdma emmc /dev/block/platform/13540000.dwmmc0/by-name/CDMA-RADIO flags=backup=1;display="CDMA Modem";subpartitionof=/modem
/efs ext4 /dev/block/platform/13540000.dwmmc0/by-name/EFS flags=backup=1;display="EFS"
/cpefs emmc /dev/block/platform/13540000.dwmmc0/by-name/CPEFS flags=backup=1;display="CPEFS";subpartitionof=/efs
/m9kefs1 emmc /dev/block/platform/13540000.dwmmc0/by-name/m9kefs1 flags=backup=1;subpartitionof=/efs
/m9kefs2 emmc /dev/block/platform/13540000.dwmmc0/by-name/m9kefs2 flags=backup=1;subpartitionof=/efs
/m9kefs3 emmc /dev/block/platform/13540000.dwmmc0/by-name/m9kefs3 flags=backup=1;subpartitionof=/efs
/external_sd vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="Micro SDcard";storage;wipeingui;removable
/usb-otg vfat /dev/block/sda1 /dev/block/sda flags=display="USB-OTG";storage;wipeingui;removable

View file

@ -0,0 +1,268 @@
# ueventd can only set permissions on device nodes and their associated
# sysfs attributes, not on arbitrary paths.
#
# format for /dev rules: devname mode uid gid
# format for /sys rules: nodename attr mode uid gid
# shortcut: "mtd@NN" expands to "/dev/mtd/mtdNN"
/dev/null 0666 root root
/dev/zero 0666 root root
/dev/full 0666 root root
/dev/ptmx 0666 root root
/dev/tty 0666 root root
/dev/random 0666 root root
/dev/urandom 0666 root root
# Make HW RNG readable by group system to let EntropyMixer read it.
/dev/hw_random 0440 root system
/dev/ashmem 0666 root root
/dev/binder 0666 root root
/dev/hwbinder 0666 root root
/dev/vndbinder 0666 root root
/dev/ovr* 0664 root system
/dev/tvr* 0664 root system
/dev/pmsg0 0222 root log
# the msm hw3d client device node is world writable/readable.
/dev/msm_hw3dc 0666 root root
# gpu driver for adreno200 is globally accessible
/dev/kgsl 0666 root root
# kms driver for drm based gpu
/dev/dri/* 0666 root graphics
# these should not be world writable
/dev/diag 0660 radio radio
/dev/diag_arm9 0660 radio radio
/dev/ttyMSM0 0600 bluetooth bluetooth
/dev/uhid 0660 uhid uhid
/dev/uinput 0660 system bluetooth
/dev/alarm 0664 system radio
/dev/power_on_alarm 0660 system radio
/dev/rtc0 0660 system system
/dev/tty0 0660 root system
/dev/ttySAC0 0660 root radio
/dev/graphics/* 0660 root graphics
/dev/msm_hw3dm 0660 system graphics
/dev/input/* 0660 root input
/dev/v4l-touch* 0660 root input
/dev/eac 0660 root audio
/dev/cam 0660 root camera
/dev/pmem 0660 system graphics
/dev/pmem_adsp* 0660 system audio
/dev/pmem_camera* 0660 system camera
/dev/oncrpc/* 0660 root system
/dev/adsp/* 0660 system audio
/dev/snd/* 0660 system audio
/dev/mt9t013 0660 system system
/dev/msm_camera/* 0660 system system
/dev/akm8976_daemon 0640 compass system
/dev/akm8976_aot 0640 compass system
/dev/akm8973_daemon 0640 compass system
/dev/akm8973_aot 0640 compass system
/dev/bma150 0640 compass system
/dev/cm3602 0640 compass system
/dev/akm8976_pffd 0640 compass system
/dev/lightsensor 0640 system system
/dev/msm_pcm_out* 0660 system audio
/dev/msm_pcm_in* 0660 system audio
/dev/msm_pcm_ctl* 0660 system audio
/dev/msm_snd* 0660 system audio
/dev/msm_mp3* 0660 system audio
/dev/audience_a1026* 0660 system audio
/dev/tpa2018d1* 0660 system audio
/dev/msm_audpre 0660 system audio
/dev/msm_audio_ctl 0660 system audio
/dev/htc-acoustic 0660 system audio
/dev/vdec 0660 system audio
/dev/q6venc 0660 system audio
/dev/snd/dsp 0660 system audio
/dev/snd/dsp1 0660 system audio
/dev/snd/mixer 0660 system audio
/dev/smd0 0640 radio radio
/dev/qmi 0640 radio radio
/dev/qmi0 0640 radio radio
/dev/qmi1 0640 radio radio
/dev/qmi2 0640 radio radio
/dev/bus/usb/* 0660 root usb
/dev/mtp_usb 0660 root mtp
/dev/usb_accessory 0660 root usb
/dev/tun 0660 system vpn
/dev/input/event* 0660 system input
# CDMA radio interface MUX
/dev/ts0710mux* 0640 radio radio
/dev/ppp 0660 radio vpn
# sysfs properties
/sys/devices/platform/trusty.* trusty_version 0440 root log
/sys/devices/virtual/input/input* enable 0660 system input
/sys/devices/virtual/input/input* poll_delay 0660 system input
/sys/devices/virtual/usb_composite/* enable 0664 root system
/sys/devices/system/cpu/cpu* cpufreq/scaling_max_freq 0664 system system
/sys/devices/system/cpu/cpu* cpufreq/scaling_min_freq 0664 system system
# MobiCore
/dev/mobicore 0700 system system
/dev/mobicore-user 0666 radio system
# Secure MEM driver
/dev/s5p-smem 0660 system system
# Fingerprint Sensor
/dev/vfsspi 0660 system system
/dev/esfp0 0660 system system
/dev/goodix_fp 0660 system system
/dev/qbt2000_fd 0660 system system
/dev/qbt2000_ipc 0660 system system
/dev/qbtspi 0660 system system
# DVB API device nodes
/dev/dvb* 0660 root system
# USB
/dev/ttyGS* 0660 system system
# MPSD
/dev/mpsd 0660 system system
/dev/mali0 0666 system system
/dev/ion 0666 system system
/dev/ump 0666 system graphics
/dev/exynos-mem 0660 system graphics
/dev/video0 0660 system camera
/dev/video1 0660 system camera
/dev/video2 0660 system camera
/dev/video3 0660 system camera
/dev/video20 0660 system system
# media0 is used for GSC, DECON, etc
/dev/media0 0660 system camera
# media1 is used for DECON Ext WB
/dev/media1 0660 system graphics
# Various devices use the v4l-subdev interface
# We declare all such nodes simultaneously here
/dev/v4l-subdev0 0660 system camera
/dev/v4l-subdev1 0660 system camera
/dev/v4l-subdev2 0660 system camera
/dev/v4l-subdev3 0660 system camera
/dev/v4l-subdev4 0660 system camera
/dev/v4l-subdev5 0660 system camera
/dev/v4l-subdev6 0660 system camera
/dev/v4l-subdev7 0660 system camera
/dev/v4l-subdev8 0660 system camera
/dev/v4l-subdev9 0660 system camera
/dev/v4l-subdev10 0660 system camera
/dev/v4l-subdev11 0660 system camera
/dev/v4l-subdev12 0660 system camera
/dev/v4l-subdev13 0660 system camera
/dev/v4l-subdev14 0660 system camera
/dev/v4l-subdev15 0660 system camera
/dev/v4l-subdev16 0660 system camera
/dev/v4l-subdev17 0660 system camera
/dev/v4l-subdev18 0660 system camera
/dev/v4l-subdev19 0660 system camera
# v4l-subdev20 is used for DECON Ext WB
/dev/v4l-subdev20 0660 system graphics
/dev/v4l-subdev21 0660 system graphics
# gscalers
/dev/video23 0660 media graphics
/dev/video26 0660 media graphics
/dev/video24 0660 media graphics
/dev/video27 0660 media graphics
/dev/video29 0660 media graphics
/dev/video30 0660 media graphics
# video31 is used for DECON Ext WB
/dev/video31 0660 media graphics
# mscalers
/dev/video50 0660 mediacodec drmrpc
/dev/video51 0660 media graphics
/dev/m2m1shot_scaler0 0660 mediacodec drmrpc
/dev/m2m1shot_scaler1 0660 cameraserver cameraserver
/dev/video55 0666 system graphics
/dev/fimg2d 0666 system graphics
/dev/i2c-2 0660 system system
/dev/HPD 0660 system system
# mfc
/dev/video6 0660 mediacodec mediadrm
/dev/video7 0660 mediacodec mediadrm
/dev/video8 0660 mediacodec mediadrm
/dev/video9 0660 mediacodec mediadrm
# camera
/dev/video100 0660 cameraserver camera
/dev/video101 0660 cameraserver camera
/dev/video102 0660 cameraserver camera
/dev/video103 0660 cameraserver camera
/dev/video104 0660 cameraserver camera
/dev/video109 0660 cameraserver camera
/dev/video110 0660 cameraserver camera
/dev/video111 0660 cameraserver camera
/dev/video112 0660 cameraserver camera
/dev/video120 0660 cameraserver camera
/dev/video121 0660 cameraserver camera
/dev/video122 0660 cameraserver camera
/dev/video130 0660 cameraserver camera
/dev/video131 0660 cameraserver camera
/dev/video132 0660 cameraserver camera
/dev/video140 0660 cameraserver camera
/dev/video141 0660 cameraserver camera
/dev/video142 0660 cameraserver camera
/dev/video150 0660 cameraserver camera
/dev/video151 0660 cameraserver camera
/dev/video152 0660 cameraserver camera
/dev/video160 0660 cameraserver camera
/dev/media2 0660 media media
# hevc
/dev/video10 0660 media media
/dev/video11 0660 media media
# jpeg
/dev/video12 0660 cameraserver media
# audio
/dev/seiren 0660 system audio
# Secure MEM driver
/dev/s5p-smem 0660 system system
# cbd modem block
/dev/block/mmcblk0p5 0400 radio system
# Modem Interface
/dev/block/platform/13540000.dwmmc0/by-name/RADIO 0660 system radio
/dev/block/platform/13540000.dwmmc0/by-name/CP_DEBUG 0660 radio system
/dev/umts* 0660 system radio
/dev/umts_csd 0660 system loop_radio
/dev/smd4 0660 system radio
/dev/umts_ciq* 0660 system bridge_rw
# SIPC RIL
/dev/umts_boot0 0660 radio radio
/dev/umts_ipc0 0660 radio radio
/dev/umts_ipc1 0660 radio radio
/dev/umts_rfs0 0660 radio radio
# interactive governor parameters
/sys/devices/system/cpu/cpu* cpufreq/interactive/timer_rate 0660 system system
/sys/devices/system/cpu/cpu* cpufreq/interactive/timer_slack 0660 system system
/sys/devices/system/cpu/cpu* cpufreq/interactive/min_sample_time 0660 system system
/sys/devices/system/cpu/cpu* cpufreq/interactive/hispeed_freq 0660 system system
/sys/devices/system/cpu/cpu* cpufreq/interactive/target_loads 0660 system system
/sys/devices/system/cpu/cpu* cpufreq/interactive/go_hispeed_load 0660 system system
/sys/devices/system/cpu/cpu* cpufreq/interactive/above_hispeed_delay 0660 system system
/sys/devices/system/cpu/cpu* cpufreq/interactive/boost 0660 system system
/sys/devices/system/cpu/cpu* cpufreq/interactive/boostpulse 0200 system system
/sys/devices/system/cpu/cpu* cpufreq/interactive/input_boost 0660 system system
/sys/devices/system/cpu/cpu* cpufreq/interactive/boostpulse_duration 0660 system system
/sys/devices/system/cpu/cpu* cpufreq/interactive/io_is_busy 0660 system system
# Google FRP solution
/dev/block/platform/13540000.dwmmc0/by-name/PERSISTENT 0660 system system
# Reactivation Lock
/dev/block/platform/13540000.dwmmc0/by-name/STEADY 0660 system system

View file

@ -0,0 +1,19 @@
# device specific syscalls
# extension of services/mediacodec/minijail/seccomp_policy/mediacodec-seccomp-arm.policy
pselect6: 1
eventfd2: 1
sendto: 1
recvfrom: 1
_llseek: 1
sysinfo: 1
getcwd: 1
getdents64: 1
ARM_cacheflush: 1
inotify_init1: 1
inotify_add_watch: 1
inotify_rm_watch: 1
uname: 1
ueventd: 1
timer_create: 1
timer_settime: 1
rt_sigtimedwait: 1

View file

@ -0,0 +1,5 @@
# device specific syscalls.
# extension of services/mediaextractor/minijail/seccomp_policy/mediaextractor-seccomp-arm.policy
readlinkat: 1
pread64: 1
mremap: 1

3
sepolicy_minimal/file.te Normal file
View file

@ -0,0 +1,3 @@
type sec_efs_file, file_type;

View file

@ -0,0 +1,3 @@
/cpefs(/.*)? u:object_r:sec_efs_file:s0

48
setup-makefiles.sh Normal file
View file

@ -0,0 +1,48 @@
#!/bin/bash
#
# Copyright (C) 2017-2019 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.
#
set -e
VENDOR=samsung
DEVICE=universal7870-common
export INITIAL_COPYRIGHT_YEAR=2017
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
LINEAGE_ROOT="${MY_DIR}/../../.."
HELPER="${AOSP_ROOT}/vendor/aosp/build/tools/extract_utils.sh"
if [ ! -f "${HELPER}" ]; then
echo "Unable to find helper script at ${HELPER}"
exit 1
fi
source "${HELPER}"
# Initialize the helper
setup_vendor "${DEVICE}" "${VENDOR}" "${AOSP_ROOT}"
# Copyright headers and guards
write_headers "universal7870-common"
# The standard blobs
write_makefiles "${MY_DIR}/proprietary-files.txt" true
# Finish
write_footers

20
shims/Android.mk Normal file
View file

@ -0,0 +1,20 @@
#
#
# Copyright (C) 2016 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.
#
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles,$(LOCAL_PATH))

View file

@ -0,0 +1,27 @@
#
# Copyright (C) 2019 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.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := CameraParameters.cpp GraphicBuffer.cpp
LOCAL_C_INCLUDES := frameworks/native/include
LOCAL_SHARED_LIBRARIES := libui libutils
LOCAL_MODULE := libexynoscamera_shim
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_VENDOR_MODULE := true
include $(BUILD_SHARED_LIBRARY)

View file

@ -0,0 +1,50 @@
/*
* Copyright (C) 2018 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 "CameraParameters.h"
namespace android {
const char CameraParameters::PIXEL_FORMAT_YUV420SP_NV21[] = "nv21";
const char CameraParameters::EFFECT_CARTOONIZE[] = "cartoonize";
const char CameraParameters::EFFECT_POINT_RED_YELLOW[] = "point-red-yellow";
const char CameraParameters::EFFECT_POINT_GREEN[] = "point-green";
const char CameraParameters::EFFECT_POINT_BLUE[] = "point-blue";
const char CameraParameters::EFFECT_VINTAGE_COLD[] = "vintage-cold";
const char CameraParameters::EFFECT_VINTAGE_WARM[] = "vintage-warm";
const char CameraParameters::EFFECT_WASHED[] = "washed";
const char CameraParameters::ISO_AUTO[] = "auto";
const char CameraParameters::ISO_NIGHT[] = "night";
const char CameraParameters::ISO_SPORTS[] = "sports";
const char CameraParameters::ISO_1600[] = "1600";
const char CameraParameters::ISO_800[] = "800";
const char CameraParameters::ISO_400[] = "400";
const char CameraParameters::ISO_200[] = "200";
const char CameraParameters::ISO_100[] = "100";
const char CameraParameters::ISO_80[] = "80";
const char CameraParameters::ISO_50[] = "50";
const char CameraParameters::KEY_SUPPORTED_METERING_MODE[] = "metering-values";
const char CameraParameters::METERING_CENTER[] = "center";
const char CameraParameters::METERING_MATRIX[] = "matrix";
const char CameraParameters::METERING_SPOT[] = "spot";
const char CameraParameters::METERING_OFF[] = "off";
const char CameraParameters::KEY_DYNAMIC_RANGE_CONTROL[] = "dynamic-range-control";
const char CameraParameters::KEY_SUPPORTED_PHASE_AF[] = "phase-af-values";
const char CameraParameters::KEY_PHASE_AF[] = "phase-af";
const char CameraParameters::KEY_SUPPORTED_RT_HDR[] = "rt-hdr-values";
const char CameraParameters::KEY_RT_HDR[] = "rt-hdr";
}; // namespace android

View file

@ -0,0 +1,52 @@
/*
* Copyright (C) 2018 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.
*/
namespace android {
class CameraParameters
{
public:
static const char PIXEL_FORMAT_YUV420SP_NV21[];
static const char EFFECT_CARTOONIZE[];
static const char EFFECT_POINT_RED_YELLOW[];
static const char EFFECT_POINT_GREEN[];
static const char EFFECT_POINT_BLUE[];
static const char EFFECT_VINTAGE_COLD[];
static const char EFFECT_VINTAGE_WARM[];
static const char EFFECT_WASHED[];
static const char ISO_AUTO[];
static const char ISO_NIGHT[];
static const char ISO_SPORTS[];
static const char ISO_1600[];
static const char ISO_800[];
static const char ISO_400[];
static const char ISO_200[];
static const char ISO_100[];
static const char ISO_80[];
static const char ISO_50[];
static const char KEY_SUPPORTED_METERING_MODE[];
static const char METERING_CENTER[];
static const char METERING_MATRIX[];
static const char METERING_SPOT[];
static const char METERING_OFF[];
static const char KEY_DYNAMIC_RANGE_CONTROL[];
static const char KEY_SUPPORTED_PHASE_AF[];
static const char KEY_PHASE_AF[];
static const char KEY_SUPPORTED_RT_HDR[];
static const char KEY_RT_HDR[];
};
}; // namespace android

View file

@ -0,0 +1,20 @@
/*
* Copyright (C) 2018 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 <ui/GraphicBuffer.h>
extern "C" void _ZN7android5FenceD1Ev() {
}

View file

@ -0,0 +1,46 @@
#
# Copyright (C) 2018 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.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := CameraSource.cpp
LOCAL_C_INCLUDES := \
$(TOP)/frameworks/av/include \
$(TOP)/frameworks/av/media/ndk/include \
$(TOP)/frameworks/native/include \
$(TOP)/frameworks/native/include/gui \
$(TOP)/frameworks/native/include/media/hardware \
$(TOP)/frameworks/native/include/media/openmax \
$(TOP)/frameworks/native/libs/arect/include \
$(TOP)/frameworks/native/libs/nativebase/include \
$(TOP)/frameworks/native/libs/nativewindow/include \
$(TOP)/frameworks/native/opengl/include \
$(TOP)/hardware/libhardware/include \
$(TOP)/hardware/interfaces/graphics/bufferqueue/2.0
LOCAL_SHARED_LIBRARIES := \
android.hardware.graphics.bufferqueue@1.0 \
android.hidl.token@1.0-utils \
libbase \
liblog
LOCAL_MODULE := libstagefright_shim
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_VENDOR_MODULE := true
include $(BUILD_SHARED_LIBRARY)

View file

@ -0,0 +1,97 @@
/*
* Copyright (C) 2018 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_NDEBUG 0
#define LOG_TAG "libstagefright_shim"
#include <utils/Log.h>
#include <OMX_Component.h>
#include <camera/CameraParameters.h>
#include <media/stagefright/CameraSource.h>
namespace android {
static const char PIXEL_FORMAT_YUV420SP_NV21[] = "nv21";
static int32_t getColorFormat(const char* colorFormat) {
if (!colorFormat) {
ALOGE("Invalid color format");
return -1;
}
if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV420P)) {
return OMX_COLOR_FormatYUV420Planar;
}
if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV422SP)) {
return OMX_COLOR_FormatYUV422SemiPlanar;
}
if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV420SP)) {
return OMX_COLOR_FormatYUV420SemiPlanar;
}
if (!strcmp(colorFormat, PIXEL_FORMAT_YUV420SP_NV21)) {
static const int OMX_SEC_COLOR_FormatNV21Linear = 0x7F000011;
return OMX_SEC_COLOR_FormatNV21Linear;
}
if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV422I)) {
return OMX_COLOR_FormatYCbYCr;
}
if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_RGB565)) {
return OMX_COLOR_Format16bitRGB565;
}
if (!strcmp(colorFormat, "OMX_TI_COLOR_FormatYUV420PackedSemiPlanar")) {
return OMX_TI_COLOR_FormatYUV420PackedSemiPlanar;
}
if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_ANDROID_OPAQUE)) {
return OMX_COLOR_FormatAndroidOpaque;
}
if (!strcmp(colorFormat, "YVU420SemiPlanar")) {
return OMX_QCOM_COLOR_FormatYVU420SemiPlanar;
}
ALOGE("Uknown color format (%s), please add it to "
"CameraSource::getColorFormat", colorFormat);
//CHECK(!"Unknown color format");
return -1;
}
/*
* Check whether the camera has the supported color format
* @param params CameraParameters to retrieve the information
* @return OK if no error.
*/
status_t CameraSource::isCameraColorFormatSupported(
const CameraParameters& params) {
ALOGW("SHIM: hijacking %s!", __func__);
mColorFormat = getColorFormat(params.get(
CameraParameters::KEY_VIDEO_FRAME_FORMAT));
if (mColorFormat == -1) {
return BAD_VALUE;
}
return OK;
}
} // namespace android

77
vendor_prop.mk Normal file
View file

@ -0,0 +1,77 @@
# Low memory optimization
ro.config.low_ram=true
# Audio
PRODUCT_PROPERTY_OVERRIDES += \
af.fast_track_multiplier=1 \
audio_hal.force_voice_config=wide
# Bluetooth
PRODUCT_PROPERTY_OVERRIDES += \
ro.bt.bdaddr_path=/efs/bluetooth/bt_addr
# Dalvik/Art
PRODUCT_PROPERTY_OVERRIDES += \
dalvik.vm.dex2oat-filter=speed \
dalvik.vm.image-dex2oat-filter=speed \
ro.sys.fw.dex2oat_thread_count=8 \
dalvik.vm.boot-dex2oat-threads=8 \
dalvik.vm.dex2oat-threads=8 \
dalvik.vm.heapstartsize=8m \
dalvik.vm.heapgrowthlimit=192m \
dalvik.vm.heapsize=512m \
dalvik.vm.heaptargetutilization=0.75 \
dalvik.vm.heapminfree=512k \
dalvik.vm.heapmaxfree=8m
# Graphics
PRODUCT_PROPERTY_OVERRIDES += \
ro.opengles.version=196610 \
debug.hwc.skip_dma_types=0,2 \
debug.hwc.force_gpu=1 \
debug.sf.enable_hwc_vds=1 \
debug.sf.latch_unsignaled=1
# ro.product.first_api_level indicates the first api level the device has commercially launched on.
PRODUCT_PROPERTY_OVERRIDES += \
ro.product.first_api_level=23
# Nfc
PRODUCT_PROPERTY_OVERRIDES += \
ro.nfc.port=I2C \
ro.nfc.sec_hal=true
# Boot directly from charger mode
PRODUCT_PROPERTY_OVERRIDES += \
ro.enable_boot_charger_mode=1
# Radio
PRODUCT_PROPERTY_OVERRIDES += \
persist.radio.sib16_support=0 \
ro.ril.hsxpa=1 \
ro.ril.gprsclass=10 \
ro.ril.telephony.mqanelements=6 \
ro.telephony.default_network=9 \
ro.telephony.get_imsi_from_sim=true \
ro.ril.force_eri_from_xml=true \
persist.radio.add_power_save=1 \
persist.radio.apm_sim_not_pwdn=1 \
ro.smps.enable=true \
telephony.lteOnCdmaDevice=0 \
# read DS/SS property
PRODUCT_PROPERTY_OVERRIDES += \
import /efs/factory.prop
#Treble
PRODUCT_PROPERTY_OVERRIDES += \
persist.media.treble_omx=true
# sdcardfs
PRODUCT_PROPERTY_OVERRIDES += \
ro.sys.sdcardfs=true
# Wifi
PRODUCT_PROPERTY_OVERRIDES += \
wifi.interface=wlan0 \
net.tethering.noprovisioning=true