はじめに
私は今、「まったりAndroid Framework Code Reading #5」という、おそらくAndroidガチ勢のための勉強会に来ています。
先にお断りをしておきますと、私はAndroidガチ勢ではありません。友達の @operandoOS さんが主催しているので、ただ遊びに来ただけなのです。
もっとも、私も昨年の4月まではAndroidに関わる仕事をしておりましたので、Androidというオペレーティング・システムに興味が無いわけではありません。
ですので、当時携わっていた仕事と関係が深そうな内容がビッチリと詰まっている「Androidを支える技術Ⅱ」という書籍を今日の昼休みに購入したのでそれを読みます。
ちなみに「Androidを支える技術<Ⅰ>」のほうは読んでません。
本の感想
以下、読みながら感想を思いつくままに書いてきます。
-
まずこんな素晴らしい本を執筆された著者に感謝したい。
-
私がAndroidの仕事をしていた3年くらい前にあったら本当に良かったのになあと思った。
-
当時はこういう内部の仕組みを解説してくれるようなたのしい本は「Androidのなかみ」くらいしかなかったと思う。
-
ただAndroidの中身は私にはレイヤーが下すぎた感があるので、本書のような下すぎず上すぎない感じが私にはうれしい。
-
まず目次を見てみよう。
-
いろいろ興味深い章があるのだが、個人的にいちばん響いたのは「第6章 Androidの始まり ブートローダーとinitプロセス」である。
-
なので6章読んでみる
-
まず最初に「電源を入れてからinitを起動するまでの概要」と来た。渋すぎる。
- これはAndroidとか関係なく必須の知識。
- これわかってないと当時は仕事できなかった。
-
続いて「Android端末のパーティション」
- LKという単語を久しぶりに見て興奮。
- systemパーティションって昔はread-onlyじゃなかったよなあたしかとか思った。
-
「ブートイメージとリカバリーイメージ」
- bootってざっくりKernelのバイナリでしょ、という理解だったのだがそれだけじゃないんですね。こういうのほんと勉強になる。どこでこの知識を活かしたらいいのかはわからない。
- AndroidとLinuxの起動時の違いとかあっておもしろい。
-
通常のブートローダーの処理
- 署名のチェックのところ、いいですね。いろいろ思い出してしまいます。鍵違うと端末起動しませんからね。要注意ですよ。
-
コラムに「rootを取得する? 何をしているのか?」というのがある。
- 良い内容。
- systemパーティションも署名チェックする云々の話はdm-verityのことだろうか。KKからだっけ?
- 「本書ではroot化の詳細については解説しません」と断り書きがあるけど、けっこう詳しく説明してくれている気もする。
- JTAGという単語を久しぶりに見てまたテンションが上がる。
- 今ってSELinuxとdm-verityあるからroot取るの相当大変な気がするんだけど、どうなんだろう。
さいごに
- 結局第6章の前半だけを読んで終わってしまったのですが、当時は知識があいまいなままやりすごしていた部分についての知見がたくさん得られました。
- これからもスキを見て読み進めていこうと思います。