1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
2 |
<html lang="ja-JP"> |
<html lang="ja-JP"> |
3 |
<head> |
<head> |
4 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> |
5 |
<meta http-equiv="Content-Style-Type" content="text/css"> |
<meta http-equiv="content-style-type" content="text/css"> |
6 |
<title>TOMOYO Linux 導入手順書</title> |
<link rel="stylesheet" href="../media/tomoyolinux.css" media="all" type="text/css"> |
7 |
<link rel="stylesheet" href="http://tomoyo.sourceforge.jp/tomoyo.css" media="all" type="text/css"> |
<title>TOMOYO Linux 1.8.x : TOMOYO Linux on Android</title> |
8 |
</head> |
</head> |
9 |
|
|
10 |
<body> |
<body> |
|
<p style="text-align:right;"><a href="android-arm.html.en">English Page</a></p> |
|
|
<p style="text-align:right;">Last modified: $Date$</p> |
|
11 |
|
|
12 |
<h1>TOMOYO Linux on Android</h1> |
<div id="titlebar"> |
13 |
|
<a href="../index.html.ja"><img src="../media/tomoyotitle.png" alt="tomoyotitle.png" width="320" height="40" border="0" align="left"></a> |
14 |
|
</div> |
15 |
|
|
16 |
|
<div id="navbar" class="tomoyo-documentation"> |
17 |
|
<ul id="navbarlist"> |
18 |
|
<li id="tomoyo-home"><a href="../index.html.ja" title="TOMOYO Linux ホーム">ホーム</a></li> |
19 |
|
<li id="tomoyo-about"><a href="../about.html.ja" title="TOMOYO Linux の詳細">詳細</a></li> |
20 |
|
<li id="tomoyo-download"><a href="../download.html.ja" title="TOMOYO Linux を入手">ダウンロード</a></li> |
21 |
|
<li id="tomoyo-changelogs"><a href="../changelogs.html.ja" title="TOMOYO Linux 変更履歴">変更履歴</a></li> |
22 |
|
<li id="tomoyo-documentation"><a href="../documentation.html.ja" title="公式ドキュメント">ドキュメント</a></li> |
23 |
|
<li id="tomoyo-support"><a href="../support.html.ja" title="サポート情報">サポート</a></li> |
24 |
|
<li id="tomoyo-links"><a href="../links.html.ja" title="Links">リンク</a></li> |
25 |
|
</ul> |
26 |
|
<ul id="switch-language"> |
27 |
|
<li id="tomoyo-switch-language"><a href="android-arm.html.en" title="Go to English page">English page</a></li> |
28 |
|
</ul> |
29 |
|
</div> |
30 |
|
|
31 |
<p>このページでは、 TOMOYO Linux を arm 用 Android エミュレータ上で動作させる手順について説明します。ホスト環境として x86 上で動作している Ubuntu 8.04.4 を使用します。</p> |
<div id="content"> |
32 |
|
|
33 |
<hr> |
<div id="regular-content"> |
34 |
|
|
35 |
|
<h2>TOMOYO Linux on Android</h2> |
36 |
|
|
37 |
<h2>ステップ1:必要なパッケージのインストール</h2> |
<p>このページでは、 TOMOYO Linux を arm 用 Android エミュレータ上で動作させる手順について説明します。ホスト環境として x86 上で動作している Ubuntu 8.04.4 を使用します。</p> |
38 |
|
|
39 |
|
<h3>ステップ1:必要なパッケージのインストール</h3> |
40 |
|
|
41 |
<p><a href="http://source.android.com/source/download.html">http://source.android.com/source/download.html</a> に示されているとおり、必要なパッケージをインストールします。</p> |
<p><a href="http://source.android.com/source/download.html">http://source.android.com/source/download.html</a> に示されているとおり、必要なパッケージをインストールします。</p> |
42 |
|
|
43 |
<table border="1"> |
<pre class="command"> |
|
<tr><td> |
|
44 |
sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev |
sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev |
45 |
</td></tr> |
</pre> |
|
</table> |
|
46 |
|
|
47 |
<h2>ステップ2:環境変数の設定</h2> |
<h3>ステップ2:環境変数の設定</h3> |
48 |
|
|
49 |
<p>以下の内容を環境変数として指定します。 ~/.bashrc などに追加しておくことをお勧めします。 arm-eabi-4.2.1 の部分は arm-eabi-4.3.1 または arm-eabi-4.4.0 にしても構いません。</p> |
<p>以下の内容を環境変数として指定します。 ~/.bashrc などに追加しておくことをお勧めします。 arm-eabi-4.2.1 の部分は arm-eabi-4.3.1 または arm-eabi-4.4.0 にしても構いません。</p> |
50 |
|
|
51 |
<table border="1"> |
<pre class="command"> |
52 |
<tr><td> |
export ANDROID_HOME=$HOME/mydroid/ |
53 |
export ANDROID_HOME=$HOME/mydroid/<br> |
export ANDROID_IMG=$ANDROID_HOME/image/ |
54 |
export ANDROID_IMG=$ANDROID_HOME/image/<br> |
export ANDROID_TOOLCHAIN=$ANDROID_HOME/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/ |
|
export ANDROID_TOOLCHAIN=$ANDROID_HOME/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/<br> |
|
55 |
export PATH=$PATH:$ANDROID_HOME/out/host/linux-x86/bin/:$ANDROID_TOOLCHAIN |
export PATH=$PATH:$ANDROID_HOME/out/host/linux-x86/bin/:$ANDROID_TOOLCHAIN |
56 |
</td></tr> |
</pre> |
|
</table> |
|
57 |
|
|
58 |
<h2>ステップ3: Android 環境の構築</h2> |
<h3>ステップ3: Android 環境の構築</h3> |
59 |
|
|
60 |
<p>エミュレータをコンパイルします。</p> |
<p>エミュレータをコンパイルします。</p> |
61 |
|
|
62 |
<table border="1"> |
<pre class="command"> |
63 |
<tr><td> |
mkdir -p $ANDROID_HOME |
64 |
mkdir -p $ANDROID_HOME<br> |
cd $ANDROID_HOME |
65 |
cd $ANDROID_HOME<br> |
wget http://android.git.kernel.org/repo |
66 |
wget http://android.git.kernel.org/repo<br> |
chmod 755 repo |
67 |
chmod 755 repo<br> |
./repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo |
68 |
./repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo<br> |
./repo sync |
|
./repo sync<br> |
|
69 |
make |
make |
70 |
</td></tr> |
</pre> |
|
</table> |
|
71 |
|
|
72 |
<h2>ステップ4: Android 用カーネルの構築</h2> |
<h3>ステップ4: Android 用カーネルの構築</h3> |
73 |
|
|
74 |
<p>カーネルをコンパイルします。 TOMOYO Linux パッチを適用する以外は通常の手順と同じです。</p> |
<p>カーネルをコンパイルします。 TOMOYO Linux パッチを適用する以外は通常の手順と同じです。</p> |
75 |
|
|
76 |
<table border="1"> |
<pre class="command"> |
77 |
<tr><td> |
mkdir -p $ANDROID_HOME/tmp |
78 |
mkdir -p $ANDROID_HOME/tmp<br> |
cd $ANDROID_HOME/tmp/ |
79 |
cd $ANDROID_HOME/tmp/<br> |
wget -O kernel-source.tar.gz 'http://android.git.kernel.org/?p=kernel/common.git;a=snapshot;h=b0d93fb0426911d0329f861f22c59f1c72cff815;sf=tgz' |
80 |
wget -O kernel-source.tar.gz 'http://android.git.kernel.org/?p=kernel/common.git;a=snapshot;h=b0d93fb0426911d0329f861f22c59f1c72cff815;sf=tgz'<br> |
tar -zxf kernel-source.tar.gz |
81 |
tar -zxf kernel-source.tar.gz<br> |
cd common-b0d93fb/ |
82 |
cd common-b0d93fb/<br> |
wget -O ccs-patch-1.8.0-20110207.tar.gz 'http://sourceforge.jp/frs/redir.php?f=/tomoyo/49684/ccs-patch-1.8.0-20110207.tar.gz' |
83 |
wget -O ccs-patch-1.8.0-20110207.tar.gz 'http://sourceforge.jp/frs/redir.php?f=/tomoyo/49684/ccs-patch-1.8.0-20110207.tar.gz'<br> |
wget -O ccs-patch-1.8.0-20110207.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?f=/tomoyo/49684/ccs-patch-1.8.0-20110207.tar.gz.asc' |
84 |
wget -O ccs-patch-1.8.0-20110207.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?f=/tomoyo/49684/ccs-patch-1.8.0-20110207.tar.gz.asc'<br> |
gpg ccs-patch-1.8.0-20110207.tar.gz.asc |
85 |
gpg ccs-patch-1.8.0-20110207.tar.gz.asc<br> |
tar -zxf ccs-patch-1.8.0-20110207.tar.gz |
86 |
tar -zxf ccs-patch-1.8.0-20110207.tar.gz<br> |
patch -p1 < patches/ccs-patch-2.6.29-android-goldfish.diff |
87 |
patch -p1 < patches/ccs-patch-2.6.29-android-goldfish.diff<br> |
sed -i -e 's:/sbin/modprobe /sbin/hotplug::' -e 's:/sbin/ccs-start:/init:' -- security/ccsecurity/Kconfig |
88 |
sed -i -e 's:/sbin/modprobe /sbin/hotplug::' -e 's:/sbin/ccs-start:/init:' -- security/ccsecurity/Kconfig<br> |
ARCH=arm CROSS_COMPILE=$ANDROID_TOOLCHAIN/arm-eabi- make goldfish_defconfig |
89 |
ARCH=arm CROSS_COMPILE=$ANDROID_TOOLCHAIN/arm-eabi- make goldfish_defconfig<br> |
ARCH=arm CROSS_COMPILE=$ANDROID_TOOLCHAIN/arm-eabi- make -s |
90 |
ARCH=arm CROSS_COMPILE=$ANDROID_TOOLCHAIN/arm-eabi- make -s<br> |
mkdir -p $ANDROID_IMG/tmp |
|
mkdir -p $ANDROID_IMG/tmp<br> |
|
91 |
cp -p arch/arm/boot/zImage $ANDROID_IMG/kernel.img |
cp -p arch/arm/boot/zImage $ANDROID_IMG/kernel.img |
92 |
</td></tr> |
</pre> |
|
</table> |
|
93 |
|
|
94 |
<h2>ステップ5:イメージファイルのコピー</h2> |
<h3>ステップ5:イメージファイルのコピー</h3> |
95 |
|
|
96 |
<p>Android エミュレータで指定するためのイメージファイルをコピーします。</p> |
<p>Android エミュレータで指定するためのイメージファイルをコピーします。</p> |
97 |
|
|
98 |
<table border="1"> |
<pre class="command"> |
99 |
<tr><td> |
cd $ANDROID_HOME/out/target/product/generic/ |
|
cd $ANDROID_HOME/out/target/product/generic/<br> |
|
100 |
cp -p system.img ramdisk.img userdata.img $ANDROID_IMG |
cp -p system.img ramdisk.img userdata.img $ANDROID_IMG |
101 |
</td></tr> |
</pre> |
|
</table> |
|
102 |
|
|
103 |
<h2>ステップ6:ホスト環境用ツールのインストール</h2> |
<h3>ステップ6:ホスト環境用ツールのインストール</h3> |
104 |
|
|
105 |
<p>Android エミュレータを遠隔操作するために、ホスト側に TOMOYO Linux のツールをインストールします。</p> |
<p>Android エミュレータを遠隔操作するために、ホスト側に TOMOYO Linux のツールをインストールします。</p> |
106 |
|
|
107 |
<table border="1"> |
<pre class="command"> |
108 |
<tr><td> |
cd $ANDROID_HOME/tmp/ |
109 |
cd $ANDROID_HOME/tmp/<br> |
wget -O ccs-tools-1.8.0-20110214.tar.gz 'http://sourceforge.jp/frs/redir.php?f=/tomoyo/49693/ccs-tools-1.8.0-20110214.tar.gz' |
110 |
wget -O ccs-tools-1.8.0-20110214.tar.gz 'http://sourceforge.jp/frs/redir.php?f=/tomoyo/49693/ccs-tools-1.8.0-20110214.tar.gz'<br> |
wget -O ccs-tools-1.8.0-20110214.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?f=/tomoyo/49693/ccs-tools-1.8.0-20110214.tar.gz.asc' |
111 |
wget -O ccs-tools-1.8.0-20110214.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?f=/tomoyo/49693/ccs-tools-1.8.0-20110214.tar.gz.asc'<br> |
gpg ccs-tools-1.8.0-20110214.tar.gz.asc |
112 |
gpg ccs-tools-1.8.0-20110214.tar.gz.asc<br> |
tar -zxf ccs-tools-1.8.0-20110214.tar.gz |
113 |
tar -zxf ccs-tools-1.8.0-20110214.tar.gz<br> |
cd ccstools |
114 |
cd ccstools<br> |
make |
|
make<br> |
|
115 |
sudo make install |
sudo make install |
116 |
</td></tr> |
</pre> |
|
</table> |
|
117 |
|
|
118 |
<h2>ステップ7:エミュレータ環境用ツールのインストール</h2> |
<h3>ステップ7:エミュレータ環境用ツールのインストール</h3> |
119 |
|
|
120 |
<p>Android エミュレータ側にインストールするためのエージェントをコンパイルします。</p> |
<p>Android エミュレータ側にインストールするためのエージェントをコンパイルします。</p> |
121 |
|
|
122 |
<p>Android エミュレータで使用するRAMディスクに含まれている /init.rc が /etc という名前で /system/etc/ ディレクトリへのシンボリックリンクを作成するため、(ステップ13で追加する TOMOYO Linux のポリシーローダである) /sbin/ccs-init が /etc/ccs/ ディレクトリを起動時に読み込むポリシーを保存しておくためのディレクトリとして使用することができません。そのため、 /etc/ccs/ の代わりに /ccs/ をポリシー用ディレクトリとして使用します。</p> |
<p>Android エミュレータで使用するRAMディスクに含まれている /init.rc が /etc という名前で /system/etc/ ディレクトリへのシンボリックリンクを作成するため、(ステップ13で追加する TOMOYO Linux のポリシーローダである) /sbin/ccs-init が /etc/ccs/ ディレクトリを起動時に読み込むポリシーを保存しておくためのディレクトリとして使用することができません。そのため、 /etc/ccs/ の代わりに /ccs/ をポリシー用ディレクトリとして使用します。</p> |
123 |
|
|
124 |
<table border="1"> |
<pre class="command"> |
125 |
<tr><td> |
cd $ANDROID_HOME/tmp/ |
126 |
cd $ANDROID_HOME/tmp/<br> |
wget -O agcc http://plausible.org/andy/agcc |
127 |
wget -O agcc http://plausible.org/andy/agcc<br> |
chmod 755 agcc |
128 |
chmod 755 agcc<br> |
./agcc -o init_policy $ANDROID_HOME/tmp/ccstools/usr_lib_ccs/init_policy.c |
129 |
./agcc -o init_policy $ANDROID_HOME/tmp/ccstools/usr_lib_ccs/init_policy.c<br> |
./agcc -o ccs-editpolicy-agent $ANDROID_HOME/tmp/ccstools/usr_lib_ccs/ccs-editpolicy-agent.c |
130 |
./agcc -o ccs-editpolicy-agent $ANDROID_HOME/tmp/ccstools/usr_lib_ccs/ccs-editpolicy-agent.c<br> |
sed -e 's:etc/ccs:ccs:g' $ANDROID_HOME/tmp/ccstools/sbin/ccs-init.c > $ANDROID_HOME/tmp/ccstools/ccs-init2.c |
131 |
sed -e 's:etc/ccs:ccs:g' $ANDROID_HOME/tmp/ccstools/sbin/ccs-init.c > $ANDROID_HOME/tmp/ccstools/ccs-init2.c<br> |
./agcc -o ccs-init $ANDROID_HOME/tmp/ccstools/ccs-init2.c |
|
./agcc -o ccs-init $ANDROID_HOME/tmp/ccstools/ccs-init2.c<br> |
|
132 |
chmod 700 init_policy ccs-editpolicy-agent ccs-init |
chmod 700 init_policy ccs-editpolicy-agent ccs-init |
133 |
</td></tr> |
</pre> |
|
</table> |
|
134 |
|
|
135 |
<h2>ステップ8:RAMディスクの編集</h2> |
<h3>ステップ8:RAMディスクの編集</h3> |
136 |
|
|
137 |
<p>Android エミュレータで使用するRAMディスクにエージェントをコピーし、自動的に起動されるようにします。</p> |
<p>Android エミュレータで使用するRAMディスクにエージェントをコピーし、自動的に起動されるようにします。</p> |
138 |
|
|
139 |
<table border="1"> |
<pre class="command"> |
140 |
<tr><td> |
cd $ANDROID_IMG/tmp/ |
141 |
cd $ANDROID_IMG/tmp/<br> |
zcat ../ramdisk.img | cpio -id |
142 |
zcat ../ramdisk.img | cpio -id<br> |
echo 'service ccs_agent /sbin/ccs-editpolicy-agent 0.0.0.0:7000' >> init.rc |
143 |
echo 'service ccs_agent /sbin/ccs-editpolicy-agent 0.0.0.0:7000' >> init.rc<br> |
echo ' oneshot' >> init.rc |
144 |
echo ' oneshot' >> init.rc<br> |
echo >> init.rc |
145 |
echo >> init.rc<br> |
cp -p $ANDROID_HOME/tmp/init_policy $ANDROID_HOME/tmp/ccs-editpolicy-agent sbin/ |
|
cp -p $ANDROID_HOME/tmp/init_policy $ANDROID_HOME/tmp/ccs-editpolicy-agent sbin/<br> |
|
146 |
find . -print0 | cpio -o0 -H newc | gzip -9 > ../ramdisk.img |
find . -print0 | cpio -o0 -H newc | gzip -9 > ../ramdisk.img |
147 |
</td></tr> |
</pre> |
|
</table> |
|
148 |
|
|
149 |
<h2>ステップ9:エミュレータの起動</h2> |
<h3>ステップ9:エミュレータの起動</h3> |
150 |
|
|
151 |
<p>Android エミュレータを起動します。カーネルはステップ4で作成したものを、RAMディスクはステップ8で作成したものを指定します。</p> |
<p>Android エミュレータを起動します。カーネルはステップ4で作成したものを、RAMディスクはステップ8で作成したものを指定します。</p> |
152 |
|
|
153 |
<table border="1"> |
<pre class="command"> |
|
<tr><td> |
|
154 |
emulator -kernel $ANDROID_IMG/kernel.img -ramdisk $ANDROID_IMG/ramdisk.img -sysdir $ANDROID_IMG -data $ANDROID_IMG/userdata.img -show-kernel |
emulator -kernel $ANDROID_IMG/kernel.img -ramdisk $ANDROID_IMG/ramdisk.img -sysdir $ANDROID_IMG -data $ANDROID_IMG/userdata.img -show-kernel |
155 |
</td></tr> |
</pre> |
|
</table> |
|
156 |
|
|
157 |
<h2>ステップ10:必要なファイルのコピー</h2> |
<h3>ステップ10:必要なファイルのコピー</h3> |
158 |
|
|
159 |
<p>/sbin/ccs-init の動作に必要なファイルをRAMディスクにコピーします。 Android 環境では、ダイナミックリンクライブラリをロードするために /system/bin/loader が使われます。しかし、 /sbin/ccs-init が実行される時点では /system/ パーティションはまだマウントされていません。そのため、 /system/ パーティションの中にある /bin/loader をRAMディスク内の /system/bin/ ディレクトリにコピーしておく必要があります。同様に、 /system/ パーティションの中にある /lib/libc.so と /lib/libm.so をRAMディスク内の /lib/ ディレクトリにコピーしておく必要があります。</p> |
<p>/sbin/ccs-init の動作に必要なファイルをRAMディスクにコピーします。 Android 環境では、ダイナミックリンクライブラリをロードするために /system/bin/loader が使われます。しかし、 /sbin/ccs-init が実行される時点では /system/ パーティションはまだマウントされていません。そのため、 /system/ パーティションの中にある /bin/loader をRAMディスク内の /system/bin/ ディレクトリにコピーしておく必要があります。同様に、 /system/ パーティションの中にある /lib/libc.so と /lib/libm.so をRAMディスク内の /lib/ ディレクトリにコピーしておく必要があります。</p> |
160 |
|
|
161 |
<table border="1"> |
<pre class="command"> |
162 |
<tr><td> |
cd $ANDROID_IMG/tmp/ |
163 |
cd $ANDROID_IMG/tmp/<br> |
mkdir -p system/bin lib |
164 |
mkdir -p system/bin lib<br> |
adb pull /system/bin/linker system/bin/ |
165 |
adb pull /system/bin/linker system/bin/<br> |
adb pull /system/lib/libc.so lib/ |
166 |
adb pull /system/lib/libc.so lib/<br> |
adb pull /system/lib/libm.so lib/ |
167 |
adb pull /system/lib/libm.so lib/<br> |
chmod 755 system/bin/linker lib/libc.so lib/libm.so |
168 |
chmod 755 system/bin/linker lib/libc.so lib/libm.so<br> |
</pre> |
|
</td></tr> |
|
|
</table> |
|
169 |
|
|
170 |
<h2>ステップ11:ポリシーの初期化</h2> |
<h3>ステップ11:ポリシーの初期化</h3> |
171 |
|
|
172 |
<p>TOMOYO Linux が使用するための初期状態のポリシーを作成します。初期状態のポリシーファイルをRAMディスクの中の /ccs/ ディレクトリにコピーします。</p> |
<p>TOMOYO Linux が使用するための初期状態のポリシーを作成します。初期状態のポリシーファイルをRAMディスクの中の /ccs/ ディレクトリにコピーします。</p> |
173 |
|
|
174 |
<table border="1"> |
<pre class="command"> |
175 |
<tr><td> |
mkdir -p $ANDROID_IMG/tmp/ccs/ |
176 |
mkdir -p $ANDROID_IMG/tmp/ccs/<br> |
adb shell /sbin/init_policy policy_dir=/data/ccs/ |
177 |
adb shell /sbin/init_policy policy_dir=/data/ccs/<br> |
adb pull /data/ccs/ $ANDROID_IMG/tmp/ccs/ |
178 |
adb pull /data/ccs/ $ANDROID_IMG/tmp/ccs/<br> |
rm -fR $ANDROID_IMG/tmp/ccs/tools/ $ANDROID_IMG/tmp/ccs/policy/ $ANDROID_IMG/tmp/ccs/ccs-load-module |
179 |
rm -fR $ANDROID_IMG/tmp/ccs/tools/ $ANDROID_IMG/tmp/ccs/policy/ $ANDROID_IMG/tmp/ccs/ccs-load-module<br> |
adb shell rm -R /data/ccs/ |
|
adb shell rm -R /data/ccs/<br> |
|
180 |
adb emu kill |
adb emu kill |
181 |
</td></tr> |
</pre> |
|
</table> |
|
182 |
|
|
183 |
<h2>ステップ12:ポリシーの修正</h2> |
<h3>ステップ12:ポリシーの修正</h3> |
184 |
|
|
185 |
<p>不足している acl_group 0 file read などを例外ポリシーに追加します。以下の内容は一例です。ドメインポリシーでは全体をプロファイル1(学習モード)で動作させるように指定しています。マネージャにはエージェントプログラムだけを指定しています。</p> |
<p>不足している acl_group 0 file read などを例外ポリシーに追加します。以下の内容は一例です。ドメインポリシーでは全体をプロファイル1(学習モード)で動作させるように指定しています。マネージャにはエージェントプログラムだけを指定しています。</p> |
186 |
|
|
187 |
<table border="1"> |
<pre class="command"> |
188 |
<tr><td> |
cd $ANDROID_IMG/tmp/ |
189 |
cd $ANDROID_IMG/tmp/<br> |
( |
190 |
(<br> |
echo 'initialize_domain /init' |
191 |
echo 'initialize_domain /init'<br> |
echo 'initialize_domain /system/bin/app_process' |
192 |
echo 'initialize_domain /system/bin/app_process'<br> |
|
193 |
<br> |
echo 'acl_group 0 file read /system/lib/\@.so' |
194 |
echo 'acl_group 0 file read /system/lib/\@.so'<br> |
echo 'acl_group 0 file read /system/framework/\*.jar' |
195 |
echo 'acl_group 0 file read /system/framework/\*.jar'<br> |
echo 'acl_group 0 file read /system/media/audio/\*/\*' |
196 |
echo 'acl_group 0 file read /system/media/audio/\*/\*'<br> |
echo 'acl_group 0 file read /system/fonts/\*.ttf' |
197 |
echo 'acl_group 0 file read /system/fonts/\*.ttf'<br> |
|
198 |
<br> |
echo 'path_group SYSTEM_APK /system/app/\@.apk' |
199 |
echo 'path_group SYSTEM_APK /system/app/\@.apk'<br> |
|
200 |
<br> |
echo 'path_group SYS_FILES sysfs:/kernel/ipv4/tcp_wmem_min' |
201 |
echo 'path_group SYS_FILES sysfs:/kernel/ipv4/tcp_wmem_min'<br> |
echo 'path_group SYS_FILES sysfs:/kernel/ipv4/tcp_wmem_def' |
202 |
echo 'path_group SYS_FILES sysfs:/kernel/ipv4/tcp_wmem_def'<br> |
echo 'path_group SYS_FILES sysfs:/kernel/ipv4/tcp_wmem_max' |
203 |
echo 'path_group SYS_FILES sysfs:/kernel/ipv4/tcp_wmem_max'<br> |
echo 'path_group SYS_FILES sysfs:/kernel/ipv4/tcp_rmem_min' |
204 |
echo 'path_group SYS_FILES sysfs:/kernel/ipv4/tcp_rmem_min'<br> |
echo 'path_group SYS_FILES sysfs:/kernel/ipv4/tcp_rmem_def' |
205 |
echo 'path_group SYS_FILES sysfs:/kernel/ipv4/tcp_rmem_def'<br> |
echo 'path_group SYS_FILES sysfs:/kernel/ipv4/tcp_rmem_max' |
206 |
echo 'path_group SYS_FILES sysfs:/kernel/ipv4/tcp_rmem_max'<br> |
|
207 |
<br> |
echo 'acl_group 0 file read sysfs:/devices/platform/\*battery\*/power_supply/ac/online' |
208 |
echo 'acl_group 0 file read sysfs:/devices/platform/\*battery\*/power_supply/ac/online'<br> |
echo 'acl_group 0 file read sysfs:/devices/platform/\*battery\*/power_supply/battery/\@' |
209 |
echo 'acl_group 0 file read sysfs:/devices/platform/\*battery\*/power_supply/battery/\@'<br> |
|
210 |
<br> |
#App. specific data files |
211 |
#App. specific data files<br> |
) >> ccs/exception_policy.conf |
212 |
) >> ccs/exception_policy.conf<br> |
( |
213 |
(<br> |
echo '<kernel>' |
214 |
echo '<kernel>'<br> |
echo 'use_profile 1' |
215 |
echo 'use_profile 1'<br> |
) > ccs/domain_policy.conf |
|
) > ccs/domain_policy.conf<br> |
|
216 |
echo /sbin/ccs-editpolicy-agent > ccs/manager.conf |
echo /sbin/ccs-editpolicy-agent > ccs/manager.conf |
217 |
</td></tr> |
</pre> |
|
</table> |
|
218 |
|
|
219 |
<h2>ステップ13:ポリシーローダの追加</h2> |
<h3>ステップ13:ポリシーローダの追加</h3> |
220 |
|
|
221 |
<p>TOMOYO Linux を有効にするために、 ccs-init を追加します。</p> |
<p>TOMOYO Linux を有効にするために、 ccs-init を追加します。</p> |
222 |
|
|
223 |
<table border="1"> |
<pre class="command"> |
224 |
<tr><td> |
cd $ANDROID_IMG/tmp/ |
225 |
cd $ANDROID_IMG/tmp/<br> |
rm sbin/init_policy |
226 |
rm sbin/init_policy<br> |
cp -p $ANDROID_HOME/tmp/ccs-init sbin/ |
|
cp -p $ANDROID_HOME/tmp/ccs-init sbin/<br> |
|
227 |
find . -print0 | cpio -o0 -H newc | gzip -9 > ../ramdisk.img |
find . -print0 | cpio -o0 -H newc | gzip -9 > ../ramdisk.img |
228 |
</td></tr> |
</pre> |
|
</table> |
|
229 |
|
|
230 |
<h2>ステップ14:エミュレータの起動</h2> |
<h3>ステップ14:エミュレータの起動</h3> |
231 |
|
|
232 |
<p>Android エミュレータを起動します。カーネルはステップ4で作成したものを、RAMディスクはステップ13で作成したものを指定します。</p> |
<p>Android エミュレータを起動します。カーネルはステップ4で作成したものを、RAMディスクはステップ13で作成したものを指定します。</p> |
233 |
|
|
234 |
<table border="1"> |
<pre class="command"> |
|
<tr><td> |
|
235 |
emulator -kernel $ANDROID_IMG/kernel.img -ramdisk $ANDROID_IMG/ramdisk.img -sysdir $ANDROID_IMG -data $ANDROID_IMG/userdata.img -show-kernel |
emulator -kernel $ANDROID_IMG/kernel.img -ramdisk $ANDROID_IMG/ramdisk.img -sysdir $ANDROID_IMG -data $ANDROID_IMG/userdata.img -show-kernel |
236 |
</td></tr> |
</pre> |
|
</table> |
|
237 |
|
|
238 |
<h2>ステップ15:ポート転送の指定</h2> |
<h3>ステップ15:ポート転送の指定</h3> |
239 |
|
|
240 |
<p>エミュレータ内で動作しているエージェントと通信するために、ポート転送を指定します。以下のように指定した場合、ホスト側でのポート 10000 への TCP 接続は、エミュレータ側でのポート 7000 へと転送されます。ステップ8で ccs-editpolicy-agent をポート 7000 で待機するように指定しているので、ホスト側でポート 10000 へ接続することにより、エージェントとの通信が可能になります。</p> |
<p>エミュレータ内で動作しているエージェントと通信するために、ポート転送を指定します。以下のように指定した場合、ホスト側でのポート 10000 への TCP 接続は、エミュレータ側でのポート 7000 へと転送されます。ステップ8で ccs-editpolicy-agent をポート 7000 で待機するように指定しているので、ホスト側でポート 10000 へ接続することにより、エージェントとの通信が可能になります。</p> |
241 |
|
|
242 |
<table border="1"> |
<pre class="command"> |
|
<tr><td> |
|
243 |
adb forward tcp:10000 tcp:7000 |
adb forward tcp:10000 tcp:7000 |
244 |
</td></tr> |
</pre> |
|
</table> |
|
245 |
|
|
246 |
<h2>ステップ16:エージェント経由での操作</h2> |
<h3>ステップ16:エージェント経由での操作</h3> |
247 |
|
|
248 |
<p>以下のように ccs-editpolicy を起動すると、エミュレータ内のエージェント経由で ポリシーを閲覧/編集できます。</p> |
<p>以下のように ccs-editpolicy を起動すると、エミュレータ内のエージェント経由で ポリシーを閲覧/編集できます。</p> |
249 |
|
|
250 |
<table border="1"> |
<pre class="command"> |
|
<tr><td> |
|
251 |
/usr/sbin/ccs-editpolicy 127.0.0.1:10000 |
/usr/sbin/ccs-editpolicy 127.0.0.1:10000 |
252 |
</td></tr> |
</pre> |
|
</table> |
|
253 |
|
|
254 |
<p>以下のように ccs-savepolicy を実行すると、エミュレータ内のエージェント経由で現在のポリシーをRAMディスク内の /ccs/ ディレクトリに出力できます。</p> |
<p>以下のように ccs-savepolicy を実行すると、エミュレータ内のエージェント経由で現在のポリシーをRAMディスク内の /ccs/ ディレクトリに出力できます。</p> |
255 |
|
|
256 |
<table border="1"> |
<pre class="command"> |
257 |
<tr><td> |
cd $ANDROID_IMG/tmp/ |
258 |
cd $ANDROID_IMG/tmp/<br> |
/usr/sbin/ccs-savepolicy -e 127.0.0.1:10000 > ccs/exception_policy.conf |
259 |
/usr/sbin/ccs-savepolicy -e 127.0.0.1:10000 > ccs/exception_policy.conf<br> |
/usr/sbin/ccs-savepolicy -d 127.0.0.1:10000 > ccs/domain_policy.conf |
260 |
/usr/sbin/ccs-savepolicy -d 127.0.0.1:10000 > ccs/domain_policy.conf<br> |
/usr/sbin/ccs-savepolicy -p 127.0.0.1:10000 > ccs/profile.conf |
|
/usr/sbin/ccs-savepolicy -p 127.0.0.1:10000 > ccs/profile.conf<br> |
|
261 |
find . -print0 | cpio -o0 -H newc | gzip -9 > ../ramdisk.img |
find . -print0 | cpio -o0 -H newc | gzip -9 > ../ramdisk.img |
262 |
</td></tr> |
</pre> |
|
</table> |
|
263 |
|
|
264 |
<p>以下のように ccs-auditd を起動すると、エミュレータ内のエージェント経由でアクセス許可ログ/拒否ログを取得して保存することができます。なお、アクセスログは大量に出力されるため、ディスクの空き容量に注意してください。</p> |
<p>以下のように ccs-auditd を起動すると、エミュレータ内のエージェント経由でアクセス許可ログ/拒否ログを取得して保存することができます。なお、アクセスログは大量に出力されるため、ディスクの空き容量に注意してください。</p> |
265 |
|
|
266 |
<table border="1"> |
<pre class="command"> |
|
<tr><td> |
|
267 |
/usr/sbin/ccs-auditd 127.0.0.1:10000 |
/usr/sbin/ccs-auditd 127.0.0.1:10000 |
268 |
</td></tr> |
</pre> |
|
</table> |
|
269 |
|
|
270 |
<p>以下のように ccs-queryd を実行すると、エミュレータ内のエージェント経由で、強制モードでのポリシー違反を対話的に処理できます。 ccs-queryd を終了させるには Ctrl-C を押してください。</p> |
<p>以下のように ccs-queryd を実行すると、エミュレータ内のエージェント経由で、強制モードでのポリシー違反を対話的に処理できます。 ccs-queryd を終了させるには Ctrl-C を押してください。</p> |
271 |
|
|
272 |
<table border="1"> |
<pre class="command"> |
|
<tr><td> |
|
273 |
/usr/sbin/ccs-queryd 127.0.0.1:10000 |
/usr/sbin/ccs-queryd 127.0.0.1:10000 |
274 |
</td></tr> |
</pre> |
|
</table> |
|
275 |
|
|
276 |
<hr> |
</div><!-- regular-content --> |
277 |
|
|
278 |
<p><a href="index.html.ja">目次へ戻る</a></p> |
</div><!-- content --> |
279 |
|
|
280 |
|
<div id="navfooter"> |
281 |
|
<hr> |
282 |
|
<table> |
283 |
|
<tr> |
284 |
|
<td class="docs-previous"> |
285 |
|
</td> |
286 |
|
<td class="docs-index"> |
287 |
|
<a href="index.html.ja">目次</a> |
288 |
|
</td> |
289 |
|
<td class="docs-next"> |
290 |
|
</td> |
291 |
|
</tr> |
292 |
|
<tr> |
293 |
|
<td class="docs-previous-description"> |
294 |
|
</td> |
295 |
|
<td class="docs-home"> |
296 |
|
</td> |
297 |
|
<td class="docs-next-description"> |
298 |
|
</td> |
299 |
|
</tr> |
300 |
|
</table> |
301 |
|
</div> |
302 |
|
|
303 |
|
<div id="footer"> |
304 |
|
<p class="language">Go to <a href="android-arm.html.en">English page</a>.</p> |
305 |
|
<p class="timestamp">Last modified: $Date$</p> |
306 |
|
<p class="trademark">Linux® は世界各国における Linus Torvalds の登録商標です。 TOMOYO® は<a href="http://www.nttdata.co.jp/">株式会社NTTデータ</a>の登録商標です。</p> |
307 |
<p><a href="http://sourceforge.jp/"><img src="http://sourceforge.jp/sflogo.php?group_id=1973" width="96" height="31" alt="SourceForge.jp"></a></p> |
<p><a href="http://sourceforge.jp/"><img src="http://sourceforge.jp/sflogo.php?group_id=1973" width="96" height="31" alt="SourceForge.jp"></a></p> |
308 |
|
</div> |
309 |
|
|
310 |
</body> |
</body> |
311 |
</html> |
</html> |