1478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project#! /bin/sh 2478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project 3478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project. /etc/rc.common 4478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project 5478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source ProjectStartService () 6478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project{ 7478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # 8478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # Unfortunately, Mac OS X's devfs is based on the old FreeBSD 9478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # one, not the current one, so there's no way to configure it 10478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # to create BPF devices with particular owners or groups. 11478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # This startup item will make it owned by the admin group, 12478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # with permissions rw-rw----, so that anybody in the admin 13478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # group can use programs that capture or send raw packets. 14478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # 15478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # Change this as appropriate for your site, e.g. to make 16478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # it owned by a particular user without changing the permissions, 17478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # so only that user and the super-user can capture or send raw 18478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # packets, or give it the permissions rw-r-----, so that 19478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # only the super-user can send raw packets but anybody in the 20478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # admin group can capture packets. 21478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project # 22478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project chgrp admin /dev/bpf* 23478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project chmod g+rw /dev/bpf* 24478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project} 25478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project 26478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source ProjectStopService () 27478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project{ 28478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project return 0; 29478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project} 30478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project 31478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source ProjectRestartService () { StartService; } 32478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source Project 33478ab6c8b5bc982589be32eae1e5736efe721b58The Android Open Source ProjectRunService "$1" 34