From ccf081893274c25f108091c71624e96d914dfe0b Mon Sep 17 00:00:00 2001 From: Marcus Stojcevich 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. +# +# 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