diff --git a/AndroidProducts.mk b/AndroidProducts.mk index 1a06807..fd21ea7 100644 --- a/AndroidProducts.mk +++ b/AndroidProducts.mk @@ -1,2 +1,2 @@ PRODUCT_MAKEFILES := \ - $(LOCAL_DIR)/device_peregrine.mk + $(LOCAL_DIR)/full_peregrine.mk diff --git a/BoardConfig.mk b/BoardConfig.mk index 028c4d0..47e5e03 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -29,13 +29,18 @@ LOCAL_PATH := device/motorola/perergine BOARD_CUSTOM_BOOTIMG_MK := device/motorola/peregrine/mkbootimg.mk -TARGET_RECOVERY_FSTAB := $(LOCAL_PATH)/rootdir/etc/fstab.qcom +BOARD_HAS_NO_MISC_PARTITION := true + +TARGET_UNIFIED_DEVICE := true +TARGET_INIT_VENDOR_LIB := libinit_msm -# fix this up by examining /proc/mtd on a running device BOARD_USERDATAIMAGE_PARTITION_SIZE := 8589934592 +TARGET_RECOVERY_FSTAB := device/motorola/peregrine/rootdir/etc/fstab.qcom + #TWRP DEVICE_RESOLUTION := 720x1280 TW_IGNORE_MAJOR_AXIS_0 := true TW_EXTERNAL_STORAGE_PATH := "/external_sd" TW_EXTERNAL_STORAGE_MOUNT_POINT := "external_sd" +#TW_CUSTOM_POWER_BUTTON := 107 diff --git a/README.mkdn b/README.mkdn new file mode 100644 index 0000000..a4f2ff8 --- /dev/null +++ b/README.mkdn @@ -0,0 +1,37 @@ +HOW-TO for building CyanogenMod +_______________________________ + +- First, follow http://source.android.com/source to figure out how to get your build environment running, etc +- Make a directory for your build source, then sync CyanogenMod: repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0 +- Then you need to add this to .repo/local_manifests/roomservice.xml (if you dont have it then create it and put this in): + + + + + + + + + + + + + +- Do a repo sync and it should grab everything you need +- Plug in your phone, and run the extract files script against a working cyanogenmod build +- Change directory to the top, and source the build environment setup: . build/envsetup.sh +- Use the command brunch peregrine, and wait as your meal cooks. +- It should output an update.zip in out/target/product/peregrine/... you've made CyanogenMod. Congratulations. + + + +List of Contributers to the device tree +___________________________________________________________________________ + +- DHacker +- Shabbypenguin +- SomCom3x + +A full CHANGELOG for CyanogenMod can be found in its vendor: https://github.com/CyanogenMod/android_vendor_cm/blob/ics/CHANGELOG.mkdn + +Keep in mind guys, CyanogenMod is open source, and a community project. Get involved, and help us code for a better future :D diff --git a/cm.mk b/cm.mk index cc2cfe4..2e02c6a 100644 --- a/cm.mk +++ b/cm.mk @@ -1,18 +1,13 @@ -## Specify phone tech before including full_phone -$(call inherit-product, vendor/cm/config/gsm.mk) - -# Release name -PRODUCT_RELEASE_NAME := peregrine - # Inherit some common CM stuff. $(call inherit-product, vendor/cm/config/common_full_phone.mk) +# Boot animation +TARGET_SCREEN_WIDTH := 720 +TARGET_SCREEN_HEIGHT := 1280 + # Inherit device configuration -$(call inherit-product, device/motorola/peregrine/device_peregrine.mk) +$(call inherit-product, device/motorola/peregrine/full_peregrine.mk) ## Device identifier. This must come after all inclusions -PRODUCT_DEVICE := peregrine +PRODUCT_RELEASE_NAME := peregrine PRODUCT_NAME := cm_peregrine -PRODUCT_BRAND := motorola -PRODUCT_MODEL := peregrine -PRODUCT_MANUFACTURER := motorola diff --git a/device-proprietary-files.txt b/device-proprietary-files.txt new file mode 100644 index 0000000..9aecffe --- /dev/null +++ b/device-proprietary-files.txt @@ -0,0 +1,2 @@ +# proprietary file list +# bin/filename diff --git a/device_peregrine.mk b/device_peregrine.mk index d862e3f..e69b39e 100644 --- a/device_peregrine.mk +++ b/device_peregrine.mk @@ -1,22 +1,27 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk) -# The gps config appropriate for this device -$(call inherit-product, device/common/gps/gps_us_supl.mk) - $(call inherit-product-if-exists, vendor/motorola/peregrine/peregrine-vendor.mk) -DEVICE_PACKAGE_OVERLAYS += device/motorola/peregrine/overlay +LOCAL_PATH := device/motorola/peregrine -$(call inherit-product, build/target/product/full.mk) +# peregrine specific overlay +DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay # Ramdisk PRODUCT_PACKAGES += \ - fstab.qcom + init.qcom.rc \ + fstab.qcom # TWRP PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/rootdir/etc/twrp.fstab:recovery/root/etc/twrp.fstab -PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0 -PRODUCT_NAME := full_peregrine -PRODUCT_DEVICE := peregrine +PRODUCT_LOCALES := en_US +PRODUCT_LOCALES += xhdpi +PRODUCT_AAPT_CONFIG := normal hdpi xhdpi +PRODUCT_AAPT_PREF_CONFIG := xhdpi + +$(call inherit-product, frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk) + +$(call inherit-product, device/motorola/msm8226-common/msm8226.mk) +$(call inherit-product, device/motorola/msm8226-common/keylayout/keylayout.mk) diff --git a/extract-files.sh b/extract-files.sh new file mode 100755 index 0000000..246c631 --- /dev/null +++ b/extract-files.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +export VENDOR=motorola +export DEVICE=peregrine +# Comment these out if there is no common device tree for this device +export COMMON_DEVICE=msm8226-common +export BOARD_VENDOR=motorola-qcom +export TARGET_BOARD_PLATFORM=msm8226 + +../$COMMON_DEVICE/extract-files.sh $@ diff --git a/full_peregrine.mk b/full_peregrine.mk new file mode 100644 index 0000000..648054d --- /dev/null +++ b/full_peregrine.mk @@ -0,0 +1,36 @@ +# +# Copyright (C) 2013 The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# +# This file is the build configuration for a full Android +# build for peregrine hardware. This cleanly combines a set of +# device-specific aspects (drivers) with a device-agnostic +# product configuration (apps). Except for a few implementation +# details, it only fundamentally contains two inherit-product +# lines, full and peregrine, hence its name. +# + +# Inherit from those products. Most specific first. +$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk) +# Inherit from peregrine device +$(call inherit-product, device/motorola/peregrine/device_peregrine.mk) + +## Device identifier. This must come after all inclusions +PRODUCT_DEVICE := peregrine +PRODUCT_NAME := full_peregrine +PRODUCT_BRAND := motorola +PRODUCT_MODEL := peregrine +PRODUCT_MANUFACTURER := motorola diff --git a/overlay/frameworks/base/core/res/res/xml/storage_list.xml b/overlay/frameworks/base/core/res/res/xml/storage_list.xml new file mode 100644 index 0000000..67ff1e4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/xml/storage_list.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + diff --git a/overlay/packages/apps/Phone b/overlay/packages/apps/Phone new file mode 120000 index 0000000..0f8d39e --- /dev/null +++ b/overlay/packages/apps/Phone @@ -0,0 +1 @@ +../services/Telephony/ \ No newline at end of file diff --git a/overlay/packages/services/Telephony/res/values/config.xml b/overlay/packages/services/Telephony/res/values/config.xml new file mode 100644 index 0000000..aa26186 --- /dev/null +++ b/overlay/packages/services/Telephony/res/values/config.xml @@ -0,0 +1,23 @@ + + + + + + true + + + true + diff --git a/rootdir/Android.mk b/rootdir/Android.mk index 4477b0f..bfb2319 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -8,3 +8,11 @@ LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := etc/fstab.qcom LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qcom.rc +LOCAL_MODULE_TAGS := optional eng +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.qcom.rc +LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) +include $(BUILD_PREBUILT) diff --git a/rootdir/etc/fstab.qcom b/rootdir/etc/fstab.qcom index 93efb3b..1101fc5 100644 --- a/rootdir/etc/fstab.qcom +++ b/rootdir/etc/fstab.qcom @@ -10,6 +10,8 @@ /dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 defaults recoveryonly /dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults recoveryonly /dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults recoveryonly -/devices/platform/msm_sdcc.3/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard1:auto + +/dev/block/mmcblk1p1 /external_sd auto default recoveryonly +/devices/msm_sdcc.2/mmc_host auto vfat defaults voldmanaged=sdcard1:auto,migrate=target,noemulatedsd /devices/platform/msm_hsusb_host auto auto defaults voldmanaged=usbdisk:auto /dev/block/zram0 none swap defaults zramsize=134217728 diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc new file mode 100755 index 0000000..09673fd --- /dev/null +++ b/rootdir/etc/init.qcom.rc @@ -0,0 +1,640 @@ +# Copyright (c) 2009-2012,2014 The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +import init.qcom.usb.rc +# import init.target.rc + +on early-init + write /sys/block/mmcblk0/queue/scheduler noop + +on init + loglevel 8 + + # Set permissions for persist partition + mkdir /persist 0771 system system + # See storage config details at http://source.android.com/tech/storage/ + mkdir /mnt/shell/emulated 0700 shell shell + mkdir /storage/emulated 0555 root root + + #External storage directories + mkdir /mnt/media_rw/sdcard1 0700 media_rw media_rw + mkdir /storage/sdcard1 0700 root root + mkdir /storage/emulated/legacy 0555 root root + mkdir /mnt/media_rw/usbdisk 0700 media_rw media_rw + mkdir /storage/usbdisk 0700 root root + + export EXTERNAL_STORAGE /storage/emulated/legacy + export EMULATED_STORAGE_SOURCE /mnt/shell/emulated + export EMULATED_STORAGE_TARGET /storage/emulated + export SECONDARY_STORAGE /storage/sdcard1 + + # Support legacy paths + symlink /storage/emulated/legacy /sdcard + symlink /storage/emulated/legacy /mnt/sdcard + symlink /storage/emulated/legacy /storage/sdcard0 + symlink /storage/usbdisk /usbdisk + symlink /storage/usbdisk /mnt/usbdisk + +on fs + setprop ro.crypto.fuse_sdcard true + +on early-boot + # set RLIMIT_MEMLOCK to 64MB + setrlimit 8 67108864 67108864 + # Allow subsystem (modem etc) debugging + write /sys/module/subsystem_restart/parameters/enable_debug ${persist.sys.ssr.enable_debug} + exec /system/bin/sh /init.qcom.early_boot.sh ${ro.board.platform} + exec /system/bin/sh /init.qcom.syspart_fixup.sh ${ro.board.platform} ${ro.serialno} + +on boot + chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power + chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type + chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state + chown bluetooth bluetooth /proc/bluetooth/sleep/proto + chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_lpm + chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_btwrite + chown system system /sys/module/sco/parameters/disable_esco + chown bluetooth bluetooth /sys/module/hci_smd/parameters/hcismd_set + chmod 0660 /sys/module/bluetooth_power/parameters/power + chmod 0660 /sys/module/hci_smd/parameters/hcismd_set + chmod 0660 /sys/class/rfkill/rfkill0/state + chmod 0660 /proc/bluetooth/sleep/proto + chown bluetooth bluetooth /dev/ttyHS0 + chmod 0660 /sys/module/hci_uart/parameters/ath_lpm + chmod 0660 /sys/module/hci_uart/parameters/ath_btwrite + chmod 0660 /dev/ttyHS0 + chown bluetooth bluetooth /sys/devices/platform/msm_serial_hs.0/clock + chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock + + chmod 0660 /dev/ttyHS2 + chown bluetooth bluetooth /dev/ttyHS2 + + #Create QMUX deamon socket area + mkdir /dev/socket/qmux_radio 0770 radio radio + chmod 2770 /dev/socket/qmux_radio + mkdir /dev/socket/qmux_audio 0770 media audio + chmod 2770 /dev/socket/qmux_audio + mkdir /dev/socket/qmux_bluetooth 0770 bluetooth bluetooth + chmod 2770 /dev/socket/qmux_bluetooth + mkdir /dev/socket/qmux_gps 0770 gps gps + chmod 2770 /dev/socket/qmux_gps + + # Prevents permission denied error for telephony + chmod 0644 /proc/cmdline + + setprop wifi.interface wlan0 + +# Define TCP buffer sizes for various networks +# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax, + setprop net.tcp.buffersize.wifi 524288,2097152,4194304,262144,524288,1048576 + + + setprop ro.telephony.call_ring.multiple false + + #Remove SUID bit for iproute2 ip tool + chmod 0755 /system/bin/ip + + + chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state + + #For bridgemgr daemon to inform the USB driver of the correct transport + chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport + + # For setting tcp delayed ack + chown system system /sys/kernel/ipv4/tcp_delack_seg + chown system system /sys/kernel/ipv4/tcp_use_userconfig + +# Define TCP delayed ack settings for WiFi & LTE + setprop net.tcp.delack.default 1 + setprop net.tcp.delack.wifi 20 + setprop net.tcp.delack.lte 8 + setprop net.tcp.usercfg.default 0 + setprop net.tcp.usercfg.wifi 1 + setprop net.tcp.usercfg.lte 1 + + #To allow interfaces to get v6 address when tethering is enabled + write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_usb0/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_usb1/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_usb2/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_usb3/accept_ra 2 + + # To prevent out of order acknowledgements from making + # connection tracking to treat them as not belonging to + # the connection they belong to. + # Otherwise, a weird issue happens in which some long + # connections on high-throughput links get dropped when + # an ack packet comes out of order + write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1 + + # NFC local data and nfcee xml storage + mkdir /data/nfc 0770 nfc nfc + mkdir /data/nfc/param 0770 nfc nfc + + # Flash storage isn't a good entropy source, and only causes locking + # overhead in the kernel. Turn it off. + write /sys/block/mmcblk0/queue/add_random 0 + + setprop ro.hw.device ${ro.boot.device} + setprop ro.hw.hwrev ${ro.boot.hwrev} + setprop ro.hw.radio ${ro.boot.radio} + + # activate zram + swapon_all fstab.qcom + write /proc/sys/vm/page-cluster + +# msm specific files that need to be created on /data +on post-fs-data + # we will remap this as /mnt/sdcard with the sdcard fuse tool + mkdir /data/media 0770 media_rw media_rw + chown media_rw media_rw /data/media + + mkdir /data/misc/bluetooth 0770 bluetooth bluetooth + + # Create the directories used by the Wireless subsystem + 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/dhcp 0770 dhcp dhcp + chown dhcp dhcp /data/misc/dhcp + + # Create directory used by audio subsystem + mkdir /data/misc/audio 0770 audio audio + + # Create directory used by the DASH client + mkdir /data/misc/dash 0770 media audio + + # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections + # We chown/chmod /persist again so because mount is run as root + defaults + chown system system /persist + chmod 0771 /persist + chmod 0664 /sys/devices/platform/msm_sdcc.1/polling + chmod 0664 /sys/devices/platform/msm_sdcc.2/polling + chmod 0664 /sys/devices/platform/msm_sdcc.3/polling + chmod 0664 /sys/devices/platform/msm_sdcc.4/polling + + # Chown polling nodes as needed from UI running on system server + chown system system /sys/devices/platform/msm_sdcc.1/polling + chown system system /sys/devices/platform/msm_sdcc.2/polling + chown system system /sys/devices/platform/msm_sdcc.3/polling + chown system system /sys/devices/platform/msm_sdcc.4/polling + + #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant + mkdir /data/system 0775 system system + #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant + + #Create directories for Location services + mkdir /data/misc/location 0770 gps gps + mkdir /data/misc/location/mq 0770 gps gps + mkdir /data/misc/location/xtwifi 0770 gps gps + mkdir /data/misc/location/gpsone_d 0770 system gps + mkdir /data/misc/location/quipc 0770 gps system + mkdir /data/misc/location/gsiff 0770 gps gps + + #Create directory from IMS services + mkdir /data/shared 0755 + chown system system /data/shared + + #Create directory for FOTA + mkdir /data/fota 0771 + chown system system /data/fota + + #Create directory for hostapd + mkdir /data/hostapd 0770 system wifi + + # Create /data/time folder for time-services + mkdir /data/time/ 0700 system system + + mkdir /data/audio/ 0770 media audio + # Enable the setgid bit on the directory + chmod 2770 /data/audio + + setprop vold.post_fs_data_done 1 + + #Create a folder for SRS to be able to create a usercfg file + mkdir /data/data/media 0770 media media + +on property:init.svc.surfaceflinger=stopped + stop ppd + stop hdmid + +on property:init.svc.wpa_supplicant=stopped + stop dhcpcd + +on property:bluetooth.isEnabled=true + start btwlancoex + write /sys/class/bluetooth/hci0/idle_timeout 7000 + +service qcom-c_core-sh /system/bin/sh /init.qcom.class_core.sh + class core + user root + oneshot + +service qcom-c_main-sh /system/bin/sh /init.class_main.sh + class main + user root + oneshot + +service ril-qmi /system/bin/sh /init.qcom.ril.sh + class main + user root + oneshot + +on property:vold.decrypt=trigger_restart_framework + start qcom-c_main-sh + start config_bluetooth + +on property:persist.env.fastdorm.enabled=true + setprop persist.radio.data_no_toggle 1 + +service irsc_util /system/bin/logwrapper /system/bin/irsc_util "/etc/sec_config" + class main + user root + oneshot + +service rmt_storage /system/bin/rmt_storage + class core + user root + disabled + +on property:ro.boot.emmc=true + start rmt_storage + +service rfs_access /system/bin/rfs_access + class core + user system + group system net_raw + +on property:ro.boot.emmc=true + start rfs_access + +service config_bluetooth /system/bin/sh /system/etc/init.qcom.bt.sh + class core + user root + oneshot + +service hciattach /system/bin/sh /system/etc/init.qcom.bt.sh + class late_start + user bluetooth + group bluetooth net_bt_admin + disabled + oneshot + +on property:bluetooth.hciattach=true + start hciattach + +on property:bluetooth.hciattach=false + setprop bluetooth.status off + +service bridgemgrd /system/bin/bridgemgrd + class late_start + user radio + group radio qcom_diag + disabled + +service port-bridge /system/bin/port-bridge /dev/smd0 /dev/ttyGS0 + class late_start + user system + group system inet + disabled + +service qmiproxy /system/bin/qmiproxy + class main + user radio + group radio qcom_diag + disabled + +# QMUX must be in multiple groups to support external process connections +service qmuxd /system/bin/qmuxd + class main + user radio + group radio audio bluetooth gps qcom_diag + disabled + +service netmgrd /system/bin/netmgrd + class main + disabled + +on property:ro.use_data_netmgrd=false + # netmgr not supported on specific target + stop netmgrd + +# Adjust socket buffer to enlarge TCP receive window for high bandwidth +# but only if ro.data.large_tcp_window_size property is set. +on property:ro.data.large_tcp_window_size=true + write /proc/sys/net/ipv4/tcp_adv_win_scale 2 + +service btwlancoex /system/bin/sh /system/etc/init.qcom.coex.sh + class late_start + user bluetooth + group bluetooth net_bt_admin inet net_admin net_raw + disabled + oneshot + +service p2p_supplicant /system/bin/wpa_supplicant \ + -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ + -I/system/etc/wifi/p2p_supplicant_overlay.conf -N \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ + -I/system/etc/wifi/wpa_supplicant_overlay.conf \ + -O/data/misc/wifi/sockets -puse_p2p_group_interface=1 \ + -e/data/misc/wifi/entropy.bin -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 + class main + socket wpa_wlan0 dgram 660 wifi wifi + disabled + oneshot + +service wpa_supplicant /system/bin/wpa_supplicant \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ + -I/system/etc/wifi/wpa_supplicant_overlay.conf \ + -O/data/misc/wifi/sockets \ + -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 + # 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 + oneshot + +service dhcpcd_wlan0 /system/bin/dhcpcd -ABKLG + class late_start + disabled + oneshot + +service dhcpcd_p2p /system/bin/dhcpcd -ABKLG + class late_start + disabled + oneshot + +service iprenew_wlan0 /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service iprenew_p2p /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service ptt_socket_app /system/bin/ptt_socket_app -d + class main + user root + group root + oneshot + +service ptt_ffbm /system/bin/ptt_socket_app -f -d + user root + group root + disabled + oneshot + +service dhcpcd_bt-pan /system/bin/dhcpcd -BKLG + class late_start + disabled + oneshot + +service iprenew_bt-pan /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_bnep1 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_bnep2 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_bnep3 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_bnep4 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service gpsone_daemon /system/bin/gpsone_daemon + class late_start + user gps + group gps inet net_raw + disabled + +service quipc_igsn /system/bin/quipc_igsn + class late_start + user gps + group inet gps qcom_diag + disabled + +service quipc_main /system/bin/quipc_main + class late_start + user gps + group gps net_admin wifi inet qcom_diag + disabled + +service location_mq /system/bin/location-mq + class late_start + user gps + group gps + disabled + +service xtwifi_inet /system/bin/xtwifi-inet-agent + class late_start + user gps + group inet gps + disabled + +service xtwifi_client /system/bin/xtwifi-client + class late_start + user gps + group net_admin wifi inet gps + disabled + +service lowi-server /system/bin/lowi-server + class late_start + user gps + group gps net_admin wifi inet qcom_diag + disabled + +service fm_dl /system/bin/sh /system/etc/init.qcom.fm.sh + class late_start + user root + group system fm_radio + disabled + oneshot + +on property:crypto.driver.load=1 + insmod /system/lib/modules/qce.ko + insmod /system/lib/modules/qcedev.ko + +on property:crypto.driver.load=0 + exec /system/bin/rmmod qcedev.ko + exec /system/bin/rmmod qce.ko + +service qcom-sh /system/bin/sh /init.qcom.sh + class late_start + user root + oneshot + +service qcom-post-boot /system/bin/sh /system/etc/init.qcom.post_boot.sh + class late_start + user root + disabled + oneshot + +service wifi-crda /system/bin/sh /system/etc/init.crda.sh + class late_start + user root + disabled + oneshot + +on property:sys.boot_completed=1 + start qcom-post-boot + write /sys/block/mmcblk0/queue/scheduler row + +service hostapd /system/bin/hostapd -dddd /data/hostapd/hostapd.conf + class late_start + user root + group root + oneshot + disabled + +service ds_fmc_appd /system/bin/ds_fmc_appd -p "rmnet0" -D + class late_start + group radio wifi inet + disabled + oneshot + +on property:persist.data.ds_fmc_app.mode=1 + start ds_fmc_appd + +on property:ro.data.large_tcp_window_size=true + # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB) + write /proc/sys/net/ipv4/tcp_adv_win_scale 2 + +service ril-daemon1 /system/bin/rild -c 1 + class main + socket rild1 stream 660 root radio + socket rild-debug1 stream 660 radio system + user root + disabled + group radio cache inet misc audio sdcard_r sdcard_rw diag qcom_diag log + +service ril-daemon2 /system/bin/rild -c 2 + class main + socket rild2 stream 660 root radio + socket rild-debug2 stream 660 radio system + user root + disabled + group radio cache inet misc audio sdcard_r sdcard_rw diag qcom_diag log + +service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated + class late_start + +service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1 + class late_start + disabled + +service fuse_usbdisk /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/usbdisk /storage/usbdisk + class late_start + disabled + +# Binding fuse mount point to /storage/emulated/legacy +on property:init.svc.sdcard=running + wait /mnt/shell/emulated/0 + mount none /mnt/shell/emulated/0 /storage/emulated/legacy bind + +service charger /charger + class charger + +service ssr_diag /system/bin/ssr_diag + class late_start + user system + group system + +# SSR setting +on property:persist.sys.ssr.restart_level=* + exec /system/bin/sh /init.qcom.ssr.sh ${persist.sys.ssr.restart_level} + +service hvdcp /system/bin/hvdcp + class core + user root + disabled + +on property:persist.usb.hvdcp.detect=true + start hvdcp + +on property:persist.usb.hvdcp.detect=false + stop hvdcp + +# CM Performance Profiles + +# Powersave +on property:sys.perf.profile=0 + start mpdecision + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor powersave + write /sys/class/devfreq/qcom,cpubw.55 powersave + +# Balanced +on property:sys.perf.profile=1 + start mpdecision + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive + write /sys/class/devfreq/qcom,cpubw.55 msm_cpufreq + +# High performance +on property:sys.perf.profile=2 + stop mpdecision + write /sys/devices/system/cpu/cpu0/online 1 + write /sys/devices/system/cpu/cpu1/online 1 + write /sys/devices/system/cpu/cpu2/online 1 + write /sys/devices/system/cpu/cpu3/online 1 + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor performance + write /sys/class/devfreq/qcom,cpubw.65 performance diff --git a/rootdir/etc/twrp.fstab b/rootdir/etc/twrp.fstab index 50653bf..fc429ee 100644 --- a/rootdir/etc/twrp.fstab +++ b/rootdir/etc/twrp.fstab @@ -1,8 +1,20 @@ -# mount point fstype device +# mount point fstype device -/data f2fs /dev/block/platform/msm_sdcc.1/by-name/userdata flags=fsflags="inline_xattr" +/data f2fs /dev/block/platform/msm_sdcc.1/by-name/userdata flags=fsflags="inline_xattr";length=-16384 /cache ext4 /dev/block/platform/msm_sdcc.1/by-name/cache /system ext4 /dev/block/platform/msm_sdcc.1/by-name/system /boot emmc /dev/block/platform/msm_sdcc.1/by-name/boot /recovery emmc /dev/block/platform/msm_sdcc.1/by-name/recovery -/external_sd vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="Micro SDcard";storage;wipeingui;removable +/pds emmc /dev/block/platform/msm_sdcc.1/by-name/pds flags=backup=1;display=PDS +/utags emmc /dev/block/platform/msm_sdcc.1/by-name/utags flags=backup=1;display=utags +/persist emmc /dev/block/platform/msm_sdcc.1/by-name/persist flags=backup=1;display=persist +# Some of those partitions (e.g. modem, fsg) are actually ext4, but shouldn't be mounted in normal circumstances. +/modem emmc /dev/block/platform/msm_sdcc.1/by-name/modem flags=backup=1;display=NON-HLOS +/modemst1 emmc /dev/block/mmcblk0p17 flags=backup=1;display=modemst1 +/modemst2 emmc /dev/block/mmcblk0p18 flags=backup=1;display=modemst2 +/fsg emmc /dev/block/mmcblk0p21 flags=backup=1;display=fsg +/fsc emmc /dev/block/mmcblk0p22 flags=backup=1;display=fsc +/sp emmc /dev/block/platform/msm_sdcc.1/by-name/sp flags=backup=1;display=sp +/cid emmc /dev/block/mmcblk0p25 flags=backup=1;display=cid +/external_sd auto /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="microSD card";storage;wipeingui;removable +/usb-otg auto /dev/block/sda1 /dev/block/sda flags=display="USB OTG";storage;wipeingui;removable diff --git a/system.prop b/system.prop index 450bc8b..5f9c2f2 100644 --- a/system.prop +++ b/system.prop @@ -1,3 +1,4 @@ # # system.prop for peregrine # +rild.libargs=-d /dev/smd0