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