{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "The nandc boot image is the main boot partition which holds the kernel and " ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "16388\ttablet/nandc.boot.img\r\n" ] } ], "source": [ "# The partition size of the image in bytes\n", "\n", "!du tablet/nandc.boot.img" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tablet/nandc.boot.img: Android bootimg, kernel (0x40008000), ramdisk (0x41000000), page size: 2048, cmdline (console=ttyS0,115200 rw init=/init loglevel=4)\r\n" ] } ], "source": [ "# We can use file to find out what kind of image we have.\n", "\n", "!file tablet/nandc.boot.img" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "BOARD_KERNEL_CMDLINE console=ttyS0,115200 rw init=/init loglevel=4\r\n", "BOARD_KERNEL_BASE 40000000\r\n", "BOARD_PAGE_SIZE 2048\r\n" ] } ], "source": [ "# We can unpack this type of image file using one of the tools from the android sdk\n", "\n", "!tools/unpackbootimg -i tablet/nandc.boot.img -o tablet/boot/" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total 9234\r\n", "drwxrwxrwx 1 4096 Mar 17 09:36 img-ramdisk\r\n", "-rwxrwxrwx 1 9 Mar 20 20:52 nandc.boot.img-base\r\n", "-rwxrwxrwx 1 46 Mar 20 20:52 nandc.boot.img-cmdline\r\n", "-rwxrwxrwx 1 5 Mar 20 20:52 nandc.boot.img-pagesize\r\n", "-rwxrwxrwx 1 1808423 Mar 20 20:52 nandc.boot.img-ramdisk.gz\r\n", "-rwxrwxrwx 1 7637412 Mar 20 20:52 nandc.boot.img-zImage\r\n", "-rwxrwxrwx 1 62 Mar 16 13:55 README.md\r\n" ] } ], "source": [ "# And this is what we get from unpacking this image file\n", "\n", "!ls -lgG tablet/boot/" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "8272 blocks\n" ] } ], "source": [ "%%bash\n", "# Lets create a directory and unpack the ramdisk file\n", "\n", "cd tablet/boot/img-ramdisk/\n", "gunzip -c ../nandc.boot.img-ramdisk.gz | cpio -i" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total 3994\r\n", "drwxrwxrwx 1 0 Mar 16 14:08 data\r\n", "-rwxrwxrwx 1 116 Mar 20 20:52 default.prop\r\n", "drwxrwxrwx 1 0 Mar 16 14:08 dev\r\n", "-rwxrwxrwx 1 851 Mar 20 20:52 fstab.sun8i\r\n", "-rwxrwxrwx 1 113536 Mar 20 20:52 init\r\n", "-rwxrwxrwx 1 2487 Mar 20 20:52 init.goldfish.rc\r\n", "-rwxrwxrwx 1 2457600 Mar 20 20:52 initlogo.rle\r\n", "-rwxrwxrwx 1 20824 Mar 20 20:52 init.rc\r\n", "-rwxrwxrwx 1 132 Mar 20 20:52 init.recovery.sun8i.rc\r\n", "-rwxrwxrwx 1 6557 Mar 20 20:52 init.sun8i.rc\r\n", "-rwxrwxrwx 1 3481 Mar 20 20:52 init.sun8i.usb.rc\r\n", "-rwxrwxrwx 1 1795 Mar 20 20:52 init.trace.rc\r\n", "-rwxrwxrwx 1 3947 Mar 20 20:52 init.usb.rc\r\n", "-rwxrwxrwx 1 1453290 Mar 20 20:52 nand.ko\r\n", "drwxrwxrwx 1 0 Mar 16 14:08 proc\r\n", "-rwxrwxrwx 1 58 Mar 16 13:59 README.md\r\n", "drwxrwxrwx 1 344 Mar 20 20:52 sbin\r\n", "drwxrwxrwx 1 0 Mar 16 14:08 sys\r\n", "drwxrwxrwx 1 0 Mar 16 14:08 system\r\n", "-rwxrwxrwx 1 272 Mar 20 20:52 ueventd.goldfish.rc\r\n", "-rwxrwxrwx 1 4024 Mar 20 20:52 ueventd.rc\r\n", "-rwxrwxrwx 1 995 Mar 20 20:52 ueventd.sun8i.rc\r\n" ] } ], "source": [ "# And what we have here\n", "\n", "!ls -lgG tablet/boot/img-ramdisk/" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# Copyright (C) 2012 The Android Open Source Project\r\n", "#\r\n", "# IMPORTANT: Do not create world writable files or directories.\r\n", "# This is a common source of Android security bugs.\r\n", "#\r\n", "\r\n", "import /init.usb.rc\r\n", "import /init.${ro.hardware}.rc\r\n", "import /init.trace.rc\r\n", "\r\n", "on early-init\r\n", " # Set init and its forked children's oom_adj.\r\n", " write /proc/1/oom_adj -16\r\n", "\r\n", " # Set the security context for the init process.\r\n", " # This should occur before anything else (e.g. ueventd) is started.\r\n", " setcon u:r:init:s0\r\n", "\r\n", " start ueventd\r\n", "\r\n", "# create mountpoints\r\n", " mkdir /mnt 0775 root system\r\n", "\r\n", "on init\r\n", "\r\n", "sysclktz 0\r\n", "\r\n", "loglevel 6\r\n", "\r\n", "# setup the global environment\r\n", " export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin\r\n", " export LD_LIBRARY_PATH /vendor/lib:/system/lib\r\n", " export ANDROID_BOOTLOGO 1\r\n", " export ANDROID_ROOT /system\r\n", " export ANDROID_ASSETS /system/app\r\n", " export ANDROID_DATA /data\r\n", " export ANDROID_STORAGE /storage\r\n", " export ASEC_MOUNTPOINT /mnt/asec\r\n", " export LOOP_MOUNTPOINT /mnt/obb\r\n", " 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/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar\r\n", "\r\n", "# Backward compatibility\r\n", "\tinsmod /nand.ko\r\n", " symlink /system/etc /etc\r\n", " symlink /sys/kernel/debug /d\r\n", "\r\n", "# Right now vendor lives on the same filesystem as system,\r\n", "# but someday that may change.\r\n", " symlink /system/vendor /vendor\r\n", "\r\n", "# Create cgroup mount point for cpu accounting\r\n", " mkdir /acct\r\n", " mount cgroup none /acct cpuacct\r\n", " mkdir /acct/uid\r\n", "\r\n", " mkdir /system\r\n", " mkdir /data 0771 system system\r\n", " mkdir /cache 0770 system cache\r\n", " mkdir /config 0500 root root\r\n", "\r\n", " # See storage config details at http://source.android.com/tech/storage/\r\n", " mkdir /mnt/shell 0700 shell shell\r\n", " mkdir /storage 0050 root sdcard_r\r\n", " #mkdir for interior sd card\r\n", " mkdir /mnt/media 0770 media_rw media_rw\r\n", "\r\n", "\r\n", " # Directory for putting things only root should see.\r\n", " mkdir /mnt/secure 0700 root root\r\n", " # Create private mountpoint so we can MS_MOVE from staging\r\n", " mount tmpfs tmpfs /mnt/secure mode=0700,uid=0,gid=0\r\n", "\r\n", " # Directory for staging bindmounts\r\n", " mkdir /mnt/secure/staging 0700 root root\r\n", "\r\n", " # Directory-target for where the secure container\r\n", " # imagefile directory will be bind-mounted\r\n", " mkdir /mnt/secure/asec 0700 root root\r\n", "\r\n", " # Secure container public mount points.\r\n", " mkdir /mnt/asec 0700 root system\r\n", " mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000\r\n", "\r\n", " # Filesystem image public mount points.\r\n", " mkdir /mnt/obb 0700 root system\r\n", " mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000\r\n", "\r\n", " write /proc/sys/kernel/panic_on_oops 1\r\n", " write /proc/sys/kernel/hung_task_timeout_secs 0\r\n", " write /proc/cpu/alignment 4\r\n", " write /proc/sys/kernel/sched_latency_ns 10000000\r\n", " write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000\r\n", " write /proc/sys/kernel/sched_compat_yield 1\r\n", " write /proc/sys/kernel/sched_child_runs_first 0\r\n", " write /proc/sys/kernel/randomize_va_space 2\r\n", " write /proc/sys/kernel/kptr_restrict 2\r\n", " write /proc/sys/kernel/dmesg_restrict 1\r\n", "\twrite /proc/sys/vm/legacy_va_layout 1\r\n", " write /proc/sys/vm/mmap_min_addr 32768\r\n", " write /proc/sys/kernel/sched_rt_runtime_us 950000\r\n", " write /proc/sys/kernel/sched_rt_period_us 1000000\r\n", "\r\n", "# Create cgroup mount points for process groups\r\n", " mkdir /dev/cpuctl\r\n", " mount cgroup none /dev/cpuctl cpu\r\n", " chown system system /dev/cpuctl\r\n", " chown system system /dev/cpuctl/tasks\r\n", " chmod 0660 /dev/cpuctl/tasks\r\n", " write /dev/cpuctl/cpu.shares 1024\r\n", " write /dev/cpuctl/cpu.rt_runtime_us 950000\r\n", " write /dev/cpuctl/cpu.rt_period_us 1000000\r\n", "\r\n", " mkdir /dev/cpuctl/apps\r\n", " chown system system /dev/cpuctl/apps/tasks\r\n", " chmod 0666 /dev/cpuctl/apps/tasks\r\n", " write /dev/cpuctl/apps/cpu.shares 1024\r\n", " write /dev/cpuctl/apps/cpu.rt_runtime_us 800000\r\n", " write /dev/cpuctl/apps/cpu.rt_period_us 1000000\r\n", "\r\n", " mkdir /dev/cpuctl/apps/bg_non_interactive\r\n", " chown system system /dev/cpuctl/apps/bg_non_interactive/tasks\r\n", " chmod 0666 /dev/cpuctl/apps/bg_non_interactive/tasks\r\n", " # 5.0 %\r\n", " write /dev/cpuctl/apps/bg_non_interactive/cpu.shares 52\r\n", " write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_runtime_us 700000\r\n", " write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_period_us 1000000\r\n", "\r\n", "# Allow everybody to read the xt_qtaguid resource tracking misc dev.\r\n", "# This is needed by any process that uses socket tagging.\r\n", " chmod 0644 /dev/xt_qtaguid\r\n", "\r\n", "on fs\r\n", "# mount mtd partitions\r\n", " # Mount /system rw first to give the filesystem a chance to save a checkpoint\r\n", " mount yaffs2 mtd@system /system\r\n", " mount yaffs2 mtd@system /system ro remount\r\n", " mount yaffs2 mtd@userdata /data nosuid nodev\r\n", " mount yaffs2 mtd@cache /cache nosuid nodev\r\n", "\r\n", "on post-fs\r\n", " # once everything is setup, no need to modify /\r\n", " # mount rootfs rootfs / ro remount\r\n", " # mount shared so changes propagate into child namespaces\r\n", " mount rootfs rootfs / shared rec\r\n", " mount tmpfs tmpfs /mnt/secure private rec\r\n", "\r\n", " # We chown/chmod /cache again so because mount is run as root + defaults\r\n", " chown system cache /cache\r\n", " chmod 0770 /cache\r\n", " # We restorecon /cache in case the cache partition has been reset.\r\n", " restorecon /cache\r\n", "\r\n", " # This may have been created by the recovery system with odd permissions\r\n", " chown system cache /cache/recovery\r\n", " chmod 0770 /cache/recovery\r\n", " # This may have been created by the recovery system with the wrong context.\r\n", " restorecon /cache/recovery\r\n", "\r\n", " #change permissions on vmallocinfo so we can grab it from bugreports\r\n", " chown root log /proc/vmallocinfo\r\n", " chmod 0440 /proc/vmallocinfo\r\n", "\r\n", " chown root log /proc/slabinfo\r\n", " chmod 0440 /proc/slabinfo\r\n", "\r\n", " #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks\r\n", " chown root system /proc/kmsg\r\n", " chmod 0440 /proc/kmsg\r\n", " chown root system /proc/sysrq-trigger\r\n", " chmod 0220 /proc/sysrq-trigger\r\n", " chown system log /proc/last_kmsg\r\n", " chmod 0440 /proc/last_kmsg\r\n", "\r\n", " # create the lost+found directories, so as to enforce our permissions\r\n", " mkdir /cache/lost+found 0770 root root\r\n", "\r\n", "on post-fs-data\r\n", " # We chown/chmod /data again so because mount is run as root + defaults\r\n", " chown system system /data\r\n", " chmod 0771 /data\r\n", " # We restorecon /data in case the userdata partition has been reset.\r\n", " restorecon /data\r\n", "\r\n", " # Create dump dir and collect dumps.\r\n", " # Do this before we mount cache so eventually we can use cache for\r\n", " # storing dumps on platforms which do not have a dedicated dump partition.\r\n", " mkdir /data/dontpanic 0750 root log\r\n", "\r\n", " # Collect apanic data, free resources and re-arm trigger\r\n", " copy /proc/apanic_console /data/dontpanic/apanic_console\r\n", " chown root log /data/dontpanic/apanic_console\r\n", " chmod 0640 /data/dontpanic/apanic_console\r\n", "\r\n", " copy /proc/apanic_threads /data/dontpanic/apanic_threads\r\n", " chown root log /data/dontpanic/apanic_threads\r\n", " chmod 0640 /data/dontpanic/apanic_threads\r\n", "\r\n", " write /proc/apanic_console 1\r\n", "\r\n", " # create basic filesystem structure\r\n", " mkdir /data/misc 01771 system misc\r\n", " mkdir /data/misc/adb 02750 system shell\r\n", " mkdir /data/misc/bluedroid 0770 bluetooth net_bt_stack\r\n", " mkdir /data/misc/keystore 0700 keystore keystore\r\n", " mkdir /data/misc/keychain 0771 system system\r\n", " mkdir /data/misc/sms 0770 system radio\r\n", " mkdir /data/misc/vpn 0770 system vpn\r\n", " mkdir /data/misc/systemkeys 0700 system system\r\n", " # give system access to wpa_supplicant.conf for backup and restore\r\n", " mkdir /data/misc/wifi 0770 wifi wifi\r\n", " chmod 0660 /data/misc/wifi/wpa_supplicant.conf\r\n", " chown system wifi /data/misc/wifi/wpa_supplicant.conf\r\n", "\tmkdir /data/misc/wifi/sockets 0770 wifi wifi\r\n", "\tmkdir /data/misc/dhcp 0770 dhcp dhcp\r\n", "\tchown dhcp dhcp /data/misc/dhcp\r\n", " mkdir /data/local 0751 root root\r\n", "\r\n", " # star add for camera recorder\r\n", " mkdir /data/camera 0751 media media\r\n", "\r\n", " # For security reasons, /data/local/tmp should always be empty.\r\n", " # Do not place files or directories in /data/local/tmp\r\n", " mkdir /data/local/tmp 0771 shell shell\r\n", " mkdir /data/data 0771 system system\r\n", " mkdir /data/app-private 0771 system system\r\n", " mkdir /data/app-asec 0700 root root\r\n", " mkdir /data/app-lib 0771 system system\r\n", " mkdir /data/app 0771 system system\r\n", " mkdir /data/property 0700 root root\r\n", " mkdir /data/ssh 0750 root shell\r\n", " mkdir /data/ssh/empty 0700 root root\r\n", "\r\n", " # create dalvik-cache, so as to enforce our permissions\r\n", " mkdir /data/dalvik-cache 0771 system system\r\n", "\r\n", " # create resource-cache and double-check the perms\r\n", " mkdir /data/resource-cache 0771 system system\r\n", " chown system system /data/resource-cache\r\n", " chmod 0771 /data/resource-cache\r\n", "\r\n", " # create the lost+found directories, so as to enforce our permissions\r\n", " mkdir /data/lost+found 0770 root root\r\n", "\r\n", " # create directory for DRM plug-ins - give drm the read/write access to\r\n", " # the following directory.\r\n", " mkdir /data/drm 0770 drm drm\r\n", "\r\n", " # If there is no fs-post-data action in the init.<device>.rc file, you\r\n", " # must uncomment this line, otherwise encrypted filesystems\r\n", " # won't work.\r\n", " # Set indication (checked by vold) that we have finished this action\r\n", " #setprop vold.post_fs_data_done 1\r\n", "\r\n", "on boot\r\n", "# basic network init\r\n", " ifup lo\r\n", " hostname localhost\r\n", " domainname localdomain\r\n", "\r\n", "# set RLIMIT_NICE to allow priorities from 19 to -20\r\n", " setrlimit 13 40 40\r\n", "\r\n", "# Memory management. Basic kernel parameters, and allow the high\r\n", "# level system server to be able to adjust the kernel OOM driver\r\n", "# parameters to match how it is managing things.\r\n", " write /proc/sys/vm/overcommit_memory 1\r\n", " write /proc/sys/vm/min_free_order_shift 4\r\n", " chown root system /sys/module/lowmemorykiller/parameters/adj\r\n", " chmod 0664 /sys/module/lowmemorykiller/parameters/adj\r\n", " chown root system /sys/module/lowmemorykiller/parameters/minfree\r\n", " chmod 0664 /sys/module/lowmemorykiller/parameters/minfree\r\n", "\r\n", " # Tweak background writeout\r\n", " write /proc/sys/vm/dirty_expire_centisecs 200\r\n", " write /proc/sys/vm/dirty_background_ratio 5\r\n", "\r\n", " # Permissions for System Server and daemons.\r\n", " chown radio system /sys/android_power/state\r\n", " chown radio system /sys/android_power/request_state\r\n", " chown radio system /sys/android_power/acquire_full_wake_lock\r\n", " chown radio system /sys/android_power/acquire_partial_wake_lock\r\n", " chown radio system /sys/android_power/release_wake_lock\r\n", " chown system system /sys/power/autosleep\r\n", " chown system system /sys/power/state\r\n", " chown system system /sys/power/wakeup_count\r\n", " chown radio system /sys/power/wake_lock\r\n", " chown radio system /sys/power/wake_unlock\r\n", " chmod 0660 /sys/power/state\r\n", " chmod 0660 /sys/power/wake_lock\r\n", " chmod 0660 /sys/power/wake_unlock\r\n", "\r\n", " chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate\r\n", " chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_rate\r\n", " chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time\r\n", " chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time\r\n", " chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq\r\n", " chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq\r\n", " chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load\r\n", " chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load\r\n", " chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay\r\n", " chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay\r\n", " chown system system /sys/devices/system/cpu/cpufreq/interactive/boost\r\n", " chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost\r\n", " chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse\r\n", " chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost\r\n", " chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/input_boost\r\n", " chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration\r\n", " chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration\r\n", "\r\n", " # Assume SMP uses shared cpufreq policy for all CPUs\r\n", " chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\r\n", " chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\r\n", " chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq\r\n", " chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq\r\n", "\r\n", " chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor\r\n", " chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor\r\n", "\r\n", " chown system system /sys/devices/system/cpu/cpufreq/fantasys/max_power\r\n", " chmod 0660 /sys/devices/system/cpu/cpufreq/fantasys/max_power\r\n", "\r\n", " chown system system /sys/devices/system/cpu/cpufreq/fantasys/pulse\r\n", " chmod 0660 /sys/devices/system/cpu/cpufreq/fantasys/pulse\r\n", "\r\n", " chown system system /sys/class/sw_powernow/mode\r\n", " chown system system /sys/class/sw_powernow/available_modes\r\n", "\r\n", " chown system system /sys/devices/system/cpu/cpufreq/fantasys/hotplug_lock\r\n", "\r\n", " chown system system /sys/class/devfreq/sunxi-dramfreq/vans/max_freq_lock\r\n", " chmod 0660 /sys/class/devfreq/sunxi-dramfreq/vans/max_freq_lock\r\n", "\r\n", " chown system system /sys/class/devfreq/sunxi-dramfreq/vans/wake_lock\r\n", " chmod 0660 /sys/class/devfreq/sunxi-dramfreq/vans/wake_lock\r\n", "\r\n", " chown system system /sys/class/power_supply/battery/chgen\r\n", " chmod 0660 /sys/class/power_supply/battery/chgen\r\n", "\r\n", " chown system system /sys/class/timed_output/vibrator/enable\r\n", " chown system system /sys/class/leds/keyboard-backlight/brightness\r\n", " chown system system /sys/class/leds/lcd-backlight/brightness\r\n", " chown system system /sys/class/leds/button-backlight/brightness\r\n", " chown system system /sys/class/leds/jogball-backlight/brightness\r\n", " chown system system /sys/class/leds/red/brightness\r\n", " chown system system /sys/class/leds/green/brightness\r\n", " chown system system /sys/class/leds/blue/brightness\r\n", " chown system system /sys/class/leds/red/device/grpfreq\r\n", " chown system system /sys/class/leds/red/device/grppwm\r\n", " chown system system /sys/class/leds/red/device/blink\r\n", " chown system system /sys/class/leds/red/brightness\r\n", " chown system system /sys/class/leds/green/brightness\r\n", " chown system system /sys/class/leds/blue/brightness\r\n", " chown system system /sys/class/leds/red/device/grpfreq\r\n", " chown system system /sys/class/leds/red/device/grppwm\r\n", " chown system system /sys/class/leds/red/device/blink\r\n", " chown system system /sys/class/timed_output/vibrator/enable\r\n", " chown system system /sys/module/sco/parameters/disable_esco\r\n", " chown system system /sys/kernel/ipv4/tcp_wmem_min\r\n", " chown system system /sys/kernel/ipv4/tcp_wmem_def\r\n", " chown system system /sys/kernel/ipv4/tcp_wmem_max\r\n", " chown system system /sys/kernel/ipv4/tcp_rmem_min\r\n", " chown system system /sys/kernel/ipv4/tcp_rmem_def\r\n", " chown system system /sys/kernel/ipv4/tcp_rmem_max\r\n", " chown root radio /proc/cmdline\r\n", " chmod 0777 /system/bin/updatesoftwinner\r\n", "\r\n", "# Define TCP buffer sizes for various networks\r\n", "# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,\r\n", " setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208\r\n", " setprop net.tcp.buffersize.wifi 524288,1048576,2097152,262144,524288,1048576\r\n", " setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576\r\n", " setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208\r\n", " setprop net.tcp.buffersize.hspa 4094,87380,262144,4096,16384,262144\r\n", " setprop net.tcp.buffersize.hsupa 4094,87380,262144,4096,16384,262144\r\n", " setprop net.tcp.buffersize.hsdpa 4094,87380,262144,4096,16384,262144\r\n", " setprop net.tcp.buffersize.hspap 4094,87380,1220608,4096,16384,1220608\r\n", " setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040\r\n", " setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680\r\n", " setprop net.tcp.buffersize.evdo 4094,87380,262144,4096,16384,262144\r\n", "\r\n", "# Set this property so surfaceflinger is not started by system_init\r\n", " setprop system_init.startsurfaceflinger 0\r\n", "\r\n", " class_start core\r\n", " class_start main\r\n", "\r\n", "on nonencrypted\r\n", " class_start late_start\r\n", "\r\n", "on charger\r\n", " class_start charger\r\n", "\r\n", "on property:vold.decrypt=trigger_reset_main\r\n", " class_reset main\r\n", "\r\n", "on property:vold.decrypt=trigger_load_persist_props\r\n", " load_persist_props\r\n", "\r\n", "on property:vold.decrypt=trigger_post_fs_data\r\n", " trigger post-fs-data\r\n", "\r\n", "on property:vold.decrypt=trigger_restart_min_framework\r\n", " class_start main\r\n", "\r\n", "on property:vold.decrypt=trigger_restart_framework\r\n", " class_start main\r\n", " class_start late_start\r\n", "\r\n", "on property:vold.decrypt=trigger_shutdown_framework\r\n", " class_reset late_start\r\n", " class_reset main\r\n", "\r\n", "## Daemon processes to be run by init.\r\n", "##\r\n", "service ueventd /sbin/ueventd\r\n", " class core\r\n", " critical\r\n", " seclabel u:r:ueventd:s0\r\n", "\r\n", "on property:selinux.reload_policy=1\r\n", " restart ueventd\r\n", " restart installd\r\n", "\r\n", "service console /system/bin/sh\r\n", " class core\r\n", " console\r\n", " disabled\r\n", " user shell\r\n", " group log\r\n", "\r\n", "on property:ro.debuggable=1\r\n", " start console\r\n", "\r\n", "# adbd is controlled via property triggers in init.<platform>.usb.rc\r\n", "service adbd /sbin/adbd\r\n", " class core\r\n", " socket adbd stream 660 system system\r\n", " disabled\r\n", " seclabel u:r:adbd:s0\r\n", "\r\n", "# adbd on at boot in emulator\r\n", "on property:ro.kernel.qemu=1\r\n", " start adbd\r\n", "\r\n", "service sensors /system/bin/busybox sh /system/bin/sensors.sh\r\n", " user root\r\n", " group root\r\n", " disabled\r\n", " oneshot\r\n", "\r\n", "on property:sys.sensors=1\r\n", " start sensors\r\n", "\r\n", "service servicemanager /system/bin/servicemanager\r\n", " class core\r\n", " user system\r\n", " group system\r\n", " critical\r\n", " onrestart restart zygote\r\n", " onrestart restart media\r\n", " onrestart restart surfaceflinger\r\n", " onrestart restart drm\r\n", "\r\n", "service vold /system/bin/vold\r\n", " class core\r\n", " socket vold stream 0660 root mount\r\n", " ioprio be 2\r\n", "\r\n", "service netd /system/bin/netd\r\n", " class main\r\n", " socket netd stream 0660 root system\r\n", " socket dnsproxyd stream 0660 root inet\r\n", " socket mdns stream 0660 root system\r\n", "\r\n", "service debuggerd /system/bin/debuggerd\r\n", " class main\r\n", "\r\n", "service updatesoftwinner /system/bin/updatesoftwinner\r\n", " class main\r\n", " user root\r\n", " \tgroup root\r\n", "\r\n", "service surfaceflinger /system/bin/surfaceflinger\r\n", " class main\r\n", " user system\r\n", " group graphics drmrpc\r\n", " onrestart restart zygote\r\n", "\r\n", "service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server\r\n", " class main\r\n", " socket zygote stream 660 root system\r\n", " onrestart write /sys/android_power/request_state wake\r\n", " onrestart write /sys/power/state on\r\n", " onrestart restart media\r\n", " onrestart restart netd\r\n", "\r\n", "service drm /system/bin/drmserver\r\n", " class main\r\n", " user drm\r\n", " group drm system inet drmrpc\r\n", "\r\n", "service media /system/bin/mediaserver\r\n", " class main\r\n", " user media\r\n", " group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc sdcard_rw media_rw\r\n", " ioprio rt 4\r\n", "\r\n", "service bootanim /system/bin/bootanimation\r\n", " class main\r\n", " user graphics\r\n", " group graphics\r\n", " disabled\r\n", " oneshot\r\n", "\r\n", "service installd /system/bin/installd\r\n", " class main\r\n", " socket installd stream 600 system system\r\n", "\r\n", "service flash_recovery /system/etc/install-recovery.sh\r\n", " class main\r\n", " oneshot\r\n", "\r\n", "service racoon /system/bin/racoon\r\n", " class main\r\n", " socket racoon stream 600 system system\r\n", " # IKE uses UDP port 500. Racoon will setuid to vpn after binding the port.\r\n", " group vpn net_admin inet\r\n", " disabled\r\n", " oneshot\r\n", "\r\n", "service mtpd /system/bin/mtpd\r\n", " class main\r\n", " socket mtpd stream 600 system system\r\n", " user vpn\r\n", " group vpn net_admin inet net_raw\r\n", " disabled\r\n", " oneshot\r\n", "\r\n", "service keystore /system/bin/keystore /data/misc/keystore\r\n", " class main\r\n", " user keystore\r\n", " group keystore drmrpc\r\n", " socket keystore stream 666\r\n", "\r\n", "service dumpstate /system/bin/dumpstate -s\r\n", " class main\r\n", " socket dumpstate stream 0660 shell log\r\n", " disabled\r\n", " oneshot\r\n", "\r\n", "service sshd /system/bin/start-ssh\r\n", " class main\r\n", " disabled\r\n", "\r\n", "service mdnsd /system/bin/mdnsd\r\n", " class main\r\n", " user mdnsr\r\n", " group inet net_raw\r\n", " socket mdnsd stream 0660 mdnsr inet\r\n", " disabled\r\n", " oneshot\r\n", "\r\n", "service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL\r\n", " class main\r\n", " disabled\r\n", " oneshot\r\n", "\r\n", "service dhcpcd_p2p /system/bin/dhcpcd -aABKL\r\n", " class main\r\n", " disabled\r\n", " oneshot\r\n", "\r\n", "service dhcpcd_eth /system/bin/dhcpcd -ABDKL\r\n", " class main\r\n", " disabled\r\n", " oneshot\r\n", "\r\n", "service dhcpcd_bnep0 /system/bin/dhcpcd -ABKL\r\n", " class main\r\n", " disabled\r\n", " oneshot\r\n", "\r\n", "service iprenew_wlan0 /system/bin/dhcpcd -n\r\n", " class main\r\n", " disabled\r\n", " oneshot\r\n", "\r\n", "service iprenew_p2p /system/bin/dhcpcd -n\r\n", " class main\r\n", " disabled\r\n", " oneshot\r\n", "\r\n", "service iprenew_eth /system/bin/dhcpcd -n\r\n", " class main\r\n", " disabled\r\n", " oneshot\r\n", "service preinstall /system/bin/busybox sh /system/bin/preinstall.sh\r\n", " user root\r\n", " group root\r\n", " disabled\r\n", " oneshot\r\n", "on property:sys.boot_completed=1\r\n", " start preinstall\r\n" ] } ], "source": [ "!cat tablet/boot/img-ramdisk/init.rc" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.8" } }, "nbformat": 4, "nbformat_minor": 0 }