Skip to content
Browse files

2nd-boot for mb526, use DDK 1.8 with modules on ICS

(squashed commit)

disabled SGX and OMAPLFB

2.6.32.60 2nd-boot ics kernel based on :
https://github.com/tpruvot/jordan-kernel/commits/2.6.32-ics-mb526

wifi: symlink kernel modules regarding the kernel variant
  • Loading branch information...
1 parent bd47317 commit 6b8119e8d98a919249f8224916f023e6c1bc2d7f @tpruvot committed Nov 13, 2012
View
9 bootmenu/bootmenu.mk
@@ -35,16 +35,9 @@ PRODUCT_COPY_FILES += \
${bm_device}/profiles/2nd-boot/hboot.cfg:system/bootmenu/2nd-boot/hboot.cfg \
${bm_device}/profiles/2nd-boot/cmdline:system/bootmenu/2nd-boot/cmdline \
${bm_device}/profiles/2nd-boot/devtree:system/bootmenu/2nd-boot/devtree \
- ${bm_device}/profiles/2nd-boot/ramdisk:system/bootmenu/2nd-boot/ramdisk \
+ ${bm_device}/profiles/2nd-boot/ramdisk.gz:system/bootmenu/2nd-boot/ramdisk.gz \
${bm_device}/profiles/2nd-boot/zImage:system/bootmenu/2nd-boot/zImage \
-# Ramdisk (mkbootfs tool is required to create profiles/2nd-boot/ramdisk image)
-PRODUCT_COPY_FILES += \
- ${bm_device}/profiles/ramdisk/ueventd.rc:root/ueventd.rc \
- ${bm_device}/profiles/ramdisk/init.usb.rc:root/init.usb.rc \
- ${bm_device}/profiles/ramdisk/init.mapphone_umts.rc:root/init.mapphone_umts.rc \
- ${bm_device}/bootmenu/binary/adbd:root/sbin/adbd \
-
# scripts
PRODUCT_COPY_FILES += \
${bm_device}/bootmenu/script/2nd-init.sh:system/bootmenu/script/2nd-init.sh \
View
2 jordan-blobs.mk
@@ -50,6 +50,8 @@ PRODUCT_COPY_FILES += \
$(DEVICE_PREBUILT)/etc/init.d/06ion:system/etc/init.d/06ion \
$(DEVICE_PREBUILT)/etc/init.d/07camera:system/etc/init.d/07camera \
$(DEVICE_PREBUILT)/etc/init.d/08backlight:system/etc/init.d/08backlight \
+ $(DEVICE_PREBUILT)/etc/init.d/10wifi:system/etc/init.d/10wifi \
+ $(DEVICE_PREBUILT)/etc/init.d/20system_ro:system/etc/init.d/20system_ro \
$(DEVICE_PREBUILT)/etc/init.d/90multitouch:system/etc/init.d/90multitouch \
$(DEVICE_PREBUILT)/etc/profile:system/etc/profile \
$(DEVICE_PREBUILT)/etc/sysctl.conf:system/etc/sysctl.conf \
View
BIN modules-2ndboot/backlight-2ndboot.ko
Binary file not shown.
View
BIN modules-2ndboot/cifs-2ndboot.ko
Binary file not shown.
View
BIN modules-2ndboot/klogger-2ndboot.ko
Binary file not shown.
View
BIN modules-2ndboot/modem_pm_driver-2ndboot.ko
Binary file not shown.
View
BIN modules-2ndboot/netmux-2ndboot.ko
Binary file not shown.
View
BIN modules-2ndboot/netmux_linkdriver-2ndboot.ko
Binary file not shown.
View
BIN modules-2ndboot/omaplfb-2ndboot.ko
Binary file not shown.
View
BIN modules-2ndboot/pvrsrvkm-2ndboot.ko
Binary file not shown.
View
BIN modules-2ndboot/symsearch-2ndboot.ko
Binary file not shown.
View
BIN modules-2ndboot/tiap_drv-2ndboot.ko
Binary file not shown.
View
BIN modules-2ndboot/tiwlan_drv-2ndboot.ko
Binary file not shown.
View
0 modules/tiap_drv.ko → modules/tiap_drv-stock.ko
File renamed without changes.
View
0 modules/tiwlan_drv.ko → modules/tiwlan_drv-stock.ko
File renamed without changes.
View
9 prebuilt/etc/init.d/04filesystems
@@ -2,10 +2,19 @@
#
# Load cifs and ext4 kernel modules
+if [ ! -f /proc/config.gz ]; then
+
#insmod /system/lib/modules/slow-work.ko
busybox insmod /system/lib/modules/nls_utf8.ko
busybox insmod /system/lib/modules/cifs-stock.ko
busybox insmod /system/lib/modules/jbd2.ko
busybox insmod /system/lib/modules/ext4.ko
+else
+
+ # on custom kernel, only load cifs
+
+ busybox insmod /system/lib/modules/cifs-2ndboot.ko
+
+fi
View
3 prebuilt/etc/init.d/08backlight
@@ -4,6 +4,9 @@
# Module location
MODULE="/system/lib/modules/backlight.ko"
+if [ -f /proc/config.gz ]; then
+ MODULE="/system/lib/modules/backlight-2ndboot.ko"
+fi
# Property to disable the module
LOAD_MODULE=`getprop persist.sys.backlight.disable`
View
41 prebuilt/etc/init.d/10wifi
@@ -0,0 +1,41 @@
+#!/system/bin/sh
+#
+# symlink wifi module for 2ndinit vs 2ndboot kernels
+
+# Module location
+MODULE_DIR="/system/lib/modules"
+
+busybox mount -o remount,rw /system
+
+if [ -L $MODULE_DIR/tiwlan_drv.ko ]; then
+ rm $MODULE_DIR/tiwlan_drv.ko
+else
+ log -t wifi tiwlan_drv.ko is not a symlink !
+fi
+
+if [ -L $MODULE_DIR/tiap_drv.ko ]; then
+ rm $MODULE_DIR/tiap_drv.ko
+else
+ log -t wifi tiap_drv.ko is not a symlink !
+fi
+
+
+# Unlike other modules, the wifi can't be included in kernel, so
+# we need to symlink the module regarding the kernel variant
+
+if [ -f /proc/config.gz ]; then
+
+ # custom kernel
+
+ ln -s $MODULE_DIR/tiwlan_drv-2ndboot.ko $MODULE_DIR/tiwlan_drv.ko
+ ln -s $MODULE_DIR/tiap_drv-2ndboot.ko $MODULE_DIR/tiap_drv.ko
+
+else
+
+ # stock kernel
+
+ ln -s $MODULE_DIR/tiwlan_drv-stock.ko $MODULE_DIR/tiwlan_drv.ko
+ ln -s $MODULE_DIR/tiap_drv-stock.ko $MODULE_DIR/tiap_drv.ko
+
+fi
+
View
6 prebuilt/etc/init.d/20system_ro
@@ -0,0 +1,6 @@
+#!/system/bin/sh
+#
+# Set /system read only
+
+busybox mount -o remount,ro /system
+
View
12 prebuilt/etc/init.d/90multitouch
@@ -11,5 +11,13 @@ if [ -z "$MAX_TOUCH" ]; then
MAX_TOUCH=2
fi
-# Load the module
-insmod $MODULE touch_num=$MAX_TOUCH
+# Don't load on custom kernel
+if [ -f /proc/config.gz ]; then
+
+ echo $MAX_TOUCH > /proc/multitouch/num
+
+else
+ # Load the module
+ insmod $MODULE touch_num=$MAX_TOUCH
+
+fi
View
8 profiles/2nd-boot/extract_ramdisk.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+gunzip ramdisk.gz
+
+rm -rf ./root
+mkdir root
+cd root && cat ../ramdisk | cpio -i
+
View
2 profiles/2nd-boot/hboot.cfg
@@ -1,5 +1,5 @@
0 file ./hboot.bin
1 file ./zImage
-2 file ./ramdisk
+2 file ./ramdisk.gz
3 file ./devtree
4 file ./cmdline
View
BIN profiles/2nd-boot/ramdisk
Binary file not shown.
View
BIN profiles/2nd-boot/ramdisk.gz
Binary file not shown.
View
6 profiles/2nd-boot/repack_ramdisk.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+[ -z "$ANDROID_BUILD_TOP"] && ANDROID_BUILD_TOP=/cm9
+
+$ANDROID_BUILD_TOP/out/host/linux-x86/bin/mkbootfs root/ | gzip > ramdisk.gz
+
View
BIN profiles/2nd-boot/zImage
Binary file not shown.
View
107 profiles/ramdisk/init.mapphone_umts.rc
@@ -1,5 +1,9 @@
on init
+ write /sys/class/leds/red/brightness 1
+
+loglevel 9
+
# change order or library location search
export LD_LIBRARY_PATH /system/lib
export DSP_PATH /system/lib/dsp
@@ -9,107 +13,120 @@ on init
mkdir /mnt/sdcard 0700 root root
symlink /mnt/sdcard /sdcard
- #Adb at boot
- #write /dev/usb_device_mode charge_adb
- #write /tmp/usbd_current_state usb_mode_charge_adb
- #chmod 0666 /tmp/usbd_current_state
- #start adbd
+on fs
+
+ # Mount mmc partitions
+ mkdir /pds 0775 system system
+
+ exec /system/bin/e2fsck -y /dev/block/mmcblk1p21
+
+ mount ext3 /dev/block/mmcblk1p21 /system
+ mount ext3 /dev/block/mmcblk1p21 /system ro remount
+ mount ext3 /dev/block/mmcblk1p24 /cache nosuid nodev noatime nodiratime barrier=0
+ mount ext3 /dev/block/mmcblk1p25 /data nosuid nodev noatime nodiratime barrier=0
+
+ #mount ext4 /dev/block/mmcblk1p24 /cache wait noatime nodev barrier=0 nobh data=writeback noauto_da_alloc commit=30
+ #mount ext4 /dev/block/mmcblk1p25 /data wait noatime nodev barrier=0 nobh data=writeback noauto_da_alloc commit=30
+ mount debugfs debugfs /sys/kernel/debug
on post-fs
- write /sys/class/leds/red/brightness 1
+ write /sys/class/leds/blue/brightness 1
symlink mmcblk1p21 /dev/block/system
symlink mmcblk1p24 /dev/block/cache
symlink mmcblk1p25 /dev/block/userdata
+ # Adb at boot
+ #write /dev/usb_device_mode charge_adb
+ #write /tmp/usbd_current_state usb_mode_charge_adb
+ #chmod 0666 /tmp/usbd_current_state
+ #start adbd
+
# Load new kernel modules
insmod /system/lib/modules/netmux-2ndboot.ko
insmod /system/lib/modules/netmux_linkdriver-2ndboot.ko
insmod /system/lib/modules/modem_pm_driver-2ndboot.ko
insmod /system/lib/modules/cifs-2ndboot.ko
- # Overclock after 2ndboot.
- # exec /sbin/sh /system/bootmenu/script/overclock.sh
-
-on fs
-
-# Mount mmc partitions
- mkdir /pds 0775 system system
- mount ext3 /dev/block/mmcblk1p21 /system
- mount ext3 /dev/block/mmcblk1p21 /system ro remount
- mount ext3 /dev/block/mmcblk1p24 /cache nosuid nodev noatime nodiratime barrier=0
- mount ext3 /dev/block/mmcblk1p25 /data nosuid nodev noatime nodiratime barrier=0
-
- mount ext4 /dev/block/mmcblk1p24 /cache noatime noauto_da_alloc nosuid nodev nodiratime barrier=0 nobh
- mount ext4 /dev/block/mmcblk1p25 /data noatime noauto_da_alloc nosuid nodev nodiratime barrier=0 nobh
-
-on post-fs
-
- write /sys/class/leds/blue/brightness 1
-
-# Backward compatibility
+ # Backward compatibility
symlink /dev /dev/netmux
symlink /dev/ttyGS0 /dev/acm0
symlink /dev/hp3a-omap /dev/hp3A-omap
mount rootfs rootfs / rw remount
-# PDS Mount
+ # Load the SGX modules
+ insmod /system/lib/modules/pvrsrvkm-2ndboot.ko
+ insmod /system/lib/modules/omaplfb-2ndboot.ko
+ insmod /system/lib/modules/symsearch-2ndboot.ko
+
+ # Overclock after 2ndboot.
+ exec /sbin/sh /system/bootmenu/script/overclock.sh
+
+ # PDS Mount
exec /system/bootmenu/script/pdsbackup.sh
-# Busybox
+ # Busybox
mkdir /data/local/tmp 0777 system shell
export HISTFILE /data/local/tmp/.ash_history
export HISTFILESIZE 1000
export ENV /system/etc/profile
-# Mount tmp, we dont have swap, use ramfs which can grow if required
+ # Mount tmp, use ramfs which can grow if required
mkdir /tmp
mount ramfs ramfs /tmp size=512k relatime
chmod 0777 /tmp
chown system shell /tmp
-# Restore good uid, mount as ramfs reset to root root 755
+ # Restore good uid, mount as ramfs reset to root root 755
chown root system /mnt/asec
chmod 0755 /mnt/asec
chown root system /mnt/obb
chmod 0755 /mnt/obb
-# Configure kernel options
+ # Configure kernel options
+ ##########################
+
# Enable automatic power control for EHCI USB IPC
write /sys/devices/platform/ehci-omap.0/usb1/power/level auto
write /sys/devices/platform/ehci-omap.0/usb1/power/autosuspend 0
write /sys/devices/platform/ehci-omap.0/usb1/1-3/power/level auto
write /sys/devices/platform/ehci-omap.0/usb1/1-3/power/autosuspend 0
+
# Disable a system-wide task dump on OOM in default
write /proc/sys/vm/oom_dump_tasks 0
write /proc/sys/fs/suid_dumpable 2
+
# Power Management
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ondemand
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000
write /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold 86
write /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate 46875
write /sys/power/sr_vdd1_autocomp 1
write /sys/power/sr_vdd2_autocomp 1
-# Change ownership for vibrators
+
+ # Change ownership for vibrators
chown system system /sys/class/timed_output/vibrator/enable
chown system system /sys/class/timed_output/vibrator/sweep
chmod 0660 /sys/class/timed_output/vibrator/enable
chmod 0660 /sys/class/timed_output/vibrator/sweep
-# bluetooth power up/down interface (wl127x Bluetooth and hci0)
+
+ # bluetooth power up/down interface (wl127x Bluetooth and hci0)
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
chmod 0660 /sys/class/rfkill/rfkill0/state
-# Tweaks
+ # Tweaks
write /sys/block/mmcblk0/bdi/read_ahead_kb 512
on post-fs-data
+ write /sys/class/leds/red/brightness 0
+
# event in bootmenu (cpu settings & postbootmenu)
- exec /system/bin/logwrapper postbootmenu
+ # exec /system/bin/bootmenu postbootmenu
mount rootfs rootfs / ro remount
@@ -161,14 +178,6 @@ on post-fs-data
setprop vold.post_fs_data_done 1
-## TESTING....
-
- write /sys/class/leds/red/brightness 0
- write /sys/class/leds/blue/brightness 0
- write /sys/class/leds/green/brightness 1
-
- exec /system/bin/bootmenu
-
on boot
# Enable panic on softlockup
@@ -208,6 +217,8 @@ on boot
exec /system/bin/mot_boot_mode
class_start charger
+ write /sys/class/leds/blue/brightness 0
+
on charger
on property:sys.chargeonly.mode=1
class_reset main
@@ -218,7 +229,7 @@ on property:sys.chargeonly.mode=1
on property:init.svc.wpa_supplicant=stopped
stop dhcpcd
-#TODO: key shortcuts seems buggy in ics
+# TODO: key shortcuts seems buggy in ics (see KEYCHORD kernel feature)
service reboot_key /system/bin/reboot
user system
group root
@@ -231,10 +242,10 @@ service usbd /system/bin/usbd
user root
socket usbd stream 666 root system
-service bp-ptc /system/bin/bp_ptc
- class main
- user root
- group root
+#service bp-ptc /system/bin/bp_ptc
+# class main
+# user root
+# group root
service charge /system/bin/charge_only_mode
group root
View
505 profiles/ramdisk/init.rc
@@ -0,0 +1,505 @@
+on early-init
+ start ueventd
+
+on init
+ loglevel 3
+ log "== init.rc: on init -----------------------"
+
+ # Set init and its forked children's oom_adj.
+ write /proc/1/oom_adj -16
+
+ # create mountpoints
+ mkdir /mnt 0775 root system
+
+ sysclktz 0
+
+ # setup the global environment
+ export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
+ export LD_LIBRARY_PATH /vendor/lib:/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 LOOP_MOUNTPOINT /mnt/obb
+ 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/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/filterfw.jar
+
+ # Backward compatibility
+ symlink /system/etc /etc
+ symlink /sys/kernel/debug /d
+
+ # Right now vendor lives on the same filesystem as system,
+ # but someday that may change.
+ symlink /system/vendor /vendor
+
+ # Create cgroup mount point for cpu accounting
+ mkdir /acct
+ mount cgroup none /acct cpuacct
+ mkdir /acct/uid
+
+ 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
+
+ # Filesystem image public mount points.
+ mkdir /mnt/obb 0700 root system
+ mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000
+
+ 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 0666 /dev/cpuctl/tasks
+ write /dev/cpuctl/cpu.shares 1024
+
+ mkdir /dev/cpuctl/fg_boost
+ chown system system /dev/cpuctl/fg_boost/tasks
+ chmod 0666 /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 0666 /dev/cpuctl/bg_non_interactive/tasks
+
+ # 5.0 %
+ write /dev/cpuctl/bg_non_interactive/cpu.shares 52
+
+ # Allow everybody to read the xt_qtaguid resource tracking misc dev.
+ # This is needed by any process that uses socket tagging.
+ chmod 0644 /dev/xt_qtaguid
+
+on fs
+ log "== init.rc: on fs -------------------------"
+
+on post-fs
+ log "== init.rc: on post-fs --------------------"
+
+ # once everything is setup, no need to modify /
+ mount rootfs rootfs / ro remount
+
+ # We chown/chmod /cache again so because mount is run as root + defaults
+ chown system cache /cache
+ chmod 0775 /cache
+
+ # This may have been created by the recovery system with odd permissions
+ chown system cache /cache/recovery
+ chmod 0775 /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 the lost+found directories, so as to enforce our permissions
+ mkdir /cache/lost+found 0770 root root
+
+on post-fs-data
+ log "== init.rc: on post-fs-data ---------------"
+
+ # 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 0750 root log
+
+ # 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
+
+ # 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/keychain 0771 system system
+ mkdir /data/misc/vpn 0770 system vpn
+ mkdir /data/misc/systemkeys 0700 system system
+ # give system access to wpa_supplicant.conf for backup and restore
+ mkdir /data/misc/wifi 0770 wifi 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, so as to enforce our permissions
+ mkdir /data/dalvik-cache 0771 system system
+
+ # create resource-cache and double-check the perms
+ mkdir /data/resource-cache 0771 system system
+ chown system system /data/resource-cache
+ chmod 0771 /data/resource-cache
+
+ # create the lost+found directories, so as to enforce our permissions
+ mkdir /data/lost+found 0770 root root
+
+ # create directory for DRM plug-ins
+ mkdir /data/drm 0774 drm drm
+
+ # If there is no fs-post-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
+
+ #chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
+ #chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
+ #chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
+ #chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr
+
+ chown system system /sys/devices/platform/usb_mass_storage/lun0/file
+ chmod 0660 /sys/devices/platform/usb_mass_storage/lun0/file
+
+# Include extra init file
+ import /system/etc/init.local.rc
+
+on boot
+ log "== init.rc: 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
+
+# Memory management. Basic kernel parameters, and allow the high
+# level system server to be able to adjust the kernel OOM driver
+# paramters to match how it is managing things.
+ write /proc/sys/vm/overcommit_memory 1
+ write /proc/sys/vm/min_free_order_shift 4
+ chown root system /sys/module/lowmemorykiller/parameters/adj
+ chmod 0664 /sys/module/lowmemorykiller/parameters/adj
+ chown root system /sys/module/lowmemorykiller/parameters/minfree
+ chmod 0664 /sys/module/lowmemorykiller/parameters/minfree
+
+ # 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 524288,1048576,2097152,262144,524288,1048576
+# setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576
+ setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
+ setprop net.tcp.buffersize.hspa 4094,87380,262144,4096,16384,262144
+ setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
+ setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
+
+# Set this property so surfaceflinger is not started by system_init
+ setprop system_init.startsurfaceflinger 0
+
+# Run sysinit
+ exec /system/bin/sysinit
+
+ class_start core
+ class_start main
+
+on nonencrypted
+ log "== init.rc: on nonencrypted ---------------"
+ class_start late_start
+
+on charger
+ log "== init.rc: on charger --------------------"
+ class_start charger
+
+on property:vold.decrypt=trigger_reset_main
+ class_reset main
+
+on property:vold.decrypt=trigger_load_persist_props
+ load_persist_props
+
+on property:vold.decrypt=trigger_post_fs_data
+ trigger post-fs-data
+
+on property:vold.decrypt=trigger_restart_min_framework
+ class_start main
+
+on property:vold.decrypt=trigger_restart_framework
+ class_start main
+ class_start late_start
+
+on property:vold.decrypt=trigger_shutdown_framework
+ class_reset late_start
+ class_reset main
+
+# Used to disable USB when switching states
+on property:sys.usb.config=none
+ log "on property sys.usb.config:" $sys.usb.config
+ stop adbd
+ #write /sys/class/android_usb/android0/enable 0
+ #write /sys/class/android_usb/android0/bDeviceClass 0
+ setprop sys.usb.state $sys.usb.config
+
+# adb only USB configuration
+# This should only be used during device bringup
+# and as a fallback if the USB manager fails to set a standard configuration
+on property:sys.usb.config=adb
+ #write /sys/class/android_usb/android0/enable 0
+ #write /sys/class/android_usb/android0/idVendor 18d1
+ #write /sys/class/android_usb/android0/idProduct D002
+ #write /sys/class/android_usb/android0/functions $sys.usb.config
+ #write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state $sys.usb.config
+
+# USB accessory configuration
+on property:sys.usb.config=accessory
+ #write /sys/class/android_usb/android0/enable 0
+ #write /sys/class/android_usb/android0/idVendor 18d1
+ #write /sys/class/android_usb/android0/idProduct 2d00
+ #write /sys/class/android_usb/android0/functions $sys.usb.config
+ #write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state $sys.usb.config
+
+# USB accessory configuration, with adb
+on property:sys.usb.config=accessory,adb
+ #write /sys/class/android_usb/android0/enable 0
+ #write /sys/class/android_usb/android0/idVendor 18d1
+ #write /sys/class/android_usb/android0/idProduct 2d01
+ #write /sys/class/android_usb/android0/functions $sys.usb.config
+ #write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=*
+ log "on property sys.usb.config:" $sys.usb.config
+
+# Used to set USB configuration at boot and to switch the configuration
+# when changing the default configuration
+on property:persist.sys.usb.config=*
+ log "on property persist.sys.usb.config:" $persist.sys.usb.config
+ setprop sys.usb.config $persist.sys.usb.config
+
+## Daemon processes to be run by init.
+##
+service ueventd /sbin/ueventd
+ class core
+ critical
+
+service console /system/bin/sh
+ class core
+ console
+ disabled
+ user shell
+ group log
+
+on property:ro.debuggable=1
+ start console
+
+# adbd is controlled via property triggers in init.<platform>.usb.rc
+service adbd /sbin/adbd
+ class main
+ group shell
+ user root
+
+# adbd on at boot in emulator
+on property:ro.kernel.qemu=1
+ start adbd
+
+# This property trigger has added to imitiate the previous behavior of "adb root".
+# The adb gadget driver used to reset the USB bus when the adbd daemon exited,
+# and the host side adb relied on this behavior to force it to reconnect with the
+# new adbd instance after init relaunches it. So now we force the USB bus to reset
+# here when adbd sets the service.adb.root property to 1. We also restart adbd here
+# rather than waiting for init to notice its death and restarting it so the timing
+# of USB resetting and adb restarting more closely matches the previous behavior.
+on property:service.adb.root=1
+ #write /sys/class/android_usb/android0/enable 0
+ #write /sys/devices/virtual/usb_composite/adb/enable 0
+ restart adbd
+ #write /sys/devices/virtual/usb_composite/adb/enable 1
+ #write /sys/class/android_usb/android0/enable 1
+
+service servicemanager /system/bin/servicemanager
+ class core
+ user system
+ group system
+ critical
+ onrestart restart zygote
+ onrestart restart media
+
+service vold /system/bin/vold
+ class core
+ socket vold stream 0660 root mount
+ ioprio be 2
+
+service netd /system/bin/netd
+ class main
+ socket netd stream 0660 root system
+ socket dnsproxyd stream 0660 root inet
+
+service debuggerd /system/bin/debuggerd
+ class main
+
+service ril-daemon /system/bin/rild
+ class main
+ socket rild stream 660 root radio
+ socket rild-debug stream 660 radio system
+ user root
+ group radio cache inet misc audio sdcard_rw log
+
+service surfaceflinger /system/bin/surfaceflinger
+ class main
+ user system
+ group graphics
+ onrestart restart zygote
+
+service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
+ class main
+ socket zygote stream 660 root system
+ onrestart write /sys/android_power/request_state wake
+ onrestart write /sys/power/state on
+ onrestart restart media
+ onrestart restart netd
+
+service drm /system/bin/drmserver
+ class main
+ user drm
+ group system inet drmrpc
+
+service media /system/bin/mediaserver
+ class main
+ user media
+ group audio camera graphics inet net_bt net_bt_admin net_bw_acct drmrpc
+ ioprio rt 4
+
+service bootanim /system/bin/bootanimation
+ class main
+ user graphics
+ group graphics
+ disabled
+ oneshot
+
+service dbus /system/bin/dbus-daemon --system --nofork
+ class main
+ socket dbus stream 660 bluetooth bluetooth
+ user bluetooth
+ group bluetooth net_bt_admin
+
+service bluetoothd /system/bin/bluetoothd -n
+ class main
+ 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 installd /system/bin/installd
+ class main
+ socket installd stream 600 system system
+
+service flash_recovery /system/bin/log "flash_recovery service is disabled"
+ class main
+ oneshot
+ disabled
+
+service racoon /system/bin/racoon
+ class main
+ socket racoon stream 600 system system
+ # IKE uses UDP port 500. Racoon will setuid to vpn after binding the port.
+ group vpn net_admin inet
+ disabled
+ oneshot
+
+service mtpd /system/bin/mtpd
+ class main
+ socket mtpd stream 600 system system
+ user vpn
+ group vpn net_admin inet net_raw
+ disabled
+ oneshot
+
+service keystore /system/bin/keystore /data/misc/keystore
+ class main
+ user keystore
+ group keystore
+ socket keystore stream 666
+
+service dumpstate /system/bin/dumpstate -s
+ class main
+ socket dumpstate stream 0660 shell log
+ disabled
+ oneshot

0 comments on commit 6b8119e

Please sign in to comment.
Something went wrong with that request. Please try again.