summaryrefslogtreecommitdiff
path: root/rootdir/init.rc
diff options
context:
space:
mode:
Diffstat (limited to 'rootdir/init.rc')
-rw-r--r--rootdir/init.rc179
1 files changed, 62 insertions, 117 deletions
diff --git a/rootdir/init.rc b/rootdir/init.rc
index cd71aa8aa..451595092 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -78,8 +78,8 @@ on early-init
mkdir /dev/boringssl 0755 root root
mkdir /dev/boringssl/selftest 0755 root root
- # Mount tracefs (with GID=AID_READTRACEFS)
- mount tracefs tracefs /sys/kernel/tracing gid=3012
+ # Mount tracefs
+ mount tracefs tracefs /sys/kernel/tracing
# create sys dirctory
mkdir /dev/sys 0755 system system
@@ -97,18 +97,22 @@ on property:apexd.status=ready && property:ro.product.cpu.abilist64=*
exec_start boringssl_self_test_apex64
service boringssl_self_test32 /system/bin/boringssl_self_test32
+ setenv BORINGSSL_SELF_TEST_CREATE_FLAG true # Any nonempty value counts as true
reboot_on_failure reboot,boringssl-self-check-failed
stdio_to_kmsg
service boringssl_self_test64 /system/bin/boringssl_self_test64
+ setenv BORINGSSL_SELF_TEST_CREATE_FLAG true # Any nonempty value counts as true
reboot_on_failure reboot,boringssl-self-check-failed
stdio_to_kmsg
service boringssl_self_test_apex32 /apex/com.android.conscrypt/bin/boringssl_self_test32
+ setenv BORINGSSL_SELF_TEST_CREATE_FLAG true # Any nonempty value counts as true
reboot_on_failure reboot,boringssl-self-check-failed
stdio_to_kmsg
service boringssl_self_test_apex64 /apex/com.android.conscrypt/bin/boringssl_self_test64
+ setenv BORINGSSL_SELF_TEST_CREATE_FLAG true # Any nonempty value counts as true
reboot_on_failure reboot,boringssl-self-check-failed
stdio_to_kmsg
@@ -138,21 +142,11 @@ on init
chown system system /dev/stune/background/tasks
chown system system /dev/stune/top-app/tasks
chown system system /dev/stune/rt/tasks
- chown system system /dev/stune/cgroup.procs
- chown system system /dev/stune/foreground/cgroup.procs
- chown system system /dev/stune/background/cgroup.procs
- chown system system /dev/stune/top-app/cgroup.procs
- chown system system /dev/stune/rt/cgroup.procs
chmod 0664 /dev/stune/tasks
chmod 0664 /dev/stune/foreground/tasks
chmod 0664 /dev/stune/background/tasks
chmod 0664 /dev/stune/top-app/tasks
chmod 0664 /dev/stune/rt/tasks
- chmod 0664 /dev/stune/cgroup.procs
- chmod 0664 /dev/stune/foreground/cgroup.procs
- chmod 0664 /dev/stune/background/cgroup.procs
- chmod 0664 /dev/stune/top-app/cgroup.procs
- chmod 0664 /dev/stune/rt/cgroup.procs
# cpuctl hierarchy for devices using utilclamp
mkdir /dev/cpuctl/foreground
@@ -161,7 +155,6 @@ on init
mkdir /dev/cpuctl/rt
mkdir /dev/cpuctl/system
mkdir /dev/cpuctl/system-background
- mkdir /dev/cpuctl/dex2oat
chown system system /dev/cpuctl
chown system system /dev/cpuctl/foreground
chown system system /dev/cpuctl/background
@@ -169,7 +162,6 @@ on init
chown system system /dev/cpuctl/rt
chown system system /dev/cpuctl/system
chown system system /dev/cpuctl/system-background
- chown system system /dev/cpuctl/dex2oat
chown system system /dev/cpuctl/tasks
chown system system /dev/cpuctl/foreground/tasks
chown system system /dev/cpuctl/background/tasks
@@ -177,15 +169,6 @@ on init
chown system system /dev/cpuctl/rt/tasks
chown system system /dev/cpuctl/system/tasks
chown system system /dev/cpuctl/system-background/tasks
- chown system system /dev/cpuctl/dex2oat/tasks
- chown system system /dev/cpuctl/cgroup.procs
- chown system system /dev/cpuctl/foreground/cgroup.procs
- chown system system /dev/cpuctl/background/cgroup.procs
- chown system system /dev/cpuctl/top-app/cgroup.procs
- chown system system /dev/cpuctl/rt/cgroup.procs
- chown system system /dev/cpuctl/system/cgroup.procs
- chown system system /dev/cpuctl/system-background/cgroup.procs
- chown system system /dev/cpuctl/dex2oat/cgroup.procs
chmod 0664 /dev/cpuctl/tasks
chmod 0664 /dev/cpuctl/foreground/tasks
chmod 0664 /dev/cpuctl/background/tasks
@@ -193,23 +176,12 @@ on init
chmod 0664 /dev/cpuctl/rt/tasks
chmod 0664 /dev/cpuctl/system/tasks
chmod 0664 /dev/cpuctl/system-background/tasks
- chmod 0664 /dev/cpuctl/dex2oat/tasks
- chmod 0664 /dev/cpuctl/cgroup.procs
- chmod 0664 /dev/cpuctl/foreground/cgroup.procs
- chmod 0664 /dev/cpuctl/background/cgroup.procs
- chmod 0664 /dev/cpuctl/top-app/cgroup.procs
- chmod 0664 /dev/cpuctl/rt/cgroup.procs
- chmod 0664 /dev/cpuctl/system/cgroup.procs
- chmod 0664 /dev/cpuctl/system-background/cgroup.procs
- chmod 0664 /dev/cpuctl/dex2oat/cgroup.procs
# Create a cpu group for NNAPI HAL processes
mkdir /dev/cpuctl/nnapi-hal
chown system system /dev/cpuctl/nnapi-hal
chown system system /dev/cpuctl/nnapi-hal/tasks
- chown system system /dev/cpuctl/nnapi-hal/cgroup.procs
chmod 0664 /dev/cpuctl/nnapi-hal/tasks
- chmod 0664 /dev/cpuctl/nnapi-hal/cgroup.procs
write /dev/cpuctl/nnapi-hal/cpu.uclamp.min 1
write /dev/cpuctl/nnapi-hal/cpu.uclamp.latency_sensitive 1
@@ -217,25 +189,19 @@ on init
mkdir /dev/cpuctl/camera-daemon
chown system system /dev/cpuctl/camera-daemon
chown system system /dev/cpuctl/camera-daemon/tasks
- chown system system /dev/cpuctl/camera-daemon/cgroup.procs
chmod 0664 /dev/cpuctl/camera-daemon/tasks
- chmod 0664 /dev/cpuctl/camera-daemon/cgroup.procs
# Create an stune group for camera-specific processes
mkdir /dev/stune/camera-daemon
chown system system /dev/stune/camera-daemon
chown system system /dev/stune/camera-daemon/tasks
- chown system system /dev/stune/camera-daemon/cgroup.procs
chmod 0664 /dev/stune/camera-daemon/tasks
- chmod 0664 /dev/stune/camera-daemon/cgroup.procs
# Create an stune group for NNAPI HAL processes
mkdir /dev/stune/nnapi-hal
chown system system /dev/stune/nnapi-hal
chown system system /dev/stune/nnapi-hal/tasks
- chown system system /dev/stune/nnapi-hal/cgroup.procs
chmod 0664 /dev/stune/nnapi-hal/tasks
- chmod 0664 /dev/stune/nnapi-hal/cgroup.procs
write /dev/stune/nnapi-hal/schedtune.boost 1
write /dev/stune/nnapi-hal/schedtune.prefer_idle 1
@@ -247,12 +213,8 @@ on init
chown system system /dev/blkio/background
chown system system /dev/blkio/tasks
chown system system /dev/blkio/background/tasks
- chown system system /dev/blkio/cgroup.procs
- chown system system /dev/blkio/background/cgroup.procs
chmod 0664 /dev/blkio/tasks
chmod 0664 /dev/blkio/background/tasks
- chmod 0664 /dev/blkio/cgroup.procs
- chmod 0664 /dev/blkio/background/cgroup.procs
write /dev/blkio/blkio.weight 1000
write /dev/blkio/background/blkio.weight 200
write /dev/blkio/background/blkio.bfq.weight 10
@@ -401,13 +363,6 @@ on init
chown system system /dev/cpuset/top-app/tasks
chown system system /dev/cpuset/restricted/tasks
chown system system /dev/cpuset/camera-daemon/tasks
- chown system system /dev/cpuset/cgroup.procs
- chown system system /dev/cpuset/foreground/cgroup.procs
- chown system system /dev/cpuset/background/cgroup.procs
- chown system system /dev/cpuset/system-background/cgroup.procs
- chown system system /dev/cpuset/top-app/cgroup.procs
- chown system system /dev/cpuset/restricted/cgroup.procs
- chown system system /dev/cpuset/camera-daemon/cgroup.procs
# set system-background to 0775 so SurfaceFlinger can touch it
chmod 0775 /dev/cpuset/system-background
@@ -419,13 +374,6 @@ on init
chmod 0664 /dev/cpuset/restricted/tasks
chmod 0664 /dev/cpuset/tasks
chmod 0664 /dev/cpuset/camera-daemon/tasks
- chmod 0664 /dev/cpuset/foreground/cgroup.procs
- chmod 0664 /dev/cpuset/background/cgroup.procs
- chmod 0664 /dev/cpuset/system-background/cgroup.procs
- chmod 0664 /dev/cpuset/top-app/cgroup.procs
- chmod 0664 /dev/cpuset/restricted/cgroup.procs
- chmod 0664 /dev/cpuset/cgroup.procs
- chmod 0664 /dev/cpuset/camera-daemon/cgroup.procs
# make the PSI monitor accessible to others
chown system system /proc/pressure/memory
@@ -490,7 +438,6 @@ on init
# Start logd before any other services run to ensure we capture all of their logs.
start logd
# Start lmkd before any other services run so that it can register them
- write /proc/sys/vm/watermark_boost_factor 0
chown root system /sys/module/lowmemorykiller/parameters/adj
chmod 0664 /sys/module/lowmemorykiller/parameters/adj
chown root system /sys/module/lowmemorykiller/parameters/minfree
@@ -508,6 +455,11 @@ on property:sys.boot_from_charger_mode=1
class_stop charger
trigger late-init
+on load_persist_props_action
+ load_persist_props
+ start logd
+ start logd-reinit
+
# Indicate to fw loaders that the relevant mounts are up.
on firmware_mounts_complete
rm /dev/.booting
@@ -534,6 +486,9 @@ on late-init
# /data, which in turn can only be loaded when system properties are present.
trigger post-fs-data
+ # Load persist properties and override properties (if enabled) from /data.
+ trigger load_persist_props_action
+
# Should be before netd, but after apex, properties and logging is available.
trigger load_bpf_programs
@@ -623,7 +578,6 @@ on post-fs
restorecon_recursive /metadata/apex
mkdir /metadata/staged-install 0770 root system
- mkdir /metadata/sepolicy 0700 root root
on late-fs
# Ensure that tracefs has the correct permissions.
# This does not work correctly if it is called in post-fs.
@@ -717,18 +671,6 @@ on post-fs-data
# use of MAX_BOOT_LEVEL keys.
exec - system system -- /system/bin/vdc keymaster earlyBootEnded
- # Multi-installed APEXes are selected using persist props.
- # Load persist properties and override properties (if enabled) from /data,
- # before starting apexd.
- load_persist_props
- start logd
- start logd-reinit
- # Some existing vendor rc files use 'on load_persist_props_action' to know
- # when persist props are ready. These are difficult to change due to GRF,
- # so continue triggering this action here even though props are already loaded
- # by the 'load_persist_props' call above.
- trigger load_persist_props_action
-
# /data/apex is now available. Start apexd to scan and activate APEXes.
#
# To handle userspace reboots as well as devices that use FDE, make sure
@@ -820,15 +762,7 @@ on post-fs-data
# directory used for on-device refresh metrics file.
mkdir /data/misc/odrefresh 0777 system system
# directory used for on-device signing key blob
- mkdir /data/misc/odsign 0710 root system
- # directory used for odsign metrics
- mkdir /data/misc/odsign/metrics 0770 root system
-
- # Directory for VirtualizationService temporary image files.
- # Delete any stale files owned by the old virtualizationservice uid (b/230056726).
- chmod 0770 /data/misc/virtualizationservice
- exec - virtualizationservice system -- /bin/rm -rf /data/misc/virtualizationservice
- mkdir /data/misc/virtualizationservice 0770 system system
+ mkdir /data/misc/odsign 0700 root root
mkdir /data/preloads 0775 system system encryption=None
@@ -852,13 +786,11 @@ on post-fs-data
# Create directories to push tests to for each linker namespace.
# Create the subdirectories in case the first test is run as root
# so it doesn't end up owned by root.
- # Set directories to be executable by any process so that debuggerd,
- # aka crash_dump, can read any executables/shared libraries.
- mkdir /data/local/tests 0701 shell shell
- mkdir /data/local/tests/product 0701 shell shell
- mkdir /data/local/tests/system 0701 shell shell
- mkdir /data/local/tests/unrestricted 0701 shell shell
- mkdir /data/local/tests/vendor 0701 shell shell
+ mkdir /data/local/tests 0700 shell shell
+ mkdir /data/local/tests/product 0700 shell shell
+ mkdir /data/local/tests/system 0700 shell shell
+ mkdir /data/local/tests/unrestricted 0700 shell shell
+ mkdir /data/local/tests/vendor 0700 shell shell
# create dalvik-cache, so as to enforce our permissions
mkdir /data/dalvik-cache 0771 root root encryption=Require
@@ -968,9 +900,6 @@ on post-fs-data
exec - media_rw media_rw -- /system/bin/chattr +F /data/media
mkdir /data/media/obb 0770 media_rw media_rw encryption=Attempt
- # Create directories for boot animation.
- mkdir /data/bootanim 0755 system system encryption=DeleteIfNecessary
-
exec_start derive_sdk
init_user0
@@ -1010,6 +939,12 @@ on post-fs-data
# module, delete if not.
exec - system system -- /system/bin/tzdatacheck /apex/com.android.tzdata/etc/tz /data/misc/zoneinfo
+ # If there is no post-fs-data action in the init.<device>.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
+
# sys.memfd_use set to false by default, which keeps it disabled
# until it is confirmed that apps and vendor processes don't make
# IOCTLs on ashmem fds any more.
@@ -1079,13 +1014,11 @@ on boot
# to access F2FS sysfs on dm-<num> directly
mkdir /dev/sys/fs/by-name 0755 system system
- symlink /sys/fs/f2fs/${dev.mnt.dev.data} /dev/sys/fs/by-name/userdata
+ symlink /sys/fs/f2fs/${dev.mnt.blk.data} /dev/sys/fs/by-name/userdata
- # dev.mnt.dev.data=dm-N, dev.mnt.blk.data=sdaN/mmcblk0pN, dev.mnt.rootdisk.data=sda/mmcblk0, or
- # dev.mnt.dev.data=sdaN/mmcblk0pN, dev.mnt.blk.data=sdaN/mmcblk0pN, dev.mnt.rootdisk.data=sda/mmcblk0
+ # to access dm-<num> sysfs
mkdir /dev/sys/block/by-name 0755 system system
- symlink /sys/class/block/${dev.mnt.dev.data} /dev/sys/block/by-name/userdata
- symlink /sys/class/block/${dev.mnt.rootdisk.data} /dev/sys/block/by-name/rootdisk
+ symlink /sys/devices/virtual/block/${dev.mnt.blk.data} /dev/sys/block/by-name/userdata
# F2FS tuning. Set cp_interval larger than dirty_expire_centisecs, 30 secs,
# to avoid power consumption when system becomes mostly idle. Be careful
@@ -1095,14 +1028,10 @@ on boot
write /dev/sys/fs/by-name/userdata/gc_urgent_sleep_time 50
write /dev/sys/fs/by-name/userdata/iostat_enable 1
- # set readahead multiplier for POSIX_FADV_SEQUENTIAL files
- write /dev/sys/fs/by-name/userdata/seq_file_ra_mul 16
-
# limit discard size to 128MB in order to avoid long IO latency
# for filesystem tuning first (dm or sda)
- # this requires enabling selinux entry for sda/mmcblk0 in vendor side
+ # Note that, if dm-<num> is used, sda/mmcblk0 should be tuned in vendor/init.rc
write /dev/sys/block/by-name/userdata/queue/discard_max_bytes 134217728
- write /dev/sys/block/by-name/rootdisk/queue/discard_max_bytes 134217728
# Permissions for System Server and daemons.
chown system system /sys/power/autosleep
@@ -1163,9 +1092,6 @@ on boot
# Define default initial receive window size in segments.
setprop net.tcp_def_init_rwnd 60
- # Update dm-verity state and set partition.*.verified properties.
- verity_update_state
-
# Start standard binderized HAL daemons
class_start hal
@@ -1181,6 +1107,37 @@ on property:sys.init_log_level=*
on charger
class_start charger
+on property:vold.decrypt=trigger_load_persist_props
+ load_persist_props
+ start logd
+ start logd-reinit
+
+on property:vold.decrypt=trigger_post_fs_data
+ trigger post-fs-data
+ trigger zygote-start
+
+on property:vold.decrypt=trigger_restart_min_framework
+ # A/B update verifier that marks a successful boot.
+ exec_start update_verifier
+ class_start main
+
+on property:vold.decrypt=trigger_restart_framework
+ # A/B update verifier that marks a successful boot.
+ exec_start update_verifier
+ class_start_post_data hal
+ class_start_post_data core
+ class_start main
+ class_start late_start
+ setprop service.bootanim.exit 0
+ setprop service.bootanim.progress 0
+ start bootanim
+
+on property:vold.decrypt=trigger_shutdown_framework
+ class_reset late_start
+ class_reset main
+ class_reset_post_data core
+ class_reset_post_data hal
+
on property:sys.boot_completed=1
bootchart stop
# Setup per_boot directory so other .rc could start to use it on boot_completed
@@ -1191,7 +1148,7 @@ on property:sys.boot_completed=1
# and chown/chmod does not work for /proc/sys/ entries.
# So proxy writes through init.
on property:sys.sysctl.extra_free_kbytes=*
- exec -- /system/bin/extra_free_kbytes.sh ${sys.sysctl.extra_free_kbytes}
+ write /proc/sys/vm/extra_free_kbytes ${sys.sysctl.extra_free_kbytes}
# Allow users to drop caches
on property:perf.drop_caches=3
@@ -1308,15 +1265,3 @@ on userspace-reboot-resume
on property:sys.boot_completed=1 && property:sys.init.userspace_reboot.in_progress=1
setprop sys.init.userspace_reboot.in_progress ""
-
-# Multi-Gen LRU Experiment
-on property:persist.device_config.mglru_native.lru_gen_config=none
- write /sys/kernel/mm/lru_gen/enabled 0
-on property:persist.device_config.mglru_native.lru_gen_config=core
- write /sys/kernel/mm/lru_gen/enabled 1
-on property:persist.device_config.mglru_native.lru_gen_config=core_and_mm_walk
- write /sys/kernel/mm/lru_gen/enabled 3
-on property:persist.device_config.mglru_native.lru_gen_config=core_and_nonleaf_young
- write /sys/kernel/mm/lru_gen/enabled 5
-on property:persist.device_config.mglru_native.lru_gen_config=all
- write /sys/kernel/mm/lru_gen/enabled 7