diff --git a/BoardConfig.mk b/BoardConfig.mk index 5c345bb..52c3d2e 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -21,52 +21,8 @@ TARGET_OTA_ASSERT_DEVICE := s5neo3g,s5neo3gxx,s5neolte,s5neoltexx DEVICE_PATH := device/samsung/s5neoltexx -# Include path -TARGET_SPECIFIC_HEADER_PATH += $(DEVICE_PATH)/include - -# Bluetooth -BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(DEVICE_PATH)/bluetooth - -# Hardware -BOARD_HARDWARE_CLASS += $(DEVICE_PATH)/cmhw - -# Init -TARGET_INIT_VENDOR_LIB := libinit_s5neolte - -# Kernel -BOARD_MKBOOTIMG_ARGS := --kernel_offset 0x00008000 --ramdisk_offset 0x01000000 --tags_offset 0x00000100 --dt $(DEVICE_PATH)/dt.img --board SYSMAGIC000KU -BOARD_KERNEL_CMDLINE := androidboot.selinux=permissive console=tty0 androidboot.console=tty0 androidboot.hardware=samsungexynos7580 fbcon=font:VGA8x8,rotate:1 mem=471M no_console_suspend=1 -TARGET_KERNEL_CONFIG := lineageos_s5neolte_defconfig -TARGET_KERNEL_SOURCE := kernel/samsung/exynos7580-common -BOARD_CUSTOM_BOOTIMG_MK := hardware/samsung/mkbootimg.mk - -# Partitions -BOARD_HAS_NO_MISC_PARTITION:= false -TARGET_USERIMAGES_USE_F2FS := true -BOARD_BOOTIMAGE_PARTITION_SIZE := 33554432 -BOARD_CACHEIMAGE_PARTITION_SIZE := 209715200 -BOARD_RECOVERYIMAGE_PARTITION_SIZE := 39845888 -BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3145728000 -BOARD_USERDATAIMAGE_PARTITION_SIZE := 12096372736 -BOARD_FLASH_BLOCK_SIZE := 131072 - -# Properties -TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop - -# Recovery -TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.samsungexynos7580 - -# Radio -BOARD_RIL_CLASS := ../../../$(DEVICE_PATH)/ril -BOARD_MODEM_TYPE := tss310 - -# NFC -BOARD_NFC_CHIPSET := pn547 +# Include makefiles from board folder +-include $(DEVICE_PATH)/board/*.mk # inherit from the proprietary version -include vendor/samsung/s5neoltexx/BoardConfigVendor.mk - -# twrp -ifeq ($(WITH_TWRP),true) --include device/samsung/s5neoltexx/twrp.mk -endif diff --git a/board/audio.mk b/board/audio.mk new file mode 100644 index 0000000..180d04b --- /dev/null +++ b/board/audio.mk @@ -0,0 +1 @@ +TARGET_AUDIOHAL_VARIANT := samsung diff --git a/board/bluethooth.mk b/board/bluethooth.mk new file mode 100644 index 0000000..9228024 --- /dev/null +++ b/board/bluethooth.mk @@ -0,0 +1,2 @@ +# Bluetooth +BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(DEVICE_PATH)/bluetooth diff --git a/board/fs.mk b/board/fs.mk new file mode 100644 index 0000000..3a3401c --- /dev/null +++ b/board/fs.mk @@ -0,0 +1,9 @@ +# Partitions +BOARD_HAS_NO_MISC_PARTITION:= false +TARGET_USERIMAGES_USE_F2FS := true +BOARD_BOOTIMAGE_PARTITION_SIZE := 33554432 +BOARD_CACHEIMAGE_PARTITION_SIZE := 209715200 +BOARD_RECOVERYIMAGE_PARTITION_SIZE := 39845888 +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3145728000 +BOARD_USERDATAIMAGE_PARTITION_SIZE := 12096372736 +BOARD_FLASH_BLOCK_SIZE := 131072 diff --git a/board/fstab.mk b/board/fstab.mk new file mode 100644 index 0000000..5c9cf40 --- /dev/null +++ b/board/fstab.mk @@ -0,0 +1,2 @@ +# Recovery +TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.samsungexynos7580 diff --git a/board/hw.mk b/board/hw.mk new file mode 100644 index 0000000..32ed5cd --- /dev/null +++ b/board/hw.mk @@ -0,0 +1,2 @@ +# Hardware +BOARD_HARDWARE_CLASS += $(DEVICE_PATH)/lineagehw diff --git a/board/include.mk b/board/include.mk new file mode 100644 index 0000000..7f65ed5 --- /dev/null +++ b/board/include.mk @@ -0,0 +1,2 @@ +# Include path +TARGET_SPECIFIC_HEADER_PATH += $(DEVICE_PATH)/include diff --git a/board/init.mk b/board/init.mk new file mode 100644 index 0000000..952eafe --- /dev/null +++ b/board/init.mk @@ -0,0 +1,2 @@ +# Init +TARGET_INIT_VENDOR_LIB := libinit_s5neolte diff --git a/board/kernel.mk b/board/kernel.mk new file mode 100644 index 0000000..b6b5871 --- /dev/null +++ b/board/kernel.mk @@ -0,0 +1,8 @@ +# Kernel +BOARD_MKBOOTIMG_ARGS := --kernel_offset 0x00008000 --ramdisk_offset 0x01000000 --tags_offset 0x00000100 --board SYSMAGIC000KU +BOARD_KERNEL_CMDLINE := androidboot.selinux=permissive console=tty0 androidboot.console=tty0 androidboot.hardware=samsungexynos7580 fbcon=font:VGA8x8,rotate:1 mem=471M no_console_suspend=1 +TARGET_KERNEL_CONFIG := lineageos_s5neolte_defconfig +TARGET_KERNEL_SOURCE := kernel/samsung/exynos7580-common +BOARD_CUSTOM_BOOTIMG_MK := hardware/samsung/mkbootimg.mk +BOARD_KERNEL_IMAGE_NAME := Image-dtb +TARGET_CUSTOM_DTBTOOL := dtbhtoolExynos diff --git a/board/nfc.mk b/board/nfc.mk new file mode 100644 index 0000000..f3cd589 --- /dev/null +++ b/board/nfc.mk @@ -0,0 +1,2 @@ +# NFC +BOARD_NFC_CHIPSET := pn547 diff --git a/board/properties.mk b/board/properties.mk new file mode 100644 index 0000000..826995c --- /dev/null +++ b/board/properties.mk @@ -0,0 +1,2 @@ +# Properties +TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop diff --git a/board/radio.mk b/board/radio.mk new file mode 100644 index 0000000..b9f44ad --- /dev/null +++ b/board/radio.mk @@ -0,0 +1,4 @@ +# Radio +#BOARD_RIL_CLASS := ../../../$(DEVICE_PATH)/ril +BOARD_PROVIDES_LIBRIL := true +BOARD_MODEM_TYPE := tss310 diff --git a/configs/audio/mixer_paths.xml b/configs/audio/mixer_paths.xml index 3803ab2..1204b55 100644 --- a/configs/audio/mixer_paths.xml +++ b/configs/audio/mixer_paths.xml @@ -3030,4 +3030,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configs/wifi/filter_ie b/configs/wifi/filter_ie new file mode 100644 index 0000000..7c10dcd --- /dev/null +++ b/configs/wifi/filter_ie @@ -0,0 +1,3 @@ +0 +1 +3 diff --git a/device.mk b/device.mk index b44569f..638df82 100644 --- a/device.mk +++ b/device.mk @@ -19,127 +19,8 @@ LOCAL_PATH := device/samsung/s5neoltexx $(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk) -# Overlays -DEVICE_PACKAGE_OVERLAYS += device/samsung/s5neoltexx/overlay - -# Device uses high-density artwork where available -PRODUCT_AAPT_CONFIG := xlarge -PRODUCT_AAPT_PREF_CONFIG := xhdpi -# A list of dpis to select prebuilt apk, in precedence order. -PRODUCT_AAPT_PREBUILT_DPI := hdpi mdpi - -# Boot animation -TARGET_SCREEN_HEIGHT := 1920 -TARGET_SCREEN_WIDTH := 1080 - -# Audio -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/audio/audio_policy.conf:system/etc/audio_policy.conf \ - $(LOCAL_PATH)/configs/audio/mixer_paths.xml:system/etc/mixer_paths.xml - -# Bluetooth -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/bluetooth/bt_vendor.conf:system/etc/bluetooth/bt_vendor.conf - -# GPS -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/gps/gps.conf:system/etc/gps.conf \ - $(LOCAL_PATH)/configs/gps/gps.xml:system/etc/gps.xml - -# Permissions -PRODUCT_COPY_FILES += \ - frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.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.gyroscope.xml:system/etc/permissions/android.hardware.sensor.gyroscope.xml \ - frameworks/native/data/etc/android.hardware.sensor.heartrate.xml:system/etc/permissions/android.hardware.sensor.heartrate.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.stepcounter.xml:system/etc/permissions/android.hardware.sensor.stepcounter.xml \ - frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:system/etc/permissions/android.hardware.sensor.stepdetector.xml \ - frameworks/native/data/etc/android.hardware.nfc.xml:system/etc/permissions/android.hardware.nfc.xml \ - frameworks/native/data/etc/android.hardware.nfc.hce.xml:system/etc/permissions/android.hardware.nfc.hce.xml \ - frameworks/native/data/etc/com.android.nfc_extras.xml:system/etc/permissions/com.android.nfc_extras.xml - -# Key-layout -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/idc/Synaptics_HID_TouchPad.idc:system/usr/idc/Synaptics_HID_TouchPad.idc \ - $(LOCAL_PATH)/idc/Synaptics_RMI4_TouchPad_Sensor.idc:system/usr/idc/Synaptics_RMI4_TouchPad_Sensor.idc \ - $(LOCAL_PATH)/keylayout/Button_Jack.kl:system/usr/keylayout/Button_Jack.kl \ - $(LOCAL_PATH)/keylayout/gpio_keys.kl:system/usr/keylayout/gpio_keys.kl \ - $(LOCAL_PATH)/keylayout/sec_touchkey.kl:system/usr/keylayout/sec_touchkey.kl - -# Lights -PRODUCT_PACKAGES += \ - lights.universal7580 - -# Media profile -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/media/media_profiles.xml:system/etc/media_profiles.xml - -# Power -PRODUCT_PACKAGES += \ - power.exynos5 - -# Shims -PRODUCT_PACKAGES += \ - libshim_gpsd - -# Ramdisk -PRODUCT_PACKAGES += \ - fstab.samsungexynos7580 \ - init.baseband.rc \ - init.samsung.rc \ - init.samsungexynos7580.rc \ - init.samsungexynos7580.usb.rc \ - init.wifi.rc \ - ueventd.samsungexynos7580.rc - -# Wi-fi -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/wifi/cred.conf:system/etc/wifi/cred.conf \ - $(LOCAL_PATH)/configs/wifi/wpa_supplicant_overlay.conf:system/etc/wifi/wpa_supplicant_overlay.conf \ - $(LOCAL_PATH)/configs/wifi/p2p_supplicant_overlay.conf:system/etc/wifi/p2p_supplicant_overlay.conf - -ADDITIONAL_DEFAULT_PROPERTIES += \ - wifi.interface=wlan0 - -# Samsung -PRODUCT_PACKAGES += \ - SamsungServiceMode - -# Ril -PRODUCT_PACKAGES += \ - libprotobuf-cpp-full \ - modemloader - -# cpboot-daemon for modem -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/ril/sbin/cbd:root/sbin/cbd - -# samsung's sswap -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/rootdir/sbin/sswap:root/sbin/sswap - -# NFC -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/nfc/libnfc-sec-hal.conf:system/etc/libnfc-sec-hal.conf \ - $(LOCAL_PATH)/configs/nfc/libnfc-sec.conf:system/etc/libnfc-brcm.conf \ - $(LOCAL_PATH)/configs/nfc/nfcee_access.xml:system/etc/nfcee_access.xml - -PRODUCT_PACKAGES += \ - libnfc-nci \ - libnfc_nci_jni \ - NfcNci \ - Tag \ - com.android.nfc_extras - -PRODUCT_PROPERTY_OVERRIDES += \ - ro.nfc.sec_hal=true - -# twrp -ifeq ($(WITH_TWRP),true) -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/rootdir/etc/twrp.fstab:recovery/root/etc/twrp.fstab -endif +# Inherit board specific products +-include $(LOCAL_PATH)/product/*.mk # Inherit from Exynos7580-common $(call inherit-product, device/samsung/exynos7580-common/device-common.mk) diff --git a/dt.img b/dt.img deleted file mode 100644 index 07e9d3a..0000000 Binary files a/dt.img and /dev/null differ diff --git a/include/samsung_audio.h b/include/samsung_audio.h new file mode 100644 index 0000000..880b4e5 --- /dev/null +++ b/include/samsung_audio.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2017 The LineageOS Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#ifndef SAMSUNG_AUDIO_H +#define SAMSUNG_AUDIO_H + +#define MIXER_CARD 0 +#define SOUND_CARD 0 + +/* Playback */ +#define SOUND_DEEP_BUFFER_DEVICE 1 +#define SOUND_PLAYBACK_DEVICE 0 +#define SOUND_PLAYBACK_SCO_DEVICE 3 + +/* Capture */ +#define SOUND_CAPTURE_DEVICE 0 +#define SOUND_CAPTURE_SCO_DEVICE 3 + +/* Voice calls */ +#define SOUND_PLAYBACK_VOICE_DEVICE 2 +#define SOUND_CAPTURE_VOICE_DEVICE 2 + +/* Wideband AMR callback */ +#ifndef RIL_UNSOL_SNDMGR_WB_AMR_REPORT +#ifdef RIL_UNSOL_WB_AMR_STATE +#define RIL_UNSOL_SNDMGR_WB_AMR_REPORT RIL_UNSOL_WB_AMR_STATE +#else +#define RIL_UNSOL_SNDMGR_WB_AMR_REPORT 0 +#endif +#endif + +/* Unusupported +#define SOUND_CAPTURE_LOOPBACK_AEC_DEVICE 1 +#define SOUND_CAPTURE_HOTWORD_DEVICE 0 +*/ + + +#endif // SAMSUNG_AUDIO_H diff --git a/include/samsung_lights.h b/include/samsung_lights.h new file mode 100644 index 0000000..908660e --- /dev/null +++ b/include/samsung_lights.h @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2016 The CyanogenMod Project + * Copyright (C) 2017 The LineageOS Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SAMSUNG_LIGHTS_H +#define SAMSUNG_LIGHTS_H + +/* + * Board specific nodes + * + * If your kernel exposes these controls in another place, you can either + * symlink to the locations given here, or override this header in your + * device tree. + */ +#define PANEL_BRIGHTNESS_NODE "/sys/devices/14800000.dsim/backlight/panel/brightness" +#define PANEL_MAX_BRIGHTNESS_NODE "/sys/devices/14800000.dsim/backlight/panel/max_brightness" +#define BUTTON_BRIGHTNESS_NODE "/sys/devices/virtual/sec/sec_touchkey/brightness" +#define LED_BLINK_NODE "/sys/devices/virtual/sec/led/led_blink" + +// Uncomment to enable variable button brightness +//#define VAR_BUTTON_BRIGHTNESS 1 + +/* + * Brightness adjustment factors + * + * If one of your device's LEDs is more powerful than the others, use these + * values to equalise them. This value is in the range 0.0-1.0. + */ +#define LED_ADJUSTMENT_R 1.0 +#define LED_ADJUSTMENT_G 1.0 +#define LED_ADJUSTMENT_B 1.0 + +/* + * Light brightness factors + * + * It might make sense for all colours to be scaled down (for example, if your + * LED is too bright). Use these values to adjust the brightness of each + * light. This value is within the range 0-255. + */ +#define LED_BRIGHTNESS_BATTERY 255 +#define LED_BRIGHTNESS_NOTIFICATION 255 +#define LED_BRIGHTNESS_ATTENTION 255 + +#endif // SAMSUNG_LIGHTS_H diff --git a/init/Android.mk b/init/Android.mk index 30da45e..429bf8a 100644 --- a/init/Android.mk +++ b/init/Android.mk @@ -3,9 +3,12 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional -LOCAL_C_INCLUDES := system/core/init -LOCAL_CFLAGS := -Wall +LOCAL_C_INCLUDES := \ + system/core/base/include \ + system/core/init +LOCAL_CFLAGS := -Wall -DANDROID_TARGET=\"$(TARGET_BOARD_PLATFORM)\" LOCAL_SRC_FILES := init_s5neolte.cpp LOCAL_MODULE := libinit_s5neolte +LOCAL_STATIC_LIBRARIES += libbase include $(BUILD_STATIC_LIBRARY) diff --git a/init/init_s5neolte.cpp b/init/init_s5neolte.cpp index bae0155..e73b6c8 100644 --- a/init/init_s5neolte.cpp +++ b/init/init_s5neolte.cpp @@ -28,51 +28,61 @@ */ #include -#include #include +#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ +#include + +#include +#include #include "property_service.h" #include "vendor_init.h" -#include "log.h" -#include "util.h" -#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ -#include +using android::base::GetProperty; +using android::init::property_set; void property_override(char const prop[], char const value[]) { - prop_info *pi; + prop_info *pi; - pi = (prop_info*) __system_property_find(prop); - if (pi) - __system_property_update(pi, value, strlen(value)); - else - __system_property_add(prop, strlen(prop), value, strlen(value)); + pi = (prop_info*) __system_property_find(prop); + if (pi) + __system_property_update(pi, value, strlen(value)); + else + __system_property_add(prop, strlen(prop), value, strlen(value)); } -void set_sim_info () { +void set_sim_info () +{ FILE *file; char *simslot_count_path = "/proc/simslot_count"; char simslot_count[2] = "\0"; - + file = fopen(simslot_count_path, "r"); - + if (file != NULL) { simslot_count[0] = fgetc(file); - property_set("ro.multisim.simslotcount", simslot_count); + property_override("ro.multisim.simslotcount", simslot_count); if(strcmp(simslot_count, "2") == 0) { - property_set("rild.libpath2", "/system/lib/libsec-ril-dsds.so"); - property_set("persist.radio.multisim.config", "dsds"); + property_override("rild.libpath2", "/system/lib/libsec-ril-dsds.so"); + property_override("persist.radio.multisim.config", "dsds"); } fclose(file); } else { - ERROR("Could not open '%s'\n", simslot_count_path); + LOG(ERROR) << "Could not open '" << simslot_count_path << "'\n"; } } -void vendor_load_properties() { - std::string bootloader = property_get("ro.bootloader"); +void vendor_load_properties() +{ + std::string platform; + std::string bootloader = GetProperty("ro.bootloader", ""); + std::string device; + + platform = GetProperty("ro.board.platform", ""); + if (platform != ANDROID_TARGET) + return; if (bootloader.find("G903F") != std::string::npos) { /* SM-G903F */ @@ -98,9 +108,9 @@ void vendor_load_properties() { property_override("ro.product.device", "s5neoltecan"); property_override("ro.product.name", "s5neoltevl"); } - + set_sim_info(); - std::string device = property_get("ro.product.device"); - INFO("Found bootloader id %s setting build properties for %s device\n", bootloader.c_str(), device.c_str()); + device = GetProperty("ro.product.device", ""); + LOG(ERROR) << "Found bootloader id '" << bootloader.c_str() << "' setting build properties for '" << device.c_str() << "' device\n"; } diff --git a/libshims/gpsd/Android.mk b/libshims/gpsd/Android.mk index b521a4f..8980ad4 100644 --- a/libshims/gpsd/Android.mk +++ b/libshims/gpsd/Android.mk @@ -22,8 +22,9 @@ include $(CLEAR_VARS) include $(CLEAR_VARS) LOCAL_SRC_FILES := samsung_gps.cpp -LOCAL_SHARED_LIBRARIES := libbinder liblog libcutils libgui libutils +LOCAL_SHARED_LIBRARIES := libbinder liblog libcutils libgui libutils libsensor LOCAL_MODULE := libshim_gpsd LOCAL_MODULE_CLASS := SHARED_LIBRARIES +LOCAL_PROPRIETARY_MODULE := true include $(BUILD_SHARED_LIBRARY) diff --git a/libshims/gpsd/samsung_gps.cpp b/libshims/gpsd/samsung_gps.cpp index 1e104f3..7c93d4e 100644 --- a/libshims/gpsd/samsung_gps.cpp +++ b/libshims/gpsd/samsung_gps.cpp @@ -20,7 +20,7 @@ #include #include -#include +#include #include namespace android { diff --git a/lineage.mk b/lineage.mk index e2a40ea..68ba0b0 100644 --- a/lineage.mk +++ b/lineage.mk @@ -18,11 +18,12 @@ # Initialise device config $(call inherit-product, device/samsung/s5neoltexx/full_s5neoltexx.mk) -# Inherit common CM phone. -$(call inherit-product, vendor/cm/config/common_full_phone.mk) +# Inherit common Lineage phone. +$(call inherit-product, vendor/lineage/config/common_full_phone.mk) # Set those variables here to overwrite the inherited values. PRODUCT_NAME := lineage_s5neoltexx PRODUCT_DEVICE := s5neoltexx +PRODUCT_MODEL := SM-G903F PRODUCT_BRAND := samsung PRODUCT_MANUFACTURER := samsung diff --git a/cmhw/org/cyanogenmod/hardware/AdaptiveBacklight.java b/lineagehw/org/lineageos/hardware/AdaptiveBacklight.java similarity index 96% rename from cmhw/org/cyanogenmod/hardware/AdaptiveBacklight.java rename to lineagehw/org/lineageos/hardware/AdaptiveBacklight.java index 3e380d7..dfc46fa 100644 --- a/cmhw/org/cyanogenmod/hardware/AdaptiveBacklight.java +++ b/lineagehw/org/lineageos/hardware/AdaptiveBacklight.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package org.cyanogenmod.hardware; +package org.lineageos.hardware; -import org.cyanogenmod.internal.util.FileUtils; +import org.lineageos.internal.util.FileUtils; /** * Adaptive backlight support (this refers to technologies like NVIDIA SmartDimmer, diff --git a/cmhw/org/cyanogenmod/hardware/DisplayColorCalibration.java b/lineagehw/org/lineageos/hardware/DisplayColorCalibration.java similarity index 98% rename from cmhw/org/cyanogenmod/hardware/DisplayColorCalibration.java rename to lineagehw/org/lineageos/hardware/DisplayColorCalibration.java index 7b01932..b950960 100644 --- a/cmhw/org/cyanogenmod/hardware/DisplayColorCalibration.java +++ b/lineagehw/org/lineageos/hardware/DisplayColorCalibration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.cyanogenmod.hardware; +package org.lineageos.hardware; import android.os.IBinder; import android.os.Parcel; @@ -23,7 +23,7 @@ import android.os.SystemProperties; import android.util.Slog; -import org.cyanogenmod.internal.util.FileUtils; +import org.lineageos.internal.util.FileUtils; public class DisplayColorCalibration { diff --git a/cmhw/org/cyanogenmod/hardware/KeyDisabler.java b/lineagehw/org/lineageos/hardware/KeyDisabler.java similarity index 94% rename from cmhw/org/cyanogenmod/hardware/KeyDisabler.java rename to lineagehw/org/lineageos/hardware/KeyDisabler.java index 767d45b..13d5ad6 100644 --- a/cmhw/org/cyanogenmod/hardware/KeyDisabler.java +++ b/lineagehw/org/lineageos/hardware/KeyDisabler.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package org.cyanogenmod.hardware; +package org.lineageos.hardware; -import org.cyanogenmod.internal.util.FileUtils; +import org.lineageos.internal.util.FileUtils; /* * Disable capacitive keys diff --git a/cmhw/org/cyanogenmod/hardware/VibratorHW.java b/lineagehw/org/lineageos/hardware/VibratorHW.java similarity index 94% rename from cmhw/org/cyanogenmod/hardware/VibratorHW.java rename to lineagehw/org/lineageos/hardware/VibratorHW.java index ea35572..c9f8e2e 100644 --- a/cmhw/org/cyanogenmod/hardware/VibratorHW.java +++ b/lineagehw/org/lineageos/hardware/VibratorHW.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package org.cyanogenmod.hardware; +package org.lineageos.hardware; -import org.cyanogenmod.internal.util.FileUtils; +import org.lineageos.internal.util.FileUtils; public class VibratorHW { diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index 8c1de2e..0855953 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -110,7 +110,7 @@ 64 - Volume rocker For example, a device with Home, Back and Menu keys would set this config to 7. --> - 83 + - 65 + - true + - true + diff --git a/product/audio.mk b/product/audio.mk new file mode 100644 index 0000000..4313a56 --- /dev/null +++ b/product/audio.mk @@ -0,0 +1,4 @@ +# Audio +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/audio/audio_policy.conf:system/etc/audio_policy.conf \ + $(LOCAL_PATH)/configs/audio/mixer_paths.xml:system/etc/mixer_paths_0.xml diff --git a/product/bluetooth.mk b/product/bluetooth.mk new file mode 100644 index 0000000..7bfe6af --- /dev/null +++ b/product/bluetooth.mk @@ -0,0 +1,7 @@ +# Bluetooth +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/bluetooth/bt_vendor.conf:system/etc/bluetooth/bt_vendor.conf + +PRODUCT_PACKAGES += \ + android.hardware.bluetooth@1.0-impl \ + libbt-vendor diff --git a/product/boot_animation.mk b/product/boot_animation.mk new file mode 100644 index 0000000..3f4239b --- /dev/null +++ b/product/boot_animation.mk @@ -0,0 +1,3 @@ +# Boot animation +TARGET_SCREEN_HEIGHT := 1920 +TARGET_SCREEN_WIDTH := 1080 diff --git a/product/dpi.mk b/product/dpi.mk new file mode 100644 index 0000000..0ba5c44 --- /dev/null +++ b/product/dpi.mk @@ -0,0 +1,5 @@ +# Device uses high-density artwork where available +PRODUCT_AAPT_CONFIG := xlarge +PRODUCT_AAPT_PREF_CONFIG := xhdpi +# A list of dpis to select prebuilt apk, in precedence order. +PRODUCT_AAPT_PREBUILT_DPI := hdpi mdpi diff --git a/product/gps.mk b/product/gps.mk new file mode 100644 index 0000000..9388916 --- /dev/null +++ b/product/gps.mk @@ -0,0 +1,8 @@ +# GPS +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/gps/gps.conf:system/etc/gps.conf \ + $(LOCAL_PATH)/configs/gps/gps.xml:system/etc/gps.xml + +PRODUCT_PACKAGES += \ + android.hardware.gnss@1.0-impl \ + android.hardware.gnss@1.0-service diff --git a/product/key_layout.mk b/product/key_layout.mk new file mode 100644 index 0000000..dc0c4d5 --- /dev/null +++ b/product/key_layout.mk @@ -0,0 +1,7 @@ +# Key-layout +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/idc/Synaptics_HID_TouchPad.idc:system/usr/idc/Synaptics_HID_TouchPad.idc \ + $(LOCAL_PATH)/idc/Synaptics_RMI4_TouchPad_Sensor.idc:system/usr/idc/Synaptics_RMI4_TouchPad_Sensor.idc \ + $(LOCAL_PATH)/keylayout/Button_Jack.kl:system/usr/keylayout/Button_Jack.kl \ + $(LOCAL_PATH)/keylayout/gpio_keys.kl:system/usr/keylayout/gpio_keys.kl \ + $(LOCAL_PATH)/keylayout/sec_touchkey.kl:system/usr/keylayout/sec_touchkey.kl diff --git a/product/keymaster.mk b/product/keymaster.mk new file mode 100644 index 0000000..01987bf --- /dev/null +++ b/product/keymaster.mk @@ -0,0 +1,5 @@ +# Keymaster +PRODUCT_PACKAGES += \ + keystore.exynos5 \ + android.hardware.keymaster@3.0-impl \ + android.hardware.keymaster@3.0-service diff --git a/product/lights.mk b/product/lights.mk new file mode 100644 index 0000000..7646af8 --- /dev/null +++ b/product/lights.mk @@ -0,0 +1,4 @@ +# Lights +PRODUCT_PACKAGES += \ + lights.universal7580 \ + android.hardware.light@2.0-impl diff --git a/product/media.mk b/product/media.mk new file mode 100644 index 0000000..0930240 --- /dev/null +++ b/product/media.mk @@ -0,0 +1,3 @@ +# Media profile +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/media/media_profiles.xml:system/etc/media_profiles.xml diff --git a/product/nfc.mk b/product/nfc.mk new file mode 100644 index 0000000..c648de9 --- /dev/null +++ b/product/nfc.mk @@ -0,0 +1,16 @@ +# NFC +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/nfc/libnfc-sec-hal.conf:system/etc/libnfc-sec-hal.conf \ + $(LOCAL_PATH)/configs/nfc/libnfc-sec.conf:system/etc/libnfc-brcm.conf \ + $(LOCAL_PATH)/configs/nfc/nfcee_access.xml:system/etc/nfcee_access.xml + +PRODUCT_PACKAGES += \ + libnfc-nci \ + libnfc_nci_jni \ + NfcNci \ + Tag \ + com.android.nfc_extras \ + android.hardware.nfc@1.0-impl + +PRODUCT_PROPERTY_OVERRIDES += \ + ro.nfc.sec_hal=true diff --git a/product/overlays.mk b/product/overlays.mk new file mode 100644 index 0000000..fbd396a --- /dev/null +++ b/product/overlays.mk @@ -0,0 +1,2 @@ +# Overlays +DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay diff --git a/product/permissions.mk b/product/permissions.mk new file mode 100644 index 0000000..5d5e743 --- /dev/null +++ b/product/permissions.mk @@ -0,0 +1,12 @@ +# Permissions +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.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.gyroscope.xml:system/etc/permissions/android.hardware.sensor.gyroscope.xml \ + frameworks/native/data/etc/android.hardware.sensor.heartrate.xml:system/etc/permissions/android.hardware.sensor.heartrate.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.stepcounter.xml:system/etc/permissions/android.hardware.sensor.stepcounter.xml \ + frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:system/etc/permissions/android.hardware.sensor.stepdetector.xml \ + frameworks/native/data/etc/android.hardware.nfc.xml:system/etc/permissions/android.hardware.nfc.xml \ + frameworks/native/data/etc/android.hardware.nfc.hce.xml:system/etc/permissions/android.hardware.nfc.hce.xml \ + frameworks/native/data/etc/com.android.nfc_extras.xml:system/etc/permissions/com.android.nfc_extras.xml diff --git a/product/power.mk b/product/power.mk new file mode 100644 index 0000000..bf5a96f --- /dev/null +++ b/product/power.mk @@ -0,0 +1,3 @@ +# Power +PRODUCT_PACKAGES += \ + power.exynos5 diff --git a/product/ramdisk.mk b/product/ramdisk.mk new file mode 100644 index 0000000..77f0c60 --- /dev/null +++ b/product/ramdisk.mk @@ -0,0 +1,9 @@ +# Ramdisk +PRODUCT_PACKAGES += \ + fstab.samsungexynos7580 \ + init.baseband.rc \ + init.samsung.rc \ + init.samsungexynos7580.rc \ + init.samsungexynos7580.usb.rc \ + init.wifi.rc \ + ueventd.samsungexynos7580.rc diff --git a/product/ril.mk b/product/ril.mk new file mode 100644 index 0000000..bdbebbf --- /dev/null +++ b/product/ril.mk @@ -0,0 +1,11 @@ +# Ril +PRODUCT_PACKAGES += \ + libprotobuf-cpp-full \ + modemloader \ + libsec-ril-wrapper + +# cpboot-daemon for modem +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/ril/sbin/cbd:root/sbin/cbd \ + $(LOCAL_PATH)/rootdir/etc/vendor/rild.rc:system/vendor/etc/init/rild.rc \ + $(LOCAL_PATH)/rootdir/etc/vendor/rild-dsds.rc:system/vendor/etc/init/rild-dsds.rc diff --git a/product/samsung.mk b/product/samsung.mk new file mode 100644 index 0000000..224ef18 --- /dev/null +++ b/product/samsung.mk @@ -0,0 +1,8 @@ +# Samsung +PRODUCT_PACKAGES += \ + SamsungServiceMode \ + dtbhtoolExynos + +# samsung's sswap +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/rootdir/sbin/sswap:root/sbin/sswap \ No newline at end of file diff --git a/product/sensor.mk b/product/sensor.mk new file mode 100644 index 0000000..9e747c1 --- /dev/null +++ b/product/sensor.mk @@ -0,0 +1,4 @@ +# Sensorhub +PRODUCT_PACKAGES += \ + android.hardware.sensors@1.0-impl \ + android.hardware.vibrator@1.0-impl diff --git a/product/shims.mk b/product/shims.mk new file mode 100644 index 0000000..d6583cd --- /dev/null +++ b/product/shims.mk @@ -0,0 +1,3 @@ +# Shims +PRODUCT_PACKAGES += \ + libshim_gpsd diff --git a/product/wifi.mk b/product/wifi.mk new file mode 100644 index 0000000..bfbd26f --- /dev/null +++ b/product/wifi.mk @@ -0,0 +1,22 @@ +# Wi-fi +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/wifi/cred.conf:system/etc/wifi/cred.conf \ + $(LOCAL_PATH)/configs/wifi/wpa_supplicant_overlay.conf:system/etc/wifi/wpa_supplicant_overlay.conf \ + $(LOCAL_PATH)/configs/wifi/p2p_supplicant_overlay.conf:system/etc/wifi/p2p_supplicant_overlay.conf \ + $(LOCAL_PATH)/configs/wifi/filter_ie:system/etc/wifi/filter_ie + +# Wifi-Packages +PRODUCT_PACKAGES += \ + android.hardware.wifi@1.0 \ + android.hardware.wifi@1.0-impl \ + android.hardware.wifi@1.0-service \ + libnetcmdiface \ + libwpa_client \ + hostapd \ + macloader \ + wificond \ + wifiloader \ + wifilogd \ + wlutil \ + wpa_supplicant \ + wpa_supplicant.conf \ No newline at end of file diff --git a/twrp.mk b/ril/Android.mk similarity index 56% rename from twrp.mk rename to ril/Android.mk index de2f6b9..9c7eebe 100644 --- a/twrp.mk +++ b/ril/Android.mk @@ -1,4 +1,5 @@ -# Copyright (C) 2017, The LineageOS Project +# +# Copyright (C) 2017 The LineageOS Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -11,13 +12,8 @@ # 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) -BOARD_HAS_NO_REAL_SDCARD := true -RECOVERY_SDCARD_ON_DATA := true -RECOVERY_VARIANT := twrp -TARGET_RECOVERY_FSTAB := device/samsung/s5neoltexx/rootdir/etc/twrp.fstab -TW_BRIGHTNESS_PATH := /sys/devices/13900000.dsim/backlight/panel/brightness -TW_HAS_DOWNLOAD_MODE := true -#TW_INCLUDE_CRYPTO := true -TW_NO_REBOOT_BOOTLOADER := true -TARGET_RECOVERY_PIXEL_FORMAT := "ABGR_8888" \ No newline at end of file +include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/ril/telephony/java/com/android/internal/telephony/SlteRIL.java b/ril/telephony/java/com/android/internal/telephony/SlteRIL.java deleted file mode 100644 index 67b916f..0000000 --- a/ril/telephony/java/com/android/internal/telephony/SlteRIL.java +++ /dev/null @@ -1,363 +0,0 @@ -/* - * Copyright (c) 2017, The LineageOS Project. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.internal.telephony; - -import static com.android.internal.telephony.RILConstants.*; - -import android.content.Context; -import android.telephony.Rlog; -import android.os.Message; -import android.os.Parcel; -import android.os.SystemProperties; -import android.telephony.PhoneNumberUtils; -import android.telephony.SignalStrength; -import android.telephony.SmsManager; -import com.android.internal.telephony.uicc.IccCardApplicationStatus; -import com.android.internal.telephony.uicc.IccCardStatus; -import com.android.internal.telephony.uicc.IccRefreshResponse; -import com.android.internal.telephony.uicc.IccUtils; -import java.util.ArrayList; -import java.util.Collections; - -/** - * RIL customization for Galaxy Alpha (GSM) LTE devices - * - * {@hide} - */ -public class SlteRIL extends RIL { - - /********************************************************** - * SAMSUNG REQUESTS - **********************************************************/ - static final boolean RILJ_LOGD = true; - static final boolean RILJ_LOGV = true; - - private static final int RIL_REQUEST_DIAL_EMERGENCY_CALL = 10001; - private static final int RIL_UNSOL_STK_SEND_SMS_RESULT = 11002; - private static final int RIL_UNSOL_STK_CALL_CONTROL_RESULT = 11003; - - private static final int RIL_UNSOL_DEVICE_READY_NOTI = 11008; - private static final int RIL_UNSOL_AM = 11010; - private static final int RIL_UNSOL_SIM_PB_READY = 11021; - - private static final int RIL_UNSOL_WB_AMR_STATE = 20017; - - // Number of per-network elements expected in QUERY_AVAILABLE_NETWORKS's response. - // 4 elements is default, but many RILs actually return 5, making it impossible to - // divide the response array without prior knowledge of the number of elements. - protected int mQANElements = SystemProperties.getInt("ro.ril.telephony.mqanelements", 4); - - public SlteRIL(Context context, int preferredNetworkType, int cdmaSubscription) { - this(context, preferredNetworkType, cdmaSubscription, null); - } - - public SlteRIL(Context context, int preferredNetworkType, - int cdmaSubscription, Integer instanceId) { - super(context, preferredNetworkType, cdmaSubscription, instanceId); - } - - public void - acceptCall(int index, Message result) { - RILRequest rr = - RILRequest.obtain(RIL_REQUEST_ANSWER, result); - - if (RILJ_LOGD) { - riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)); - } - rr.mParcel.writeInt(1); - rr.mParcel.writeInt(index); - - send(rr); - } - - @Override - public void - acceptCall(Message result) { - acceptCall(0, result); - } - - /** - * Translates EF_SMS status bits to a status value compatible with - * SMS AT commands. See TS 27.005 3.1. - */ - private int translateStatus(int status) { - switch(status & 0x7) { - case SmsManager.STATUS_ON_ICC_READ: - return 1; - case SmsManager.STATUS_ON_ICC_UNREAD: - return 0; - case SmsManager.STATUS_ON_ICC_SENT: - return 3; - case SmsManager.STATUS_ON_ICC_UNSENT: - return 2; - } - - // Default to READ. - return 1; - } - - @Override - public void writeSmsToSim(int status, String smsc, String pdu, Message response) { - status = translateStatus(status); - - RILRequest rr = RILRequest.obtain(RIL_REQUEST_WRITE_SMS_TO_SIM, - response); - - rr.mParcel.writeInt(status); - rr.mParcel.writeString(pdu); - rr.mParcel.writeString(smsc); - rr.mParcel.writeInt(255); /* Samsung */ - - if (RILJ_LOGV) { - riljLog(rr.serialString() + "> " - + requestToString(rr.mRequest) - + " " + status); - } - - send(rr); - } - - @Override - public void - dial(String address, int clirMode, UUSInfo uusInfo, Message result) { - if (PhoneNumberUtils.isEmergencyNumber(address)) { - dialEmergencyCall(address, clirMode, result); - return; - } - - RILRequest rr = RILRequest.obtain(RIL_REQUEST_DIAL, result); - - rr.mParcel.writeString(address); - rr.mParcel.writeInt(clirMode); - rr.mParcel.writeInt(0); // CallDetails.call_type - rr.mParcel.writeInt(1); // CallDetails.call_domain - rr.mParcel.writeString(""); // CallDetails.getCsvFromExtras - - if (uusInfo == null) { - rr.mParcel.writeInt(0); // UUS information is absent - } else { - rr.mParcel.writeInt(1); // UUS information is present - rr.mParcel.writeInt(uusInfo.getType()); - rr.mParcel.writeInt(uusInfo.getDcs()); - rr.mParcel.writeByteArray(uusInfo.getUserData()); - } - - if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)); - - send(rr); - } - - private void - dialEmergencyCall(String address, int clirMode, Message result) { - RILRequest rr; - - rr = RILRequest.obtain(RIL_REQUEST_DIAL_EMERGENCY_CALL, result); - rr.mParcel.writeString(address); - rr.mParcel.writeInt(clirMode); - rr.mParcel.writeInt(0); // CallDetails.call_type - rr.mParcel.writeInt(3); // CallDetails.call_domain - rr.mParcel.writeString(""); // CallDetails.getCsvFromExtra - rr.mParcel.writeInt(0); // Unknown - - if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)); - - send(rr); - } - - @Override - protected Object - responseIccCardStatus(Parcel p) { - IccCardApplicationStatus appStatus; - - IccCardStatus cardStatus = new IccCardStatus(); - cardStatus.setCardState(p.readInt()); - cardStatus.setUniversalPinState(p.readInt()); - cardStatus.mGsmUmtsSubscriptionAppIndex = p.readInt(); - cardStatus.mCdmaSubscriptionAppIndex = p.readInt(); - cardStatus.mImsSubscriptionAppIndex = p.readInt(); - int numApplications = p.readInt(); - - // limit to maximum allowed applications - if (numApplications > IccCardStatus.CARD_MAX_APPS) { - numApplications = IccCardStatus.CARD_MAX_APPS; - } - cardStatus.mApplications = new IccCardApplicationStatus[numApplications]; - for (int i = 0 ; i < numApplications ; i++) { - appStatus = new IccCardApplicationStatus(); - appStatus.app_type = appStatus.AppTypeFromRILInt(p.readInt()); - appStatus.app_state = appStatus.AppStateFromRILInt(p.readInt()); - appStatus.perso_substate = appStatus.PersoSubstateFromRILInt(p.readInt()); - appStatus.aid = p.readString(); - appStatus.app_label = p.readString(); - appStatus.pin1_replaced = p.readInt(); - appStatus.pin1 = appStatus.PinStateFromRILInt(p.readInt()); - appStatus.pin2 = appStatus.PinStateFromRILInt(p.readInt()); - p.readInt(); // pin1_num_retries - p.readInt(); // puk1_num_retries - p.readInt(); // pin2_num_retries - p.readInt(); // puk2_num_retries - p.readInt(); // perso_unblock_retries - - cardStatus.mApplications[i] = appStatus; - } - return cardStatus; - } - - @Override - protected Object - responseSignalStrength(Parcel p) { - int numInts = 12; - int response[]; - - // Get raw data - response = new int[numInts]; - for (int i = 0; i < numInts; i++) { - response[i] = p.readInt(); - } - // gsm - response[0] &= 0xff; - // cdma - response[2] %= 256; - response[4] %= 256; - // lte - response[7] &= 0xff; - - return new SignalStrength(response[0], - response[1], - response[2], - response[3], - response[4], - response[5], - response[6], - response[7], - response[8], - response[9], - response[10], - response[11], - true); - } - - private void constructGsmSendSmsRilRequest(RILRequest rr, String smscPDU, String pdu) { - rr.mParcel.writeInt(2); - rr.mParcel.writeString(smscPDU); - rr.mParcel.writeString(pdu); - } - - /** - * The RIL can't handle the RIL_REQUEST_SEND_SMS_EXPECT_MORE - * request properly, so we use RIL_REQUEST_SEND_SMS instead. - */ - @Override - public void sendSMSExpectMore(String smscPDU, String pdu, Message result) { - Rlog.v(RILJ_LOG_TAG, "XMM7260: sendSMSExpectMore"); - - RILRequest rr = RILRequest.obtain(RIL_REQUEST_SEND_SMS, result); - constructGsmSendSmsRilRequest(rr, smscPDU, pdu); - - if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)); - - send(rr); - } - - // This method is used in the search network functionality. - // See mobile network setting -> network operators - @Override - protected Object - responseOperatorInfos(Parcel p) { - String strings[] = (String[])responseStrings(p); - ArrayList ret; - - if (strings.length % mQANElements != 0) { - throw new RuntimeException("RIL_REQUEST_QUERY_AVAILABLE_NETWORKS: invalid response. Got " - + strings.length + " strings, expected multiple of " + mQANElements); - } - - ret = new ArrayList(strings.length / mQANElements); - for (int i = 0 ; i < strings.length ; i += mQANElements) { - String strOperatorLong = strings[i+0]; - String strOperatorNumeric = strings[i+2]; - String strState = strings[i+3].toLowerCase(); - - Rlog.v(RILJ_LOG_TAG, - "XMM7260: Add OperatorInfo: " + strOperatorLong + - ", " + strOperatorLong + - ", " + strOperatorNumeric + - ", " + strState); - - ret.add(new OperatorInfo(strOperatorLong, // operatorAlphaLong - strOperatorLong, // operatorAlphaShort - strOperatorNumeric, // operatorNumeric - strState)); // stateString - } - - return ret; - } - - @Override - protected void - processUnsolicited(Parcel p, int type) { - Object ret; - - int dataPosition = p.dataPosition(); - int origResponse = p.readInt(); - int newResponse = origResponse; - - /* Remap incorrect respones or ignore them */ - switch (origResponse) { - case 1041: //RIL_UNSOL_DC_RT_INFO_CHANGED - case RIL_UNSOL_STK_CALL_CONTROL_RESULT: - case RIL_UNSOL_WB_AMR_STATE: - case RIL_UNSOL_DEVICE_READY_NOTI: /* Registrant notification */ - case RIL_UNSOL_SIM_PB_READY: /* Registrant notification */ - Rlog.v(RILJ_LOG_TAG, - "XMM7260: ignoring unsolicited response " + - origResponse); - return; - } - - if (newResponse != origResponse) { - riljLog("SlteRIL: remap unsolicited response from " + - origResponse + " to " + newResponse); - p.setDataPosition(dataPosition); - p.writeInt(newResponse); - } - - switch (newResponse) { - case RIL_UNSOL_AM: - ret = responseString(p); - break; - case RIL_UNSOL_STK_SEND_SMS_RESULT: - ret = responseInts(p); - break; - default: - // Rewind the Parcel - p.setDataPosition(dataPosition); - - // Forward responses that we are not overriding to the super class - super.processUnsolicited(p, type); - return; - } - - switch (newResponse) { - case RIL_UNSOL_AM: - String strAm = (String)ret; - // Add debug to check if this wants to execute any useful am command - Rlog.v(RILJ_LOG_TAG, "XMM7260: am=" + strAm); - break; - } - } -} diff --git a/rootdir/etc/init.baseband.rc b/rootdir/etc/init.baseband.rc index 244c152..e212667 100755 --- a/rootdir/etc/init.baseband.rc +++ b/rootdir/etc/init.baseband.rc @@ -36,7 +36,7 @@ on fs #For cpefs partition mkdir /cpefs 0771 radio system wait /dev/block/platform/13540000.dwmmc0/by-name/CPEFS - check_fs /dev/block/platform/13540000.dwmmc0/by-name/CPEFS ext4 + exec /system/bin/e2fsck -p /dev/block/platform/13540000.dwmmc0/by-name/CPEFS mount ext4 /dev/block/platform/13540000.dwmmc0/by-name/CPEFS /cpefs noatime nosuid nodev barrier=1 chown radio system /cpefs chmod 0771 /cpefs @@ -54,10 +54,8 @@ on property:sys.boot_completed=1 symlink /data/user_de/0/com.android.providers.telephony/databases /data/data/com.android.providers.telephony/databases symlink /data/user_de/0/com.android.providers.telephony/shared_prefs /data/data/com.android.providers.telephony/shared_prefs -service cpboot-daemon /sbin/cbd -d -tss310 -bm -mm -P platform/13540000.dwmmc0/by-name/RADIO +service cpboot-daemon /system/bin/cbd -d -tss310 -bm -mm -P platform/13540000.dwmmc0/by-name/RADIO class main user root group radio cache inet misc audio sdcard_rw log sdcard_r shell - seclabel u:r:cbd:s0 - diff --git a/rootdir/etc/init.samsung.rc b/rootdir/etc/init.samsung.rc index 7b8401a..04c59b4 100644 --- a/rootdir/etc/init.samsung.rc +++ b/rootdir/etc/init.samsung.rc @@ -470,38 +470,3 @@ service sensorhubservice /system/bin/sensorhubservice class main user system group input - -# for Wi-Fi only models -on property:ro.radio.noril=yes - stop ril-daemon - -service ril-daemon /system/bin/rild - class main - socket rild stream 660 root radio - socket rild-debug stream 660 radio system - socket rild-cas stream 660 casdrm mmb - user root - seclabel u:r:init:s0 - group radio cache inet misc audio sdcard_r sdcard_rw log vpn system - onrestart restart cpboot-daemon - -service ril-daemon1 /system/bin/rild -c 2 - class main - socket rild2 stream 660 root radio - socket rild-debug2 stream 660 radio system - user root - group radio cache inet misc audio sdcard_r sdcard_rw log - seclabel u:r:init:s0 - disabled - onrestart restart cpboot-daemon - -on property:persist.sys.cpboot=disable - stop ril-daemon - stop cpboot-daemon - -# start multiple rilds based on multisim property -on property:ro.multisim.simslotcount=2 - stop ril-daemon - start ril-daemon - start ril-daemon1 - diff --git a/rootdir/etc/init.samsungexynos7580.rc b/rootdir/etc/init.samsungexynos7580.rc index c54f5ce..31b2742 100755 --- a/rootdir/etc/init.samsungexynos7580.rc +++ b/rootdir/etc/init.samsungexynos7580.rc @@ -8,7 +8,9 @@ on early-init mount debugfs /sys/kernel/debug /sys/kernel/debug mode=755 on init - export LD_SHIM_LIBS "/system/bin/gpsd|libshim_gpsd.so" + export LD_SHIM_LIBS "/system/bin/gpsd|/system/vendor/lib/libshim_gpsd.so:/system/lib/libexynoscamera.so|/system/vendor/lib/libcamhelpr.so:/system/lib/libsec-ril.so|/system/lib/libprotobuf-cpp-shim.so:/system/lib/libsec-ril-dsds.so|/system/lib/libprotobuf-cpp-shim.so" +# export LD_PRELOAD "libshim_gpsd.so libshim_rild.so" + mkdir /preload 0771 system system # See storage config details at http://source.android.com/tech/storage/ @@ -54,6 +56,9 @@ on post-fs-data mkdir /data/firmware 0770 media system chown media system /data/firmware + # Mark wifi driver as unloaded - "ok" indicates loaded + setprop wlan.driver.status not_ok + on boot # Ensure all CPUs are online (big cluster) write /sys/devices/system/cpu/cpu4/online 1 @@ -170,16 +175,16 @@ on boot chown system log /proc/sec_log - chown bluetooth net_bt_stack /dev/ttySAC3 + chown bluetooth bluetooth /dev/ttySAC3 chmod 0660 /dev/ttySAC3 # permissions for bluetooth. setprop ro.bt.bdaddr_path "/efs/bluetooth/bt_addr" - chown bluetooth net_bt_stack ro.bt.bdaddr_path - chown radio net_bt_stack /efs/bluetooth/bt_addr + chown bluetooth bluetooth ro.bt.bdaddr_path + chown radio bluetooth /efs/bluetooth/bt_addr chmod 0640 /efs/bluetooth/bt_addr chmod 0660 /sys/class/rfkill/rfkill0/state - chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state - chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type + chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state + chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type # IR_LED chown system radio /sys/class/sec/sec_ir/ir_send @@ -895,9 +900,10 @@ on property:ro.debug_level=0x4f4c start watchdogd -service battery_charger /sbin/healthd -c +service charger /charger class charger - critical + critical + group system graphics log seclabel u:r:healthd:s0 # LPM diff --git a/rootdir/etc/init.wifi.rc b/rootdir/etc/init.wifi.rc index 6eee763..20a6c1d 100755 --- a/rootdir/etc/init.wifi.rc +++ b/rootdir/etc/init.wifi.rc @@ -1,9 +1,9 @@ # Wi-Fi init file +on post-fs-data #Create directory for hostapd mkdir /data/hostapd 0770 system wifi - -on post-fs-data + # give system access to wpa_supplicant.conf for backup and restore mkdir /data/misc/wifi 0770 wifi system chmod 0660 /data/misc/wifi/wpa_supplicant.conf @@ -32,26 +32,39 @@ on post-fs-data mkdir /efs/wifi 0775 radio system chown system wifi /efs/wifi/.mac.info chmod 0660 /efs/wifi/.mac.info + start macloader + # Create netmgr log dir + mkdir /data/vendor/netmgr 0770 radio radio + chmod 0770 /data/vendor/netmgr + + # Create directory for radio + mkdir /data/vendor/radio 0770 system radio on boot # Pcie WiFi T-put setting write /sys/class/net/wlan0/queues/rx-0/rps_cpus 00 #write /proc/sys/net/ipv4/tcp_adv_win_scale 2 + # Set permissions for firmware path control + chown wifi wifi /sys/module/dhd/parameters/firmware_path # Run deferred initcalls of builtin kernel modules (bcmdhd) service wifiloader /system/bin/wifiloader class main - seclabel u:r:wifiloader:s0 oneshot -service p2p_supplicant /system/bin/wpa_supplicant -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -I/system/etc/wifi/p2p_supplicant_overlay.conf -puse_p2p_group_interface=1p2p_device=1 -m/data/misc/wifi/p2p_supplicant.conf -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 +service netmgrd /system/bin/netmgrd class main - socket wpa_wlan0 dgram 660 wifi wifi - disabled - oneshot - -service wpa_supplicant /system/bin/wpa_supplicant -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -I/system/etc/wifi/wpa_supplicant_overlay.conf -O/data/misc/wifi/sockets -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 + user root + group root wifi wakelock radio inet + +service wpa_supplicant /vendor/bin/hw/wpa_supplicant \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ + -I/system/etc/wifi/wpa_supplicant_overlay.conf -N \ + -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ + -I/system/etc/wifi/p2p_supplicant_overlay.conf \ + -puse_p2p_group_interface=1 \ + -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 class main socket wpa_wlan0 dgram 660 wifi wifi disabled @@ -73,11 +86,9 @@ on property:init.svc.macloader=stopped # disabled # oneshot -service hostapd /system/bin/hostapd -dddd /data/hostapd/hostapd.conf +service hostapd /vendor/bin/hostapd -dddd /data/hostapd/hostapd.conf class late_start user root group root oneshot disabled - - diff --git a/rootdir/etc/twrp.fstab b/rootdir/etc/twrp.fstab deleted file mode 100644 index 05b5908..0000000 --- a/rootdir/etc/twrp.fstab +++ /dev/null @@ -1,11 +0,0 @@ -/cache ext4 /dev/block/platform/13540000.dwmmc0/by-name/CACHE flags=display="Cache" -/data ext4 /dev/block/platform/13540000.dwmmc0/by-name/USERDATA flags=display="Data";encryptable=footer;length=-16384 -/system ext4 /dev/block/platform/13540000.dwmmc0/by-name/SYSTEM flags=display="System" -/boot emmc /dev/block/platform/13540000.dwmmc0/by-name/BOOT flags=display="Boot" -/recovery emmc /dev/block/platform/13540000.dwmmc0/by-name/RECOVERY flags=display="Recovery";backup=1 -/efs ext4 /dev/block/platform/13540000.dwmmc0/by-name/EFS flags=display="EFS";backup=1 -/radio ext4 /dev/block/platform/13540000.dwmmc0/by-name/RADIO flags=display="RADIO";backup=1 -/misc emmc /dev/block/platform/13540000.dwmmc0/by-name/OTA flags=display="Misc" - -/external_sd auto /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="MicroSD";storage;wipeingui;removable -/usb-otg auto /dev/block/sda1 /dev/block/sda flags=display="USB OTG";storage;wipeingui;removable diff --git a/rootdir/etc/ueventd.samsungexynos7580.rc b/rootdir/etc/ueventd.samsungexynos7580.rc index 1bf6972..df4c669 100644 --- a/rootdir/etc/ueventd.samsungexynos7580.rc +++ b/rootdir/etc/ueventd.samsungexynos7580.rc @@ -59,10 +59,10 @@ /dev/HPD 0660 system system # mfc -/dev/video6 0660 media drmrpc -/dev/video7 0660 media media -/dev/video8 0660 media media -/dev/video9 0660 media media +/dev/video6 0660 mediacodec mediadrm +/dev/video7 0660 media mediadrm +/dev/video8 0660 media mediadrm +/dev/video9 0660 media mediadrm # camera /dev/video100 0660 media media diff --git a/rootdir/etc/vendor/rild-dsds.rc b/rootdir/etc/vendor/rild-dsds.rc new file mode 100644 index 0000000..db97f70 --- /dev/null +++ b/rootdir/etc/vendor/rild-dsds.rc @@ -0,0 +1,24 @@ +# +# Copyright (C) 2017 Victor Lourme +# Copyright (C) 2017 TeamNexus +# +# Radio Interface Layer for Dual-SIM +# Ramdisk Init +# + +# Radio daemon for SIM 2 +service ril-daemon1 /vendor/bin/hw/rild -c 2 -l /system/lib/libsec-ril-dsds.so + class main + socket rild2 stream 660 system radio + socket rild-debug2 stream 660 system radio + user radio + group radio cache inet misc audio sdcard_r sdcard_rw log vpn system readproc wakelock + capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW + onrestart restart cpboot-daemon + +on property:persist.sys.cpboot=disable + stop ril-daemon1 + +on property:ro.radio.noril=1 + stop ril-daemon1 + diff --git a/rootdir/etc/vendor/rild.rc b/rootdir/etc/vendor/rild.rc new file mode 100644 index 0000000..54f61cf --- /dev/null +++ b/rootdir/etc/vendor/rild.rc @@ -0,0 +1,24 @@ +# +# Copyright (C) 2017 Victor Lourme +# +# Radio Interface Layer +# Ramdisk Init +# + +# Dual-SIM Support +import /vendor/etc/init/rild-dsds.rc + +# Radio daemon for SIM 1 +service ril-daemon /vendor/bin/hw/rild -c 1 -l /system/lib/libsec-ril.so + class main + socket rild stream 660 system radio + socket sap_uim_socket1 stream 660 bluetooth bluetooth + socket rild-debug stream 660 system radio + user radio + group radio cache inet misc audio sdcard_r sdcard_rw log vpn system readproc wakelock + capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW + onrestart restart cpboot-daemon + +on property:persist.sys.cpboot=disable + stop ril-daemon + stop cpboot-daemon diff --git a/sbin/sswap b/sbin/sswap new file mode 100644 index 0000000..2c4b811 Binary files /dev/null and b/sbin/sswap differ diff --git a/system.prop b/system.prop index fe347da..09d7310 100644 --- a/system.prop +++ b/system.prop @@ -37,12 +37,26 @@ persist.radio.sib16_support=0 rild.libpath=/system/lib/libsec-ril.so rild.libargs=-d /dev/ttyS0 ro.telephony.default_network=9 -ro.telephony.ril_class=SlteRIL ro.use_data_netmgrd=false persist.data.netmgrd.qos.enable=false ro.ril.hsxpa=1 ro.ril.gprsclass=10 ro.smps.enable=true +persist.data.netmgrd.qos.enable=false +ro.use_data_netmgrd=false +ro.telephony.get_imsi_from_sim=true \ +ro.ril.force_eri_from_xml=true \ +net.tethering.noprovisioning=true # Wi-Fi Tethering net.tethering.noprovisioning=true + +ro.secure=0 +ro.adb.secure=0 +ro.hardware=universal7580 +persist.service.adb.enable=1 +persist.service.debuggable=1 +persist.sys.usb.config=adb +ro.securestorage.support=false +net.tcp.default_init_rwnd=60 +ro.sys.sdcardfs=false diff --git a/system_prop.mk b/system_prop.mk new file mode 100644 index 0000000..1b25613 --- /dev/null +++ b/system_prop.mk @@ -0,0 +1,68 @@ +# Properties +# Default.prop overrides to get adb working at boot +PRODUCT_PROPERTY_OVERRIDES += \ + ro.secure=0 \ + ro.adb.secure=0 \ + ro.hardware=universal7580 \ + persist.service.adb.enable=1 \ + persist.service.debuggable=1 \ + persist.sys.usb.config=adb \ + ro.securestorage.support=false \ + persist.media.treble_omx=false + +# Dalvik/Art +PRODUCT_PROPERTY_OVERRIDES += \ + ro.sys.fw.dex2oat_thread_count=4 \ + dalvik.vm.heapstartsize=8m \ + dalvik.vm.heapgrowthlimit=256m \ + dalvik.vm.heapsize=512m \ + dalvik.vm.heaptargetutilization=0.75 \ + dalvik.vm.heapminfree=2m \ + dalvik.vm.heapmaxfree=8m + +# Hwui +PRODUCT_PROPERTY_OVERRIDES += \ + ro.hwui.texture_cache_size=88 \ + ro.hwui.layer_cache_size=58 \ + ro.hwui.path_cache_size=16 \ + ro.hwui.texture_cache_flushrate=0.4 \ + ro.hwui.shape_cache_size=4 \ + ro.hwui.gradient_cache_size=2 \ + ro.hwui.drop_shadow_cache_size=6 \ + ro.hwui.r_buffer_cache_size=8 \ + ro.hwui.text_small_cache_width=1024 \ + ro.hwui.text_small_cache_height=1024 \ + ro.hwui.text_large_cache_width=4096 \ + ro.hwui.text_large_cache_height=2048 \ + ro.hwui.fbo_cache_size=16 + +# Network +# Define default initial receive window size in segments. +PRODUCT_PROPERTY_OVERRIDES += \ + net.tcp.default_init_rwnd=60 + +# sdcardfs +PRODUCT_PROPERTY_OVERRIDES += \ + ro.sys.sdcardfs=false + +# Allows healthd to boot directly from charger mode rather than initiating a reboot. +PRODUCT_PROPERTY_OVERRIDES += \ + ro.enable_boot_charger_mode=1 + +# Radio Properties +PRODUCT_PROPERTY_OVERRIDES += \ + persist.radio.add_power_save=1 \ + persist.radio.apm_sim_not_pwdn=1 \ + telephony.lteOnGsmDevice=1 \ + telephony.lteOnCdmaDevice=0 \ + ro.telephony.default_network=9 \ + ro.use_data_netmgrd=false \ + persist.data.netmgrd.qos.enable=false \ + ro.ril.hsxpa=1 \ + ro.ril.telephony.mqanelements=6 \ + ro.ril.gprsclass=10 \ + ro.telephony.get_imsi_from_sim=true \ + ro.ril.force_eri_from_xml=true \ + net.tethering.noprovisioning=true + +ADDITIONAL_DEFAULT_PROPERTIES += $(PRODUCT_PROPERTY_OVERRIDES)