diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000000000000000000000000000000000000..2914625c245be65f7487f7bd23c6df3817d34699
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,12 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(call first-makefiles-under,$(LOCAL_PATH))
+
+include $(CLEAR_VARS)
+
+ifneq ($(TARGET_PREBUILT_KERNEL),)
+# Some modules (ex. external/tinycompress depend on $(KERNEL_OUT)/usr,
+# but this folder is not created for prebuilt kernel, let'c create it
+$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr:
+ mkdir -p $@
+endif
diff --git a/AndroidBoard.mk b/AndroidBoard.mk
old mode 100755
new mode 100644
index ac527865b17a9e4a517a85267454972bf8544562..639c01063af181199401da2969f9c1b1f0a49620
--- a/AndroidBoard.mk
+++ b/AndroidBoard.mk
@@ -5,4 +5,4 @@ include $(CLEAR_VARS)
ALL_PREBUILT += $(INSTALLED_KERNEL_TARGET)
# include the non-open-source counterpart to this file
--include vendor/oukitel/orange/AndroidBoardVendor.mk
+-include vendor/archos/persimmon/AndroidBoardVendor.mk
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
old mode 100755
new mode 100644
index a5a78f9e8ab54dd4d45d3d5e3df78e3991bb85ef..7887880098ad2db57c3cb391ce395c07879f31fa
--- a/AndroidProducts.mk
+++ b/AndroidProducts.mk
@@ -1,2 +1,2 @@
PRODUCT_MAKEFILES := \
- $(LOCAL_DIR)/device_orange.mk
+ $(LOCAL_DIR)/device_persimmon.mk
diff --git a/BoardConfig.mk b/BoardConfig.mk
old mode 100755
new mode 100644
index 5e6b72ddd297f9c7fd6e15ead011d7d5169e4690..15c2d8a9ea1dcd435366ba192dab71ae89c0e596
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -1,69 +1,83 @@
+DEVICE_PATH := device/archos/persimmon
+VENDOR_PATH := vendor/archos/persimmon
-LOCAL_PATH := device/oukitel/orange
+USE_CAMERA_STUB := true
+
+FORCE_32_BIT = true
# inherit from the proprietary version
--include vendor/oukitel/orange/BoardConfigVendor.mk
-TARGET_SPECIFIC_HEADER_PATH := $(LOCAL_PATH)/include
-
-# Link against libxlog
-TARGET_LDPRELOAD += libxlog.so
-
-# Bootloader
-TARGET_BOOTLOADER_BOARD_NAME := mt6735m
-TARGET_NO_BOOTLOADER := true
+-include $(VENDOR_PATH)/BoardConfigVendor.mk
-#Use prebuilt chromium
-PRODUCT_PREBUILT_WEBVIEWCHROMIUM := yes
+TARGET_BOARD_PLATFORM := mt6735
-#32 bit
+# Architecture
+ifeq ($(FORCE_32_BIT),true)
TARGET_ARCH := arm
TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_CPU_ABI := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
TARGET_CPU_VARIANT := cortex-a53
-TARGET_BOARD_PLATFORM := mt6735m
+else
+TARGET_ARCH := arm64
+TARGET_ARCH_VARIANT := armv8-a
+TARGET_CPU_ABI := arm64-v8a
+TARGET_CPU_ABI2 :=
+TARGET_CPU_VARIANT := cortex-a53
+
+TARGET_2ND_ARCH := arm
+TARGET_2ND_ARCH_VARIANT := armv7-a-neon
+TARGET_2ND_CPU_ABI := armeabi-v7a
+TARGET_2ND_CPU_ABI2 := armeabi
+TARGET_2ND_CPU_VARIANT := cortex-a53
+endif
+
+TARGET_NO_BOOTLOADER := true
TARGET_CPU_SMP := true
+
ARCH_ARM_HAVE_TLS_REGISTER := true
ARCH_ARM_HAVE_NEON := true
ARCH_ARM_HAVE_VFP := true
TARGET_GLOBAL_CFLAGS += -mfpu=neon -mfloat-abi=softfp
TARGET_GLOBAL_CPPFLAGS += -mfpu=neon -mfloat-abi=softfp
-COMMON_GLOBAL_CFLAGS += -DNO_SECURE_DISCARD
-COMMON_GLOBAL_CFLAGS += -DDISABLE_HW_ID_MATCH_CHECK
-TARGET_USERIMAGES_USE_EXT4 := true
+TARGET_USERIMAGES_USE_EXT4:=true
-#extracted from stock recovery
-BOARD_KERNEL_PAGESIZE := 2048
-BOARD_KERNEL_BASE := 0x40000000
+TARGET_BOOTLOADER_BOARD_NAME := mt6735
-BOARD_KERNEL_CMDLINE := bootopt=64S3,32N2,32N2
+BOARD_KERNEL_CMDLINE := bootopt=64S3,32N2,32N2 androidboot.selinux=permissive
BOARD_KERNEL_BASE := 0x40000000
+#extracted from stock recovery
BOARD_KERNEL_PAGESIZE := 2048
-
-BOARD_CUSTOM_BOOTIMG_MK := device/oukitel/orange/mkbootimg.mk
-BOARD_MKBOOTIMG_ARGS := --cmdline bootopt=64S3,32N2,32N2 --pagesize 2048 --base 0x40000000 --kernel_offset 0x00008000 --ramdisk_offset 0x04000000 --tags_offset 0x0e000000
-
-# experimental
-TARGET_REQUIRES_SYNCHRONOUS_SETSURFACE := true
+BOARD_RAMDISK_OFFSET := 0x04000000
#extracted from /proc/partinfo
-TARGET_USERIMAGES_USE_EXT4 := true
-BOARD_HAS_LARGE_FILESYSTEM := true
-BOARD_BOOTIMAGE_PARTITION_SIZE := 16777216
-BOARD_RECOVERYIMAGE_PARTITION_SIZE := 16777216
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736
-BOARD_USERDATAIMAGE_PARTITION_SIZE := 1610612736
+BOARD_BOOTIMAGE_PARTITION_SIZE := 16777216 # 0x1000000
+BOARD_RECOVERYIMAGE_PARTITION_SIZE := 50331648 # 0x3000000
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736 # 0x60000000
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 12831948800 # 0x2fcd80000
+BOARD_CACHEIMAGE_PARTITION_SIZE := 419439400 # 0x19000000
+#pagesize * 64
BOARD_FLASH_BLOCK_SIZE := 131072
+BOARD_MKBOOTIMG_ARGS := --kernel_offset 0x00008000 --ramdisk_offset 0x04000000 --tags_offset 0x0e000000 --board B3502_AC50CO_3M
+
+#in case we want to build kernel from source
+# uncomment the following lines
+#TARGET_KERNEL_SOURCE := kernel/archos/persimmon
+#TARGET_KERNEL_CONFIG := persimmon_debug_defconfig
+#TARGET_KERNEL_CROSS_COMPILE_PREFIX := arm-linux-android-
+#BOARD_KERNEL_IMAGE_NAME := Image.gz-dtb
+# end of commented lines
#for now lets use prebuilt
-TARGET_PREBUILT_KERNEL := device/oukitel/orange/prebuilt/kernel
+TARGET_PREBUILT_KERNEL := $(DEVICE_PATH)/prebuilt/Image.gz-dtb
+BOARD_HAS_NO_SELECT_BUTTON := true
+#recovery
+#TARGET_RECOVERY_INITRC := $(DEVICE_PATH)/recovery/init.mt6753.rc
+TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/recovery/root/fstab.mt6735
+TARGET_RECOVERY_LCD_BACKLIGHT_PATH := \"/sys/devices/platform/leds-mt65xx/leds/lcd-backlight/brightness\"
#system.prop
-TARGET_SYSTEM_PROP := device/oukitel/orange/system.prop
-
-# CMHW
-BOARD_HARDWARE_CLASS := device/oukitel/orange/cmhw/
+TARGET_SYSTEM_PROP := $(DEVICE_PATH)/system.prop
# WiFi
WPA_SUPPLICANT_VERSION := VER_0_8_X
@@ -76,247 +90,67 @@ WIFI_DRIVER_FW_PATH_STA:=STA
WIFI_DRIVER_FW_PATH_AP:=AP
WIFI_DRIVER_FW_PATH_P2P:=P2P
-# RIL
-BOARD_CONNECTIVITY_VENDOR := MediaTek
-BOARD_USES_LEGACY_MTK_AV_BLOB := true
-
# Bluetooth
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_MTK := true
BOARD_BLUETOOTH_DOES_NOT_USE_RFKILL := true
-BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/oukitel/orange/bluetooth
-# ANT
-MTK_ANT_SUPPORT := yes
-BOARD_ANT_WIRELESS_DEVICE := "vfs-prerelease"
+#twrp ( WIP do not use!!! see comments )
-# GPS
-BOARD_GPS_LIBRARIES :=true
-BOARD_CONNECTIVITY_MODULE := conn_soc
-BOARD_MEDIATEK_USES_GPS := true
+#tw_theme is essential flag
+TW_THEME := portrait_hdpi
-# Camera
-USE_CAMERA_STUB := true
+#brightness settings (needs verification)
+TW_BRIGHTNESS_PATH := /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/brightness/
+TW_MAX_BRIGHTNESS := 255
-# Audio
-TARGET_CPU_MEMCPY_OPT_DISABLE := true
-BOARD_USES_MTK_AUDIO := true
+#may be usefull if we get graphical glitches
+#RECOVERY_GRAPHICS_USE_LINELENGTH := true
-# FM Radio
-MTK_FM_SUPPORT := yes
-MTK_FM_RX_SUPPORT := yes
+#in case of wrong color this needs modification
+#TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888"
-#recovery
-TARGET_RECOVERY_FSTAB := device/oukitel/orange/recovery/root/etc/twrp.fstab
-BOARD_SUPPRESS_SECURE_ERASE := true
-BOARD_HAS_NO_SELECT_BUTTON := true
-TW_BRIGHTNESS_PATH := /sys/class/leds/lcd-backlight/brightness
-TW_MAX_BRIGHTNESS := 255
-TW_CUSTOM_CPU_TEMP_PATH := /sys/devices/virtual/thermal/thermal_zone1/temp
-#RECOVERY_GRAPHICS_USE_LINELENGTH := true
-TW_THEME := portrait_mdpi
#if sdcard0 is a /data/media emulated one
#RECOVERY_SDCARD_ON_DATA := true
-TW_EXCLUDE_DEFAULT_USB_INIT := true
-TW_INCLUDE_CRYPTO := true
-TARGET_RECOVERY_PIXEL_FORMAT := "RGBA_8888"
+
+#ntfs support? (needs much space..)
+#TW_INCLUDE_NTFS_3G := true
+
+#we may need that if sdcard0 dont work
+#TW_FLASH_FROM_STORAGE := true
+#TW_EXTERNAL_STORAGE_PATH := "/external_sd"
+#TW_EXTERNAL_STORAGE_MOUNT_POINT := "external_sd"
+#TW_DEFAULT_EXTERNAL_STORAGE := true
+
+#only add if kernel supports
+#TW_INCLUDE_FUSE_EXFAT := true
+
+#F2FS support (only activate if kernel supports)
+#TARGET_USERIMAGES_USE_F2FS:=true
+
#Mediatek flags
BOARD_HAS_MTK_HARDWARE := true
+BOARD_USES_MTK_HARDWARE := true
MTK_HARDWARE := true
-COMMON_GLOBAL_CFLAGS += -DMTK_HARDWARE -DADD_LEGACY_ACQUIRE_BUFFER_SYMBOL
-COMMON_GLOBAL_CPPFLAGS += -DMTK_HARDWARE
+#COMMON_GLOBAL_CFLAGS += -DMTK_HARDWARE -DMTK_AOSP_ENHANCEMENT
+#COMMON_GLOBAL_CPPFLAGS += -DMTK_HARDWARE -DMTK_AOSP_ENHANCEMENT
#EGL settings
USE_OPENGL_RENDERER := true
-BOARD_EGL_CFG := device/oukitel/orange/configs/egl.cfg
-BOARD_EGL_WORKAROUND_BUG_10194508 := trues
-
-TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/class/android_usb/android0/f_mass_storage/lun/file
-
-# SELinux
-BOARD_SEPOLICY_DIRS := \
- device/oukitel/orange/sepolicy
-
-BOARD_SEPOLICY_UNION := \
- app.te \
- device.te \
- domain.te \
- file.te \
- file_contexts \
- fs_use \
- installd.te \
- net.te \
- netd.te \
- te_macros \
- vold.te \
- untrusted_app.te \
- platform_app.te \
- system_app.te \
- zygote.te \
- aal.te \
- akmd09911.te \
- akmd8963.te \
- akmd8975.te \
- ami304d.te \
- ist8303.te \
- mc6470d.te \
- qmcX983d.te \
- st480.te \
- af7133e.te \
- mmc3524xd.te \
- atcid.te \
- atci_service.te \
- audiocmdservice_atci.te \
- batterywarning.te \
- bmm050d.te \
- bmm056d.te \
- bmx056d.te \
- boot_logo_updater.te \
- br_app_data_service.te \
- BGW.te \
- ccci_fsd.te \
- ccci_mdinit.te \
- statusd.te \
- flashlessd.te \
- ccci_rpcd.te \
- eemcs_fsd.te \
- eemcs_mdinit.te \
- dhcp6c.te \
- dm_agent_binder.te \
- dualmdlogger.te \
- dumpstate.te \
- em_svr.te \
- enableswap.te \
- disableswap.te \
- factory.te \
- fota1.te \
- fuelgauged.te \
- geomagneticd.te \
- GoogleOtaBinder.te \
- gsm0710muxdmd2.te \
- gsm0710muxd.te \
- guiext-server.te \
- ipod.te \
- matv.te \
- mc6420d.te \
- mdlogger.te \
- mdnsd.te \
- memsicd3416x.te \
- bmc156d.te \
- memsicd.te \
- memsicp.te \
- meta_tst.te \
- mmc_ffu.te \
- mmp.te \
- mnld.te \
- mobile_log_d.te \
- mpud6050.te \
- msensord.te \
- mtk_6620_launcher.te \
- mtk_agpsd.te \
- mtkbt.te \
- muxreport.te \
- netdiag.te \
- nvram_agent_binder.te \
- nvram_backup_binder.te \
- nvram_daemon.te \
- orientationd.te \
- permission_check.te \
- poad.te \
- pppd_dt.te \
- pppd_via.te \
- pq.te \
- recovery.te \
- resmon.te \
- mtkrild.te \
- mtkrildmd2.te \
- viarild.te \
- s62xd.te \
- sn.te \
- epdg_wod.te \
- ipsec.te \
- terservice.te \
- thermald.te \
- thermal_manager.te \
- thermal.te \
- tiny_mkswap.te \
- tiny_swapon.te \
- vdc.te \
- volte_imcb.te \
- volte_ua.te \
- volte_stack.te \
- wmt_loader.te \
- icusbd.te \
- xlog.te \
- mobicore.te \
- install_recovery.te \
- program_binary.te \
- genfs_contexts
-
-
-
-BOARD_SEPOLICY_UNION += \
- adbd.te \
- bluetooth.te \
- bootanim.te \
- clatd.te \
- drmserver.te \
- dhcp.te \
- dnsmasq.te \
- gpsd.te \
- hci_attach.te \
- healthd.te \
- hostapd.te \
- inputflinger.te \
- init.te \
- init_shell.te \
- isolated_app.te \
- keystore.te \
- kernel.te \
- lmkd.te \
- logd.te \
- mediaserver.te \
- mtp.te \
- nfc.te \
- racoon.te \
- radio.te \
- rild.te \
- runas.te \
- sdcardd.te \
- servicemanager.te \
- shared_relro.te \
- shell.te \
- system_app.te \
- system_server.te \
- surfaceflinger.te \
- tee.te \
- ueventd.te \
- uncrypt.te \
- watchdogd.te \
- wpa_supplicant.te \
- wpa.te \
- property.te \
- property_contexts \
- service.te \
- dmlog.te \
- MtkCodecService.te \
- ppl_agent.te \
- pvrsrvctl.te \
- wifi2agps.te \
- dex2oat.te \
- emdlogger.te \
- autokd.te \
- ppp.te \
- launchpppoe.te \
- sbchk.te \
- service_contexts \
- ril-3gddaemon.te \
- usbdongled.te \
- zpppd_gprs.te \
- md_ctrl.te \
- cmddumper.te \
- tunman.te
-
-# Prebuilt kernel stuff
-$(shell mkdir -p $(OUT)/obj/KERNEL_OBJ/usr)
+BOARD_EGL_CFG := $(DEVICE_PATH)/egl.cfg
+
+# CyanogenMod Hardware Hooks
+BOARD_HARDWARE_CLASS := $(DEVICE_PATH)/cmhw/
+
+# RIL
+BOARD_RIL_CLASS := ../../../$(DEVICE_PATH)/ril
+
+BOARD_SEPOLICY_DIRS := $(DEVICE_PATH)/sepolicy
+
+TARGET_LDPRELOAD += libxlog.so:libmtk_symbols.so
+
+BOARD_SECCOMP_POLICY := $(DEVICE_PATH)/seccomp
+
+TARGET_TAP_TO_WAKE_NODE := /sys/devices/mx_tsp/gesture_control
+
diff --git a/LICENSE b/LICENSE
old mode 100755
new mode 100644
diff --git a/README.md b/README.md
old mode 100755
new mode 100644
index 94f275c4887e38c765f6309c39d09e8685b4902b..9ed2efe26e7a872d145e1b432107c22a7ba3dc27
--- a/README.md
+++ b/README.md
@@ -1,12 +1,60 @@
-# android_device_oukitel_orange
-Device repository for Oukitel k4000(Orange) CM12.1 6735
-
-ALL WORK
-
-## Thanks to:
- * darklord4822
- * SRT Team
- * fire855
- * Deepflex
- * olegsvs
- * visi0nary
+Device repository for Archos 50 Cobalt (CyanogenMod)
+===========================
+
+Getting Started
+---------------
+
+Initialize a repository with CyanogenMode:
+
+ repo init -u git://github.com/divis1969/android.git -b cm-14.1-meilan2
+
+Optinally use a specific manifest (not a tip):
+
+ repo init -u git://github.com/divis1969/android.git -b cm-14.1-meilan2 -m cm-14.1-meilan2-v0.2.xml
+
+Build the code:
+
+ source build/envsetup.sh
+ breakfast meilan2
+ make -j 4 bacon showcommands 2>&1 | tee build.log
+
+Flash the phone:
+https://github.com/divis1969/android_device_meizu_meilan2/wiki/%D0%9F%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0-%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D0%B0
+
+Current state
+-------------
+
+- Cyanogen boots
+- Touch, screen, keyboard working
+- Wifi is working
+- Audio is working
+- Telephony is working (see Known Issues)
+ - USIM (3G) supported
+ - Incoming/outgoung call
+ - SMS, USSD
+ - Data connectivity
+- GPS
+- Bluetooth (pairing only testes so far)
+- Sensors
+
+Known Issues
+-------------
+- Android Camera App is not stable (hangs) ex. with location enabled
+- Camera
+- Telephony crashes eventually on location request from camera.
+- Hardware OMX codecs are not working
+
+Change log
+----------
+
+### v0.2
+- Fixed an issue with proximity on some devices
+- Fixed an issue with ICC IO in MTK ril (no radio with some SIM cards)
+- Fixed a modem crash caused by mtk_agps request
+- Fixed an issue with WiFi SoftAP
+- Ported power HAL from CyanogenMod 6735 (also implements Double Tap To Wake feature)
+- Ported FOTA solution from meilan2 cm-12.1
+
+### v0.1
+- Initial port from cm-14.0 (v0.3) to cm-14.1
+
diff --git a/archos.x509.pem b/archos.x509.pem
new file mode 100644
index 0000000000000000000000000000000000000000..ec91ed5f012a5577b878c2dc082e79805707635b
--- /dev/null
+++ b/archos.x509.pem
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIIEbzCCA1egAwIBAgIJAOXKPACE+xnTMA0GCSqGSIb3DQEBBQUAMIGBMQswCQYD
+VQQGEwJDTjESMBAGA1UECBMJR3VhbmdaaG91MRQwEgYDVQQHEwtaaHVIYWkgVmll
+dzEOMAwGA1UEChMFTWVpenUxDjAMBgNVBAsTBU1laXp1MQswCQYDVQQDEwJtOTEb
+MBkGCSqGSIb3DQEJARYMbTlAbWVpenUuY29tMB4XDTEwMTEyNzA5MDkxNloXDTM4
+MDQxNDA5MDkxNlowgYExCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ1pob3Ux
+FDASBgNVBAcTC1podUhhaSBWaWV3MQ4wDAYDVQQKEwVNZWl6dTEOMAwGA1UECxMF
+TWVpenUxCzAJBgNVBAMTAm05MRswGQYJKoZIhvcNAQkBFgxtOUBtZWl6dS5jb20w
+ggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQCiepSdrcvEEy2mgS1oZ4Q7
+s4wIjq4BL3/pcpTcQLkSSfAeG32gbq9S+beGqXInGb1nmWzEyXeWOJLO2AwNMQly
+GGLdfVSULp3ZEO4Le6XLMo30VrCKmgSS/+vy5v0q8Lk6oyE7weI9z/RkODGWU1iG
+uRP/ey+ppbxkIs6ZXoBCkCS8ETQS2RRTavD9lgq7OCDfkDx4VCkuw/O8zo1pKuMu
+74pHjXCYgCjWpSQhq9nhcBhyNSE3J+umB1tJWe41CNx9AxHpYxwFAORg+S0Y97nX
+BZW2FZkmVk4j8LodRnif+UP9Ugp0CYsBO18YBfXLxmS6uP4MDPecWnoes677zzzh
+AgEDo4HpMIHmMB0GA1UdDgQWBBQuCjIaLq71W8qh76C4T8LXpXwjRzCBtgYDVR0j
+BIGuMIGrgBQuCjIaLq71W8qh76C4T8LXpXwjR6GBh6SBhDCBgTELMAkGA1UEBhMC
+Q04xEjAQBgNVBAgTCUd1YW5nWmhvdTEUMBIGA1UEBxMLWmh1SGFpIFZpZXcxDjAM
+BgNVBAoTBU1laXp1MQ4wDAYDVQQLEwVNZWl6dTELMAkGA1UEAxMCbTkxGzAZBgkq
+hkiG9w0BCQEWDG05QG1laXp1LmNvbYIJAOXKPACE+xnTMAwGA1UdEwQFMAMBAf8w
+DQYJKoZIhvcNAQEFBQADggEBACTEtW23/oergOSbMW5MA7ocjjg1DpKT+AlGo9Gh
+I+O5v2t7PRHz7Jx61nVAL6QIYTFomqA115TbDfsq+/DISVBpDok/Rs0ng/wk4sjK
+5AWMh8KU67V2JsZre9HtlxpEk6c0xDSZKHNVgRB/i7AgiYcAGPQtSq+dTn+1s8Tf
+mPKX/Hs/8IRRc6csnmsEPvidqA2P07XptDxMZIznzJ47+nLE13NXnfY9tncLBEpS
+9e1zsh9eMr+P9HvizGv1NS5wybAbMlnH0mnqIKtGln/N5WOHFgTX3/X+U00m24nJ
+U8Y3P+n/YfEUYDhenFZicoRSGzJKu9W4n7rYIJ9l9+YAdoI=
+-----END CERTIFICATE-----
+
diff --git a/bluetooth/bdroid_buildcfg.h b/bluetooth/bdroid_buildcfg.h
deleted file mode 100755
index 997a2f0610ea95fa1c340ad4690796ea671c1724..0000000000000000000000000000000000000000
--- a/bluetooth/bdroid_buildcfg.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _BDROID_BUILDCFG_H
-#define _BDROID_BUILDCFG_H
-
-#define BTM_DEF_LOCAL_NAME "Oukitel K4000(Orange)"
-
-#endif
diff --git a/cm.mk b/cm.mk
old mode 100755
new mode 100644
index 4cecd07105c875369978d74b8c7647c0f6257249..da21f00d142622f9895794c7908d01eb723e5051
--- a/cm.mk
+++ b/cm.mk
@@ -1,26 +1,24 @@
+## Specify phone tech before including full_phone
+#$(call inherit-product, vendor/cm/config/gsm.mk)
+
# Release name
-PRODUCT_RELEASE_NAME := orange
+PRODUCT_RELEASE_NAME := 50 Cobalt
# Inherit some common CM stuff.
$(call inherit-product, vendor/cm/config/common_full_phone.mk)
# Inherit device configuration
-$(call inherit-product, device/oukitel/orange/device_orange.mk)
+$(call inherit-product, device/archos/persimmon/device_persimmon.mk)
# Configure dalvik heap
-$(call inherit-product, frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk)
+$(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk)
TARGET_SCREEN_HEIGHT := 1280
TARGET_SCREEN_WIDTH := 720
## Device identifier. This must come after all inclusions
-PRODUCT_DEVICE := orange
-PRODUCT_NAME := cm_orange
-PRODUCT_BRAND := oukitel
-PRODUCT_MODEL := orange
-PRODUCT_MANUFACTURER := oukitel
-
-PRODUCT_DEFAULT_LANGUAGE := ru
-PRODUCT_DEFAULT_REGION := RU
-PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
- persist.sys.timezone=Europe/Moscow
+PRODUCT_DEVICE := persimmon
+PRODUCT_NAME := cm_persimmon
+PRODUCT_BRAND := Archos
+PRODUCT_MODEL := 50 Cobalt
+PRODUCT_MANUFACTURER := Archos
diff --git a/cmhw/org/cyanogenmod/hardware/KeyDisabler.java b/cmhw/org/cyanogenmod/hardware/KeyDisabler.java
new file mode 100644
index 0000000000000000000000000000000000000000..b10186936b0456af1c1b44fc85ea227531d035df
--- /dev/null
+++ b/cmhw/org/cyanogenmod/hardware/KeyDisabler.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2014 The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.cyanogenmod.hardware;
+
+import android.util.Log;
+/*
+ * Disable capacitive keys
+ *
+ * This is intended for use on devices in which the capacitive keys
+ * can be fully disabled for replacement with a soft navbar. You
+ * really should not be using this on a device with mechanical or
+ * otherwise visible-when-inactive keys
+ */
+
+public class KeyDisabler {
+
+ private static boolean isActive = false;
+ /*
+ * All HAF classes should export this boolean.
+ * Real implementations must, of course, return true
+ */
+
+ public static boolean isSupported() { return true; }
+
+ /*
+ * Are the keys currently blocked?
+ */
+
+ public static boolean isActive() {
+ return isActive;
+ }
+
+ /*
+ * Disable capacitive keys
+ */
+
+ public static boolean setActive(boolean state) {
+ //throw new UnsupportedOperationException();
+ isActive = state;
+ Log.i("KeyDisabler", "setActive " + state);
+ return isActive;
+ }
+
+}
diff --git a/cmhw/org/cyanogenmod/hardware/VibratorHW.java b/cmhw/org/cyanogenmod/hardware/VibratorHW.java
deleted file mode 100755
index bfae08d069c91dd5ee36de5d0f1754c7042286bd..0000000000000000000000000000000000000000
--- a/cmhw/org/cyanogenmod/hardware/VibratorHW.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2013 The CyanogenMod Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.cyanogenmod.hardware;
-
-import org.cyanogenmod.hardware.util.FileUtils;
-
-/*
- * Vibrator intensity adjustment
- *
- * Exports methods to get the valid value boundaries, the
- * default and current intensities, and a method to set
- * the vibrator.
- *
- * Values exported by min/max can be the direct values required
- * by the hardware, or a local (to VibratorHW) abstraction that's
- * internally converted to something else prior to actual use. The
- * Settings user interface will normalize these into a 0-100 (percentage)
- * scale before showing them to the user, but all values passed to/from
- * the client (Settings) are in this class' scale.
- */
-
-/* This would be just "Vibrator", but it conflicts with android.os.Vibrator */
-public class VibratorHW {
-
- // Keep this synced to immvibe impl
- private static final String INTENSITY_FILE = "/sys/kernel/thunderquake_engine/level";
-
- public static boolean isSupported() {
- return true;
- }
-
- public static boolean setIntensity(int intensity) {
- return FileUtils.writeLine(INTENSITY_FILE, Integer.toString(intensity));
- }
-
- public static int getMaxIntensity() {
- return 7;
- }
-
- public static int getMinIntensity() {
- return 0;
- }
-
- public static int getWarningThreshold() {
- // actually this is rather arbitrary
- return 7;
- }
-
- public static int getCurIntensity() {
- final String result = FileUtils.readOneLine(INTENSITY_FILE);
- if (result == null) {
- return 5;
- }
-
- try {
- return Integer.parseInt(result.trim());
- } catch (final NumberFormatException ignored) {
- return 5;
- }
- }
-
- public static int getDefaultIntensity() {
- return 5;
- }
-}
diff --git a/configs/agps_profiles_conf2.xml b/configs/agps_profiles_conf2.xml
deleted file mode 100755
index 28b91c4a8a040424dbd0dd66c0a239aba818c977..0000000000000000000000000000000000000000
--- a/configs/agps_profiles_conf2.xml
+++ /dev/null
@@ -1,471 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/configs/android.hardware.consumerir.xml b/configs/android.hardware.consumerir.xml
deleted file mode 100755
index adba2f987788c3da583bb9be63bce295de7fc1b6..0000000000000000000000000000000000000000
--- a/configs/android.hardware.consumerir.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
diff --git a/configs/apns-conf.xml b/configs/apns-conf.xml
deleted file mode 100755
index b1192b21ebff83707cd4c0b460ad9fac0739f866..0000000000000000000000000000000000000000
--- a/configs/apns-conf.xml
+++ /dev/null
@@ -1,3946 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/configs/audio_device.xml b/configs/audio_device.xml
deleted file mode 100755
index ec0efda72cc7efc3f3febaafc99abf4e28ea74f2..0000000000000000000000000000000000000000
--- a/configs/audio_device.xml
+++ /dev/null
@@ -1,247 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- >
-
-
- >
-
-
- >
-
-
- >
-
-
- >
-
-
-
- >
-
-
- >
-
-
- >
-
-
- >
-
-
- >
-
-
-
- >
-
-
- >
-
-
- >
-
-
- >
-
-
- >
-
-
-
- >
-
-
- >
-
-
- >
-
-
- >
-
-
- >
-
-
- >
- >
-
-
- >
- >
-
-
diff --git a/configs/audio_effects.conf b/configs/audio_effects.conf
deleted file mode 100755
index bd5e4c0ea5a4de6818a5742c17ca9b042c42d70f..0000000000000000000000000000000000000000
--- a/configs/audio_effects.conf
+++ /dev/null
@@ -1,186 +0,0 @@
-# List of effect libraries to load. Each library element must contain a "path" element
-# giving the full path of the library .so file.
-# libraries {
-# {
-# path
-# }
-# }
-libraries {
-# This is a proxy library that will be an abstraction for
-# the HW and SW effects
-
- #proxy {
- #path /system/lib/soundfx/libeffectproxy.so
- #}
-
-# This is the SW implementation library of the effect
- #libSW {
- #path /system/lib/soundfx/libswwrapper.so
- #}
-
-# This is the HW implementation library for the effect
- #libHW {
- #path /system/lib/soundfx/libhwwrapper.so
- #}
-
- bundle {
- path /system/lib/soundfx/libbundlewrapper.so
- }
- reverb {
- path /system/lib/soundfx/libreverbwrapper.so
- }
- visualizer {
- path /system/lib/soundfx/libvisualizer.so
- }
- downmix {
- path /system/lib/soundfx/libdownmix.so
- }
- loudness_enhancer {
- path /system/lib/soundfx/libldnhncr.so
- }
- pre_processing {
- path /system/lib/soundfx/libaudiopreprocessing.so
- }
-}
-
-# Default pre-processing library. Add to audio_effect.conf "libraries" section if
-# audio HAL implements support for default software audio pre-processing effects
-#
-# pre_processing {
-# path /system/lib/soundfx/libaudiopreprocessing.so
-# }
-
-# list of effects to load. Each effect element must contain a "library" and a "uuid" element.
-# The value of the "library" element must correspond to the name of one library element in the
-# "libraries" element.
-# The name of the effect element is indicative, only the value of the "uuid" element
-# designates the effect.
-# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
-# generic effect type UUID.
-# effects {
-# {
-# library
-# uuid
-# }
-# ...
-# }
-
-effects {
-
-# additions for the proxy implementation
-# Proxy implementation
- #effectname {
- #library proxy
- #uuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
- # SW implemetation of the effect. Added as a node under the proxy to
- # indicate this as a sub effect.
- #libsw {
- #library libSW
- #uuid yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
- #} End of SW effect
-
- # HW implementation of the effect. Added as a node under the proxy to
- # indicate this as a sub effect.
- #libhw {
- #library libHW
- #uuid zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
- #}End of HW effect
- #} End of effect proxy
-
- bassboost {
- library bundle
- uuid 8631f300-72e2-11df-b57e-0002a5d5c51b
- }
- virtualizer {
- library bundle
- uuid 1d4033c0-8557-11df-9f2d-0002a5d5c51b
- }
- equalizer {
- library bundle
- uuid ce772f20-847d-11df-bb17-0002a5d5c51b
- }
- volume {
- library bundle
- uuid 119341a0-8469-11df-81f9-0002a5d5c51b
- }
- reverb_env_aux {
- library reverb
- uuid 4a387fc0-8ab3-11df-8bad-0002a5d5c51b
- }
- reverb_env_ins {
- library reverb
- uuid c7a511a0-a3bb-11df-860e-0002a5d5c51b
- }
- reverb_pre_aux {
- library reverb
- uuid f29a1400-a3bb-11df-8ddc-0002a5d5c51b
- }
- reverb_pre_ins {
- library reverb
- uuid 172cdf00-a3bc-11df-a72f-0002a5d5c51b
- }
- visualizer {
- library visualizer
- uuid d069d9e0-8329-11df-9168-0002a5d5c51b
- }
- downmix {
- library downmix
- uuid 93f04452-e4fe-41cc-91f9-e475b6d1d69f
- }
- loudness_enhancer {
- library loudness_enhancer
- uuid fa415329-2034-4bea-b5dc-5b381c8d1e2c
- }
- agc {
- library pre_processing
- uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b
- }
- aec {
- library pre_processing
- uuid bb392ec0-8d4d-11e0-a896-0002a5d5c51b
- }
- ns {
- library pre_processing
- uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b
- }
-}
-# Audio preprocessor configurations.
-# The pre processor configuration consists in a list of elements each describing
-# pre processor settings for a given input source. Valid input source names are:
-# "mic", "camcorder", "voice_recognition", "voice_communication"
-# Each input source element contains a list of effects elements. The name of the effect
-# element must be the name of one of the effects in the "effects" list of the file.
-# Each effect element may optionally contain a list of parameters and their
-# default value to apply when the pre processor effect is created.
-# A parameter is defined by a "param" element and a "value" element. Each of these elements
-# consists in one or more elements specifying a type followed by a value.
-# The types defined are: "int", "short", "float", "bool" and "string"
-# When both "param" and "value" are a single int, a simple form is allowed where just
-# the param and value pair is present in the parameter description
-# pre_processing {
-# {
-# {
-# {
-# param {
-# int|short|float|bool|string
-# [ int|short|float|bool|string ]
-# ...
-# }
-# value {
-# int|short|float|bool|string
-# [ int|short|float|bool|string ]
-# ...
-# }
-# }
-# { }
-# ...
-# }
-# ...
-# }
-# ...
-# }
-
-#
-# TODO: add default audio pre processor configurations after debug and tuning phase
-#
diff --git a/configs/audio_policy.conf b/configs/audio_policy.conf
deleted file mode 100755
index 5d514ee003a2084906fd1066768cd3440bf8321d..0000000000000000000000000000000000000000
--- a/configs/audio_policy.conf
+++ /dev/null
@@ -1,173 +0,0 @@
-#
-# Audio policy configuration for generic device builds (goldfish audio HAL - emulator)
-#
-
-# Global configuration section: lists input and output devices always present on the device
-# as well as the output device selected by default.
-# Devices are designated by a string that corresponds to the enum in audio.h
-
-#global_configuration {
-# attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE
-# default_output_device AUDIO_DEVICE_OUT_SPEAKER
-# attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_REMOTE_SUBMIX|AUDIO_DEVICE_IN_FM
-#}
-
-# audio hardware module section: contains descriptors for all audio hw modules present on the
-# device. Each hw module node is named after the corresponding hw module library base name.
-# For instance, "primary" corresponds to audio.primary..so.
-# The "primary" module is mandatory and must include at least one output with
-# AUDIO_OUTPUT_FLAG_PRIMARY flag.
-# Each module descriptor contains one or more output profile descriptors and zero or more
-# input profile descriptors. Each profile lists all the parameters supported by a given output
-# or input stream category.
-# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding
-# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n".
-
-audio_hw_modules {
- primary {
- global_configuration {
- attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE
- default_output_device AUDIO_DEVICE_OUT_SPEAKER
- attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_FM|AUDIO_DEVICE_IN_VOICE_CALL
- audio_hal_version 3.0
- }
- devices {
- headset {
- type AUDIO_DEVICE_OUT_WIRED_HEADSET
- gains {
- gain_1 {
- mode AUDIO_GAIN_MODE_JOINT
- channel_mask AUDIO_CHANNEL_OUT_STEREO
- min_value_mB -6400
- max_value_mB 0
- default_value_mB 0
- step_value_mB 100
- min_ramp_ms 0
- max_ramp_ms 0
- }
- }
- }
- headphone {
- type AUDIO_DEVICE_OUT_WIRED_HEADPHONE
- gains {
- gain_1 {
- mode AUDIO_GAIN_MODE_JOINT
- channel_mask AUDIO_CHANNEL_OUT_STEREO
- min_value_mB -6400
- max_value_mB 0
- default_value_mB 0
- step_value_mB 100
- min_ramp_ms 0
- max_ramp_ms 0
- }
- }
- }
- }
- outputs {
- primary {
- sampling_rates 44100
- channel_masks AUDIO_CHANNEL_OUT_STEREO
- formats AUDIO_FORMAT_PCM_32_BIT|AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_FM_TX|AUDIO_DEVICE_OUT_DEFAULT
- flags AUDIO_OUTPUT_FLAG_PRIMARY
- gains {
- gain_1 {
- mode AUDIO_GAIN_MODE_JOINT
- channel_mask AUDIO_CHANNEL_OUT_STEREO
- min_value_mB -6400
- max_value_mB 0
- default_value_mB 0
- step_value_mB 100
- min_ramp_ms 0
- max_ramp_ms 0
- }
- }
- }
- }
- inputs {
- primary {
- sampling_rates 48000
- channel_masks AUDIO_CHANNEL_IN_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_IN_COMMUNICATION|AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_AMBIENT|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_AUX_DIGITAL|AUDIO_DEVICE_IN_MATV|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_ALL_SCO|AUDIO_DEVICE_IN_FM|AUDIO_DEVICE_IN_DEFAULT
- }
- }
- }
- a2dp {
- global_configuration {
- audio_hal_version 2.0
- }
- outputs {
- a2dp {
- sampling_rates 44100
- channel_masks AUDIO_CHANNEL_OUT_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_OUT_ALL_A2DP
- }
- compress_offload {
- sampling_rates 8000|11025|16000|22050|32000|44100|48000
- channel_masks AUDIO_CHANNEL_OUT_MONO|AUDIO_CHANNEL_OUT_STEREO
- formats AUDIO_FORMAT_AAC|AUDIO_FORMAT_MP3
- devices AUDIO_DEVICE_OUT_ALL_A2DP
- flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD
- }
- }
- inputs {
- a2dp {
- sampling_rates 44100
- channel_masks AUDIO_CHANNEL_IN_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_IN_BLUETOOTH_A2DP
- }
- }
- }
- usb {
- global_configuration {
- audio_hal_version 2.0
- }
- outputs {
- usb_accessory {
- sampling_rates 44100
- channel_masks AUDIO_CHANNEL_OUT_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_OUT_USB_ACCESSORY
- }
- usb_device {
- sampling_rates 44100
- channel_masks AUDIO_CHANNEL_OUT_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_OUT_USB_DEVICE
- }
- }
- inputs {
- usb_device {
- sampling_rates 44100
- channel_masks AUDIO_CHANNEL_IN_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_IN_USB_DEVICE
- }
- }
- }
- r_submix {
- global_configuration {
- attached_input_devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
- audio_hal_version 2.0
- }
- outputs {
- r_submix {
- sampling_rates 48000
- channel_masks AUDIO_CHANNEL_OUT_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX
- }
- }
- inputs {
- r_submix {
- sampling_rates 48000
- channel_masks AUDIO_CHANNEL_IN_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
- }
- }
- }
-}
diff --git a/configs/ecc_list.xml b/configs/ecc_list.xml
deleted file mode 100755
index 04cb3c72c2b0e76b93fd559f0f6a919a6198d370..0000000000000000000000000000000000000000
--- a/configs/ecc_list.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/configs/egl.cfg b/configs/egl.cfg
deleted file mode 100755
index cadf420a64620a1a1b2dbbd7d1620e99dbb9e717..0000000000000000000000000000000000000000
--- a/configs/egl.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-# NOTICE: This is an autogenerated file, do not edit\n
-0 0 android
-0 1 mali
diff --git a/configs/hostapd/hostapd.accept b/configs/hostapd/hostapd.accept
deleted file mode 100755
index 6b167e01a3d8ca29e7c0e34a8925b691a8b04935..0000000000000000000000000000000000000000
--- a/configs/hostapd/hostapd.accept
+++ /dev/null
@@ -1,3 +0,0 @@
-# List of MAC addresses that are allowed to authenticate (IEEE 802.11)
-# with the AP. Optional VLAN ID can be assigned for clients based on the
-# MAC address if dynamic VLANs (hostapd.conf dynamic_vlan option) are used.
\ No newline at end of file
diff --git a/configs/hostapd/hostapd.deny b/configs/hostapd/hostapd.deny
deleted file mode 100755
index c37336b57e422cb9ab47063e0056b8dfe8d5c21f..0000000000000000000000000000000000000000
--- a/configs/hostapd/hostapd.deny
+++ /dev/null
@@ -1,2 +0,0 @@
-# List of MAC addresses that are not allowed to authenticate (IEEE 802.11)
-# with the AP.
\ No newline at end of file
diff --git a/configs/hostapd/hostapd_default.conf b/configs/hostapd/hostapd_default.conf
deleted file mode 100755
index 212ba877645e55ebbbf4601f1610a029653217b6..0000000000000000000000000000000000000000
--- a/configs/hostapd/hostapd_default.conf
+++ /dev/null
@@ -1,81 +0,0 @@
-##### hostapd configuration file ##############################################
-# Empty lines and lines starting with # are ignored
-
-# AP netdevice name (without 'ap' postfix, i.e., wlan0 uses wlan0ap for
-# management frames); ath0 for madwifi
-interface=wlan0
-
-# Driver interface type (hostap/wired/madwifi/prism54/test/none/nl80211/bsd);
-# default: hostap). nl80211 is used with all Linux mac80211 drivers.
-# Use driver=none if building hostapd as a standalone RADIUS server that does
-# not control any wireless/wired driver.
-driver=nl80211
-
-# hostapd event logger configuration
-#
-# Two output method: syslog and stdout (only usable if not forking to
-# background).
-#
-# Module bitfield (ORed bitfield of modules that will be logged; -1 = all
-# modules):
-# bit 0 (1) = IEEE 802.11
-# bit 1 (2) = IEEE 802.1X
-# bit 2 (4) = RADIUS
-# bit 3 (8) = WPA
-# bit 4 (16) = driver interface
-# bit 5 (32) = IAPP
-# bit 6 (64) = MLME
-#
-# Levels (minimum value for logged events):
-# 0 = verbose debugging
-# 1 = debugging
-# 2 = informational messages
-# 3 = notification
-# 4 = warning
-#
-logger_syslog=-1
-logger_syslog_level=2
-logger_stdout=-1
-logger_stdout_level=2
-
-# Dump file for state information (on SIGUSR1)
-dump_file=/tmp/hostapd.dump
-
-# Interface for separate control program. If this is specified, hostapd
-# will create this directory and a UNIX domain socket for listening to requests
-# from external programs (CLI/GUI, etc.) for status information and
-# configuration. The socket file will be named based on the interface name, so
-# multiple hostapd processes/interfaces can be run at the same time if more
-# than one interface is used.
-# /var/run/hostapd is the recommended directory for sockets and by default,
-# hostapd_cli will use it when trying to connect with hostapd.
-ctrl_interface=/data/misc/wifi/hostapd
-
-##### IEEE 802.11 related configuration #######################################
-
-# SSID to be used in IEEE 802.11 management frames
-ssid=AndroidAP
-
-# Operation mode (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g,
-# n = IEEE 802.11n, g_only = IEEE 802.11g_only, n_only = IEEE 802.11n_only,
-# Default: IEEE 802.11n
-hw_mode=g
-
-# Channel number (IEEE 802.11)
-# (default: 0, i.e., not set)
-# Please note that some drivers (e.g., madwifi) do not use this value from
-# hostapd and the channel will need to be configuration separately with
-# iwconfig.
-channel=6
-
-# ieee80211n: Whether IEEE 802.11n (HT) is enabled
-# 0 = disabled (default)
-# 1 = enabled
-# Note: You will also need to enable WMM for full HT functionality.
-ieee80211n=1
-
-# Accept/deny lists are read from separate files (containing list of
-# MAC addresses, one per line). Use absolute path name to make sure that the
-# files can be read on SIGHUP configuration reloads.
-accept_mac_file=/data/hostapd/hostapd.accept
-deny_mac_file=/data/hostapd/hostapd.deny
\ No newline at end of file
diff --git a/configs/platform.xml b/configs/platform.xml
deleted file mode 100755
index 1ec2dd9899944d87be330845aa47e58604df96f2..0000000000000000000000000000000000000000
--- a/configs/platform.xml
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/configs/spn-conf.xml b/configs/spn-conf.xml
deleted file mode 100755
index 1574e4cac2d84242d086f4e59193971de8f9117e..0000000000000000000000000000000000000000
--- a/configs/spn-conf.xml
+++ /dev/null
@@ -1,1055 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/configs/thermal/.ht120.mtc b/configs/thermal/.ht120.mtc
deleted file mode 100755
index 241f619a9f11353757839491f9e0f71a42175727..0000000000000000000000000000000000000000
--- a/configs/thermal/.ht120.mtc
+++ /dev/null
@@ -1,67 +0,0 @@
-/qtrg4s slopnhv4s s"sdrx1x$zz!t
- !"
-/qtrg4s slopnhv4s s"sqolg2y% su
- !"
-/qtrg4s slopnhv4s s"sccwxjx%5!yttvx
- !"
-/qtrg4s slopnhv4s s"sqc0w#yy "
- !"
-/qtrg4s slopnhv4s s"sbde1x$zz!t
- !"
-/qtrg4s slopnhv4s s"sxow1x$zz!t
- !"
-/qtrg4s slopnhv4s s6cm/nwm lxwo23
- !"
-/qtrg4s slopnhv4s s6cm/nwm lxwo24
- !"
-/qtrg4s slopnhv4s s6cm/nwm lxwo25
- !"
-/qtrg4jyq$es1wljxtiu/u!exxewi an
-PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"3$%
-/qtrg4jyq$es1wljxtiu/u!exxvhgyascp
-PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"4$%
-/qtrg4jyq$es1wljxtiu/dnpyyz
-0!634%778)112#656'990!634%&'(
-/qtrg4jyq$es1wljxtiu/u!ftz
-1!34;567(9 nvnxxiw"6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"845&8
-/qtrg4jyq$es1wljxtiu/u!sqni
-1!379567(9 nvnxxvtql-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#5567(
-/qtrg4jyq$es1wljxtiu/u!eeyzlz'
-1!354567(9 nvnxxhh!"es 0w#yy " 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&8890!
-/qtrg4jyq$es1wljxtiu/u!se
-1!354567(9 nvnxxvh5!yttvx%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!3345&
-/qtrg4jyq$es1wljxtiu/u!dfg
-0!34;567(9 nvnxxgij6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$
-/qtrg4jyq$es1wljxtiu/u!zqy
-1!354567(9 nvnxx"t!6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"4456'
-/qtrg4jyq$es1wljxtiu/u!exx
-1!354567(9 nvn1hr4s!hvvgs!t78)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789
-/qtrg4jyq$es1wljxtiu/u!9767
-1!354567(9 nvn1hr4s!hvvgs!t79)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789
-/qtrg4jyq$es1wljxtiu/u!exxvh
-1!354567(9 nvn1hr4s!hvvgs!t7:)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789
-/qtrg4jyq$es1wljxtiu/u!ww6
-0!434567(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(
-/qtrg4jyq$es1wljxtiu/u!ww8
-0!434567(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(
-/qtrg4jyq$es1wljxtiu/u!ww9
-0!434567(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(
-/qtrg4jyq$es1wljxtiu/u!ww:
-0!434567(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(
-/qtrg4s s"z0owoyyjx#
-mbaois&8() !"#$%&
-/qtrg4s s"z0owoyywurc
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyyii"tft!
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyywi
-mbaois&8() !"#$%&'() !"#
-/qtrg4s s"z0owoyy#u"
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyyHX
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyyi"lk
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyyi!!merd
-mbaois&;() !"#$%&'()
-EPH
\ No newline at end of file
diff --git a/configs/thermal/.thermal_policy_00 b/configs/thermal/.thermal_policy_00
deleted file mode 100755
index 315427811439740b747e5e0bc61b3ce354150375..0000000000000000000000000000000000000000
--- a/configs/thermal/.thermal_policy_00
+++ /dev/null
@@ -1,97 +0,0 @@
-/qtrg4s slopnhv4s s"sdrx1x$zz!t
- !"
-/qtrg4s slopnhv4s s6cm/vlzzkw%n12
- !"
-/qtrg4s slopnhv4iw"haecsxn!lg9
-EYKW$<678)
-/qtrg4s slopnhv4s s"sqolg2y% su
- !"
-/qtrg4s slopnhv4iw":0
-EYKW$76789 !
-/qtrg4s slopnhv4s s"sccwxjx%5!yttvx
- !"
-/qtrg4s slopnhv4s s6cm/vlzzkw%n13
- !"
-/qtrg4s slopnhv4s s"sxow1x$zz!t
- !"
-/qtrg4s slopnhv4s s"sqc0w#yy "
- !"
-/qtrg4s slopnhv4s s6cm/eghz7:
-EYKW$:678)
-/qtrg4s slopnhv4s s6cm/eghz79
-EYKW$7678)
-/qtrg4s slopnhv4s s6cm/eghz78
-EYKW$7678)
-/qtrg4s slopnhv4s s6cm/vlzzkw%n14
- !"
-/qtrg4s slopnhv4s s6cm/vlzzkw%n14
- !"
-/qtrg4s slopnhv4s s6cm/pyyz7:
-EYKW$6?@A)
-/qtrg4s slopnhv4s s6cm/pyyz79
-EYKW$6?@A)
-/qtrg4s slopnhv4s s6cm/pyyz78
-EYKW$6?@A)
-/qtrg4s slopnhv4s s6cm/eehqsqphu25
- !"
-/qtrg4s slopnhv4s s6cm/eehqsqphu26
- !"
-/qtrg4s slopnhv4s s6cm/nwm lxwo23
- !"
-/qtrg4jyq$es1wljxtiu/u!exxewi an
-PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"3$%&'()
-/qtrg4jyq$es1wljxtiu/u!exxvhgyascp
-PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"4$%&'()
-/qtrg4jyq$es1wljxtiu/dneghz
-0!884%:<8)212#$%&'() !"#$
-/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj
-0!5845&8=)31"4$6678)3623$767(:612#$%&'()
-/qtrg4jyq$es1wljxtiu/dnpyyz
-0!634%778)112#656'990!48956'() !"#$%
-/qtrg4jyq$es1wljxtiu/dnfxr
-1!:8456'>?012#7=?@A)44;<=%=<890!83456':<32;9$8>78)1:3<=<&:890!"#$%
-/qtrg4jyq$es1wljxtiu/u!ftz
-3!34;567(9 nvnxxiw"6szuuwy&889012#4%s s6cm/vlzzkw%n12#:;678)0!esydgkiytjxhc5&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$6678)1
-/qtrg4jyq$es1wljxtiu/u!sqni
-2!379567(9 nvnxxvtql-t vvxz'9:0123$5&jx#11"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$6678)
-/qtrg4jyq$es1wljxtiu/u!eeyzlz'
-3!83456'8)mumwwgg !nrz/v"xxz!)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789
-/qtrg4jyq$es1wljxtiu/u!se
-1!354567(9 nvn1hr4 quufr s68(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$7678)
-/qtrg4jyq$es1wljxtiu/u!zqy
-1!354567(9 nvnxx"t!6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"5456'
-/qtrg4jyq$es1wljxtiu/u!exx
-4!;8456'8)mumwwug4 'ssuw$:7789 1"pxp3jt6bdew47&;A901"3$rzr5ll.dfgy68(<4123$5&t!t-dn0fhi 89 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$6678)
-/qtrg4jyq$es1wljxtiu/u!9767
-1!354567(9 nvn1hr4 quufr s69(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$6678)
-/qtrg4jyq$es1wljxtiu/u!exxvh
-4!354567(9 nvn1hr4 quufr s69(?2:;;$5&t!t-dn0qzz 8; 72<==&7(vtl/fp2s!!"02"8<>??(9 nvn1hr4u#tu23$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(:012#
-/qtrg4jyq$es1wljxtiu/u!ww6
-1!434567(9 nvn1hr4jjclnlkmz7:)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%8789
-/qtrg4jyq$es1wljxtiu/u!ww7
-1!434567(9 nvn1hr4jjclnlkmz7;)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%8789
-/qtrg4jyq$es1wljxtiu/u!ww8
-1!434567(9 nvn1hr4s!hvvgs!t78)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%8789
-/qtrg4s s"z0owoyyjx#
-mbaois&8() !"#$%&
-/qtrg4s s"z0owoyywurc
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyyii"tft!
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyywi
-mbaois&8() !"#$%&'() !"#
-/qtrg4s s"z0owoyy#u"
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyyHX
-mbaois&<() !"#$%&'()
-/qtrg4s s"z0owoyyi"lk
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyyi!!merd
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyy8
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyy9
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyy:
-mbaois&8() !"#$%&'()
-EPH
diff --git a/configs/thermal/thermal.conf b/configs/thermal/thermal.conf
deleted file mode 100755
index 85d12672286f93449e05e98e79ab120ecca8f4aa..0000000000000000000000000000000000000000
--- a/configs/thermal/thermal.conf
+++ /dev/null
@@ -1,97 +0,0 @@
-/qtrg4s slopnhv4s s"sdrx1x$zz!t
- !"
-/qtrg4s slopnhv4s s6cm/vlzzkw%n12
- !"
-/qtrg4s slopnhv4iw"haecsxn!lg9
-EYKW$<678)
-/qtrg4s slopnhv4s s"sqolg2y% su
- !"
-/qtrg4s slopnhv4iw":0
-EYKW$76789 !
-/qtrg4s slopnhv4s s"sccwxjx%5!yttvx
- !"
-/qtrg4s slopnhv4s s6cm/vlzzkw%n13
- !"
-/qtrg4s slopnhv4s s"sxow1x$zz!t
- !"
-/qtrg4s slopnhv4s s"sqc0w#yy "
- !"
-/qtrg4s slopnhv4s s6cm/eghz7:
-EYKW$:678)
-/qtrg4s slopnhv4s s6cm/eghz79
-EYKW$7678)
-/qtrg4s slopnhv4s s6cm/eghz78
-EYKW$7678)
-/qtrg4s slopnhv4s s6cm/vlzzkw%n14
- !"
-/qtrg4s slopnhv4s s6cm/vlzzkw%n14
- !"
-/qtrg4s slopnhv4s s6cm/pyyz7:
-EYKW$6?@A)
-/qtrg4s slopnhv4s s6cm/pyyz79
-EYKW$6?@A)
-/qtrg4s slopnhv4s s6cm/pyyz78
-EYKW$6?@A)
-/qtrg4s slopnhv4s s6cm/eehqsqphu25
- !"
-/qtrg4s slopnhv4s s6cm/eehqsqphu26
- !"
-/qtrg4s slopnhv4s s6cm/nwm lxwo23
- !"
-/qtrg4jyq$es1wljxtiu/u!exxewi an
-PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"3$%&'()
-/qtrg4jyq$es1wljxtiu/u!exxvhgyascp
-PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"4$%&'()
-/qtrg4jyq$es1wljxtiu/dneghz
-0!884%:<8)212#$%&'() !"#$
-/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj
-0!5845&8=)31"4$6678)3623$767(:612#$%&'()
-/qtrg4jyq$es1wljxtiu/dnpyyz
-0!634%778)112#656'990!48956'() !"#$%
-/qtrg4jyq$es1wljxtiu/dnfxr
-1!:8456'?;012#7>?@A)42;<=%=<890!85456';=4:;7$;;78)346<=9&==90!"#$%
-/qtrg4jyq$es1wljxtiu/u!ftz
-3!34;567(9 nvnxxiw"6szuuwy&889012#4%s s6cm/vlzzkw%n12#;7678)0!esydgkiytjxhc5&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$6678)1
-/qtrg4jyq$es1wljxtiu/u!sqni
-2!379567(9 nvnxxvtql-t vvxz'9:0123$5&jx#11"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$6678)
-/qtrg4jyq$es1wljxtiu/u!eeyzlz'
-3!83456'8)mumwwgg !nrz/v"xxz!)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789
-/qtrg4jyq$es1wljxtiu/u!se
-1!354567(9 nvn1hr4 quufr s68(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$7678)
-/qtrg4jyq$es1wljxtiu/u!zqy
-1!354567(9 nvnxx"t!6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"5456'
-/qtrg4jyq$es1wljxtiu/u!exx
-4!;8456'8)mumwwug4 'ssuw$:7789 1"pxp3jt6bdew47&;A901"3$rzr5ll.dfgy68(<4123$5&t!t-dn0fhi 89 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$6678)
-/qtrg4jyq$es1wljxtiu/u!9767
-1!354567(9 nvn1hr4 quufr s69(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$6678)
-/qtrg4jyq$es1wljxtiu/u!exxvh
-4!354567(9 nvn1hr4 quufr s69(?2:;;$5&t!t-dn0qzz 8; 72<==&7(vtl/fp2s!!"02"8<>??(9 nvn1hr4u#tu23$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(:012#
-/qtrg4jyq$es1wljxtiu/u!ww6
-1!434567(9 nvn1hr4jjclnlkmz7:)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%8789
-/qtrg4jyq$es1wljxtiu/u!ww7
-1!434567(9 nvn1hr4jjclnlkmz7;)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%8789
-/qtrg4jyq$es1wljxtiu/u!ww8
-1!434567(9 nvn1hr4s!hvvgs!t78)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%8789
-/qtrg4s s"z0owoyyjx#
-mbaois&8() !"#$%&
-/qtrg4s s"z0owoyywurc
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyyii"tft!
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyywi
-mbaois&8() !"#$%&'() !"#
-/qtrg4s s"z0owoyy#u"
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyyHX
-mbaois&<() !"#$%&'()
-/qtrg4s s"z0owoyyi"lk
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyyi!!merd
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyy8
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyy9
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyy:
-mbaois&8() !"#$%&'()
-EPH
diff --git a/configs/thermal/thermal.off.conf b/configs/thermal/thermal.off.conf
deleted file mode 100755
index 525cb1b522386b6690bb1911ba3b1f6f9435bef5..0000000000000000000000000000000000000000
--- a/configs/thermal/thermal.off.conf
+++ /dev/null
@@ -1,91 +0,0 @@
-/qtrg4s slopnhv4s s"sdrx1x$zz!t
- !"
-/qtrg4s slopnhv4s s6cm/vlzzkw%n12
- !"
-/qtrg4s slopnhv4iw"92
- !"
-/qtrg4s slopnhv4iw"haecsxn!lg9
-EYKW$7;789 !
-/qtrg4s slopnhv4s s"sqolg2y% su
- !"
-/qtrg4s slopnhv4s s"sccwxjx%5!yttvx
- !"
-/qtrg4s slopnhv4s s"sqc0w#yy "
- !"
-/qtrg4s slopnhv4s s"sbde1x$zz!t
- !"
-/qtrg4s slopnhv4s s"sxow1x$zz!t
- !"
-/qtrg4s slopnhv4s s6cm/vlzzkw%n13
- !"
-/qtrg4s slopnhv4s s6cm/vlzzkw%n14
- !"
-/qtrg4s slopnhv4s s6cm/eehqsqphu24
- !"
-/qtrg4s slopnhv4s s6cm/eehqsqphu25
- !"
-/qtrg4s slopnhv4s s6cm/eehqsqphu26
- !"
-/qtrg4s slopnhv4s s6cm/nwm lxwo23
- !"
-/qtrg4s slopnhv4s s6cm/nwm lxwo24
- !"
-/qtrg4jyq$es1wljxtiu/u!exxewi an
-PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"3$%
-/qtrg4jyq$es1wljxtiu/u!exxvhgyascp
-PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"4$%
-/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj
-0!5345&8=)21"84%?78)4123$;67(;112#$
-/qtrg4jyq$es1wljxtiu/dnpyyz
-0!634%778)112#656'990!634%&'(
-/qtrg4jyq$es1wljxtiu/u!ftz
-4!34;567(9 nvnxxiw"6szuuwy&889012#4%s s6cm/vlzzkw%n12#=:678)0!esy58'@>012#4%iw"haecsxn!lg9 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$:67(:
-/qtrg4jyq$es1wljxtiu/u!sqni
-1!379567(9 nvnxxvtql-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#5567(
-/qtrg4jyq$es1wljxtiu/u!eeyzlz'
-1!83456'8)mumwwgg !nrz/v"xxz!)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789
-/qtrg4jyq$es1wljxtiu/u!se
-1!354567(9 nvnxxvh5!yttvx%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!3345&
-/qtrg4jyq$es1wljxtiu/u!dfg
-0!34;567(9 nvnxxgij6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$
-/qtrg4jyq$es1wljxtiu/u!zqy
-1!354567(9 nvnxx"t!6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"4456'
-/qtrg4jyq$es1wljxtiu/u!exx
-1!;8456'8)mum0gq3zp#teqzr57'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#5567(
-/qtrg4jyq$es1wljxtiu/u!9767
-1!354567(9 nvn1hr4 quufr s69(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$6678)
-/qtrg4jyq$es1wljxtiu/u!exxvh
-1!434567(9 nvn1hr4jjclnlkmz79)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789
-/qtrg4jyq$es1wljxtiu/u!ww6
-1!434567(9 nvn1hr4jjclnlkmz7:)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789
-/qtrg4jyq$es1wljxtiu/u!ww8
-1!434567(9 nvn1hr4jjclnlkmz7;)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789
-/qtrg4jyq$es1wljxtiu/u!ww9
-1!434567(9 nvn1hr4s!hvvgs!t78)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789
-/qtrg4jyq$es1wljxtiu/u!ww:
-1!434567(9 nvn1hr4s!hvvgs!t79)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789
-/qtrg4s s"z0owoyyjx#
-mbaois&8() !"#$%&
-/qtrg4s s"z0owoyywurc
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyyii"tft!
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyywi
-mbaois&8() !"#$%&'() !"#
-/qtrg4s s"z0owoyy#u"
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyyHX
-mbaois&;() !"#$%&'()
-/qtrg4s s"z0owoyyi"lk
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyyi!!merd
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyy8
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyy:
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyy;
-mbaois&8() !"#$%&'()
-/qtrg4s s"z0owoyy<
-mbaois&8() !"#$%&'()
-EPH
diff --git a/device_orange.mk b/device_orange.mk
deleted file mode 100755
index be3bb8fbc9bdd5791bbcd393355d7b56b55ec2bc..0000000000000000000000000000000000000000
--- a/device_orange.mk
+++ /dev/null
@@ -1,193 +0,0 @@
-$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)
-$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
-
-# The gps config appropriate for this device
-$(call inherit-product, device/common/gps/gps_us_supl.mk)
-$(call inherit-product, vendor/oukitel/orange/orange-vendor-blobs.mk)
-
-PRODUCT_LOCALES := ru_RU en_US uk_UA
-PRODUCT_AAPT_CONFIG := normal hdpi
-PRODUCT_AAPT_PREF_CONFIG := hdpi
-DEVICE_PACKAGE_OVERLAYS += device/oukitel/orange/overlay
-TARGET_OTA_ASSERT_DEVICE := k4000,K4000,orange
-CM_BUILDTYPE :=NIGHTLY
-
-ifeq ($(TARGET_PREBUILT_KERNEL),)
- LOCAL_KERNEL := device/oukitel/orange/prebuilt/kernel
-else
- LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL)
-endif
-
-#Xlog
-PRODUCT_PACKAGES += \
- libxlog
-
-# Network dependency
-PRODUCT_PACKAGES += \
- libifaddrs
-
-# init.rc's
-PRODUCT_COPY_FILES += \
- device/oukitel/orange/rootdir/init.mt6735.rc:root/init.mt6735.rc \
- device/oukitel/orange/rootdir/init.xlog.rc:root/init.xlog.rc \
- device/oukitel/orange/rootdir/init.mt6735.usb.rc:root/init.mt6735.usb.rc \
- device/oukitel/orange/rootdir/init.recovery.mt6735.rc:root/init.recovery.mt6735.rc \
- device/oukitel/orange/rootdir/init.project.rc:root/init.project.rc \
- device/oukitel/orange/rootdir/factory_init.rc:root/factory_init.rc \
- device/oukitel/orange/rootdir/factory_init.project.rc:root/factory_init.project.rc \
- device/oukitel/orange/rootdir/init.ssd.rc:root/init.ssd.rc \
- device/oukitel/orange/rootdir/init.trace.rc:root/init.trace.rc \
- device/oukitel/orange/rootdir/init.modem.rc:root/init.modem.rc \
- device/oukitel/orange/rootdir/fstab.mt6735:root/fstab.mt6735 \
- device/oukitel/orange/rootdir/ueventd.mt6735.rc:root/ueventd.mt6735.rc \
- device/oukitel/orange/rootdir/meta_init.rc:root/meta_init.rc \
- device/oukitel/orange/rootdir/meta_init.project.rc:root/meta_init.project.rc \
- device/oukitel/orange/rootdir/meta_init.modem.rc:root/meta_init.modem.rc \
- device/oukitel/orange/rootdir/meta_init.modem.rc:root/factory_init.rc \
- device/oukitel/orange/rootdir/meta_init.modem.rc:root/factory_init.project.rc \
- device/oukitel/orange/rootdir/init.rc:root/init.rc
-
-# hardware specifics
-PRODUCT_COPY_FILES += \
- frameworks/native/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.xml \
- frameworks/native/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml \
- frameworks/native/data/etc/android.software.sip.xml:system/etc/permissions/android.software.sip.xml \
- frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:system/etc/permissions/android.hardware.camera.flash-autofocus.xml \
- frameworks/native/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml \
- frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
- frameworks/native/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml \
- frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:system/etc/permissions/android.hardware.sensor.accelerometer.xml \
- frameworks/native/data/etc/android.hardware.sensor.light.xml:system/etc/permissions/android.hardware.sensor.light.xml \
- frameworks/native/data/etc/android.hardware.sensor.proximity.xml:system/etc/permissions/android.hardware.sensor.proximity.xml \
- frameworks/native/data/etc/android.hardware.touchscreen.multitouch.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.xml \
- frameworks/native/data/etc/android.hardware.touchscreen.xml:system/etc/permissions/android.hardware.touchscreen.xml \
- frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml \
- frameworks/native/data/etc/android.hardware.bluetooth.xml:system/etc/permissions/android.hardware.bluetooth.xml \
- frameworks/native/data/etc/android.hardware.bluetooth_le.xml:system/etc/permissions/android.hardware.bluetooth_le.xml \
- frameworks/native/data/etc/android.hardware.telephony.gsm.xml:system/etc/permissions/android.hardware.telephony.gsm.xml \
- frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml
-
-# CM's Snap camera
-PRODUCT_PACKAGES += \
- Snap
-
-# Torch
-PRODUCT_PACKAGES += \
- Torch
-
-# MTK's Engineer Mode
-PRODUCT_PACKAGES += \
- EngineerMode
-
-# Charger
-PRODUCT_PACKAGES += \
- charger_res_images
-
-# Gralloc
-PRODUCT_PACKAGES += \
- libgralloc_extra
-
-# Bluetooth
-PRODUCT_PACKAGES += \
- libbt-vendor
-
-# Audio
-PRODUCT_PACKAGES += \
- audio.a2dp.default \
- audio_policy.default \
- audio_policy.stub \
- audio.r_submix.default \
- audio.usb.default \
- libaudio-resampler \
- tinymix \
- libtinyalsa \
- libtinycompress
-
-# Audio profiles used to address the correct audio devices for headset, etc.
-PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/configs/media_codecs.xml:system/etc/media_codecs.xml \
- $(LOCAL_PATH)/configs/audio_device.xml:system/etc/audio_device.xml \
- $(LOCAL_PATH)/configs/audio_policy.conf:system/etc/audio_policy.conf \
- $(LOCAL_PATH)/configs/audio_effects.conf:system/etc/audio_effects.conf
-
-# Wifi
-PRODUCT_PACKAGES += \
- lib_driver_cmd_mt66xx \
- libwifi-hal-mt66xx \
- wifi_hal \
- libwpa_client \
- hostapd \
- hostapd_cli \
- dhcpcd.conf \
- wpa_supplicant \
- wpa_supplicant.conf
-
-PRODUCT_PACKAGES += \
- libnl_2 \
- libtinyxml
-
-# Live Display
-PRODUCT_PACKAGES += \
- libjni_livedisplay
-
-# Telecom
-PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/configs/apns-conf.xml:system/etc/apns-conf.xml \
- $(LOCAL_PATH)/configs/ecc_list.xml:system/etc/ecc_list.xml \
- $(LOCAL_PATH)/configs/spn-conf.xml:system/etc/spn-conf.xml
-
-# GPS
-PRODUCT_COPY_FILES += \
- device/oukitel/orange/configs/agps_profiles_conf2.xml:system/etc/agps_profiles_conf2.xml
-
-# FM Radio
-PRODUCT_PACKAGES += \
- FmRadio \
- libfmjni \
- libfmmt6620 \
- libfmmt6628 \
- libfmmt6627 \
- libfmmt6630 \
- libfmcust
-
-# Media
-PRODUCT_COPY_FILES += \
- frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
- frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
- frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml
-
-PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/configs/media_codecs.xml:system/etc/media_codecs.xml \
- $(LOCAL_PATH)/configs/media_profiles.xml:system/etc/media_profiles.xml
-
-PRODUCT_COPY_FILES += \
- device/oukitel/orange/rootdir/etc/hostapd_default.conf:system/etc/hostapd/hostapd_default.conf \
- device/oukitel/orange/configs/android.hardware.consumerir.xml:system/etc/permissions/android.hardware.consumerir.xml \
-
-# Thermal
-PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/configs/thermal/thermal.conf:system/etc/.tp/thermal.conf \
- $(LOCAL_PATH)/configs/thermal/thermal.off.conf:system/etc/.tp/thermal.off.conf \
- $(LOCAL_PATH)/configs/thermal/.ht120.mtc:system/etc/.tp/.ht120.mtc \
- $(LOCAL_PATH)/configs/thermal/.thermal_policy_00:system/etc/.tp/.thermal_policy_00
-
-# Set default player to AwesomePlayer
-PRODUCT_PROPERTY_OVERRIDES += \
- persist.sys.media.use-awesome=true
-
-# limit dex2oat threads to improve thermals
-PRODUCT_PROPERTY_OVERRIDES += \
- dalvik.vm.boot-dex2oat-threads=4 \
- dalvik.vm.dex2oat-threads=2 \
- dalvik.vm.image-dex2oat-threads=4
-
-$(call inherit-product, build/target/product/full.mk)
-
-ADDITIONAL_DEFAULT_PROPERTIES += \
- ro.secure=0 \
- ro.allow.mock.location=1 \
- ro.debuggable=1 \
- ro.adb.secure=0 \
- persist.service.acm.enable=0 \
- ro.oem_unlock_supported=1 \
- persist.sys.usb.config=mtp \
diff --git a/device_persimmon.mk b/device_persimmon.mk
new file mode 100644
index 0000000000000000000000000000000000000000..11d8b7f06381caeb4f910d6c7f2e4c952a30a5ae
--- /dev/null
+++ b/device_persimmon.mk
@@ -0,0 +1,340 @@
+$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)
+
+# The gps config appropriate for this device
+$(call inherit-product, device/common/gps/gps_us_supl.mk)
+
+# Off ninja
+USE_NINJA=false
+
+$(call inherit-product-if-exists, vendor/archos/persimmon/persimmon-vendor.mk)
+
+DEVICE_PACKAGE_OVERLAYS += device/archos/persimmon/overlay
+
+# Device uses high-density artwork where available
+PRODUCT_AAPT_CONFIG := normal xhdpi
+PRODUCT_AAPT_PREF_CONFIG := xhdpi
+
+ifeq ($(TARGET_PREBUILT_KERNEL),)
+ LOCAL_KERNEL := device/archos/persimmon/prebuilt/Image.gz-dtb
+else
+ LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL)
+endif
+
+TARGET_OTA_ASSERT_DEVICE := persimmon
+
+TARGET_PROVIDES_INIT_RC := true
+
+PRODUCT_COPY_FILES += \
+ device/archos/persimmon/rootdir/init.rc:root/init.rc \
+ device/archos/persimmon/rootdir/init.target.rc:root/init.target.rc \
+ device/archos/persimmon/rootdir/init.mt6735.rc:root/init.mt6735.rc \
+ device/archos/persimmon/rootdir/init.ssd.rc:root/init.ssd.rc \
+ device/archos/persimmon/rootdir/init.xlog.rc:root/init.xlog.rc \
+ device/archos/persimmon/rootdir/init.usb.rc:root/init.usb.rc \
+ device/archos/persimmon/rootdir/init.mt6735.usb.rc:root/init.mt6735.usb.rc \
+ device/archos/persimmon/rootdir/init.aee.rc:root/init.aee.rc \
+ device/archos/persimmon/rootdir/init.project.rc:root/init.project.rc \
+ device/archos/persimmon/rootdir/init.modem.rc:root/init.modem.rc \
+ device/archos/persimmon/rootdir/init.trace.rc:root/init.trace.rc \
+ device/archos/persimmon/rootdir/fstab.mt6735:root/fstab.mt6735 \
+ device/archos/persimmon/rootdir/fstab.swap:root/fstab.swap \
+ device/archos/persimmon/rootdir/ueventd.rc:root/ueventd.rc \
+ device/archos/persimmon/etc/media_codecs.xml:system/etc/media_codecs.xml \
+ device/archos/persimmon/etc/init/audioserver.rc:system/etc/init/audioserver.rc \
+ device/archos/persimmon/etc/init/mediacodec.rc:system/etc/init/mediacodec.rc \
+ device/archos/persimmon/etc/init/cameraserver.rc:system/etc/init/cameraserver.rc \
+ device/archos/persimmon/etc/init/rild.rc:system/etc/init/rild.rc \
+ device/archos/persimmon/media_profiles.xml:system/etc/media_profiles.xml \
+ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
+ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
+ frameworks/av/media/libstagefright/data/media_codecs_google_video_le.xml:system/etc/media_codecs_google_video_le.xml \
+ frameworks/native/data/etc/android.software.app_widgets.xml:system/etc/permissions/android.software.app_widgets.xml \
+ frameworks/native/data/etc/android.hardware.audio.output.xml:system/etc/permissions/android.hardware.audio.output.xml \
+ frameworks/native/data/etc/android.hardware.bluetooth.xml:system/etc/permissions/android.hardware.bluetooth.xml \
+ frameworks/native/data/etc/android.hardware.bluetooth_le.xml:system/etc/permissions/android.hardware.bluetooth_le.xml \
+ frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:system/etc/permissions/android.hardware.camera.flash-autofocus.xml \
+ frameworks/native/data/etc/android.hardware.camera.front.xml:system/etc/permissions/android.hardware.camera.front.xml \
+ frameworks/native/data/etc/android.hardware.faketouch.xml:system/etc/permissions/android.hardware.faketouch.xml \
+ frameworks/native/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml \
+ frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:system/etc/permissions/android.hardware.sensor.accelerometer.xml \
+ frameworks/native/data/etc/android.hardware.sensor.compass.xml:system/etc/permissions/android.hardware.sensor.compass.xml \
+ frameworks/native/data/etc/android.hardware.sensor.light.xml:system/etc/permissions/android.hardware.sensor.light.xml \
+ frameworks/native/data/etc/android.hardware.sensor.proximity.xml:system/etc/permissions/android.hardware.sensor.proximity.xml \
+ frameworks/native/data/etc/android.hardware.telephony.gsm.xml:system/etc/permissions/android.hardware.telephony.gsm.xml \
+ frameworks/native/data/etc/android.hardware.touchscreen.multitouch.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.xml \
+ frameworks/native/data/etc/android.hardware.touchscreen.multitouch.distinct.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.distinct.xml \
+ frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
+ frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml \
+ frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml \
+ frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
+ frameworks/native/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml \
+ frameworks/native/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.xml \
+
+#PRODUCT_PACKAGES += \
+# libion \
+# libmockdrmcryptoplugin \
+# libaudio-resampler \
+# libtinycompress \
+# libtinyxml
+
+# RIL
+PRODUCT_PACKAGES += \
+ gsm0710muxd
+
+PRODUCT_PACKAGES += \
+ Torch \
+ libxlog \
+ libmtk_symbols \
+ libperfservicenative \
+ libcurl
+
+PRODUCT_PACKAGES += archospshelper
+
+PRODUCT_PACKAGES += power.mt6735
+
+# Wifi
+PRODUCT_PACKAGES += \
+ libwpa_client \
+ hostapd \
+ dhcpcd.conf \
+ wpa_supplicant \
+ wpa_supplicant.conf
+
+PRODUCT_COPY_FILES += \
+ device/archos/persimmon/rootdir/etc/hostapd_default.conf:system/etc/hostapd/hostapd_default.conf \
+
+# Audio componets from source
+PRODUCT_PACKAGES += \
+ audio.usb.default \
+ audio.r_submix.default
+
+# BT A2DP
+PRODUCT_COPY_FILES += \
+ vendor/archos/persimmon/proprietary/vendor/lib/hw/audio.a2dp.blueangel.so:system/vendor/lib/hw/audio.a2dp.mt6735.so
+
+# Audio components from source
+PRODUCT_PACKAGES += \
+ MtkCamera libDocVfbEngineLib_m81 libpanorama
+
+#libarchoscamera
+
+#PRODUCT_PACKAGES += stlport_shared
+PRODUCT_COPY_FILES += \
+ prebuilts/ndk/current/sources/cxx-stl/stlport/libs/armeabi-v7a/libstlport_shared.so:system/lib/libstlport.so
+
+#PRODUCT_EXTRA_RECOVERY_KEYS += device/archos/persimmon/archos
+
+#$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
+#$(call inherit-product, build/target/product/aosp_arm64.mk)
+
+#PRODUCT_NAME := cm_persimmon
+#PRODUCT_DEVICE := persimmon
+#PRODUCT_BRAND := CyaniogenMod
+#PRODUCT_MODEL := CyaniogenMod on Archos persimmon
+
+# These additionals go to /default.prop
+ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=0 \
+ro.allow.mock.location=1 \
+ro.debuggable=1 \
+ro.adb.secure=0 \
+persist.service.acm.enable=0 \
+persist.sys.usb.config=mtp \
+ro.mount.fs=EXT4 \
+debug.hwui.render_dirty_regions=false \
+ro.sf.lcd_density=320 \
+persist.radio.multisim.config=dsds \
+ro.mtk_lte_support=1 \
+ro.telephony.ril_class=MT6735 \
+ro.telephony.ril.config=fakeiccid \
+ro.telephony.sim.count=2 \
+persist.gemini.sim_num=2 \
+ril.current.share_modem=2 \
+ro.mtk_gps_support=1 \
+ro.mtk_agps_app=1 \
+persist.debug.xlog.enable=1 \
+
+# These additionals go to /system/build.prop
+ADDITIONAL_BUILD_PROPERTIES += \
+cm.updater.type=plain \
+cm.updater.uri=https://raw.githubusercontent.com/divis1969/update-site/master/updates-14.1.json \
+
+
+# Removed for now
+#ro.persist.partition.support=no \
+#ro.cip.partition.support=no \
+#persist.mtk.aee.aed=on \
+
+# Properties below are copied from device (build.prop)
+# but disabled for now
+#PRODUCT_PROPERTY_OVERRIDES := \
+#ro.com.android.dateformat=MM-dd-yyyy \
+#ro.config.ringtone=Technology.ogg \
+#ro.config.notification_sound=VideoRecord.ogg \
+#ro.config.mms_sound=Triumph.ogg \
+#ro.config.email_sound=VideoRecord.ogg \
+#ro.config.calendar_sound=Doorbell.ogg \
+#ro.config.alarm_alert=Morning_Dew.ogg \
+#ro.carrier=unknown \
+#ro.hwui.texture_cache_size=72 \
+#ro.hwui.layer_cache_size=50 \
+#ro.hwui.r_buffer_cache_size=8 \
+#ro.hwui.path_cache_size=32 \
+#ro.hwui.gradient_cache_size=3 \
+#ro.hwui.drop_shadow_cache_size=6 \
+#ro.hwui.fbo_cache_size=25 \
+#ro.hwui.texture_cache_flushrate=0.4 \
+#ro.hwui.text_small_cache_width=1024 \
+#ro.hwui.text_small_cache_height=1024 \
+#ro.hwui.text_large_cache_width=2048 \
+#ro.hwui.text_large_cache_height=1024 \
+#ro.bq.num_of_layer_used_by_sf=4 \
+#persist.sys.timezone=Asia/Shanghai \
+#persist.sys.archos.region=cn \
+#persist.sys.archos.codepage=gbk \
+#ro.archos.setupwizard.flyme=true \
+#ro.archos.setupwizard.setlang=true \
+#ro.archos.region.enable=true \
+#ro.archos.contactmsg.auth=false \
+#ro.archos.customize.pccw=false \
+#ro.archos.autorecorder=true \
+#ro.archos.visualvoicemail=true \
+#ro.archos.security=false \
+#ro.archos.permanentkey=false \
+#ro.archos.sip.support=true \
+#ro.archos.voip.support=false \
+#sys.archos.m35x.white.config=false \
+#sys.archos.white.config=false \
+#persist.sys.log-main.enable=0 \
+#persist.sys.log-system.enable=0 \
+#persist.sys.log-events.enable=0 \
+#persist.sys.log-radio.enable=0 \
+#persist.sys.use.flyme.icon=true \
+#ro.adb.secure=1 \
+#keyguard.no_require_sim=true \
+#persist.sys.disable_blur_view=true \
+#persist.sys.static_blur_mode=false \
+#ro.debuggable=1 \
+#ro.operator.optr=CUST \
+#qemu.hw.mainkeys=1 \
+#dalvik.vm.heapgrowthlimit=128m \
+#dalvik.vm.heapsize=256m \
+#ro.mediatek.chip_ver=S01 \
+#ro.mediatek.version.release=ALPS.L1.MP3.V2_GINR6735.65C.L1_P48 \
+#ro.mediatek.platform=MT6735 \
+#ro.telephony.sim.count=2 \
+#persist.radio.default.sim=0 \
+#persist.radio.multisim.config=dsds \
+#persist.md.perm.checked=to_upgrade \
+#persist.gemini.sim_num=2 \
+#ro.gemini.smart_sim_switch=false \
+#ril.specific.sm_cause=0 \
+#bgw.current3gband=0 \
+#ril.external.md=0 \
+#ro.mtk_cam_lomo_support=1 \
+#ro.btstack=blueangel \
+#ro.sf.hwrotation=0 \
+#ril.current.share_modem=2 \
+#curlockscreen=1 \
+#ro.mediatek.gemini_support=true \
+#persist.radio.fd.counter=15 \
+#persist.radio.fd.off.counter=5 \
+#persist.radio.fd.r8.counter=15 \
+#persist.radio.fd.off.r8.counter=5 \
+#drm.service.enabled=true \
+#fmradio.driver.enable=1 \
+#ril.first.md=1 \
+#ril.flightmode.poweroffMD=1 \
+#ril.telephony.mode=0 \
+#dalvik.vm.mtk-stack-trace-file=/data/anr/mtk_traces.txt \
+#mediatek.wlan.chip=CONSYS_MT6735 \
+#mediatek.wlan.module.postfix=_consys_mt6735 \
+#ril.read.imsi=1 \
+#ril.radiooff.poweroffMD=0 \
+#ro.frp.pst=/dev/block/platform/mtk-msdc.0/by-name/frp \
+#ro.mediatek.version.branch=L1.MP3 \
+#ro.mediatek.version.sdk=4 \
+#ro.mtk_gemini_support=1 \
+#ro.mtk_audenh_support=1 \
+#ro.mtk_lossless_bt_audio=1 \
+#ro.mtk_besloudness_support=1 \
+#ro.mtk_bessurround_support=1 \
+#ro.mtk_gemini_enhancement=1 \
+#ro.mtk_wapi_support=1 \
+#ro.mtk_bt_support=1 \
+#ro.mtk_wappush_support=1 \
+#ro.mtk_agps_app=1 \
+#ro.mtk_wlan_support=1 \
+#ro.mtk_gps_support=1 \
+#ro.mtk_omacp_support=1 \
+#ro.mtk_search_db_support=1 \
+#ro.mtk_dialer_search_support=1 \
+#ro.mtk_dhcpv6c_wifi=1 \
+#ro.have_aacencode_feature=1 \
+#ro.mtk_fd_support=1 \
+#ro.mtk_oma_drm_support=1 \
+#ro.mtk_cta_drm_support=1 \
+#ro.mtk_widevine_drm_l3_support=1 \
+#ro.mtk_eap_sim_aka=1 \
+#ro.mtk_fm_recording_support=1 \
+#ro.mtk_audio_ape_support=1 \
+#ro.mtk_flv_playback_support=1 \
+#ro.mtk_wmv_playback_support=1 \
+#ro.mtk_send_rr_support=1 \
+#ro.mtk_emmc_support=1 \
+#ro.mtk_tetheringipv6_support=1 \
+#ro.mtk_phone_number_geo=1 \
+#ro.mtk_shared_sdcard=1 \
+#ro.mtk_enable_md1=1 \
+#ro.mtk_flight_mode_power_off_md=1 \
+#ro.mtk_pq_support=2 \
+#ro.mtk_miravision_support=1 \
+#ro.mtk_miravision_image_dc=1 \
+#ro.mtk_wfd_support=1 \
+#ro.mtk_wfd_sink_support=1 \
+#ro.mtk_wfd_sink_uibc_support=1 \
+#ro.mtk_sim_hot_swap=1 \
+#ro.mtk_thumbnail_play_support=1 \
+#ro.mtk_bip_scws=1 \
+#ro.mtk_cmcc_ft_precheck_support=1 \
+#ro.mtk_world_phone=1 \
+#ro.mtk_world_phone_policy=0 \
+#ro.mtk_perfservice_support=1 \
+#ro.mtk_sim_hot_swap_common_slot=1 \
+#ro.mtk_cta_set=1 \
+#ro.mtk_mobile_management=1 \
+#ro.mtk_antibricking_level=2 \
+#ro.mtk_cam_mfb_support=3 \
+#ro.mtk_slow_motion_support=1 \
+#ro.mtk_lte_support=1 \
+#ro.mtk_cam_mav_support=1 \
+#ro.mtk_cam_vfb=1 \
+#ro.mtk_rild_read_imsi=1 \
+#ro.sim_refresh_reset_by_modem=1 \
+#ro.mtk_live_photo_support=1 \
+#ro.mtk_motion_track_support=1 \
+#ro.mtk_passpoint_r1_support=1 \
+#ro.mtk_privacy_protection_lock=1 \
+#ro.mtk_bg_power_saving_support=1 \
+#ro.mtk_bg_power_saving_ui=1 \
+#ro.have_aee_feature=1 \
+#ro.sim_me_lock_mode=0 \
+#wfd.dummy.enable=1 \
+#ro.mediatek.project.path=device/ginreen/ginr6735_65c_l1 \
+#persist.mtk.wcn.combo.chipid=-1 \
+#service.wcn.driver.ready=no \
+#ro.wind_project_definition=5 \
+#ro.wind.pl.version=02 \
+#ro.wind_project_feature=1 \
+#ro.com.android.mobiledata=false \
+#persist.radio.mobile.data=0,0 \
+#persist.radio.mobile.enable=1,1 \
+#persist.meta.dumpdata=0 \
+#persist.sys.dalvik.vm.lib.2=libart.so \
+#dalvik.vm.isa.arm64.features=default \
+#dalvik.vm.isa.arm.features=default \
+#dalvik.vm.dexopt-flags=m=y \
+#net.bt.name=Android \
+#dalvik.vm.stack-trace-file=/data/anr/traces.txt \
+
+
diff --git a/egl.cfg b/egl.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..9438b870769bbe3d4756e460cff5af0ff463ccf7
--- /dev/null
+++ b/egl.cfg
@@ -0,0 +1,2 @@
+0 0 android
+0 1 mali
diff --git a/etc/init/audioserver.rc b/etc/init/audioserver.rc
new file mode 100644
index 0000000000000000000000000000000000000000..0d2f28250af0766573d21a765c8a9b0767f4c80a
--- /dev/null
+++ b/etc/init/audioserver.rc
@@ -0,0 +1,7 @@
+service audioserver /system/bin/audioserver
+ class main
+ user audioserver
+ # media gid needed for /dev/fm (radio) and for /data/misc/media (tee)
+ group audio camera drmrpc inet media mediadrm net_bt net_bt_admin net_bw_acct qcom_diag system
+ ioprio rt 4
+ writepid /dev/cpuset/foreground/tasks
diff --git a/etc/init/cameraserver.rc b/etc/init/cameraserver.rc
new file mode 100644
index 0000000000000000000000000000000000000000..cff9671e3e690a13dac8ca344bfdc0007c391a50
--- /dev/null
+++ b/etc/init/cameraserver.rc
@@ -0,0 +1,6 @@
+service cameraserver /system/bin/cameraserver
+ class main
+ user cameraserver
+ group audio camera drmrpc inet media mediadrm net_bt net_bt_admin net_bw_acct system
+ ioprio rt 4
+ writepid /dev/cpuset/foreground/tasks
diff --git a/etc/init/mediacodec.rc b/etc/init/mediacodec.rc
new file mode 100644
index 0000000000000000000000000000000000000000..948fef193682bab4b738fba9a13d8cf45dc518e5
--- /dev/null
+++ b/etc/init/mediacodec.rc
@@ -0,0 +1,6 @@
+service mediacodec /system/bin/mediacodec
+ class main
+ user mediacodec
+ group camera drmrpc mediadrm audio media
+ ioprio rt 4
+ writepid /dev/cpuset/foreground/tasks
diff --git a/etc/init/rild.rc b/etc/init/rild.rc
new file mode 100644
index 0000000000000000000000000000000000000000..6184112776fcffe8bb84f0c4f6bcabbbca429e2a
--- /dev/null
+++ b/etc/init/rild.rc
@@ -0,0 +1,8 @@
+service ril-daemon /system/bin/rild
+ class main
+ socket rild stream 660 root radio
+ socket sap_uim_socket1 stream 660 bluetooth bluetooth
+ socket rild-debug stream 660 radio system
+ user root
+ group radio cache inet misc audio log readproc wakelock
+ disabled
diff --git a/configs/media_codecs.xml b/etc/media_codecs.xml
old mode 100755
new mode 100644
similarity index 78%
rename from configs/media_codecs.xml
rename to etc/media_codecs.xml
index e486435e0eb15d25f700cafa722a6d76b91bef17..8397f3527935fd5483f9cc17e8ce9091f07c02a7
--- a/configs/media_codecs.xml
+++ b/etc/media_codecs.xml
@@ -78,19 +78,18 @@ Only the three quirks included above are recognized at this point:
+
+
@@ -100,24 +99,22 @@ Only the three quirks included above are recognized at this point:
+
+
+
+
-
+
@@ -129,7 +126,7 @@ Only the three quirks included above are recognized at this point:
-
+
@@ -142,18 +139,20 @@ Only the three quirks included above are recognized at this point:
-
+
-
+
-
+
+
+
@@ -179,25 +178,6 @@ Only the three quirks included above are recognized at this point:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -214,21 +194,21 @@ Only the three quirks included above are recognized at this point:
-
+
-
+
-
+
@@ -238,16 +218,9 @@ Only the three quirks included above are recognized at this point:
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
diff --git a/extract-files.sh b/extract-files.sh
index bad6d3c554298e4dfe608e0752a839560b73eae6..9bd716eebeda05188eab49e3cc933abd5ccb4aaf 100755
--- a/extract-files.sh
+++ b/extract-files.sh
@@ -1,35 +1,60 @@
-#!/bin/sh
+#!/bin/bash
-## usage: extract-files.sh $1 $2
-## $1 and $2 are optional
-## if $1 = unzip the files will be extracted from zip file (if $1 = anything else 'adb pull' will be used
-## $2 specifies the zip file to extract from (default = ../../../${DEVICE}_update.zip)
+export DEVICE=persimmon
+export VENDOR=archos
-VENDOR=oukitel
-DEVICE=orange
+if [ $# -eq 0 ]; then
+ SRC=adb
+else
+ if [ $# -eq 1 ]; then
+ SRC=$1
+ else
+ echo "$0: bad number of arguments"
+ echo ""
+ echo "usage: $0 [PATH_TO_EXPANDED_ROM]"
+ echo ""
+ echo "If PATH_TO_EXPANDED_ROM is not specified, blobs will be extracted from"
+ echo "the device using adb pull."
+ exit 1
+ fi
+fi
+
+function extract() {
+ for FILE in $(eval echo `egrep -v '(^#|^$)' $1`); do
+ OLDIFS=$IFS IFS=":" PARSING_ARRAY=($FILE) IFS=$OLDIFS
+ FILE=`echo ${PARSING_ARRAY[0]} | sed -e "s/^-//g"`
+ DEST=${PARSING_ARRAY[1]}
+ if [ -z $DEST ]
+ then
+ DEST=$FILE
+ fi
+ DIR=`dirname $DEST`
+ if [ ! -d $BASE/$DIR ]; then
+ mkdir -p $BASE/$DIR
+ fi
+ # Try CM target first
+ if [ "$SRC" = "adb" ]; then
+ adb pull /system/$DEST $BASE/$DEST
+ # if file does not exist try OEM target
+ if [ "$?" != "0" ]; then
+ adb pull /system/$FILE $BASE/$DEST
+ fi
+ else
+ if [ -z $SRC/system/$DEST ]; then
+ echo ":: $DEST"
+ cp $SRC/system/$DEST $BASE/$DEST
+ else
+ echo ":: $FILE"
+ cp $SRC/system/$FILE $BASE/$DEST
+ fi
+ fi
+ done
+}
BASE=../../../vendor/$VENDOR/$DEVICE/proprietary
rm -rf $BASE/*
-if [ -z "$2" ]; then
- ZIPFILE=../../../${DEVICE}_update.zip
-else
- ZIPFILE=$2
-fi
+#extract ../../$VENDOR/$DEVICE/proprietary-files-mtk.txt $BASE
+extract ../../$VENDOR/$DEVICE/proprietary-files.txt $BASE
-if [ "$1" = "unzip" -a ! -e $ZIPFILE ]; then
- echo $ZIPFILE does not exist.
-else
- for FILE in `cat proprietary-files.txt | grep -v ^# | grep -v ^$`; do
- DIR=`dirname $FILE`
- if [ ! -d $BASE/$DIR ]; then
- mkdir -p $BASE/$DIR
- fi
- if [ "$1" = "unzip" ]; then
- unzip -j -o $ZIPFILE system/$FILE -d $BASE/$DIR
- else
- adb pull /system/$FILE $BASE/$FILE
- fi
- done
-fi
./setup-makefiles.sh
diff --git a/flyme/res/Android.mk b/flyme/res/Android.mk
new file mode 100644
index 0000000000000000000000000000000000000000..08526948f9e5e1f5fc0f58211bb6e8d6f6981867
--- /dev/null
+++ b/flyme/res/Android.mk
@@ -0,0 +1,43 @@
+#
+# Copyright (C) 2016
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_PACKAGE_NAME := flyme-res
+LOCAL_CERTIFICATE := platform
+LOCAL_AAPT_FLAGS := --auto-add-overlay
+LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, res)
+
+# Tell aapt to create "extending (non-application)" resource IDs,
+# since these resources will be used by many apps.
+
+# 0x3f/one less than app id
+LOCAL_AAPT_FLAGS += -x 63
+
+LOCAL_MODULE_TAGS := optional
+
+# frameworks resource packages don't like the extra subdir layer
+LOCAL_IGNORE_SUBDIR := true
+
+# Install this alongside the libraries.
+LOCAL_MODULE_PATH := $(TARGET_OUT_JAVA_LIBRARIES)
+
+# Create package-export.apk, which other packages can use to get
+# PRODUCT-agnostic resource data like IDs and type definitions.
+LOCAL_EXPORT_PACKAGE_RESOURCES := true
+
+include $(BUILD_PACKAGE)
diff --git a/flyme/res/AndroidManifest.xml b/flyme/res/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a8a3558b035b2a3c0fa8f762a2ba028b5b9bf504
--- /dev/null
+++ b/flyme/res/AndroidManifest.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
diff --git a/overlay/packages/services/Telecomm/res/values/config.xml b/flyme/res/res/values/strings.xml
old mode 100755
new mode 100644
similarity index 58%
rename from overlay/packages/services/Telecomm/res/values/config.xml
rename to flyme/res/res/values/strings.xml
index 59a1e6048a072919c68a74acad8c273e80df6a04..a27d87cd3048fac30ee6c8adc7ea3555996360b0
--- a/overlay/packages/services/Telecomm/res/values/config.xml
+++ b/flyme/res/res/values/strings.xml
@@ -1,5 +1,6 @@
-
+
+
+ Flyme System
-
-
-
- true
+ /sys/devices/mx_tsp/gesture_control
+ /sys/devices/mx_tsp/gesture_data
diff --git a/flyme/xAndroid.mk b/flyme/xAndroid.mk
new file mode 100644
index 0000000000000000000000000000000000000000..fad0e921cc09cb3720e0c6948459c9a00816a4f7
--- /dev/null
+++ b/flyme/xAndroid.mk
@@ -0,0 +1,4 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(LOCAL_PATH)/res/Android.mk
+
diff --git a/include/cutils/alelog.h b/include/cutils/alelog.h
deleted file mode 100755
index 294c7a9273d322bd4bc70abb0bf5dbd9cc29fa18..0000000000000000000000000000000000000000
--- a/include/cutils/alelog.h
+++ /dev/null
@@ -1,59 +0,0 @@
-#if !defined(__ALE_H__)
-#define __ALE_H__
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define LOGGER_ALE_MASK 0xf0
-
-#define LOGGER_ALE_MSG_RAW 0x00
-#define LOGGER_ALE_MSG_K 0x10
-#define LOGGER_ALE_MSG_N 0x20
-#define LOGGER_ALE_MSG_J 0x30
-#define LOGGER_ALE_XMSG_K 0x40
-#define LOGGER_ALE_XMSG_N 0x50
-#define LOGGER_ALE_XMSG_J 0x60
-
-#define LOGGER_ALE_MSG_SIZE 768
-
-#define LOGGER_ALE_ARGS_MAX 16
-struct ale_convert {
- const char *tag_str;
- const char *fmt_ptr;
- const char *file;
- int lineno;
- unsigned int hash;
- char params[LOGGER_ALE_ARGS_MAX];
-};
-
-int ale_log_output_binary(int prio, const char *tag, const void *payload, size_t len);
-
-int ale_log_output(int bufid, int prio, const struct ale_convert *convert, ...);
-
-#define ale_log_print(bufid, prio, tag, fmt, ...) \
- ({ \
- if (__builtin_constant_p(tag) && __builtin_constant_p(fmt)) { \
- static const struct ale_convert ____ale_rec____ = \
- { \
- __builtin_constant_p(tag) ? tag : NULL, \
- __builtin_constant_p(fmt) ? fmt : NULL, \
- __FILE__, \
- __builtin_constant_p(prio) ? prio : 0, \
- 0, \
- "" }; \
- ale_log_output(bufid, prio, &____ale_rec____, ##__VA_ARGS__); \
- } \
- else { \
- struct ale_convert ale = \
- {tag, fmt, NULL, \
- 0, 0, ""}; \
- ale_log_output(bufid, prio, &ale, ##__VA_ARGS__); \
- } \
- })
-
-#if defined(__cplusplus)
-};
-#endif
-
-#endif
diff --git a/include/cutils/xlog.h b/include/cutils/xlog.h
deleted file mode 100755
index a8089b7f61d428ae6f5904752a3167585a9f450e..0000000000000000000000000000000000000000
--- a/include/cutils/xlog.h
+++ /dev/null
@@ -1,185 +0,0 @@
-#if !defined(_XLOG_H)
-#define _XLOG_H
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int xlogf_java_tag_is_on(const char *name, int level);
-int xlogf_native_tag_is_on(const char *name, int level);
-
-int xlogf_java_xtag_is_on(const char *name, int level);
-int xlogf_native_xtag_is_on(const char *name, int level);
-
-#ifndef XLOG_TAG
-#define XLOG_TAG NULL
-#endif
-
-#ifndef SXLOGV
-#define SXLOGV(...) ((void)SXLOG_PRI(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__))
-#endif
-#ifndef SXLOGD
-#define SXLOGD(...) ((void)SXLOG_PRI(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__))
-#endif
-#ifndef SXLOGI
-#define SXLOGI(...) ((void)SXLOG_PRI(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__))
-#endif
-#ifndef SXLOGW
-#define SXLOGW(...) ((void)SXLOG_PRI(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__))
-#endif
-#ifndef SXLOGE
-#define SXLOGE(...) ((void)SXLOG_PRI(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__))
-#endif
-#ifndef SXLOGF
-#define SXLOGF(...) ((void)SXLOG_PRI(ANDROID_LOG_FATAL, LOG_TAG, __VA_ARGS__))
-#endif
-#if LOG_NDEBUG
-#define SXLOG_ASSERT(cond, ...) \
- ( (CONDITION(cond)) \
- ? ((void)SXLOGF(LOG_TAG, __VA_ARGS__)) \
- : (void)0 )
-#else
-#define SXLOG_ASSERT(cond, ...) ((void)0)
-#endif
-
-#define SXLOG_ALWAYS_ASSERT(cond,...) \
- ( (CONDITION(cond)) \
- ? ((void)SXLOGF(LOG_TAG, __VA_ARGS__)) \
- : (void)0 )
-
-#ifndef XLOGV
-#define XLOGV(...) ((void)XLOG_PRI(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__))
-#endif
-#ifndef XLOGD
-#define XLOGD(...) ((void)XLOG_PRI(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__))
-#endif
-#ifndef XLOGI
-#define XLOGI(...) ((void)XLOG_PRI(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__))
-#endif
-#ifndef XLOGW
-#define XLOGW(...) ((void)XLOG_PRI(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__))
-#endif
-#ifndef XLOGE
-#define XLOGE(...) ((void)XLOG_PRI(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__))
-#endif
-#ifndef XLOGF
-#define XLOGF(...) ((void)XLOG_PRI(ANDROID_LOG_FATAL, LOG_TAG, __VA_ARGS__))
-#endif
-
-#if LOG_NDEBUG
-#define XLOG_ASSERT(cond, ...) \
- (!(cond) \
- ? ((void)XLOGF(__VA_ARGS__)) \
- : (void)0)
-#else
-#define XLOG_ASSERT(cond, ...) ((void)0)
-#endif
-
-#define XLOG_ALWAY_ASSERT(cond, ...) \
- (!(cond) \
- ? ((void)XLOGF(__VA_ARGS__)) \
- : (void)0)
-
-
-#ifndef SXLOGV2
-#define SXLOGV2(...) ((void)SXLOG_PRI(ANDROID_LOG_VERBOSE, XLOG_TAG, __VA_ARGS__))
-#endif
-#ifndef SXLOGD2
-#define SXLOGD2(...) ((void)SXLOG_PRI(ANDROID_LOG_DEBUG, XLOG_TAG, __VA_ARGS__))
-#endif
-#ifndef SXLOGI2
-#define SXLOGI2(...) ((void)SXLOG_PRI(ANDROID_LOG_INFO, XLOG_TAG, __VA_ARGS__))
-#endif
-#ifndef SXLOGW2
-#define SXLOGW2(...) ((void)SXLOG_PRI(ANDROID_LOG_WARN, XLOG_TAG, __VA_ARGS__))
-#endif
-#ifndef SXLOGE2
-#define SXLOGE2(...) ((void)SXLOG_PRI(ANDROID_LOG_ERROR, XLOG_TAG, __VA_ARGS__))
-#endif
-#ifndef SXLOGF2
-#define SXLOGF2(...) ((void)SXLOG_PRI(ANDROID_LOG_FATAL, XLOG_TAG, __VA_ARGS__))
-#endif
-
-#ifndef XLOGV2
-#define XLOGV2(...) ((void)XLOG_PRI(ANDROID_LOG_VERBOSE, XLOG_TAG, __VA_ARGS__))
-#endif
-#ifndef XLOGD2
-#define XLOGD2(...) ((void)XLOG_PRI(ANDROID_LOG_DEBUG, XLOG_TAG, __VA_ARGS__))
-#endif
-#ifndef XLOGI2
-#define XLOGI2(...) ((void)XLOG_PRI(ANDROID_LOG_INFO, XLOG_TAG, __VA_ARGS__))
-#endif
-#ifndef XLOGW2
-#define XLOGW2(...) ((void)XLOG_PRI(ANDROID_LOG_WARN, XLOG_TAG, __VA_ARGS__))
-#endif
-#ifndef XLOGE2
-#define XLOGE2(...) ((void)XLOG_PRI(ANDROID_LOG_ERROR, XLOG_TAG, __VA_ARGS__))
-#endif
-#ifndef XLOGF2
-#define XLOGF2(...) ((void)XLOG_PRI(ANDROID_LOG_FATAL, XLOG_TAG, __VA_ARGS__))
-#endif
-
-struct xlog_record {
- const char *tag_str;
- const char *fmt_str;
- int prio;
-};
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int __xlog_buf_printf(int bufid, const struct xlog_record *rec, ...);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#if !defined(HAVE_ALE_FEATURE)
-
-#define xlog_buf_printf(bufid, prio, tag, fmt, ...) \
- ({ \
- static const struct xlog_record _xlog_rec = \
- {tag, fmt, prio}; \
- __xlog_buf_printf(bufid, &_xlog_rec, ##__VA_ARGS__); \
- })
-
-#else
-
-#define xlog_buf_printf(bufid, prio, tag, fmt, ...) \
- ({ \
- static const struct ale_convert ____xlog_ale_rec____ = \
- { tag, fmt, __FILE__, prio, 0, "" }; \
- ale_log_output(bufid, prio, &____xlog_ale_rec____, \
- ##__VA_ARGS__); \
- })
-
-#endif
-
-#ifdef HAVE_XLOG_FEATURE
-#define XLOG_PRI(priority, tag, ...) \
- xlog_buf_printf(LOG_ID_MAIN, priority, tag, __VA_ARGS__)
-
-#define SXLOG_PRI(priority, tag, ...) \
- xlog_buf_printf(LOG_ID_MAIN, priority, tag, __VA_ARGS__)
-
-#define xlog_printf(priority, tag, ...) \
- xlog_buf_printf(LOG_ID_MAIN, priority, tag, __VA_ARGS__)
-
-#define sxlog_printf(priority, tag, ...) \
- xlog_buf_printf(LOG_ID_SYSTEM, priority, tag, __VA_ARGS__)
-#else //HAVE_XLOG_FEATURE
-#define XLOG_PRI(priority, tag, ...) ((void)0)
-#define SXLOG_PRI(priority, tag, ...) ((void)0)
-#define xlog_printf(priority, tag, ...) ((void)0)
-#define sxlog_printf(priority, tag, ...) ((void)0)
-#endif //HAVE_XLOG_FEATURE
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/hardware/gps.h b/include/hardware/gps.h
deleted file mode 100755
index 580d5a4213a200d692cdf0b074f030821762a6c7..0000000000000000000000000000000000000000
--- a/include/hardware/gps.h
+++ /dev/null
@@ -1,1890 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_INCLUDE_HARDWARE_GPS_H
-#define ANDROID_INCLUDE_HARDWARE_GPS_H
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-
-__BEGIN_DECLS
-
-/**
- * The id of this module
- */
-#define GPS_HARDWARE_MODULE_ID "gps"
-
-
-/** Milliseconds since January 1, 1970 */
-typedef int64_t GpsUtcTime;
-
-/** Maximum number of GNSS SVs for gps_sv_status_callback(). */
-#define GNSS_MAX_SVS 256
-
-/** Maximum number of SVs for gps_sv_status_callback(). */
-#define GPS_MAX_SVS 32
-
-/** Maximum number of Measurements in gps_measurement_callback(). */
-#define GPS_MAX_MEASUREMENT 32
-
-/** Requested operational mode for GPS operation. */
-typedef uint32_t GpsPositionMode;
-// IMPORTANT: Note that the following values must match
-// constants in GpsLocationProvider.java.
-/** Mode for running GPS standalone (no assistance). */
-#define GPS_POSITION_MODE_STANDALONE 0
-/** AGPS MS-Based mode. */
-#define GPS_POSITION_MODE_MS_BASED 1
-/** AGPS MS-Assisted mode. */
-#define GPS_POSITION_MODE_MS_ASSISTED 2
-
-/** Requested recurrence mode for GPS operation. */
-typedef uint32_t GpsPositionRecurrence;
-// IMPORTANT: Note that the following values must match
-// constants in GpsLocationProvider.java.
-/** Receive GPS fixes on a recurring basis at a specified period. */
-#define GPS_POSITION_RECURRENCE_PERIODIC 0
-/** Request a single shot GPS fix. */
-#define GPS_POSITION_RECURRENCE_SINGLE 1
-
-/** GPS status event values. */
-typedef uint16_t GpsStatusValue;
-// IMPORTANT: Note that the following values must match
-// constants in GpsLocationProvider.java.
-/** GPS status unknown. */
-#define GPS_STATUS_NONE 0
-/** GPS has begun navigating. */
-#define GPS_STATUS_SESSION_BEGIN 1
-/** GPS has stopped navigating. */
-#define GPS_STATUS_SESSION_END 2
-/** GPS has powered on but is not navigating. */
-#define GPS_STATUS_ENGINE_ON 3
-/** GPS is powered off. */
-#define GPS_STATUS_ENGINE_OFF 4
-
-/** Flags to indicate which values are valid in a GpsLocation. */
-typedef uint16_t GpsLocationFlags;
-// IMPORTANT: Note that the following values must match
-// constants in GpsLocationProvider.java.
-/** GpsLocation has valid latitude and longitude. */
-#define GPS_LOCATION_HAS_LAT_LONG 0x0001
-/** GpsLocation has valid altitude. */
-#define GPS_LOCATION_HAS_ALTITUDE 0x0002
-/** GpsLocation has valid speed. */
-#define GPS_LOCATION_HAS_SPEED 0x0004
-/** GpsLocation has valid bearing. */
-#define GPS_LOCATION_HAS_BEARING 0x0008
-/** GpsLocation has valid accuracy. */
-#define GPS_LOCATION_HAS_ACCURACY 0x0010
-
-/** Flags for the gps_set_capabilities callback. */
-
-/** GPS HAL schedules fixes for GPS_POSITION_RECURRENCE_PERIODIC mode.
- If this is not set, then the framework will use 1000ms for min_interval
- and will start and call start() and stop() to schedule the GPS.
- */
-#define GPS_CAPABILITY_SCHEDULING 0x0000001
-/** GPS supports MS-Based AGPS mode */
-#define GPS_CAPABILITY_MSB 0x0000002
-/** GPS supports MS-Assisted AGPS mode */
-#define GPS_CAPABILITY_MSA 0x0000004
-/** GPS supports single-shot fixes */
-#define GPS_CAPABILITY_SINGLE_SHOT 0x0000008
-/** GPS supports on demand time injection */
-#define GPS_CAPABILITY_ON_DEMAND_TIME 0x0000010
-/** GPS supports Geofencing */
-#define GPS_CAPABILITY_GEOFENCING 0x0000020
-/** GPS supports Measurements */
-#define GPS_CAPABILITY_MEASUREMENTS 0x0000040
-/** GPS supports Navigation Messages */
-#define GPS_CAPABILITY_NAV_MESSAGES 0x0000080
-
-/** Flags used to specify which aiding data to delete
- when calling delete_aiding_data(). */
-typedef uint32_t GpsAidingData;
-// IMPORTANT: Note that the following values must match
-// constants in GpsLocationProvider.java.
-#define GPS_DELETE_EPHEMERIS 0x00000001
-#define GPS_DELETE_ALMANAC 0x00000002
-#define GPS_DELETE_POSITION 0x00000004
-#define GPS_DELETE_TIME 0x00000008
-#define GPS_DELETE_IONO 0x00000010
-#define GPS_DELETE_UTC 0x00000020
-#define GPS_DELETE_HEALTH 0x00000040
-#define GPS_DELETE_SVDIR 0x00000080
-#define GPS_DELETE_SVSTEER 0x00000100
-#define GPS_DELETE_SADATA 0x00000200
-#define GPS_DELETE_RTI 0x00000400
-#define GPS_DELETE_CELLDB_INFO 0x00000800
-#define GPS_DELETE_ALMANAC_CORR 0x00001000
-#define GPS_DELETE_FREQ_BIAS_EST 0x00002000
-#define GLO_DELETE_EPHEMERIS 0x00004000
-#define GLO_DELETE_ALMANAC 0x00008000
-#define GLO_DELETE_SVDIR 0x00010000
-#define GLO_DELETE_SVSTEER 0x00020000
-#define GLO_DELETE_ALMANAC_CORR 0x00040000
-#define GPS_DELETE_TIME_GPS 0x00080000
-#define GLO_DELETE_TIME 0x00100000
-#define BDS_DELETE_SVDIR 0X00200000
-#define BDS_DELETE_SVSTEER 0X00400000
-#define BDS_DELETE_TIME 0X00800000
-#define BDS_DELETE_ALMANAC_CORR 0X01000000
-#define BDS_DELETE_EPHEMERIS 0X02000000
-#define BDS_DELETE_ALMANAC 0X04000000
-
-#define GPS_DELETE_ALL 0xFFFFFFFF
-
-/** AGPS type */
-typedef uint16_t AGpsType;
-#define AGPS_TYPE_SUPL 1
-#define AGPS_TYPE_C2K 2
-
-typedef uint16_t AGpsSetIDType;
-#define AGPS_SETID_TYPE_NONE 0
-#define AGPS_SETID_TYPE_IMSI 1
-#define AGPS_SETID_TYPE_MSISDN 2
-
-typedef uint16_t ApnIpType;
-#define APN_IP_INVALID 0
-#define APN_IP_IPV4 1
-#define APN_IP_IPV6 2
-#define APN_IP_IPV4V6 3
-
-/**
- * String length constants
- */
-#define GPS_NI_SHORT_STRING_MAXLEN 256
-#define GPS_NI_LONG_STRING_MAXLEN 2048
-
-/**
- * GpsNiType constants
- */
-typedef uint32_t GpsNiType;
-#define GPS_NI_TYPE_VOICE 1
-#define GPS_NI_TYPE_UMTS_SUPL 2
-#define GPS_NI_TYPE_UMTS_CTRL_PLANE 3
-
-/**
- * GpsNiNotifyFlags constants
- */
-typedef uint32_t GpsNiNotifyFlags;
-/** NI requires notification */
-#define GPS_NI_NEED_NOTIFY 0x0001
-/** NI requires verification */
-#define GPS_NI_NEED_VERIFY 0x0002
-/** NI requires privacy override, no notification/minimal trace */
-#define GPS_NI_PRIVACY_OVERRIDE 0x0004
-
-/**
- * GPS NI responses, used to define the response in
- * NI structures
- */
-typedef int GpsUserResponseType;
-#define GPS_NI_RESPONSE_ACCEPT 1
-#define GPS_NI_RESPONSE_DENY 2
-#define GPS_NI_RESPONSE_NORESP 3
-
-/**
- * NI data encoding scheme
- */
-typedef int GpsNiEncodingType;
-#define GPS_ENC_NONE 0
-#define GPS_ENC_SUPL_GSM_DEFAULT 1
-#define GPS_ENC_SUPL_UTF8 2
-#define GPS_ENC_SUPL_UCS2 3
-#define GPS_ENC_UNKNOWN -1
-
-/** AGPS status event values. */
-typedef uint16_t AGpsStatusValue;
-/** GPS requests data connection for AGPS. */
-#define GPS_REQUEST_AGPS_DATA_CONN 1
-/** GPS releases the AGPS data connection. */
-#define GPS_RELEASE_AGPS_DATA_CONN 2
-/** AGPS data connection initiated */
-#define GPS_AGPS_DATA_CONNECTED 3
-/** AGPS data connection completed */
-#define GPS_AGPS_DATA_CONN_DONE 4
-/** AGPS data connection failed */
-#define GPS_AGPS_DATA_CONN_FAILED 5
-
-#define AGPS_REF_LOCATION_TYPE_GSM_CELLID 1
-#define AGPS_REF_LOCATION_TYPE_UMTS_CELLID 2
-#define AGPS_REG_LOCATION_TYPE_MAC 3
-
-/** Network types for update_network_state "type" parameter */
-#define AGPS_RIL_NETWORK_TYPE_MOBILE 0
-#define AGPS_RIL_NETWORK_TYPE_WIFI 1
-#define AGPS_RIL_NETWORK_TYPE_MOBILE_MMS 2
-#define AGPS_RIL_NETWORK_TYPE_MOBILE_SUPL 3
-#define AGPS_RIL_NETWORK_TTYPE_MOBILE_DUN 4
-#define AGPS_RIL_NETWORK_TTYPE_MOBILE_HIPRI 5
-#define AGPS_RIL_NETWORK_TTYPE_WIMAX 6
-
-/**
- * Flags to indicate what fields in GpsClock are valid.
- */
-typedef uint16_t GpsClockFlags;
-/** A valid 'leap second' is stored in the data structure. */
-#define GPS_CLOCK_HAS_LEAP_SECOND (1<<0)
-/** A valid 'time uncertainty' is stored in the data structure. */
-#define GPS_CLOCK_HAS_TIME_UNCERTAINTY (1<<1)
-/** A valid 'full bias' is stored in the data structure. */
-#define GPS_CLOCK_HAS_FULL_BIAS (1<<2)
-/** A valid 'bias' is stored in the data structure. */
-#define GPS_CLOCK_HAS_BIAS (1<<3)
-/** A valid 'bias uncertainty' is stored in the data structure. */
-#define GPS_CLOCK_HAS_BIAS_UNCERTAINTY (1<<4)
-/** A valid 'drift' is stored in the data structure. */
-#define GPS_CLOCK_HAS_DRIFT (1<<5)
-/** A valid 'drift uncertainty' is stored in the data structure. */
-#define GPS_CLOCK_HAS_DRIFT_UNCERTAINTY (1<<6)
-
-/**
- * Enumeration of the available values for the GPS Clock type.
- */
-typedef uint8_t GpsClockType;
-/** The type is not available ot it is unknown. */
-#define GPS_CLOCK_TYPE_UNKNOWN 0
-/** The source of the time value reported by GPS clock is the local hardware clock. */
-#define GPS_CLOCK_TYPE_LOCAL_HW_TIME 1
-/**
- * The source of the time value reported by GPS clock is the GPS time derived from satellites
- * (epoch = Jan 6, 1980)
- */
-#define GPS_CLOCK_TYPE_GPS_TIME 2
-
-/**
- * Flags to indicate what fields in GpsMeasurement are valid.
- */
-typedef uint32_t GpsMeasurementFlags;
-/** A valid 'snr' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_SNR (1<<0)
-/** A valid 'elevation' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_ELEVATION (1<<1)
-/** A valid 'elevation uncertainty' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_ELEVATION_UNCERTAINTY (1<<2)
-/** A valid 'azimuth' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_AZIMUTH (1<<3)
-/** A valid 'azimuth uncertainty' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_AZIMUTH_UNCERTAINTY (1<<4)
-/** A valid 'pseudorange' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_PSEUDORANGE (1<<5)
-/** A valid 'pseudorange uncertainty' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_PSEUDORANGE_UNCERTAINTY (1<<6)
-/** A valid 'code phase' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_CODE_PHASE (1<<7)
-/** A valid 'code phase uncertainty' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_CODE_PHASE_UNCERTAINTY (1<<8)
-/** A valid 'carrier frequency' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_CARRIER_FREQUENCY (1<<9)
-/** A valid 'carrier cycles' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_CARRIER_CYCLES (1<<10)
-/** A valid 'carrier phase' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_CARRIER_PHASE (1<<11)
-/** A valid 'carrier phase uncertainty' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY (1<<12)
-/** A valid 'bit number' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_BIT_NUMBER (1<<13)
-/** A valid 'time from last bit' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_TIME_FROM_LAST_BIT (1<<14)
-/** A valid 'doppler shift' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_DOPPLER_SHIFT (1<<15)
-/** A valid 'doppler shift uncertainty' is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_DOPPLER_SHIFT_UNCERTAINTY (1<<16)
-/** A valid 'used in fix' flag is stored in the data structure. */
-#define GPS_MEASUREMENT_HAS_USED_IN_FIX (1<<17)
-
-/**
- * Enumeration of the available values for the GPS Measurement's loss of lock.
- */
-typedef uint8_t GpsLossOfLock;
-/** The indicator is not available or it is unknown. */
-#define GPS_LOSS_OF_LOCK_UNKNOWN 0
-/** The measurement does not present any indication of loss of lock. */
-#define GPS_LOSS_OF_LOCK_OK 1
-/** Loss of lock between previous and current observation: cycle slip possible. */
-#define GPS_LOSS_OF_LOCK_CYCLE_SLIP 2
-
-/**
- * Enumeration of available values for the GPS Measurement's multipath indicator.
- */
-typedef uint8_t GpsMultipathIndicator;
-/** The indicator is not available or unknown. */
-#define GPS_MULTIPATH_INDICATOR_UNKNOWN 0
-/** The measurement has been indicated to use multipath. */
-#define GPS_MULTIPATH_INDICATOR_DETECTED 1
-/** The measurement has been indicated Not to use multipath. */
-#define GPS_MULTIPATH_INDICATOR_NOT_USED 2
-
-/**
- * Flags indicating the GPS measurement state.
- * The expected behavior here is for GPS HAL to set all the flags that applies. For
- * example, if the state for a satellite is only C/A code locked and bit synchronized,
- * and there is still millisecond ambiguity, the state should be set as:
- * GPS_MEASUREMENT_STATE_CODE_LOCK|GPS_MEASUREMENT_STATE_BIT_SYNC|GPS_MEASUREMENT_STATE_MSEC_AMBIGUOUS
- * If GPS is still searching for a satellite, the corresponding state should be set to
- * GPS_MEASUREMENT_STATE_UNKNOWN(0).
- */
-typedef uint16_t GpsMeasurementState;
-#define GPS_MEASUREMENT_STATE_UNKNOWN 0
-#define GPS_MEASUREMENT_STATE_CODE_LOCK (1<<0)
-#define GPS_MEASUREMENT_STATE_BIT_SYNC (1<<1)
-#define GPS_MEASUREMENT_STATE_SUBFRAME_SYNC (1<<2)
-#define GPS_MEASUREMENT_STATE_TOW_DECODED (1<<3)
-#define GPS_MEASUREMENT_STATE_MSEC_AMBIGUOUS (1<<4)
-
-/**
- * Flags indicating the Accumulated Delta Range's states.
- */
-typedef uint16_t GpsAccumulatedDeltaRangeState;
-#define GPS_ADR_STATE_UNKNOWN 0
-#define GPS_ADR_STATE_VALID (1<<0)
-#define GPS_ADR_STATE_RESET (1<<1)
-#define GPS_ADR_STATE_CYCLE_SLIP (1<<2)
-
-/**
- * Enumeration of available values to indicate the available GPS Navigation message types.
- */
-typedef uint8_t GpsNavigationMessageType;
-/** The message type is unknown. */
-#define GPS_NAVIGATION_MESSAGE_TYPE_UNKNOWN 0
-/** L1 C/A message contained in the structure. */
-#define GPS_NAVIGATION_MESSAGE_TYPE_L1CA 1
-/** L2-CNAV message contained in the structure. */
-#define GPS_NAVIGATION_MESSAGE_TYPE_L2CNAV 2
-/** L5-CNAV message contained in the structure. */
-#define GPS_NAVIGATION_MESSAGE_TYPE_L5CNAV 3
-/** CNAV-2 message contained in the structure. */
-#define GPS_NAVIGATION_MESSAGE_TYPE_CNAV2 4
-
-/**
- * Status of Navigation Message
- * When a message is received properly without any parity error in its navigation words, the
- * status should be set to NAV_MESSAGE_STATUS_PARITY_PASSED. But if a message is received
- * with words that failed parity check, but GPS is able to correct those words, the status
- * should be set to NAV_MESSAGE_STATUS_PARITY_REBUILT.
- * No need to send any navigation message that contains words with parity error and cannot be
- * corrected.
- */
-typedef uint16_t NavigationMessageStatus;
-#define NAV_MESSAGE_STATUS_UNKONW 0
-#define NAV_MESSAGE_STATUS_PARITY_PASSED (1<<0)
-#define NAV_MESSAGE_STATUS_PARITY_REBUILT (1<<1)
-
-/**
- * Name for the GPS XTRA interface.
- */
-#define GPS_XTRA_INTERFACE "gps-xtra"
-
-/**
- * Name for the GPS DEBUG interface.
- */
-#define GPS_DEBUG_INTERFACE "gps-debug"
-
-/**
- * Name for the AGPS interface.
- */
-#define AGPS_INTERFACE "agps"
-
-/**
- * Name of the Supl Certificate interface.
- */
-#define SUPL_CERTIFICATE_INTERFACE "supl-certificate"
-
-/**
- * Name for NI interface
- */
-#define GPS_NI_INTERFACE "gps-ni"
-
-/**
- * Name for the AGPS-RIL interface.
- */
-#define AGPS_RIL_INTERFACE "agps_ril"
-
-/**
- * Name for the GPS_Geofencing interface.
- */
-#define GPS_GEOFENCING_INTERFACE "gps_geofencing"
-
-/**
- * Name of the GPS Measurements interface.
- */
-#define GPS_MEASUREMENT_INTERFACE "gps_measurement"
-
-/**
- * Name of the GPS navigation message interface.
- */
-#define GPS_NAVIGATION_MESSAGE_INTERFACE "gps_navigation_message"
-
-/**
- * Name of the GNSS/GPS configuration interface.
- */
-#define GNSS_CONFIGURATION_INTERFACE "gnss_configuration"
-
-
-/** Represents a location. */
-typedef struct {
- /** set to sizeof(GpsLocation) */
- size_t size;
- /** Contains GpsLocationFlags bits. */
- uint16_t flags;
- /** Represents latitude in degrees. */
- double latitude;
- /** Represents longitude in degrees. */
- double longitude;
- /** Represents altitude in meters above the WGS 84 reference
- * ellipsoid. */
- double altitude;
- /** Represents speed in meters per second. */
- float speed;
- /** Represents heading in degrees. */
- float bearing;
- /** Represents expected accuracy in meters. */
- float accuracy;
- /** Timestamp for the location fix. */
- GpsUtcTime timestamp;
-} GpsLocation;
-
-/** Represents the status. */
-typedef struct {
- /** set to sizeof(GpsStatus) */
- size_t size;
- GpsStatusValue status;
-} GpsStatus;
-
-/** Represents SV information. */
-typedef struct {
- /** set to sizeof(GpsSvInfo) */
- size_t size;
- /** Pseudo-random number for the SV. */
- int prn;
- /** Signal to noise ratio. */
- float snr;
- /** Elevation of SV in degrees. */
- float elevation;
- /** Azimuth of SV in degrees. */
- float azimuth;
-} GpsSvInfo;
-
-
-/** Represents GNSS SV information. */
-typedef struct {
- /** set to sizeof(GnssSvInfo) */
- size_t size;
- /** Pseudo-random number for the SV. */
- int prn;
- /** Signal to noise ratio. */
- float snr;
- /** Elevation of SV in degrees. */
- float elevation;
- /** Azimuth of SV in degrees. */
- float azimuth;
- /**
- * SVs have ephemeris data.
- */
- bool has_ephemeris;
- /**
- * SVs have almanac data.
- */
- bool has_almanac;
- /**
- * SVs were used for computing the most recent position fix.
- */
- bool used_in_fix;
-} GnssSvInfo;
-
-/** Represents SV status. */
-typedef struct {
- /** set to sizeof(GpsSvStatus) */
- size_t size;
-
- /** Number of SVs currently visible. */
- int num_svs;
-
- /** Contains an array of SV information. */
- GpsSvInfo sv_list[GPS_MAX_SVS];
-
- /** Represents a bit mask indicating which SVs
- * have ephemeris data.
- */
- uint32_t ephemeris_mask;
-
- /** Represents a bit mask indicating which SVs
- * have almanac data.
- */
- uint32_t almanac_mask;
-
- /**
- * Represents a bit mask indicating which SVs
- * were used for computing the most recent position fix.
- */
- uint32_t used_in_fix_mask;
-} GpsSvStatus;
-
-
-/** Represents GNSS SV status. */
-typedef struct {
- /** set to sizeof(GnssSvStatus) */
- size_t size;
-
- /** Number of SVs currently visible. */
- int num_svs;
-
- /** Contains an array of GNSS SV information. */
- GnssSvInfo sv_list[GNSS_MAX_SVS];
-} GnssSvStatus;
-
-/* 2G and 3G */
-/* In 3G lac is discarded */
-typedef struct {
- uint16_t type;
- uint16_t mcc;
- uint16_t mnc;
- uint16_t lac;
- uint32_t cid;
-} AGpsRefLocationCellID;
-
-typedef struct {
- uint8_t mac[6];
-} AGpsRefLocationMac;
-
-/** Represents ref locations */
-typedef struct {
- uint16_t type;
- union {
- AGpsRefLocationCellID cellID;
- AGpsRefLocationMac mac;
- } u;
-} AGpsRefLocation;
-
-/** Callback with location information.
- * Can only be called from a thread created by create_thread_cb.
- */
-typedef void (* gps_location_callback)(GpsLocation* location);
-
-/** Callback with status information.
- * Can only be called from a thread created by create_thread_cb.
- */
-typedef void (* gps_status_callback)(GpsStatus* status);
-
-/**
- * Callback with SV status information.
- * Can only be called from a thread created by create_thread_cb.
- */
-typedef void (* gps_sv_status_callback)(GpsSvStatus* sv_info);
-
-/**
- * Callback with GNSS SV status information.
- * Can only be called from a thread created by create_thread_cb.
- */
-typedef void (* gnss_sv_status_callback)(GnssSvStatus* sv_info);
-
-/** Callback for reporting NMEA sentences.
- * Can only be called from a thread created by create_thread_cb.
- */
-typedef void (* gps_nmea_callback)(GpsUtcTime timestamp, const char* nmea, int length);
-
-/** Callback to inform framework of the GPS engine's capabilities.
- * Capability parameter is a bit field of GPS_CAPABILITY_* flags.
- */
-typedef void (* gps_set_capabilities)(uint32_t capabilities);
-
-/** Callback utility for acquiring the GPS wakelock.
- * This can be used to prevent the CPU from suspending while handling GPS events.
- */
-typedef void (* gps_acquire_wakelock)();
-
-/** Callback utility for releasing the GPS wakelock. */
-typedef void (* gps_release_wakelock)();
-
-/** Callback for requesting NTP time */
-typedef void (* gps_request_utc_time)();
-
-/** Callback for creating a thread that can call into the Java framework code.
- * This must be used to create any threads that report events up to the framework.
- */
-typedef pthread_t (* gps_create_thread)(const char* name, void (*start)(void *), void* arg);
-
-/** GPS callback structure. */
-typedef struct {
- /** set to sizeof(GpsCallbacks) */
- size_t size;
- gps_location_callback location_cb;
- gps_status_callback status_cb;
- gps_sv_status_callback sv_status_cb;
- gnss_sv_status_callback gnss_sv_status_cb;
- gps_nmea_callback nmea_cb;
- gps_set_capabilities set_capabilities_cb;
- gps_acquire_wakelock acquire_wakelock_cb;
- gps_release_wakelock release_wakelock_cb;
- gps_create_thread create_thread_cb;
- gps_request_utc_time request_utc_time_cb;
-} GpsCallbacks;
-
-
-/** Represents the standard GPS interface. */
-typedef struct {
- /** set to sizeof(GpsInterface) */
- size_t size;
- /**
- * Opens the interface and provides the callback routines
- * to the implementation of this interface.
- */
- int (*init)( GpsCallbacks* callbacks );
-
- /** Starts navigating. */
- int (*start)( void );
-
- /** Stops navigating. */
- int (*stop)( void );
-
- /** Closes the interface. */
- void (*cleanup)( void );
-
- /** Injects the current time. */
- int (*inject_time)(GpsUtcTime time, int64_t timeReference,
- int uncertainty);
-
- /** Injects current location from another location provider
- * (typically cell ID).
- * latitude and longitude are measured in degrees
- * expected accuracy is measured in meters
- */
- int (*inject_location)(double latitude, double longitude, float accuracy);
-
- /**
- * Specifies that the next call to start will not use the
- * information defined in the flags. GPS_DELETE_ALL is passed for
- * a cold start.
- */
- void (*delete_aiding_data)(GpsAidingData flags);
-
- /**
- * min_interval represents the time between fixes in milliseconds.
- * preferred_accuracy represents the requested fix accuracy in meters.
- * preferred_time represents the requested time to first fix in milliseconds.
- */
- int (*set_position_mode)(GpsPositionMode mode, GpsPositionRecurrence recurrence,
- uint32_t min_interval, uint32_t preferred_accuracy, uint32_t preferred_time);
-
- /** Get a pointer to extension information. */
- const void* (*get_extension)(const char* name);
-} GpsInterface;
-
-/** Callback to request the client to download XTRA data.
- * The client should download XTRA data and inject it by calling inject_xtra_data().
- * Can only be called from a thread created by create_thread_cb.
- */
-typedef void (* gps_xtra_download_request)();
-
-/** Callback structure for the XTRA interface. */
-typedef struct {
- gps_xtra_download_request download_request_cb;
- gps_create_thread create_thread_cb;
-} GpsXtraCallbacks;
-
-/** Extended interface for XTRA support. */
-typedef struct {
- /** set to sizeof(GpsXtraInterface) */
- size_t size;
- /**
- * Opens the XTRA interface and provides the callback routines
- * to the implementation of this interface.
- */
- int (*init)( GpsXtraCallbacks* callbacks );
- /** Injects XTRA data into the GPS. */
- int (*inject_xtra_data)( char* data, int length );
-} GpsXtraInterface;
-
-/** Extended interface for DEBUG support. */
-typedef struct {
- /** set to sizeof(GpsDebugInterface) */
- size_t size;
-
- /**
- * This function should return any information that the native
- * implementation wishes to include in a bugreport.
- */
- size_t (*get_internal_state)(char* buffer, size_t bufferSize);
-} GpsDebugInterface;
-
-/** Represents the status of AGPS. */
-typedef struct {
- /** set to sizeof(AGpsStatus_v1) */
- size_t size;
-
- AGpsType type;
- AGpsStatusValue status;
-} AGpsStatus_v1;
-
-/** Represents the status of AGPS augmented with a IPv4 address field. */
-typedef struct {
- /** set to sizeof(AGpsStatus_v2) */
- size_t size;
-
- AGpsType type;
- AGpsStatusValue status;
- uint32_t ipaddr;
-} AGpsStatus_v2;
-
-/* Represents the status of AGPS augmented to support IPv4 and IPv6. */
-typedef struct {
- /** set to sizeof(AGpsStatus_v3) */
- size_t size;
-
- AGpsType type;
- AGpsStatusValue status;
-
- /**
- * Must be set to a valid IPv4 address if the field 'addr' contains an IPv4
- * address, or set to INADDR_NONE otherwise.
- */
- uint32_t ipaddr;
-
- /**
- * Must contain the IPv4 (AF_INET) or IPv6 (AF_INET6) address to report.
- * Any other value of addr.ss_family will be rejected.
- * */
- struct sockaddr_storage addr;
-} AGpsStatus_v3;
-
-typedef AGpsStatus_v3 AGpsStatus;
-
-/** Callback with AGPS status information.
- * Can only be called from a thread created by create_thread_cb.
- */
-typedef void (* agps_status_callback)(AGpsStatus* status);
-
-/** Callback structure for the AGPS interface. */
-typedef struct {
- agps_status_callback status_cb;
- gps_create_thread create_thread_cb;
-} AGpsCallbacks;
-
-
-/** Extended interface for AGPS support. */
-typedef struct {
- /** set to sizeof(AGpsInterface_v1) */
- size_t size;
-
- /**
- * Opens the AGPS interface and provides the callback routines
- * to the implementation of this interface.
- */
- void (*init)( AGpsCallbacks* callbacks );
- /**
- * Notifies that a data connection is available and sets
- * the name of the APN to be used for SUPL.
- */
- int (*data_conn_open)( const char* apn );
- /**
- * Notifies that the AGPS data connection has been closed.
- */
- int (*data_conn_closed)();
- /**
- * Notifies that a data connection is not available for AGPS.
- */
- int (*data_conn_failed)();
- /**
- * Sets the hostname and port for the AGPS server.
- */
- int (*set_server)( AGpsType type, const char* hostname, int port );
-} AGpsInterface_v1;
-
-/**
- * Extended interface for AGPS support, it is augmented to enable to pass
- * extra APN data.
- */
-typedef struct {
- /** set to sizeof(AGpsInterface_v2) */
- size_t size;
-
- /**
- * Opens the AGPS interface and provides the callback routines to the
- * implementation of this interface.
- */
- void (*init)(AGpsCallbacks* callbacks);
- /**
- * Deprecated.
- * If the HAL supports AGpsInterface_v2 this API will not be used, see
- * data_conn_open_with_apn_ip_type for more information.
- */
- int (*data_conn_open)(const char* apn);
- /**
- * Notifies that the AGPS data connection has been closed.
- */
- int (*data_conn_closed)();
- /**
- * Notifies that a data connection is not available for AGPS.
- */
- int (*data_conn_failed)();
- /**
- * Sets the hostname and port for the AGPS server.
- */
- int (*set_server)(AGpsType type, const char* hostname, int port);
-
- /**
- * Notifies that a data connection is available and sets the name of the
- * APN, and its IP type, to be used for SUPL connections.
- */
- int (*data_conn_open_with_apn_ip_type)(
- const char* apn,
- ApnIpType apnIpType);
-} AGpsInterface_v2;
-
-typedef AGpsInterface_v2 AGpsInterface;
-
-/** Error codes associated with certificate operations */
-#define AGPS_CERTIFICATE_OPERATION_SUCCESS 0
-#define AGPS_CERTIFICATE_ERROR_GENERIC -100
-#define AGPS_CERTIFICATE_ERROR_TOO_MANY_CERTIFICATES -101
-
-/** A data structure that represents an X.509 certificate using DER encoding */
-typedef struct {
- size_t length;
- u_char* data;
-} DerEncodedCertificate;
-
-/**
- * A type definition for SHA1 Fingerprints used to identify X.509 Certificates
- * The Fingerprint is a digest of the DER Certificate that uniquely identifies it.
- */
-typedef struct {
- u_char data[20];
-} Sha1CertificateFingerprint;
-
-/** AGPS Interface to handle SUPL certificate operations */
-typedef struct {
- /** set to sizeof(SuplCertificateInterface) */
- size_t size;
-
- /**
- * Installs a set of Certificates used for SUPL connections to the AGPS server.
- * If needed the HAL should find out internally any certificates that need to be removed to
- * accommodate the certificates to install.
- * The certificates installed represent a full set of valid certificates needed to connect to
- * AGPS SUPL servers.
- * The list of certificates is required, and all must be available at the same time, when trying
- * to establish a connection with the AGPS Server.
- *
- * Parameters:
- * certificates - A pointer to an array of DER encoded certificates that are need to be
- * installed in the HAL.
- * length - The number of certificates to install.
- * Returns:
- * AGPS_CERTIFICATE_OPERATION_SUCCESS if the operation is completed successfully
- * AGPS_CERTIFICATE_ERROR_TOO_MANY_CERTIFICATES if the HAL cannot store the number of
- * certificates attempted to be installed, the state of the certificates stored should
- * remain the same as before on this error case.
- *
- * IMPORTANT:
- * If needed the HAL should find out internally the set of certificates that need to be
- * removed to accommodate the certificates to install.
- */
- int (*install_certificates) ( const DerEncodedCertificate* certificates, size_t length );
-
- /**
- * Notifies the HAL that a list of certificates used for SUPL connections are revoked. It is
- * expected that the given set of certificates is removed from the internal store of the HAL.
- *
- * Parameters:
- * fingerprints - A pointer to an array of SHA1 Fingerprints to identify the set of
- * certificates to revoke.
- * length - The number of fingerprints provided.
- * Returns:
- * AGPS_CERTIFICATE_OPERATION_SUCCESS if the operation is completed successfully.
- *
- * IMPORTANT:
- * If any of the certificates provided (through its fingerprint) is not known by the HAL,
- * it should be ignored and continue revoking/deleting the rest of them.
- */
- int (*revoke_certificates) ( const Sha1CertificateFingerprint* fingerprints, size_t length );
-} SuplCertificateInterface;
-
-/** Represents an NI request */
-typedef struct {
- /** set to sizeof(GpsNiNotification) */
- size_t size;
-
- /**
- * An ID generated by HAL to associate NI notifications and UI
- * responses
- */
- int notification_id;
-
- /**
- * An NI type used to distinguish different categories of NI
- * events, such as GPS_NI_TYPE_VOICE, GPS_NI_TYPE_UMTS_SUPL, ...
- */
- GpsNiType ni_type;
-
- /**
- * Notification/verification options, combinations of GpsNiNotifyFlags constants
- */
- GpsNiNotifyFlags notify_flags;
-
- /**
- * Timeout period to wait for user response.
- * Set to 0 for no time out limit.
- */
- int timeout;
-
- /**
- * Default response when time out.
- */
- GpsUserResponseType default_response;
-
- /**
- * Requestor ID
- */
- char requestor_id[GPS_NI_SHORT_STRING_MAXLEN];
-
- /**
- * Notification message. It can also be used to store client_id in some cases
- */
- char text[GPS_NI_LONG_STRING_MAXLEN];
-
- /**
- * Client name decoding scheme
- */
- GpsNiEncodingType requestor_id_encoding;
-
- /**
- * Client name decoding scheme
- */
- GpsNiEncodingType text_encoding;
-
- /**
- * A pointer to extra data. Format:
- * key_1 = value_1
- * key_2 = value_2
- */
- char extras[GPS_NI_LONG_STRING_MAXLEN];
-
-} GpsNiNotification;
-
-/** Callback with NI notification.
- * Can only be called from a thread created by create_thread_cb.
- */
-typedef void (*gps_ni_notify_callback)(GpsNiNotification *notification);
-
-/** GPS NI callback structure. */
-typedef struct
-{
- /**
- * Sends the notification request from HAL to GPSLocationProvider.
- */
- gps_ni_notify_callback notify_cb;
- gps_create_thread create_thread_cb;
-} GpsNiCallbacks;
-
-/**
- * Extended interface for Network-initiated (NI) support.
- */
-typedef struct
-{
- /** set to sizeof(GpsNiInterface) */
- size_t size;
-
- /** Registers the callbacks for HAL to use. */
- void (*init) (GpsNiCallbacks *callbacks);
-
- /** Sends a response to HAL. */
- void (*respond) (int notif_id, GpsUserResponseType user_response);
-} GpsNiInterface;
-
-struct gps_device_t {
- struct hw_device_t common;
-
- /**
- * Set the provided lights to the provided values.
- *
- * Returns: 0 on succes, error code on failure.
- */
- const GpsInterface* (*get_gps_interface)(struct gps_device_t* dev);
-};
-
-#define AGPS_RIL_REQUEST_SETID_IMSI (1<<0L)
-#define AGPS_RIL_REQUEST_SETID_MSISDN (1<<1L)
-
-#define AGPS_RIL_REQUEST_REFLOC_CELLID (1<<0L)
-#define AGPS_RIL_REQUEST_REFLOC_MAC (1<<1L)
-
-typedef void (*agps_ril_request_set_id)(uint32_t flags);
-typedef void (*agps_ril_request_ref_loc)(uint32_t flags);
-
-typedef struct {
- agps_ril_request_set_id request_setid;
- agps_ril_request_ref_loc request_refloc;
- gps_create_thread create_thread_cb;
-} AGpsRilCallbacks;
-
-/** Extended interface for AGPS_RIL support. */
-typedef struct {
- /** set to sizeof(AGpsRilInterface) */
- size_t size;
- /**
- * Opens the AGPS interface and provides the callback routines
- * to the implementation of this interface.
- */
- void (*init)( AGpsRilCallbacks* callbacks );
-
- /**
- * Sets the reference location.
- */
- void (*set_ref_location) (const AGpsRefLocation *agps_reflocation, size_t sz_struct);
- /**
- * Sets the set ID.
- */
- void (*set_set_id) (AGpsSetIDType type, const char* setid);
-
- /**
- * Send network initiated message.
- */
- void (*ni_message) (uint8_t *msg, size_t len);
-
- /**
- * Notify GPS of network status changes.
- * These parameters match values in the android.net.NetworkInfo class.
- */
- void (*update_network_state) (int connected, int type, int roaming, const char* extra_info);
-
- /**
- * Notify GPS of network status changes.
- * These parameters match values in the android.net.NetworkInfo class.
- */
- void (*update_network_availability) (int avaiable, const char* apn);
-} AGpsRilInterface;
-
-/**
- * GPS Geofence.
- * There are 3 states associated with a Geofence: Inside, Outside, Unknown.
- * There are 3 transitions: ENTERED, EXITED, UNCERTAIN.
- *
- * An example state diagram with confidence level: 95% and Unknown time limit
- * set as 30 secs is shown below. (confidence level and Unknown time limit are
- * explained latter)
- * ____________________________
- * | Unknown (30 secs) |
- * """"""""""""""""""""""""""""
- * ^ | | ^
- * UNCERTAIN| |ENTERED EXITED| |UNCERTAIN
- * | v v |
- * ________ EXITED _________
- * | Inside | -----------> | Outside |
- * | | <----------- | |
- * """""""" ENTERED """""""""
- *
- * Inside state: We are 95% confident that the user is inside the geofence.
- * Outside state: We are 95% confident that the user is outside the geofence
- * Unknown state: Rest of the time.
- *
- * The Unknown state is better explained with an example:
- *
- * __________
- * | c|
- * | ___ | _______
- * | |a| | | b |
- * | """ | """""""
- * | |
- * """"""""""
- * In the diagram above, "a" and "b" are 2 geofences and "c" is the accuracy
- * circle reported by the GPS subsystem. Now with regard to "b", the system is
- * confident that the user is outside. But with regard to "a" is not confident
- * whether it is inside or outside the geofence. If the accuracy remains the
- * same for a sufficient period of time, the UNCERTAIN transition would be
- * triggered with the state set to Unknown. If the accuracy improves later, an
- * appropriate transition should be triggered. This "sufficient period of time"
- * is defined by the parameter in the add_geofence_area API.
- * In other words, Unknown state can be interpreted as a state in which the
- * GPS subsystem isn't confident enough that the user is either inside or
- * outside the Geofence. It moves to Unknown state only after the expiry of the
- * timeout.
- *
- * The geofence callback needs to be triggered for the ENTERED and EXITED
- * transitions, when the GPS system is confident that the user has entered
- * (Inside state) or exited (Outside state) the Geofence. An implementation
- * which uses a value of 95% as the confidence is recommended. The callback
- * should be triggered only for the transitions requested by the
- * add_geofence_area call.
- *
- * Even though the diagram and explanation talks about states and transitions,
- * the callee is only interested in the transistions. The states are mentioned
- * here for illustrative purposes.
- *
- * Startup Scenario: When the device boots up, if an application adds geofences,
- * and then we get an accurate GPS location fix, it needs to trigger the
- * appropriate (ENTERED or EXITED) transition for every Geofence it knows about.
- * By default, all the Geofences will be in the Unknown state.
- *
- * When the GPS system is unavailable, gps_geofence_status_callback should be
- * called to inform the upper layers of the same. Similarly, when it becomes
- * available the callback should be called. This is a global state while the
- * UNKNOWN transition described above is per geofence.
- *
- * An important aspect to note is that users of this API (framework), will use
- * other subsystems like wifi, sensors, cell to handle Unknown case and
- * hopefully provide a definitive state transition to the third party
- * application. GPS Geofence will just be a signal indicating what the GPS
- * subsystem knows about the Geofence.
- *
- */
-#define GPS_GEOFENCE_ENTERED (1<<0L)
-#define GPS_GEOFENCE_EXITED (1<<1L)
-#define GPS_GEOFENCE_UNCERTAIN (1<<2L)
-
-#define GPS_GEOFENCE_UNAVAILABLE (1<<0L)
-#define GPS_GEOFENCE_AVAILABLE (1<<1L)
-
-#define GPS_GEOFENCE_OPERATION_SUCCESS 0
-#define GPS_GEOFENCE_ERROR_TOO_MANY_GEOFENCES -100
-#define GPS_GEOFENCE_ERROR_ID_EXISTS -101
-#define GPS_GEOFENCE_ERROR_ID_UNKNOWN -102
-#define GPS_GEOFENCE_ERROR_INVALID_TRANSITION -103
-#define GPS_GEOFENCE_ERROR_GENERIC -149
-
-/**
- * The callback associated with the geofence.
- * Parameters:
- * geofence_id - The id associated with the add_geofence_area.
- * location - The current GPS location.
- * transition - Can be one of GPS_GEOFENCE_ENTERED, GPS_GEOFENCE_EXITED,
- * GPS_GEOFENCE_UNCERTAIN.
- * timestamp - Timestamp when the transition was detected.
- *
- * The callback should only be called when the caller is interested in that
- * particular transition. For instance, if the caller is interested only in
- * ENTERED transition, then the callback should NOT be called with the EXITED
- * transition.
- *
- * IMPORTANT: If a transition is triggered resulting in this callback, the GPS
- * subsystem will wake up the application processor, if its in suspend state.
- */
-typedef void (*gps_geofence_transition_callback) (int32_t geofence_id, GpsLocation* location,
- int32_t transition, GpsUtcTime timestamp);
-
-/**
- * The callback associated with the availability of the GPS system for geofencing
- * monitoring. If the GPS system determines that it cannot monitor geofences
- * because of lack of reliability or unavailability of the GPS signals, it will
- * call this callback with GPS_GEOFENCE_UNAVAILABLE parameter.
- *
- * Parameters:
- * status - GPS_GEOFENCE_UNAVAILABLE or GPS_GEOFENCE_AVAILABLE.
- * last_location - Last known location.
- */
-typedef void (*gps_geofence_status_callback) (int32_t status, GpsLocation* last_location);
-
-/**
- * The callback associated with the add_geofence call.
- *
- * Parameter:
- * geofence_id - Id of the geofence.
- * status - GPS_GEOFENCE_OPERATION_SUCCESS
- * GPS_GEOFENCE_ERROR_TOO_MANY_GEOFENCES - geofence limit has been reached.
- * GPS_GEOFENCE_ERROR_ID_EXISTS - geofence with id already exists
- * GPS_GEOFENCE_ERROR_INVALID_TRANSITION - the monitorTransition contains an
- * invalid transition
- * GPS_GEOFENCE_ERROR_GENERIC - for other errors.
- */
-typedef void (*gps_geofence_add_callback) (int32_t geofence_id, int32_t status);
-
-/**
- * The callback associated with the remove_geofence call.
- *
- * Parameter:
- * geofence_id - Id of the geofence.
- * status - GPS_GEOFENCE_OPERATION_SUCCESS
- * GPS_GEOFENCE_ERROR_ID_UNKNOWN - for invalid id
- * GPS_GEOFENCE_ERROR_GENERIC for others.
- */
-typedef void (*gps_geofence_remove_callback) (int32_t geofence_id, int32_t status);
-
-
-/**
- * The callback associated with the pause_geofence call.
- *
- * Parameter:
- * geofence_id - Id of the geofence.
- * status - GPS_GEOFENCE_OPERATION_SUCCESS
- * GPS_GEOFENCE_ERROR_ID_UNKNOWN - for invalid id
- * GPS_GEOFENCE_ERROR_INVALID_TRANSITION -
- * when monitor_transitions is invalid
- * GPS_GEOFENCE_ERROR_GENERIC for others.
- */
-typedef void (*gps_geofence_pause_callback) (int32_t geofence_id, int32_t status);
-
-/**
- * The callback associated with the resume_geofence call.
- *
- * Parameter:
- * geofence_id - Id of the geofence.
- * status - GPS_GEOFENCE_OPERATION_SUCCESS
- * GPS_GEOFENCE_ERROR_ID_UNKNOWN - for invalid id
- * GPS_GEOFENCE_ERROR_GENERIC for others.
- */
-typedef void (*gps_geofence_resume_callback) (int32_t geofence_id, int32_t status);
-
-typedef struct {
- gps_geofence_transition_callback geofence_transition_callback;
- gps_geofence_status_callback geofence_status_callback;
- gps_geofence_add_callback geofence_add_callback;
- gps_geofence_remove_callback geofence_remove_callback;
- gps_geofence_pause_callback geofence_pause_callback;
- gps_geofence_resume_callback geofence_resume_callback;
- gps_create_thread create_thread_cb;
-} GpsGeofenceCallbacks;
-
-/** Extended interface for GPS_Geofencing support */
-typedef struct {
- /** set to sizeof(GpsGeofencingInterface) */
- size_t size;
-
- /**
- * Opens the geofence interface and provides the callback routines
- * to the implementation of this interface.
- */
- void (*init)( GpsGeofenceCallbacks* callbacks );
-
- /**
- * Add a geofence area. This api currently supports circular geofences.
- * Parameters:
- * geofence_id - The id for the geofence. If a geofence with this id
- * already exists, an error value (GPS_GEOFENCE_ERROR_ID_EXISTS)
- * should be returned.
- * latitude, longtitude, radius_meters - The lat, long and radius
- * (in meters) for the geofence
- * last_transition - The current state of the geofence. For example, if
- * the system already knows that the user is inside the geofence,
- * this will be set to GPS_GEOFENCE_ENTERED. In most cases, it
- * will be GPS_GEOFENCE_UNCERTAIN.
- * monitor_transition - Which transitions to monitor. Bitwise OR of
- * GPS_GEOFENCE_ENTERED, GPS_GEOFENCE_EXITED and
- * GPS_GEOFENCE_UNCERTAIN.
- * notification_responsiveness_ms - Defines the best-effort description
- * of how soon should the callback be called when the transition
- * associated with the Geofence is triggered. For instance, if set
- * to 1000 millseconds with GPS_GEOFENCE_ENTERED, the callback
- * should be called 1000 milliseconds within entering the geofence.
- * This parameter is defined in milliseconds.
- * NOTE: This is not to be confused with the rate that the GPS is
- * polled at. It is acceptable to dynamically vary the rate of
- * sampling the GPS for power-saving reasons; thus the rate of
- * sampling may be faster or slower than this.
- * unknown_timer_ms - The time limit after which the UNCERTAIN transition
- * should be triggered. This parameter is defined in milliseconds.
- * See above for a detailed explanation.
- */
- void (*add_geofence_area) (int32_t geofence_id, double latitude, double longitude,
- double radius_meters, int last_transition, int monitor_transitions,
- int notification_responsiveness_ms, int unknown_timer_ms);
-
- /**
- * Pause monitoring a particular geofence.
- * Parameters:
- * geofence_id - The id for the geofence.
- */
- void (*pause_geofence) (int32_t geofence_id);
-
- /**
- * Resume monitoring a particular geofence.
- * Parameters:
- * geofence_id - The id for the geofence.
- * monitor_transitions - Which transitions to monitor. Bitwise OR of
- * GPS_GEOFENCE_ENTERED, GPS_GEOFENCE_EXITED and
- * GPS_GEOFENCE_UNCERTAIN.
- * This supersedes the value associated provided in the
- * add_geofence_area call.
- */
- void (*resume_geofence) (int32_t geofence_id, int monitor_transitions);
-
- /**
- * Remove a geofence area. After the function returns, no notifications
- * should be sent.
- * Parameter:
- * geofence_id - The id for the geofence.
- */
- void (*remove_geofence_area) (int32_t geofence_id);
-} GpsGeofencingInterface;
-
-
-/**
- * Represents an estimate of the GPS clock time.
- */
-typedef struct {
- /** set to sizeof(GpsClock) */
- size_t size;
-
- /** A set of flags indicating the validity of the fields in this data structure. */
- GpsClockFlags flags;
-
- /**
- * Leap second data.
- * The sign of the value is defined by the following equation:
- * utc_time_ns = time_ns + (full_bias_ns + bias_ns) - leap_second * 1,000,000,000
- *
- * If the data is available 'flags' must contain GPS_CLOCK_HAS_LEAP_SECOND.
- */
- int16_t leap_second;
-
- /**
- * Indicates the type of time reported by the 'time_ns' field.
- * This is a Mandatory field.
- */
- GpsClockType type;
-
- /**
- * The GPS receiver internal clock value. This can be either the local hardware clock value
- * (GPS_CLOCK_TYPE_LOCAL_HW_TIME), or the current GPS time derived inside GPS receiver
- * (GPS_CLOCK_TYPE_GPS_TIME). The field 'type' defines the time reported.
- *
- * For local hardware clock, this value is expected to be monotonically increasing during
- * the reporting session. The real GPS time can be derived by compensating the 'full bias'
- * (when it is available) from this value.
- *
- * For GPS time, this value is expected to be the best estimation of current GPS time that GPS
- * receiver can achieve. Set the 'time uncertainty' appropriately when GPS time is specified.
- *
- * Sub-nanosecond accuracy can be provided by means of the 'bias' field.
- * The value contains the 'time uncertainty' in it.
- *
- * This is a Mandatory field.
- */
- int64_t time_ns;
-
- /**
- * 1-Sigma uncertainty associated with the clock's time in nanoseconds.
- * The uncertainty is represented as an absolute (single sided) value.
- *
- * This value should be set if GPS_CLOCK_TYPE_GPS_TIME is set.
- * If the data is available 'flags' must contain GPS_CLOCK_HAS_TIME_UNCERTAINTY.
- */
- double time_uncertainty_ns;
-
- /**
- * The difference between hardware clock ('time' field) inside GPS receiver and the true GPS
- * time since 0000Z, January 6, 1980, in nanoseconds.
- * This value is used if and only if GPS_CLOCK_TYPE_LOCAL_HW_TIME is set, and GPS receiver
- * has solved the clock for GPS time.
- * The caller is responsible for using the 'bias uncertainty' field for quality check.
- *
- * The sign of the value is defined by the following equation:
- * true time (GPS time) = time_ns + (full_bias_ns + bias_ns)
- *
- * This value contains the 'bias uncertainty' in it.
- * If the data is available 'flags' must contain GPS_CLOCK_HAS_FULL_BIAS.
-
- */
- int64_t full_bias_ns;
-
- /**
- * Sub-nanosecond bias.
- * The value contains the 'bias uncertainty' in it.
- *
- * If the data is available 'flags' must contain GPS_CLOCK_HAS_BIAS.
- */
- double bias_ns;
-
- /**
- * 1-Sigma uncertainty associated with the clock's bias in nanoseconds.
- * The uncertainty is represented as an absolute (single sided) value.
- *
- * If the data is available 'flags' must contain GPS_CLOCK_HAS_BIAS_UNCERTAINTY.
- */
- double bias_uncertainty_ns;
-
- /**
- * The clock's drift in nanoseconds (per second).
- * A positive value means that the frequency is higher than the nominal frequency.
- *
- * The value contains the 'drift uncertainty' in it.
- * If the data is available 'flags' must contain GPS_CLOCK_HAS_DRIFT.
- */
- double drift_nsps;
-
- /**
- * 1-Sigma uncertainty associated with the clock's drift in nanoseconds (per second).
- * The uncertainty is represented as an absolute (single sided) value.
- *
- * If the data is available 'flags' must contain GPS_CLOCK_HAS_DRIFT_UNCERTAINTY.
- */
- double drift_uncertainty_nsps;
-} GpsClock;
-
-/**
- * Represents a GPS Measurement, it contains raw and computed information.
- */
-typedef struct {
- /** set to sizeof(GpsMeasurement) */
- size_t size;
-
- /** A set of flags indicating the validity of the fields in this data structure. */
- GpsMeasurementFlags flags;
-
- /**
- * Pseudo-random number in the range of [1, 32]
- * This is a Mandatory value.
- */
- int8_t prn;
-
- /**
- * Time offset at which the measurement was taken in nanoseconds.
- * The reference receiver's time is specified by GpsData::clock::time_ns and should be
- * interpreted in the same way as indicated by GpsClock::type.
- *
- * The sign of time_offset_ns is given by the following equation:
- * measurement time = GpsClock::time_ns + time_offset_ns
- *
- * It provides an individual time-stamp for the measurement, and allows sub-nanosecond accuracy.
- * This is a Mandatory value.
- */
- double time_offset_ns;
-
- /**
- * Per satellite sync state. It represents the current sync state for the associated satellite.
- * Based on the sync state, the 'received GPS tow' field should be interpreted accordingly.
- *
- * This is a Mandatory value.
- */
- GpsMeasurementState state;
-
- /**
- * Received GPS Time-of-Week at the measurement time, in nanoseconds.
- * The value is relative to the beginning of the current GPS week.
- *
- * Given the highest sync state that can be achieved, per each satellite, valid range for
- * this field can be:
- * Searching : [ 0 ] : GPS_MEASUREMENT_STATE_UNKNOWN
- * C/A code lock : [ 0 1ms ] : GPS_MEASUREMENT_STATE_CODE_LOCK is set
- * Bit sync : [ 0 20ms ] : GPS_MEASUREMENT_STATE_BIT_SYNC is set
- * Subframe sync : [ 0 6s ] : GPS_MEASUREMENT_STATE_SUBFRAME_SYNC is set
- * TOW decoded : [ 0 1week ] : GPS_MEASUREMENT_STATE_TOW_DECODED is set
- *
- * However, if there is any ambiguity in integer millisecond,
- * GPS_MEASUREMENT_STATE_MSEC_AMBIGUOUS should be set accordingly, in the 'state' field.
- */
- int64_t received_gps_tow_ns;
-
- /**
- * 1-Sigma uncertainty of the Received GPS Time-of-Week in nanoseconds.
- */
- int64_t received_gps_tow_uncertainty_ns;
-
- /**
- * Carrier-to-noise density in dB-Hz, in the range [0, 63].
- * It contains the measured C/N0 value for the signal at the antenna input.
- *
- * This is a Mandatory value.
- */
- double c_n0_dbhz;
-
- /**
- * Pseudorange rate at the timestamp in m/s.
- * The value also includes the effects of the receiver clock frequency and satellite clock
- * frequency errors.
- *
- * The value includes the 'pseudorange rate uncertainty' in it.
- * A positive value indicates that the pseudorange is getting larger.
- *
- * This is a Mandatory value.
- */
- double pseudorange_rate_mps;
-
- /**
- * 1-Sigma uncertainty of the pseudurange rate in m/s.
- * The uncertainty is represented as an absolute (single sided) value.
- *
- * This is a Mandatory value.
- */
- double pseudorange_rate_uncertainty_mps;
-
- /**
- * Accumulated delta range's state. It indicates whether ADR is reset or there is a cycle slip
- * (indicating loss of lock).
- *
- * This is a Mandatory value.
- */
- GpsAccumulatedDeltaRangeState accumulated_delta_range_state;
-
- /**
- * Accumulated delta range since the last channel reset in meters.
- * The data is available if 'accumulated delta range state' != GPS_ADR_STATE_UNKNOWN.
- */
- double accumulated_delta_range_m;
-
- /**
- * 1-Sigma uncertainty of the accumulated delta range in meters.
- * The data is available if 'accumulated delta range state' != GPS_ADR_STATE_UNKNOWN.
- */
- double accumulated_delta_range_uncertainty_m;
-
- /**
- * Best derived Pseudorange by the chip-set, in meters.
- * The value contains the 'pseudorange uncertainty' in it.
- *
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_PSEUDORANGE.
- */
- double pseudorange_m;
-
- /**
- * 1-Sigma uncertainty of the pseudorange in meters.
- * The value contains the 'pseudorange' and 'clock' uncertainty in it.
- * The uncertainty is represented as an absolute (single sided) value.
- *
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_PSEUDORANGE_UNCERTAINTY.
- */
- double pseudorange_uncertainty_m;
-
- /**
- * A fraction of the current C/A code cycle, in the range [0.0, 1023.0]
- * This value contains the time (in Chip units) since the last C/A code cycle (GPS Msec epoch).
- *
- * The reference frequency is given by the field 'carrier_frequency_hz'.
- * The value contains the 'code-phase uncertainty' in it.
- *
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_CODE_PHASE.
- */
- double code_phase_chips;
-
- /**
- * 1-Sigma uncertainty of the code-phase, in a fraction of chips.
- * The uncertainty is represented as an absolute (single sided) value.
- *
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_CODE_PHASE_UNCERTAINTY.
- */
- double code_phase_uncertainty_chips;
-
- /**
- * Carrier frequency at which codes and messages are modulated, it can be L1 or L2.
- * If the field is not set, the carrier frequency is assumed to be L1.
- *
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_CARRIER_FREQUENCY.
- */
- float carrier_frequency_hz;
-
- /**
- * The number of full carrier cycles between the satellite and the receiver.
- * The reference frequency is given by the field 'carrier_frequency_hz'.
- *
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_CARRIER_CYCLES.
- */
- int64_t carrier_cycles;
-
- /**
- * The RF phase detected by the receiver, in the range [0.0, 1.0].
- * This is usually the fractional part of the complete carrier phase measurement.
- *
- * The reference frequency is given by the field 'carrier_frequency_hz'.
- * The value contains the 'carrier-phase uncertainty' in it.
- *
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_CARRIER_PHASE.
- */
- double carrier_phase;
-
- /**
- * 1-Sigma uncertainty of the carrier-phase.
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY.
- */
- double carrier_phase_uncertainty;
-
- /**
- * An enumeration that indicates the 'loss of lock' state of the event.
- */
- GpsLossOfLock loss_of_lock;
-
- /**
- * The number of GPS bits transmitted since Sat-Sun midnight (GPS week).
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_BIT_NUMBER.
- */
- int32_t bit_number;
-
- /**
- * The elapsed time since the last received bit in milliseconds, in the range [0, 20]
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_TIME_FROM_LAST_BIT.
- */
- int16_t time_from_last_bit_ms;
-
- /**
- * Doppler shift in Hz.
- * A positive value indicates that the SV is moving toward the receiver.
- *
- * The reference frequency is given by the field 'carrier_frequency_hz'.
- * The value contains the 'doppler shift uncertainty' in it.
- *
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_DOPPLER_SHIFT.
- */
- double doppler_shift_hz;
-
- /**
- * 1-Sigma uncertainty of the doppler shift in Hz.
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_DOPPLER_SHIFT_UNCERTAINTY.
- */
- double doppler_shift_uncertainty_hz;
-
- /**
- * An enumeration that indicates the 'multipath' state of the event.
- */
- GpsMultipathIndicator multipath_indicator;
-
- /**
- * Signal-to-noise ratio in dB.
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_SNR.
- */
- double snr_db;
-
- /**
- * Elevation in degrees, the valid range is [-90, 90].
- * The value contains the 'elevation uncertainty' in it.
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_ELEVATION.
- */
- double elevation_deg;
-
- /**
- * 1-Sigma uncertainty of the elevation in degrees, the valid range is [0, 90].
- * The uncertainty is represented as the absolute (single sided) value.
- *
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_ELEVATION_UNCERTAINTY.
- */
- double elevation_uncertainty_deg;
-
- /**
- * Azimuth in degrees, in the range [0, 360).
- * The value contains the 'azimuth uncertainty' in it.
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_AZIMUTH.
- * */
- double azimuth_deg;
-
- /**
- * 1-Sigma uncertainty of the azimuth in degrees, the valid range is [0, 180].
- * The uncertainty is represented as an absolute (single sided) value.
- *
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_AZIMUTH_UNCERTAINTY.
- */
- double azimuth_uncertainty_deg;
-
- /**
- * Whether the GPS represented by the measurement was used for computing the most recent fix.
- * If the data is available, 'flags' must contain GPS_MEASUREMENT_HAS_USED_IN_FIX.
- */
- bool used_in_fix;
-} GpsMeasurement;
-
-/** Represents a reading of GPS measurements. */
-typedef struct {
- /** set to sizeof(GpsData) */
- size_t size;
-
- /** Number of measurements. */
- size_t measurement_count;
-
- /** The array of measurements. */
- GpsMeasurement measurements[GPS_MAX_MEASUREMENT];
-
- /** The GPS clock time reading. */
- GpsClock clock;
-} GpsData;
-
-/**
- * The callback for to report measurements from the HAL.
- *
- * Parameters:
- * data - A data structure containing the measurements.
- */
-typedef void (*gps_measurement_callback) (GpsData* data);
-
-typedef struct {
- /** set to sizeof(GpsMeasurementCallbacks) */
- size_t size;
- gps_measurement_callback measurement_callback;
-} GpsMeasurementCallbacks;
-
-#define GPS_MEASUREMENT_OPERATION_SUCCESS 0
-#define GPS_MEASUREMENT_ERROR_ALREADY_INIT -100
-#define GPS_MEASUREMENT_ERROR_GENERIC -101
-
-/**
- * Extended interface for GPS Measurements support.
- */
-typedef struct {
- /** Set to sizeof(GpsMeasurementInterface) */
- size_t size;
-
- /**
- * Initializes the interface and registers the callback routines with the HAL.
- * After a successful call to 'init' the HAL must begin to provide updates at its own phase.
- *
- * Status:
- * GPS_MEASUREMENT_OPERATION_SUCCESS
- * GPS_MEASUREMENT_ERROR_ALREADY_INIT - if a callback has already been registered without a
- * corresponding call to 'close'
- * GPS_MEASUREMENT_ERROR_GENERIC - if any other error occurred, it is expected that the HAL
- * will not generate any updates upon returning this error code.
- */
- int (*init) (GpsMeasurementCallbacks* callbacks);
-
- /**
- * Stops updates from the HAL, and unregisters the callback routines.
- * After a call to stop, the previously registered callbacks must be considered invalid by the
- * HAL.
- * If stop is invoked without a previous 'init', this function should perform no work.
- */
- void (*close) ();
-
-} GpsMeasurementInterface;
-
-
-/** Represents a GPS navigation message (or a fragment of it). */
-typedef struct {
- /** set to sizeof(GpsNavigationMessage) */
- size_t size;
-
- /**
- * Pseudo-random number in the range of [1, 32]
- * This is a Mandatory value.
- */
- int8_t prn;
-
- /**
- * The type of message contained in the structure.
- * This is a Mandatory value.
- */
- GpsNavigationMessageType type;
-
- /**
- * The status of the received navigation message.
- * No need to send any navigation message that contains words with parity error and cannot be
- * corrected.
- */
- NavigationMessageStatus status;
-
- /**
- * Message identifier.
- * It provides an index so the complete Navigation Message can be assembled. i.e. fo L1 C/A
- * subframe 4 and 5, this value corresponds to the 'frame id' of the navigation message.
- * Subframe 1, 2, 3 does not contain a 'frame id' and this value can be set to -1.
- */
- int16_t message_id;
-
- /**
- * Sub-message identifier.
- * If required by the message 'type', this value contains a sub-index within the current
- * message (or frame) that is being transmitted.
- * i.e. for L1 C/A the submessage id corresponds to the sub-frame id of the navigation message.
- */
- int16_t submessage_id;
-
- /**
- * The length of the data (in bytes) contained in the current message.
- * If this value is different from zero, 'data' must point to an array of the same size.
- * e.g. for L1 C/A the size of the sub-frame will be 40 bytes (10 words, 30 bits/word).
- *
- * This is a Mandatory value.
- */
- size_t data_length;
-
- /**
- * The data of the reported GPS message.
- * The bytes (or words) specified using big endian format (MSB first).
- *
- * For L1 C/A, each subframe contains 10 30-bit GPS words. Each GPS word (30 bits) should be
- * fitted into the last 30 bits in a 4-byte word (skip B31 and B32), with MSB first.
- */
- uint8_t* data;
-
-} GpsNavigationMessage;
-
-/**
- * The callback to report an available fragment of a GPS navigation messages from the HAL.
- *
- * Parameters:
- * message - The GPS navigation submessage/subframe representation.
- */
-typedef void (*gps_navigation_message_callback) (GpsNavigationMessage* message);
-
-typedef struct {
- /** set to sizeof(GpsNavigationMessageCallbacks) */
- size_t size;
- gps_navigation_message_callback navigation_message_callback;
-} GpsNavigationMessageCallbacks;
-
-#define GPS_NAVIGATION_MESSAGE_OPERATION_SUCCESS 0
-#define GPS_NAVIGATION_MESSAGE_ERROR_ALREADY_INIT -100
-#define GPS_NAVIGATION_MESSAGE_ERROR_GENERIC -101
-
-/**
- * Extended interface for GPS navigation message reporting support.
- */
-typedef struct {
- /** Set to sizeof(GpsNavigationMessageInterface) */
- size_t size;
-
- /**
- * Initializes the interface and registers the callback routines with the HAL.
- * After a successful call to 'init' the HAL must begin to provide updates as they become
- * available.
- *
- * Status:
- * GPS_NAVIGATION_MESSAGE_OPERATION_SUCCESS
- * GPS_NAVIGATION_MESSAGE_ERROR_ALREADY_INIT - if a callback has already been registered
- * without a corresponding call to 'close'.
- * GPS_NAVIGATION_MESSAGE_ERROR_GENERIC - if any other error occurred, it is expected that
- * the HAL will not generate any updates upon returning this error code.
- */
- int (*init) (GpsNavigationMessageCallbacks* callbacks);
-
- /**
- * Stops updates from the HAL, and unregisters the callback routines.
- * After a call to stop, the previously registered callbacks must be considered invalid by the
- * HAL.
- * If stop is invoked without a previous 'init', this function should perform no work.
- */
- void (*close) ();
-
-} GpsNavigationMessageInterface;
-
-/**
- * Interface for passing GNSS configuration contents from platform to HAL.
- */
-typedef struct {
- /** Set to sizeof(GnssConfigurationInterface) */
- size_t size;
-
- /**
- * Deliver GNSS configuration contents to HAL.
- * Parameters:
- * config_data - a pointer to a char array which holds what usually is expected from
- file(/etc/gps.conf), i.e., a sequence of UTF8 strings separated by '\n'.
- * length - total number of UTF8 characters in configuraiton data.
- *
- * IMPORTANT:
- * GPS HAL should expect this function can be called multiple times. And it may be
- * called even when GpsLocationProvider is already constructed and enabled. GPS HAL
- * should maintain the existing requests for various callback regardless the change
- * in configuration data.
- */
- void (*configuration_update) (const char* config_data, int32_t length);
-} GnssConfigurationInterface;
-
-__END_DECLS
-
-#endif /* ANDROID_INCLUDE_HARDWARE_GPS_H */
-
diff --git a/mtk/lib_driver_cmd_mt66xx/Android.mk b/lib_driver_cmd_mt66xx/Android.mk
old mode 100755
new mode 100644
similarity index 100%
rename from mtk/lib_driver_cmd_mt66xx/Android.mk
rename to lib_driver_cmd_mt66xx/Android.mk
diff --git a/mtk/lib_driver_cmd_mt66xx/mediatek_driver_cmd_nl80211.c b/lib_driver_cmd_mt66xx/mediatek_driver_cmd_nl80211.c
old mode 100755
new mode 100644
similarity index 99%
rename from mtk/lib_driver_cmd_mt66xx/mediatek_driver_cmd_nl80211.c
rename to lib_driver_cmd_mt66xx/mediatek_driver_cmd_nl80211.c
index 9b66b1fec9713bc558190e4d1cd3e2836472d5df..f9f081ea41022a83fb17e3b8c04403bba38bb06c
--- a/mtk/lib_driver_cmd_mt66xx/mediatek_driver_cmd_nl80211.c
+++ b/lib_driver_cmd_mt66xx/mediatek_driver_cmd_nl80211.c
@@ -1,4 +1,15 @@
-#include "hardware_legacy/driver_nl80211.h"
+#include "includes.h"
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "common.h"
+#include "linux_ioctl.h"
+#include "driver_nl80211.h"
#include "mediatek_driver_nl80211.h"
#include "wpa_supplicant_i.h"
#include "config.h"
@@ -358,12 +369,6 @@ static void wpa_driver_nl80211_scan_loading_timeout(void *eloop_ctx, void *timeo
NULL);
}
#endif
-static void * nl80211_cmd(struct wpa_driver_nl80211_data *drv,
- struct nl_msg *msg, int flags, uint8_t cmd)
-{
- return genlmsg_put(msg, 0, 0, drv->global->nl80211_id,
- 0, flags, cmd, 0);
-}
int wpa_driver_nl80211_testmode(void *priv, const u8 *data,
size_t data_len)
diff --git a/mtk/lib_driver_cmd_mt66xx/mediatek_driver_nl80211.h b/lib_driver_cmd_mt66xx/mediatek_driver_nl80211.h
old mode 100755
new mode 100644
similarity index 99%
rename from mtk/lib_driver_cmd_mt66xx/mediatek_driver_nl80211.h
rename to lib_driver_cmd_mt66xx/mediatek_driver_nl80211.h
index 39f2e184c27242c08f41a1e8e06104980901d988..067a75660579fb8034ebbbd51b7ff3e1a7bdc662
--- a/mtk/lib_driver_cmd_mt66xx/mediatek_driver_nl80211.h
+++ b/lib_driver_cmd_mt66xx/mediatek_driver_nl80211.h
@@ -1,6 +1,8 @@
#ifndef _MTK_DRIVER_NL80211_H_
#define _MTK_DRIVER_NL80211_H_
+#include
+
#ifndef BITS
/* Eddie */
/* bits range: for example BITS(16,23) = 0xFF0000
diff --git a/libmtk_symbols/Android.mk b/libmtk_symbols/Android.mk
new file mode 100644
index 0000000000000000000000000000000000000000..9eb81bbdecbad453c2abc73eb952638304a17b4d
--- /dev/null
+++ b/libmtk_symbols/Android.mk
@@ -0,0 +1,22 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+ mtk_gui.cpp \
+ mtk_ui.cpp \
+ mtk_omx.cpp \
+ icu55.c \
+ icu53.c \
+ ssl.c
+
+# only for 32bit libraries
+LOCAL_SRC_FILES_32 := mtk_string.cpp
+# only for 64bit libraries
+LOCAL_SRC_FILES_64 := mtk_parcel.cpp
+
+LOCAL_SHARED_LIBRARIES := libbinder libutils liblog libgui libui \
+ libicuuc libicui18n libcrypto
+LOCAL_MODULE := libmtk_symbols
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/libmtk_symbols/icu53.c b/libmtk_symbols/icu53.c
new file mode 100644
index 0000000000000000000000000000000000000000..a7752fd9a7e6d56870a4a18253cc16b002f43747
--- /dev/null
+++ b/libmtk_symbols/icu53.c
@@ -0,0 +1,72 @@
+#include "unicode/ucnv.h"
+
+U_STABLE UConverter* U_EXPORT2
+ucnv_open_53(const char *converterName, UErrorCode *err)
+{
+ return ucnv_open(converterName, err);
+}
+
+U_STABLE void U_EXPORT2
+ucnv_close_53(UConverter * converter)
+{
+ return ucnv_close(converter);
+}
+
+U_STABLE void U_EXPORT2 UCNV_TO_U_CALLBACK_STOP_53(
+ const void *context,
+ UConverterToUnicodeArgs *toUArgs,
+ const char* codeUnits,
+ int32_t length,
+ UConverterCallbackReason reason,
+ UErrorCode * err)
+{
+ UCNV_TO_U_CALLBACK_STOP(context, toUArgs, codeUnits, length, reason, err);
+}
+
+U_STABLE void U_EXPORT2 UCNV_FROM_U_CALLBACK_STOP_53(
+ const void *context,
+ UConverterFromUnicodeArgs *fromUArgs,
+ const UChar* codeUnits,
+ int32_t length,
+ UChar32 codePoint,
+ UConverterCallbackReason reason,
+ UErrorCode * err)
+{
+ UCNV_FROM_U_CALLBACK_STOP (context, fromUArgs, codeUnits, length, codePoint, reason, err);
+}
+
+U_STABLE void U_EXPORT2
+ucnv_setToUCallBack_53(UConverter * converter,
+ UConverterToUCallback newAction,
+ const void* newContext,
+ UConverterToUCallback *oldAction,
+ const void** oldContext,
+ UErrorCode * err)
+{
+ ucnv_setToUCallBack(converter, newAction, newContext, oldAction, oldContext, err);
+}
+
+U_STABLE void U_EXPORT2
+ucnv_setFromUCallBack_53(UConverter * converter,
+ UConverterFromUCallback newAction,
+ const void *newContext,
+ UConverterFromUCallback *oldAction,
+ const void **oldContext,
+ UErrorCode * err)
+{
+ ucnv_setFromUCallBack(converter, newAction, newContext, oldAction, oldContext, err);
+}
+
+U_STABLE void U_EXPORT2
+ucnv_convertEx_53(UConverter *targetCnv, UConverter *sourceCnv,
+ char **target, const char *targetLimit,
+ const char **source, const char *sourceLimit,
+ UChar *pivotStart, UChar **pivotSource,
+ UChar **pivotTarget, const UChar *pivotLimit,
+ UBool reset, UBool flush,
+ UErrorCode *pErrorCode)
+{
+ ucnv_convertEx(targetCnv, sourceCnv, target, targetLimit, source, sourceLimit,
+ pivotStart, pivotSource, pivotTarget, pivotLimit, reset, flush,
+ pErrorCode);
+}
diff --git a/libmtk_symbols/icu55.c b/libmtk_symbols/icu55.c
new file mode 100644
index 0000000000000000000000000000000000000000..2e4786e2d4efd15268cdf5daf65f72c923bcf474
--- /dev/null
+++ b/libmtk_symbols/icu55.c
@@ -0,0 +1,72 @@
+#include "unicode/ucnv.h"
+
+U_STABLE UConverter* U_EXPORT2
+ucnv_open_55(const char *converterName, UErrorCode *err)
+{
+ return ucnv_open(converterName, err);
+}
+
+U_STABLE void U_EXPORT2
+ucnv_close_55(UConverter * converter)
+{
+ return ucnv_close(converter);
+}
+
+U_STABLE void U_EXPORT2 UCNV_TO_U_CALLBACK_STOP_55(
+ const void *context,
+ UConverterToUnicodeArgs *toUArgs,
+ const char* codeUnits,
+ int32_t length,
+ UConverterCallbackReason reason,
+ UErrorCode * err)
+{
+ UCNV_TO_U_CALLBACK_STOP(context, toUArgs, codeUnits, length, reason, err);
+}
+
+U_STABLE void U_EXPORT2 UCNV_FROM_U_CALLBACK_STOP_55(
+ const void *context,
+ UConverterFromUnicodeArgs *fromUArgs,
+ const UChar* codeUnits,
+ int32_t length,
+ UChar32 codePoint,
+ UConverterCallbackReason reason,
+ UErrorCode * err)
+{
+ UCNV_FROM_U_CALLBACK_STOP (context, fromUArgs, codeUnits, length, codePoint, reason, err);
+}
+
+U_STABLE void U_EXPORT2
+ucnv_setToUCallBack_55(UConverter * converter,
+ UConverterToUCallback newAction,
+ const void* newContext,
+ UConverterToUCallback *oldAction,
+ const void** oldContext,
+ UErrorCode * err)
+{
+ ucnv_setToUCallBack(converter, newAction, newContext, oldAction, oldContext, err);
+}
+
+U_STABLE void U_EXPORT2
+ucnv_setFromUCallBack_55(UConverter * converter,
+ UConverterFromUCallback newAction,
+ const void *newContext,
+ UConverterFromUCallback *oldAction,
+ const void **oldContext,
+ UErrorCode * err)
+{
+ ucnv_setFromUCallBack(converter, newAction, newContext, oldAction, oldContext, err);
+}
+
+U_STABLE void U_EXPORT2
+ucnv_convertEx_55(UConverter *targetCnv, UConverter *sourceCnv,
+ char **target, const char *targetLimit,
+ const char **source, const char *sourceLimit,
+ UChar *pivotStart, UChar **pivotSource,
+ UChar **pivotTarget, const UChar *pivotLimit,
+ UBool reset, UBool flush,
+ UErrorCode *pErrorCode)
+{
+ ucnv_convertEx(targetCnv, sourceCnv, target, targetLimit, source, sourceLimit,
+ pivotStart, pivotSource, pivotTarget, pivotLimit, reset, flush,
+ pErrorCode);
+}
diff --git a/libmtk_symbols/mtk_gui.cpp b/libmtk_symbols/mtk_gui.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8cc75ba2ecef1842f2308c9fb88724152d90b975
--- /dev/null
+++ b/libmtk_symbols/mtk_gui.cpp
@@ -0,0 +1,9 @@
+#include
+
+extern "C" {
+ void _ZN7android14SurfaceControl8setLayerEj(uint32_t);
+
+ void _ZN7android14SurfaceControl8setLayerEi(int32_t layer){
+ _ZN7android14SurfaceControl8setLayerEj(static_cast(layer));
+ }
+}
\ No newline at end of file
diff --git a/libmtk_symbols/mtk_omx.cpp b/libmtk_symbols/mtk_omx.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5145e4683d3915d93eaacd2504a867889363ef65
--- /dev/null
+++ b/libmtk_symbols/mtk_omx.cpp
@@ -0,0 +1,5 @@
+extern "C" {
+ void _ZN7android13AwesomePlayer24mtk_omx_get_current_timeEPx(long long* time){
+ time = (long long*)-1;
+ }
+}
\ No newline at end of file
diff --git a/libmtk_symbols/mtk_parcel.cpp b/libmtk_symbols/mtk_parcel.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..03ba718c99a145bb139c3e53275431a4526efa0c
--- /dev/null
+++ b/libmtk_symbols/mtk_parcel.cpp
@@ -0,0 +1,7 @@
+extern "C" {
+ void _ZN7android6Parcel13writeString16EPKDsm(char16_t const*, unsigned long);
+
+ void _ZN7android6Parcel13writeString16EPKtm(unsigned short const* str, unsigned long len){
+ _ZN7android6Parcel13writeString16EPKDsm((char16_t const*)str, len);
+ }
+}
\ No newline at end of file
diff --git a/libmtk_symbols/mtk_string.cpp b/libmtk_symbols/mtk_string.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..f5f61ecdb06011c2e3b5bbba266c223511f8485f
--- /dev/null
+++ b/libmtk_symbols/mtk_string.cpp
@@ -0,0 +1,13 @@
+extern "C" {
+ void _ZN7android8String165setToEPKDsj(char16_t const*, unsigned int);
+
+ void _ZN7android8String165setToEPKtj(unsigned short const* str, unsigned int len){
+ _ZN7android8String165setToEPKDsj((char16_t const*)str, len);
+ }
+
+ void _ZN7android8String16C1EPKDsj(char16_t const*, unsigned int);
+
+ void _ZN7android8String16C1EPKtj(unsigned short const* o, unsigned int len){
+ _ZN7android8String16C1EPKDsj((char16_t const*)o, len);
+ }
+}
\ No newline at end of file
diff --git a/libmtk_symbols/mtk_ui.cpp b/libmtk_symbols/mtk_ui.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..395789987a2febe5b9a636654eae4c0c91602330
--- /dev/null
+++ b/libmtk_symbols/mtk_ui.cpp
@@ -0,0 +1,32 @@
+#include
+#include
+#include
+
+extern "C" {
+ void _ZN7android19GraphicBufferMapper9lockYCbCrEPK13native_handlejRKNS_4RectEP13android_ycbcr(buffer_handle_t, uint32_t, const android::Rect&, android_ycbcr*);
+
+ void _ZN7android19GraphicBufferMapper9lockYCbCrEPK13native_handleiRKNS_4RectEP13android_ycbcr(buffer_handle_t handle, int usage, const android::Rect& bounds, android_ycbcr *ycbcr) {
+ _ZN7android19GraphicBufferMapper9lockYCbCrEPK13native_handlejRKNS_4RectEP13android_ycbcr(handle, static_cast(usage), bounds, ycbcr);
+ }
+
+ void _ZN7android19GraphicBufferMapper4lockEPK13native_handlejRKNS_4RectEPPv(buffer_handle_t, uint32_t, const android::Rect&, void**);
+
+ void _ZN7android19GraphicBufferMapper4lockEPK13native_handleiRKNS_4RectEPPv(buffer_handle_t handle, int usage, const android::Rect& bounds, void** vaddr) {
+ _ZN7android19GraphicBufferMapper4lockEPK13native_handlejRKNS_4RectEPPv(handle, static_cast(usage), bounds, vaddr);
+ }
+
+ void _ZN7android13GraphicBufferC1EjjijNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE(
+ uint32_t inWidth, uint32_t inHeight, android::PixelFormat inFormat,
+ uint32_t inUsage, std::string requestorName);
+
+ void _ZN7android13GraphicBufferC1Ejjij(uint32_t inWidth, uint32_t inHeight, int32_t inFormat, uint32_t inUsage) {
+ _ZN7android13GraphicBufferC1EjjijNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE(
+ inWidth, inHeight, inFormat, inUsage, "");
+ }
+
+ void _ZN7android5Fence4waitEi(int);
+
+ void _ZN7android5Fence4waitEj(unsigned int timeout) {
+ _ZN7android5Fence4waitEi(static_cast(timeout));
+ }
+}
diff --git a/libmtk_symbols/mtk_xlog.cpp b/libmtk_symbols/mtk_xlog.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8c690ce979d63ab4891897324b04a9ab3fe98fb0
--- /dev/null
+++ b/libmtk_symbols/mtk_xlog.cpp
@@ -0,0 +1,29 @@
+#include
+
+extern "C" {
+
+struct xlog_record {
+ const char *tag_str;
+ const char *fmt_str;
+ int prio;
+};
+
+static void init(void) __attribute__ ((constructor));
+
+void init(void){}
+
+int __xlog_buf_printf(int bufid, const struct xlog_record *rec, ...)
+{
+ va_list args;
+ va_start(args, rec);
+ LOG_PRI_VA(rec->prio, rec->tag_str, rec->fmt_str, args);
+ va_end(args);
+
+ return 0;
+}
+
+void dl_unregister_notify_function(void){}
+
+void dl_register_notify_function(int (*load_notify_function) (const char *name, uintptr_t address, uintptr_t size), int(*unload_notify_function) (const char *name, uintptr_t address)){}
+
+}
\ No newline at end of file
diff --git a/libmtk_symbols/ssl.c b/libmtk_symbols/ssl.c
new file mode 100644
index 0000000000000000000000000000000000000000..894c51e20cdf29c15c997e1761ab0ac8febfe40e
--- /dev/null
+++ b/libmtk_symbols/ssl.c
@@ -0,0 +1,27 @@
+#include
+
+#define LOG_TAG "SSL_ctrl_stub"
+#include
+
+long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg) {
+ ALOGD("SSL_ctrl: ssl=%p cmd=%d larg=%ld parg=%p", ssl, cmd, larg, parg);
+ return -1;
+}
+
+long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) {
+ ALOGD("SSL_CTX_ctrl: ctx=%p cmd=%d larg=%ld parg=%p", ctx, cmd, larg, parg);
+ return -1;
+}
+
+void CRYPTO_free(void *str) {
+ free(str);
+}
+
+void *CRYPTO_malloc(int num, const char *file, int line) {
+ ALOGD("CRYPTO_malloc: num=%d file=%s line=%d", num, file, line);
+ return malloc(num);
+}
+
+void CRYPTO_lock(int mode, int type, const char *file, int line) {
+ ALOGD("CRYPTO_lock: mode=%d type=%d file=%s line=%d", mode, type, file, line);
+}
diff --git a/configs/media_profiles.xml b/media_profiles.xml
old mode 100755
new mode 100644
similarity index 95%
rename from configs/media_profiles.xml
rename to media_profiles.xml
index f509088f5c58567a96d7af848df117aba1872c59..5a3217af04f2bed6eec5b73340a70d22f6438008
--- a/configs/media_profiles.xml
+++ b/media_profiles.xml
@@ -92,7 +92,7 @@
-