From b808b4d8cc6a1e508833d8671f9a5b6855c0be3f Mon Sep 17 00:00:00 2001 From: SandPox Date: Sun, 22 Nov 2015 05:54:41 +0000 Subject: [PATCH] Rework --- Android.mk | 2 +- BoardConfig.mk | 270 ++++---- README.md | 73 +- bluetooth/bdroid_buildcfg.h | 2 +- cm.dependencies | 16 +- .../cyanogenmod/hardware/SerialNumber.java | 2 +- configs/audio_policy.conf | 95 --- configs/egl.cfg | 2 - configs/media_codecs.xml | 120 ---- configs/media_profiles.xml | 529 -------------- device_kylepro.mk | 153 ++-- health/healthd-hawaii.cpp | 2 +- include/hardware/gps.h | 4 +- keylayouts/bcm_headset.kl | 3 - keylayouts/bcm_keypad_v2.kl | 85 --- keylayouts/gpio-keys.kl | 9 - keylayouts/samsung-keypad.kl | 91 --- .../base/core/res/res/values/config.xml | 8 +- .../apps/Settings/res/values/config.xml | 23 - ramdisk/charger | Bin 268108 -> 0 bytes ramdisk/fstab.hawaii_ss_kylepro | 25 +- ramdisk/init.hawaii_ss_kylepro.rc | 129 ++-- ramdisk/init.log.rc | 93 ++- ramdisk/init.rc | 652 ------------------ ramdisk/lpm.rc | 82 --- ramdisk/twrp.fstab.hawaii_ss_kylepro | 17 +- ramdisk/ueventd.hawaii_ss_kylepro.rc | 110 ++- sepolicy/file_contexts | 74 +- sepolicy/init.te | 4 +- sepolicy/service_contexts | 1 - sepolicy/system_server.te | 2 +- sepolicy/tvserver.te | 8 - sepolicy/vclmk.te | 14 - system.prop | 4 +- vendorsetup.sh | 2 +- 35 files changed, 477 insertions(+), 2229 deletions(-) delete mode 100644 configs/audio_policy.conf delete mode 100644 configs/egl.cfg delete mode 100644 configs/media_codecs.xml delete mode 100644 configs/media_profiles.xml delete mode 100644 keylayouts/bcm_headset.kl delete mode 100644 keylayouts/bcm_keypad_v2.kl delete mode 100644 keylayouts/gpio-keys.kl delete mode 100644 keylayouts/samsung-keypad.kl delete mode 100644 overlay/packages/apps/Settings/res/values/config.xml delete mode 100644 ramdisk/charger delete mode 100644 ramdisk/init.rc delete mode 100644 ramdisk/lpm.rc delete mode 100644 sepolicy/service_contexts delete mode 100644 sepolicy/tvserver.te delete mode 100644 sepolicy/vclmk.te diff --git a/Android.mk b/Android.mk index 110dd35..f8b621f 100644 --- a/Android.mk +++ b/Android.mk @@ -1,3 +1,3 @@ -ifeq ($(TARGET_DEVICE),kyleprods) +ifeq ($(TARGET_DEVICE),kylepro) include $(all-subdir-makefiles) endif diff --git a/BoardConfig.mk b/BoardConfig.mk index 7585031..c9ddb72 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -1,206 +1,194 @@ USE_CAMERA_STUB := true -# inherit from the proprietary version +# Inherit from the proprietary version -include vendor/samsung/kylepro/BoardConfigVendor.mk # Platform -TARGET_ARCH := arm -TARGET_NO_BOOTLOADER := true -TARGET_BOARD_PLATFORM := hawaii -TARGET_CPU_ABI := armeabi-v7a -TARGET_CPU_ABI2 := armeabi -TARGET_ARCH_VARIANT := armv7-a-neon -TARGET_CPU_VARIANT := cortex-a9 -TARGET_CPU_SMP := true -ARCH_ARM_HAVE_ARMV7A := true -ARCH_ARM_HAVE_VFP := true -ARCH_ARM_HAVE_TLS_REGISTER := true -ARCH_ARM_HAVE_NEON := true -TARGET_BOOTLOADER_BOARD_NAME := hawaii -TARGET_GLOBAL_CFLAGS += -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp -TARGET_GLOBAL_CPPFLAGS += -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp +TARGET_ARCH := arm +TARGET_NO_BOOTLOADER := true +TARGET_BOARD_PLATFORM := hawaii +TARGET_CPU_ABI := armeabi-v7a +TARGET_CPU_ABI2 := armeabi +TARGET_ARCH_VARIANT := armv7-a-neon +TARGET_CPU_VARIANT := cortex-a9 +TARGET_CPU_SMP := true +ARCH_ARM_HAVE_ARMV7A := true +ARCH_ARM_HAVE_VFP := true +ARCH_ARM_HAVE_TLS_REGISTER := true +ARCH_ARM_HAVE_NEON := true +TARGET_BOOTLOADER_BOARD_NAME := hawaii +TARGET_GLOBAL_CFLAGS += -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp +TARGET_GLOBAL_CPPFLAGS += -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp # Assert -TARGET_OTA_ASSERT_DEVICE := kylepro,S7580,GT-S7580,hawaii,kylexx +TARGET_OTA_ASSERT_DEVICE := kylepro,S7580,GT-S7580,hawaii,kylexx # Kernel -BOARD_MKBOOTIMG_ARGS := --kernel_offset 0x00008000 --ramdisk_offset 0x01000000 --tags_offset 0x00000100 -BOARD_KERNEL_CMDLINE := -BOARD_KERNEL_BASE := 0x82000000 -BOARD_KERNEL_PAGESIZE := 4096 -BOARD_KERNEL_OFFSET := 0x00008000 -BOARD_KERNEL_TAGS_OFFSET := 0x00000100 -BOARD_RAMDISK_OFFSET := 0x01000000 - -#TARGET_GCC_VERSION_EXP := 4.8 -TARGET_KERNEL_CONFIG := bcm21664_hawaii_ss_kylepro_rev00_cyanogenmod_defconfig -TARGET_KERNEL_SOURCE := kernel/samsung/kyleproxx -TARGET_KERNEL_CUSTOM_TOOLCHAIN := arm-eabi-4.6 +BOARD_MKBOOTIMG_ARGS := --kernel_offset 0x00008000 --ramdisk_offset 0x01000000 --tags_offset 0x00000100 +BOARD_KERNEL_CMDLINE := +BOARD_KERNEL_BASE := 0x82000000 +BOARD_KERNEL_PAGESIZE := 4096 +BOARD_KERNEL_OFFSET := 0x00008000 +BOARD_KERNEL_TAGS_OFFSET := 0x00000100 +BOARD_RAMDISK_OFFSET := 0x01000000 +TARGET_KERNEL_CONFIG := bcm21664_hawaii_ss_kylepro_rev00_cyanogenmod_defconfig +TARGET_KERNEL_SOURCE := kernel/samsung/kyleproxx +TARGET_KERNEL_CUSTOM_TOOLCHAIN := arm-eabi-4.6 # Use the CM PowerHAL -TARGET_USES_CM_POWERHAL := true -CM_POWERHAL_EXTENSION := hawaii -TARGET_POWERHAL_VARIANT = cm +TARGET_USES_CM_POWERHAL := true +CM_POWERHAL_EXTENSION := hawaii +TARGET_POWERHAL_VARIANT := cm # PARTITION SIZE -BOARD_BOOTIMAGE_PARTITION_SIZE := 8388608 -BOARD_RECOVERYIMAGE_PARTITION_SIZE := 9191424 #8388608 -BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1210769408 -BOARD_USERDATAIMAGE_PARTITION_SIZE := 2373976064 -BOARD_CACHEIMAGE_PARTITION_SIZE := 209715200 -BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 -BOARD_FLASH_BLOCK_SIZE := 262144 # BOARD_KERNEL_PAGESIZE * 64 +BOARD_BOOTIMAGE_PARTITION_SIZE := 8388608 +BOARD_RECOVERYIMAGE_PARTITION_SIZE := 9191424 +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1210769408 +BOARD_USERDATAIMAGE_PARTITION_SIZE := 2373976064 +BOARD_CACHEIMAGE_PARTITION_SIZE := 209715200 +BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 +BOARD_FLASH_BLOCK_SIZE := 262144 # Bluetooth -BOARD_HAVE_BLUETOOTH := true -BOARD_HAVE_BLUETOOTH_BCM := true +BOARD_HAVE_BLUETOOTH := true +BOARD_HAVE_BLUETOOTH_BCM := true BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/samsung/kylepro/bluetooth -BOARD_BLUEDROID_VENDOR_CONF := device/samsung/kylepro/bluetooth/libbt_vndcfg_s7580.txt +BOARD_BLUEDROID_VENDOR_CONF := device/samsung/kylepro/bluetooth/libbt_vndcfg_s7580.txt # Connectivity - Wi-Fi -BOARD_HAVE_SAMSUNG_WIFI := true -WPA_BUILD_SUPPLICANT := true -BOARD_WPA_SUPPLICANT_DRIVER := NL80211 -WPA_SUPPLICANT_VERSION := VER_0_8_X -BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd -BOARD_HOSTAPD_DRIVER := NL80211 -BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_bcmdhd -BOARD_WLAN_DEVICE := bcmdhd -BOARD_WLAN_DEVICE_REV := bcm4330_b1 -WIFI_DRIVER_FW_PATH_PARAM := "/sys/module/dhd/parameters/firmware_path" -WIFI_DRIVER_FW_PATH_STA := "/system/etc/wifi/bcmdhd_sta.bin" -WIFI_DRIVER_FW_PATH_AP := "/system/etc/wifi/bcmdhd_apsta.bin" -WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/dhd.ko" -WIFI_DRIVER_MODULE_NAME := "dhd" -WIFI_DRIVER_MODULE_ARG := "firmware_path=/system/etc/wifi/bcmdhd_sta.bin nvram_path=/system/etc/wifi/nvram_net.txt" -WIFI_DRIVER_MODULE_AP_ARG := "firmware_path=/system/etc/wifi/bcmdhd_apsta.bin nvram_path=/system/etc/wifi/nvram_net.txt" -WIFI_BAND := 802_11_ABG +BOARD_HAVE_SAMSUNG_WIFI := true +WPA_BUILD_SUPPLICANT := true +BOARD_WPA_SUPPLICANT_DRIVER := NL80211 +WPA_SUPPLICANT_VERSION := VER_0_8_X +BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd +BOARD_HOSTAPD_DRIVER := NL80211 +BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_bcmdhd +BOARD_WLAN_DEVICE := bcmdhd +BOARD_WLAN_DEVICE_REV := bcm4330_b1 +WIFI_DRIVER_FW_PATH_PARAM := "/sys/module/dhd/parameters/firmware_path" +WIFI_DRIVER_FW_PATH_STA := "/system/etc/wifi/bcmdhd_sta.bin" +WIFI_DRIVER_FW_PATH_AP := "/system/etc/wifi/bcmdhd_apsta.bin" +WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/dhd.ko" +WIFI_DRIVER_MODULE_NAME := "dhd" +WIFI_DRIVER_MODULE_ARG := "firmware_path=/system/etc/wifi/bcmdhd_sta.bin nvram_path=/system/etc/wifi/nvram_net.txt" +WIFI_DRIVER_MODULE_AP_ARG := "firmware_path=/system/etc/wifi/bcmdhd_apsta.bin nvram_path=/system/etc/wifi/nvram_net.txt" +WIFI_BAND := 802_11_ABG # Resolution -TARGET_SCREEN_HEIGHT := 800 -TARGET_SCREEN_WIDTH := 480 +TARGET_SCREEN_HEIGHT := 800 +TARGET_SCREEN_WIDTH := 480 # Hardware rendering -BOARD_EGL_CFG := device/samsung/kylepro/configs/egl.cfg -USE_OPENGL_RENDERER := true -BOARD_USE_MHEAP_SCREENSHOT := true -BOARD_EGL_WORKAROUND_BUG_10194508 := true -NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3 -TARGET_USES_ION := true -HWUI_COMPILE_FOR_PERF := true -COMMON_GLOBAL_CFLAGS += -DNEEDS_VECTORIMPL_SYMBOLS -DHAWAII_HWC -DADD_LEGACY_ACQUIRE_BUFFER_SYMBOL -#TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK := true - -# Camera -#BOARD_USE_METADATABUFFERTYPE := true -#BOARD_USE_STOREMETADATA := true +USE_OPENGL_RENDERER := true +BOARD_USE_MHEAP_SCREENSHOT := true +BOARD_EGL_WORKAROUND_BUG_10194508 := true +TARGET_USES_ION := true +HWUI_COMPILE_FOR_PERF := true +COMMON_GLOBAL_CFLAGS += -DNEEDS_VECTORIMPL_SYMBOLS -DHAWAII_HWC -DADD_LEGACY_ACQUIRE_BUFFER_SYMBOL +TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK := true + +# Enable WEBGL in WebKit +ENABLE_WEBGL := true # External apps on SD -TARGET_EXTERNAL_APPS = sdcard1 +TARGET_EXTERNAL_APPS := sdcard1 # Include an expanded selection of fonts -EXTENDED_FONT_FOOTPRINT := true +EXTENDED_FONT_FOOTPRINT := true -# Opengl -BOARD_USES_HWCOMPOSER := true -BOARD_USE_BGRA_8888 := true +# OpenGL +BOARD_USES_HWCOMPOSER := true +BOARD_USE_BGRA_8888 := true # Audio -BOARD_USES_ALSA_AUDIO := true +BOARD_USES_ALSA_AUDIO := true # Enable dex-preoptimization to speed up the first boot sequence # of an SDK AVD. Note that this operation only works on Linux for now ifeq ($(HOST_OS),linux) - WITH_DEXPREOPT := true + WITH_DEXPREOPT := true endif -# Bootanimation -TARGET_BOOTANIMATION_PRELOAD := true -TARGET_BOOTANIMATION_TEXTURE_CACHE := true +# BootAnimation +TARGET_BOOTANIMATION_PRELOAD := true +TARGET_BOOTANIMATION_TEXTURE_CACHE := true # Charger -BOARD_BATTERY_DEVICE_NAME := battery -BOARD_CHARGER_ENABLE_SUSPEND := true -BOARD_CHARGER_SHOW_PERCENTAGE := true -BOARD_CHARGING_MODE_BOOTING_LPM := /sys/class/power_supply/battery/batt_lp_charging -CHARGING_ENABLED_PATH := "/sys/class/power_supply/battery/batt_lp_charging" -BACKLIGHT_PATH := "/sys/class/backlight/panel/brightness" +BOARD_BATTERY_DEVICE_NAME := battery +BOARD_CHARGER_ENABLE_SUSPEND := true +BOARD_CHARGER_SHOW_PERCENTAGE := true +BOARD_CHARGING_MODE_BOOTING_LPM := /sys/class/power_supply/battery/batt_lp_charging +CHARGING_ENABLED_PATH := "/sys/class/power_supply/battery/batt_lp_charging" +BACKLIGHT_PATH := "/sys/class/backlight/panel/brightness" # healthd -BOARD_HAL_STATIC_LIBRARIES := libhealthd-kylepro.hawaii +BOARD_HAL_STATIC_LIBRARIES := libhealthd-kylepro.hawaii # RIL -BOARD_RIL_CLASS := ../../../device/samsung/kylepro/ril/ +BOARD_RIL_CLASS := ../../../device/samsung/kylepro/ril/ # Recovery -#TARGET_RECOVERY_INITRC := -TARGET_RECOVERY_FSTAB := device/samsung/kylepro/ramdisk/fstab.hawaii_ss_kylepro -TARGET_USE_CUSTOM_LUN_FILE_PATH := "/sys/class/android_usb/android0/f_mass_storage/lun%d/file" -BOARD_HAS_NO_SELECT_BUTTON := true -BOARD_HAS_LARGE_FILESYSTEM := true -TARGET_USERIMAGES_USE_EXT4 := true -TARGET_RECOVERY_PIXEL_FORMAT := BGRA_8888 -BOARD_HAS_NO_MISC_PARTITION := true -BOARD_RECOVERY_HANDLES_MOUNT := true -BOARD_USES_MMCUTILS := true -BOARD_HAS_DOWNLOAD_MODE := true -BOARD_USE_USB_MASS_STORAGE_SWITCH := true -BOARD_SUPPRESS_EMMC_WIPE := true -TARGET_RECOVERY_DENSITY := hdpi +TARGET_RECOVERY_FSTAB := device/samsung/kylepro/ramdisk/fstab.hawaii_ss_kylepro +TARGET_USE_CUSTOM_LUN_FILE_PATH := "/sys/class/android_usb/android0/f_mass_storage/lun%d/file" +BOARD_HAS_NO_SELECT_BUTTON := true +BOARD_HAS_LARGE_FILESYSTEM := true +TARGET_USERIMAGES_USE_EXT4 := true +TARGET_RECOVERY_PIXEL_FORMAT := BGRA_8888 +BOARD_HAS_NO_MISC_PARTITION := true +BOARD_RECOVERY_HANDLES_MOUNT := true +BOARD_USES_MMCUTILS := true +BOARD_HAS_DOWNLOAD_MODE := true +BOARD_USE_USB_MASS_STORAGE_SWITCH := true +BOARD_SUPPRESS_EMMC_WIPE := true +TARGET_RECOVERY_DENSITY := hdpi # TWRP -#TARGET_RECOVERY_FSTAB := device/samsung/kylepro/ramdisk/twrp.fstab.hawaii_ss_kylepro -DEVICE_RESOLUTION := 480x800 -TW_MAX_BRIGHTNESS := 255 -TW_CUSTOM_BATTERY_PATH := /sys/class/power_supply/battery -TW_BRIGHTNESS_PATH := /sys/class/backlight/panel/brightness -RECOVERY_SDCARD_ON_DATA := true -TW_NO_REBOOT_BOOTLOADER := true -RECOVERY_GRAPHICS_USE_LINELENGTH := true -TW_INTERNAL_STORAGE_PATH := /data/media -TW_INTERNAL_STORAGE_MOUNT_POINT := data -TW_EXTERNAL_STORAGE_PATH := /external_sd -TW_EXTERNAL_STORAGE_MOUNT_POINT := external_sd -TW_DEFAULT_EXTERNAL_STORAGE := true -TW_EXCLUDE_SUPERSU := true -BOARD_HAS_NO_REAL_SDCARD := true -HAVE_SELINUX := true +#TARGET_RECOVERY_FSTAB := device/samsung/kylepro/ramdisk/twrp.fstab.hawaii_ss_kylepro +DEVICE_RESOLUTION := 480x800 +TW_MAX_BRIGHTNESS := 255 +TW_CUSTOM_BATTERY_PATH := /sys/class/power_supply/battery +TW_BRIGHTNESS_PATH := /sys/class/backlight/panel/brightness +RECOVERY_SDCARD_ON_DATA := true +TW_NO_REBOOT_BOOTLOADER := true +RECOVERY_GRAPHICS_USE_LINELENGTH := true +TW_INTERNAL_STORAGE_PATH := /data/media +TW_INTERNAL_STORAGE_MOUNT_POINT := data +TW_EXTERNAL_STORAGE_PATH := /external_sd +TW_EXTERNAL_STORAGE_MOUNT_POINT := external_sd +TW_DEFAULT_EXTERNAL_STORAGE := true +TW_EXCLUDE_SUPERSU := true +BOARD_HAS_NO_REAL_SDCARD := true +HAVE_SELINUX := true # Vold -BOARD_UMS_LUNFILE := /sys/class/android_usb/f_mass_storage/lun0/file -TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/class/android_usb/android0/f_mass_storage/lun/file -BOARD_VOLD_EMMC_SHARES_DEV_MAJOR := true -BOARD_VOLD_MAX_PARTITIONS := 19 +BOARD_UMS_LUNFILE := /sys/class/android_usb/f_mass_storage/lun0/file +TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/class/android_usb/android0/f_mass_storage/lun/file +BOARD_VOLD_EMMC_SHARES_DEV_MAJOR := true +BOARD_VOLD_MAX_PARTITIONS := 19 # MTP -BOARD_MTP_DEVICE := /dev/mtp_usb +BOARD_MTP_DEVICE := /dev/mtp_usb # CMHW -BOARD_HARDWARE_CLASS := hardware/samsung/cmhw/ device/samsung/kylepro/cmhw/ +BOARD_HARDWARE_CLASS := hardware/samsung/cmhw/ device/samsung/kylepro/cmhw/ # GPS -TARGET_SPECIFIC_HEADER_PATH := device/samsung/kylepro/include +TARGET_SPECIFIC_HEADER_PATH := device/samsung/kylepro/include # Compat -TARGET_USES_LOGD := false - -# Legends said jemalloc causes a lot of random crash on free() -# but when dlmalloc running on this device it's terrible slow and causes -# slow app install; "Optimizing app"; "Android is upgrading" -# on boot. Feel free to try it -MALLOC_IMPL := jemalloc +TARGET_USES_LOGD := false +# SELinux BOARD_SEPOLICY_DIRS += \ device/samsung/kylepro/sepolicy BOARD_SEPOLICY_UNION += \ file_contexts \ property_contexts \ - service_contexts \ bkmgrd.te \ device.te \ - surfaceflinger.te \ - bluetooth.te \ + surfaceflinger.te \ + bluetooth.te \ geomagneticd.te \ gpsd.te \ init.te \ @@ -209,6 +197,4 @@ BOARD_SEPOLICY_UNION += \ macloader.te \ rild.te \ shell.te \ - system_server.te \ - tvserver.te \ - vclmk.te + system_server.te diff --git a/README.md b/README.md index b044261..4f94f85 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,69 @@ -# This is device tree for GT-S7580 (Kylepro), build based on GT-S7270 device tree by Zim555 +# CM12.1 Device tree for GT-S7580 -### Other source: -* Kernel: https://github.com/SandPox/android_kernel_samsung_kyleproxx -* Vendor: https://github.com/SandPox/android_vendor_samsung_kyleproxx +### Spec: + - Platform: HAWAII (BROADCOM) + - Family: KONA (BROADCOM) + - Codename: KYLEPRO + - SoC: BCM21664T (1.2Ghz) + - CPU: Cortex-A9 + - GPU: Broadcom VideoCore IV + - Screen Resolution: 480x800 + - RAM: 768M + - Sensor: Accelerometer, proximity, compass + - Misc: WIFI, Bluetooth, HSPA+, GPS + - Memory: 4GB (Usable 2.2GB) -### Patch -* Will release when CM13 arrives. +### Other resource: + - Kernel source: https://github.com/SandPox/android_kernel_samsung_kyleproxx + - Vendor blobs: https://github.com/SandPox/android_vendor_samsung_kyleproxx/tree/kylepro -Thanks to Zim555 for all his helps :) +### More Information: +```sh +$ cat /proc/cpuinfo +Processor : ARMv7 Processor rev 0 (v7l) +processor : 0 +BogoMIPS : 1190.29 + +processor : 1 +BogoMIPS : 1190.29 + +Features : swp half thumb fastmult vfp edsp neon vfpv3 tls +CPU implementer : 0x41 +CPU architecture: 7 +CPU variant : 0x3 +CPU part : 0xc09 +CPU revision : 0 + +Hardware : hawaii_ss_kylepro +Revision : 0000 +Serial : 0000000000000000 +``` + +```sh +$ cat /proc/emmc +dev: size erasesize name +mmcblk0p1: 00000800 00000400 "cal" +mmcblk0p2: 00000200 00000400 "sysparm_dep" +mmcblk0p3: 00000200 00000400 "parm-spml_dep" +mmcblk0p4: 00000200 00000400 "RF_CAL_FILE" +mmcblk0p5: 00004000 00000400 "KERNEL" +mmcblk0p6: 00004000 00000400 "RECOVERY" +mmcblk0p7: 00009600 00000400 "modem" +mmcblk0p8: 00000400 00000400 "reserved" +mmcblk0p9: 00001000 00000400 "SBL1" +mmcblk0p10: 00001000 00000400 "SBL2" +mmcblk0p11: 00004000 00000400 "PARAM" +mmcblk0p12: 00000400 00000400 "DTSBK" +mmcblk0p13: 00000400 00000400 "DTS" +mmcblk0p14: 00000200 00000400 "FOTA_SIG" +mmcblk0p15: 0000a000 00000400 "efs" +mmcblk0p16: 00064000 00000400 "CSC" +mmcblk0p17: 00241570 00000400 "system" +mmcblk0p18: 0000f000 00000400 "HIDDEN" +mmcblk0p19: 0046c000 00000400 "userdata" +``` + +### Credits (Sort by alphabetical order): + - Pawitp + - The CyanogenMod Team + - Zim555 diff --git a/bluetooth/bdroid_buildcfg.h b/bluetooth/bdroid_buildcfg.h index f5e3ccc..e46f849 100644 --- a/bluetooth/bdroid_buildcfg.h +++ b/bluetooth/bdroid_buildcfg.h @@ -17,6 +17,6 @@ #ifndef _BDROID_BUILDCFG_H #define _BDROID_BUILDCFG_H -#define BTM_DEF_LOCAL_NAME "GT-S7580" +#define BTM_DEF_LOCAL_NAME "GT-S7580" #endif diff --git a/cm.dependencies b/cm.dependencies index 920bdb8..0cd0484 100644 --- a/cm.dependencies +++ b/cm.dependencies @@ -1,10 +1,10 @@ [ - { - "repository": "android_packages_apps_SamsungServiceMode", - "target_path": "packages/apps/SamsungServiceMode" - }, - { - "repository": "android_hardware_samsung", - "target_path": "hardware/samsung" - } + { + "repository": "android_packages_apps_SamsungServiceMode", + "target_path": "packages/apps/SamsungServiceMode" + }, + { + "repository": "android_hardware_samsung", + "target_path": "hardware/samsung" + } ] \ No newline at end of file diff --git a/cmhw/org/cyanogenmod/hardware/SerialNumber.java b/cmhw/org/cyanogenmod/hardware/SerialNumber.java index 9a769ab..1f53fc8 100644 --- a/cmhw/org/cyanogenmod/hardware/SerialNumber.java +++ b/cmhw/org/cyanogenmod/hardware/SerialNumber.java @@ -36,7 +36,7 @@ public class SerialNumber { * Returns the alternative serial number to be displayed. */ public static String getSerialNumber() { - return SystemProperties.get("ril.serialnumber"); + return SystemProperties.get("ro.serialno"); } } diff --git a/configs/audio_policy.conf b/configs/audio_policy.conf deleted file mode 100644 index 7296dd5..0000000 --- a/configs/audio_policy.conf +++ /dev/null @@ -1,95 +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_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER - default_output_device AUDIO_DEVICE_OUT_SPEAKER - attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_VOICE_CALL -} - -# 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". - -# IMPORTATANT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# If your output device support 16000hz sample rate, please do NOT list 16000 first, because I use -# first_supported_sample_rate==16000 as VoIP out -# I also use input device that support AUDIO_DEVICE_IN_VOICE_CALL as VoIP input indicator, otherwise I -# need to modify AudioPolicyManagerBase to add enum strings or rewrite Audio Policy Configuration -# loading function to add more enum strings. -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -audio_hw_modules { - primary { - outputs { - primary { - sampling_rates 48000 - channel_masks AUDIO_CHANNEL_OUT_STEREO - formats 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_ALL_SCO|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET - flags AUDIO_OUTPUT_FLAG_PRIMARY - } - voip { - sampling_rates 16000|48000 - channel_masks AUDIO_CHANNEL_OUT_STEREO - formats 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_ALL_SCO - } - } - inputs { - primary { - sampling_rates 8000|11025|16000|22050|24000|32000|44100|48000 - channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO - formats AUDIO_FORMAT_PCM_16_BIT - devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_FM|AUDIO_DEVICE_IN_VOICE_CALL - } - voip { - sampling_rates 8000|11025|16000|22050|24000|32000|44100|48000 - channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO - formats AUDIO_FORMAT_PCM_16_BIT - devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_VOICE_CALL - } - } - } - a2dp { - outputs { - a2dp { - sampling_rates 44100 - channel_masks AUDIO_CHANNEL_OUT_STEREO - formats AUDIO_FORMAT_PCM_16_BIT - devices AUDIO_DEVICE_OUT_ALL_A2DP - } - } - } - r_submix { - outputs { - submix { - sampling_rates 44100|48000 - channel_masks AUDIO_CHANNEL_OUT_STEREO - formats AUDIO_FORMAT_PCM_16_BIT - devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX - } - } - inputs { - submix { - sampling_rates 44100|48000 - channel_masks AUDIO_CHANNEL_IN_STEREO - formats AUDIO_FORMAT_PCM_16_BIT - devices AUDIO_DEVICE_IN_REMOTE_SUBMIX - } - } - } - } -} diff --git a/configs/egl.cfg b/configs/egl.cfg deleted file mode 100644 index 7e9da07..0000000 --- a/configs/egl.cfg +++ /dev/null @@ -1,2 +0,0 @@ -0 0 android -0 1 hawaii diff --git a/configs/media_codecs.xml b/configs/media_codecs.xml deleted file mode 100644 index 9e1ea49..0000000 --- a/configs/media_codecs.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/configs/media_profiles.xml b/configs/media_profiles.xml deleted file mode 100644 index 5f5c7ac..0000000 --- a/configs/media_profiles.xml +++ /dev/null @@ -1,529 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/device_kylepro.mk b/device_kylepro.mk index a1b9401..5a0fc51 100644 --- a/device_kylepro.mk +++ b/device_kylepro.mk @@ -3,118 +3,109 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk) $(call inherit-product-if-exists, vendor/samsung/kylepro/kylepro-common-vendor.mk) # Use high-density artwork where available -PRODUCT_LOCALES += hdpi -PRODUCT_AAPT_CONFIG := normal -PRODUCT_AAPT_PREF_CONFIG := hdpi +#PRODUCT_LOCALES += hdpi +#PRODUCT_AAPT_CONFIG := normal +#PRODUCT_AAPT_PREF_CONFIG := hdpi DEVICE_PACKAGE_OVERLAYS += device/samsung/kylepro/overlay # Init files PRODUCT_COPY_FILES += \ - device/samsung/kylepro/ramdisk/fstab.hawaii_ss_kylepro:root/fstab.hawaii_ss_kylepro \ - device/samsung/kylepro/ramdisk/init.rc:root/init.rc \ - device/samsung/kylepro/ramdisk/init.hawaii_ss_kylepro.rc:root/init.hawaii_ss_kylepro.rc \ - device/samsung/kylepro/ramdisk/init.bcm2166x.usb.rc:root/init.bcm2166x.usb.rc \ - device/samsung/kylepro/ramdisk/init.log.rc:root/init.log.rc \ - device/samsung/kylepro/ramdisk/charger:root/charger \ - device/samsung/kylepro/ramdisk/ueventd.hawaii_ss_kylepro.rc:root/ueventd.hawaii_ss_kylepro.rc - + device/samsung/kylepro/ramdisk/fstab.hawaii_ss_kylepro:root/fstab.hawaii_ss_kylepro \ + device/samsung/kylepro/ramdisk/init.hawaii_ss_kylepro.rc:root/init.hawaii_ss_kylepro.rc \ + device/samsung/kylepro/ramdisk/init.bcm2166x.usb.rc:root/init.bcm2166x.usb.rc \ + device/samsung/kylepro/ramdisk/init.log.rc:root/init.log.rc \ + device/samsung/kylepro/ramdisk/ueventd.hawaii_ss_kylepro.rc:root/ueventd.hawaii_ss_kylepro.rc + PRODUCT_COPY_FILES += \ - device/samsung/kylepro/configs/media_profiles.xml:system/etc/media_profiles.xml \ - device/samsung/kylepro/configs/audio_policy.conf:system/etc/audio_policy.conf \ - 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 \ - device/samsung/kylepro/configs/media_codecs.xml:system/etc/media_codecs.xml - -# Prebuilt kl keymaps -PRODUCT_COPY_FILES += \ - device/samsung/kylepro/keylayouts/bcm_headset.kl:system/usr/keylayout/bcm_headset.kl \ - device/samsung/kylepro/keylayouts/bcm_keypad_v2.kl:system/usr/keylayout/bcm_keypad_v2.kl \ - device/samsung/kylepro/keylayouts/gpio-keys.kl:system/usr/keylayout/gpio-keys.kl \ - device/samsung/kylepro/keylayouts/samsung-keypad.kl:system/usr/keylayout/samsung-keypad.kl + 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 # Charger PRODUCT_PACKAGES += \ - charger_res_images + charger_res_images # Insecure ADBD ADDITIONAL_DEFAULT_PROPERTIES += \ - ro.adb.secure=0 \ - persist.service.adb.enable=0 + ro.adb.secure=0 \ + persist.service.adb.enable=0 # Filesystem management tools PRODUCT_PACKAGES += \ - make_ext4fs \ - e2fsck \ - setup_fs - + make_ext4fs \ + e2fsck \ + setup_fs + # Usb accessory PRODUCT_PACKAGES += \ - com.android.future.usb.accessory + com.android.future.usb.accessory # Misc other modules PRODUCT_PACKAGES += \ - audio.a2dp.default \ - audio.usb.default \ - audio.r_submix.default \ - audio.primary.default \ + audio.a2dp.default \ + audio.usb.default \ + audio.r_submix.default \ + audio.primary.default # Device-specific packages PRODUCT_PACKAGES += \ - SamsungServiceMode + SamsungServiceMode # KSM PRODUCT_PROPERTY_OVERRIDES += \ - ro.ksm.default=1 - + ro.ksm.default=1 + +# Disable sending usage data +PRODUCT_PROPERTY_OVERRIDES += \ + ro.config.nocheckin=1 + # Wi-Fi PRODUCT_PACKAGES += \ - dhcpcd.conf \ - hostapd \ - wpa_supplicant \ - wpa_supplicant.conf + dhcpcd.conf \ + hostapd \ + wpa_supplicant \ + wpa_supplicant.conf # These are the hardware-specific features PRODUCT_COPY_FILES += \ - frameworks/native/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.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.front.xml:system/etc/permissions/android.hardware.camera.front.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.telephony.gsm.xml:system/etc/permissions/android.hardware.telephony.gsm.xml \ - frameworks/native/data/etc/android.hardware.location.xml:system/etc/permissions/android.hardware.location.xml \ - frameworks/native/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml \ - frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.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.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.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.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \ - frameworks/native/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml \ - frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml \ - frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml + frameworks/native/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.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.front.xml:system/etc/permissions/android.hardware.camera.front.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.telephony.gsm.xml:system/etc/permissions/android.hardware.telephony.gsm.xml \ + frameworks/native/data/etc/android.hardware.location.xml:system/etc/permissions/android.hardware.location.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.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.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.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \ + frameworks/native/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml \ + frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml \ + frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml # These are the hardware-specific settings that are stored in system properties. # Note that the only such settings should be the ones that are too low-level to # be reachable from resources or other mechanisms. PRODUCT_PROPERTY_OVERRIDES += \ - wifi.interface=wlan0 \ - mobiledata.interfaces=rmnet0 \ - ro.telephony.ril_class=SamsungBCMRIL \ - persist.radio.multisim.config=none \ - cm.updater.uri=http://ota.sandpox.org \ - ro.telephony.call_ring.multiple=0 \ - camera2.portability.force_api=1 \ - ro.telephony.call_ring=0 - -# enable Google-specific location features, + wifi.interface=wlan0 \ + mobiledata.interfaces=rmnet0 \ + ro.telephony.ril_class=SamsungBCMRIL \ + persist.radio.multisim.config=none \ + cm.updater.uri=http://ota.sandpox.org \ + ro.telephony.call_ring.multiple=0 \ + camera2.portability.force_api=1 \ + ro.telephony.call_ring=0 + +# Enable Google-specific location features, # like NetworkLocationProvider and LocationCollector -#PRODUCT_PROPERTY_OVERRIDES += \ -# ro.com.google.locationfeatures=1 \ -# ro.com.google.networklocation=1 +PRODUCT_PROPERTY_OVERRIDES += \ + ro.com.google.locationfeatures=1 \ + ro.com.google.networklocation=1 # Extended JNI checks # The extended JNI checks will cause the system to run more slowly, but they can spot a variety of nasty bugs @@ -127,26 +118,22 @@ PRODUCT_PROPERTY_OVERRIDES += \ # MTP PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ persist.sys.usb.config=mtp - + # Override phone-hdpi-512-dalvik-heap to match value on stock # - helps pass CTS com.squareup.okhttp.internal.spdy.Spdy3Test#tooLargeDataFrame) # (property override must come before included property) -#PRODUCT_PROPERTY_OVERRIDES += \ -# dalvik.vm.heapgrowthlimit=56m +PRODUCT_PROPERTY_OVERRIDES += \ + dalvik.vm.heapgrowthlimit=56m # Dalvik heap config include frameworks/native/build/phone-hdpi-512-dalvik-heap.mk -# we have enough storage space to hold precise GC data +# We have enough storage space to hold precise GC data #PRODUCT_TAGS += dalvik.gc.type-precise $(call inherit-product, hardware/broadcom/wlan/bcmdhd/config/config-bcm.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk) -ifeq ($(TARGET_BUILD_VARIANT),user) -else -endif - PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0 PRODUCT_NAME := full_kylepro PRODUCT_DEVICE := kylepro diff --git a/health/healthd-hawaii.cpp b/health/healthd-hawaii.cpp index c66ec2c..34ea3e0 100644 --- a/health/healthd-hawaii.cpp +++ b/health/healthd-hawaii.cpp @@ -31,7 +31,7 @@ healthd_board_init(struct healthd_config *config) } int -healthd_board_battery_update(struct android::BatteryProperties *props) +healthd_board_battery_update(__attribute__((unused)) struct android::BatteryProperties *props) { // don't log to kernel return 1; diff --git a/include/hardware/gps.h b/include/hardware/gps.h index edf7c7b..d8ccb2a 100644 --- a/include/hardware/gps.h +++ b/include/hardware/gps.h @@ -464,8 +464,8 @@ typedef struct { float elevation; /** Azimuth of SV in degrees. */ float azimuth; - /** Unknown Samsung element. */ - int padding; + /** Unknown Samsung element. */ + int padding; } GpsSvInfo; /** Represents SV status. */ diff --git a/keylayouts/bcm_headset.kl b/keylayouts/bcm_headset.kl deleted file mode 100644 index e344086..0000000 --- a/keylayouts/bcm_headset.kl +++ /dev/null @@ -1,3 +0,0 @@ -key 226 HEADSETHOOK -key 115 VOLUME_UP -key 114 VOLUME_DOWN diff --git a/keylayouts/bcm_keypad_v2.kl b/keylayouts/bcm_keypad_v2.kl deleted file mode 100644 index 735077a..0000000 --- a/keylayouts/bcm_keypad_v2.kl +++ /dev/null @@ -1,85 +0,0 @@ -key 399 GRAVE -key 2 1 -key 3 2 -key 4 3 -key 5 4 -key 6 5 -key 7 6 -key 8 7 -key 9 8 -key 10 9 -key 11 0 -key 158 BACK -key 139 MENU -key 127 SEARCH -key 217 RECENTAPPS -key 228 POUND -key 227 STAR -key 352 DPAD_CENTER -key 108 DPAD_DOWN -key 103 DPAD_UP -key 102 HOME -key 105 DPAD_LEFT -key 106 DPAD_RIGHT -key 115 VOLUME_UP -key 114 VOLUME_DOWN -key 116 POWER -key 212 CAMERA - -key 16 Q -key 17 W -key 18 E -key 19 R -key 20 T -key 21 Y -key 22 U -key 23 I -key 24 O -key 25 P -key 26 LEFT_BRACKET -key 27 RIGHT_BRACKET -key 43 BACKSLASH - -key 30 A -key 31 S -key 32 D -key 33 F -key 34 G -key 35 H -key 36 J -key 37 K -key 38 L -key 39 SEMICOLON -key 40 APOSTROPHE -key 14 DEL - -key 44 Z -key 45 X -key 46 C -key 47 V -key 48 B -key 49 N -key 50 M -key 51 COMMA -key 52 PERIOD -key 53 SLASH -key 28 ENTER - -key 56 ALT_LEFT -key 100 ALT_RIGHT -key 42 SHIFT_LEFT -key 54 SHIFT_RIGHT -key 15 TAB -key 57 SPACE -key 150 EXPLORER -key 155 CUST2 -key 442 CHATON -key 373 SYM -key 12 MINUS -key 13 EQUALS -key 215 AT -key 207 MUSIC - -# On an AT keyboard: ESC, F10 -key 1 BACK -key 68 MENU diff --git a/keylayouts/gpio-keys.kl b/keylayouts/gpio-keys.kl deleted file mode 100644 index 58da020..0000000 --- a/keylayouts/gpio-keys.kl +++ /dev/null @@ -1,9 +0,0 @@ -key 115 VOLUME_UP -key 114 VOLUME_DOWN -key 116 POWER -key 102 HOME -key 105 DPAD_LEFT -key 106 DPAD_RIGHT -key 103 DPAD_UP -key 108 DPAD_DOWN -key 232 DPAD_CENTER diff --git a/keylayouts/samsung-keypad.kl b/keylayouts/samsung-keypad.kl deleted file mode 100644 index 8428176..0000000 --- a/keylayouts/samsung-keypad.kl +++ /dev/null @@ -1,91 +0,0 @@ -key 399 GRAVE -key 2 1 -key 3 2 -key 4 3 -key 5 4 -key 6 5 -key 7 6 -key 8 7 -key 9 8 -key 10 9 -key 11 0 -key 158 BACK -key 230 SOFT_RIGHT -key 60 SOFT_RIGHT -key 107 ENDCALL -key 62 ENDCALL -key 229 MENU -key 139 MENU -key 59 MENU -key 127 SEARCH -key 217 SEARCH -key 228 POUND -key 227 STAR -key 231 CALL -key 61 CALL -key 232 DPAD_CENTER -key 108 DPAD_DOWN -key 103 DPAD_UP -key 102 HOME -key 105 DPAD_LEFT -key 106 DPAD_RIGHT -key 115 VOLUME_UP -key 114 VOLUME_DOWN -key 116 POWER -key 212 CAMERA - -key 16 Q -key 17 W -key 18 E -key 19 R -key 20 T -key 21 Y -key 22 U -key 23 I -key 24 O -key 25 P -key 26 LEFT_BRACKET -key 27 RIGHT_BRACKET -key 43 BACKSLASH - -key 30 A -key 31 S -key 32 D -key 33 F -key 34 G -key 35 H -key 36 J -key 37 K -key 38 L -key 39 SEMICOLON -key 40 APOSTROPHE -key 14 DEL - -key 44 Z -key 45 X -key 46 C -key 47 V -key 48 B -key 49 N -key 50 M -key 51 COMMA -key 52 PERIOD -key 53 SLASH -key 28 ENTER - -key 56 ALT_LEFT -key 100 ALT_RIGHT -key 42 SHIFT_LEFT -key 54 SHIFT_RIGHT -key 15 TAB -key 57 SPACE -key 150 EXPLORER -key 155 ENVELOPE - -key 12 MINUS -key 13 EQUALS -key 215 AT - -# On an AT keyboard: ESC, F10 -key 1 BACK -key 68 MENU diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index 56cfa7a..d34f46d 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -27,13 +27,13 @@ true - + false true - - 65 - + true diff --git a/overlay/packages/apps/Settings/res/values/config.xml b/overlay/packages/apps/Settings/res/values/config.xml deleted file mode 100644 index b9fa984..0000000 --- a/overlay/packages/apps/Settings/res/values/config.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/ramdisk/charger b/ramdisk/charger deleted file mode 100644 index 1d26480172329c2b2e8a40066785030f74d760cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268108 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

j0{2PW#qn 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

fY}(_+aZ>Zurekz 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 RAuPU`V=sE#I -/dev/block/platform/sdhci.1/by-name/system /system ext4 ro,noatime wait -/dev/block/platform/sdhci.1/by-name/efs /efs ext4 noatime,nosuid,nodev,journal_async_commit,errors=panic wait,check -/dev/block/platform/sdhci.1/by-name/CSC /cache ext4 noatime,nosuid,nodev,journal_async_commit,errors=panic wait,check -/dev/block/platform/sdhci.1/by-name/userdata /data ext4 noatime,nosuid,nodev,discard,noauto_da_alloc,journal_async_commit,errors=panic wait,check,encryptable=footer,length=-16384 -/dev/block/platform/sdhci.1/by-name/KERNEL /boot emmc defaults defaults -/dev/block/platform/sdhci.1/by-name/RECOVERY /recovery emmc defaults defaults -/dev/block/platform/sdhci.1/by-name/modem /modem emmc defaults defaults +# +/dev/block/platform/sdhci.1/by-name/system /system ext4 ro,noatime,noauto_da_alloc wait +/dev/block/platform/sdhci.1/by-name/efs /efs ext4 noatime,nosuid,nodev,journal_async_commit,errors=panic wait,check +/dev/block/platform/sdhci.1/by-name/CSC /cache ext4 noatime,nosuid,nodev,journal_async_commit,errors=panic wait,check +/dev/block/platform/sdhci.1/by-name/userdata /data ext4 noatime,nosuid,nodev,discard,noauto_da_alloc,journal_async_commit,errors=panic wait,check,encryptable=footer,length=-16384 +/dev/block/platform/sdhci.1/by-name/KERNEL /boot emmc defaults defaults +/dev/block/platform/sdhci.1/by-name/RECOVERY /recovery emmc defaults defaults +/dev/block/platform/sdhci.1/by-name/modem /modem emmc defaults defaults # vold-managed volumes ("block device" is actually a sysfs devpath) -/devices/platform/sdhci.0/mmc_host/mmc2* auto auto defaults voldmanaged=sdcard1:auto,noemulatedsd +/devices/platform/sdhci.0/mmc_host/mmc2* auto auto defaults voldmanaged=sdcard1:auto,noemulatedsd -# ZRam -#/dev/block/zram0 none swap defaults zramsize=52428800 \ No newline at end of file +# ZRAM +/dev/block/zram0 none swap defaults zramsize=67108864 + +# SWAP +/dev/block/platform/sdhci.1/by-name/HIDDEN none swap defaults defaults diff --git a/ramdisk/init.hawaii_ss_kylepro.rc b/ramdisk/init.hawaii_ss_kylepro.rc index 7432fa7..0dce759 100644 --- a/ramdisk/init.hawaii_ss_kylepro.rc +++ b/ramdisk/init.hawaii_ss_kylepro.rc @@ -5,14 +5,14 @@ on early-init mkdir /efs 0771 radio system on init - # See storage config details at http://source.android.com/tech/storage/ +# See storage config details at http://source.android.com/tech/storage/ mkdir /mnt/shell/emulated 0700 shell shell mkdir /storage/emulated 0555 root root export EXTERNAL_STORAGE /storage/emulated/legacy export EMULATED_STORAGE_SOURCE /mnt/shell/emulated export EMULATED_STORAGE_TARGET /storage/emulated - # Support legacy paths +# Support legacy paths symlink /storage/emulated/legacy /sdcard symlink /storage/emulated/legacy /mnt/sdcard symlink /storage/emulated/legacy /storage/sdcard0 @@ -23,9 +23,9 @@ on init mkdir /mnt/media_rw/sdcard1 0700 media_rw media_rw mkdir /storage/sdcard1 0700 root root - # for backwards compatibility - #symlink /storage/sdcard1 /external_sd - #symlink /storage/sdcard1 /mnt/external_sd +# For backwards compatibility + symlink /storage/sdcard1 /external_sd + symlink /storage/sdcard1 /mnt/external_sd # To store widevine keybox symlink /data/app /factory @@ -33,7 +33,7 @@ on init symlink /dev/block/mmcblk0p11 /dev/block/param on post-fs-data -# we will remap this as /storage/sdcard with the sdcard fuse tool +# We will remap this as /storage/sdcard with the sdcard fuse tool mkdir /data/media 0770 media_rw media_rw chown media_rw media_rw /data/media @@ -45,7 +45,7 @@ on post-fs-data chmod 0777 /data/log chmod 0777 /data/anr - #for wifi +# For WIFI mkdir /efs/wifi 0775 radio system mkdir /efs/bluetooth 0775 radio system mkdir /efs/imei 0775 radio system @@ -58,7 +58,7 @@ on post-fs-data chown system system /efs/imei/.nvmac.info chmod 0664 /efs/imei/.nvmac.info - # permissions for bluetooth. +# Permissions for bluetooth. setprop ro.bt.bdaddr_path "/efs/bluetooth/bt_addr" chown bluetooth net_bt_stack ro.bt.bdaddr_path chown bluetooth net_bt_stack /dev/ttyS0 @@ -81,7 +81,7 @@ on post-fs-data chown system system /sys/class/backlight/touchkey-led/brightness chmod 0660 /sys/class/backlight/touchkey-led/brightness -# permissions for sensors (accelerometer & magnetic & proximity) +# Permissions for sensors (accelerometer & magnetic & proximity) chown system system /sys/class/input/input0/enable chown system system /sys/class/input/input0/poll_delay chmod 0660 /sys/class/input/input0/enable @@ -143,7 +143,7 @@ on post-fs-data chmod 0660 /sys/class/input/input2/rept_z chmod 0660 /sys/class/input/input2/odr -# for adb +# For adb chmod 0775 /system/etc/usbdev.sh chmod 0775 /system/etc/startadb.sh @@ -200,11 +200,7 @@ on boot chmod 0660 /sys/class/sensors/magnetic_sensor/selftest chmod 0660 /sys/class/sensors/magnetic_sensor/op_mode -## Vibetonz -# chmod 0660 /dev/tspdrv -# chown root shell /dev/tspdrv - -# required so RIL can open kernel RPC drivers +# Required so RIL can open kernel RPC drivers chmod 0660 /dev/bcm_rpc chmod 0660 /dev/bcm_irpc chown radio radio /dev/bcm_rpc @@ -234,8 +230,7 @@ on boot # Video Telephony chmod 0666 /dev/bcm_vsp - -# allow user space (atx) access to kernel pm debug +# Allow user space (atx) access to kernel pm debug chown system system /sys/module/pm_dbg/parameters/debug chmod 0660 /sys/module/pm_dbg/parameters/debug chown system system /sys/module/bcmpmu59xxx_ponkey/parameters/simulate_ponkey @@ -246,8 +241,7 @@ on boot chmod 0664 /sys/ponkey/ponkey_mode # END BCM QUICK BOOT FEATURE - -# security driver +# Security driver chmod 0660 /dev/bcm_security chown radio root /dev/bcm_security mkdir /data/sec 0770 @@ -256,7 +250,7 @@ on boot # BCMPMU drivers chown -R system system /sys/devices/platform/bcmpmu*/* -# fake some battery state +# Fake some battery state setprop status.battery.state Slow setprop status.battery.level 10 setprop status.battery.level_raw 100 @@ -266,14 +260,14 @@ on boot chmod 0777 /dev/s5p-smem rm /data/app/tlcd_sock -# phone +# Phone setprop ro.telephony.call_ring.multiple 0 # Enable dithering algorithm setprop fb.force.dithering 1 -# permissions for gps. +# Permissions for gps. mkdir /data/gps 0770 gps system chown gps system /data/gps chmod 0770 /data/gps @@ -300,19 +294,19 @@ on boot # SEC_PRODUCT_FEATURE_COMMON_USE_MULTISIM setprop ro.multisim.simslotcount 1 -# # for multi csc +# For multi csc chown radio radio /proc/LinuStoreIII/efs_info chmod 0664 /proc/LinuStoreIII/efs_info -# # for protecting key string +# For protecting key string chown radio radio /proc/LinuStoreIII/keystr chmod 0664 /proc/LinuStoreIII/keystr -# # for ril_prop +# For ril_prop chown radio radio /proc/LinuStoreIII/ril_prop chmod 0664 /proc/LinuStoreIII/ril_prop -# # for fsbuild_check +# For fsbuild_check chown radio radio /proc/LinuStoreIII/fsbuild_check chmod 0664 /proc/LinuStoreIII/fsbuild_check -# # for recovery_opts +# For recovery_opts chown system radio /proc/LinuStoreIII/recovery_opts chmod 0664 /proc/LinuStoreIII/recovery_opts @@ -419,50 +413,43 @@ on boot chown system system /sys/class/sec/led/led_lowpower # Init Compcache taejin5.park - chmod 0664 /sys/class/lmk/lowmemorykiller/lmk_state - chown system system /sys/class/lmk/lowmemorykiller/lmk_state - chmod 0664 /sys/block/zram0/disksize - chown system system /sys/block/zram0/disksize - write /sys/block/zram0/disksize 104857600 - chmod 0664 /sys/block/zram0/initstate - chown system system /sys/block/zram0/initstate - write /sys/block/zram0/initstate 1 + chmod 0664 /sys/class/lmk/lowmemorykiller/lmk_state + chown system system /sys/class/lmk/lowmemorykiller/lmk_state + chmod 0664 /sys/block/zram0/disksize + chown system system /sys/block/zram0/disksize + write /sys/block/zram0/disksize 67108864 + chmod 0664 /sys/block/zram0/initstate + chown system system /sys/block/zram0/initstate + write /sys/block/zram0/initstate 1 # serial_no permission change chmod 0770 /efs/FactoryApp/serial_no chown system system /efs/FactoryApp/serial_no -# disable swap page clustering -- recommended in https://source.android.com/devices/low-ram.html - #write /proc/sys/vm/page-cluster 0 - -on charger - #mount ext4 /dev/block/mmcblk0p17 /system ro wait noatime - #exec sfsck /dev/block/mmcblk0p19 ext4 - #mount ext4 /dev/block/mmcblk0p19 /data wait nosuid nodev noatime discard,noauto_da_alloc,journal_async_commit +# Disable swap page clustering -- recommended in https://source.android.com/devices/low-ram.html + write /proc/sys/vm/page-cluster 0 +on charger # Set cpu governor to powersave while in charging mode write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor powersave write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor powersave - -# EHCI runtime enable for LPA - write /sys/devices/platform/s5p-ehci/power/control auto on fs mount_all /fstab.hawaii_ss_kylepro - #swapon_all fstab.hawaii_ss_kylepro + swapon_all fstab.hawaii_ss_kylepro setprop ro.crypto.fuse_sdcard true - # don't require sim + # Don't require sim setprop keyguard.no_require_sim 1 -# For NV Read/Write - chown radio system /dev/block/mmcblk0p1 +# For NV Read/Write + chown radio system /dev/block/mmcblk0p1 chmod 0770 /dev/block/mmcblk0p1 chmod 6755 /system/xbin/su -#for ASE application +# For ASE application mkdir /data/brcm mkdir /data/brcm/ase mkdir /data/brcm/ase/extras @@ -483,18 +470,19 @@ on fs chmod 0775 /data/brcm/ase/scripts/modem.sh chmod 0775 /data/brcm/ase/scripts/atmode.sh chmod 0775 /data/brcm/ase/scripts/usbconfig.sh -#runSysCmd + +# runSysCmd mkdir /data/brcm/utils chmod 0775 /data/brcm/utils -# Logging required to save file in /data/brcm for configuration +# Logging required to save file in /data/brcm for configuration mkdir /data/brcm chmod 0775 /data/brcm # Permissions for System Server and daemons. chown system system /sys/devices/platform/panel/backlight/panel/brightness - #for touch fw + # For touch FW chown system system /sys/class/sec/tsp/cmd chmod 0660 /sys/class/sec/tsp/cmd chown system system /sys/class/sec/tsp/cmd_status @@ -531,7 +519,7 @@ on post-fs chown radio system /efs chmod 0771 /efs -# create virtual SD card at /mnt/sdcard, based on the /data/media directory +# Create virtual SD card at /mnt/sdcard, based on the /data/media directory # daemon will drop to user/group system/media_rw after initializing # underlying files in /data/media will be created with user and group media_rw (1023) service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated @@ -542,7 +530,7 @@ service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emul class late_start disabled -# create filesystem if necessary +# Create filesystem if necessary service setup_fs /system/bin/setup_fs \ /dev/block/mmcblk0p15 \ /dev/block/mmcblk0p11 @@ -551,7 +539,7 @@ service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emul group root oneshot -#bosch sensor deamon +# bosch sensor deamon service sensord /system/bin/sensord class main user system @@ -571,10 +559,10 @@ service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emul -I/system/etc/wifi/wpa_supplicant_overlay.conf \ -e/data/misc/wifi/entropy.bin \ -O/data/misc/wifi/sockets -g@android:wpa_wlan0 - # we will start as root and wpa_supplicant will switch to user wifi - # after setting up the capabilities required for WEXT - # user wifi - # group wifi inet keystore + # we will start as root and wpa_supplicant will switch to user wifi + # after setting up the capabilities required for WEXT + # user wifi + # group wifi inet keystore class main socket wpa_wlan0 dgram 660 wifi wifi disabled @@ -587,7 +575,7 @@ service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emul -I/system/etc/wifi/p2p_supplicant_overlay.conf \ -e/data/misc/wifi/entropy.bin -puse_p2p_group_interface=1 \ -O/data/misc/wifi/sockets -g@android:wpa_wlan0 - # we will start as root and wpa_supplicant will switch to user wifi + # We will start as root and wpa_supplicant will switch to user wifi # after setting up the capabilities required for WEXT # user wifi # group wifi inet keystore @@ -627,7 +615,7 @@ service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emul disabled oneshot -#for WiFi MFG(TestMode) +# For WiFi MFG(TestMode) service mfgloader /system/bin/mfgloader class main disabled @@ -649,7 +637,7 @@ on property:init.svc.macloader=stopped chmod 0664 /data/.cid.info chown system root /data/.rev chmod 0660 /data/.rev -# end of wifi +# End of wifi service gpsd /system/bin/glgps -c /system/etc/gps/glconfig.xml class late_start @@ -674,7 +662,7 @@ service usb_portd /system/bin/usb_portd user system group input vpn net_admin net_raw radio system sdcard_rw log mount -#Indicate boot complete to PM to complete PM initialization +# Indicate boot complete to PM to complete PM initialization on property:dev.bootcomplete=1 write /sys/module/pwr_mgr/parameters/pm_late_init 1 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive @@ -703,19 +691,6 @@ service startadb /system/etc/startadb.sh service battery_charger /charger class charger critical - -# service playlpm /system/bin/playlpm -# user root -# critical -# service immvibed /system/bin/immvibed -# oneshot -# service lpmkey /system/bin/lpmkey -# user root -# critical -#on charger -# start playlpm -# start immvibed -# start lpmkey on property:ro.dumpstate.dmesg=1 write /proc/sys/kernel/dmesg_restrict 0 diff --git a/ramdisk/init.log.rc b/ramdisk/init.log.rc index d159a69..dabcd2b 100644 --- a/ramdisk/init.log.rc +++ b/ramdisk/init.log.rc @@ -1,6 +1,5 @@ - on boot - # setup permissions for logging + # setup permissions for logging chown system system /sys/class/bcm_log/bcm_log/log chown system system /sys/class/bcm_log/bcm_log/log_lock chown system system /sys/class/bcm_log/bcm_log/cp_crash @@ -21,69 +20,69 @@ on boot # Setup Logging persistent data on property:persist.brcm.log=auto - write /sys/class/bcm_log/bcm_log/log_lock 0 + write /sys/class/bcm_log/bcm_log/log_lock 0 on property:persist.brcm.log=sdcard - write /sys/class/bcm_log/bcm_log/log_lock 0 - write /sys/class/bcm_log/bcm_log/log sdcard - write /sys/class/bcm_log/bcm_log/log_lock 1 + write /sys/class/bcm_log/bcm_log/log_lock 0 + write /sys/class/bcm_log/bcm_log/log sdcard + write /sys/class/bcm_log/bcm_log/log_lock 1 on property:persist.brcm.log=uart - write /sys/class/bcm_log/bcm_log/log_lock 0 - write /sys/class/bcm_log/bcm_log/log uart - write /sys/class/bcm_log/bcm_log/log_lock 1 + write /sys/class/bcm_log/bcm_log/log_lock 0 + write /sys/class/bcm_log/bcm_log/log uart + write /sys/class/bcm_log/bcm_log/log_lock 1 on property:persist.brcm.log=stm - write /sys/class/bcm_log/bcm_log/log_lock 0 - write /sys/class/bcm_log/bcm_log/log stm - write /sys/class/bcm_log/bcm_log/log_lock 1 + write /sys/class/bcm_log/bcm_log/log_lock 0 + write /sys/class/bcm_log/bcm_log/log stm + write /sys/class/bcm_log/bcm_log/log_lock 1 on property:persist.brcm.log=rndis - write /sys/class/bcm_log/bcm_log/log_lock 0 - write /sys/class/bcm_log/bcm_log/log rndis - write /sys/class/bcm_log/bcm_log/log_lock 1 + write /sys/class/bcm_log/bcm_log/log_lock 0 + write /sys/class/bcm_log/bcm_log/log rndis + write /sys/class/bcm_log/bcm_log/log_lock 1 on property:persist.brcm.log=acm - write /sys/class/bcm_log/bcm_log/log_lock 0 - write /sys/class/bcm_log/bcm_log/log acm - write /sys/class/bcm_log/bcm_log/log_lock 1 + write /sys/class/bcm_log/bcm_log/log_lock 0 + write /sys/class/bcm_log/bcm_log/log acm + write /sys/class/bcm_log/bcm_log/log_lock 1 on property:persist.brcm.cp_crash=auto - write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 + write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 on property:persist.brcm.cp_crash=sdcard - write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 - write /sys/class/bcm_log/bcm_log/cp_crash sdcard - write /sys/class/bcm_log/bcm_log/cp_crash_lock 1 + write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 + write /sys/class/bcm_log/bcm_log/cp_crash sdcard + write /sys/class/bcm_log/bcm_log/cp_crash_lock 1 on property:persist.brcm.cp_crash=uart - write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 - write /sys/class/bcm_log/bcm_log/cp_crash uart - write /sys/class/bcm_log/bcm_log/cp_crash_lock 1 + write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 + write /sys/class/bcm_log/bcm_log/cp_crash uart + write /sys/class/bcm_log/bcm_log/cp_crash_lock 1 on property:persist.brcm.cp_crash=stm - write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 - write /sys/class/bcm_log/bcm_log/cp_crash stm - write /sys/class/bcm_log/bcm_log/cp_crash_lock 1 + write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 + write /sys/class/bcm_log/bcm_log/cp_crash stm + write /sys/class/bcm_log/bcm_log/cp_crash_lock 1 on property:persist.brcm.cp_crash=rndis - write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 - write /sys/class/bcm_log/bcm_log/cp_crash rndis - write /sys/class/bcm_log/bcm_log/cp_crash_lock 1 + write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 + write /sys/class/bcm_log/bcm_log/cp_crash rndis + write /sys/class/bcm_log/bcm_log/cp_crash_lock 1 on property:persist.brcm.cp_crash=acm - write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 - write /sys/class/bcm_log/bcm_log/cp_crash acm - write /sys/class/bcm_log/bcm_log/cp_crash_lock 1 + write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 + write /sys/class/bcm_log/bcm_log/cp_crash acm + write /sys/class/bcm_log/bcm_log/cp_crash_lock 1 on property:persist.brcm.cp_crash=panic - write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 - write /sys/class/bcm_log/bcm_log/cp_crash panic - write /sys/class/bcm_log/bcm_log/cp_crash_lock 1 + write /sys/class/bcm_log/bcm_log/cp_crash_lock 0 + write /sys/class/bcm_log/bcm_log/cp_crash panic + write /sys/class/bcm_log/bcm_log/cp_crash_lock 1 on property:persist.brcm.ap_crash=auto - write /sys/class/bcm_log/bcm_log/ap_crash_lock 0 + write /sys/class/bcm_log/bcm_log/ap_crash_lock 0 on property:persist.brcm.ap_crash=stm - write /sys/class/bcm_log/bcm_log/ap_crash_lock 0 - write /sys/class/bcm_log/bcm_log/ap_crash stm - write /sys/class/bcm_log/bcm_log/ap_crash_lock 1 + write /sys/class/bcm_log/bcm_log/ap_crash_lock 0 + write /sys/class/bcm_log/bcm_log/ap_crash stm + write /sys/class/bcm_log/bcm_log/ap_crash_lock 1 on property:persist.brcm.ap_crash=panic - write /sys/class/bcm_log/bcm_log/ap_crash_lock 0 - write /sys/class/bcm_log/bcm_log/ap_crash panic - write /sys/class/bcm_log/bcm_log/ap_crash_lock 1 + write /sys/class/bcm_log/bcm_log/ap_crash_lock 0 + write /sys/class/bcm_log/bcm_log/ap_crash panic + write /sys/class/bcm_log/bcm_log/ap_crash_lock 1 on property:persist.brcm.ap_crash=sdcard - write /sys/class/bcm_log/bcm_log/ap_crash_lock 0 - write /sys/class/bcm_log/bcm_log/ap_crash sdcard - write /sys/class/bcm_log/bcm_log/ap_crash_lock 1 + write /sys/class/bcm_log/bcm_log/ap_crash_lock 0 + write /sys/class/bcm_log/bcm_log/ap_crash sdcard + write /sys/class/bcm_log/bcm_log/ap_crash_lock 1 #Setup Broadcom brcm.ase.xxx handling for ASE on property:brcm.ase.log=* diff --git a/ramdisk/init.rc b/ramdisk/init.rc deleted file mode 100644 index aa68e1f..0000000 --- a/ramdisk/init.rc +++ /dev/null @@ -1,652 +0,0 @@ -# Copyright (C) 2012 The Android Open Source Project -# -# IMPORTANT: Do not create world writable files or directories. -# This is a common source of Android security bugs. -# - -import /init.environ.rc -import /init.usb.rc -import /init.${ro.hardware}.rc -import /init.${ro.zygote}.rc -import /init.trace.rc -# Include CM's extra init file -import /init.cm.rc - - -on early-init - # Set init and its forked children's oom_adj. - write /proc/1/oom_score_adj -1000 - - # Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls. - write /sys/fs/selinux/checkreqprot 0 - - # Set the security context for the init process. - # This should occur before anything else (e.g. ueventd) is started. - setcon u:r:init:s0 - - # Set the security context of /adb_keys if present. - restorecon /adb_keys - - start ueventd - - # create mountpoints - mkdir /mnt 0775 root system - -on init - sysclktz 0 - - loglevel 3 - - # Backward compatibility - symlink /system/etc /etc - symlink /sys/kernel/debug /d - - # Right now vendor lives on the same filesystem as system, - # but someday that may change. - symlink /system/vendor /vendor - - # Create cgroup mount point for cpu accounting - mkdir /acct - mount cgroup none /acct cpuacct - mkdir /acct/uid - - # Create cgroup mount point for memory - mount tmpfs none /sys/fs/cgroup mode=0750,uid=0,gid=1000 - mkdir /sys/fs/cgroup/memory 0750 root system - mount cgroup none /sys/fs/cgroup/memory memory - write /sys/fs/cgroup/memory/memory.move_charge_at_immigrate 1 - chown root system /sys/fs/cgroup/memory/tasks - chmod 0660 /sys/fs/cgroup/memory/tasks - mkdir /sys/fs/cgroup/memory/sw 0750 root system - write /sys/fs/cgroup/memory/sw/memory.swappiness 100 - write /sys/fs/cgroup/memory/sw/memory.move_charge_at_immigrate 1 - chown root system /sys/fs/cgroup/memory/sw/tasks - chmod 0660 /sys/fs/cgroup/memory/sw/tasks - - mkdir /system - mkdir /data 0771 system system - mkdir /cache 0770 system cache - mkdir /config 0500 root root - - # See storage config details at http://source.android.com/tech/storage/ - mkdir /mnt/shell 0700 shell shell - mkdir /mnt/media_rw 0700 media_rw media_rw - mkdir /storage 0751 root sdcard_r - - # Directory for putting things only root should see. - mkdir /mnt/secure 0700 root root - - # Directory for staging bindmounts - mkdir /mnt/secure/staging 0700 root root - - # Directory-target for where the secure container - # imagefile directory will be bind-mounted - mkdir /mnt/secure/asec 0700 root root - - # Secure container public mount points. - mkdir /mnt/asec 0700 root system - mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000 - - # Filesystem image public mount points. - mkdir /mnt/obb 0700 root system - mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000 - - # memory control cgroup - mkdir /dev/memcg 0700 root system - mount cgroup none /dev/memcg memory - - write /proc/sys/kernel/panic_on_oops 1 - write /proc/sys/kernel/hung_task_timeout_secs 0 - write /proc/cpu/alignment 4 - write /proc/sys/kernel/sched_latency_ns 10000000 - write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000 - write /proc/sys/kernel/sched_compat_yield 1 - write /proc/sys/kernel/sched_child_runs_first 0 - write /proc/sys/kernel/randomize_va_space 2 - write /proc/sys/kernel/kptr_restrict 2 - write /proc/sys/vm/mmap_min_addr 32768 - write /proc/sys/net/ipv4/ping_group_range "0 2147483647" - write /proc/sys/net/unix/max_dgram_qlen 300 - write /proc/sys/kernel/sched_rt_runtime_us 950000 - write /proc/sys/kernel/sched_rt_period_us 1000000 - - # reflect fwmark from incoming packets onto generated replies - write /proc/sys/net/ipv4/fwmark_reflect 1 - write /proc/sys/net/ipv6/fwmark_reflect 1 - - # set fwmark on accepted sockets - write /proc/sys/net/ipv4/tcp_fwmark_accept 1 - - # Create cgroup mount points for process groups - mkdir /dev/cpuctl - mount cgroup none /dev/cpuctl cpu - chown system system /dev/cpuctl - chown system system /dev/cpuctl/tasks - chmod 0666 /dev/cpuctl/tasks - write /dev/cpuctl/cpu.shares 1024 - write /dev/cpuctl/cpu.rt_runtime_us 800000 - write /dev/cpuctl/cpu.rt_period_us 1000000 - - mkdir /dev/cpuctl/bg_non_interactive - chown system system /dev/cpuctl/bg_non_interactive/tasks - chmod 0666 /dev/cpuctl/bg_non_interactive/tasks - # 5.0 % - write /dev/cpuctl/bg_non_interactive/cpu.shares 52 - write /dev/cpuctl/bg_non_interactive/cpu.rt_runtime_us 700000 - write /dev/cpuctl/bg_non_interactive/cpu.rt_period_us 1000000 - - # qtaguid will limit access to specific data based on group memberships. - # net_bw_acct grants impersonation of socket owners. - # net_bw_stats grants access to other apps' detailed tagged-socket stats. - chown root net_bw_acct /proc/net/xt_qtaguid/ctrl - chown root net_bw_stats /proc/net/xt_qtaguid/stats - - # Allow everybody to read the xt_qtaguid resource tracking misc dev. - # This is needed by any process that uses socket tagging. - chmod 0644 /dev/xt_qtaguid - - # Create location for fs_mgr to store abbreviated output from filesystem - # checker programs. - mkdir /dev/fscklogs 0770 root system - - # pstore/ramoops previous console log - mount pstore pstore /sys/fs/pstore - chown system log /sys/fs/pstore/console-ramoops - chmod 0440 /sys/fs/pstore/console-ramoops - -# Healthd can trigger a full boot from charger mode by signaling this -# property when the power button is held. -on property:sys.boot_from_charger_mode=1 - class_stop charger - trigger late-init - -# Load properties from /system/ + /factory after fs mount. -on load_all_props_action - load_all_props - -# Indicate to fw loaders that the relevant mounts are up. -on firmware_mounts_complete - rm /dev/.booting - -# Mount filesystems and start core system services. -on late-init - trigger early-fs - trigger fs - trigger post-fs - trigger post-fs-data - - # Load properties from /system/ + /factory after fs mount. Place - # this in another action so that the load will be scheduled after the prior - # issued fs triggers have completed. - trigger load_all_props_action - - # Remove a file to wake up anything waiting for firmware. - trigger firmware_mounts_complete - - trigger early-boot - trigger boot - - -on post-fs - # once everything is setup, no need to modify / - mount rootfs rootfs / ro remount - # mount shared so changes propagate into child namespaces - mount rootfs rootfs / shared rec - - # We chown/chmod /cache again so because mount is run as root + defaults - chown system cache /cache - chmod 0770 /cache - # We restorecon /cache in case the cache partition has been reset. - restorecon_recursive /cache - - # This may have been created by the recovery system with odd permissions - chown system cache /cache/recovery - chmod 0770 /cache/recovery - - #change permissions on vmallocinfo so we can grab it from bugreports - chown root log /proc/vmallocinfo - chmod 0440 /proc/vmallocinfo - - chown root log /proc/slabinfo - chmod 0440 /proc/slabinfo - - #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks - chown root system /proc/kmsg - chmod 0440 /proc/kmsg - chown root system /proc/sysrq-trigger - chmod 0220 /proc/sysrq-trigger - chown system log /proc/last_kmsg - chmod 0440 /proc/last_kmsg - - # make the selinux kernel policy world-readable - chmod 0444 /sys/fs/selinux/policy - - # create the lost+found directories, so as to enforce our permissions - mkdir /cache/lost+found 0770 root root - -on post-fs-data - # We chown/chmod /data again so because mount is run as root + defaults - chown system system /data - chmod 0771 /data - # We restorecon /data in case the userdata partition has been reset. - restorecon /data - - # Avoid predictable entropy pool. Carry over entropy from previous boot. - copy /data/system/entropy.dat /dev/urandom - - # Create dump dir and collect dumps. - # Do this before we mount cache so eventually we can use cache for - # storing dumps on platforms which do not have a dedicated dump partition. - mkdir /data/dontpanic 0750 root log - - # Collect apanic data, free resources and re-arm trigger - copy /proc/apanic_console /data/dontpanic/apanic_console - chown root log /data/dontpanic/apanic_console - chmod 0640 /data/dontpanic/apanic_console - - copy /proc/apanic_threads /data/dontpanic/apanic_threads - chown root log /data/dontpanic/apanic_threads - chmod 0640 /data/dontpanic/apanic_threads - - write /proc/apanic_console 1 - - # create basic filesystem structure - mkdir /data/misc 01771 system misc - mkdir /data/misc/adb 02750 system shell - mkdir /data/misc/audit 02750 audit system - mkdir /data/misc/bluedroid 0770 bluetooth net_bt_stack - mkdir /data/misc/bluetooth 0770 system system - mkdir /data/misc/keystore 0700 keystore keystore - mkdir /data/misc/keychain 0771 system system - mkdir /data/misc/net 0750 root shell - mkdir /data/misc/radio 0770 system radio - mkdir /data/misc/sms 0770 system radio - mkdir /data/misc/zoneinfo 0775 system system - mkdir /data/misc/vpn 0770 system vpn - mkdir /data/misc/shared_relro 0771 shared_relro shared_relro - mkdir /data/misc/systemkeys 0700 system system - mkdir /data/misc/wifi 0770 wifi wifi - mkdir /data/misc/wifi/sockets 0770 wifi wifi - mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi - mkdir /data/misc/ethernet 0770 system system - mkdir /data/misc/dhcp 0770 dhcp dhcp - mkdir /data/misc/user 0771 root root - # give system access to wpa_supplicant.conf for backup and restore - chmod 0660 /data/misc/wifi/wpa_supplicant.conf - mkdir /data/local 0751 root root - mkdir /data/misc/media 0700 media media - - # For security reasons, /data/local/tmp should always be empty. - # Do not place files or directories in /data/local/tmp - mkdir /data/local/tmp 0771 shell shell - mkdir /data/data 0771 system system - mkdir /data/app-private 0771 system system - mkdir /data/app-asec 0700 root root - mkdir /data/app-lib 0771 system system - mkdir /data/app 0771 system system - mkdir /data/property 0700 root root - - # create dalvik-cache, so as to enforce our permissions - mkdir /data/dalvik-cache 0771 root root - mkdir /data/dalvik-cache/profiles 0711 system system - - # create resource-cache and double-check the perms - mkdir /data/resource-cache 0771 system system - chown system system /data/resource-cache - chmod 0771 /data/resource-cache - - # create the lost+found directories, so as to enforce our permissions - mkdir /data/lost+found 0770 root root - - # create directory for DRM plug-ins - give drm the read/write access to - # the following directory. - mkdir /data/drm 0770 drm drm - - # create directory for MediaDrm plug-ins - give drm the read/write access to - # the following directory. - mkdir /data/mediadrm 0770 mediadrm mediadrm - - mkdir /data/adb 0700 root root - - # symlink to bugreport storage location - symlink /data/data/com.android.shell/files/bugreports /data/bugreports - - # Separate location for storing security policy files on data - mkdir /data/security 0711 system system - - # Reload policy from /data/security if present. - setprop selinux.reload_policy 1 - - # Set SELinux security contexts on upgrade or policy update. - restorecon_recursive /data - restorecon /data/data - restorecon /data/user - restorecon /data/user/0 - - # If there is no fs-post-data action in the init..rc file, you - # must uncomment this line, otherwise encrypted filesystems - # won't work. - # Set indication (checked by vold) that we have finished this action - #setprop vold.post_fs_data_done 1 - -on boot - # basic network init - ifup lo - hostname localhost - domainname localdomain - - # set RLIMIT_NICE to allow priorities from 19 to -20 - setrlimit 13 40 40 - - # Memory management. Basic kernel parameters, and allow the high - # level system server to be able to adjust the kernel OOM driver - # parameters to match how it is managing things. - write /proc/sys/vm/overcommit_memory 1 - write /proc/sys/vm/min_free_order_shift 4 - chown root system /sys/module/lowmemorykiller/parameters/adj - chmod 0220 /sys/module/lowmemorykiller/parameters/adj - chown root system /sys/module/lowmemorykiller/parameters/minfree - chmod 0220 /sys/module/lowmemorykiller/parameters/minfree - - # Tweak background writeout - write /proc/sys/vm/dirty_expire_centisecs 200 - write /proc/sys/vm/dirty_background_ratio 5 - - # Permissions for System Server and daemons. - chown radio system /sys/android_power/state - chown radio system /sys/android_power/request_state - chown radio system /sys/android_power/acquire_full_wake_lock - chown radio system /sys/android_power/acquire_partial_wake_lock - chown radio system /sys/android_power/release_wake_lock - chown system system /sys/power/autosleep - chown system system /sys/power/state - chown system system /sys/power/wakeup_count - chown radio system /sys/power/wake_lock - chown radio system /sys/power/wake_unlock - chmod 0660 /sys/power/state - chmod 0660 /sys/power/wake_lock - chmod 0660 /sys/power/wake_unlock - - chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate - chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_rate - chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_slack - chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_slack - chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time - chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time - chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq - chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq - chown system system /sys/devices/system/cpu/cpufreq/interactive/target_loads - chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/target_loads - chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load - chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load - chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay - chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay - chown system system /sys/devices/system/cpu/cpufreq/interactive/boost - chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost - chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse - chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost - chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/input_boost - chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration - chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration - chown system system /sys/devices/system/cpu/cpufreq/interactive/io_is_busy - chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/io_is_busy - - # Assume SMP uses shared cpufreq policy for all CPUs - chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq - chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq - - chown system system /sys/class/timed_output/vibrator/enable - chown system system /sys/class/leds/keyboard-backlight/brightness - chown system system /sys/class/leds/lcd-backlight/brightness - chown system system /sys/class/leds/torch-light/brightness - chown system system /sys/class/leds/button-backlight/brightness - chown system system /sys/class/leds/jogball-backlight/brightness - chown system system /sys/class/leds/red/brightness - chown system system /sys/class/leds/green/brightness - chown system system /sys/class/leds/blue/brightness - chown system system /sys/class/leds/red/device/grpfreq - chown system system /sys/class/leds/red/device/grppwm - chown system system /sys/class/leds/red/device/blink - chown system system /sys/class/timed_output/vibrator/enable - chown system system /sys/module/sco/parameters/disable_esco - chown system system /sys/kernel/ipv4/tcp_wmem_min - chown system system /sys/kernel/ipv4/tcp_wmem_def - chown system system /sys/kernel/ipv4/tcp_wmem_max - chown system system /sys/kernel/ipv4/tcp_rmem_min - chown system system /sys/kernel/ipv4/tcp_rmem_def - chown system system /sys/kernel/ipv4/tcp_rmem_max - chown root radio /proc/cmdline - - # Define default initial receive window size in segments. - setprop net.tcp.default_init_rwnd 60 - - class_start core - -on nonencrypted - class_start main - class_start late_start - -on property:vold.decrypt=trigger_default_encryption - start defaultcrypto - -on property:vold.decrypt=trigger_encryption - start surfaceflinger - start encrypt - -on property:sys.init_log_level=* - loglevel ${sys.init_log_level} - -on charger - class_start charger - -on property:vold.decrypt=trigger_reset_main - class_reset main - -on property:vold.decrypt=trigger_load_persist_props - load_persist_props - -on property:vold.decrypt=trigger_post_fs_data - trigger post-fs-data - -on property:vold.decrypt=trigger_restart_min_framework - class_start main - -on property:vold.decrypt=trigger_restart_framework - class_start main - class_start late_start - -on property:vold.decrypt=trigger_shutdown_framework - class_reset late_start - class_reset main - -on property:sys.powerctl=* - powerctl ${sys.powerctl} - -# system server cannot write to /proc/sys files, -# and chown/chmod does not work for /proc/sys/ entries. -# So proxy writes through init. -on property:sys.sysctl.extra_free_kbytes=* - write /proc/sys/vm/extra_free_kbytes ${sys.sysctl.extra_free_kbytes} - -# "tcp_default_init_rwnd" Is too long! -on property:sys.sysctl.tcp_def_init_rwnd=* - write /proc/sys/net/ipv4/tcp_default_init_rwnd ${sys.sysctl.tcp_def_init_rwnd} - - -## Daemon processes to be run by init. -## -service ueventd /sbin/ueventd - class core - critical - seclabel u:r:ueventd:s0 - -service logd /system/bin/logd - class core - socket logd stream 0666 logd logd - socket logdr seqpacket 0666 logd logd - socket logdw dgram 0222 logd logd - seclabel u:r:logd:s0 - -service healthd /sbin/healthd - class core - critical - seclabel u:r:healthd:s0 - -service console /system/bin/sh - class core - console - disabled - user shell - group shell log - seclabel u:r:shell:s0 - -service auditd /system/bin/auditd -k - seclabel u:r:logd:s0 - class main - -on property:ro.debuggable=1 - start console - -# adbd is controlled via property triggers in init..usb.rc -service adbd /sbin/adbd --root_seclabel=u:r:su:s0 - class core - socket adbd stream 660 system system - disabled - seclabel u:r:adbd:s0 - -# adbd on at boot in emulator -on property:ro.kernel.qemu=1 - start adbd - -service lmkd /system/bin/lmkd - class core - critical - socket lmkd seqpacket 0660 system system - -service servicemanager /system/bin/servicemanager - class core - user system - group system - critical - onrestart restart healthd - onrestart restart zygote - onrestart restart media - onrestart restart surfaceflinger - onrestart restart drm - -service vold /system/bin/vold - class core - socket vold stream 0660 root mount - ioprio be 2 - -service netd /system/bin/netd - class main - socket netd stream 0660 root system - socket dnsproxyd stream 0660 root inet - socket mdns stream 0660 root system - socket fwmarkd stream 0660 root inet - -service debuggerd /system/bin/debuggerd - class main - -service debuggerd64 /system/bin/debuggerd64 - class main - -#service ril-daemon /system/bin/rild -# class main -# socket rild stream 660 root radio -# socket rild-debug stream 660 radio system -# user root -# group radio cache inet misc audio sdcard_rw qcom_diag log - -service surfaceflinger /system/bin/surfaceflinger - class core - user system - group graphics drmrpc - onrestart restart zygote - -service drm /system/bin/drmserver - class main - user drm - group drm system inet drmrpc - -service media /system/bin/mediaserver - class main - user media - group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc mediadrm qcom_diag - ioprio rt 4 - -# One shot invocation to deal with encrypted volume. -service defaultcrypto /system/bin/vdc --wait cryptfs mountdefaultencrypted - disabled - oneshot - # vold will set vold.decrypt to trigger_restart_framework (default - # encryption) or trigger_restart_min_framework (other encryption) - -# One shot invocation to encrypt unencrypted volumes -service encrypt /system/bin/vdc --wait cryptfs enablecrypto inplace default - disabled - oneshot - # vold will set vold.decrypt to trigger_restart_framework (default - # encryption) - -service bootanim /system/bin/bootanimation - class core - user graphics - group graphics audio - disabled - oneshot - -service installd /system/bin/installd - class main - socket installd stream 600 system system - -service flash_recovery /system/bin/install-recovery.sh - class main - seclabel u:r:install_recovery:s0 - oneshot - disabled - -# update recovery if enabled -on property:persist.sys.recovery_update=true - start flash_recovery - -service racoon /system/bin/racoon - class main - socket racoon stream 600 system system - # IKE uses UDP port 500. Racoon will setuid to vpn after binding the port. - group vpn net_admin inet - disabled - oneshot - -service mtpd /system/bin/mtpd - class main - socket mtpd stream 600 system system - user vpn - group vpn net_admin inet net_raw - disabled - oneshot - -service keystore /system/bin/keystore /data/misc/keystore - class main - user keystore - group keystore drmrpc - -service dumpstate /system/bin/dumpstate -s - class main - socket dumpstate stream 0660 shell log - disabled - oneshot - -service mdnsd /system/bin/mdnsd - class main - user mdnsr - group inet net_raw - socket mdnsd stream 0660 mdnsr inet - disabled - oneshot - -service pre-recovery /system/bin/uncrypt - class main - disabled - oneshot \ No newline at end of file diff --git a/ramdisk/lpm.rc b/ramdisk/lpm.rc deleted file mode 100644 index f6418c7..0000000 --- a/ramdisk/lpm.rc +++ /dev/null @@ -1,82 +0,0 @@ -on early-init - start ueventd - - export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin - export LD_LIBRARY_PATH /vendor/lib:/system/lib - export ANDROID_ROOT /system - export ANDROID_DATA /data - export EXTERNAL_STORAGE /sdcard - - symlink /system/etc /etc - - mkdir /sdcard - mkdir /preload - mkdir /system - mkdir /data - mkdir /cache - mkdir /efs - mkdir /tmp - mkdir /dbdata - mkdir /mnt 0775 root root - #mount /tmp /tmp tmpfs - - mount ext4 /dev/block/mmcblk0p17 /system ro wait noatime - exec sfsck /dev/block/mmcblk0p19 ext4 - mount ext4 /dev/block/mmcblk0p19 /data wait nosuid nodev noatime discard,noauto_da_alloc,journal_async_commit - - mkdir /data/log 0777 - - chmod 0666 /dev/log/radio - chmod 0666 /dev/log/main - chmod 0666 /dev/log/event - -# write /sys/class/sec/switch/usb_sel PDA - -# CPU Frequency Governor - write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive - -# EHCI runtime enable for LPA - write /sys/devices/platform/s5p-ehci/power/control auto - - ifup lo - hostname localhost - domainname localdomain - - class_start charger - class_start default - -service debuggerd /system/bin/debuggerd - - service ueventd /sbin/ueventd - critical - -#service console /bin/sh -service console /system/bin/sh - console - -service playlpm /system/bin/playlpm - user root - -service immvibed /system/bin/immvibed - oneshot - -service lpmkey /system/bin/lpmkey - user root - -service battery_charger /charger - class charger - seclabel u:r:healthd:s0 - -# adbd is controlled by the persist.service.adb.enable system property -service adbd /sbin/adbd - disabled - -# adbd on at boot in emulator -on property:ro.kernel.qemu=1 - start adbd - -on property:persist.service.adb.enable=1 - start adbd - -on property:persist.service.adb.enable=0 - stop adbd \ No newline at end of file diff --git a/ramdisk/twrp.fstab.hawaii_ss_kylepro b/ramdisk/twrp.fstab.hawaii_ss_kylepro index f370274..e61e2cb 100644 --- a/ramdisk/twrp.fstab.hawaii_ss_kylepro +++ b/ramdisk/twrp.fstab.hawaii_ss_kylepro @@ -1,9 +1,8 @@ -/boot emmc /dev/block/platform/sdhci.1/by-name/KERNEL -/system ext4 /dev/block/platform/sdhci.1/by-name/system -/data ext4 /dev/block/platform/sdhci.1/by-name/userdata length=-16384 -/cache ext4 /dev/block/platform/sdhci.1/by-name/CSC -/recovery emmc /dev/block/platform/sdhci.1/by-name/RECOVERY -/modem emmc /dev/block/platform/sdhci.1/by-name/modem flags=display="Baseband";backup=1 -/efs ext4 /dev/block/platform/sdhci.1/by-name/efs flags=display="EFS";backup=1 -/external_sd vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="Micro SDcard";storage;wipeingui;removable -/preload ext4 /dev/block/platform/sdhci.1/by-name/HIDDEN flags=display="Preload";wipeingui;backup=1 +/boot emmc /dev/block/platform/sdhci.1/by-name/KERNEL +/system ext4 /dev/block/platform/sdhci.1/by-name/system +/data ext4 /dev/block/platform/sdhci.1/by-name/userdata length=-16384 +/cache ext4 /dev/block/platform/sdhci.1/by-name/CSC +/recovery emmc /dev/block/platform/sdhci.1/by-name/RECOVERY +/modem emmc /dev/block/platform/sdhci.1/by-name/modem flags=display="Baseband";backup=1 +/efs ext4 /dev/block/platform/sdhci.1/by-name/efs flags=display="EFS";backup=1 +/external_sd vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="Micro SDcard";storage;wipeingui;removable diff --git a/ramdisk/ueventd.hawaii_ss_kylepro.rc b/ramdisk/ueventd.hawaii_ss_kylepro.rc index a8e27c2..ecfecd1 100644 --- a/ramdisk/ueventd.hawaii_ss_kylepro.rc +++ b/ramdisk/ueventd.hawaii_ss_kylepro.rc @@ -1,72 +1,46 @@ - -/dev/pvrsrvkm 0666 system system -/dev/graphics/fb0 0666 system graphics -/dev/video0 0660 system camera -/dev/video1 0660 system camera -/dev/video2 0660 system camera -/dev/s3c-jpg 0660 system camera -/dev/s3c-mem 0660 system system -/dev/s3c-mfc 0660 system graphics - -/dev/modem_ctl 0660 radio radio -/dev/modem_fmt 0660 radio radio -/dev/modem_rfs 0660 radio radio -/dev/s3c2410_serial3 0660 radio radio -/dev/block/mtdblock5 0660 radio radio -/dev/mtd/mtd5ro 0660 radio radio - -# for GPS -/dev/s3c2410_serial1 0600 gps gps - -# for Camera -/dev/bcm_unicam 0660 system camera -/dev/bcm_isp 0660 system camera -/dev/i2c-0 0660 system camera -/dev/i2c-1 0660 system camera -/dev/i2c-2 0660 system camera - -# for MM memory -/dev/ion 0666 system graphics - -#for V3D -/dev/v3d 0666 system graphics -/dev/pmem 0660 system graphics - -#for VCE -/dev/vce 0660 system graphics - -# sensors -/dev/mpu 0666 system system -/dev/mpuirq 0666 system system -/dev/timerirq 0666 system system -/dev/ami_sensor 0666 system system - -# for Hawaii -/dev/mm_v3d 0666 system graphics -/dev/mm_isp 0660 system camera -/dev/bcm_isp2 0660 system camera -/dev/mm_isp2 0666 system camera -/dev/bcm_jpeg 0660 system camera -/dev/mm_interlock 0666 system graphics -/dev/mm_h264 0660 media media -/dev/h264_ol 0660 media media - -# for h/w codec -/dev/brcm_h264 0660 media media - -#Permission for NV partition -/dev/block/mmcblk0p1 0770 radio system +# For graphic +/dev/graphics/fb0 0666 system graphics +/dev/video0 0660 system camera +/dev/video1 0660 system camera + +# For Camera +/dev/bcm_unicam 0660 system camera +/dev/bcm_isp 0660 system camera +/dev/i2c-0 0660 system camera +/dev/i2c-1 0660 system camera +/dev/i2c-2 0660 system camera + +# For MM memory +/dev/ion 0666 system graphics + +# For V3D +/dev/pmem 0660 system graphics + +# For VCE +/dev/vce 0660 system graphics + +# For Hawaii +/dev/mm_v3d 0666 system graphics +/dev/mm_isp 0660 system camera +/dev/bcm_isp 0660 system camera +/dev/mm_isp 0666 system camera +/dev/mm_interlock 0666 system graphics +/dev/mm_h264 0660 media media +/dev/h264_ol 0660 media media + +# For h/w codec +/dev/brcm_h264 0660 media media + +# Permission for NV partition +/dev/block/mmcblk0p1 0770 radio system # SYSTEM Status -/dev/block/mmcblk0p11 0660 system root +/dev/block/mmcblk0p11 0660 system root -# for RIL to be able to open Kernel RPC drivers -/dev/bcm_rpc 0660 radio radio -/dev/bcm_irpc 0660 radio radio -/dev/bcm_atc 0660 shell system +# For RIL to be able to open Kernel RPC drivers +/dev/bcm_irpc 0660 radio radio -# SEC User Dump -# /dev/sec_user_dump 0660 system shell -/dev/mem 0660 system root -/dev/ttyGS0 0660 system system -/dev/snd/controlC0 0660 system audio \ No newline at end of file +# Misc +/dev/mem 0660 system root +/dev/ttyGS0 0660 system system +/dev/snd/controlC0 0660 system audio \ No newline at end of file diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts index fb4d614..80535d7 100644 --- a/sepolicy/file_contexts +++ b/sepolicy/file_contexts @@ -1,51 +1,33 @@ -/dev/bcm_isp u:object_r:camera_device:s0 -/dev/mm_isp u:object_r:camera_device:s0 -/dev/vce u:object_r:gpu_device:s0 -/dev/mm_h264 u:object_r:video_device:s0 -/dev/h264_ol u:object_r:video_device:s0 -/dev/brcm_h264 u:object_r:video_device:s0 -/dev/mm_v3d u:object_r:gpu_device:s0 -/dev/mm_interlock u:object_r:gpu_device:s0 -/dev/bcm_voip_chrdev u:object_r:audio_device:s0 -/dev/bcm_security u:object_r:radio_device:s0 -/dev/v3d u:object_r:gpu_device:s0 -/dev/pmem u:object_r:gpu_device:s0 -/dev/bralloc_mem u:object_r:gpu_device:s0 -/dev/graphics/fb0 u:object_r:gpu_device:s0 -/dev/modem_ctl u:object_r:radio_device:s0 -/dev/modem_fmt u:object_r:radio_device:s0 -/dev/modem_rfs u:object_r:radio_device:s0 -/dev/s3c2410_serial3 u:object_r:radio_device:s0 -/dev/s3c2410_serial1 u:object_r:gps_device:s0 -/dev/bcm_unicam u:object_r:camera_device:s0 -/dev/i2c-[0-9] u:object_r:camera_device:s0 -/dev/bcm_isp2 u:object_r:camera_device:s0 -/dev/mm_isp2 u:object_r:camera_device:s0 -/dev/bcm_jpeg u:object_r:camera_device:s0 -/dev/bcm_rpc u:object_r:radio_device:s0 -/dev/bcm_irpc u:object_r:radio_device:s0 +/dev/bcm_isp u:object_r:camera_device:s0 +/dev/mm_isp u:object_r:camera_device:s0 +/dev/vce u:object_r:gpu_device:s0 +/dev/mm_h264 u:object_r:video_device:s0 +/dev/h264_ol u:object_r:video_device:s0 +/dev/brcm_h264 u:object_r:video_device:s0 +/dev/mm_v3d u:object_r:gpu_device:s0 +/dev/mm_interlock u:object_r:gpu_device:s0 +/dev/bcm_voip_chrdev u:object_r:audio_device:s0 +/dev/bcm_security u:object_r:radio_device:s0 +/dev/pmem u:object_r:gpu_device:s0 +/dev/graphics/fb0 u:object_r:gpu_device:s0 +/dev/i2c-[0-8] u:object_r:camera_device:s0 +/dev/bcm_irpc u:object_r:radio_device:s0 -/efs/bluetooth/bt_addr u:object_r:bluetooth_efs_file:s0 -/sys/devices/platform/bcmbt-rfkill.1/rfkill/rfkill0/state -- u:object_r:sysfs_bluetooth_writable:s0 -/sys/devices/platform/bcmbt-rfkill.1/rfkill/rfkill0/type -- u:object_r:sysfs_bluetooth_writable:s0 +/efs/bluetooth/bt_addr u:object_r:bluetooth_efs_file:s0 +/sys/devices/platform/bcmbt-rfkill/rfkill/rfkill0/state -- u:object_r:sysfs_bluetooth_writable:s0 +/sys/devices/platform/bcmbt-rfkill/rfkill/rfkill0/type -- u:object_r:sysfs_bluetooth_writable:s0 -/dev/ttyS0 u:object_r:hci_attach_dev:s0 -/dev/ttyS1 u:object_r:gps_device:s0 -#/dev/ttyS2 u:object_r:gps_device:s0 -/dev/bcm_gps u:object_r:gps_device:s0 +/dev/ttyS0 u:object_r:hci_attach_dev:s0 +/dev/ttyS1 u:object_r:gps_device:s0 +#/dev/ttyS2 u:object_r:gps_device:s0 +/dev/bcm_gps u:object_r:gps_device:s0 -/dev/bcm_log u:object_r:radio_device:s0 -/dev/block/mmcblk0p1 u:object_r:radio_device:s0 - -/dev/socket/rild1 u:object_r:rild_socket:s0 - -/sys/devices/platform/mdnie/mdnie/mdnie/cabc -- u:object_r:sysfs_writable:s0 +/dev/bcm_log u:object_r:radio_device:s0 +/dev/block/mmcblk0p1 u:object_r:radio_device:s0 # /system files -/system/bin/geomagneticd u:object_r:geomagneticd_exec:s0 -/system/bin/immvibed u:object_r:immvibed_exec:s0 -/system/bin/macloader u:object_r:macloader_exec:s0 -/system/bin/tvserver u:object_r:tvserver_exec:s0 -/system/bin/bkmgrd u:object_r:bkmgrd_exec:s0 -/system/bin/vclmk u:object_r:vclmk_exec:s0 -/system/bin/glgps u:object_r:gpsd_exec:s0 +/system/bin/geomagneticd u:object_r:geomagneticd_exec:s0 +/system/bin/immvibed u:object_r:immvibed_exec:s0 +/system/bin/macloader u:object_r:macloader_exec:s0 +/system/bin/bkmgrd u:object_r:bkmgrd_exec:s0 +/system/bin/glgps u:object_r:gpsd_exec:s0 diff --git a/sepolicy/init.te b/sepolicy/init.te index fdd83bc..93764bf 100644 --- a/sepolicy/init.te +++ b/sepolicy/init.te @@ -1,7 +1,7 @@ -# chmod in init.capri_ss_baffin.rc (for bkmgrd) +# chmod in init.hawaii_ss_kylepro.rc (for bkmgrd) allow init block_device:blk_file setattr; allow init radio_device:blk_file setattr; # insmod allow init self:capability sys_module; # TODO: want sys_ptrace too -allow init kernel:security setenforce; \ No newline at end of file +allow init kernel:security setenforce; diff --git a/sepolicy/service_contexts b/sepolicy/service_contexts deleted file mode 100644 index ddb8a10..0000000 --- a/sepolicy/service_contexts +++ /dev/null @@ -1 +0,0 @@ -broadcom.tvservice u:object_r:system_server_service:s0 diff --git a/sepolicy/system_server.te b/sepolicy/system_server.te index fda6c37..b11ec86 100644 --- a/sepolicy/system_server.te +++ b/sepolicy/system_server.te @@ -1,4 +1,4 @@ -# Access /sys/devices/platform/mdnie/mdnie/mdnie/cabc +# Not sure why allow system_server sysfs_writable:file rw_file_perms; # Access /efs/wifi/.mac.info diff --git a/sepolicy/tvserver.te b/sepolicy/tvserver.te deleted file mode 100644 index 81b6c69..0000000 --- a/sepolicy/tvserver.te +++ /dev/null @@ -1,8 +0,0 @@ -type tvserver, domain; -type tvserver_exec, file_type, exec_type; - -init_daemon_domain(tvserver) -binder_use(tvserver) - -allow tvserver gpu_device:chr_file rw_file_perms; -allow tvserver system_server_service:service_manager add; diff --git a/sepolicy/vclmk.te b/sepolicy/vclmk.te deleted file mode 100644 index 8aa163d..0000000 --- a/sepolicy/vclmk.te +++ /dev/null @@ -1,14 +0,0 @@ -type vclmk, domain; -type vclmk_exec, file_type, exec_type; - -init_daemon_domain(vclmk) - -allow vclmk gpu_device:chr_file rw_file_perms; -allow vclmk video_device:chr_file rw_file_perms; - -# Access app data in /proc/pid -allow vclmk domain:dir r_dir_perms; -allow vclmk domain:file r_file_perms; - -# Kill apps -allow vclmk appdomain:process { sigkill sigstop signal }; diff --git a/system.prop b/system.prop index 6e07dde..bf30867 100644 --- a/system.prop +++ b/system.prop @@ -16,12 +16,11 @@ ro.lcd_min_brightness=10 ro.product.multi_touch_enabled=true ro.product.max_num_touch=2 -net.streaming.rtsp.uaprof=http://wap.samsungmobile.com/uaprof/ +net.streaming.rtsp.uaprof=http://wap.samsungmobile.com/uaprof/GT-S7580.xml ro.opengles.version=131072 debug.hwui.render_dirty_regions=false brcm.graphics.async_errors=false -brcm.hwc.no-hdmi-trans=1 #adative video encoding video.enc.h264.adaptive_quality=1 @@ -32,4 +31,3 @@ video.enc.h264.timing_thr2=145 ro.ril.hsxpa=1 ro.ril.gprsclass=10 -ro.com.google.gmsversion=4.2_r4 \ No newline at end of file diff --git a/vendorsetup.sh b/vendorsetup.sh index 405318e..5e62d9d 100644 --- a/vendorsetup.sh +++ b/vendorsetup.sh @@ -1,3 +1,3 @@ for i in eng userdebug user; do - add_lunch_combo cm_kylepro-${i} + add_lunch_combo cm_kylepro-${i} done