From ccf081893274c25f108091c71624e96d914dfe0b Mon Sep 17 00:00:00 2001
From: Marcus Stojcevich <mstojcevich@gmail.com>
Date: Thu, 28 Jun 2012 16:36:44 -0400
Subject: [PATCH] Jelly bean
---
default.prop | 2 +-
fstab.tuna | 11 ++++
init.rc | 156 +++++++++++++++++++++++++++--------------------------
init.trace.rc | 31 +++++++++++
init.tuna.rc | 61 ++++++++++++---------
init.tuna.usb.rc | 38 +++++++-------
init.usb.rc | 91 +++++++++++++++++++++++++++++++
sbin/adbd | Bin 142656 -> 141208 bytes
ueventd.rc | 5 +-
ueventd.tuna.rc | 2 +-
12 files changed, 270 insertions(+), 127 deletions(-)
create mode 100644 fstab.tuna
create mode 100755 init.trace.rc
create mode 100755 init.usb.rc
diff --git a/default.prop b/default.prop
index 6850326..e6cc9b4 100644
--- a/default.prop
+++ b/default.prop
@@ -1,7 +1,7 @@
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
-ro.secure=0
+ro.secure=1
ro.allow.mock.location=0
ro.debuggable=0
persist.sys.usb.config=mtp
diff --git a/fstab.tuna b/fstab.tuna
new file mode 100644
index 0000000..d9b7503
--- /dev/null
+++ b/fstab.tuna
@@ -0,0 +1,11 @@
+# Android fstab file.
+#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
+# The filesystem that contains the filesystem checker binary (typically /system) cannot
+# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
+
+
+/dev/block/platform/omap/omap_hsmmc.0/by-name/system /system ext4 ro wait
+/dev/block/platform/omap/omap_hsmmc.0/by-name/efs /factory ext4 ro wait
+/dev/block/platform/omap/omap_hsmmc.0/by-name/cache /cache ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check
+/dev/block/platform/omap/omap_hsmmc.0/by-name/userdata /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,encryptable=/dev/block/platform/omap/omap_hsmmc.0/by-name/metadata
+
diff --git a/init.rc b/init.rc
index 0510696..bb7e4ea 100755
--- a/init.rc
+++ b/init.rc
@@ -1,3 +1,13 @@
+# Copyright (C) 2012 The Android Open Source Project
+#
+# IMPORTANT: Do not create world writable files or directories.
+# This is a common source of Android security bugs.
+#
+
+import /init.${ro.hardware}.rc
+import /init.usb.rc
+import /init.trace.rc
+
on early-init
# Set init and its forked children's oom_adj.
write /proc/1/oom_adj -16
@@ -22,7 +32,7 @@ loglevel 3
export ANDROID_DATA /data
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
+ 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
# Backward compatibility
symlink /system/etc /etc
@@ -68,25 +78,36 @@ loglevel 3
write /proc/sys/kernel/sched_compat_yield 1
write /proc/sys/kernel/sched_child_runs_first 0
write /proc/sys/kernel/randomize_va_space 2
+ write /proc/sys/kernel/kptr_restrict 2
+ write /proc/sys/kernel/dmesg_restrict 1
+ write /proc/sys/vm/mmap_min_addr 32768
+ write /proc/sys/kernel/sched_rt_runtime_us 950000
+ write /proc/sys/kernel/sched_rt_period_us 1000000
# 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
+ chmod 0660 /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
+ write /dev/cpuctl/cpu.rt_runtime_us 950000
+ write /dev/cpuctl/cpu.rt_period_us 1000000
+
+ mkdir /dev/cpuctl/apps
+ chown system system /dev/cpuctl/apps/tasks
+ chmod 0666 /dev/cpuctl/apps/tasks
+ write /dev/cpuctl/apps/cpu.shares 1024
+ write /dev/cpuctl/apps/cpu.rt_runtime_us 800000
+ write /dev/cpuctl/apps/cpu.rt_period_us 1000000
+
+ mkdir /dev/cpuctl/apps/bg_non_interactive
+ chown system system /dev/cpuctl/apps/bg_non_interactive/tasks
+ chmod 0666 /dev/cpuctl/apps/bg_non_interactive/tasks
# 5.0 %
- write /dev/cpuctl/bg_non_interactive/cpu.shares 52
+ write /dev/cpuctl/apps/bg_non_interactive/cpu.shares 52
+ write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_runtime_us 700000
+ write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_period_us 1000000
# Allow everybody to read the xt_qtaguid resource tracking misc dev.
# This is needed by any process that uses socket tagging.
@@ -158,11 +179,17 @@ on post-fs-data
mkdir /data/misc/wifi 0770 wifi wifi
chmod 0660 /data/misc/wifi/wpa_supplicant.conf
mkdir /data/local 0751 root root
+
+ # For security reasons, /data/local/tmp should always be empty.
+ # Do not place files or directories in /data/local/tmp
mkdir /data/local/tmp 0771 shell shell
mkdir /data/data 0771 system system
mkdir /data/app-private 0771 system system
+ mkdir /data/app-asec 0700 root root
mkdir /data/app 0771 system system
mkdir /data/property 0700 root root
+ mkdir /data/ssh 0750 root shell
+ mkdir /data/ssh/empty 0700 root root
# create dalvik-cache, so as to enforce our permissions
mkdir /data/dalvik-cache 0771 system system
@@ -185,11 +212,6 @@ on post-fs-data
# 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
-
on boot
# basic network init
ifup lo
@@ -201,7 +223,7 @@ on boot
# 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.
+# parameters 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
@@ -219,12 +241,34 @@ on boot
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 system system /sys/power/state
+ chown system system /sys/power/wakeup_count
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/devices/system/cpu/cpufreq/interactive/timer_rate
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_rate
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/boost
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/input_boost
+
+ # Assume SMP uses shared cpufreq policy for all CPUs
+ chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
+ chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
+
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
@@ -294,49 +338,6 @@ 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
- 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
- start adbd
- 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
- start adbd
- setprop sys.usb.state $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=*
- setprop sys.usb.config $persist.sys.usb.config
-
## Daemon processes to be run by init.
##
service ueventd /sbin/ueventd
@@ -362,18 +363,6 @@ service adbd /sbin/adbd
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
- restart adbd
- write /sys/class/android_usb/android0/enable 1
-
service servicemanager /system/bin/servicemanager
class core
user system
@@ -393,6 +382,7 @@ service netd /system/bin/netd
class main
socket netd stream 0660 root system
socket dnsproxyd stream 0660 root inet
+ socket mdns stream 0660 root system
service debuggerd /system/bin/debuggerd
class main
@@ -412,7 +402,7 @@ service surfaceflinger /system/bin/surfaceflinger
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
class main
- socket zygote stream 666
+ socket zygote stream 660 root system
onrestart write /sys/android_power/request_state wake
onrestart write /sys/power/state on
onrestart restart media
@@ -421,7 +411,7 @@ service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-sys
service drm /system/bin/drmserver
class main
user drm
- group system inet drmrpc
+ group drm system inet drmrpc sdcard_r
service media /system/bin/mediaserver
class main
@@ -478,7 +468,7 @@ service mtpd /system/bin/mtpd
service keystore /system/bin/keystore /data/misc/keystore
class main
user keystore
- group keystore
+ group keystore drmrpc
socket keystore stream 666
service dumpstate /system/bin/dumpstate -s
@@ -486,3 +476,15 @@ service dumpstate /system/bin/dumpstate -s
socket dumpstate stream 0660 shell log
disabled
oneshot
+
+service sshd /system/bin/start-ssh
+ class main
+ disabled
+
+service mdnsd /system/bin/mdnsd
+ class main
+ user mdnsr
+ group inet net_raw
+ socket mdnsd stream 0660 mdnsr inet
+ disabled
+ oneshot
diff --git a/init.trace.rc b/init.trace.rc
new file mode 100755
index 0000000..1d114f5
--- /dev/null
+++ b/init.trace.rc
@@ -0,0 +1,31 @@
+## Permissions to allow system-wide tracing to the kernel trace buffer.
+##
+on boot
+
+# Allow writing to the kernel trace log.
+ chmod 0222 /sys/kernel/debug/tracing/trace_marker
+
+# Allow the shell group to enable (some) kernel tracing.
+ chown root shell /sys/kernel/debug/tracing/trace_clock
+ chown root shell /sys/kernel/debug/tracing/buffer_size_kb
+ chown root shell /sys/kernel/debug/tracing/options/overwrite
+ chown root shell /sys/kernel/debug/tracing/events/sched/sched_switch/enable
+ chown root shell /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable
+ chown root shell /sys/kernel/debug/tracing/events/power/cpu_frequency/enable
+ chown root shell /sys/kernel/debug/tracing/events/power/cpu_idle/enable
+ chown root shell /sys/kernel/debug/tracing/events/cpufreq_interactive/enable
+ chown root shell /sys/kernel/debug/tracing/tracing_on
+
+ chmod 0664 /sys/kernel/debug/tracing/trace_clock
+ chmod 0664 /sys/kernel/debug/tracing/buffer_size_kb
+ chmod 0664 /sys/kernel/debug/tracing/options/overwrite
+ chmod 0664 /sys/kernel/debug/tracing/events/sched/sched_switch/enable
+ chmod 0664 /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable
+ chmod 0664 /sys/kernel/debug/tracing/events/power/cpu_frequency/enable
+ chmod 0664 /sys/kernel/debug/tracing/events/power/cpu_idle/enable
+ chmod 0664 /sys/kernel/debug/tracing/events/cpufreq_interactive/enable
+ chmod 0664 /sys/kernel/debug/tracing/tracing_on
+
+# Allow only the shell group to read and truncate the kernel trace.
+ chown root shell /sys/kernel/debug/tracing/trace
+ chmod 0660 /sys/kernel/debug/tracing/trace
diff --git a/init.tuna.rc b/init.tuna.rc
index 70f1cbe..070ab1d 100755
--- a/init.tuna.rc
+++ b/init.tuna.rc
@@ -1,14 +1,16 @@
import init.tuna.usb.rc
on early-init
- export EXTERNAL_STORAGE /mnt/sdcard
- mkdir /mnt/sdcard 0000 system system
+ export EXTERNAL_STORAGE /storage/sdcard0
+ mkdir /storage 0050 system sdcard_r
+ mkdir /storage/sdcard0 0000 system system
# for backwards compatibility
- symlink /mnt/sdcard /sdcard
+ symlink /storage/sdcard0 /sdcard
+ symlink /storage/sdcard0 /mnt/sdcard
on post-fs-data
- # we will remap this as /mnt/sdcard with the sdcard fuse tool
- mkdir /data/media 0775 media_rw media_rw
+ # we will remap this as /storage/sdcard0 with the sdcard fuse tool
+ mkdir /data/media 0770 media_rw media_rw
chown media_rw media_rw /data/media
mkdir /data/misc/wifi 0770 wifi wifi
mkdir /data/misc/wifi/sockets 0770 wifi wifi
@@ -23,6 +25,9 @@ on post-fs-data
mkdir /data/misc/camera 0770 media media
mkdir /data/misc/camera/R5_MVEN003_LD2_ND0_IR0_SH0_FL1_SVEN003_DCCID1044 0770 media media
+ mkdir /data/radio 0775 radio radio
+ mkdir /data/radio/log 0775 radio radio
+
setprop vold.post_fs_data_done 1
# LTE
@@ -36,15 +41,6 @@ on post-fs-data
on boot
mount debugfs /sys/kernel/debug /sys/kernel/debug
chmod 0666 /dev/pvrsrvkm
- setprop ro.crypto.keyfile.userdata /dev/block/platform/omap/omap_hsmmc.0/by-name/metadata
-
-# Lower maximum frequency when screen is off
- write /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq 700000
-
-# cpufreq interactive governor: timer 20ms, min sample 20ms, hispeed 700MHz
- write /sys/devices/system/cpu/cpufreq/interactive/timer_rate 20000
- write /sys/devices/system/cpu/cpufreq/interactive/min_sample_time 20000
- write /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq 700000
# autosuspend root hubs immediatly after attached devices
write /sys/bus/usb/devices/usb1/power/autosuspend_delay_ms 0
@@ -52,11 +48,7 @@ on boot
on fs
mkdir /factory 0775 radio radio
- mount ext4 /dev/block/platform/omap/omap_hsmmc.0/by-name/system /system wait ro
- setprop ro.crypto.tmpfs_options size=128m,mode=0771,uid=1000,gid=1000
- mount ext4 /dev/block/platform/omap/omap_hsmmc.0/by-name/userdata /data wait noatime nosuid nodev nomblk_io_submit,errors=panic
- mount ext4 /dev/block/platform/omap/omap_hsmmc.0/by-name/cache /cache wait noatime nosuid nodev nomblk_io_submit,errors=panic
- mount ext4 /dev/block/platform/omap/omap_hsmmc.0/by-name/efs /factory wait ro
+ mount_all /fstab.tuna
setprop ro.crypto.fuse_sdcard true
# change permissions for mtd device
@@ -77,8 +69,6 @@ on fs
# We chown/chmod /factory because mount is run as root + defaults
chown radio radio /factory
chmod 0775 /factory
- mkdir /data/radio 0775 radio radio
- mkdir /data/radio/log 0775 radio radio
# add symlink for HDCP key
symlink /factory/hdcp.keys /system/vendor/firmware/hdcp.keys
@@ -116,10 +106,10 @@ on fs
chown radio radio /sys/bus/usb/devices/usb1/power/control
on property:persist.sys.tuna.off_mode=*
- write /d/pm_debug/enable_off_mode $persist.sys.tuna.off_mode
+ write /d/pm_debug/enable_off_mode ${persist.sys.tuna.off_mode}
on property:ril.modem.lte.powercontrol=*
- write /sys/bus/usb/devices/1-1/power/control $ril.modem.lte.powercontrol
+ write /sys/bus/usb/devices/1-1/power/control ${ril.modem.lte.powercontrol}
service fRom /system/bin/fRom \
-x /data/misc/camera/R5_MVEN003_LD2_ND0_IR0_SH0_FL1_SVEN003_DCCID1044 \
@@ -138,7 +128,7 @@ service hciattach /system/bin/brcm_patchram_plus --enable_hci --no2bytes --enabl
disabled
oneshot
-service pvrsrvinit /vendor/bin/pvrsrvinit
+service pvrsrvctl /vendor/bin/pvrsrvctl --start --no-module
class core
user root
group root
@@ -167,14 +157,26 @@ service smc_pa_wvdrm /system/bin/smc_pa_ctrl \
group drmrpc
oneshot
-# create virtual SD card at /mnt/sdcard, based on the /data/media directory
+# create virtual SD card at /storage/sdcard0, based on the /data/media directory
# daemon will drop to user/group system/media_rw after initializing
# underlying files in /data/media will be created with user and group media_rw (1023)
service sdcard /system/bin/sdcard /data/media 1023 1023
class late_start
+service p2p_supplicant /system/bin/wpa_supplicant \
+ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -N \
+ -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf -e/data/misc/wifi/entropy.bin -puse_p2p_group_interface=1
+ # we will start as root and wpa_supplicant will switch to user wifi
+ # after setting up the capabilities required for WEXT
+ # user wifi
+ # group wifi inet keystore
+ class main
+ socket wpa_wlan0 dgram 660 wifi wifi
+ disabled
+ oneshot
+
service wpa_supplicant /system/bin/wpa_supplicant \
- -Dnl80211 -iwlan0 -puse_p2p_group_interface=1 -e/data/misc/wifi/entropy.bin
+ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -e/data/misc/wifi/entropy.bin
# we will start as root and wpa_supplicant will switch to user wifi
# after setting up the capabilities required for WEXT
# user wifi
@@ -184,7 +186,7 @@ service wpa_supplicant /system/bin/wpa_supplicant \
disabled
oneshot
-service dhcpcd_wlan0 /system/bin/dhcpcd -ABKL
+service dhcpcd_wlan0 /system/bin/dhcpcd -aABKL
class main
disabled
oneshot
@@ -199,6 +201,11 @@ service dhcpcd_bnep0 /system/bin/dhcpcd -ABKL
disabled
oneshot
+service dhcpcd_eth0 /system/bin/dhcpcd -ABKL
+ class main
+ disabled
+ oneshot
+
service iprenew_wlan0 /system/bin/dhcpcd -n
class main
disabled
diff --git a/init.tuna.usb.rc b/init.tuna.usb.rc
index 20bf090..e86a7bd 100755
--- a/init.tuna.usb.rc
+++ b/init.tuna.usb.rc
@@ -1,79 +1,79 @@
on init
- write /sys/class/android_usb/android0/iSerial $ro.serialno
+ write /sys/class/android_usb/android0/iSerial ${ro.serialno}
write /sys/class/android_usb/android0/f_rndis/manufacturer Samsung
write /sys/class/android_usb/android0/f_rndis/vendorID 04e8
write /sys/class/android_usb/android0/f_rndis/wceis 1
on boot
- write /sys/class/android_usb/android0/iManufacturer $ro.product.manufacturer
- write /sys/class/android_usb/android0/iProduct $ro.product.model
+ write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
+ write /sys/class/android_usb/android0/iProduct ${ro.product.model}
on property:sys.usb.config=mtp
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 685c
- write /sys/class/android_usb/android0/functions $sys.usb.config
+ 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
+ setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mtp,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6860
- write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
start adbd
- setprop sys.usb.state $sys.usb.config
+ setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6863
- write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/bDeviceClass 224
write /sys/class/android_usb/android0/enable 1
- setprop sys.usb.state $sys.usb.config
+ setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6864
- write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/bDeviceClass 224
write /sys/class/android_usb/android0/enable 1
start adbd
- setprop sys.usb.state $sys.usb.config
+ setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ptp
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6865
- write /sys/class/android_usb/android0/functions $sys.usb.config
+ 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
+ setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ptp,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6866
- write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
start adbd
- setprop sys.usb.state $sys.usb.config
+ setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,dm
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6864
- write /sys/class/android_usb/android0/functions $sys.usb.config
+ 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
+ setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,acm,dm
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 04e8
write /sys/class/android_usb/android0/idProduct 6864
- write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/f_acm/instances 1
write /sys/class/android_usb/android0/enable 1
- setprop sys.usb.state $sys.usb.config
+ setprop sys.usb.state ${sys.usb.config}
diff --git a/init.usb.rc b/init.usb.rc
new file mode 100755
index 0000000..15467cc
--- /dev/null
+++ b/init.usb.rc
@@ -0,0 +1,91 @@
+# Copyright (C) 2012 The Android Open Source Project
+#
+# USB configuration common for all android devices
+#
+
+on post-fs-data
+ 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
+
+# Used to disable USB when switching states
+on property:sys.usb.config=none
+ 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
+ start adbd
+ 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
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# audio accessory configuration
+on property:sys.usb.config=audio_source
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d02
+ 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}
+
+# audio accessory configuration, with adb
+on property:sys.usb.config=audio_source,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d03
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# USB and audio accessory configuration
+on property:sys.usb.config=accessory,audio_source
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d04
+ 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 and audio accessory configuration, with adb
+on property:sys.usb.config=accessory,audio_source,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d05
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${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=*
+ setprop sys.usb.config ${persist.sys.usb.config}
diff --git a/ueventd.rc b/ueventd.rc
index 438cf0a..07624c4 100644
--- a/ueventd.rc
+++ b/ueventd.rc
@@ -8,8 +8,9 @@
/dev/ashmem 0666 root root
/dev/binder 0666 root root
-# logger should be world writable (for logging) but not readable
-/dev/log/* 0662 root log
+# Anyone can read the logs, but if they're not in the "logs"
+# group, then they'll only see log entries for their UID.
+/dev/log/* 0666 root log
# the msm hw3d client device node is world writable/readable.
/dev/msm_hw3dc 0666 root root
diff --git a/ueventd.tuna.rc b/ueventd.tuna.rc
index d1a8b47..23cd5ab 100644
--- a/ueventd.tuna.rc
+++ b/ueventd.tuna.rc
@@ -1,5 +1,5 @@
#for DSSCOMP
-/dev/dsscomp 0666 system system
+/dev/dsscomp 0660 system system
/dev/tiler 0666 system system
#for SYSLINK
--
1.7.9.1