Advertisement
Thjap_dev

SO-01E init.rc

Nov 21st, 2012
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 18.81 KB | None | 0 0
  1. on early-init
  2.     # Set init and its forked children's oom_adj.
  3.     write /proc/1/oom_adj -16
  4.  
  5.     start ueventd
  6.  
  7. # create mountpoints
  8.     mkdir /mnt 0775 root system
  9.  
  10. on init
  11.  
  12. sysclktz 0
  13.  
  14. loglevel 3
  15.  
  16. # setup the global environment
  17.     export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
  18.     export LD_LIBRARY_PATH /vendor/lib:/system/lib
  19.     export ANDROID_BOOTLOGO 1
  20.     export ANDROID_ROOT /system
  21.     export ANDROID_ASSETS /system/app
  22.     export ANDROID_DATA /data
  23.     export EXTERNAL_STORAGE /mnt/sdcard
  24.     export ASEC_MOUNTPOINT /mnt/asec
  25.     export LOOP_MOUNTPOINT /mnt/obb
  26.     export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework_ext.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/filterfw.jar
  27.  
  28. # Backward compatibility
  29.     symlink /system/etc /etc
  30.     symlink /sys/kernel/debug /d
  31.  
  32. # Right now vendor lives on the same filesystem as system,
  33. # but someday that may change.
  34.     symlink /system/vendor /vendor
  35.  
  36. # create mountpoints
  37.     mkdir /mnt 0775 root system
  38.     mkdir /mnt/sdcard 0000 system system
  39.  
  40. # create USB host bus directory here so that libusbhost
  41. # can start monitoring.
  42.     mkdir /dev/bus 0755 root root
  43.     mkdir /dev/bus/usb 0755 root root
  44.  
  45. # Create cgroup mount point for cpu accounting
  46.     mkdir /acct
  47.     mount cgroup none /acct cpuacct
  48.     mkdir /acct/uid
  49.  
  50. # Backwards Compat - XXX: Going away in G*
  51.     symlink /mnt/sdcard /sdcard
  52.  
  53.     mkdir /system
  54.     mkdir /data 0771 system system
  55.     mkdir /cache 0770 system cache
  56.     mkdir /config 0500 root root
  57.  
  58.     # Directory for putting things only root should see.
  59.     mkdir /mnt/secure 0700 root root
  60.  
  61.     # Directory for staging bindmounts
  62.     mkdir /mnt/secure/staging 0700 root root
  63.  
  64.     # Directory-target for where the secure container
  65.     # imagefile directory will be bind-mounted
  66.     mkdir /mnt/secure/asec  0700 root root
  67.  
  68.     # Secure container public mount points.
  69.     mkdir /mnt/asec  0700 root system
  70.     mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000
  71.  
  72.     # Filesystem image public mount points.
  73.     mkdir /mnt/obb 0700 root system
  74.     mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000
  75.  
  76.     write /proc/sys/kernel/panic_on_oops 1
  77.     write /proc/sys/kernel/hung_task_timeout_secs 0
  78.     write /proc/cpu/alignment 4
  79.     write /proc/sys/kernel/sched_latency_ns 10000000
  80.     write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
  81.     write /proc/sys/kernel/sched_compat_yield 1
  82.     write /proc/sys/kernel/sched_child_runs_first 0
  83.     write /proc/sys/kernel/randomize_va_space 2
  84.  
  85. # Create cgroup mount points for process groups
  86.     mkdir /dev/cpuctl
  87.     mount cgroup none /dev/cpuctl cpu
  88.     chown system system /dev/cpuctl
  89.     chown system system /dev/cpuctl/tasks
  90.     chmod 0777 /dev/cpuctl/tasks
  91.     write /dev/cpuctl/cpu.shares 1024
  92.  
  93.     mkdir /dev/cpuctl/fg_boost
  94.     chown system system /dev/cpuctl/fg_boost/tasks
  95.     chmod 0777 /dev/cpuctl/fg_boost/tasks
  96.     write /dev/cpuctl/fg_boost/cpu.shares 1024
  97.  
  98.     mkdir /dev/cpuctl/bg_non_interactive
  99.     chown system system /dev/cpuctl/bg_non_interactive/tasks
  100.     chmod 0777 /dev/cpuctl/bg_non_interactive/tasks
  101.     # 5.0 %
  102.     write /dev/cpuctl/bg_non_interactive/cpu.shares 52
  103.  
  104. # Allow everybody to read the xt_qtaguid resource tracking misc dev.
  105. # This is needed by any process that uses socket tagging.
  106.     chmod 0644 /dev/xt_qtaguid
  107.  
  108. on fs
  109. # mount mtd partitions
  110.     # Mount /system rw first to give the filesystem a chance to save a checkpoint
  111.     mount yaffs2 mtd@system /system
  112.     mount yaffs2 mtd@system /system ro remount
  113.     mount yaffs2 mtd@userdata /data nosuid nodev
  114.     mount yaffs2 mtd@persist /persist nosuid nodev
  115.     mount yaffs2 mtd@cache /cache nosuid nodev
  116.     mount yaffs2 mtd@persist /persist nosuid nodev
  117.  
  118. on emmc-fs
  119. # mount mmc partitions
  120.     wait /dev/block/mmcblk0p12
  121.     mount ext4 /dev/block/mmcblk0p12 /system rw barrier=1
  122.     wait /dev/block/mmcblk0p13
  123.     exec /system/bin/e2fsck -p /dev/block/mmcblk0p13
  124.     mount ext4 /dev/block/mmcblk0p13 /data nosuid nodev barrier=1 noauto_da_alloc
  125.     mount ext4 /dev/block/mmcblk0p14 /persist nosuid nodev barrier=1
  126.     mount ext4 /dev/block/mmcblk0p15 /cache nosuid nodev barrier=1
  127.  
  128. on post-fs
  129.     # once everything is setup, no need to modify /
  130.     mount rootfs rootfs / ro remount
  131.  
  132.     # We chown/chmod /cache again so because mount is run as root + defaults
  133.     chown system cache /cache
  134.     chmod 0770 /cache
  135.  
  136.     # This may have been created by the recovery system with odd permissions
  137.     mkdir /cache/recovery
  138.     chown system cache /cache/recovery
  139.     chmod 0770 /cache/recovery
  140.  
  141.     #change permissions on vmallocinfo so we can grab it from bugreports
  142.     chown root log /proc/vmallocinfo
  143.     chmod 0440 /proc/vmallocinfo
  144.  
  145.     #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks
  146.     chown root system /proc/kmsg
  147.     chmod 0440 /proc/kmsg
  148.     chown root system /proc/sysrq-trigger
  149.     chmod 0220 /proc/sysrq-trigger
  150.  
  151.     # create the lost+found directories, so as to enforce our permissions
  152.     mkdir /cache/lost+found 0770 root root
  153.  
  154. on post-fs-data
  155.     # We chown/chmod /data again so because mount is run as root + defaults
  156.     chown system system /data
  157.     chmod 0771 /data
  158.  
  159.     # Create dump dir and collect dumps.
  160.     # Do this before we mount cache so eventually we can use cache for
  161.     # storing dumps on platforms which do not have a dedicated dump partition.
  162.     mkdir /data/dontpanic 0750 root log
  163.  
  164.     # Collect apanic data, free resources and re-arm trigger
  165.     copy /proc/apanic_console /data/dontpanic/apanic_console
  166.     chown root log /data/dontpanic/apanic_console
  167.     chmod 0640 /data/dontpanic/apanic_console
  168.  
  169.     copy /proc/apanic_threads /data/dontpanic/apanic_threads
  170.     chown root log /data/dontpanic/apanic_threads
  171.     chmod 0640 /data/dontpanic/apanic_threads
  172.  
  173.     write /proc/apanic_console 1
  174.  
  175.     # create basic filesystem structure
  176.     mkdir /data/misc 01771 system misc
  177.     mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
  178.     mkdir /data/misc/bluetooth 0770 system system
  179.     mkdir /data/misc/keystore 0700 keystore keystore
  180.     mkdir /data/misc/keychain 0771 system system
  181.     mkdir /data/misc/vpn 0770 system vpn
  182.     mkdir /data/misc/systemkeys 0700 system system
  183.     # give system access to wpa_supplicant.conf for backup and restore
  184.     mkdir /data/misc/wifi 0770 wifi wifi
  185.     chmod 0660 /data/misc/wifi/wpa_supplicant.conf
  186.     mkdir /data/local 0751 root root
  187.     mkdir /data/local/tmp 0771 shell shell
  188.     mkdir /data/data 0771 system system
  189.     mkdir /data/app-private 0771 system system
  190.     mkdir /data/app 0771 system system
  191.     mkdir /data/property 0700 root root
  192.     mkdir /data/radio 0770 radio radio
  193.     chmod 2770 /data/radio
  194.  
  195.     # create dalvik-cache, so as to enforce our permissions
  196.     mkdir /data/dalvik-cache 0771 system system
  197.  
  198.     # create resource-cache and double-check the perms
  199.     mkdir /data/resource-cache 0771 system system
  200.     chown system system /data/resource-cache
  201.     chmod 0771 /data/resource-cache
  202.  
  203.     # create the lost+found directories, so as to enforce our permissions
  204.     mkdir /data/lost+found 0770 root root
  205.  
  206.     # create directory for DRM plug-ins - give drm the read/write access to
  207.     # the following directory.
  208.     mkdir /data/drm 0770 drm drm
  209.  
  210.     # If there is no fs-post-data action in the init.<device>.rc file, you
  211.     # must uncomment this line, otherwise encrypted filesystems
  212.     # won't work.
  213.     # Set indication (checked by vold) that we have finished this action
  214.     #setprop vold.post_fs_data_done 1
  215.  
  216.     chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
  217.     chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
  218.     chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
  219.     chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr
  220.  
  221. on boot
  222. # basic network init
  223.     ifup lo
  224.     hostname localhost
  225.     domainname localdomain
  226.  
  227. # set RLIMIT_NICE to allow priorities from 19 to -20
  228.     setrlimit 13 40 40
  229.  
  230. # Memory management.  Basic kernel parameters, and allow the high
  231. # level system server to be able to adjust the kernel OOM driver
  232. # paramters to match how it is managing things.
  233.     write /proc/sys/vm/overcommit_memory 1
  234.     write /proc/sys/vm/min_free_order_shift 4
  235.     chown root system /sys/module/lowmemorykiller/parameters/adj
  236.     chmod 0664 /sys/module/lowmemorykiller/parameters/adj
  237.     chown root system /sys/module/lowmemorykiller/parameters/minfree
  238.     chmod 0664 /sys/module/lowmemorykiller/parameters/minfree
  239.  
  240.     # Tweak background writeout
  241.     write /proc/sys/vm/dirty_expire_centisecs 200
  242.     write /proc/sys/vm/dirty_background_ratio  5
  243.  
  244.     # Permissions for System Server and daemons.
  245.     chown radio system /sys/android_power/state
  246.     chown radio system /sys/android_power/request_state
  247.     chown radio system /sys/android_power/acquire_full_wake_lock
  248.     chown radio system /sys/android_power/acquire_partial_wake_lock
  249.     chown radio system /sys/android_power/release_wake_lock
  250.     chown radio system /sys/power/state
  251.     chown radio system /sys/power/wake_lock
  252.     chown radio system /sys/power/wake_unlock
  253.     chown radio system /sys/power/touch_event
  254.     chown radio system /sys/power/touch_event_timer
  255.     chmod 0660 /sys/power/state
  256.     chmod 0660 /sys/power/wake_lock
  257.     chmod 0660 /sys/power/wake_unlock
  258.     chmod 0660 /sys/power/touch_event
  259.     chmod 0660 /sys/power/touch_event_timer
  260.     chown system system /sys/class/timed_output/vibrator/enable
  261.     chown system system /sys/class/leds/keyboard-backlight/brightness
  262.     chown system system /sys/class/leds/lcd-backlight/brightness
  263.     chown system system /sys/class/leds/button-backlight/brightness
  264.     chown system system /sys/class/leds/jogball-backlight/brightness
  265.     chown system system /sys/class/leds/red/brightness
  266.     chown system system /sys/class/leds/green/brightness
  267.     chown system system /sys/class/leds/blue/brightness
  268.     chown system system /sys/class/leds/red/device/grpfreq
  269.     chown system system /sys/class/leds/red/device/grppwm
  270.     chown system system /sys/class/leds/red/device/blink
  271.     chown system system /sys/class/leds/red/brightness
  272.     chown system system /sys/class/leds/green/brightness
  273.     chown system system /sys/class/leds/blue/brightness
  274.     chown system system /sys/class/leds/red/device/grpfreq
  275.     chown system system /sys/class/leds/red/device/grppwm
  276.     chown system system /sys/class/leds/red/device/blink
  277.     chown system system /sys/class/timed_output/vibrator/enable
  278.     chown system system /sys/module/sco/parameters/disable_esco
  279.     chown system system /sys/kernel/ipv4/tcp_wmem_min
  280.     chown system system /sys/kernel/ipv4/tcp_wmem_def
  281.     chown system system /sys/kernel/ipv4/tcp_wmem_max
  282.     chown system system /sys/kernel/ipv4/tcp_rmem_min
  283.     chown system system /sys/kernel/ipv4/tcp_rmem_def
  284.     chown system system /sys/kernel/ipv4/tcp_rmem_max
  285.     chown root radio /proc/cmdline
  286.  
  287. # Define TCP buffer sizes for various networks
  288. #   ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
  289.     setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
  290.     setprop net.tcp.buffersize.wifi    4096,221184,3461120,4096,221184,3461120
  291.     setprop net.tcp.buffersize.lte     4094,87380,1220608,4096,16384,1220608
  292.     setprop net.tcp.buffersize.umts    4094,87380,110208,4096,16384,110208
  293.     setprop net.tcp.buffersize.hspa    4094,87380,1220608,4096,16384,1220608
  294.     setprop net.tcp.buffersize.hsupa   4094,87380,1220608,4096,16384,1220608
  295.     setprop net.tcp.buffersize.hsdpa   4094,87380,1220608,4096,16384,1220608
  296.     setprop net.tcp.buffersize.edge    4093,26280,35040,4096,16384,35040
  297.     setprop net.tcp.buffersize.gprs    4092,8760,11680,4096,8760,11680
  298.     setprop net.tcp.buffersize.evdo_b  4094,87380,262144,4096,16384,262144
  299.  
  300. # Assign TCP buffer thresholds to be ceiling value of technology maximums
  301. # Increased technology maximums should be reflected here.
  302.     write /proc/sys/net/core/rmem_max  3461120
  303.     write /proc/sys/net/core/wmem_max  3461120
  304.  
  305. # Set this property so surfaceflinger is not started by system_init
  306.     setprop system_init.startsurfaceflinger 0
  307.  
  308.     class_start core
  309.     class_start main
  310.  
  311. on nonencrypted
  312.     class_start late_start
  313.  
  314. on charger
  315.     class_start charger
  316.  
  317. on property:vold.decrypt=trigger_reset_main
  318.     class_reset main
  319.  
  320. on property:vold.decrypt=trigger_load_persist_props
  321.     load_persist_props
  322.  
  323. on property:vold.decrypt=trigger_post_fs_data
  324.     trigger post-fs-data
  325.  
  326. on property:vold.decrypt=trigger_restart_min_framework
  327.     class_start main
  328.  
  329. on property:vold.decrypt=trigger_restart_framework
  330.     class_start main
  331.     class_start late_start
  332.  
  333. on property:vold.decrypt=trigger_shutdown_framework
  334.     class_reset late_start
  335.     class_reset main
  336.  
  337. # Used to disable USB when switching states
  338. on property:sys.usb.config=none
  339.     stop adbd
  340.     write /sys/class/android_usb/android0/enable 0
  341.     write /sys/class/android_usb/android0/bDeviceClass 0
  342.     setprop sys.usb.state $sys.usb.config
  343.  
  344. # adb only USB configuration
  345. # This should only be used during device bringup
  346. # and as a fallback if the USB manager fails to set a standard configuration
  347. on property:sys.usb.config=adb
  348.     write /sys/class/android_usb/android0/enable 0
  349.     write /sys/class/android_usb/android0/idVendor 05C6
  350.     write /sys/class/android_usb/android0/idProduct 901D
  351.     write /sys/class/android_usb/android0/f_diag/clients diag
  352.     write /sys/class/android_usb/android0/functions diag,adb
  353.     write /sys/class/android_usb/android0/enable 1
  354.     start adbd
  355.     setprop sys.usb.state $sys.usb.config
  356.  
  357. # USB accessory configuration
  358. on property:sys.usb.config=accessory
  359.     write /sys/class/android_usb/android0/enable 0
  360.     write /sys/class/android_usb/android0/idVendor 18d1
  361.     write /sys/class/android_usb/android0/idProduct 2d00
  362.     write /sys/class/android_usb/android0/functions $sys.usb.config
  363.     write /sys/class/android_usb/android0/enable 1
  364.     setprop sys.usb.state $sys.usb.config
  365.  
  366. # USB accessory configuration, with adb
  367. on property:sys.usb.config=accessory,adb
  368.     write /sys/class/android_usb/android0/enable 0
  369.     write /sys/class/android_usb/android0/idVendor 18d1
  370.     write /sys/class/android_usb/android0/idProduct 2d01
  371.     write /sys/class/android_usb/android0/functions $sys.usb.config
  372.     write /sys/class/android_usb/android0/enable 1
  373.     start adbd
  374.     setprop sys.usb.state $sys.usb.config
  375.  
  376. # Used to set USB configuration at boot and to switch the configuration
  377. # when changing the default configuration
  378. on property:persist.sys.usb.config=*
  379.     setprop sys.usb.config $persist.sys.usb.config
  380.  
  381. ## Daemon processes to be run by init.
  382. ##
  383. service ueventd /sbin/ueventd
  384.     class core
  385.     critical
  386.  
  387. service console /system/bin/sh
  388.     class core
  389.     console
  390.     disabled
  391.     user shell
  392.     group log
  393.  
  394. # adbd is controlled via property triggers in init.<platform>.usb.rc
  395. service adbd /sbin/adbd
  396.     class core
  397.     disabled
  398.  
  399. # adbd on at boot in emulator
  400. on property:ro.kernel.qemu=1
  401.     start adbd
  402.  
  403. # This property trigger has added to imitiate the previous behavior of "adb root".
  404. # The adb gadget driver used to reset the USB bus when the adbd daemon exited,
  405. # and the host side adb relied on this behavior to force it to reconnect with the
  406. # new adbd instance after init relaunches it. So now we force the USB bus to reset
  407. # here when adbd sets the service.adb.root property to 1.  We also restart adbd here
  408. # rather than waiting for init to notice its death and restarting it so the timing
  409. # of USB resetting and adb restarting more closely matches the previous behavior.
  410. on property:service.adb.root=1
  411.     write /sys/class/android_usb/android0/enable 0
  412.     restart adbd
  413.     write /sys/class/android_usb/android0/enable 1
  414.  
  415. service servicemanager /system/bin/servicemanager
  416.     class core
  417.     user system
  418.     group system
  419.     critical
  420.     onrestart restart zygote
  421.     onrestart restart media
  422.     onrestart restart surfaceflinger
  423.     onrestart restart drm
  424.  
  425. service vold /system/bin/vold
  426.     class core
  427.     socket vold stream 0660 root mount
  428.     ioprio be 2
  429.  
  430. service netd /system/bin/netd
  431.     class main
  432.     socket netd stream 0660 root system
  433.     socket dnsproxyd stream 0660 root inet
  434.  
  435. service debuggerd /system/bin/debuggerd
  436.     class main
  437.  
  438. service ril-daemon /system/bin/rild
  439.     class main
  440.     socket rild stream 660 root radio
  441.     socket rild-debug stream 660 radio system
  442.     user root
  443.     group radio cache inet misc audio sdcard_rw qcom_oncrpc diag qcom_diag
  444.  
  445. service surfaceflinger /system/bin/surfaceflinger
  446.     class main
  447.     user system
  448.     group graphics
  449.     onrestart restart zygote
  450.  
  451. service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
  452.     class main
  453.     socket zygote stream 660 root system
  454.     onrestart exec /system/bin/sync
  455.     onrestart write /proc/sysrq-trigger c
  456.  
  457. service drm /system/bin/drmserver
  458.     class main
  459.     user drm
  460.     group system inet drmrpc sdcardd
  461.  
  462. service media /system/bin/mediaserver
  463.     class main
  464.     user media
  465.     group system audio camera inet net_bt net_bt_admin net_bw_acct drmrpc qcom_diag
  466.     ioprio rt 4
  467.  
  468. service bootanim /system/bin/bootanimation
  469.     class main
  470.     user graphics
  471.     group graphics
  472.     disabled
  473.     oneshot
  474.  
  475. service dbus /system/bin/dbus-daemon --system --nofork
  476.     class main
  477.     socket dbus stream 660 bluetooth bluetooth
  478.     user bluetooth
  479.     group bluetooth net_bt_admin
  480.  
  481. service bluetoothd /system/bin/bluetoothd -n
  482.     class main
  483.     socket bluetooth stream 660 bluetooth bluetooth
  484.     socket dbus_bluetooth stream 660 bluetooth bluetooth
  485.     # init.rc does not yet support applying capabilities, so run as root and
  486.     # let bluetoothd drop uid to bluetooth with the right linux capabilities
  487.     group bluetooth net_bt_admin misc
  488.     disabled
  489.  
  490. service installd /system/bin/installd
  491.     class main
  492.     socket installd stream 600 system system
  493.  
  494. service flash_recovery /system/etc/install-recovery.sh
  495.     class main
  496.     oneshot
  497.  
  498. service racoon /system/bin/racoon
  499.     class main
  500.     socket racoon stream 600 system system
  501.     # IKE uses UDP port 500. Racoon will setuid to vpn after binding the port.
  502.     group vpn net_admin inet
  503.     disabled
  504.     oneshot
  505.  
  506. service mtpd /system/bin/mtpd
  507.     class main
  508.     socket mtpd stream 600 system system
  509.     user vpn
  510.     group vpn net_admin inet net_raw
  511.     disabled
  512.     oneshot
  513.  
  514. service keystore /system/bin/keystore /data/misc/keystore
  515.     class main
  516.     user keystore
  517.     group keystore
  518.     socket keystore stream 666
  519.  
  520. service dumpstate /system/bin/dumpstate -s
  521.     class main
  522.     socket dumpstate stream 0660 shell log
  523.     disabled
  524.     oneshot
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement