android platform env setup

1. init.rc file 

 on early-init
    start ueventd
   
    on init
    
    sysclktz 0
    
    loglevel 3
    
    # setup the global environment
        export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
        export LD_LIBRARY_PATH /vendor/lib:/system/lib:/data/lib
        export ANDROID_BOOTLOGO 1
 export ANDROID_CACHE /cache
        export ANDROID_ROOT /system
        export ANDROID_ASSETS /system/app
        export ANDROID_DATA /data
    export DOWNLOAD_CACHE /cache/download
        export EXTERNAL_STORAGE /mnt/sdcard
        export ASEC_MOUNTPOINT /mnt/asec
        export LOOP_MOUNTPOINT /mnt/obb
        export SD_EXT_DIRECTORY /sd-ext
        export BOOTCLASSPATH /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar
    
    # Backward compatibility
        symlink /system/etc /etc
        symlink /sys/kernel/debug /d

        symlink /dev/msm_camera/control0 /dev/msm_camera/control1
        symlink /dev/msm_camera/frame0 /dev/msm_camera/frame1
        symlink /dev/msm_camera/config0 /dev/msm_camera/config1
        symlink /system/vendor /vendor
    
    # 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
    
        mkdir /sd-ext 0771 system system
    
        # Filesystem image public mount points.
     mkdir /mnt/obb 0700 root system
 mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000

        mount rootfs rootfs / rw 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_min_granularity_ns 100000
        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

 # increase read throughput from sd card
 write /sys/block/mmcblk0/bdi/read_ahead_kb 3072
    

    # mount mtd partitions
     mount yaffs2 mtd@system /system noatime nodiratime
     mount yaffs2 mtd@userdata /data nosuid nodev noatime nodiratime
     mount yaffs2 mtd@cache /cache nosuid nodev

        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/local/download 0771 system cache
        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
 mkdir /cache/download 0771 system cache
        # DRMv1 rights storage
        symlink /data/local /data/drm
        mkdir /data/local/rights 0777 shell shell
        chown shell shell /data/drm
        write /data/drm/rights/mid.txt 0
        chmod 0777 /data/drm/rights/mid.txt
    
        # 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 dalvik-cache and double-check the perms
  mkdir /cache/dalvik-cache 0771 system system
  chown system system /cache/dalvik-cache
  chmod 0771 /cache/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
    
    # allow net_raw to have access to /dev/socket directory
    chown root net_raw /dev/socket
    chmod 0775 /dev/socket
    # allow system to modify cpufreq control files
    chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    chmod 0666 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    chmod 0666 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
    chmod 0666 /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
   
    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.CONTENT_PROVIDER_ADJ 14
        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 HOME_APP at the
    # same memory level as services.
        write /sys/module/lowmemorykiller/parameters/adj 0,1,2,7,14,15
    
        write /proc/sys/vm/overcommit_memory 1
        write /proc/sys/vm/min_free_order_shift 4
        write /sys/module/lowmemorykiller/parameters/minfree 2560,4096,6144,17408,19456,23552
          
        # 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
        chown radio system /sys/camera_led_status/led_ril_status
        chown system system /sys/camera_led_status/led_wimax_status
        chown system system /sys/camera_led_status/led_hotspot_status
        chown media system /sys/android_camera/cam_mode
        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/caps/brightness
        chown system system /sys/class/leds/func/brightness
        chown system system /sys/class/leds/green/brightness
        chown system system /sys/class/leds/amber/brightness
        chown system system /sys/class/leds/green/brightness
        chown system system /sys/class/leds/green/blink
        chown system system /sys/class/leds/green/off_timer
        chown system system /sys/class/leds/amber/blink
        chown system system /sys/class/leds/amber/off_timer
        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 system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
 chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
 chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
        chown radio radio /sys/module/pm/parameters/idle_sleep_mode
    
        # for wireless modem
        chown system system /sys/module/serial/parameters/modem_enabled
        chown system system /dev/ttyHSUSB0
        chown system system /dev/smd9
        chown media media /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
     chown system system /dev/ttyHS0
 chown system system /dev/smd0
     chown system system /dev/smd1
     chown system system /dev/smd27

     chmod 0666 /dev/rfkill
     chmod 0666 /dev/q6venc
     chmod 0666 /dev/ttyHS0
        chmod 0666 /dev/ttyHS1
        chown root radio /proc/cmdline
        chmod 666 /proc/cmdline
    
        chmod 666 /dev/input/event0
        chmod 666 /dev/input/event1
        chmod 666 /dev/input/event2
        chmod 666 /dev/input/event3
        chmod 666 /dev/input/event4
        chmod 666 /dev/input/event5
        chmod 666 /dev/input/event6
        chmod 666 /sys/class/i2c-adapter/i2c-0/0-0018/enable
        chmod 666 /sys/class/i2c-adapter/i2c-0/0-0019/enable
        chmod 666 /sys/class/i2c-adapter/i2c-0/0-0018/rate 
        chmod 666 /sys/class/i2c-adapter/i2c-0/0-0019/rate 
        chmod 666 /sys/class/i2c-adapter/i2c-0/0-0018/scale
        chmod 666 /sys/class/i2c-adapter/i2c-0/0-0019/scale
    
     chmod 666 /dev/uinput
 chmod 666 /dev/msm_aac_in
 chmod 666 /dev/msm_audio_ctl
     chmod 666 /dev/msm_audio_route
     chmod 666 /dev/msm_mp3
     chmod 666 /dev/msm_qcelp_in
    
        chmod 666 /dev/msm_snd
        chmod 666 /dev/msm_pcm_in
        chmod 666 /dev/msm_audpre
        chmod 666 /dev/msm_mp3 
        chmod 666 /dev/msm_pcm_out
        chmod 666 /dev/msm_pcm_ctl
        chmod 666 /dev/msm_hw3dm 
        chmod 666 /dev/msm_hw3dc 
    
    chmod 666 /dev/qmi0
    chmod 666 /dev/qmi1
    chmod 666 /dev/qmi2

    chmod 666 /etc/bluez/audio.conf
    chmod 666 /etc/bluez/hcid.conf
    chmod 666 /etc/bluez/input.conf

    chmod 0777 /dev/kgsl
    chmod 0777 /dev/smd0
    chmod 0777 /dev/smd1
    chmod 0777 /dev/smd27
    chmod 0777 /dev/vfe
    chmod 0777 /dev/camera
    chmod 0777 /dev/msm_camera
    chmod 0777 /dev/vogue_gps
    chmod 0777 /dev/akm8973_aot
    chmod 0777 /dev/akm8973_daemon
    chmod 0777 /dev/compass
    chmod 0777 /dev/lightsensor
    chmod 0777 /dev/bma150
    chmod 0777 /dev/cm3602
    chmod 0777 /dev/htc-acoustic
    # flashlight
    chown system camera /sys/class/leds/flashlight/brightness
    chmod 0666          /sys/class/leds/flashlight/brightness
    chmod 0666          /sys/class/leds/flashlight/max_brightness
#720p cam support
    symlink /dev/msm_camera/control0 /dev/msm_camera/control1
    symlink /dev/msm_camera/frame0 /dev/msm_camera/frame1
    symlink /dev/msm_camera/config0 /dev/msm_camera/config1
    # 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
    
    # Include extra init file
 import /system/etc/init.local.rc
    
    # Wireless properties
        setprop wifi.interface eth0
        setprop net.dns1 208.67.220.220
        setprop net.dns2 208.67.222.222
    
    start sysinit
    
        class_start default
    
    ## Daemon processes to be run by init.
    ##
    service ueventd /sbin/ueventd
        critical
    service console /system/bin/sh
        console
        disabled
        user shell
        group log
    
    on property:ro.secure=0
        start console
    
    # 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 sdcard_rw net_admin net_raw

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
    onrestart restart netd
    
    service media /system/bin/mediaserver
        user media
        group system audio camera graphics inet net_bt net_bt_admin net_raw
        ioprio rt 4
    
    service bootsound /system/bin/playmp3
        user media
        group audio
        oneshot
    
    service bootanim /system/bin/bootanimation
        user graphics
        group system audio 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
        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 ftp /system/bin/sdptool add --channel=20 FTP
    user bluetooth
    group bluetooth net_bt_admin
    disabled
    oneshot
    service installd /system/bin/installd
        socket installd stream 600 system system
    
    
    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 akmd /system/bin/akmd
        user compass
        group compass misc input
              
    service dhcpcd /system/bin/dhcpcd -ABKL eth0
       disabled
       oneshot
    
    # for USB internet sharing
    service udhcpd /system/bin/udhcpd
            disabled
            oneshot
    
    service netsharing_on /system/bin/netsharing net on
            disabled
            oneshot
    
    service netsharing_off /system/bin/netsharing net off
            disabled
            oneshot
    
    service netsharing_pass /system/bin/netsharing net_pass on
            disabled
            oneshot
    
    service modem /system/xbin/wireless_modem
            user system
            group system
            disabled
    
    service zchgd /system/bin/zchgd
            user root
            group root graphics
            oneshot
    
    service dumpstate /system/bin/dumpstate -s
        socket dumpstate stream 0660 shell log
        disabled
        oneshot
    
    on property:dev.bootcomplete=1
        start bootcomplete
    
    service bootcomplete /system/bin/bootcomplete
        user root
        group root
        disabled
        oneshot
    
    service shutdown /system/bin/shutdown
        user root
        group root
        disabled
        oneshot
    
    service ipd /system/bin/ipd
        socket ipd stream 666 root inet
    
    # Execute files in /etc/init.d before booting
    service sysinit /system/bin/logwrapper /system/xbin/busybox run-parts /system/etc/init.d
        disabled
        oneshot
    
    on property:service.modem.enable=1
            start modem
    
    on property:service.modem.enable=0
            stop modem
    
    service srv_ser2net /system/bin/ser2net -n
        disabled
    
    on property:service.ser2net.enable=1
        start srv_ser2net
    
    on property:service.ser2net.enable=0
        stop srv_ser2net

你可能感兴趣的:(android platform env setup)