vendor/bliss: Refactor Bliss init rc file

Signed-off-by: Jackeagle <jackeagle102@gmail.com>
Change-Id: I24f5b2e7189bf34734981b95d284a5eeefb0c36e
diff --git a/config/common.mk b/config/common.mk
index e07ab61..7f36dd4 100644
--- a/config/common.mk
+++ b/config/common.mk
@@ -66,10 +66,9 @@
     vendor/bliss/prebuilt/common/etc/init.d/00banner:system/etc/init.d/00banner \
     vendor/bliss/prebuilt/common/etc/init.d/90userinit:system/etc/init.d/90userinit
 
-# Init file
-PRODUCT_COPY_FILES += \
-    vendor/bliss/prebuilt/common/etc/init.bliss.rc:root/init.bliss.rc \
-    vendor/bliss/prebuilt/common/etc/init.blissupdater.rc:system/etc/init/init.blissupdater.rc
+# Copy all Bliss-specific init rc files
+	$(foreach f,$(wildcard vendor/bliss/prebuilt/common/etc/init/*.rc),\
+		$(eval PRODUCT_COPY_FILES += $(f):system/etc/init/$(notdir $f)))
 
 # Bring in camera effects
 PRODUCT_COPY_FILES +=  \
diff --git a/prebuilt/common/etc/init/bliss-adb.rc b/prebuilt/common/etc/init/bliss-adb.rc
new file mode 100644
index 0000000..95ede06
--- /dev/null
+++ b/prebuilt/common/etc/init/bliss-adb.rc
@@ -0,0 +1,11 @@
+# adb over network
+on property:adb.network.port=*
+    setprop service.adb.tcp.port ${adb.network.port}
+
+on property:service.adb.tcp.port=5555
+    stop adbd
+    start adbd
+
+on property:service.adb.tcp.port=-1
+    stop adbd
+    start adbd
diff --git a/prebuilt/common/etc/init/bliss-governor.rc b/prebuilt/common/etc/init/bliss-governor.rc
new file mode 100644
index 0000000..b805fc9
--- /dev/null
+++ b/prebuilt/common/etc/init/bliss-governor.rc
@@ -0,0 +1,71 @@
+on boot
+    # interactive governor
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/timer_rate
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_slack
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/timer_slack
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/target_loads
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/target_loads
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/boost
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/boost
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/boostpulse
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/input_boost
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/sync_freq
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/sync_freq
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/up_threshold_any_cpu_freq
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/up_threshold_any_cpu_freq
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/up_threshold_any_cpu_load
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/up_threshold_any_cpu_load
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
+    chown system system /sys/devices/system/cpu/cpufreq/interactive/max_freq_hysteresis
+    chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/max_freq_hysteresis
+
+    # ondemand governor
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/boostfreq
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/boostfreq
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/boostpulse
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/boostpulse
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/boosttime
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/boosttime
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/down_differential
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/down_differential
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/powersave_bias
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/powersave_bias
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/input_boost
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/input_boost
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
+    chown system system /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
+    chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
+
+    chown system system /dev/cpuctl/cpu.notify_on_migrate
+    chmod 0664 /dev/cpuctl/cpu.notify_on_migrate
diff --git a/prebuilt/common/etc/init/bliss-iosched.rc b/prebuilt/common/etc/init/bliss-iosched.rc
new file mode 100644
index 0000000..263003f
--- /dev/null
+++ b/prebuilt/common/etc/init/bliss-iosched.rc
@@ -0,0 +1,70 @@
+on init
+    # Set up the BFQIO hierarchy
+    mkdir /dev/bfqio 0755 root system
+    mount cgroup none /dev/bfqio bfqio
+    chown root system /dev/bfqio/tasks
+    chmod 0664 /dev/bfqio/tasks
+    chmod 0220 /dev/bfqio/cgroup.event_control
+
+    # Soft realtime class for display service
+    mkdir /dev/bfqio/rt-display 0755 root system
+    write /dev/bfqio/rt-display/bfqio.ioprio_class 1
+    chown system system /dev/bfqio/rt-display/tasks
+    chmod 0664 /dev/bfqio/rt-display/tasks
+    chmod 0220 /dev/bfqio/rt-display/cgroup.event_control
+
+on boot
+    restorecon --recursive /sys/block/mmcblk0/queue
+    chown system system /sys/block/mmcblk0/queue/scheduler
+    chmod 0664 /sys/block/mmcblk0/queue/scheduler
+
+    restorecon --recursive /sys/block/sda/queue
+    chown system system /sys/block/sda/queue/scheduler
+    chmod 0664 /sys/block/sda/queue/scheduler
+
+    restorecon --recursive /sys/block/sde/queue
+    chown system system /sys/block/sde/queue/scheduler
+    chmod 0664 /sys/block/sde/queue/scheduler
+
+    restorecon --recursive /sys/block/dm-0/queue
+    chown system system /sys/block/dm-0/queue/scheduler
+    chmod 0664 /sys/block/dm-0/queue/scheduler
+
+# Configure IO scheduler
+on property:sys.io.scheduler=*
+    write /sys/block/mmcblk0/queue/scheduler ${sys.io.scheduler}
+    write /sys/block/mmcblk1/queue/scheduler ${sys.io.scheduler}
+    write /sys/block/sda/queue/scheduler ${sys.io.scheduler}
+    write /sys/block/sde/queue/scheduler ${sys.io.scheduler}
+    write /sys/block/dm-0/queue/scheduler ${sys.io.scheduler}
+
+on property:persist.sys.io.scheduler=*
+    setprop sys.io.scheduler ${persist.sys.io.scheduler}
+
+# Set slice_idle to 0 for CFQ
+on property:sys.io.scheduler=cfq
+    restorecon --recursive /sys/block/mmcblk0/queue
+    restorecon --recursive /sys/block/mmcblk1/queue
+    restorecon --recursive /sys/block/sda/queue
+    restorecon --recursive /sys/block/sde/queue
+    restorecon --recursive /sys/block/dm-0/queue
+
+    write /sys/block/mmcblk0/queue/iosched/slice_idle 0
+    write /sys/block/mmcblk1/queue/iosched/slice_idle 0
+    write /sys/block/sda/queue/iosched/slice_idle 0
+    write /sys/block/sde/queue/iosched/slice_idle 0
+    write /sys/block/dm-0/queue/iosched/slice_idle 0
+
+# Set slice_idle to 0 for BFQ
+on property:sys.io.scheduler=bfq
+    restorecon --recursive /sys/block/mmcblk0/queue
+    restorecon --recursive /sys/block/mmcblk1/queue
+    restorecon --recursive /sys/block/sda/queue
+    restorecon --recursive /sys/block/sde/queue
+    restorecon --recursive /sys/block/dm-0/queue
+
+    write /sys/block/mmcblk0/queue/iosched/slice_idle 0
+    write /sys/block/mmcblk1/queue/iosched/slice_idle 0
+    write /sys/block/sda/queue/iosched/slice_idle 0
+    write /sys/block/sde/queue/iosched/slice_idle 0
+    write /sys/block/dm-0/queue/iosched/slice_idle 0
diff --git a/prebuilt/common/etc/init/bliss-radio.rc b/prebuilt/common/etc/init/bliss-radio.rc
new file mode 100644
index 0000000..22f1e64
--- /dev/null
+++ b/prebuilt/common/etc/init/bliss-radio.rc
@@ -0,0 +1,12 @@
+# Disable ril services if noril prop is set
+on property:ro.radio.noril=1
+    stop ims_rtp_daemon
+    stop imsdatadaemon
+    stop imsqmidaemon
+    stop imsrcsservice
+    stop ril-daemon
+    stop qmuxd
+    stop netmgrd
+
+on property:persist.radio.noril=1
+    setprop ro.radio.noril 1
diff --git a/prebuilt/common/etc/init/bliss-ssh.rc b/prebuilt/common/etc/init/bliss-ssh.rc
new file mode 100644
index 0000000..edf3863
--- /dev/null
+++ b/prebuilt/common/etc/init/bliss-ssh.rc
@@ -0,0 +1,3 @@
+on post-fs-data
+    mkdir /data/ssh 0750 root shell
+    mkdir /data/ssh/empty 0600 root shell
diff --git a/prebuilt/common/etc/init/bliss-system.rc b/prebuilt/common/etc/init/bliss-system.rc
new file mode 100644
index 0000000..c62d284
--- /dev/null
+++ b/prebuilt/common/etc/init/bliss-system.rc
@@ -0,0 +1,34 @@
+# Bliss core functionality
+on init
+    export ANDROID_CACHE /cache
+    export TERMINFO /system/etc/terminfo
+
+on post-fs-data
+    mkdir /cache/recovery 0770 system cache
+
+    # Run sysinit
+    start sysinit
+
+    # Change permissions on fsck log so it can be added to the dropbox
+    chown root log /dev/fscklogs/log
+    chmod 0640 /dev/fscklogs/log
+
+on boot
+    # Persistent properties (only created if persist exists)
+    mkdir /persist/properties 0770 system system
+
+    # allow system to communicate pocket state
+    chown system system /sys/kernel/pocket_judge/inpocket
+
+# sysinit (/system/etc/init.d)
+service sysinit /system/bin/sysinit
+    user root
+    oneshot
+    disabled
+
+# bugreport is triggered by holding down volume down, volume up and power
+service bugreport /system/bin/dumpstate -d -p -B -z \
+        -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
+    oneshot
+    disabled
+    keycodes 114 115 116
diff --git a/prebuilt/common/etc/init/bliss-tcp.rc b/prebuilt/common/etc/init/bliss-tcp.rc
new file mode 100644
index 0000000..19ef94a
--- /dev/null
+++ b/prebuilt/common/etc/init/bliss-tcp.rc
@@ -0,0 +1,10 @@
+on boot
+    # Define TCP delayed ack settings for WiFi & LTE
+    chown system system /sys/kernel/ipv4/tcp_delack_seg
+    chown system system /sys/kernel/ipv4/tcp_use_userconfig
+    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
diff --git a/prebuilt/common/etc/init.blissupdater.rc b/prebuilt/common/etc/init/bliss-updater.rc
similarity index 100%
rename from prebuilt/common/etc/init.blissupdater.rc
rename to prebuilt/common/etc/init/bliss-updater.rc