rootdir: init.rc: Restore all Linaro changes
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
diff --git a/rootdir/init.rc b/rootdir/init.rc
index 1e6ad67..d3cf1eb 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -7,6 +7,7 @@
import /init.usb.rc
import /init.${ro.hardware}.rc
import /init.trace.rc
+import /init.partitions.rc
on early-init
# Set init and its forked children's oom_adj.
@@ -20,6 +21,7 @@
# create mountpoints
mkdir /mnt 0775 root system
+ mkdir /mnt/sdcard 0000 system system
on init
@@ -52,6 +54,9 @@
mount cgroup none /acct cpuacct
mkdir /acct/uid
+# Backwards compat (no longer there in stock ICS or JB)
+ symlink /mnt/sdcard /sdcard
+
mkdir /system
mkdir /data 0771 system system
mkdir /cache 0770 system cache
@@ -131,17 +136,10 @@
# This is needed by any process that uses socket tagging.
chmod 0644 /dev/xt_qtaguid
-on fs
-# mount mtd partitions
- # Mount /system rw first to give the filesystem a chance to save a checkpoint
- mount yaffs2 mtd@system /system
- mount yaffs2 mtd@system /system ro remount
- mount yaffs2 mtd@userdata /data nosuid nodev
- mount yaffs2 mtd@cache /cache nosuid nodev
-
on post-fs
# once everything is setup, no need to modify /
- mount rootfs rootfs / ro remount
+ # Stock ICS/JB uses ro remount, let's not do that while debugging
+ mount rootfs rootfs / rw remount
# mount shared so changes propagate into child namespaces
mount rootfs rootfs / shared rec
mount tmpfs tmpfs /mnt/secure private rec
@@ -183,6 +181,9 @@
# We restorecon /data in case the userdata partition has been reset.
restorecon /data
+ # Set access for camera
+ chmod 0666 /dev/video0
+
# 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.
@@ -211,6 +212,7 @@
mkdir /data/misc/zoneinfo 0775 system system
mkdir /data/misc/vpn 0770 system vpn
mkdir /data/misc/systemkeys 0700 system system
+ mkdir /data/misc/vpn/profiles 0770 system system
# give system access to wpa_supplicant.conf for backup and restore
mkdir /data/misc/wifi 0770 wifi wifi
chmod 0660 /data/misc/wifi/wpa_supplicant.conf
@@ -229,8 +231,15 @@
mkdir /data/ssh 0750 root shell
mkdir /data/ssh/empty 0700 root root
+ # Setup paths used for socket communication with the dhcp daemon (dhcpd)
+ mkdir /data/misc/dhcp 0770 dhcp dhcp
+ chown dhcp dhcp /data/misc/dhcp
+
# create dalvik-cache, so as to enforce our permissions
mkdir /data/dalvik-cache 0771 system system
+ # fix permissions if dalvik-cache was there before
+ chown system system /data/dalvik-cache
+ chmod 0771 /data/dalvik-cache
# create resource-cache and double-check the perms
mkdir /data/resource-cache 0771 system system
@@ -240,6 +249,14 @@
# create the lost+found directories, so as to enforce our permissions
mkdir /data/lost+found 0770 root root
+ mkdir /cache/list+found 0770 root root
+
+ # Fix permissions in case lost+found existed before
+ chown root root /data/lost+found
+ chmod 0770 /data/lost+found
+ chown root root /cache/lost+found
+ chmod 0770 /cache/lost+found
+
# create directory for DRM plug-ins - give drm the read/write access to
# the following directory.
mkdir /data/drm 0770 drm drm
@@ -269,16 +286,56 @@
# set RLIMIT_NICE to allow priorities from 19 to -20
setrlimit 13 40 40
+# Define the oom_adj values for the classes of processes that can be
+# killed by the kernel. These are used in ActivityManagerService.
+ setprop ro.FOREGROUND_APP_ADJ 0
+ setprop ro.VISIBLE_APP_ADJ 1
+ setprop ro.PERCEPTIBLE_APP_ADJ 2
+ setprop ro.HEAVY_WEIGHT_APP_ADJ 3
+ setprop ro.SECONDARY_SERVER_ADJ 4
+ setprop ro.BACKUP_APP_ADJ 5
+ setprop ro.HOME_APP_ADJ 6
+ setprop ro.HIDDEN_APP_MIN_ADJ 7
+ setprop ro.EMPTY_APP_ADJ 15
+
+# Define the memory thresholds at which the above process classes will
+# be killed. These numbers are in pages (4k).
+ setprop ro.FOREGROUND_APP_MEM 2048
+ setprop ro.VISIBLE_APP_MEM 3072
+ setprop ro.PERCEPTIBLE_APP_MEM 4096
+ setprop ro.HEAVY_WEIGHT_APP_MEM 4096
+ setprop ro.SECONDARY_SERVER_MEM 6144
+ setprop ro.BACKUP_APP_MEM 6144
+ setprop ro.HOME_APP_MEM 6144
+ setprop ro.HIDDEN_APP_MEM 7168
+ setprop ro.EMPTY_APP_MEM 8192
+
+# Write value must be consistent with the above properties.
+# Note that the driver ony supports 6 slots so we have combined some of
+# the classes into the same memory level; the associated processes of higher
+# classes will still be killed first.
+ write /sys/module/lowmemorykiller/parameters/adj 0,1,2,4,7,15
+
# 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
+ write /sys/module/lowmemorykiller/parameters/minfree 2048,3072,4096,6144,7168,8192
chown root system /sys/module/lowmemorykiller/parameters/adj
chmod 0664 /sys/module/lowmemorykiller/parameters/adj
chown root system /sys/module/lowmemorykiller/parameters/minfree
chmod 0664 /sys/module/lowmemorykiller/parameters/minfree
+ # userspace configuration for adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/functions adb,acm
+ write /sys/class/android_usb/android0/f_acm/instances 2
+ write /sys/class/android_usb/android0/enable 1
+
+ # Set init forked children's oom_adj
+ write /proc/1/oom_score_adj -16
+
# Tweak background writeout
write /proc/sys/vm/dirty_expire_centisecs 200
write /proc/sys/vm/dirty_background_ratio 5
@@ -417,8 +474,8 @@
service console /system/bin/sh
class core
console
- disabled
- user shell
+ #disabled
+ #user shell
group log
on property:ro.debuggable=1
@@ -431,6 +488,19 @@
disabled
seclabel u:r:adbd:s0
+# Let's also start adb based on persist.service.adb.enable
+on property:persist.service.adb.enable=1
+ start adbd
+
+on property:persist.service.adb.enable=0
+ stop adbd
+
+service dhcpcd_eth0 /system/bin/dhcpcd -dABKL
+ class main
+ group dhcp
+ disabled
+ oneshot
+
# adbd on at boot in emulator
on property:ro.kernel.qemu=1
start adbd