オープンソース・ソフトウェアの開発とダウンロード

Subversion リポジトリの参照

Diff of /tags/htdocs/1.8/android-arm.html.ja

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4644 by kumaneko, Mon Feb 14 13:50:33 2011 UTC revision 4645 by kumaneko, Sat Feb 19 03:29:22 2011 UTC
# Line 1  Line 1 
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 &lt; patches/ccs-patch-2.6.29-android-goldfish.diff
87  patch -p1 &lt; 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 &gt; $ANDROID_HOME/tmp/ccstools/ccs-init2.c
131  sed -e 's:etc/ccs:ccs:g' $ANDROID_HOME/tmp/ccstools/sbin/ccs-init.c &gt; $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' &gt;&gt; init.rc
143  echo 'service ccs_agent /sbin/ccs-editpolicy-agent 0.0.0.0:7000' &gt;&gt; init.rc<br>  echo '&nbsp;&nbsp;&nbsp;&nbsp;oneshot' &gt;&gt; init.rc
144  echo '&nbsp;&nbsp;&nbsp;&nbsp;oneshot' &gt;&gt; init.rc<br>  echo &gt;&gt; init.rc
145  echo &gt;&gt; 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 &gt; ../ramdisk.img  find . -print0 | cpio -o0 -H newc | gzip -9 &gt; ../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>  ) &gt;&gt; ccs/exception_policy.conf
212  ) &gt;&gt; ccs/exception_policy.conf<br>  (
213  (<br>  echo '&lt;kernel&gt;'
214  echo '&lt;kernel&gt;'<br>  echo 'use_profile 1'
215  echo 'use_profile 1'<br>  ) &gt; ccs/domain_policy.conf
 ) &gt; ccs/domain_policy.conf<br>  
216  echo /sbin/ccs-editpolicy-agent &gt; ccs/manager.conf  echo /sbin/ccs-editpolicy-agent &gt; 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 &gt; ../ramdisk.img  find . -print0 | cpio -o0 -H newc | gzip -9 &gt; ../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 &gt; ccs/exception_policy.conf
259  /usr/sbin/ccs-savepolicy -e 127.0.0.1:10000 &gt; ccs/exception_policy.conf<br>  /usr/sbin/ccs-savepolicy -d 127.0.0.1:10000 &gt; ccs/domain_policy.conf
260  /usr/sbin/ccs-savepolicy -d 127.0.0.1:10000 &gt; ccs/domain_policy.conf<br>  /usr/sbin/ccs-savepolicy -p 127.0.0.1:10000 &gt; ccs/profile.conf
 /usr/sbin/ccs-savepolicy -p 127.0.0.1:10000 &gt; ccs/profile.conf<br>  
261  find . -print0 | cpio -o0 -H newc | gzip -9 &gt; ../ramdisk.img  find . -print0 | cpio -o0 -H newc | gzip -9 &gt; ../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&reg; は世界各国における Linus Torvalds の登録商標です。 TOMOYO&reg; は<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>

Legend:
Removed from v.4644  
changed lines
  Added in v.4645

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26