taoyao: Syncing to latest sm8350-common changes

This commit is contained in:
Richard Carvalho
2025-07-07 16:19:59 -03:00
parent a906c0ce80
commit 5ec39728de
94 changed files with 2258 additions and 5783 deletions

View File

@@ -8,6 +8,10 @@ DEVICE_PATH := device/xiaomi/taoyao
BOARD_VENDOR := xiaomi
# Ignore overriding commands errors
BUILD_BROKEN_DUP_RULES := true
BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
# A/B
AB_OTA_PARTITIONS += \
boot \
@@ -24,19 +28,25 @@ AB_OTA_PARTITIONS += \
# Architecture
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_ARCH_VARIANT := armv8-2a-dotprod
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := cortex-a76
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv8-2a
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := cortex-a55
TARGET_2ND_CPU_VARIANT := cortex-a76
# ART
ART_BUILD_TARGET_NDEBUG := true
ART_BUILD_TARGET_DEBUG := false
ART_BUILD_HOST_NDEBUG := true
ART_BUILD_HOST_DEBUG := false
# Audio
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := true
AUDIO_FEATURE_ENABLED_GKI := true
AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true
BOARD_SUPPORTS_SOUND_TRIGGER := true
@@ -44,15 +54,12 @@ TARGET_PROVIDES_AUDIO_EXTNS := true
# Bootloader
TARGET_NO_BOOTLOADER := true
TARGET_BOOTLOADER_BOARD_NAME := taoyao
# Camera
TARGET_CAMERA_SERVICE_EXT_LIB := //$(DEVICE_PATH):libcameraservice_extension.xiaomi_sm8350
# Display
TARGET_SCREEN_DENSITY := 440
# Dolby Vision
SOONG_CONFIG_NAMESPACES += dolby_vision
SOONG_CONFIG_dolby_vision += enabled
SOONG_CONFIG_dolby_vision_enabled := true
TARGET_SCREEN_DENSITY ?= 440
# Filesystem
TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/config.fs
@@ -98,19 +105,17 @@ PRODUCT_COPY_FILES += \
BOARD_KERNEL_CMDLINE += androidboot.console=ttyMSM0
BOARD_KERNEL_CMDLINE += androidboot.hardware=qcom
BOARD_KERNEL_CMDLINE += androidboot.memcg=1
BOARD_KERNEL_CMDLINE += androidboot.usbcontroller=a600000.dwc3
BOARD_KERNEL_CMDLINE += cgroup.memory=nokmem,nosocket
BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200n8
BOARD_KERNEL_CMDLINE += ip6table_raw.raw_before_defrag=1
BOARD_KERNEL_CMDLINE += iptable_raw.raw_before_defrag=1
BOARD_KERNEL_CMDLINE += loop.max_part=7
BOARD_KERNEL_CMDLINE += lpm_levels.sleep_disabled=1
BOARD_KERNEL_CMDLINE += msm_rtb.filter=0x237
BOARD_KERNEL_CMDLINE += pcie_ports=compat
BOARD_KERNEL_CMDLINE += service_locator.enable=1
BOARD_KERNEL_CMDLINE += swiotlb=0
BOARD_KERNEL_CMDLINE += video=vfb:640x400,bpp=32,memsize=3072000
BOARD_KERNEL_CMDLINE += pcie_ports=compat
BOARD_KERNEL_CMDLINE += iptable_raw.raw_before_defrag=1
BOARD_KERNEL_CMDLINE += ip6table_raw.raw_before_defrag=1
BOARD_KERNEL_CMDLINE += androidboot.init_fatal_reboot_target=recovery
# Kernel modules
BOARD_KERNEL_MODULE_DIRS := 5.4-gki
@@ -127,9 +132,9 @@ BOARD_VENDOR_KERNEL_MODULES_5.4-gki := $(wildcard $(DEVICE_PATH)/prebuilts/modul
BOARD_VENDOR_KERNEL_MODULES_LOAD_5.4-gki := $(BOARD_VENDOR_KERNEL_MODULES_5.4-gki)
# Partitions
BOARD_FLASH_BLOCK_SIZE := 262144
BOARD_FLASH_BLOCK_SIZE := 131072
BOARD_BOOTIMAGE_PARTITION_SIZE := 201326592
BOARD_DTBOIMG_PARTITION_SIZE := 16777216
BOARD_DTBOIMG_PARTITION_SIZE := 25165824
BOARD_SUPER_PARTITION_SIZE := 9126805504
BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 100663296
BOARD_USES_METADATA_PARTITION := true
@@ -159,9 +164,6 @@ TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm
# Platform
TARGET_BOARD_PLATFORM := lahaina
# Power
TARGET_POWERHAL_MODE_EXT := $(DEVICE_PATH)/power/power-mode.cpp
# Properties
TARGET_ODM_PROP += $(DEVICE_PATH)/odm.prop
TARGET_PRODUCT_PROP += $(DEVICE_PATH)/product.prop
@@ -184,7 +186,7 @@ TARGET_USERIMAGES_USE_F2FS := true
ENABLE_VENDOR_RIL_SERVICE := true
# Security patch level
VENDOR_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH)
VENDOR_SECURITY_PATCH := 2025-06-05
# Sepolicy
include device/lineage/sepolicy/libperfmgr/sepolicy.mk
@@ -192,7 +194,6 @@ include device/qcom/sepolicy_vndr/SEPolicy.mk
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/private
SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/public
BOARD_VENDOR_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/dolby
BOARD_VENDOR_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/vendor
SELINUX_IGNORE_NEVERALLOWS := true
@@ -216,6 +217,7 @@ BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
CONFIG_IEEE80211AX := true
QC_WIFI_HIDL_FEATURE_DUAL_AP := true
WIFI_DRIVER_DEFAULT := wlan
WIFI_DRIVER_STATE_CTRL_PARAM := "/dev/wlan"

View File

@@ -41,15 +41,7 @@
<library name="volume_listener" path="libvolumelistener.so"/>
<library name="audiosphere" path="libasphere.so"/>
<library name="shoebox" path="libshoebox.so"/>
<!--DOLBY DAP-->
<library name="dap" path="libhwdap.so"/>
<!--DOLBY END-->
<!--DOLBY GAME-->
<library name="gamedap" path="libswgamedap.so"/>
<!--DOLBY END-->
<!--DOLBY VQE-->
<library name="vqe" path="libswvqe.so"/>
<!--DOLBY END-->
<library name="v4a_re" path="libv4a_re.so"/>
</libraries>
<effects>
<effectProxy name="bassboost" library="proxy" uuid="14804144-a5ee-4d24-aa88-0002a5d5c51b">
@@ -98,28 +90,23 @@
<effect name="notification_helper" library="volume_listener" uuid="0b776dde-0590-11e5-81ba-0025b32654a0"/>
<effect name="audiosphere" library="audiosphere" uuid="184e62ab-2d19-4364-9d1b-c0a40733866c"/>
<effect name="shoebox" library="shoebox" uuid="1eab784c-1a36-4b2a-b7fc-e34c44cab89e"/>
<!--DOLBY DAP-->
<effect name="dap" library="dap" uuid="9d4921da-8225-4f29-aefa-39537a04bcaa"/>
<!--DOLBY END-->
<!--DOLBY GAME-->
<effect name="gamedap" library="gamedap" uuid="3783c334-d3a0-4d13-874f-0032e5fb80e2"/>
<!--DOLBY END-->
<!--DOLBY VQE-->
<effect name="vqe" library="vqe" uuid="64a0f614-7fa4-48b8-b081-d59dc954616f"/>
<!--DOLBY END-->
<effect name="v4a_standard_re" library="v4a_re" uuid="90380da3-8536-4744-a6a3-5731970e640f"/>
</effects>
<postprocess>
<stream type="system">
</stream>
<stream type="music">
<apply effect="music_helper"/>
</stream>
<stream type="ring">
<apply effect="ring_helper"/>
</stream>
<stream type="alarm">
<apply effect="alarm_helper"/>
</stream>
<stream type="voice_call">
<apply effect="voice_helper"/>
</stream>
<stream type="notification">
<apply effect="notification_helper"/>
</stream>
</postprocess>
<preprocess>

View File

@@ -76,7 +76,7 @@ outputs {
}
compress_passthrough {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING|AUDIO_OUTPUT_FLAG_COMPRESS_PASSTHROUGH
formats AUDIO_FORMAT_AC3|AUDIO_FORMAT_E_AC3|AUDIO_FORMAT_E_AC3_JOC|AUDIO_FORMAT_DTS|AUDIO_FORMAT_DTS_HD|AUDIO_FORMAT_DSD
formats AUDIO_FORMAT_DTS|AUDIO_FORMAT_DTS_HD|AUDIO_FORMAT_DSD
sampling_rates 32000|44100|48000|88200|96000|176400|192000|352800
bit_width 16
app_type 69941

View File

@@ -134,18 +134,9 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
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"/>
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
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"/>
<profile name="" format="AUDIO_FORMAT_AC3"
samplingRates="32000,44100,48000"
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"/>
<profile name="" format="AUDIO_FORMAT_E_AC3"
samplingRates="32000,44100,48000"
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"/>
<profile name="" format="AUDIO_FORMAT_E_AC3_JOC"
samplingRates="32000,44100,48000"
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"/>
</mixPort>
<mixPort name="compressed_offload" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
@@ -322,23 +313,6 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<!-- Custom Bluetooth Ports Declarations for Dolby Processing -->
<devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
encodedFormats="AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,88200,96000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
encodedFormats="AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,88200,96000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
encodedFormats="AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,88200,96000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</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"
@@ -402,12 +376,6 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="USB Headset Out"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,deep_buffer,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Headphones"
sources="primary output,deep_buffer,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Speaker"
sources="primary output,deep_buffer,compressed_offload,voip_rx"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx,incall_music_uplink"/>
<route type="mix" sink="voice_rx"

View File

@@ -3,308 +3,207 @@
{
"Name": "CPULittleClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq",
"Values": [
"9999999",
"1612800"
],
"Values": ["9999999", "1612800"],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "CPULittleClusterMinFreq",
"Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq",
"Values": [
"9999999",
"1708800",
"1305600",
"691200"
],
"Values": ["9999999", "1708800", "1305600", "691200"],
"ResetOnInit": true
},
{
"Name": "CPULittleClusterUpRateLimit",
"Path": "/sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us",
"Values": [
"500",
"2000"
],
"Values": ["500", "2000"],
"ResetOnInit": true
},
{
"Name": "CPULittleClusterDownRateLimit",
"Path": "/sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us",
"Values": [
"20000",
"2000"
],
"Values": ["20000", "2000"],
"ResetOnInit": true
},
{
"Name": "CPUBigClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq",
"Values": [
"9999999",
"1324800"
],
"Values": ["9999999", "1324800"],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "CPUBigClusterMinFreq",
"Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq",
"Values": [
"9999999",
"1324800",
"1075200",
"710400"
],
"Values": ["9999999", "1324800", "1075200", "710400"],
"ResetOnInit": true
},
{
"Name": "CPUBigClusterUpRateLimit",
"Path": "/sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us",
"Values": [
"500",
"2000"
],
"Values": ["500", "2000"],
"ResetOnInit": true
},
{
"Name": "CPUBigClusterDownRateLimit",
"Path": "/sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us",
"Values": [
"10000",
"2000"
],
"Values": ["10000", "2000"],
"ResetOnInit": true
},
{
"Name": "CPUBigPlusClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq",
"Values": [
"9999999",
"1555200"
],
"Values": ["9999999", "1555200"],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "CPUBigPlusClusterMinFreq",
"Path": "/sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq",
"Values": [
"9999999",
"1075200",
"844800"
],
"Values": ["9999999", "1075200", "844800"],
"ResetOnInit": true
},
{
"Name": "CPUBigPlusClusterUpRateLimit",
"Path": "/sys/devices/system/cpu/cpu7/cpufreq/schedutil/up_rate_limit_us",
"Values": [
"500",
"2000"
],
"Values": ["500", "2000"],
"ResetOnInit": true
},
{
"Name": "CPUBigPlusClusterDownRateLimit",
"Path": "/sys/devices/system/cpu/cpu7/cpufreq/schedutil/down_rate_limit_us",
"Values": [
"5000",
"2000"
],
"Values": ["5000", "2000"],
"ResetOnInit": true
},
{
"Name": "UclampTAMin",
"Path": "/dev/cpuctl/top-app/cpu.uclamp.min",
"Values": [
"0",
"25",
"50"
],
"Values": ["0", "25", "50"],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "UclampTALatency",
"Path": "/dev/cpuctl/top-app/cpu.uclamp.latency_sensitive",
"Values": [
"1",
"0"
],
"Values": ["1", "0"],
"ResetOnInit": true
},
{
"Name": "UclampFgMin",
"Path": "/dev/cpuctl/foreground/cpu.uclamp.min",
"Values": [
"0",
"50"
],
"Values": ["0", "50"],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "SchedPreferSpread",
"Path": "/proc/sys/kernel/sched_prefer_spread",
"Values": [
"4",
"0"
],
"Values": ["4", "0"],
"ResetOnInit": true
},
{
"Name": "SchedBusyHystNs",
"Path": "/proc/sys/kernel/sched_busy_hyst_ns",
"Values": [
"99000000",
"3000000",
"0"
],
"Values": ["99000000", "3000000", "0"],
"ResetOnInit": true
},
{
"Name": "SchedBusyHystEnableCPUs",
"Path": "/proc/sys/kernel/sched_busy_hysteresis_enable_cpus",
"Values": [
"255",
"15",
"0"
],
"Values": ["255", "15", "0"],
"ResetOnInit": true
},
{
"Name": "SchedMinTaskUtilForBoost",
"Path": "/proc/sys/kernel/sched_min_task_util_for_boost",
"Values": [
"0",
"51"
],
"Values": ["0", "51"],
"ResetOnInit": true
},
{
"Name": "SchedMinTaskUtilForColoc",
"Path": "/proc/sys/kernel/sched_min_task_util_for_colocation",
"Values": [
"0",
"35"
],
"Values": ["0", "35"],
"ResetOnInit": true
},
{
"Name": "GPUMaxFreq",
"Path": "/sys/class/kgsl/kgsl-3d0/devfreq/max_freq",
"Values": [
"840000000",
"540000000",
"443000000"
],
"Values": ["840000000", "540000000", "443000000"],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "GPUMinFreq",
"Path": "/sys/class/kgsl/kgsl-3d0/devfreq/min_freq",
"Values": [
"540000000",
"379000000",
"315000000"
],
"Values": ["540000000", "379000000", "315000000"],
"ResetOnInit": true
},
{
"Name": "GPUForceRailOn",
"Path": "/sys/class/kgsl/kgsl-3d0/force_rail_on",
"Values": [
"1",
"0"
],
"Values": ["1", "0"],
"ResetOnInit": true
},
{
"Name": "GPUForceClkOn",
"Path": "/sys/class/kgsl/kgsl-3d0/force_clk_on",
"Values": [
"1",
"0"
],
"Values": ["1", "0"],
"ResetOnInit": true
},
{
"Name": "GPUIdleTimer",
"Path": "/sys/class/kgsl/kgsl-3d0/idle_timer",
"Values": [
"10000",
"58"
],
"Values": ["10000", "58"],
"ResetOnInit": true
},
{
"Name": "CPUBWHystTriggerCount",
"Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hyst_trigger_count",
"Values": [
"0",
"3"
],
"Values": ["0", "3"],
"ResetOnInit": true
},
{
"Name": "CPUBWHistMemory",
"Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hist_memory",
"Values": [
"0",
"20"
],
"Values": ["0", "20"],
"ResetOnInit": true
},
{
"Name": "CPUBWHystLength",
"Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hyst_length",
"Values": [
"0",
"10"
],
"Values": ["0", "10"],
"ResetOnInit": true
},
{
"Name": "CPUBWMinFreq",
"Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/min_freq",
"Values": [
"12298",
"9155",
"4577"
],
"Values": ["12298", "9155", "4577"],
"ResetOnInit": true
},
{
"Name": "LLCCBWMinFreq",
"Path": "/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/min_freq",
"Values": [
"6515",
"3879",
"762"
],
"Values": ["6515", "3879", "762"],
"ResetOnInit": true
},
{
"Name": "PowerHALMainState",
"Path": "vendor.powerhal.state",
"Values": [
"SUSTAINED_PERFORMANCE",
""
],
"Values": ["SUSTAINED_PERFORMANCE", ""],
"Type": "Property"
},
{
"Name": "PowerHALRenderingState",
"Path": "vendor.powerhal.rendering",
"Values": [
"EXPENSIVE_RENDERING",
""
],
"Values": ["EXPENSIVE_RENDERING", ""],
"Type": "Property"
},
{
"Name": "DoubleTapToWake",
"Path": "/sys/devices/platform/goodix_ts.0/double_tap_enable",
"Values": ["0", "1"],
"DefaultIndex": 0,
"ResetOnInit": true
}
],
"Actions": [
@@ -576,7 +475,7 @@
"PowerHint": "GAME",
"Node": "CPULittleClusterMinFreq",
"Duration": 0,
"Value": "9999999"
"Value": "9999999"
},
{
"PowerHint": "GAME",
@@ -601,6 +500,12 @@
"Node": "CPUBigPlusClusterDownRateLimit",
"Duration": 0,
"Value": "2000"
},
{
"PowerHint": "DOUBLE_TAP_TO_WAKE",
"Node": "DoubleTapToWake",
"Duration": 0,
"Value": "1"
}
]
}

View File

@@ -6,8 +6,12 @@
# Inherit from those products. Most specific first.
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
TARGET_SUPPORTS_OMX_SERVICE := false
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
# Call the ViperFX Config
$(call inherit-product-if-exists, packages/apps/ViPER4AndroidFX/config.mk)
# Enable virtual A/B OTA
$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/launch_with_vendor_ramdisk.mk)
@@ -24,7 +28,7 @@ $(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
$(call inherit-product, hardware/qcom-caf/common/common.mk)
# API
PRODUCT_SHIPPING_API_LEVEL := 31
PRODUCT_SHIPPING_API_LEVEL := 30
# Audio
PRODUCT_PACKAGES += \
@@ -138,8 +142,7 @@ PRODUCT_SET_DEBUGFS_RESTRICTIONS := true
# Device-specific settings
PRODUCT_PACKAGES += \
DSPVolumeSynchronizer \
XiaomiParts
DSPVolumeSynchronizer
# Display
PRODUCT_PACKAGES += \
@@ -157,45 +160,13 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
hardware/qcom-caf/sm8350/display/config/snapdragon_color_libs_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/snapdragon_color_libs_config.xml
# Dolby Vision
$(call soong_config_set, dolby_vision, enabled, true)
# DRM
PRODUCT_PACKAGES += \
android.hardware.drm-service.clearkey
# Dolby
PRODUCT_PACKAGES += \
XiaomiDolby
# Dolby Config File
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/dolby/config/dax-default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/dolby/dax-default.xml
# Dolby MediaCodecs Dependenices
PRODUCT_PACKAGES += \
libcodec2_hidl@1.0.vendor \
libcodec2_soft_common.vendor \
libstagefright_softomx.vendor \
libstagefright_softomx_plugin.vendor
# Dolby Props
PRODUCT_VENDOR_PROPERTIES += \
ro.vendor.dolby.dax.version=DAX3_3.6.1.6_r1 \
ro.vendor.audio.dolby.dax.version=DAX3_3.6 \
ro.vendor.audio.dolby.dax.support=true \
ro.vendor.audio.dolby.surround.enable=true
# Dolby Effects Props
PRODUCT_VENDOR_PROPERTIES += \
persist.vendor.audio.delta.refresh=true
# MiSound
PRODUCT_VENDOR_PROPERTIES += \
persist.vendor.audio.misound.disable=true \
ro.vendor.audio.misound.bluetooth.enable=true
# Dolby VNDK libs
PRODUCT_PACKAGES += \
libstagefright_foundation-v33
# Fastbootd
PRODUCT_PACKAGES += \
fastbootd
@@ -272,7 +243,6 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/rootdir/etc/init.batterysecret.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.batterysecret.rc \
$(LOCAL_PATH)/rootdir/etc/init.mi_thermald.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.mi_thermald.rc \
$(LOCAL_PATH)/rootdir/etc/init.qcom.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.qcom.rc \
$(LOCAL_PATH)/rootdir/etc/init.qcom.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.qcom.usb.rc \
$(LOCAL_PATH)/rootdir/etc/init.qti.kernel.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.qti.kernel.rc \
$(LOCAL_PATH)/rootdir/etc/init.target.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.target.rc
@@ -292,7 +262,7 @@ PRODUCT_COPY_FILES += \
# IFAA manager
PRODUCT_PACKAGES += \
IFAAService
IFAAService
# IPACM
PRODUCT_PACKAGES += \
@@ -301,7 +271,7 @@ PRODUCT_PACKAGES += \
# IR
PRODUCT_PACKAGES += \
android.hardware.ir-service.xiaomi
android.hardware.ir-service.lineage
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.consumerir.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.consumerir.xml
@@ -364,9 +334,6 @@ PRODUCT_COPY_FILES += \
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
# OMX
TARGET_SUPPORTS_OMX_SERVICE := false
# Overlays
DEVICE_PACKAGE_OVERLAYS += \
$(LOCAL_PATH)/overlay \
@@ -375,10 +342,9 @@ DEVICE_PACKAGE_OVERLAYS += \
PRODUCT_ENFORCE_RRO_TARGETS := *
PRODUCT_PACKAGES += \
CarrierConfigOverlay \
NcmTetheringOverlay \
NfcOverlay \
SettingsProviderOverlay \
WifiOverlay
SettingsProviderOverlay
# Partitions
PRODUCT_PACKAGES += \
@@ -398,8 +364,6 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json \
$(LOCAL_PATH)/configs/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json
$(call soong_config_set,power_libperfmgr,mode_extension_lib,//$(LOCAL_PATH):libperfmgr-ext-xiaomi)
# PowerShare
$(call soong_config_set,lineage_powershare,powershare_path,/sys/class/qcom-battery/reverse_chg_mode)
@@ -416,6 +380,10 @@ PRODUCT_COPY_FILES += \
PRODUCT_PACKAGES += \
libvndfwk_detect_jni.qti.vendor # Needed by CNE app
# RIL
PRODUCT_PACKAGES += \
CarrierConfigOverlay
# Sensors
PRODUCT_PACKAGES += \
android.hardware.sensors-service.xiaomi-multihal \
@@ -435,9 +403,6 @@ PRODUCT_COPY_FILES += \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf
# Sign
-include vendor/evolution-priv/keys/keys.mk
# Soong namespaces
PRODUCT_SOONG_NAMESPACES += \
$(LOCAL_PATH) \
@@ -456,7 +421,9 @@ PRODUCT_PACKAGES += \
qti-telephony-utils \
qti_telephony_utils.xml \
telephony-ext \
xiaomi-telephony-stub \
xiaomi-telephony-stub
PRODUCT_PACKAGES += \
qcrilNrDb_vendor
PRODUCT_BOOT_JARS += \
@@ -489,7 +456,16 @@ PRODUCT_PACKAGES += \
# USB
PRODUCT_PACKAGES += \
android.hardware.usb-service.qti
android.hardware.usb-service.qti \
android.hardware.usb.gadget-service.qti \
usb_compositions.conf
PRODUCT_PACKAGES += \
init.qcom.usb.rc \
init.qcom.usb.sh
PRODUCT_SOONG_NAMESPACES += \
vendor/qcom/opensource/usb/etc
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \
@@ -525,6 +501,7 @@ PRODUCT_PACKAGES += \
android.hardware.wifi-service \
hostapd \
libwifi-hal-qcom \
WifiOverlay \
wpa_cli \
wpa_supplicant \
wpa_supplicant.conf

File diff suppressed because it is too large Load Diff

View File

@@ -28,6 +28,7 @@ namespace_imports = [
'vendor/qcom/opensource/display',
]
def lib_fixup_vendor_suffix(lib: str, partition: str, *args, **kwargs):
return f'{lib}_{partition}' if partition == 'vendor' else None
@@ -56,6 +57,7 @@ blob_fixups: blob_fixups_user_type = {
'system_ext/lib64/libwfdmmsrc_system.so': blob_fixup()
.add_needed('libgui_shim.so'),
'system_ext/lib64/libwfdservice.so': blob_fixup()
.add_needed('libgui_shim_sm8350.so')
.replace_needed('android.media.audio.common.types-V2-cpp.so', 'android.media.audio.common.types-V4-cpp.so'),
'system_ext/lib64/libwfdnative.so': blob_fixup()
.remove_needed('android.hidl.base@1.0.so')

View File

@@ -58,6 +58,14 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.ir</name>
<version>1</version>
<interface>
<name>IConsumerIr</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.power</name>
<version>5</version>

11
libshim/Android.bp Normal file
View File

@@ -0,0 +1,11 @@
//
// Copyright (C) 2021 The LineageOS Project
//
// SPDX-License-Identifier: Apache-2.0
//
cc_library_shared {
name: "libgui_shim_sm8350",
srcs: ["libgui_shim.c"],
system_ext_specific: true,
}

2
libshim/libgui_shim.c Normal file
View File

@@ -0,0 +1,2 @@
void _ZTVN7android21SurfaceComposerClient11TransactionE() {}
void _ZN7android11AudioSystem24setDeviceConnectionStateE24audio_policy_dev_state_tRKNS_5media5audio6common9AudioPortE14audio_format_t() {}

View File

@@ -22,3 +22,14 @@ PRODUCT_BRAND := Xiaomi
PRODUCT_MODEL := 2203129G
PRODUCT_GMS_CLIENTID_BASE := android-xiaomi
SystemName := taoyao_global
SystemDevice := taoyao
PRODUCT_BUILD_PROP_OVERRIDES += \
BuildDesc="taoyao_global-user 14 UKQ1.231003.002 V816.0.17.0.ULIMIXM release-keys" \
DeviceName=$(SystemDevice) \
DeviceProduct=$(SystemName)
# Set BUILD_FINGERPRINT variable to be picked up by both system and vendor build.prop
BUILD_FINGERPRINT := Xiaomi/taoyao_global/taoyao:14/UKQ1.231003.002/V816.0.17.0.ULIMIXM:user/release-keys

View File

@@ -180,6 +180,20 @@
and one pSIM) -->
<integer name="config_num_physical_slots">2</integer>
<!-- Minimum screen brightness setting allowed by power manager.
The user is forbidden from setting the brightness below this level.
Equivalent to 1/255. -->
<item name="config_screenBrightnessSettingMinimumFloat" format="float" type="dimen">0.0</item>
<!-- Maximum screen brightness allowed by the power manager.
The user is forbidden from setting the brightness above this level. -->
<item name="config_screenBrightnessSettingMaximumFloat" format="float" type="dimen">1.0</item>
<!-- Default screen brightness setting
Must be in the range specified by minimum and maximum.
Equivalent to 67/255 (default for this device) -->
<item name="config_screenBrightnessSettingDefaultFloat" format="float" type="dimen">0.26274509804</item>
<!-- Whether device supports double tap to wake -->
<bool name="config_supportDoubleTapWake">true</bool>
@@ -299,6 +313,9 @@
<!-- Smart 5G -->
<bool name="config_supportSmart5G">true</bool>
<!-- Whether the device supports Smart Pixels -->
<bool name="config_supportSmartPixels">false</bool>
<!-- PowerOffAlarmService -->
<bool name="config_powerOffAlarmEnabled">true</bool>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/**
* 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.
*/
-->
<resources>
<!-- Set the automatic brightness mode on by default -->
<bool name="def_screen_brightness_automatic_mode">true</bool>
<!-- Speed up the animations -->
<fraction name="def_window_animation_scale">80%</fraction>
<fraction name="def_window_transition_scale">80%</fraction>
</resources>

View File

@@ -37,17 +37,14 @@
<!-- Max network scan search time in seconds -->
<integer name="config_network_scan_helper_max_search_time_sec">254</integer>
<!-- Show Force LTE_CA toggle -->
<bool name="config_showForceLteCaToggle" translatable="false">true</bool>
<!-- Whether to show peak refresh rate in display settings -->
<bool name="config_show_peak_refresh_rate_switch">true</bool>
<!-- Whether to show min refresh rate in display settings -->
<bool name="config_show_min_refresh_rate_switch">true</bool>
<!-- Whether to show double tap ambient settings -->
<bool name="config_supports_double_tap_ambient" translatable="false">true</bool>
<!-- Show Force LTE_CA toggle -->
<bool name="config_showForceLteCaToggle" translatable="false">true</bool>
<!-- Whether to show volume steps settings -->
<bool name="config_supports_volume_steps" translatable="false">true</bool>

View File

@@ -45,6 +45,57 @@
</intent-filter>
</receiver>
<activity
android:name=".kamisstuff.KamisStuffActivity"
android:label="@string/kamis_stuff_title">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
</intent-filter>
<meta-data
android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.system" />
<meta-data
android:name="com.android.settings.summary"
android:resource="@string/kamis_stuff_summary" />
<meta-data
android:name="com.android.settings.icon"
android:resource="@drawable/ic_kami" />
</activity>
<activity
android:name=".zram.ZramActivity"
android:label="@string/zram_size_title"
android:exported="false" />
<activity
android:name=".charge.ChargeActivity"
android:label="@string/charge_bypass_title"
android:exported="false" />
<activity
android:name=".corecontrol.CoreControlActivity"
android:label="@string/core_control_title"
android:exported="false" />
<activity
android:name=".kernelmanager.KernelManagerActivity"
android:label="@string/kernel_manager_title"
android:exported="false" />
<activity
android:name=".gpumanager.GpuManagerActivity"
android:label="@string/gpu_manager_title"
android:exported="false" />
<activity
android:name=".doze.DozeSettingsActivity"
android:label="@string/ambient_display_title">
</activity>
<service android:name=".doze.DozeService"
android:permission="XiaomiDozeService">
</service>
<activity
android:name=".thermal.ThermalActivity"
android:label="@string/thermal_title">
@@ -65,32 +116,30 @@
</service>
<activity
android:name=".zram.ZramActivity"
android:label="@string/zram_size_title">
<intent-filter>
android:name=".touchsampling.TouchSamplingSettingsActivity"
android:label="@string/htsr_enable_title"
android:theme="@style/Theme.SubSettingsBase"
android:exported="false">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
</intent-filter>
<meta-data
android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.battery" />
<meta-data
android:name="com.android.settings.summary"
android:resource="@string/zram_summary" />
</activity>
<activity
android:name=".charge.ChargeActivity"
android:label="@string/charge_bypass_title">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
</intent-filter>
<meta-data
android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.battery" />
<meta-data
android:value="com.android.settings.category.ia.display" />
<meta-data
android:name="com.android.settings.summary"
android:resource="@string/charge_bypass_summary" />
android:resource="@string/htsr_enable_summary" />
</activity>
<service
android:name=".touchsampling.TouchSamplingTileService"
android:icon="@drawable/ic_htsr"
android:label="@string/htsr_enable_title"
android:exported="true"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE" />
</intent-filter>
</service>
<activity
android:name=".speaker.ClearSpeakerActivity"
@@ -138,5 +187,63 @@
android:name="android.service.quicksettings.action.QS_TILE"/>
</intent-filter>
</service>
<service
android:name=".display.DcDimmingTileService"
android:exported="true"
android:icon="@drawable/ic_dc_tile"
android:label="@string/dc_dimming_enable_title"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter>
<action
android:name="android.service.quicksettings.action.QS_TILE"/>
</intent-filter>
</service>
<activity
android:name=".display.DcDimmingSettingsActivity"
android:label="@string/dc_dimming_enable_title"
android:exported="true"
android:theme="@style/Theme.SubSettingsBase">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
</intent-filter>
<meta-data
android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.display" />
<meta-data
android:name="com.android.settings.summary"
android:resource="@string/dc_dimming_enable_summary" />
</activity>
<activity
android:name=".hbm.HBMActivity"
android:label="@string/hbm_fragment_title"
android:exported="false"
android:theme="@style/Theme.SubSettingsBase">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
</intent-filter>
<meta-data
android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.display" />
<meta-data
android:name="com.android.settings.summary"
android:resource="@string/hbm_fragment_summary" />
</activity>
<activity
android:name=".hbm.HBMFragment" />
<service
android:name=".hbm.AutoHBMService"
android:exported="false" />
<service
android:name=".hbm.HBMModeTileService"
android:icon="@drawable/ic_hbm_tile"
android:label="@string/hbm_mode_title"
android:exported="true"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE" />
</intent-filter>
</service>
</application>
</manifest>

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#000"
android:pathData="M8,8h8c0.55,0 1,0.45 1,1v6c0,0.55 -0.45,1 -1,1H8c-0.55,0 -1,-0.45 -1,-1V9c0,-0.55 0.45,-1 1,-1z" />
<path android:fillColor="#000" android:pathData="M9,6h1v2H9z" />
<path android:fillColor="#000" android:pathData="M11,6h1v2h-1z" />
<path android:fillColor="#000" android:pathData="M13,6h1v2h-1z" />
<path android:fillColor="#000" android:pathData="M15,6h1v2h-1z" />
<path android:fillColor="#000" android:pathData="M9,16h1v2H9z" />
<path android:fillColor="#000" android:pathData="M11,16h1v2h-1z" />
<path android:fillColor="#000" android:pathData="M13,16h1v2h-1z" />
<path android:fillColor="#000" android:pathData="M15,16h1v2h-1z" />
<path android:fillColor="#000" android:pathData="M6,9h2v1H6z" />
<path android:fillColor="#000" android:pathData="M6,11h2v1H6z" />
<path android:fillColor="#000" android:pathData="M6,13h2v1H6z" />
<path android:fillColor="#000" android:pathData="M6,15h2v1H6z" />
<path android:fillColor="#000" android:pathData="M16,9h2v1h-2z" />
<path android:fillColor="#000" android:pathData="M16,11h2v1h-2z" />
<path android:fillColor="#000" android:pathData="M16,13h2v1h-2z" />
<path android:fillColor="#000" android:pathData="M16,15h2v1h-2z" />
<path android:fillColor="#FFF" android:pathData="M9.5,9.5h2v2h-2z" />
<path android:fillColor="#FFF" android:pathData="M12.5,9.5h2v2h-2z" />
<path android:fillColor="#FFF" android:pathData="M9.5,12.5h2v2h-2z" />
<path android:fillColor="#FFF" android:pathData="M12.5,12.5h2v2h-2z" />
</vector>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#000"
android:pathData="M15.67,4H14V2h-4v2H8.33C7.6,4 7,4.6 7,5.33v15.33C7,21.4 7.6,22 8.33,22h7.33c0.74,0 1.34,-0.6 1.34,-1.33V5.33C17,4.6 16.4,4 15.67,4z" />
<path
android:fillColor="#FFF"
android:pathData="M13,7h-2l-1,5h2l-1,5 3,-5h-2l1,-5z" />
</vector>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#000"
android:pathData="M21,16v-2l-8,-5V3.5c0,-0.83 -0.67,-1.5 -1.5,-1.5S10,2.67 10,3.5V9l-8,5v2l8,-2.5V19l-2,1.5V22l3.5,-1L15,22v-1.5L13,19v-5.5L21,16z" />
<path
android:fillColor="#000"
android:pathData="M3,3h2v2H3z" />
<path
android:fillColor="#000"
android:pathData="M19,3h2v2h-2z" />
<path
android:fillColor="#000"
android:pathData="M3,19h2v2H3z" />
<path
android:fillColor="#000"
android:pathData="M19,19h2v2h-2z" />
</vector>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#000"
android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z" />
</vector>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#000"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2V17zM13,9h-2V7h2V9z" />
<path
android:fillColor="#000"
android:pathData="M4,12h2v2H4z" />
<path
android:fillColor="#000"
android:pathData="M18,12h2v2h-2z" />
<path
android:fillColor="#000"
android:pathData="M12,4h2v2h-2z" />
<path
android:fillColor="#000"
android:pathData="M12,18h2v2h-2z" />
</vector>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<!-- RAM chip body -->
<path
android:fillColor="#000"
android:pathData="M4,7h16c0.55,0 1,0.45 1,1v8c0,0.55 -0.45,1 -1,1H4c-0.55,0 -1,-0.45 -1,-1V8c0,-0.55 0.45,-1 1,-1z" />
<!-- Left pins -->
<path android:fillColor="#000" android:pathData="M2,8h1v1H2z" />
<path android:fillColor="#000" android:pathData="M2,10h1v1H2z" />
<path android:fillColor="#000" android:pathData="M2,12h1v1H2z" />
<path android:fillColor="#000" android:pathData="M2,14h1v1H2z" />
<!-- Right pins -->
<path android:fillColor="#000" android:pathData="M21,8h1v1h-1z" />
<path android:fillColor="#000" android:pathData="M21,10h1v1h-1z" />
<path android:fillColor="#000" android:pathData="M21,12h1v1h-1z" />
<path android:fillColor="#000" android:pathData="M21,14h1v1h-1z" />
<!-- Internal modules -->
<path android:fillColor="#000" android:pathData="M6,9h2v6H6z" />
<path android:fillColor="#000" android:pathData="M10,9h2v6h-2z" />
<path android:fillColor="#000" android:pathData="M14,9h2v6h-2z" />
<path android:fillColor="#000" android:pathData="M18,9h1v6h-1z" />
</vector>

View File

@@ -97,4 +97,74 @@
<string name="charge_bypass_summary">Enable direct charging, bypassing battery</string>
<string name="charge_bypass_warning">Warning: Bypass charging may cause increased device temperature or battery damage. Use with caution.</string>
<string name="charge_bypass_unavailable">Bypass charging is not supported on this device</string>
<!-- Core Control -->
<string name="core_control_title">Core Control</string>
<string name="core_control_summary">Manually enable or disable individual CPU cores</string>
<string name="core_control_description">Advanced CPU control. Turning off cores may save battery or thermal load, but may affect performance and stability.\n\nAt least two little cores must remain online at all times.</string>
<string name="core_0">Core 0 (Little)</string>
<string name="core_1">Core 1 (Little)</string>
<string name="core_2">Core 2 (Little)</string>
<string name="core_3">Core 3 (Little)</string>
<string name="core_4">Core 4 (Big)</string>
<string name="core_5">Core 5 (Big)</string>
<string name="core_6">Core 6 (Big)</string>
<string name="core_7">Core 7 (Prime)</string>
<!-- Kamis Stuff -->
<string name="kamis_stuff_title">Kamis Stuff</string>
<string name="kamis_stuff_summary">Bricking Time!</string>
<!-- Kernel Manager -->
<string name="kernel_manager_title">Kernel Manager</string>
<string name="kernel_manager_summary">Manage CPU frequencies and governor</string>
<string name="cpu_governor_title">CPU Governor</string>
<string name="cpu_governor_summary">Current: %s</string>
<string name="cpu_min_freq_title">Minimum Frequency</string>
<string name="cpu_max_freq_title">Maximum Frequency</string>
<string name="efficiency_cluster_title">Efficiency Cluster</string>
<string name="performance_cluster_title">Performance Cluster</string>
<string name="prime_cluster_title">Prime Cluster</string>
<string name="kernel_info_category">Information</string>
<string name="kernel_info_title">About Kernel Manager</string>
<string name="kernel_info_summary">Manage CPU governor and frequency scaling for all CPU clusters. Changes may affect performance and battery life.</string>
<string name="apply_settings">Apply Settings</string>
<string name="reset_settings">Reset to Default</string>
<string name="settings_applied">Settings applied successfully</string>
<string name="settings_reset">Settings reset to default</string>
<!-- GPU Manager -->
<string name="gpu_manager_title">GPU Manager</string>
<string name="gpu_manager_summary">Manage GPU frequencies and power settings</string>
<string name="gpu_governor_title">GPU Governor</string>
<string name="gpu_governor_summary">Current: %s</string>
<string name="gpu_freq_title">GPU Frequencies</string>
<string name="gpu_min_freq_title">Minimum Frequency</string>
<string name="gpu_max_freq_title">Maximum Frequency</string>
<string name="gpu_current_freq_title">Current Frequency</string>
<string name="gpu_power_title">Power Settings</string>
<string name="gpu_force_clk_on_title">Force Clock On</string>
<string name="gpu_force_clk_on_summary">Keep GPU clock always on</string>
<string name="gpu_force_bus_on_title">Force Bus On</string>
<string name="gpu_force_bus_on_summary">Keep GPU bus always on</string>
<string name="gpu_force_rail_on_title">Force Rail On</string>
<string name="gpu_force_rail_on_summary">Keep GPU power rail always on</string>
<string name="gpu_force_no_nap_title">Force No Nap</string>
<string name="gpu_force_no_nap_summary">Disable GPU napping between frames</string>
<string name="gpu_bus_split_title">Bus Split</string>
<string name="gpu_bus_split_summary">Enable GPU bus splitting</string>
<string name="gpu_thermal_title">Thermal Settings</string>
<string name="gpu_thermal_pwrlevel_title">Thermal Power Level</string>
<string name="gpu_thermal_pwrlevel_summary">Current thermal power level</string>
<string name="gpu_temp_title">GPU Temperature</string>
<string name="gpu_info_title">GPU Information</string>
<string name="gpu_model_title">GPU Model</string>
<string name="gpu_busy_percentage_title">GPU Load</string>
<string name="gpu_reset_count_title">Reset Count</string>
<string name="gpu_preempt_count_title">Preemption Count</string>
<string name="gpu_info_category">GPU Information</string>
<string name="gpu_settings_category">GPU Settings</string>
<string name="gpu_advanced_category">Advanced Settings</string>
<string name="gpu_info_summary">Manage GPU frequency scaling and power settings. Changes may affect performance and battery life.</string>
</resources>

View File

@@ -0,0 +1,41 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/core_control_title">
<SwitchPreference
android:key="core_0"
android:title="@string/core_0" />
<SwitchPreference
android:key="core_1"
android:title="@string/core_1" />
<SwitchPreference
android:key="core_2"
android:title="@string/core_2" />
<SwitchPreference
android:key="core_3"
android:title="@string/core_3" />
<SwitchPreference
android:key="core_4"
android:title="@string/core_4" />
<SwitchPreference
android:key="core_5"
android:title="@string/core_5" />
<SwitchPreference
android:key="core_6"
android:title="@string/core_6" />
<SwitchPreference
android:key="core_7"
android:title="@string/core_7" />
<com.android.settingslib.widget.FooterPreference
android:key="footer"
android:title="@string/core_control_description"
android:selectable="false" />
</PreferenceScreen>

View File

@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/gpu_manager_title">
<!-- GPU Information -->
<PreferenceCategory android:title="@string/gpu_info_category">
<Preference
android:key="gpu_model"
android:title="@string/gpu_model_title"
android:selectable="false" />
<Preference
android:key="gpu_current_freq"
android:title="@string/gpu_current_freq_title"
android:selectable="false" />
<Preference
android:key="gpu_busy_percentage"
android:title="@string/gpu_busy_percentage_title"
android:selectable="false" />
<Preference
android:key="gpu_temperature"
android:title="@string/gpu_temp_title"
android:selectable="false" />
</PreferenceCategory>
<!-- GPU Governor -->
<PreferenceCategory android:title="@string/gpu_governor_title">
<ListPreference
android:key="gpu_governor"
android:title="@string/gpu_governor_title"
android:summary="@string/gpu_governor_summary" />
</PreferenceCategory>
<!-- GPU Frequencies -->
<PreferenceCategory android:title="@string/gpu_freq_title">
<ListPreference
android:key="gpu_min_freq"
android:title="@string/gpu_min_freq_title" />
<ListPreference
android:key="gpu_max_freq"
android:title="@string/gpu_max_freq_title" />
</PreferenceCategory>
<!-- Power Settings -->
<PreferenceCategory android:title="@string/gpu_power_title">
<SwitchPreference
android:key="gpu_force_clk_on"
android:title="@string/gpu_force_clk_on_title"
android:summary="@string/gpu_force_clk_on_summary" />
<SwitchPreference
android:key="gpu_force_bus_on"
android:title="@string/gpu_force_bus_on_title"
android:summary="@string/gpu_force_bus_on_summary" />
<SwitchPreference
android:key="gpu_force_rail_on"
android:title="@string/gpu_force_rail_on_title"
android:summary="@string/gpu_force_rail_on_summary" />
<SwitchPreference
android:key="gpu_force_no_nap"
android:title="@string/gpu_force_no_nap_title"
android:summary="@string/gpu_force_no_nap_summary" />
<SwitchPreference
android:key="gpu_bus_split"
android:title="@string/gpu_bus_split_title"
android:summary="@string/gpu_bus_split_summary" />
</PreferenceCategory>
<!-- Thermal Settings -->
<PreferenceCategory android:title="@string/gpu_thermal_title">
<Preference
android:key="gpu_thermal_pwrlevel"
android:title="@string/gpu_thermal_pwrlevel_title"
android:summary="@string/gpu_thermal_pwrlevel_summary"
android:selectable="false" />
</PreferenceCategory>
<PreferenceCategory>
<Preference
android:key="apply_gpu_settings"
android:title="@string/apply_settings"
android:summary="Apply current GPU settings" />
<Preference
android:key="reset_gpu_settings"
android:title="@string/reset_settings"
android:summary="Reset all GPU settings to default values" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/kernel_info_category">
<Preference
android:title="@string/gpu_info_title"
android:summary="@string/gpu_info_summary"
android:selectable="false" />
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/kamis_stuff_title">
<Preference
android:key="core_control"
android:title="@string/core_control_title"
android:summary="@string/core_control_summary"
android:icon="@drawable/ic_cpu" />
<Preference
android:key="bypass_charge"
android:title="@string/charge_bypass_title"
android:summary="@string/charge_bypass_summary"
android:icon="@drawable/ic_fast_charge" />
<Preference
android:key="zram"
android:title="@string/zram_size_title"
android:summary="@string/zram_summary"
android:icon="@drawable/ic_zram" />
<Preference
android:key="kernel_manager"
android:title="@string/kernel_manager_title"
android:summary="@string/kernel_manager_summary"
android:icon="@drawable/ic_kernel_manager" />
<Preference
android:key="gpu_manager"
android:title="@string/gpu_manager_title"
android:summary="@string/gpu_manager_summary"
android:icon="@drawable/ic_gpu_manager" />
</PreferenceScreen>

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/kernel_manager_title">
<PreferenceCategory android:title="@string/cpu_governor_title">
<ListPreference
android:key="cpu_governor"
android:title="@string/cpu_governor_title"
android:summary="@string/cpu_governor_summary" />
</PreferenceCategory>
<!-- Efficiency Cluster -->
<PreferenceCategory android:title="@string/efficiency_cluster_title">
<ListPreference
android:key="efficiency_min_freq"
android:title="@string/cpu_min_freq_title" />
<ListPreference
android:key="efficiency_max_freq"
android:title="@string/cpu_max_freq_title" />
</PreferenceCategory>
<!-- Performance Cluster -->
<PreferenceCategory android:title="@string/performance_cluster_title">
<ListPreference
android:key="performance_min_freq"
android:title="@string/cpu_min_freq_title" />
<ListPreference
android:key="performance_max_freq"
android:title="@string/cpu_max_freq_title" />
</PreferenceCategory>
<!-- Prime Cluster -->
<PreferenceCategory android:title="@string/prime_cluster_title">
<ListPreference
android:key="prime_min_freq"
android:title="@string/cpu_min_freq_title" />
<ListPreference
android:key="prime_max_freq"
android:title="@string/cpu_max_freq_title" />
</PreferenceCategory>
<PreferenceCategory>
<Preference
android:key="apply_settings"
android:title="@string/apply_settings"
android:summary="Apply current frequency and governor settings" />
<Preference
android:key="reset_settings"
android:title="@string/reset_settings"
android:summary="Reset all settings to default values" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/kernel_info_category">
<Preference
android:title="@string/kernel_info_title"
android:summary="@string/kernel_info_summary"
android:selectable="false" />
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -0,0 +1,32 @@
/*
* Copyright (C) 2025 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.
*/
package org.lineageos.settings.corecontrol;
import android.os.Bundle;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
public class CoreControlActivity extends CollapsingToolbarBaseActivity {
private static final String TAG_CORECONTROL = "corecontrol";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(
com.android.settingslib.collapsingtoolbar.R.id.content_frame,
new CoreControlFragment(), TAG_CORECONTROL).commit();
}
}

View File

@@ -0,0 +1,103 @@
/*
* Copyright (C) 2025 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.
*/
package org.lineageos.settings.corecontrol;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragment;
import androidx.preference.SwitchPreference;
import org.lineageos.settings.R;
import java.io.File;
public class CoreControlFragment extends PreferenceFragment implements Preference.OnPreferenceChangeListener {
private static final String TAG = "CoreControlFragment";
private static final int NUM_CORES = 8;
private SwitchPreference[] mCorePrefs = new SwitchPreference[NUM_CORES];
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.core_control_settings);
for (int i = 0; i < NUM_CORES; i++) {
String key = "core_" + i;
mCorePrefs[i] = (SwitchPreference) findPreference(key);
if (mCorePrefs[i] != null) {
mCorePrefs[i].setOnPreferenceChangeListener(this);
mCorePrefs[i].setChecked(isCoreOnline(i));
}
}
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean requestedState = (Boolean) newValue;
for (int i = 0; i < NUM_CORES; i++) {
if (preference == mCorePrefs[i]) {
if (!requestedState && !canOffline(i)) {
Toast.makeText(getContext(), "At least 2 little cores must remain online", Toast.LENGTH_SHORT).show();
return false;
}
setCoreState(i, requestedState);
return true;
}
}
return false;
}
private boolean isCoreOnline(int core) {
return new File("/sys/devices/system/cpu/cpu" + core + "/online").exists() &&
readFile("/sys/devices/system/cpu/cpu" + core + "/online").equals("1");
}
private void setCoreState(int core, boolean online) {
writeFile("/sys/devices/system/cpu/cpu" + core + "/online", online ? "1" : "0");
}
private boolean canOffline(int core) {
if (core >= 0 && core <= 3) {
int onlineCount = 0;
for (int i = 0; i <= 3; i++) {
if (i != core && isCoreOnline(i)) onlineCount++;
}
return onlineCount >= 2;
}
return true;
}
private String readFile(String path) {
try {
return new String(java.nio.file.Files.readAllBytes(new File(path).toPath())).trim();
} catch (Exception e) {
Log.e(TAG, "Failed to read " + path, e);
return "";
}
}
private void writeFile(String path, String value) {
try {
java.nio.file.Files.write(new File(path).toPath(), value.getBytes());
} catch (Exception e) {
Log.e(TAG, "Failed to write " + path, e);
}
}
}

View File

@@ -0,0 +1,36 @@
/*
* Copyright (C) 2025 KamiKaonashi
*
* 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
*/
package org.lineageos.settings.gpumanager;
import android.os.Bundle;
import android.view.MenuItem;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
public class GpuManagerActivity extends CollapsingToolbarBaseActivity {
private static final String TAG_GPU_MANAGER = "gpu_manager";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(
com.android.settingslib.collapsingtoolbar.R.id.content_frame,
new GpuManagerFragment(), TAG_GPU_MANAGER).commit();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
return true;
}
return false;
}
}

View File

@@ -0,0 +1,301 @@
/*
* Copyright (C) 2025 KamiKaonashi
*
* 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
*/
package org.lineageos.settings.gpumanager;
import android.os.Bundle;
import android.os.Handler;
import android.widget.Toast;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragment;
import androidx.preference.SwitchPreference;
import org.lineageos.settings.R;
public class GpuManagerFragment extends PreferenceFragment
implements Preference.OnPreferenceChangeListener {
private static final String KEY_GPU_GOVERNOR = "gpu_governor";
private static final String KEY_GPU_MIN_FREQ = "gpu_min_freq";
private static final String KEY_GPU_MAX_FREQ = "gpu_max_freq";
private static final String KEY_GPU_CURRENT_FREQ = "gpu_current_freq";
private static final String KEY_GPU_MODEL = "gpu_model";
private static final String KEY_GPU_BUSY_PERCENTAGE = "gpu_busy_percentage";
private static final String KEY_GPU_TEMPERATURE = "gpu_temperature";
private static final String KEY_GPU_THERMAL_PWRLEVEL = "gpu_thermal_pwrlevel";
private static final String KEY_GPU_FORCE_CLK_ON = "gpu_force_clk_on";
private static final String KEY_GPU_FORCE_BUS_ON = "gpu_force_bus_on";
private static final String KEY_GPU_FORCE_RAIL_ON = "gpu_force_rail_on";
private static final String KEY_GPU_FORCE_NO_NAP = "gpu_force_no_nap";
private static final String KEY_GPU_BUS_SPLIT = "gpu_bus_split";
private static final String KEY_APPLY_GPU_SETTINGS = "apply_gpu_settings";
private static final String KEY_RESET_GPU_SETTINGS = "reset_gpu_settings";
private GpuManagerUtils mGpuUtils;
private Handler mHandler;
private Runnable mUpdateRunnable;
// Preferences
private ListPreference mGovernorPreference;
private ListPreference mMinFreqPreference, mMaxFreqPreference;
private Preference mCurrentFreqPreference;
private Preference mGpuModelPreference;
private Preference mGpuBusyPreference;
private Preference mGpuTemperaturePreference;
private Preference mThermalPowerLevelPreference;
private SwitchPreference mForceClkOnPreference;
private SwitchPreference mForceBusOnPreference;
private SwitchPreference mForceRailOnPreference;
private SwitchPreference mForceNoNapPreference;
private SwitchPreference mBusSplitPreference;
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.gpu_manager_settings, rootKey);
mGpuUtils = new GpuManagerUtils();
mHandler = new Handler();
initializePreferences();
loadCurrentSettings();
startPeriodicUpdates();
}
@Override
public void onDestroy() {
super.onDestroy();
stopPeriodicUpdates();
}
private void initializePreferences() {
mGovernorPreference = (ListPreference) findPreference(KEY_GPU_GOVERNOR);
mMinFreqPreference = (ListPreference) findPreference(KEY_GPU_MIN_FREQ);
mMaxFreqPreference = (ListPreference) findPreference(KEY_GPU_MAX_FREQ);
mCurrentFreqPreference = findPreference(KEY_GPU_CURRENT_FREQ);
mGpuModelPreference = findPreference(KEY_GPU_MODEL);
mGpuBusyPreference = findPreference(KEY_GPU_BUSY_PERCENTAGE);
mGpuTemperaturePreference = findPreference(KEY_GPU_TEMPERATURE);
mThermalPowerLevelPreference = findPreference(KEY_GPU_THERMAL_PWRLEVEL);
mForceClkOnPreference = (SwitchPreference) findPreference(KEY_GPU_FORCE_CLK_ON);
mForceBusOnPreference = (SwitchPreference) findPreference(KEY_GPU_FORCE_BUS_ON);
mForceRailOnPreference = (SwitchPreference) findPreference(KEY_GPU_FORCE_RAIL_ON);
mForceNoNapPreference = (SwitchPreference) findPreference(KEY_GPU_FORCE_NO_NAP);
mBusSplitPreference = (SwitchPreference) findPreference(KEY_GPU_BUS_SPLIT);
// Set listeners
if (mGovernorPreference != null) {
mGovernorPreference.setOnPreferenceChangeListener(this);
}
if (mMinFreqPreference != null) {
mMinFreqPreference.setOnPreferenceChangeListener(this);
}
if (mMaxFreqPreference != null) {
mMaxFreqPreference.setOnPreferenceChangeListener(this);
}
// Switch preferences
if (mForceClkOnPreference != null) {
mForceClkOnPreference.setOnPreferenceChangeListener(this);
}
if (mForceBusOnPreference != null) {
mForceBusOnPreference.setOnPreferenceChangeListener(this);
}
if (mForceRailOnPreference != null) {
mForceRailOnPreference.setOnPreferenceChangeListener(this);
}
if (mForceNoNapPreference != null) {
mForceNoNapPreference.setOnPreferenceChangeListener(this);
}
if (mBusSplitPreference != null) {
mBusSplitPreference.setOnPreferenceChangeListener(this);
}
// Apply and Reset buttons
Preference applyPref = findPreference(KEY_APPLY_GPU_SETTINGS);
if (applyPref != null) {
applyPref.setOnPreferenceClickListener(preference -> {
applySettings();
return true;
});
}
Preference resetPref = findPreference(KEY_RESET_GPU_SETTINGS);
if (resetPref != null) {
resetPref.setOnPreferenceClickListener(preference -> {
resetSettings();
return true;
});
}
}
private void loadCurrentSettings() {
// Load GPU model
if (mGpuModelPreference != null) {
String gpuModel = mGpuUtils.getGpuModel();
mGpuModelPreference.setSummary(gpuModel);
}
// Load available governors
String[] governors = mGpuUtils.getAvailableGovernors();
if (governors != null && mGovernorPreference != null) {
mGovernorPreference.setEntries(governors);
mGovernorPreference.setEntryValues(governors);
String currentGovernor = mGpuUtils.getCurrentGovernor();
mGovernorPreference.setValue(currentGovernor);
mGovernorPreference.setSummary(getString(R.string.gpu_governor_summary, currentGovernor));
}
// Load available frequencies
loadFrequencies();
// Load switch states
loadSwitchStates();
// Update dynamic info
updateDynamicInfo();
}
private void loadFrequencies() {
String[] frequencies = mGpuUtils.getAvailableFrequencies();
if (frequencies != null) {
String[] frequencyLabels = new String[frequencies.length];
for (int i = 0; i < frequencies.length; i++) {
int freqMhz = Integer.parseInt(frequencies[i]) / 1000000;
frequencyLabels[i] = freqMhz + " MHz";
}
if (mMinFreqPreference != null) {
mMinFreqPreference.setEntries(frequencyLabels);
mMinFreqPreference.setEntryValues(frequencies);
String currentMinFreq = mGpuUtils.getCurrentMinFrequency();
mMinFreqPreference.setValue(currentMinFreq);
int minFreqMhz = Integer.parseInt(currentMinFreq) / 1000000;
mMinFreqPreference.setSummary(minFreqMhz + " MHz");
}
if (mMaxFreqPreference != null) {
mMaxFreqPreference.setEntries(frequencyLabels);
mMaxFreqPreference.setEntryValues(frequencies);
String currentMaxFreq = mGpuUtils.getCurrentMaxFrequency();
mMaxFreqPreference.setValue(currentMaxFreq);
int maxFreqMhz = Integer.parseInt(currentMaxFreq) / 1000000;
mMaxFreqPreference.setSummary(maxFreqMhz + " MHz");
}
}
}
private void loadSwitchStates() {
if (mForceClkOnPreference != null) {
mForceClkOnPreference.setChecked(mGpuUtils.getForceClkOn());
}
if (mForceBusOnPreference != null) {
mForceBusOnPreference.setChecked(mGpuUtils.getForceBusOn());
}
if (mForceRailOnPreference != null) {
mForceRailOnPreference.setChecked(mGpuUtils.getForceRailOn());
}
if (mForceNoNapPreference != null) {
mForceNoNapPreference.setChecked(mGpuUtils.getForceNoNap());
}
if (mBusSplitPreference != null) {
mBusSplitPreference.setChecked(mGpuUtils.getBusSplit());
}
}
private void updateDynamicInfo() {
// Update current frequency
if (mCurrentFreqPreference != null) {
String currentFreq = mGpuUtils.getCurrentFrequency();
if (!currentFreq.equals("0")) {
int freqMhz = Integer.parseInt(currentFreq) / 1000000;
mCurrentFreqPreference.setSummary(freqMhz + " MHz");
} else {
mCurrentFreqPreference.setSummary("Unknown");
}
}
// Update GPU busy percentage
if (mGpuBusyPreference != null) {
String busyPercentage = mGpuUtils.getGpuBusyPercentage();
mGpuBusyPreference.setSummary(busyPercentage);
}
// Update GPU temperature
if (mGpuTemperaturePreference != null) {
String temperature = mGpuUtils.getGpuTemperature();
if (!temperature.equals("0")) {
mGpuTemperaturePreference.setSummary(temperature + "°C");
} else {
mGpuTemperaturePreference.setSummary("Unknown");
}
}
// Update thermal power level
if (mThermalPowerLevelPreference != null) {
String thermalLevel = mGpuUtils.getThermalPowerLevel();
mThermalPowerLevelPreference.setSummary("Level " + thermalLevel);
}
}
private void startPeriodicUpdates() {
mUpdateRunnable = new Runnable() {
@Override
public void run() {
updateDynamicInfo();
mHandler.postDelayed(this, 2000); // Update every 2 seconds
}
};
mHandler.post(mUpdateRunnable);
}
private void stopPeriodicUpdates() {
if (mHandler != null && mUpdateRunnable != null) {
mHandler.removeCallbacks(mUpdateRunnable);
}
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
if (KEY_GPU_GOVERNOR.equals(key)) {
String value = (String) newValue;
mGovernorPreference.setSummary(getString(R.string.gpu_governor_summary, value));
return true;
} else if (KEY_GPU_MIN_FREQ.equals(key) || KEY_GPU_MAX_FREQ.equals(key)) {
String value = (String) newValue;
int freqMhz = Integer.parseInt(value) / 1000000;
preference.setSummary(freqMhz + " MHz");
return true;
}
return true;
}
private void applySettings() {
// Apply governor
if (mGovernorPreference != null) {
String governor = mGovernorPreference.getValue();
mGpuUtils.setGovernor(governor);
}
// Apply frequencies
if (mMinFreqPreference != null && mMaxFreqPreference != null) {
mGpuUtils.setFrequencyRange(mMinFreqPreference.getValue(), mMaxFreqPreference.getValue());
}
Toast.makeText(getContext(), R.string.settings_applied, Toast.LENGTH_SHORT).show();
}
private void resetSettings() {
mGpuUtils.resetToDefaults();
loadCurrentSettings();
Toast.makeText(getContext(), R.string.settings_reset, Toast.LENGTH_SHORT).show();
}
}

View File

@@ -0,0 +1,273 @@
/*
* Copyright (C) 2025 KamiKaonashi
*
* 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
*/
package org.lineageos.settings.gpumanager;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class GpuManagerUtils {
private static final String GPU_BASE_PATH = "/sys/class/kgsl/kgsl-3d0";
private static final String DEVFREQ_PATH = GPU_BASE_PATH + "/devfreq";
private static final String DEFAULT_GOVERNOR = "msm-adreno-tz";
// GPU paths
private static final String GPU_MODEL = "/gpu_model";
private static final String GPU_AVAILABLE_FREQUENCIES = "/gpu_available_frequencies";
private static final String GPU_CURRENT_FREQ = "/gpuclk";
private static final String GPU_MIN_FREQ = "/devfreq/min_freq";
private static final String GPU_MAX_FREQ = "/devfreq/max_freq";
private static final String GPU_GOVERNOR = "/devfreq/governor";
private static final String GPU_AVAILABLE_GOVERNORS = "/devfreq/available_governors";
private static final String GPU_BUSY_PERCENTAGE = "/gpu_busy_percentage";
private static final String GPU_TEMPERATURE = "/temp";
private static final String GPU_THERMAL_PWRLEVEL = "/thermal_pwrlevel";
private static final String GPU_FORCE_CLK_ON = "/force_clk_on";
private static final String GPU_FORCE_BUS_ON = "/force_bus_on";
private static final String GPU_FORCE_RAIL_ON = "/force_rail_on";
private static final String GPU_FORCE_NO_NAP = "/force_no_nap";
private static final String GPU_BUS_SPLIT = "/bus_split";
private static final String GPU_MAX_GPUCLK = "/max_gpuclk";
private static final String GPU_MIN_CLOCK_MHZ = "/min_clock_mhz";
private static final String GPU_MAX_CLOCK_MHZ = "/max_clock_mhz";
public String getGpuModel() {
try {
return readFile(GPU_BASE_PATH + GPU_MODEL).trim();
} catch (Exception e) {
return "Unknown GPU";
}
}
public String[] getAvailableGovernors() {
try {
String governors = readFile(GPU_BASE_PATH + GPU_AVAILABLE_GOVERNORS);
return governors.trim().split("\\s+");
} catch (Exception e) {
return new String[]{"msm-adreno-tz", "performance", "powersave", "simple_ondemand"};
}
}
public String[] getAvailableFrequencies() {
try {
String frequencies = readFile(GPU_BASE_PATH + GPU_AVAILABLE_FREQUENCIES);
return frequencies.trim().split("\\s+");
} catch (Exception e) {
return null;
}
}
public String getCurrentGovernor() {
try {
return readFile(GPU_BASE_PATH + GPU_GOVERNOR).trim();
} catch (Exception e) {
return DEFAULT_GOVERNOR;
}
}
public String getCurrentFrequency() {
try {
return readFile(GPU_BASE_PATH + GPU_CURRENT_FREQ).trim();
} catch (Exception e) {
return "0";
}
}
public String getCurrentMinFrequency() {
try {
return readFile(GPU_BASE_PATH + GPU_MIN_FREQ).trim();
} catch (Exception e) {
return "0";
}
}
public String getCurrentMaxFrequency() {
try {
return readFile(GPU_BASE_PATH + GPU_MAX_FREQ).trim();
} catch (Exception e) {
return "0";
}
}
public String getGpuBusyPercentage() {
try {
return readFile(GPU_BASE_PATH + GPU_BUSY_PERCENTAGE).trim();
} catch (Exception e) {
return "0";
}
}
public String getGpuTemperature() {
try {
String rawTemp = readFile(GPU_BASE_PATH + GPU_TEMPERATURE).trim();
int tempMilliCelsius = Integer.parseInt(rawTemp);
// Convert millidegrees Celsius to degrees Celsius
double tempCelsius = tempMilliCelsius / 1000.0;
return String.format("%.1f", tempCelsius);
} catch (Exception e) {
return "0";
}
}
public String getThermalPowerLevel() {
try {
return readFile(GPU_BASE_PATH + GPU_THERMAL_PWRLEVEL).trim();
} catch (Exception e) {
return "0";
}
}
public boolean getForceClkOn() {
try {
String value = readFile(GPU_BASE_PATH + GPU_FORCE_CLK_ON).trim();
return "1".equals(value);
} catch (Exception e) {
return false;
}
}
public boolean getForceBusOn() {
try {
String value = readFile(GPU_BASE_PATH + GPU_FORCE_BUS_ON).trim();
return "1".equals(value);
} catch (Exception e) {
return false;
}
}
public boolean getForceRailOn() {
try {
String value = readFile(GPU_BASE_PATH + GPU_FORCE_RAIL_ON).trim();
return "1".equals(value);
} catch (Exception e) {
return false;
}
}
public boolean getForceNoNap() {
try {
String value = readFile(GPU_BASE_PATH + GPU_FORCE_NO_NAP).trim();
return "1".equals(value);
} catch (Exception e) {
return false;
}
}
public boolean getBusSplit() {
try {
String value = readFile(GPU_BASE_PATH + GPU_BUS_SPLIT).trim();
return "1".equals(value);
} catch (Exception e) {
return false;
}
}
public void setGovernor(String governor) {
try {
writeFile(GPU_BASE_PATH + GPU_GOVERNOR, governor);
} catch (Exception e) {
// Ignore errors
}
}
public void setFrequencyRange(String minFreq, String maxFreq) {
try {
writeFile(GPU_BASE_PATH + GPU_MIN_FREQ, minFreq);
writeFile(GPU_BASE_PATH + GPU_MAX_FREQ, maxFreq);
} catch (Exception e) {
// Ignore errors
}
}
public void setForceClkOn(boolean enabled) {
try {
writeFile(GPU_BASE_PATH + GPU_FORCE_CLK_ON, enabled ? "1" : "0");
} catch (Exception e) {
// Ignore errors
}
}
public void setForceBusOn(boolean enabled) {
try {
writeFile(GPU_BASE_PATH + GPU_FORCE_BUS_ON, enabled ? "1" : "0");
} catch (Exception e) {
// Ignore errors
}
}
public void setForceRailOn(boolean enabled) {
try {
writeFile(GPU_BASE_PATH + GPU_FORCE_RAIL_ON, enabled ? "1" : "0");
} catch (Exception e) {
// Ignore errors
}
}
public void setForceNoNap(boolean enabled) {
try {
writeFile(GPU_BASE_PATH + GPU_FORCE_NO_NAP, enabled ? "1" : "0");
} catch (Exception e) {
// Ignore errors
}
}
public void setBusSplit(boolean enabled) {
try {
writeFile(GPU_BASE_PATH + GPU_BUS_SPLIT, enabled ? "1" : "0");
} catch (Exception e) {
// Ignore errors
}
}
public void resetToDefaults() {
setGovernor(DEFAULT_GOVERNOR);
String[] frequencies = getAvailableFrequencies();
if (frequencies != null && frequencies.length > 0) {
String minFreq = frequencies[0];
String maxFreq = frequencies[frequencies.length - 1];
setFrequencyRange(minFreq, maxFreq);
}
// Reset power settings
setForceClkOn(false);
setForceBusOn(false);
setForceRailOn(false);
setForceNoNap(false);
setBusSplit(false);
}
private String readFile(String path) throws IOException {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(path));
return reader.readLine();
} finally {
if (reader != null) {
reader.close();
}
}
}
private void writeFile(String path, String value) throws IOException {
FileWriter writer = null;
try {
writer = new FileWriter(path);
writer.write(value);
writer.flush();
} finally {
if (writer != null) {
writer.close();
}
}
}
}

View File

@@ -0,0 +1,42 @@
/*
* Copyright (C) 2025 KamiKaonashi
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.kamisstuff;
import android.os.Bundle;
import android.view.MenuItem;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
public class KamisStuffActivity extends CollapsingToolbarBaseActivity {
private static final String TAG_KAMIS_STUFF = "kamis_stuff";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(
com.android.settingslib.collapsingtoolbar.R.id.content_frame,
new KamisStuffFragment(), TAG_KAMIS_STUFF).commit();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
return true;
}
return false;
}
}

View File

@@ -0,0 +1,92 @@
/*
* Copyright (C) 2025 KamiKaonashi
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.kamisstuff;
import android.content.Intent;
import android.os.Bundle;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragment;
import org.lineageos.settings.R;
import org.lineageos.settings.corecontrol.CoreControlActivity;
import org.lineageos.settings.charge.ChargeActivity;
import org.lineageos.settings.zram.ZramActivity;
import org.lineageos.settings.kernelmanager.KernelManagerActivity;
import org.lineageos.settings.gpumanager.GpuManagerActivity;
public class KamisStuffFragment extends PreferenceFragment {
private static final String KEY_CORE_CONTROL = "core_control";
private static final String KEY_BYPASS_CHARGE = "bypass_charge";
private static final String KEY_ZRAM = "zram";
private static final String KEY_KERNEL_MANAGER = "kernel_manager";
private static final String KEY_GPU_MANAGER = "gpu_manager";
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.kamis_stuff_settings, rootKey);
// Core Control preference
Preference coreControlPref = findPreference(KEY_CORE_CONTROL);
if (coreControlPref != null) {
coreControlPref.setOnPreferenceClickListener(preference -> {
Intent intent = new Intent(getActivity(), CoreControlActivity.class);
startActivity(intent);
return true;
});
}
// Charge preference
Preference bypassChargePref = findPreference(KEY_BYPASS_CHARGE);
if (bypassChargePref != null) {
bypassChargePref.setOnPreferenceClickListener(preference -> {
Intent intent = new Intent(getActivity(), ChargeActivity.class);
startActivity(intent);
return true;
});
}
// ZRAM preference
Preference zramPref = findPreference(KEY_ZRAM);
if (zramPref != null) {
zramPref.setOnPreferenceClickListener(preference -> {
Intent intent = new Intent(getActivity(), ZramActivity.class);
startActivity(intent);
return true;
});
}
// Kernel Manager preference
Preference kernelManagerPref = findPreference(KEY_KERNEL_MANAGER);
if (kernelManagerPref != null) {
kernelManagerPref.setOnPreferenceClickListener(preference -> {
Intent intent = new Intent(getActivity(), KernelManagerActivity.class);
startActivity(intent);
return true;
});
}
// GPU Manager preference
Preference gpuManagerPref = findPreference(KEY_GPU_MANAGER);
if (gpuManagerPref != null) {
gpuManagerPref.setOnPreferenceClickListener(preference -> {
Intent intent = new Intent(getActivity(), GpuManagerActivity.class);
startActivity(intent);
return true;
});
}
}
}

View File

@@ -0,0 +1,36 @@
/*
* Copyright (C) 2025 KamiKaonashi
*
* 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
*/
package org.lineageos.settings.kernelmanager;
import android.os.Bundle;
import android.view.MenuItem;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
public class KernelManagerActivity extends CollapsingToolbarBaseActivity {
private static final String TAG_KERNEL_MANAGER = "kernel_manager";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(
com.android.settingslib.collapsingtoolbar.R.id.content_frame,
new KernelManagerFragment(), TAG_KERNEL_MANAGER).commit();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
return true;
}
return false;
}
}

View File

@@ -0,0 +1,187 @@
/*
* Copyright (C) 2025 KamiKaonashi
*
* 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
*/
package org.lineageos.settings.kernelmanager;
import android.os.Bundle;
import android.widget.Toast;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragment;
import org.lineageos.settings.R;
public class KernelManagerFragment extends PreferenceFragment
implements Preference.OnPreferenceChangeListener {
private static final String KEY_CPU_GOVERNOR = "cpu_governor";
private static final String KEY_EFFICIENCY_MIN_FREQ = "efficiency_min_freq";
private static final String KEY_EFFICIENCY_MAX_FREQ = "efficiency_max_freq";
private static final String KEY_PERFORMANCE_MIN_FREQ = "performance_min_freq";
private static final String KEY_PERFORMANCE_MAX_FREQ = "performance_max_freq";
private static final String KEY_PRIME_MIN_FREQ = "prime_min_freq";
private static final String KEY_PRIME_MAX_FREQ = "prime_max_freq";
private static final String KEY_APPLY_SETTINGS = "apply_settings";
private static final String KEY_RESET_SETTINGS = "reset_settings";
private KernelManagerUtils mKernelUtils;
private ListPreference mGovernorPreference;
private ListPreference mEfficiencyMinFreq, mEfficiencyMaxFreq;
private ListPreference mPerformanceMinFreq, mPerformanceMaxFreq;
private ListPreference mPrimeMinFreq, mPrimeMaxFreq;
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.kernel_manager_settings, rootKey);
mKernelUtils = new KernelManagerUtils();
initializePreferences();
loadCurrentSettings();
}
private void initializePreferences() {
mGovernorPreference = (ListPreference) findPreference(KEY_CPU_GOVERNOR);
mEfficiencyMinFreq = (ListPreference) findPreference(KEY_EFFICIENCY_MIN_FREQ);
mEfficiencyMaxFreq = (ListPreference) findPreference(KEY_EFFICIENCY_MAX_FREQ);
mPerformanceMinFreq = (ListPreference) findPreference(KEY_PERFORMANCE_MIN_FREQ);
mPerformanceMaxFreq = (ListPreference) findPreference(KEY_PERFORMANCE_MAX_FREQ);
mPrimeMinFreq = (ListPreference) findPreference(KEY_PRIME_MIN_FREQ);
mPrimeMaxFreq = (ListPreference) findPreference(KEY_PRIME_MAX_FREQ);
// Set listeners
if (mGovernorPreference != null) {
mGovernorPreference.setOnPreferenceChangeListener(this);
}
setFrequencyPreferenceListeners();
// Apply and Reset buttons
Preference applyPref = findPreference(KEY_APPLY_SETTINGS);
if (applyPref != null) {
applyPref.setOnPreferenceClickListener(preference -> {
applySettings();
return true;
});
}
Preference resetPref = findPreference(KEY_RESET_SETTINGS);
if (resetPref != null) {
resetPref.setOnPreferenceClickListener(preference -> {
resetSettings();
return true;
});
}
}
private void setFrequencyPreferenceListeners() {
if (mEfficiencyMinFreq != null) mEfficiencyMinFreq.setOnPreferenceChangeListener(this);
if (mEfficiencyMaxFreq != null) mEfficiencyMaxFreq.setOnPreferenceChangeListener(this);
if (mPerformanceMinFreq != null) mPerformanceMinFreq.setOnPreferenceChangeListener(this);
if (mPerformanceMaxFreq != null) mPerformanceMaxFreq.setOnPreferenceChangeListener(this);
if (mPrimeMinFreq != null) mPrimeMinFreq.setOnPreferenceChangeListener(this);
if (mPrimeMaxFreq != null) mPrimeMaxFreq.setOnPreferenceChangeListener(this);
}
private void loadCurrentSettings() {
// Load available governors
String[] governors = mKernelUtils.getAvailableGovernors();
if (governors != null && mGovernorPreference != null) {
mGovernorPreference.setEntries(governors);
mGovernorPreference.setEntryValues(governors);
String currentGovernor = mKernelUtils.getCurrentGovernor(KernelManagerUtils.EFFICIENCY_CLUSTER);
mGovernorPreference.setValue(currentGovernor);
mGovernorPreference.setSummary(getString(R.string.cpu_governor_summary, currentGovernor));
}
// Load available frequencies for each cluster
loadFrequenciesForCluster(KernelManagerUtils.EFFICIENCY_CLUSTER, mEfficiencyMinFreq, mEfficiencyMaxFreq);
loadFrequenciesForCluster(KernelManagerUtils.PERFORMANCE_CLUSTER, mPerformanceMinFreq, mPerformanceMaxFreq);
loadFrequenciesForCluster(KernelManagerUtils.PRIME_CLUSTER, mPrimeMinFreq, mPrimeMaxFreq);
}
private void loadFrequenciesForCluster(int cluster, ListPreference minPref, ListPreference maxPref) {
String[] frequencies = mKernelUtils.getAvailableFrequencies(cluster);
if (frequencies != null) {
String[] frequencyLabels = new String[frequencies.length];
for (int i = 0; i < frequencies.length; i++) {
int freqMhz = Integer.parseInt(frequencies[i]) / 1000;
frequencyLabels[i] = freqMhz + " MHz";
}
if (minPref != null) {
minPref.setEntries(frequencyLabels);
minPref.setEntryValues(frequencies);
String currentMinFreq = mKernelUtils.getCurrentMinFrequency(cluster);
minPref.setValue(currentMinFreq);
int minFreqMhz = Integer.parseInt(currentMinFreq) / 1000;
minPref.setSummary(minFreqMhz + " MHz");
}
if (maxPref != null) {
maxPref.setEntries(frequencyLabels);
maxPref.setEntryValues(frequencies);
String currentMaxFreq = mKernelUtils.getCurrentMaxFrequency(cluster);
maxPref.setValue(currentMaxFreq);
int maxFreqMhz = Integer.parseInt(currentMaxFreq) / 1000;
maxPref.setSummary(maxFreqMhz + " MHz");
}
}
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
String value = (String) newValue;
if (KEY_CPU_GOVERNOR.equals(key)) {
mGovernorPreference.setSummary(getString(R.string.cpu_governor_summary, value));
return true;
} else if (key.contains("freq")) {
int freqMhz = Integer.parseInt(value) / 1000;
preference.setSummary(freqMhz + " MHz");
return true;
}
return false;
}
private void applySettings() {
// Apply governor
if (mGovernorPreference != null) {
String governor = mGovernorPreference.getValue();
mKernelUtils.setGovernor(governor);
}
// Apply frequencies
applyFrequencySettings();
Toast.makeText(getContext(), R.string.settings_applied, Toast.LENGTH_SHORT).show();
}
private void applyFrequencySettings() {
if (mEfficiencyMinFreq != null && mEfficiencyMaxFreq != null) {
mKernelUtils.setEfficiencyClusterFrequency(
mEfficiencyMinFreq.getValue(), mEfficiencyMaxFreq.getValue());
}
if (mPerformanceMinFreq != null && mPerformanceMaxFreq != null) {
mKernelUtils.setPerformanceClusterFrequency(
mPerformanceMinFreq.getValue(), mPerformanceMaxFreq.getValue());
}
if (mPrimeMinFreq != null && mPrimeMaxFreq != null) {
mKernelUtils.setPrimeClusterFrequency(
mPrimeMinFreq.getValue(), mPrimeMaxFreq.getValue());
}
}
private void resetSettings() {
mKernelUtils.resetToDefaults();
loadCurrentSettings();
Toast.makeText(getContext(), R.string.settings_reset, Toast.LENGTH_SHORT).show();
}
}

View File

@@ -0,0 +1,158 @@
/*
* Copyright (C) 2025 KamiKaonashi
*
* 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
*/
package org.lineageos.settings.kernelmanager;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class KernelManagerUtils {
public static final int EFFICIENCY_CLUSTER = 0; // Policy 0 - Little cores (A55)
public static final int PERFORMANCE_CLUSTER = 4; // Policy 4 - Big cores (A78)
public static final int PRIME_CLUSTER = 7; // Policy 7 - Prime core (X1)
private static final int[] POLICIES = {EFFICIENCY_CLUSTER, PERFORMANCE_CLUSTER, PRIME_CLUSTER};
private static final String DEFAULT_GOVERNOR = "schedutil";
// CPU frequency and governor paths
private static final String CPU_BASE_PATH = "/sys/devices/system/cpu/cpufreq/policy";
private static final String SCALING_GOVERNOR = "/scaling_governor";
private static final String SCALING_MIN_FREQ = "/scaling_min_freq";
private static final String SCALING_MAX_FREQ = "/scaling_max_freq";
private static final String SCALING_AVAILABLE_GOVERNORS = "/scaling_available_governors";
private static final String SCALING_AVAILABLE_FREQUENCIES = "/scaling_available_frequencies";
public String[] getAvailableGovernors() {
try {
String governors = readFile(CPU_BASE_PATH + EFFICIENCY_CLUSTER + SCALING_AVAILABLE_GOVERNORS);
return governors.trim().split("\\s+");
} catch (Exception e) {
return new String[]{"schedutil", "performance", "powersave", "ondemand", "conservative"};
}
}
public String[] getAvailableFrequencies(int cluster) {
try {
String frequencies = readFile(CPU_BASE_PATH + cluster + SCALING_AVAILABLE_FREQUENCIES);
return frequencies.trim().split("\\s+");
} catch (Exception e) {
return null;
}
}
public String getCurrentGovernor(int cluster) {
try {
return readFile(CPU_BASE_PATH + cluster + SCALING_GOVERNOR).trim();
} catch (Exception e) {
return DEFAULT_GOVERNOR;
}
}
public String getCurrentMinFrequency(int cluster) {
try {
return readFile(CPU_BASE_PATH + cluster + SCALING_MIN_FREQ).trim();
} catch (Exception e) {
// If we can't read, try to get the lowest available frequency
String[] frequencies = getAvailableFrequencies(cluster);
if (frequencies != null && frequencies.length > 0) {
return frequencies[0];
}
return "0";
}
}
public String getCurrentMaxFrequency(int cluster) {
try {
return readFile(CPU_BASE_PATH + cluster + SCALING_MAX_FREQ).trim();
} catch (Exception e) {
// If we can't read, try to get the highest available frequency
String[] frequencies = getAvailableFrequencies(cluster);
if (frequencies != null && frequencies.length > 0) {
return frequencies[frequencies.length - 1];
}
return "0";
}
}
public void setGovernor(String governor) {
for (int cluster : POLICIES) {
try {
writeFile(CPU_BASE_PATH + cluster + SCALING_GOVERNOR, governor);
} catch (Exception e) {
// Continue with other clusters
}
}
}
public void setFrequencyRange(int cluster, String minFreq, String maxFreq) {
try {
// Set min frequency first
writeFile(CPU_BASE_PATH + cluster + SCALING_MIN_FREQ, minFreq);
// Then set max frequency
writeFile(CPU_BASE_PATH + cluster + SCALING_MAX_FREQ, maxFreq);
} catch (Exception e) {
// Ignore errors
}
}
// Cluster-specific helper methods
public void setEfficiencyClusterFrequency(String minFreq, String maxFreq) {
setFrequencyRange(EFFICIENCY_CLUSTER, minFreq, maxFreq);
}
public void setPerformanceClusterFrequency(String minFreq, String maxFreq) {
setFrequencyRange(PERFORMANCE_CLUSTER, minFreq, maxFreq);
}
public void setPrimeClusterFrequency(String minFreq, String maxFreq) {
setFrequencyRange(PRIME_CLUSTER, minFreq, maxFreq);
}
public void resetToDefaults() {
setGovernor(DEFAULT_GOVERNOR);
// Reset frequencies to available range
for (int cluster : POLICIES) {
String[] frequencies = getAvailableFrequencies(cluster);
if (frequencies != null && frequencies.length > 0) {
String minFreq = frequencies[0];
String maxFreq = frequencies[frequencies.length - 1];
setFrequencyRange(cluster, minFreq, maxFreq);
}
}
}
private String readFile(String path) throws IOException {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(path));
return reader.readLine();
} finally {
if (reader != null) {
reader.close();
}
}
}
private void writeFile(String path, String value) throws IOException {
FileWriter writer = null;
try {
writer = new FileWriter(path);
writer.write(value);
writer.flush();
} finally {
if (writer != null) {
writer.close();
}
}
}
}

View File

@@ -1,13 +0,0 @@
cc_library_static {
name: "libperfmgr-ext-xiaomi",
defaults: [
"android.hardware.power-ndk_shared",
],
vendor: true,
srcs: [
"power-mode.cpp",
],
shared_libs: [
"libbase",
],
}

View File

@@ -1,59 +0,0 @@
/*
* Copyright (C) 2021 The LineageOS Project
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <aidl/android/hardware/power/BnPower.h>
#include <android-base/file.h>
#include <android-base/logging.h>
#include <sys/ioctl.h>
// defines from drivers/input/touchscreen/xiaomi/xiaomi_touch.h
#define SET_CUR_VALUE 0
#define Touch_Doubletap_Mode 14
#define TOUCH_DEV_PATH "/dev/xiaomi-touch"
#define TOUCH_ID 0
#define TOUCH_MAGIC 0x5400
#define TOUCH_IOC_SETMODE TOUCH_MAGIC + SET_CUR_VALUE
namespace aidl {
namespace google {
namespace hardware {
namespace power {
namespace impl {
namespace pixel {
using ::aidl::android::hardware::power::Mode;
bool isDeviceSpecificModeSupported(Mode type, bool* _aidl_return) {
switch (type) {
case Mode::DOUBLE_TAP_TO_WAKE:
*_aidl_return = true;
return true;
default:
return false;
}
}
bool setDeviceSpecificMode(Mode type, bool enabled) {
switch (type) {
case Mode::DOUBLE_TAP_TO_WAKE: {
int fd = open(TOUCH_DEV_PATH, O_RDWR);
int arg[3] = {TOUCH_ID, Touch_Doubletap_Mode, enabled ? 1 : 0};
ioctl(fd, TOUCH_IOC_SETMODE, &arg);
close(fd);
return true;
}
default:
return false;
}
}
} // namespace impl
} // namespace power
} // namespace hardware
} // namespace google
} // namespace aidl
} // namespace pixel

View File

@@ -98,10 +98,6 @@ vendor/lib/rfsa/adsp/misound_res_headphone.bin
vendor/lib/rfsa/adsp/misound_res_spk.bin
# Audio configs
vendor/etc/audio_policy_engine_configuration.xml
vendor/etc/audio_policy_engine_stream_volumes.xml
vendor/etc/audio_policy_engine_default_stream_volumes.xml
vendor/etc/audio_policy_engine_product_strategies.xml
vendor/etc/audio/sku_yupik/audio_platform_info_yupikidp.xml
vendor/etc/audio/sku_yupik/audio_platform_info_intcodec.xml
vendor/etc/audio/sku_yupik/mixer_paths_yupikidp.xml
@@ -776,8 +772,6 @@ vendor/etc/mdss_dsi_l9_42_02_0a_dsc_cmd_mi.xml
vendor/lib64/hw/memtrack.default.so
# Display - from sunstone V816.0.8.0.UMQMIXM
product/etc/displayconfig/display_id_4630946480857061762.xml:vendor/etc/displayconfig/display_id_4630946480857061762.xml
product/etc/displayconfig/display_id_4630946545580055170.xml:vendor/etc/displayconfig/display_id_4630946545580055170.xml
vendor/etc/display/DPU660.xml
vendor/etc/display/DPU670.xml
vendor/etc/display/DPU720.xml
@@ -836,32 +830,6 @@ vendor/lib64/libtinyxml.so
vendor/lib64/libmi-stc-HW-modulate.so
vendor/lib64/vendor.xiaomi.hardware.displayfeature@1.0.so:system_ext/lib64/vendor.xiaomi.hardware.displayfeature@1.0.so
# Dolby
vendor/bin/hw/vendor.dolby.hardware.dms@2.0-service
vendor/etc/init/vendor.dolby.hardware.dms@2.0-service.rc
vendor/etc/media_codecs_dolby_audio.xml
vendor/etc/vintf/manifest/manifest_vendor.dolby.hardware.dms.xml
vendor/lib/libdapparamstorage.so
vendor/lib/libdeccfg.so
vendor/lib/libstagefright_soft_ac4dec.so
vendor/lib/libstagefright_soft_ddpdec.so
vendor/lib/libstagefrightdolby.so
vendor/lib/soundfx/libhwdap.so
vendor/lib/soundfx/libswgamedap.so
vendor/lib/soundfx/libswvqe.so
vendor/lib/vendor.dolby.hardware.dms@2.0.so
vendor/lib64/libdapparamstorage.so
vendor/lib64/libdeccfg.so
vendor/lib64/libdlbdsservice.so
vendor/lib64/libstagefright_soft_ac4dec.so
vendor/lib64/libstagefright_soft_ddpdec.so
vendor/lib64/libstagefrightdolby.so
vendor/lib64/soundfx/libhwdap.so
vendor/lib64/soundfx/libswgamedap.so
vendor/lib64/soundfx/libswvqe.so
vendor/lib64/vendor.dolby.hardware.dms@2.0-impl.so
vendor/lib64/vendor.dolby.hardware.dms@2.0.so
# DPM
system/framework/tcmclient.jar
system_ext/bin/dpmd
@@ -1355,6 +1323,22 @@ vendor/etc/init/qcrilNrd.rc
vendor/etc/init/ssgtzd.rc
vendor/etc/init/vendor.qti.rmt_storage.rc
vendor/etc/init/vendor.qti.tftp.rc
vendor/etc/qcril_database/upgrade/config/10.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files
vendor/etc/qcril_database/upgrade/config/6.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files
vendor/etc/qcril_database/upgrade/config/7.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files
vendor/etc/qcril_database/upgrade/config/8.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files
vendor/etc/qcril_database/upgrade/config/9.0_config.sql;FILEGROUP=proprietary_rildb_config_sql_files
vendor/etc/qcril_database/upgrade/other/0_initial_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files
vendor/etc/qcril_database/upgrade/other/10_version_update_ecc_table.sql;FILEGROUP=proprietary_rildb_other_sql_files
vendor/etc/qcril_database/upgrade/other/1_version_intro_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files
vendor/etc/qcril_database/upgrade/other/2_version_add_wps_config_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files
vendor/etc/qcril_database/upgrade/other/3_version_update_wps_config_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files
vendor/etc/qcril_database/upgrade/other/4_version_update_ecc_table_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files
vendor/etc/qcril_database/upgrade/other/5_version_update_ecc_table_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files
vendor/etc/qcril_database/upgrade/other/6_version_change_property_table_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files
vendor/etc/qcril_database/upgrade/other/7_version_update_ecc_table_qcrilnr.sql;FILEGROUP=proprietary_rildb_other_sql_files
vendor/etc/qcril_database/upgrade/other/8_version_update_ecc_table.sql;FILEGROUP=proprietary_rildb_other_sql_files
vendor/etc/qcril_database/upgrade/other/9_version_update_ecc_table.sql;FILEGROUP=proprietary_rildb_other_sql_files
vendor/etc/seccomp_policy/qcrilnr@2.0.policy
vendor/etc/ssg/ta_config.json
vendor/etc/ssg/tz_whitelist.json
@@ -1584,8 +1568,11 @@ vendor/lib64/libtime_genoff.so
# Touchscreen firmware
vendor/firmware/focaltech_ts_fw.bin
vendor/firmware/focaltech_ts_fw.bin:vendor_ramdisk/lib/firmware/focaltech_ts_fw.bin
vendor/firmware/goodix_cfg_group_l9.bin
vendor/firmware/goodix_cfg_group_l9.bin:vendor_ramdisk/lib/firmware/goodix_cfg_group_l9.bin
vendor/firmware/goodix_firmware_l9.bin
vendor/firmware/goodix_firmware_l9.bin:vendor_ramdisk/lib/firmware/goodix_firmware_l9.bin
# Trusted Execution Environment connector
vendor/bin/hw/vendor.qti.hardware.qteeconnector@1.0-service
@@ -1600,14 +1587,7 @@ vendor/lib64/vendor.qti.hardware.qteeconnector@1.0.so
vendor/lib64/vendor.qti.hardware.tui_comm@1.0.so
# Vibrator firmware
vendor/firmware/aw8624_haptic.bin
vendor/firmware/aw8622x_haptic.bin
vendor/firmware/aw8622xl_haptic.bin
vendor/firmware/aw8624l_rtp_silk.bin
vendor/firmware/aw8624l_rtp_lighthouse.bin
vendor/firmware/aw8624l_rtp.bin
vendor/firmware/aw8624l_osc_rtp_24K_5s.bin
vendor/firmware/aw8624l_haptic.bin
vendor/lib64/libtriplecam_optical_zoom_control.so
vendor/lib64/libsysmon_cdsp_skel.so

37
qcril-database/Android.bp Normal file
View File

@@ -0,0 +1,37 @@
//
// SPDX-FileCopyrightText: The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
filegroup {
name: "rildb_config_sql_files",
srcs: [
"config/10.1_config.sql",
],
}
genrule {
name: "qcril_config_database",
enabled: true,
srcs: [
"//vendor/xiaomi/taoyao:proprietary_rildb_config_sql_files",
"//vendor/xiaomi/taoyao:proprietary_rildb_other_sql_files",
":rildb_config_sql_files",
],
tools: [
"generate_qcril_db",
],
cmd: "$(location generate_qcril_db) $(out) $(in)",
out: ["qcrilNr.db"],
}
prebuilt_etc {
name: "qcrilNrDb_vendor",
filename: "qcrilNr.db",
src: ":qcril_config_database",
relative_install_path: "qcril_database",
vendor: true,
required: [
"10.1_config.sql",
],
}

View File

@@ -0,0 +1,8 @@
/*
SPDX-FileCopyrightText: The LineageOS Project
SPDX-License-Identifier: Apache-2.0
*/
CREATE TABLE IF NOT EXISTS qcril_properties_table (property TEXT PRIMARY KEY NOT NULL, def_val TEXT, value TEXT);
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES('qcrildb_version',10.1);
UPDATE qcril_properties_table SET def_val="false" WHERE property="persist.vendor.radio.redir_party_num";

View File

@@ -0,0 +1,11 @@
//
// SPDX-FileCopyrightText: The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
prebuilt_etc {
name: "10.1_config.sql",
src: "10.1_config.sql",
relative_install_path: "qcril_database/upgrade/config",
vendor: true,
}

View File

@@ -1,70 +0,0 @@
filegroup {
name: "rildb_other_sql_files",
srcs: [
"other/0_initial_qcrilnr.sql",
"other/1_version_intro_qcrilnr.sql",
"other/2_version_add_wps_config_qcrilnr.sql",
"other/3_version_update_wps_config_qcrilnr.sql",
"other/4_version_update_ecc_table_qcrilnr.sql",
"other/5_version_update_ecc_table_qcrilnr.sql",
"other/6_version_change_property_table_qcrilnr.sql",
"other/7_version_update_ecc_table_qcrilnr.sql",
"other/8_version_update_ecc_table.sql",
"other/9_version_update_ecc_table.sql",
"other/10_version_update_ecc_table.sql",
],
}
filegroup {
name: "rildb_config_sql_files",
srcs: [
"config/6.0_config.sql",
"config/7.0_config.sql",
"config/8.0_config.sql",
"config/9.0_config.sql",
"config/10.0_config.sql",
],
}
genrule {
name: "qcril_config_database",
enabled: true,
srcs: [
":rildb_other_sql_files",
":rildb_config_sql_files",
],
tool_files: [
"generate_db.sh",
],
tools: [
"sqlite3",
],
cmd: "$(location generate_db.sh) $(location sqlite3) $(out) $(in)",
out: ["qcrilNr.db"],
}
prebuilt_etc {
name: "qcrilNrDb_vendor",
filename: "qcrilNr.db",
src: ":qcril_config_database",
sub_dir: "qcril_database",
vendor: true,
required: [
"0_initial_qcrilnr.sql",
"1_version_intro_qcrilnr.sql",
"2_version_add_wps_config_qcrilnr.sql",
"3_version_update_wps_config_qcrilnr.sql",
"4_version_update_ecc_table_qcrilnr.sql",
"5_version_update_ecc_table_qcrilnr.sql",
"6_version_change_property_table_qcrilnr.sql",
"7_version_update_ecc_table_qcrilnr.sql",
"8_version_update_ecc_table.sql",
"9_version_update_ecc_table.sql",
"10_version_update_ecc_table.sql",
"6.0_config.sql",
"7.0_config.sql",
"8.0_config.sql",
"9.0_config.sql",
"10.0_config.sql",
],
}

View File

@@ -1,15 +0,0 @@
/*
Copyright (c) 2021 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
CREATE TABLE IF NOT EXISTS qcril_properties_table (property TEXT PRIMARY KEY NOT NULL, def_val TEXT, value TEXT);
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES('qcrildb_version',10.0);
UPDATE qcril_properties_table SET def_val="" WHERE property="all_bc_msg";
UPDATE qcril_properties_table SET def_val="1" WHERE property="persist.vendor.radio.custom_ecc";
UPDATE qcril_properties_table SET def_val="1" WHERE property="persist.vendor.radio.cs_srv_type";
UPDATE qcril_properties_table SET def_val="0" WHERE property="persist.vendor.radio.always_send_plmn";
UPDATE qcril_properties_table SET def_val="true" WHERE property="persist.vendor.radio.process_sups_ind";
UPDATE qcril_properties_table SET def_val="false" WHERE property="persist.vendor.radio.redir_party_num";

View File

@@ -1,179 +0,0 @@
/*
Copyright (c) 2019-2020 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
CREATE TABLE IF NOT EXISTS qcril_properties_table (property TEXT PRIMARY KEY NOT NULL, def_val TEXT, value TEXT);
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES('qcrildb_version',6.0);
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("is_rat_tlv_supported", "1");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("is_ril_vrte_learning_enabled", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("all_bc_msg", "all");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("hw_mbn_loaded", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("sw_mbn_loaded", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("mcfg_ver_info", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.data.profile_update", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.disable_nricon_report", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.force_ltd_sys_ind", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.dont_use_dsd", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.tcp_rst_drop", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.datacall_timeout", "155");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.attach.profile", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.dont_use_epc", "true");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.rcv_dormancy_ind", "on_screen_state");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.no_srv_rc_17", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.bar_fake_gcell", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.wait_time_for_fake_ecc", "10");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.unicode_op_names", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.enableadvancedscan", "true");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.do_not_use_ril_optr_db", "true");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.stack_0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.stack_1");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.disable_retry", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.max_retry_timeout", "100");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.qcril_gstk.disable", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.qcril_uim_vcc_feature", "0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.uim_temp_unlock_0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.uim_temp_unlock_1");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.fci");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.sglte_csfb", "false");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.rat_on");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.kddi_hold_answ_on", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.ims_retry_3gpp", "true");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.ims_retry_3gpp2", "true");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.oem_ind_to_both", "1");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.oem_socket", "1");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.sap_silent_pin", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.block_allow_data", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.suppress_req", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.data_con_rprt", "false");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.track_heap_mem");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.voice.modem.index");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.ignore_ims_wlan");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.ver_info");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.sw_mbn_loaded", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.hw_mbn_loaded", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.ril_log_enabled", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.adb_log_on", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.ril_payload_on", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.ril_log_interval", "5");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.ril_extra_debug", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.hw_mbn_update", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.sw_mbn_update", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.sw_mbn_volte", "true");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.sw_mbn_openmkt", "true");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.long_iin_mbn", "false");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.msim.stackid_0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.msim.stackid_1");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.do_not_init_csvt", "0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.env.spec");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.apm_sim_not_pwdn", "1");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.add_power_save", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.force_nw_search", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.voice_on_lte", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.report_rstate", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.fill_eons", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.limit_sys_info", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.no_wait_for_card", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.snapshot_timer", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.snapshot_enabled", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.snapshot_data", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.data_timer", "500");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.rcv_data_dorm_ind", "off");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.data_ltd_sys_ind", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.use_se_table_only", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.custom_ecc", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.custom_nw_ecc", "0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.ecc_hard");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.eri64_as_home", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.prefer_spn", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.proc_nw_scan", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.sglte.eons_domain", "cs");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.sglte.eons_roam", "true");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.prov_emer_in_lpm", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.relay_oprt_change", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.lte_vrte_ltd", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.3gpp_drte_ltd", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.no_cons_man_roam", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.wait_for_pbm", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.wait_for_pbm_time", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.sib16_support", "1");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.lte_full_band", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.cinfo_sweep_limit", "10000");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.use_cc_names", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.reg_den_rej_cause", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.csg_info_avlbl", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.cs_srv_type", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.limit_rac_change", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.poweron_opt", "0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.sglte_target");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_plmn_0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_plmn_1");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.tuneaway_0", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.tuneaway_1", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.paging_priority_0", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.paging_priority_1", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.is_voip_enabled", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.pwropt_modepref_0", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.pwropt_modepref_1", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.default_network", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.always_send_plmn", "1");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.restore_mode_pref", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.manual_nw_rej_ct", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.ignore_dom_time", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.1x_roam_mtu_size", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.lte_tuneaway_0", "0xFF");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.lte_tuneaway_1", "0xFF");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.apm_mdm_not_pwdn", "1");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_lons_0_0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_lons_0_1");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_lons_1_0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_lons_1_1");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_lons_2_0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_lons_2_1");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_lons_3_0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_lons_3_1");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_sons_0_0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_sons_0_1");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_sons_1_0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_sons_1_1");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_sons_2_0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_sons_2_1");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_sons_3_0");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.nitz_sons_3_1");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.cn_mcc", "460");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.tw_mcc", "466");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.mbn_path", "/data/modem_config/");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.stack_id_0", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.stack_id_1", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.start_ota_daemon", "false");
INSERT OR REPLACE INTO qcril_properties_table(property) VALUES("persist.vendor.radio.mt_sms_ack");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.sms_link_timer", "4");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.force_on_dc", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.block_sms_on_1x", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.process_sups_ind", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.0x9e_not_callname", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.orig_num_disp", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.clir0", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.clir1", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.report_codec", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.support_subaddr", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.subaddr_amp", "true");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.reject_cause_21", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.subaddr_ia5_id", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.redir_party_num", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.call_type", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.facnotsup_as_nonw", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.autoanswer.ms", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.voice_diag_logging", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.cb.dup_detection", "true");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.support.encrypted_calls", "true");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.vdp_on_ims_cap", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.disable_modem_cfg", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.5g_mode_pref", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.5g_mode_pref_0", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.5g_mode_pref_1", "0");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.fake_audio_up", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.hidl_dev_service", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.is_ussd_supported", "false");
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.hlos_prov_pref_auto", "0");

View File

@@ -1,11 +0,0 @@
/*
Copyright (c) 2021 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
CREATE TABLE IF NOT EXISTS qcril_properties_table (property TEXT PRIMARY KEY NOT NULL, def_val TEXT, value TEXT);
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES('qcrildb_version',7.0);
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES("persist.vendor.radio.shutdown_deactivate_timer", "90");
UPDATE qcril_properties_table SET def_val="1" WHERE property="persist.vendor.radio.cs_srv_type";
DELETE FROM qcril_properties_table WHERE property="persist.vendor.radio.hlos_prov_pref_auto";

View File

@@ -1,9 +0,0 @@
/*
Copyright (c) 2021 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
CREATE TABLE IF NOT EXISTS qcril_properties_table (property TEXT PRIMARY KEY NOT NULL, def_val TEXT, value TEXT);
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES('qcrildb_version',8.0);
UPDATE qcril_properties_table SET def_val="1" WHERE property="persist.vendor.radio.cs_srv_type";

View File

@@ -1,12 +0,0 @@
/*
Copyright (c) 2021 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
CREATE TABLE IF NOT EXISTS qcril_properties_table (property TEXT PRIMARY KEY NOT NULL, def_val TEXT, value TEXT);
INSERT OR REPLACE INTO qcril_properties_table(property, def_val) VALUES('qcrildb_version',9.0);
UPDATE qcril_properties_table SET def_val="" WHERE property="all_bc_msg";
UPDATE qcril_properties_table SET def_val="1" WHERE property="persist.vendor.radio.custom_ecc";
UPDATE qcril_properties_table SET def_val="1" WHERE property="persist.vendor.radio.cs_srv_type";

View File

@@ -1,34 +0,0 @@
prebuilt_etc {
name: "6.0_config.sql",
src: "6.0_config.sql",
sub_dir: "qcril_database/upgrade/config",
vendor: true,
}
prebuilt_etc {
name: "7.0_config.sql",
src: "7.0_config.sql",
sub_dir: "qcril_database/upgrade/config",
vendor: true,
}
prebuilt_etc {
name: "8.0_config.sql",
src: "8.0_config.sql",
sub_dir: "qcril_database/upgrade/config",
vendor: true,
}
prebuilt_etc {
name: "9.0_config.sql",
src: "9.0_config.sql",
sub_dir: "qcril_database/upgrade/config",
vendor: true,
}
prebuilt_etc {
name: "10.0_config.sql",
src: "10.0_config.sql",
sub_dir: "qcril_database/upgrade/config",
vendor: true,
}

View File

@@ -1,49 +0,0 @@
#!/bin/bash
#
# Copyright (C) 2024 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
set -e
if [[ $# -le 2 ]]; then
echo "syntax: generate_db.sh sqlite3 target_db sql_file0 sql_file1..."
exit 1
fi
SQLITE=$1
if [[ ! -x "$SQLITE" ]]; then
echo "sqlite binary not found or not executable: $SQLITE"
exit 1
fi
TARGET_DB=$2
shift 2
# Split the config sql and ecc sql files
for file in "$@"; do
if [[ $file == *_config.sql ]]; then
CONFIG_SQL_FILES+=("$file")
else
ECC_SQL_FILES+=("$file")
fi
done
# Sort the files
IFS=$'\n' CONFIG_SQL_FILES=($(sort -V <<< "${CONFIG_SQL_FILES[*]}"))
IFS=$'\n' ECC_SQL_FILES=($(sort -V <<< "${ECC_SQL_FILES[*]}"))
unset IFS
# Config migrations should be applied after ecc migrations
ORDERED_MIGRATIONS=("${ECC_SQL_FILES[@]}" "${CONFIG_SQL_FILES[@]}")
rm -f "$TARGET_DB"
{
echo "BEGIN TRANSACTION;"
for file in "${ORDERED_MIGRATIONS[@]}"; do
cat "$file"
done
echo "COMMIT TRANSACTION;"
} | $SQLITE "$TARGET_DB"

View File

@@ -1,714 +0,0 @@
/*
Copyright (c) 2016 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
-- VERSION: 5
PRAGMA foreign_keys=OFF;
CREATE TABLE qcril_emergency_source_mcc_table(MCC TEXT, NUMBER TEXT, IMS_ADDRESS TEXT, SERVICE TEXT, PRIMARY KEY(MCC,NUMBER));
INSERT INTO qcril_emergency_source_mcc_table VALUES('334','060','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('730','133','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('732','123','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('901','999','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('901','122','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('520','191','','limited');
INSERT INTO qcril_emergency_source_mcc_table VALUES('520','1669','','limited');
INSERT INTO qcril_emergency_source_mcc_table VALUES('520','199','','limited');
INSERT INTO qcril_emergency_source_mcc_table VALUES('520','112','','limited');
INSERT INTO qcril_emergency_source_mcc_table VALUES('520','911','','limited');
INSERT INTO qcril_emergency_source_mcc_table VALUES('414','191','','limited');
INSERT INTO qcril_emergency_source_mcc_table VALUES('414','192','','limited');
INSERT INTO qcril_emergency_source_mcc_table VALUES('414','199','','limited');
INSERT INTO qcril_emergency_source_mcc_table VALUES('515','117','','limited');
INSERT INTO qcril_emergency_source_mcc_table VALUES('515','112','','limited');
INSERT INTO qcril_emergency_source_mcc_table VALUES('515','911','','limited');
INSERT INTO qcril_emergency_source_mcc_table VALUES('460','110','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('460','119','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('460','120','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('460','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('460','999','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('460','122','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('852','999','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('510','110','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('510','118','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('510','199','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('510','113','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('510','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('452','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('452','113','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('452','114','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('452','115','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('502','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('502','911','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('502','991','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('502','994','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('502','999','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('310','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('310','911','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('302','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('302','911','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('456','191','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('456','192','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('456','199','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('457','191','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('457','192','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('457','199','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('706','122','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('704','122','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('334','066','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('716','105','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('429','100',NULL,NULL);
INSERT INTO qcril_emergency_source_mcc_table VALUES('429','101',NULL,NULL);
INSERT INTO qcril_emergency_source_mcc_table VALUES('429','102',NULL,NULL);
INSERT INTO qcril_emergency_source_mcc_table VALUES('429','108',NULL,NULL);
INSERT INTO qcril_emergency_source_mcc_table VALUES('429','112',NULL,NULL);
INSERT INTO qcril_emergency_source_mcc_table VALUES('470','100',NULL,NULL);
INSERT INTO qcril_emergency_source_mcc_table VALUES('470','101',NULL,NULL);
INSERT INTO qcril_emergency_source_mcc_table VALUES('470','102',NULL,NULL);
INSERT INTO qcril_emergency_source_mcc_table VALUES('470','108',NULL,NULL);
INSERT INTO qcril_emergency_source_mcc_table VALUES('470','112',NULL,NULL);
INSERT INTO qcril_emergency_source_mcc_table VALUES('234','999','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('505','000','','');
CREATE TABLE qcril_emergency_source_voice_table(MCC TEXT, NUMBER TEXT, IMS_ADDRESS TEXT, SERVICE TEXT, PRIMARY KEY(MCC,NUMBER));
INSERT INTO qcril_emergency_source_voice_table VALUES('460','110','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('460','119','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('460','120','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('460','112','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('460','999','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('852','999','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('460','122','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('520','191','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('520','1669','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('520','199','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('520','112','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('520','911','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('414','191','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('414','192','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('414','199','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('515','117','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('515','112','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('515','911','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('510','110','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('510','118','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('510','199','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('510','113','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('510','112','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('452','112','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('452','113','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('452','114','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('452','115','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('502','112','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('502','911','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('502','991','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('502','994','','full');
INSERT INTO qcril_emergency_source_voice_table VALUES('502','999','','full');
CREATE TABLE qcril_emergency_source_hard_mcc_table(MCC TEXT, NUMBER TEXT, IMS_ADDRESS TEXT, SERVICE TEXT, PRIMARY KEY(MCC,NUMBER));
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('460','110','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('460','119','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('460','120','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('460','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('460','999','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('852','999','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('460','122','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('520','191','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('520','1669','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('520','199','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('520','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('520','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('414','191','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('414','192','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('414','199','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('515','117','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('515','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('515','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('510','110','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('510','118','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('510','199','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('510','113','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('510','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('452','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('452','113','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('452','114','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('452','115','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('502','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('502','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('502','991','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('502','994','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('502','999','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('310','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('310','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('310','999','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('302','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('302','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('302','999','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('456','191','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('456','192','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('456','199','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('457','191','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('457','192','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('457','199','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('730','133','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('429','100',NULL,NULL);
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('429','101',NULL,NULL);
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('429','102',NULL,NULL);
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('429','108',NULL,NULL);
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('429','112',NULL,NULL);
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('470','100',NULL,NULL);
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('470','101',NULL,NULL);
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('470','102',NULL,NULL);
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('470','108',NULL,NULL);
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('470','112',NULL,NULL);
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('262','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('234','999','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('234','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('234','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('222','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('222','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('222','999','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('222','08','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('222','118','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('222','119','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('214','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('268','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('204','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('272','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('272','999','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('216','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('230','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('230','150','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('230','155','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('230','158','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('655','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('655','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('286','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('226','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('226','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('206','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('260','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('260','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('231','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('231','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('214','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('208','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('208','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('334','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('334','060','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('334','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('732','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('732','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('716','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('716','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('724','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('724','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('724','190','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('724','192','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('724','193','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('722','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('722','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('730','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('730','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('712','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('712','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('740','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('740','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('706','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('706','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('704','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('704','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('710','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('710','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('714','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('714','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('748','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('748','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('734','112','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('734','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('262','911','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('262','000','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('262','08','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('262','110','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('262','999','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('262','118','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('262','119','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('262','122','','');
CREATE TABLE qcril_emergency_source_nw_table(MCC TEXT, NUMBER TEXT, IMS_ADDRESS TEXT, SERVICE TEXT, PRIMARY KEY(MCC,NUMBER));
CREATE TABLE qcril_emergency_source_escv_iin_table(IIN TEXT, NUMBER TEXT, ESCV INTEGER, ROAM TEXT, PRIMARY KEY(IIN,NUMBER,ROAM));
CREATE TABLE qcril_emergency_source_escv_nw_table(MCC TEXT, MNC TEXT, NUMBER TEXT, ESCV INTEGER, PRIMARY KEY(MCC,NUMBER, ESCV));
CREATE TABLE qcril_emergency_source_mcc_mnc_table(MCC TEXT, MNC TEXT, NUMBER TEXT, IMS_ADDRESS TEXT, SERVICE TEXT, PRIMARY KEY(MCC,NUMBER,MNC));
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('262','02','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('234','20','999','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('234','20','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('234','15','999','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('234','15','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('234','15','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('222','10','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('222','99','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('222','99','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('222','99','999','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('222','99','08','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('222','99','118','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('222','99','119','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('214','01','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('268','01','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('204','04','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('272','01','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('272','01','999','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('216','70','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('230','03','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('230','03','150','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('230','03','155','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('230','03','158','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('655','01','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('655','01','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('286','02','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('226','10','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('226','10','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('206','10','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('260','03','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('260','03','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('231','01','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('231','01','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('214','03','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('214','03','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','01','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','01','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('334','020','060','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('334','020','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('334','020','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('732','101','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('732','101','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('716','10','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('716','10','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','05','190','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','05','192','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','05','193','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','05','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','05','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','12','190','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','12','192','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','12','193','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','12','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','12','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','38','190','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','38','192','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','38','193','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','38','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('724','38','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('722','07','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('722','07','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('722','10','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('722','10','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('722','070','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('722','070','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('730','02','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('730','02','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('730','02','133','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('732','001','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('732','001','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('732','001','123','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('732','102','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('732','102','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('732','102','123','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('732','123','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('732','123','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('732','123','123','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('712','04','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('712','04','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('740','00','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('740','00','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('706','04','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('706','04','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('706','04','122','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('704','03','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('704','03','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('704','03','122','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('334','03','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('334','03','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('334','03','066','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('334','030','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('334','030','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('334','030','066','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('710','30','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('710','30','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('710','300','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('710','300','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('714','02','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('714','02','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('716','06','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('716','06','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('716','06','105','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('748','07','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('748','07','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('734','04','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('734','04','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('262','03','911','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('262','03','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('234','30','999','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('234','30','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('234','33','999','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('234','33','112','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','840','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','840','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','840','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','840','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','854','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','854','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','854','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','854','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','855','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','855','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','855','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','855','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','856','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','856','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','856','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','856','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','857','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','857','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','857','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','857','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','858','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','858','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','858','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','858','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','859','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','859','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','859','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','859','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','860','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','860','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','860','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','860','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','861','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','861','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','861','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','861','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','862','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','862','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','862','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','862','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','863','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','863','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','863','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','863','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','864','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','864','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','864','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','864','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','865','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','865','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','865','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','865','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','866','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','866','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','866','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','866','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','867','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','867','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','867','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','867','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','868','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','868','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','868','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','868','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','869','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','869','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','869','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','869','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','870','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','870','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','870','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','870','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','871','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','871','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','871','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','871','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','872','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','872','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','872','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','872','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','873','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','873','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','873','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','873','108','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','874','100','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','874','101','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','874','102','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('405','874','108','','');
CREATE TABLE qcril_emergency_source_voice_mcc_mnc_table(MCC TEXT, MNC TEXT, NUMBER TEXT, IMS_ADDRESS TEXT, SERVICE TEXT, PRIMARY KEY(MCC,NUMBER,MNC));
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','840','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','840','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','840','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','840','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','854','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','854','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','854','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','854','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','855','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','855','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','855','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','855','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','856','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','856','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','856','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','856','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','857','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','857','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','857','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','857','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','858','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','858','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','858','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','858','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','859','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','859','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','859','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','859','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','860','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','860','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','860','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','860','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','861','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','861','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','861','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','861','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','862','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','862','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','862','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','862','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','863','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','863','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','863','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','863','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','864','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','864','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','864','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','864','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','865','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','865','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','865','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','865','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','866','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','866','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','866','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','866','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','867','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','867','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','867','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','867','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','868','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','868','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','868','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','868','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','869','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','869','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','869','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','869','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','870','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','870','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','870','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','870','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','871','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','871','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','871','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','871','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','872','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','872','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','872','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','872','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','873','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','873','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','873','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','873','108','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','874','100','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','874','101','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','874','102','','full');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('405','874','108','','full');
CREATE TABLE qcril_properties_table (property TEXT,value TEXT, PRIMARY KEY(property));
INSERT INTO qcril_properties_table VALUES('qcrildb_version','5');
CREATE TABLE qcril_operator_specific_config(MCC TEXT, MNC TEXT, WPS_OVER_CS INTEGER, PRIMARY KEY(MCC, MNC));
INSERT INTO qcril_operator_specific_config VALUES('310','410',1);
DELETE FROM qcril_operator_specific_config where MCC = '310' AND MNC = '410';
CREATE TABLE qcril_cdma_operator_specific_config(MCC TEXT, MNC TEXT, FORCE_ON_DC INTEGER, PRIMARY KEY(MCC, MNC));
INSERT INTO qcril_cdma_operator_specific_config VALUES('460','03',1);
INSERT INTO qcril_cdma_operator_specific_config VALUES('460','11',1);
INSERT INTO qcril_cdma_operator_specific_config VALUES('454','03',1);
INSERT INTO qcril_cdma_operator_specific_config VALUES('454','31',1);
INSERT INTO qcril_cdma_operator_specific_config VALUES('204','04',1);
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '108';

View File

@@ -1,12 +0,0 @@
/*
Copyright (c) 2021 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
INSERT OR REPLACE INTO qcril_properties_table (property, value) VALUES ('qcrildb_version', 10);
INSERT INTO qcril_emergency_source_mcc_table VALUES('235','999','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('530','111','','');
INSERT INTO qcril_emergency_source_hard_mcc_table VALUES('235','999','','');

View File

@@ -1,14 +0,0 @@
/*
Copyright (c) 2016 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
CREATE TABLE IF NOT EXISTS qcril_properties_table (property TEXT,value TEXT, PRIMARY KEY(property));
INSERT OR REPLACE INTO qcril_properties_table (property, value) VALUES ('qcrildb_version', 1);
DELETE FROM qcril_emergency_source_mcc_table where MCC = '234' AND NUMBER = '999';
INSERT INTO qcril_emergency_source_mcc_table VALUES('234','999','','');
DELETE FROM qcril_emergency_source_mcc_table WHERE MCC = '505' AND NUMBER = '000';
INSERT INTO qcril_emergency_source_mcc_table VALUES('505', '000', '','');

View File

@@ -1,10 +0,0 @@
/*
Copyright (c) 2017 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
INSERT OR REPLACE INTO qcril_properties_table (property, value) VALUES ('qcrildb_version', 2);
CREATE TABLE IF NOT EXISTS qcril_operator_specific_config(MCC TEXT, MNC TEXT, WPS_OVER_CS INTEGER, PRIMARY KEY(MCC, MNC));
INSERT OR REPLACE INTO qcril_operator_specific_config VALUES ('310', '410', 1);

View File

@@ -1,9 +0,0 @@
/*
Copyright (c) 2018 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
INSERT OR REPLACE INTO qcril_properties_table (property, value) VALUES ('qcrildb_version', 3);
DELETE FROM qcril_operator_specific_config where MCC = '310' AND MNC = '410';

View File

@@ -1,53 +0,0 @@
/*
Copyright (c) 2018 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
INSERT OR REPLACE INTO qcril_properties_table (property, value) VALUES ('qcrildb_version', 4);
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '100';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '100';

View File

@@ -1,140 +0,0 @@
/*
Copyright (c) 2019 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
INSERT OR REPLACE INTO qcril_properties_table (property, value) VALUES ('qcrildb_version', 5);
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '840' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '854' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '855' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '856' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '857' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '858' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '859' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '860' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '861' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '862' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '863' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '864' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '865' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '866' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '867' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '868' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '869' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '870' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '871' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '872' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '873' AND NUMBER = '108';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '101';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '102';
DELETE FROM qcril_emergency_source_voice_mcc_mnc_table where MCC = '405' AND MNC = '874' AND NUMBER = '108';

View File

@@ -1,9 +0,0 @@
/*
Copyright (c) 2019 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
DROP TABLE IF EXISTS qcril_properties_table;
CREATE TABLE qcril_properties_table (property TEXT PRIMARY KEY NOT NULL, def_val TEXT, value TEXT);
INSERT OR REPLACE INTO qcril_properties_table (property, def_val) VALUES ('qcrildb_version', 6);

View File

@@ -1,229 +0,0 @@
/*
Copyright (c) 2020 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','01','15','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','01','17','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','01','18','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','01','115','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','01','119','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','01','191','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','01','196','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','01','197','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','01','116000','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','01','116117','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','02','15','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','02','17','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','02','18','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','02','115','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','02','119','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','02','191','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','02','196','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','02','197','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','02','116000','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','02','116117','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','91','15','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','91','17','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','91','18','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','91','115','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','91','119','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','91','191','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','91','196','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','91','197','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','91','116000','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','91','116117','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','20','15','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','20','17','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','20','18','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','20','115','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','20','119','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','20','191','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','20','196','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','20','197','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','20','116000','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','20','116117','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','21','15','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','21','17','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','21','18','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','21','115','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','21','119','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','21','191','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','21','196','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','21','197','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','21','116000','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','21','116117','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','88','15','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','88','17','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','88','18','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','88','115','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','88','119','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','88','191','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','88','196','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','88','197','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','88','116000','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','88','116117','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','09','15','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','09','17','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','09','18','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','09','115','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','09','119','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','09','191','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','09','196','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','09','197','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','09','116000','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','09','116117','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','10','15','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','10','17','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','10','18','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','10','115','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','10','119','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','10','191','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','10','196','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','10','197','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','10','116000','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','10','116117','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','11','15','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','11','17','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','11','18','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','11','115','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','11','119','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','11','191','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','11','196','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','11','197','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','11','116000','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','11','116117','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','13','15','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','13','17','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','13','18','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','13','115','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','13','119','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','13','191','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','13','196','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','13','197','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','13','116000','','');
INSERT INTO qcril_emergency_source_mcc_mnc_table VALUES('208','13','116117','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','01','15','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','01','17','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','01','18','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','01','115','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','01','119','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','01','191','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','01','196','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','01','197','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','01','116000','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','01','116117','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','02','15','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','02','17','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','02','18','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','02','115','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','02','119','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','02','191','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','02','196','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','02','197','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','02','116000','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','02','116117','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','91','15','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','91','17','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','91','18','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','91','115','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','91','119','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','91','191','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','91','196','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','91','197','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','91','116000','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','91','116117','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','20','15','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','20','17','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','20','18','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','20','115','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','20','119','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','20','191','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','20','196','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','20','197','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','20','116000','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','20','116117','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','21','15','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','21','17','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','21','18','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','21','115','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','21','119','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','21','191','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','21','196','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','21','197','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','21','116000','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','21','116117','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','88','15','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','88','17','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','88','18','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','88','115','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','88','119','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','88','191','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','88','196','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','88','197','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','88','116000','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','88','116117','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','09','15','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','09','17','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','09','18','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','09','115','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','09','119','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','09','191','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','09','196','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','09','197','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','09','116000','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','09','116117','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','10','15','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','10','17','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','10','18','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','10','115','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','10','119','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','10','191','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','10','196','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','10','197','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','10','116000','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','10','116117','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','11','15','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','11','17','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','11','18','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','11','115','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','11','119','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','11','191','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','11','196','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','11','197','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','11','116000','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','11','116117','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','13','15','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','13','17','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','13','18','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','13','115','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','13','119','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','13','191','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','13','196','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','13','197','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','13','116000','','');
INSERT INTO qcril_emergency_source_voice_mcc_mnc_table VALUES('208','13','116117','','');

View File

@@ -1,65 +0,0 @@
/*
Copyright (c) 2021 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
INSERT OR REPLACE INTO qcril_properties_table (property, value) VALUES ('qcrildb_version', 8);
INSERT INTO qcril_emergency_source_mcc_table VALUES('204','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('206','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('208','911','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('208','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('214','911','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('214','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('216','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('222','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('222','911','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('222','999','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('222','08','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('222','118','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('222','119','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('226','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('226','911','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('230','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('230','150','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('230','155','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('230','158','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('231','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('231','911','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('234','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('234','911','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('260','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('260','911','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('262','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('268','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('272','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('272','999','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('286','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('302','999','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('310','999','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('404','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('405','112','','');
DELETE FROM qcril_emergency_source_mcc_table where MCC = '414' AND NUMBER = '191';
INSERT INTO qcril_emergency_source_mcc_table VALUES('414','191','','');
DELETE FROM qcril_emergency_source_mcc_table where MCC = '414' AND NUMBER = '192';
INSERT INTO qcril_emergency_source_mcc_table VALUES('414','192','','');
DELETE FROM qcril_emergency_source_mcc_table where MCC = '414' AND NUMBER = '199';
INSERT INTO qcril_emergency_source_mcc_table VALUES('414','199','','');
DELETE FROM qcril_emergency_source_mcc_table where MCC = '515' AND NUMBER = '117';
INSERT INTO qcril_emergency_source_mcc_table VALUES('515','117','','');
DELETE FROM qcril_emergency_source_mcc_table where MCC = '515' AND NUMBER = '192';
INSERT INTO qcril_emergency_source_mcc_table VALUES('515','192','','');
DELETE FROM qcril_emergency_source_mcc_table where MCC = '515' AND NUMBER = '911';
INSERT INTO qcril_emergency_source_mcc_table VALUES('515','911','','');
DELETE FROM qcril_emergency_source_mcc_table where MCC = '520' AND NUMBER = '191';
INSERT INTO qcril_emergency_source_mcc_table VALUES('520','191','','');
DELETE FROM qcril_emergency_source_mcc_table where MCC = '520' AND NUMBER = '1669';
INSERT INTO qcril_emergency_source_mcc_table VALUES('520','1669','','');
DELETE FROM qcril_emergency_source_mcc_table where MCC = '520' AND NUMBER = '199';
INSERT INTO qcril_emergency_source_mcc_table VALUES('520','199','','');
DELETE FROM qcril_emergency_source_mcc_table where MCC = '520' AND NUMBER = '112';
INSERT INTO qcril_emergency_source_mcc_table VALUES('520','112','','');
DELETE FROM qcril_emergency_source_mcc_table where MCC = '520' AND NUMBER = '911';
INSERT INTO qcril_emergency_source_mcc_table VALUES('520','911','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('655','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('655','911','','');

View File

@@ -1,10 +0,0 @@
/*
Copyright (c) 2021 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
INSERT OR REPLACE INTO qcril_properties_table (property, value) VALUES ('qcrildb_version', 9);
INSERT INTO qcril_emergency_source_mcc_table VALUES('450','112','','');
INSERT INTO qcril_emergency_source_mcc_table VALUES('450','119','','');

View File

@@ -1,76 +0,0 @@
prebuilt_etc {
name: "0_initial_qcrilnr.sql",
src: "0_initial_qcrilnr.sql",
sub_dir: "qcril_database/upgrade/other",
vendor: true,
}
prebuilt_etc {
name: "1_version_intro_qcrilnr.sql",
src: "1_version_intro_qcrilnr.sql",
sub_dir: "qcril_database/upgrade/other",
vendor: true,
}
prebuilt_etc {
name: "2_version_add_wps_config_qcrilnr.sql",
src: "2_version_add_wps_config_qcrilnr.sql",
sub_dir: "qcril_database/upgrade/other",
vendor: true,
}
prebuilt_etc {
name: "3_version_update_wps_config_qcrilnr.sql",
src: "3_version_update_wps_config_qcrilnr.sql",
sub_dir: "qcril_database/upgrade/other",
vendor: true,
}
prebuilt_etc {
name: "4_version_update_ecc_table_qcrilnr.sql",
src: "4_version_update_ecc_table_qcrilnr.sql",
sub_dir: "qcril_database/upgrade/other",
vendor: true,
}
prebuilt_etc {
name: "5_version_update_ecc_table_qcrilnr.sql",
src: "5_version_update_ecc_table_qcrilnr.sql",
sub_dir: "qcril_database/upgrade/other",
vendor: true,
}
prebuilt_etc {
name: "6_version_change_property_table_qcrilnr.sql",
src: "6_version_change_property_table_qcrilnr.sql",
sub_dir: "qcril_database/upgrade/other",
vendor: true,
}
prebuilt_etc {
name: "7_version_update_ecc_table_qcrilnr.sql",
src: "7_version_update_ecc_table_qcrilnr.sql",
sub_dir: "qcril_database/upgrade/other",
vendor: true,
}
prebuilt_etc {
name: "8_version_update_ecc_table.sql",
src: "8_version_update_ecc_table.sql",
sub_dir: "qcril_database/upgrade/other",
vendor: true,
}
prebuilt_etc {
name: "9_version_update_ecc_table.sql",
src: "9_version_update_ecc_table.sql",
sub_dir: "qcril_database/upgrade/other",
vendor: true,
}
prebuilt_etc {
name: "10_version_update_ecc_table.sql",
src: "10_version_update_ecc_table.sql",
sub_dir: "qcril_database/upgrade/other",
vendor: true,
}

View File

@@ -26,4 +26,4 @@ on charger
chmod 0664 /sys/class/qcom-battery/authentic
chmod 0664 /sys/class/qcom-battery/verify_slave_flag
chmod 0664 /sys/class/qcom-battery/slave_authentic
chmod 0664 /sys/class/qcom-battery/is_old_hw
chmod 0664 /sys/class/qcom-battery/is_old_hw

View File

@@ -274,6 +274,64 @@ on property:sys.boot_completed=1
chown system system /sys/class/qcom-battery/input_suspend
chmod 0660 /sys/class/qcom-battery/input_suspend
# Allow Core Control
chown system system /sys/devices/system/cpu/cpu0/online
chown system system /sys/devices/system/cpu/cpu1/online
chown system system /sys/devices/system/cpu/cpu2/online
chown system system /sys/devices/system/cpu/cpu3/online
chown system system /sys/devices/system/cpu/cpu4/online
chown system system /sys/devices/system/cpu/cpu5/online
chown system system /sys/devices/system/cpu/cpu6/online
chown system system /sys/devices/system/cpu/cpu7/online
chmod 0660 /sys/devices/system/cpu/cpu0/online
chmod 0660 /sys/devices/system/cpu/cpu1/online
chmod 0660 /sys/devices/system/cpu/cpu2/online
chmod 0660 /sys/devices/system/cpu/cpu3/online
chmod 0660 /sys/devices/system/cpu/cpu4/online
chmod 0660 /sys/devices/system/cpu/cpu5/online
chmod 0660 /sys/devices/system/cpu/cpu6/online
chmod 0660 /sys/devices/system/cpu/cpu7/online
# Kernel Manager
chown system system /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
chown system system /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
chown system system /sys/devices/system/cpu/cpufreq/policy7/scaling_governor
chown system system /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
chown system system /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
chown system system /sys/devices/system/cpu/cpufreq/policy4/scaling_min_freq
chown system system /sys/devices/system/cpu/cpufreq/policy4/scaling_max_freq
chown system system /sys/devices/system/cpu/cpufreq/policy7/scaling_min_freq
chown system system /sys/devices/system/cpu/cpufreq/policy7/scaling_max_freq
chmod 0664 /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
chmod 0664 /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
chmod 0664 /sys/devices/system/cpu/cpufreq/policy7/scaling_governor
chmod 0664 /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
chmod 0664 /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
chmod 0664 /sys/devices/system/cpu/cpufreq/policy4/scaling_min_freq
chmod 0664 /sys/devices/system/cpu/cpufreq/policy4/scaling_max_freq
chmod 0664 /sys/devices/system/cpu/cpufreq/policy7/scaling_min_freq
chmod 0664 /sys/devices/system/cpu/cpufreq/policy7/scaling_max_freq
# GPU Manager
chown system system /sys/class/kgsl/kgsl-3d0/devfreq/governor
chown system system /sys/class/kgsl/kgsl-3d0/devfreq/min_freq
chown system system /sys/class/kgsl/kgsl-3d0/devfreq/max_freq
chown system system /sys/class/kgsl/kgsl-3d0/force_clk_on
chown system system /sys/class/kgsl/kgsl-3d0/force_bus_on
chown system system /sys/class/kgsl/kgsl-3d0/force_rail_on
chown system system /sys/class/kgsl/kgsl-3d0/force_no_nap
chown system system /sys/class/kgsl/kgsl-3d0/bus_split
chmod 0664 /sys/class/kgsl/kgsl-3d0/devfreq/governor
chmod 0664 /sys/class/kgsl/kgsl-3d0/devfreq/min_freq
chmod 0664 /sys/class/kgsl/kgsl-3d0/devfreq/max_freq
chmod 0664 /sys/class/kgsl/kgsl-3d0/force_clk_on
chmod 0664 /sys/class/kgsl/kgsl-3d0/force_bus_on
chmod 0664 /sys/class/kgsl/kgsl-3d0/force_rail_on
chmod 0664 /sys/class/kgsl/kgsl-3d0/force_no_nap
chmod 0664 /sys/class/kgsl/kgsl-3d0/bus_split
service vendor.qrtr-ns /vendor/bin/qrtr-ns -f
class core
user vendor_qrtr

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,9 @@
on fs
wait /dev/block/platform/soc/${ro.boot.bootdevice}
symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice
# Load ADSP firmware for PMIC
mkdir /firmware
mount vfat /dev/block/bootdevice/by-name/modem${ro.boot.slot_suffix} /firmware ro context=u:object_r:firmware_file:s0
on init
setprop sys.usb.configfs 1
@@ -8,3 +11,6 @@ on init
on property:ro.boot.usbcontroller=*
setprop sys.usb.controller ${ro.boot.usbcontroller}
write /sys/class/udc/${ro.boot.usbcontroller}/device/../mode peripheral
on property:dev.mnt.blk.firmware=*
write /sys/kernel/boot_adsp/boot 1

View File

@@ -1,4 +0,0 @@
# HALs
attribute hal_dms;
attribute hal_dms_client;
attribute hal_dms_server;

View File

@@ -1,5 +0,0 @@
# Data files
/data/vendor/dolby(/.*)? u:object_r:vendor_data_file:s0
# HALs
/(vendor|system/vendor)/bin/hw/vendor\.dolby\.hardware\.dms@2\.0-service u:object_r:hal_dms_default_exec:s0

View File

@@ -1,3 +0,0 @@
# Dolby
allow hal_audio_default hal_dms_hwservice:hwservice_manager find;
binder_call(hal_audio_default, hal_dms_default)

View File

@@ -1,6 +0,0 @@
# HwBinder IPC from client to server, and callbacks
binder_call(hal_dms_client, hal_dms_server)
binder_call(hal_dms_server, hal_dms_client)
add_hwservice(hal_dms_server, hal_dms_hwservice)
allow hal_dms_client hal_dms_hwservice:hwservice_manager find;

View File

@@ -1,12 +0,0 @@
type hal_dms_default, domain;
hal_server_domain(hal_dms_default, hal_dms)
type hal_dms_default_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(hal_dms_default)
allow hal_dms_default vendor_data_file:file { rw_file_perms create unlink };
allow hal_dms_default vendor_data_file:dir { rw_file_perms add_name remove_name };
binder_call(hal_dms_default, mediacodec)
binder_call(hal_dms_default, hal_audio_default)
binder_call(hal_dms_default, platform_app)
binder_call(hal_dms_default, priv_app)

View File

@@ -1,2 +0,0 @@
# Dolby
type hal_dms_hwservice, hwservice_manager_type;

View File

@@ -1,2 +0,0 @@
# Dolby
vendor.dolby.hardware.dms::IDms u:object_r:hal_dms_hwservice:s0

View File

@@ -1,2 +0,0 @@
allow mediacodec hal_dms_hwservice:hwservice_manager find;
binder_call(mediacodec, hal_dms_default)

View File

@@ -1,3 +0,0 @@
# Dolby
allow platform_app hal_dms_hwservice:hwservice_manager find;
binder_call(platform_app, hal_dms_default)

View File

@@ -1,3 +0,0 @@
# Dolby
allow priv_app hal_dms_hwservice:hwservice_manager find;
binder_call(priv_app, hal_dms_default)

View File

@@ -2,3 +2,6 @@ type sysfs_htsr, sysfs_type, fs_type;
# Power HAL
type vendor_sysfs_msm_subsys, fs_type, sysfs_type;
# Core Control
type vendor_sysfs_corecontrol, fs_type, sysfs_type;

View File

@@ -32,6 +32,9 @@
/vendor/lib(64)?/vendor\.qti\.hardware\.display\.allocator@.* u:object_r:vendor_camera_libs:s0
/vendor/lib(64)?/vendor\.qti\.hardware\.vpp@.* u:object_r:vendor_camera_libs:s0
# Core Control
/sys/devices/system/cpu/cpu[0-7]/online u:object_r:vendor_sysfs_corecontrol:s0
# Hexagon DSP-side executable needed for Halide operation
# This is labeled as public_adsprpcd_file as it needs to be read by apps
# (e.g. Google Camera App)
@@ -45,6 +48,8 @@
/dev/mi_display/disp_feature u:object_r:vendor_fingerprint_device:s0
/mnt/vendor/persist/goodix(/.*)? u:object_r:fingerprint_vendor_data_file:s0
/sys/devices/virtual/mi_display/disp_feature/disp-DSI-+[0-1](/.*)? u:object_r:vendor_sysfs_udfps:s0
/sys/devices/platform/soc/soc:qcom,dsi-display-primary/fod_hbm u:object_r:vendor_sysfs_udfps:s0
/sys/devices/platform/soc/soc:qcom,dsi-display-primary/fod_ui u:object_r:vendor_sysfs_udfps:s0
/sys/devices/virtual/touch/touch_dev/fod_press_status u:object_r:vendor_sysfs_udfps:s0
/sys/devices/virtual/touch/tp_dev/fod_status u:object_r:vendor_sysfs_udfps:s0
/vendor/bin/hw/android\.hardware\.biometrics\.fingerprint-service\.xiaomi u:object_r:hal_fingerprint_default_exec:s0
@@ -52,10 +57,6 @@
# HTSR
/sys/devices/virtual/touch/touch_dev/bump_sample_rate u:object_r:sysfs_htsr:s0
# IR
/dev/ir_spi u:object_r:ir_spi_device:s0
/vendor/bin/hw/android\.hardware\.ir-service\.taoyao u:object_r:hal_ir_default_exec:s0
# Fastcharge HAL
/(vendor|system/vendor)/bin/hw/vendor\.lineage\.fastcharge@[0-9]\.[0-9]-service\.venus u:object_r:hal_lineage_fastcharge_default_exec:s0

View File

@@ -1,9 +1,14 @@
# Core Control
genfscon sysfs /devices/system/cpu/cpu[0-7]/online u:object_r:vendor_sysfs_corecontrol:s0
# Display
genfscon sysfs /devices/platform/soc/soc:qcom,dsi-display-primary u:object_r:vendor_sysfs_graphics:s0
# Extcon
genfscon sysfs /devices/platform/soc/soc:extcon_usb1/extcon u:object_r:sysfs_extcon:s0
# Fingerprint
genfscon sysfs /devices/platform/soc/soc:fingerprint_fpc u:object_r:vendor_sysfs_fingerprint:s0
genfscon sysfs /devices/virtual/touch/touch_dev/fod_press_status u:object_r:vendor_sysfs_fingerprint:s0
# Graphics
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc- u:object_r:vendor_sysfs_sde_crtc:s0

View File

@@ -12,6 +12,9 @@ allow hal_fingerprint_default vendor_hal_perf_hwservice:hwservice_manager find;
# Netlink_socket
allow hal_fingerprint_default self:netlink_socket create_socket_perms_no_ioctl;
# Capability
allow hal_fingerprint_default self:capability { sys_nice };
# Props
set_prop(hal_fingerprint_default, vendor_fp_prop)
set_prop(hal_fingerprint_default, vendor_fp_info_prop)

View File

@@ -1,3 +0,0 @@
type ir_spi_device, dev_type;
allow hal_ir_default ir_spi_device:chr_file rw_file_perms;

View File

@@ -1,5 +1,6 @@
type vendor_touchfeature_device, dev_type;
type vendor_sysfs_sde_crtc, fs_type, sysfs_type;
type vendor_sysfs_double_tap, sysfs_type, fs_type;
allow hal_power_default vendor_touchfeature_device:chr_file rw_file_perms;
@@ -44,3 +45,5 @@ unix_socket_connect(hal_power_default, vendor_pps, hal_graphics_composer_default
# To get/set powerhal state propert
set_prop(hal_power_default, vendor_power_prop)
allow hal_power_default vendor_sysfs_double_tap:file rw_file_perms;
allow hal_power_default sysfs:file { open read write };

View File

@@ -17,7 +17,7 @@ com.fingerprints.extension::IFingerprintOptical u:
vendor.xiaomi.hardware.mlipay::IMlipayService u:object_r:hal_mlipay_hwservice:s0
# MiSys
vendor.xiaomi.hardware.misys::IMiSys u:object_r:hal_misys_hwservice:s0
vendor.xiaomi.hardware.misys::IMiSys u:object_r:hal_misys_hwservice:s0
# Sensors
vendor.xiaomi.hardware.citsensorservice::ICitSensorService u:object_r:vendor_hal_citsensorservice_xiaomi_hwservice:s0

View File

@@ -27,8 +27,6 @@ allow mi_thermald sysfs_devices_system_cpu:file rw_file_perms;
allow mi_thermald self:capability { fsetid sys_boot chown fowner };
allow mi_thermald self:capability2 { wake_alarm block_suspend };
allow mi_thermald init:unix_stream_socket connectto;
allow mi_thermald property_socket:sock_file rw_file_perms;
allow mi_thermald vendor_default_prop:property_service set;
allow mi_thermald vendor_sysfs_udfps:dir rw_dir_perms;
allow mi_thermald vendor_sysfs_udfps:file rw_file_perms;

View File

@@ -1,4 +1,5 @@
# Camera
persist.camera. u:object_r:vendor_camera_prop:s0
persist.vendor.camera u:object_r:vendor_camera_prop:s0
vendor.camera. u:object_r:vendor_camera_prop:s0
vendor.camera.sensor.logsystem u:object_r:vendor_camera_prop:s0
@@ -6,7 +7,6 @@ vendor.camera.sensor. u:object_r:vendor_camera_sensor_prop:s0
persist.vendor.aiie_capture_log.debug u:object_r:vendor_camera_prop:s0
ro.boot.camera. u:object_r:vendor_camera_prop:s0
ro.boot.camera.config u:object_r:vendor_camera_sensor_prop:s0
persist.vendor.low.cutoff u:object_r:vendor_camera_prop:s0
ro.vendor.audio.us.proximity u:object_r:vendor_camera_prop:s0
# Fastcharge HAL

View File

@@ -32,3 +32,18 @@ get_prop(system_app, vendor_default_prop)
# Charge Bypass
allow system_app vendor_sysfs_battery_supply:dir search;
allow system_app vendor_sysfs_battery_supply:file { getattr open read write };
# Core Control
allow system_app vendor_sysfs_corecontrol:dir search;
allow system_app vendor_sysfs_corecontrol:file { getattr open read write };
# Kernel Manager
allow system_app sysfs_devices_system_cpu:file { open read write };
allow system_app sysfs_devices_system_cpu:dir search;
# GPU Manager
allow system_app vendor_sysfs_kgsl:file { getattr open read write };
allow system_app vendor_sysfs_kgsl:dir search;
allow system_app vendor_sysfs_kgsl_gpuclk:file { getattr open read write };
allow system_app vendor_sysfs_kgsl_gpuclk:dir search;
allow system_app vendor_sysfs_kgsl:lnk_file read;

View File

@@ -41,9 +41,6 @@ persist.mm.enable.prefetch=true
ro.media.recorder-max-base-layer-fps=60
vendor.mm.enable.qcom_parser=16777215
# Multi-Gen LRU
persist.device_config.mglru_native.lru_gen_config=core_and_mm_walk
# NFC
ro.nfc.port=I2C

View File

@@ -27,17 +27,20 @@
#define PARAM_NIT_NONE 0
// Touchscreen and HBM
#define TOUCH_DEV_PATH "/dev/xiaomi-touch"
#define DISP_FEATURE_PATH "/dev/mi_display/disp_feature"
#define FOD_STATUS_PATH "/sys/devices/platform/goodix_ts.0/fod_enable"
#define FOD_STATUS_OFF 0
#define FOD_STATUS_ON 1
#define PARAM_FOD_PRESSED 1
#define PARAM_FOD_RELEASED 0
using ::aidl::android::hardware::biometrics::fingerprint::AcquiredInfo;
template <typename T>
static void set(const std::string& path, const T& value) {
std::ofstream file(path);
file << value;
}
static bool readBool(int fd) {
char c;
int rc;
@@ -71,19 +74,18 @@ class XiaomiUdfpsHandler : public UdfpsHandler {
public:
void init(fingerprint_device_t* device) {
mDevice = device;
touchUniqueFd = android::base::unique_fd(open(TOUCH_DEV_PATH, O_RDWR));
dispFeatureFd = android::base::unique_fd(open(DISP_FEATURE_PATH, O_RDWR));
}
void onFingerDown(uint32_t /*x*/, uint32_t /*y*/, float /*minor*/, float /*major*/) {
LOG(INFO) << __func__;
setFodStatus(FOD_STATUS_ON);
set(FOD_STATUS_PATH, FOD_STATUS_ON);
setFingerDown(true);
}
void onFingerUp() {
LOG(INFO) << __func__;
setFodStatus(FOD_STATUS_OFF);
set(FOD_STATUS_PATH, FOD_STATUS_OFF);
setFingerDown(false);
}
@@ -91,28 +93,26 @@ public:
LOG(INFO) << __func__ << " result: " << result << " vendorCode: " << vendorCode;
if (static_cast<AcquiredInfo>(result) == AcquiredInfo::GOOD) {
onFingerUp();
} else if (vendorCode == 21) {
/*
* vendorCode = 21 waiting for finger
* vendorCode = 22 finger down
* vendorCode = 23 finger up
*/
set(FOD_STATUS_PATH, FOD_STATUS_ON);
}
}
void cancel() {
LOG(INFO) << __func__;
onFingerUp();
set(FOD_STATUS_PATH, FOD_STATUS_OFF);
}
private:
fingerprint_device_t* mDevice;
android::base::unique_fd touchUniqueFd;
android::base::unique_fd dispFeatureFd;
void setFodStatus(int value) {
int buf[MAX_BUF_SIZE] = {MI_DISP_PRIMARY, Touch_Fod_Enable, value};
ioctl(touchUniqueFd.get(), TOUCH_IOC_SET_CUR_VALUE, &buf);
}
void setFingerDown(bool pressed) {
int buf[MAX_BUF_SIZE] = {MI_DISP_PRIMARY, THP_FOD_DOWNUP_CTL, pressed ? PARAM_FOD_PRESSED : PARAM_FOD_RELEASED};
ioctl(touchUniqueFd.get(), TOUCH_IOC_SET_CUR_VALUE, &buf);
struct disp_feature_req req = {
.base = displayBasePrimary,
.feature_id = DISP_FEATURE_LOCAL_HBM,

View File

@@ -47,7 +47,7 @@ ro.vendor.audio.soundtrigger.xiaomievent=1
ro.vendor.audio.soundtrigger=sva
ro.vendor.audio.us.proximity=true
vendor.audio.adm.buffering.ms=6
vendor.audio.dolby.ds2.enabled=true
vendor.audio.dolby.ds2.enabled=false
vendor.audio.dolby.ds2.hardbypass=false
vendor.audio.enable.mirrorlink=false
vendor.audio.feature.a2dp_offload.enable=true
@@ -224,6 +224,10 @@ vendor.display.use_layer_ext=0
vendor.display.use_smooth_motion=0
vendor.gralloc.disable_ubwc=0
# LMKD
ro.lmk.kill_heaviest_task=true
ro.lmk.kill_timeout_ms=100
# Logs
persist.log.tag.OpenGLRenderer=S
@@ -258,7 +262,6 @@ persist.vendor.radio.hidl_dev_service=true
persist.vendor.radio.manual_nw_rej_ct=1
persist.vendor.radio.procedure_bytes=SKIP
persist.vendor.radio.rat_on=combine
persist.vendor.radio.redir_party_num=0
persist.vendor.radio.sib16_support=1
ro.telephony.call_ring.multiple=false
ro.telephony.default_cdma_sub=0
@@ -282,7 +285,16 @@ ro.incremental.enable=yes
vendor.sys.thermal.data.path=/data/vendor/thermal/
# USB
sys.usb.mtp.batchcancel=1
vendor.usb.controller=a600000.dwc3
vendor.usb.diag.func.name=ffs
vendor.usb.dpl.inst.name=dpl
vendor.usb.qdss.inst.name=qdss_sw
vendor.usb.rmnet.func.name=gsi
vendor.usb.rmnet.inst.name=rmnet
vendor.usb.rndis.func.name=gsi
vendor.usb.use_ffs_mtp=1
vendor.usb.use_gadget_hal=1
# Wifi
wifi.aware.interface=wifi-aware0

View File

@@ -32,7 +32,7 @@ gEnableTxBFin20MHz=1
gEnableTxSUBeamformer=1
gRrmEnable=1
gEnablefwprint=0
gEnablefwlog=1
gEnablefwlog=0
gVhtAmpduLenExponent=7
gVhtMpduLen=2
isP2pDeviceAddrAdministrated=0
@@ -143,8 +143,10 @@ gStaKeepAlivePeriod = 30
etsi13_srd_chan_in_master_mode=7
#####Roaming
# Sets RSSI preference for 5GHz over 2.4GHz AP
gSelect5GHzMargin=5
# TheCrazyLex@PA Prefer connecting to 5Ghz AP
# even if its RSSI is lower by 3dBm than the 2.4Ghz AP
gRoamPrefer5GHz=1
gSelect5GHzMargin=3
# Candidate AP minimum RSSI for beacon miss roam trigger
# Code default is -70
@@ -201,12 +203,17 @@ gindoor_channel_support=1
#Enable max link speed
gReportMaxLinkSpeed=2
# Disable rx wakelock
rx_wakelock_timeout=0
# Skip tpe consideration
skip_tpe_consideration=1
gEnableNanSupport=1
genable_nan_datapath=1
nan_separate_iface_support=1
gEnableSelfRecovery=1
#####################################Xiaomi ADD: END
END

View File

@@ -3,4 +3,8 @@ p2p_no_group_iface=1
persistent_reconnect=1
bss_max_count=400
p2p_go_he=1
p2p_6ghz_disable=1
p2p_6ghz_disable=1
p2p_chan_list_dfs_disable=0
p2p_chan_list_only_sta_dfs_enable=0
p2p_pref_list_dfs_disable=0
p2p_go_dfs_disable=0

View File

@@ -5,4 +5,10 @@ wowlan_triggers=magic_pkt
bss_max_count=400
interworking=1
config_methods=virtual_display virtual_push_button keypad
driver_param="no_rrm=1"
driver_param="no_rrm=1"
p2p_chan_list_dfs_disable=0
p2p_chan_list_only_sta_dfs_enable=0
p2p_pref_list_dfs_disable=0
p2p_go_dfs_disable=0
wowlan_disconnect_on_deinit=1
bss_no_flush_when_down=1