Are you sure it's the permission problem that resulted in the failure of enabling RIL daemon? What's the radio log saying? And maybe you can try "chown radio /dev/..." instead.
Jack 2011/5/10 JP <j...@avagotech.com>: > Hi All, > I'm new to Android and am confounded with this RIL/phone services > issue in Gingerbread 2.3.3. > Kernel : 2.6.32. Any help/guidance will be much appreciated. > > From adb shell: > $chown system.radio /dev/ttyS0 > enables RIL services and can make phone calls. > > Similar entry in init.rc : > chown system radio /dev/ttyS0 > does not enable RIL services: > > adb_shell> logcat -b radio > D/RILJ> WAKE_LOCK_TIMEOUT mRequestList=5 > > I've attached the init.rc file, below. > > If init.rc is not the right location, please suggest which file should > I set "chown for /dev/ttyS0" in. > > Thanks, > JP > > on early-init > symlink /initlogo.rle.keep /initlogo.rle > start ueventd > > on init > sysclktz 0 > loglevel 3 > > # setup the global environment > export PATH /sbin:/system/sbin:/system/bin:/system/xbin > export LD_LIBRARY_PATH /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 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 > > # fake some battery state > setprop status.battery.state Slow > setprop status.battery.level 5 > setprop status.battery.level_raw 50 > setprop status.battery.level_scale 9 > > # Backward compatibility > symlink /system/etc /etc > symlink /sys/kernel/debug /d > > # 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 > > ## mount rootfs rootfs / ro 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_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 > > # Power Management Patches > chmod 0777 /sys/power/state > chmod 0777 /sys/power/wake_lock > chmod 0777 /sys/power/wake_unlock > chmod 0777 /sys/power/wait_for_fb_sleep > chmod 0777 /sys/power/wait_for_fb_wake > chmod 0777 /sys/power/r_vdd1_autocomp > chmod 0777 /sys/power/sr_vdd2_autocomp > > # Brightness Control Patches > chmod 0777 /sys/devices/platform/omapdss/generic-bl/backlight/ > omap3evm-bklight/brightness > > # mount sdcard third partition on /part-3 > mkdir /part-3 > mount vfat /dev/block/mmcblk0p3 /part-3/ > > # mount mtd partitions > > # 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 > 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 > > # change permissions for Camera > chmod 0777 /dev/video0 > chmod 0777 /dev/video3 > > # change permissions for Overlay > chmod 0777 /dev/video1 > chmod 0777 /dev/video2 > chmod 0777 /dev/omap-resizer > > # create basic filesystem structure > mkdir /data/misc 0771 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 /system/etc/wifi 0771 wifi wifi > chmod 0660 /system/etc/wifi/wpa_supplicant.conf > chown wifi wifi /system/etc/wifi/wpa_supplicant.conf > # need a socket > mkdir /data/misc/wifi 0770 wifi wifi > mkdir /data/misc/wifi/sockets 0770 wifi wifi > > 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 > mkdir /data/misc/dhcp 0770 dhcp dhcp > > # 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 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 > > #Owners, Modes for Bluetooth > chmod 0660 /dev/ttyS1 > chown bluetooth bluetooth /dev/ttyS1 > chmod 0660 sys/class/rfkill/rfkill0/state > chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state > write sys/class/rfkill/rfkill0/state 0 > > > 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 > > # No battery information present > setprop hw.nobattery true > > # if hw.nopm is true, Settings->Application->Development->Stay Awake > is enabled > setprop hw.nopm true > > # Enable gps > setprop ro.kernel.android.gps ttyS1 > > # 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.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 5120 > setprop ro.EMPTY_APP_MEM 6144 > > > # 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,4,7,15 > > write /proc/sys/vm/overcommit_memory 1 > write /proc/sys/vm/min_free_order_shift 4 > write /sys/module/lowmemorykiller/parameters/minfree > 2048,3072,4096,6144,7168,8192 > > # 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 > # Power Management patches > chown radio system /sys/power/wait_for_fb_sleep > chown radio system /sys/power/wait_for_fb_wake > chmod 0660 /sys/power/state > chmod 0660 /sys/power/wake_lock > chmod 0660 /sys/power/wake_unlock > > > 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 > > #JP - change uid gid to system radio for /dev/ttyS0 > chown system radio /dev/ttyS0 > chmod 0660 /dev/ttyS0 > > > # 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 > > setprop wifi.interface "wlan0" > setprop wlan.driver.status "ok" > class_start default > > ## Daemon processes to be run by init. > ## > service ueventd /sbin/ueventd > critical > > service console /system/bin/sh > console > > # Start PowerVR SGX DDK > service pvr /system/bin/sgx/rc.pvr start > > # Start WiFi > service libertas /system/bin/libertas/rc.libertas start > disabled > > # adbd is controlled by the persist.service.adb.enable system property > service adbd /sbin/adbd > disabled > > 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 -l /system/lib/libreference-ril.so > -- -d /dev/ttyS0 > socket rild stream 660 root radio > socket rild-debug stream 660 radio system > user root > group radio cache inet misc audio > > 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 > > service media /system/bin/mediaserver > user media > group system audio camera graphics inet net_bt net_bt_admin > net_raw sdcard_rw > ioprio rt 4 > > service bootanim /system/bin/bootanimation > user graphics > group 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 > > # 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 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 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 dumpstate /system/bin/dumpstate -s > socket dumpstate stream 0660 shell log > disabled > oneshot > > service hciattach /system/bin/hciattach -n /dev/ttyS1 > user root > disabled > > # changing user to root from bluetooth is a potential security issue > group bluetooth net_bt_admin misc > disabled > oneshot > > service wpa_supplicant /system/bin/wpa_supplicant -Dwext -dd -iwlan0 - > c/data/misc/wifi/wpa_supplicant.conf > socket wpa_wlan0 dgram 660 wifi wifi > disabled > oneshot > > service dhcpcd /system/bin/dhcpcd -ABKL wlan0 > disabled > oneshot > > > > > > > -- > unsubscribe: android-porting+unsubscr...@googlegroups.com > website: http://groups.google.com/group/android-porting > -- unsubscribe: android-porting+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-porting