This introduces some new buckets that will be used by the activity manager, and adjusts the default levels to match what we had been setting for Droid. It turns out Passion has been using the old levels, which makes no sense for how much memory it has. Also it is a problem with these definitions spreading to other projects for different devices, so I am going to update the defaults to be appropriate for our newer devices, and put here a file to tune them down for something like the sapphire. Change-Id: Ia4f33c4c3b94aeb3656f60b9222072a1d11e9e68
393 lines
13 KiB
Text
393 lines
13 KiB
Text
on early-init
|
|
start ueventd
|
|
|
|
on init
|
|
|
|
sysclktz 0
|
|
|
|
loglevel 3
|
|
|
|
# setup the global environment
|
|
export PATH /sbin:/system/sbin:/system/bin:/system/xbin
|
|
export LD_LIBRARY_PATH /system/lib
|
|
export ANDROID_BOOTLOGO 1
|
|
export ANDROID_ROOT /system
|
|
export ANDROID_ASSETS /system/app
|
|
export ANDROID_DATA /data
|
|
export EXTERNAL_STORAGE /mnt/sdcard
|
|
export ASEC_MOUNTPOINT /mnt/asec
|
|
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar
|
|
|
|
# Backward compatibility
|
|
symlink /system/etc /etc
|
|
symlink /sys/kernel/debug /d
|
|
|
|
# create mountpoints
|
|
mkdir /mnt 0775 root system
|
|
mkdir /mnt/sdcard 0000 system system
|
|
|
|
# Create cgroup mount point for cpu accounting
|
|
mkdir /acct
|
|
mount cgroup none /acct cpuacct
|
|
mkdir /acct/uid
|
|
|
|
# Backwards Compat - XXX: Going away in G*
|
|
symlink /mnt/sdcard /sdcard
|
|
|
|
mkdir /system
|
|
mkdir /data 0771 system system
|
|
mkdir /cache 0770 system cache
|
|
mkdir /config 0500 root root
|
|
|
|
# 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
|
|
|
|
mount rootfs rootfs / ro remount
|
|
|
|
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
|
|
|
|
# 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 0777 /dev/cpuctl/tasks
|
|
write /dev/cpuctl/cpu.shares 1024
|
|
|
|
mkdir /dev/cpuctl/fg_boost
|
|
chown system system /dev/cpuctl/fg_boost/tasks
|
|
chmod 0777 /dev/cpuctl/fg_boost/tasks
|
|
write /dev/cpuctl/fg_boost/cpu.shares 1024
|
|
|
|
mkdir /dev/cpuctl/bg_non_interactive
|
|
chown system system /dev/cpuctl/bg_non_interactive/tasks
|
|
chmod 0777 /dev/cpuctl/bg_non_interactive/tasks
|
|
# 5.0 %
|
|
write /dev/cpuctl/bg_non_interactive/cpu.shares 52
|
|
|
|
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
|
|
# We chown/chmod /data again so because mount is run as root + defaults
|
|
chown system system /data
|
|
chmod 0771 /data
|
|
|
|
# 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
|
|
chown root log /data/dontpanic
|
|
chmod 0750 /data/dontpanic
|
|
|
|
# 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
|
|
|
|
# Same reason as /data above
|
|
chown system cache /cache
|
|
chmod 0770 /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
|
|
|
|
#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
|
|
|
|
# create basic filesystem structure
|
|
mkdir /data/misc 01771 system misc
|
|
mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
|
|
mkdir /data/misc/bluetooth 0770 system system
|
|
mkdir /data/misc/keystore 0700 keystore keystore
|
|
mkdir /data/misc/vpn 0770 system system
|
|
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 0770 /data/misc/wifi
|
|
chmod 0660 /data/misc/wifi/wpa_supplicant.conf
|
|
mkdir /data/local 0771 shell shell
|
|
mkdir /data/local/tmp 0771 shell shell
|
|
mkdir /data/data 0771 system system
|
|
mkdir /data/app-private 0771 system system
|
|
mkdir /data/app 0771 system system
|
|
mkdir /data/property 0700 root root
|
|
|
|
# create dalvik-cache and double-check the perms
|
|
mkdir /data/dalvik-cache 0771 system system
|
|
chown system system /data/dalvik-cache
|
|
chmod 0771 /data/dalvik-cache
|
|
|
|
# create the lost+found directories, so as to enforce our permissions
|
|
mkdir /data/lost+found 0770
|
|
mkdir /cache/lost+found 0770
|
|
|
|
# double check the perms, in case lost+found already exists, and set owner
|
|
chown root root /data/lost+found
|
|
chmod 0770 /data/lost+found
|
|
chown root root /cache/lost+found
|
|
chmod 0770 /cache/lost+found
|
|
|
|
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
|
|
|
|
# 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 only 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
|
|
|
|
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
|
|
|
|
# Set init its forked children's oom_adj.
|
|
write /proc/1/oom_adj -16
|
|
|
|
# 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 radio system /sys/power/state
|
|
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/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/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/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 TCP buffer sizes for various networks
|
|
# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
|
|
setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
|
|
setprop net.tcp.buffersize.wifi 4095,87380,110208,4096,16384,110208
|
|
setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
|
|
setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
|
|
setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
|
|
|
|
class_start default
|
|
|
|
## Daemon processes to be run by init.
|
|
##
|
|
service console /system/bin/sh
|
|
console
|
|
|
|
service ueventd /sbin/ueventd
|
|
critical
|
|
|
|
# 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
|
|
|
|
service servicemanager /system/bin/servicemanager
|
|
user system
|
|
critical
|
|
onrestart restart zygote
|
|
onrestart restart media
|
|
|
|
service vold /system/bin/vold
|
|
socket vold stream 0660 root mount
|
|
ioprio be 2
|
|
|
|
service netd /system/bin/netd
|
|
socket netd stream 0660 root system
|
|
|
|
service debuggerd /system/bin/debuggerd
|
|
|
|
service ril-daemon /system/bin/rild
|
|
socket rild stream 660 root radio
|
|
socket rild-debug stream 660 radio system
|
|
user root
|
|
group radio cache inet misc audio
|
|
|
|
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
|
|
socket zygote stream 666
|
|
onrestart write /sys/android_power/request_state wake
|
|
onrestart write /sys/power/state on
|
|
onrestart restart media
|
|
|
|
service media /system/bin/mediaserver
|
|
user media
|
|
group system audio camera graphics inet net_bt net_bt_admin net_raw
|
|
ioprio rt 4
|
|
|
|
service bootanim /system/bin/bootanimation
|
|
user graphics
|
|
group graphics
|
|
disabled
|
|
oneshot
|
|
|
|
service dbus /system/bin/dbus-daemon --system --nofork
|
|
socket dbus stream 660 bluetooth bluetooth
|
|
user bluetooth
|
|
group bluetooth net_bt_admin
|
|
|
|
service bluetoothd /system/bin/bluetoothd -n
|
|
socket bluetooth stream 660 bluetooth bluetooth
|
|
socket dbus_bluetooth stream 660 bluetooth bluetooth
|
|
# init.rc does not yet support applying capabilities, so run as root and
|
|
# let bluetoothd drop uid to bluetooth with the right linux capabilities
|
|
group bluetooth net_bt_admin misc
|
|
disabled
|
|
|
|
service hfag /system/bin/sdptool add --channel=10 HFAG
|
|
user bluetooth
|
|
group bluetooth net_bt_admin
|
|
disabled
|
|
oneshot
|
|
|
|
service hsag /system/bin/sdptool add --channel=11 HSAG
|
|
user bluetooth
|
|
group bluetooth net_bt_admin
|
|
disabled
|
|
oneshot
|
|
|
|
service opush /system/bin/sdptool add --channel=12 OPUSH
|
|
user bluetooth
|
|
group bluetooth net_bt_admin
|
|
disabled
|
|
oneshot
|
|
|
|
service pbap /system/bin/sdptool add --channel=19 PBAP
|
|
user bluetooth
|
|
group bluetooth net_bt_admin
|
|
disabled
|
|
oneshot
|
|
|
|
service installd /system/bin/installd
|
|
socket installd stream 600 system system
|
|
|
|
service flash_recovery /system/etc/install-recovery.sh
|
|
oneshot
|
|
|
|
service racoon /system/bin/racoon
|
|
socket racoon stream 600 system system
|
|
# racoon will setuid to vpn after getting necessary resources.
|
|
group net_admin
|
|
disabled
|
|
oneshot
|
|
|
|
service mtpd /system/bin/mtpd
|
|
socket mtpd stream 600 system system
|
|
user vpn
|
|
group vpn net_admin net_raw
|
|
disabled
|
|
oneshot
|
|
|
|
service keystore /system/bin/keystore /data/misc/keystore
|
|
user keystore
|
|
group keystore
|
|
socket keystore stream 666
|
|
|
|
service dumpstate /system/bin/dumpstate -s
|
|
socket dumpstate stream 0660 shell log
|
|
disabled
|
|
oneshot
|