ブログネタ
Android に参加中!
Galaxy Nexus 等に Jelly Bean を入れて遊んでいて気が付いた事。
init が嚴しくなってると感じたので、調べた事のメモ。
init は init.rc 等のテキストファイルを読み込んで設定を行う。
Jelly Bean ではこの読み込むファイルの権限が適切に設定されてないと、
読んでくれないらしい。

Jelly Bean な Galaxy Nexus の rootfs は以下のようになっています。
-rwxr-x--- 1 sola sola 239920 7月 4 01:40 charger
drwxrwx--x 2 sola sola 4096 7月 4 01:40 data
-rw-r--r-- 1 sola sola 116 7月 4 01:40 default.prop
drwxr-xr-x 2 sola sola 4096 7月 4 01:40 dev
-rw-r----- 1 sola sola 1009 7月 4 01:40 fstab.tuna
-rwxr-x--- 1 sola sola 105204 7月 4 01:40 init
-rwxr-x--- 1 sola sola 2344 7月 4 01:40 init.goldfish.rc
-rwxr-x--- 1 sola sola 17048 7月 4 01:40 init.rc
-rwxr-x--- 1 sola sola 1637 7月 4 01:40 init.trace.rc
-rwxr-x--- 1 sola sola 6710 7月 4 01:40 init.tuna.rc
-rwxr-x--- 1 sola sola 3570 7月 4 01:40 init.tuna.usb.rc
-rwxr-x--- 1 sola sola 3915 7月 4 01:40 init.usb.rc
drwxr-xr-x 2 sola sola 4096 7月 4 01:40 proc
drwxr-xr-x 3 sola sola 4096 7月 4 01:40 res
drwxr-x--- 2 sola sola 4096 7月 4 01:40 sbin
drwxr-xr-x 2 sola sola 4096 7月 4 01:40 sys
drwxr-xr-x 2 sola sola 4096 7月 4 01:40 system
-rw-r--r-- 1 sola sola 272 7月 4 01:40 ueventd.goldfish.rc
-rw-r--r-- 1 sola sola 3879 7月 4 01:40 ueventd.rc
-rw-r--r-- 1 sola sola 1656 7月 4 01:40 ueventd.tuna.rc

例えば、init.trace.rc の権限を 750 から 777 に変えてみる。
そうすると、init はこのようなログを出力する。
<3>[ 5.497253] init: skipping insecure file '/init.trace.rc'

init.trace.rc は init.rc で import するのだけど、
読み込みに失敗してるのが分かる。
<3>[ 5.497344] init: could not import file '/init.trace.rc' from '/init.rc'

不必要に権限を与えると駄目なように見えます。
書き込み権限が追加されると、チェックに引っかかってしまうようです。

init.xxx.rc だけでなく、default.prop や ueventd.xxx.rc 等の他のファイルでも同様。

書き込みだけって事は、改竄を嫌がってるのかな・・・?